When I recently installed Ubuntu 16.10 on a new machine (ASRock Z170 Gaming-ITX/AC S1151 M-ITX Intel Motherboard with Intel Core Skylake Processor i5-6500/3.2 GHz Processor CPU), I got a blank screen on first boot.
After a lot of searching around on the web, I discovered I could boot correctly into Linux using nomodeset
on the kernel command line. However, this limits my graphics options as xrandr -q
only reports one monitor:
xrandr: Failed to get size of gamma for output default
Screen 0: minimum 1024 x 768, current 1024 x 768, maximum 1024 x 768
default connected 1024x768+0+0 0mm x 0mm
1024x768 76.00*
I've read lots of websites suggesting that this was a problem in earlier kernel versions (which need i915.preliminary_hw_support=1
) and that with 4.3+ it should be fine, but I have:
Linux mypc 4.8.0-26-generic #28-Ubuntu SMP Tue Oct 18 14:39:52 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
So I think this shouldn't be a problem. Based on some websites I've read, I've tried all of the following kernel options (and a few combinations largely at random), but none have helped:
i915.preliminary_hw_support=1
i915.i915_enable_rc6=1
nolapic
In all cases, I removed quiet splash
so that I could see what was happening. Depending on the option, the visible boot process gets to a different place. With nomodeset
it gets all the way to the virtual console (I started with a server install so I could better choose the packages I wanted). Without nomodeset
, it gets as far as:
[ 5.088899] fb: switching to inteldrmfb from VESA VGA
With nolapic
as the only addition, it gets a couple of lines further on (both related to SATA stuff I think). This might be relatively random though as I've tried this a few times and got to a different stage in the SATA stuff (but always within a 100th of a second or so after the fb:
line)
With i915.i915_enable_rc6=1
, I get a message saying:
i915: unknown parameter 'i915_enable_rc6' ignored`
So that's obviously not doing anything.
I've also tried adding i915
and nvme
into /etc/modules
, but again: no discernible effect.
All of the above came from various different forums (and this site), but I'm afraid I didn't keep note of all of the references – hence not linking to any of the original questions.
In the case of the empty kernel line (just the stuff added by the installer and no nomodeset
), if I ssh into the machine and startx
, I can run xrandr
and see:
Screen 0: minimum 8 x 8, current 1280 x 1024, maximum 32767 x 32767
DP1 disconnected (normal left inverted right x axis y axis)
DP2 connected 1280x1024+0+0 (normal left inverted right x axis y axis) 376mm x 301mm
1280x1024 60.02 + 75.02
1920x1080 60.00 59.94
1152x864 75.00
1280x720 60.00 59.94
1024x768 75.03 72.00 70.07 60.00
800x600 72.19 75.00 60.32 56.25
720x480 60.00 59.94
640x480 75.00 72.81 60.00 59.94
720x400 70.08
HDMI1 disconnected (normal left inverted right x axis y axis)
HDMI2 disconnected (normal left inverted right x axis y axis)
HDMI3 connected 1280x1024+0+0 (normal left inverted right x axis y axis) 531mm x 299mm
1920x1080 60.00 + 50.00 59.94 59.99
1920x1080i 60.00 50.00 59.94
1600x1200 60.00
1680x1050 59.88
1280x1024 75.02 60.02
1440x900 59.90
1280x960 60.00
1366x768 59.79
1152x864 75.00
1280x720 60.00 50.00 59.94
1024x768 75.03 70.07 60.00
832x624 74.55
800x600 72.19 75.00 60.32 56.25
720x576 50.00
720x480 60.00 59.94
640x480 75.00 72.81 66.67 60.00 59.94
720x400 70.08
VIRTUAL1 disconnected (normal left inverted right x axis y axis)
1280x1024 (0x4a) 540.000MHz +HSync +VSync
h: width 1280 start 1328 end 1440 total 1688 skew 0 clock 319.91KHz
v: height 1024 start 1025 end 1028 total 1066 clock 300.10Hz
… suggesting the driver is working to some degree, there's just nothing being drawn on the screen.
Can anyone offer any suggestions for what I'm doing wrong?
I can obviously add more information as required, but I'm not sure what to add at the moment.
Edit 1
This is my current grub configuration /etc/default/grub
# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
# info -f grub -n 'Simple configuration'
GRUB_DEFAULT=0
#GRUB_HIDDEN_TIMEOUT=0
#GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="nomodeset"
GRUB_CMDLINE_LINUX=""
# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"
# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console
# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
GRUB_GFXMODE=1024x768
# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true
# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"
# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"
This is the bit of /boot/grub/grub.cfg that seems most relevant:
menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-c21835f3-4aaf-4880-b573-19a361a72db9' {
recordfail
load_video
gfxmode $linux_gfx_mode
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_msdos
insmod ext2
set root='hd1,msdos1'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd1,msdos1 --hint-efi=hd1,msdos1 --hint-baremetal=ahci1,msdos1 c21835f3-4aaf-4880-b573-19a361a72db9
else
search --no-floppy --fs-uuid --set=root c21835f3-4aaf-4880-b573-19a361a72db9
fi
linux /boot/vmlinuz-4.8.0-26-generic root=UUID=c21835f3-4aaf-4880-b573-19a361a72db9 ro nomodeset
initrd /boot/initrd.img-4.8.0-26-generic
}
Edit 2
The Xorg.log is here: http://pastebin.com/nvNwTPj4
I've rebooted and (in the grub edit screen) removed nomodeset and also removed the gfxmode line (since I've had some comments about removing vga=, but haven't actually got vga= to remove). This resulted in the same blank screen as before.
I've also tried just having text
on the boot line, but this got to the same place as without anything (switching to inteldrmfb
etc as above).
Edit 3
Following a suggestion from @Mladen:
-
I've now tried installing the intel graphics drivers from https://01.org/linuxgraphics/intel-linux-graphics-firmwares – both Skylake ones – the GuC and DMC installed according to the instructions. I then rebooted without
nomodeset
on the boot line and the screen went blank at the same point as in the other tests. Interestingly though, it stated:W: Possible missing firmware /lib/firmware/i915/kbl_guc_ver9_14.bin for module i915
W: Possible missing firmware /lib/firmware/i915/bxt_guc_ver8_7.bin for module i915
The output of ls -l /lib/firmware/i915
shows:
total 412
-rw-r--r-- 1 root root 8380 Aug 15 15:40 bxt_dmc_ver1_07.bin
lrwxrwxrwx 1 root root 19 Aug 15 15:40 bxt_dmc_ver1.bin -> bxt_dmc_ver1_07.bin
-rw-r--r-- 1 root root 8616 Aug 15 15:40 kbl_dmc_ver1_01.bin
lrwxrwxrwx 1 root root 19 Aug 15 15:40 kbl_dmc_ver1.bin -> kbl_dmc_ver1_01.bin
-rw-r--r-- 1 root root 8824 Sep 14 13:47 skl_dmc_ver1_23.bin
-rw-r--r-- 1 root root 8928 Nov 10 17:54 skl_dmc_ver1_26.bin
lrwxrwxrwx 1 root root 38 Nov 10 17:54 skl_dmc_ver1.bin -> /lib/firmware/i915/skl_dmc_ver1_26.bin
-rw-r--r-- 1 root root 109636 Aug 15 15:40 skl_guc_ver1.bin
-rw-r--r-- 1 root root 128320 Aug 15 15:40 skl_guc_ver4.bin
-rw-r--r-- 1 root root 129024 Nov 10 17:53 skl_guc_ver6_1.bin
lrwxrwxrwx 1 root root 37 Nov 10 17:53 skl_guc_ver6.bin -> /lib/firmware/i915/skl_guc_ver6_1.bin
which shows much earlier versions of firmware than the ones that initramfs seems to be expecting
-
Following this, I followed the instructions here to upgrade to kernel version 4.8.6 (this also reported the missing firmware lines as above). I then rebooted (again without
nomodeset
) and again it got to exactly the same place. -
Since the error above had seemed to relate to firmware for Kabylake and Broxton processors (although I'm fairly sure I have a Skylake one), I downloaded the latest files for those two from here – this only seems to be DMC stuff though. Installing both of those produced the same messages regarding missing firmware (presumably since they were DMC files and the version numbers were different). Unsurprisingly, the result is exactly the same: without
nomodeset
, the screen freezes afterfb: switching to inteldrmfb from VESA VGA
.
From what I've read, these firmware files are related to unreleased processors, so it's unlikely to be relevant anyway, but I thought it was worth a try.
Edit 4
In case it helps, I've pasted a complete dmesg
output from a nomodeset boot and a non-nomodeset, blank screen boot. There are some differences (including loading of the skl_dmc_ver1_26.bin
file, but I'm not sure what to make of it all…
Edit 5
I've also now tried this with kernel 4.8.7, but the behaviour is the same as with 4.8.0 or 4.8.6. Installing the intel microcode version 3.20160714.1 also didn't make any noticeable difference.
Edit 6
In case this turns out to be a kernel bug related in some way to this one, I've raised a bug on the kernel bugzilla page – https://bugzilla.kernel.org/show_bug.cgi?id=187601
Best Answer
Are you using the display port ? I am also having troubles with skylake, kernel 4.8 and i915 drivers with Ubuntu 16.10 ==> Intel didn't release the latest graphics stack for 16.10 yet.
You could try to:
1) Switch back to Ubuntu 16.04 LTS (and kernel 4.4.x)
2) Use kernel 4.6.7: http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.6.7/
3) Use the latest drm-intel-nightly kernel: http://kernel.ubuntu.com/~kernel-ppa/mainline/drm-intel-nightly/ (but there is no amd64 successful build available anymore, last was 2016-10-19)