2

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?

Reyhn
  • 121

4 Answers4

2

I've been trying to do the very same thing (Ubuntu Server 16.04 -> FitPC2) and I've encountered the same problem.

Unfortunately, I haven't found any way to fix the display resolution either, but I did find a ...

Workaround:

Finding a smaller display worked for me (I had one Adafruit 800x480 HDMI display lying around). There is apparently a switch between the basic driver and the gma500_gfx driver, but to a supported resolution at least. You can do basic config this way and use ssh connection later...

1

Some options to try:

To the grub linux line, add video=XRESxYRES@REFRESHRATE and then disable some of the extra video ports (video=DP-2:d) as per this:

https://wiki.archlinux.org/index.php/Kernel_mode_setting#Forcing_modes

I know that my board would try to output to LVDS-1 by default, a bug in the obscure Intel (rebranded offbrand) graphics chip onboard I'm told, so I disabled LVDS-1 in the kernel. And that looked like: video=LVDS-1:d

To check if this will work, on boot up you will need to mash e (once you get into the edit mode, make sure to erase any extra 'e's you may have added), which will bring you into "Edit GRUB" mode.

Then find the linux line, you need to add the parameters described above.

You'll end up with something like:

linux   /boot/vmlinuz-4.15.0-32-generic root=UUID=abcd-ef-ghi12345-etc ro  video=LVDS-1:d video=DP-2:d 

These Intel boards aren't terrible, until they are.

abu_bua
  • 10,783
TygerTy
  • 136
0

Same problem with a fitpc2 and Debian Linux 10. Workaround:

  • At the boot screen / GRUB menu, hit e
  • There is a line starting with linux /boot/...
  • Append this here to the line mobprobe.blacklist=gma500_gfx
  • Hit F10 to boot with this temporary fix

This prevents the gma500_gfx driver from being loaded and blacking out the screen. Once booted you can also make the blacklisting permanent if you want.

For me it didn't matter (headless system).

cpma
  • 1
0

The gma_gfx500 module makes display go blank

The following worked for me...

Blacklist the gma_gfx500 module

Add the following line to /etc/modprobe.d/blacklist.conf

blacklist gma500_gfx

And run the command to update initramfs

sudo update-initramfs -u

Edit the grub defaults file /etc/default/grub

Change the line

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

To

GRUB_CMDLINE_LINUX_DEFAULT="quiet nomodeset"

Run the command to update GRUB

sudo update-grub

And reboot