I'm quite new to Linux, but I have spent the entire weekend googling around for a solution, but can't get anything to work.
TL;DR;
After the initial logs during boot, the screen goes black.
I've tried setting nomodeset
and acpi=off
in GRUB without any effect.
What more can I try to get Ubuntu to boot with monitor?
Details
I'm helping a friend setup Ubuntu Server 16.04.3 LTS (32-bit) on a fit-PC2i, which has an Intel Atom Z530 with GMA 500 (PDF-link). I've followed the excellent guide on how to create a bootable USB and then how to install Ubuntu Server.
The installation goes perfectly.
When booting, however, the POST flashes by, the GRUB menu flickers by and a few initial boot logs flashes by too quick to read anything from, then the screen goes black and into power save mode.
I attempted the recovery mode from the GRUB-menu, but that doesn't work either.
I've tried using a monitor with DVI-D input, and also another monitor with HDMI-input. No difference.
I've also tried using Parted Magic, but after selecting which mode to run in, the last log to be seen is Setting up system devices...
, then it goes black.
During the installation, I opted to install OpenSSH
, but an NMap
scan on my network doesn't show any open ports on the fit-PC. Connecting with PuTTY
on port 22 is refused. I guess this is because I haven't logged in yet, but I don't know how to do that without seeing anything...
Note that the PC is not dead. The power indicator is on, and the HDD-LED is flashing for a while more.
Now I don't know what to do anymore... ):
UPDATE:
After a week of troubleshooting, I believe the problem is that Linux is trying to use the preferred resolution (which is 1920x1200 for my monitor), but vbeinfo
does not support that mode.
I have successfully manipulated the kernel arguments by updating the GRUB configuration. I also tried the same settings directly from the GRUB boot menu with the same result.
/etc/default/grub:
GRUB_GFXMODE=1280x1024x32
GRUB_GFXPAYLOAD_LINUX=keep
GRUB_CMDLINE_LINUX_DEFAULT="vga=0x31b"
Linux kernel arguments from GRUB-menu:
vga=0x31b
The arguments splash
and quiet
were removed, and I also tried with and without nomodeset
.
This resolution works during the initial stages of the boot phase. The boot loader (GRUB2) works fine, and the initial logs from the kernel appear in the correct resolution.
However, about 4 seconds in, the monitor flickers, then goes into power save mode. The following prints from dmesg
are the only ones that seem relevant:
[ 2.167156] vesafb: mode is 1280x1024x32, linelength=5120, pages=0
[ 2.167171] vesafb: scrolling: redraw
[ 2.167186] vesafb: Truecolor: size=8:8:8:8, shift=24:16:8:0
[ 2.167221] pmd_set_huge: Cannot satisfy [mem 0x3f800000-0x3fa00000] with a huge-page mapping due to MTRR override.
[ 2.167296] vesafb: framebuffer at 0x3f800000, mapped to 0xf8600000, using 5120k, total 5120k
[ 2.187861] Console: switching to colour frame buffer device 160x64
[ 2.208045] fb0: VESA VGA frame buffer device
...
[ 4.046290] gma500 0000:00:02.0: trying to get vblank count for disabled pipe 1
[ 4.048009] gma500 0000:00:02.0: trying to get vblank count for disabled pipe 1
[ 4.097391] microsoft 0003:045E:00DB.0002: input,hidraw1: USB HID v1.11 Device [Microsoft Natural® Ergonomic Keyboard 4000] on usb-0000:00:1d.0-2/input1
[ 4.260422] gma500 0000:00:02.0: Backlight lvds set brightness 7a120000
[ 4.268990] [drm] Initialized gma500 1.0.0 20140314 for 0000:00:02.0 on minor 0
I think it is right about [ 4.046290] gma500 0000:00:02.0: trying to get vblank count for disabled pipe 1
that the monitor turns off.
It seems the GMA-drivers are loaded:
$ lsmod | grep gma
gma500_gfx 217088 0
i2c_algo_bit 16384 1 gma500_gfx
drm_kms_helper 139264 1 gma500_gfx
drm 311296 3 drm_kms_helper,gma500_gfx
video 40960 1 gma500_gfx
And the Poulsbo device is using GMA500:
$ lspci -nnk | grep -iA2 Graphics
00:02.0 VGA compatible controller [0300]: Intel Corporation System Controller Hub (SCH Poulsbo) Graphics Controller [8086:8108] (rev 07)
Subsystem: Intel Corporation System Controller Hub (SCH Poulsbo) Graphics Controller [8086:8119]
Kernel driver in use: gma500
Kernel modules: gma500_gfx
According to these findings, I believe the original question has changed a bit.
How can I make the Linux kernel keep using the same (working) resolution as specified by GRUB?