X11 does not detect nouveau when using the linux kernel EFI Loader (GRUB loader works fine)
Submitted by Jeremy Huddleston Sequoia
Assigned to Nouveau Project
Description
When using the Linux Kernel's EFI Boot Loader stub, X11 1.18.3 fails to start. Everything works fine when using GRUB as the boot loader.
The kernel is based on 4.4.15 (specifically, Ubuntu's 4.4.0-34 kernel.
Looking at dmesg shows some interesting differences regarding fb, which is why I suspect the device isn't getting automatically detected:
$ egrep '^(nouveau|.fb).:' dmesg.notime
efifb: dmi detected MacBookPro3,1 - framebuffer at 0xc0030000 (1440x900, stride 8192)
efifb: probing for efifb
efifb: framebuffer at 0xc0030000, mapped to 0xffffc90000800000, using 7232k, total 7232k
efifb: mode is 1440x900x32, linelength=8192, pages=1
efifb: scrolling: redraw
efifb: Truecolor: size=8:8:8:8, shift=24:16:8:0
fb0: EFI VGA frame buffer device
nouveau 0000:01:00.0: enabling device (0002 -> 0003)
fb: switching to nouveaufb from EFI VGA
nouveau 0000:01:00.0: NVIDIA G84 (084700a2)
nouveau 0000:01:00.0: bios: version 60.84.49.03.00
nouveau 0000:01:00.0: fb: 128 MiB GDDR3
nouveau 0000:01:00.0: DRM: VRAM: 128 MiB
nouveau 0000:01:00.0: DRM: GART: 1048576 MiB
nouveau 0000:01:00.0: DRM: TMDS table version 2.0
nouveau 0000:01:00.0: DRM: DCB version 4.0
nouveau 0000:01:00.0: DRM: DCB outp 00: 01000123 00010034
nouveau 0000:01:00.0: DRM: DCB outp 01: 02011210 00000028
nouveau 0000:01:00.0: DRM: DCB outp 02: 02011212 00010030
nouveau 0000:01:00.0: DRM: DCB outp 03: 01011211 0080c070
nouveau 0000:01:00.0: DRM: DCB conn 00: 0040
nouveau 0000:01:00.0: DRM: DCB conn 01: 1120
nouveau 0000:01:00.0: DRM: unknown connector type 20
nouveau 0000:01:00.0: DRM: failed to create encoder 0/1/0: -19
nouveau 0000:01:00.0: DRM: MM: using CRYPT for buffer copies
nouveau 0000:01:00.0: DRM: allocated 1440x900 fb: 0x50000, bo ffff880035b24400
fbcon: nouveaufb (fb0) is primary device
nouveau 0000:01:00.0: fb0: nouveaufb frame buffer device
linux-efi-loader $ egrep '^(nouveau|.fb).:' dmesg.notime
nouveau 0000:01:00.0: enabling device (0002 -> 0003)
nouveau 0000:01:00.0: NVIDIA G84 (084700a2)
nouveau 0000:01:00.0: bios: version 60.84.49.03.00
nouveau 0000:01:00.0: fb: 128 MiB GDDR3
nouveau 0000:01:00.0: DRM: VRAM: 128 MiB
nouveau 0000:01:00.0: DRM: GART: 1048576 MiB
nouveau 0000:01:00.0: DRM: TMDS table version 2.0
nouveau 0000:01:00.0: DRM: DCB version 4.0
nouveau 0000:01:00.0: DRM: DCB outp 00: 01000123 00010034
nouveau 0000:01:00.0: DRM: DCB outp 01: 02011210 00000028
nouveau 0000:01:00.0: DRM: DCB outp 02: 02011212 00010030
nouveau 0000:01:00.0: DRM: DCB outp 03: 01011211 0080c070
nouveau 0000:01:00.0: DRM: DCB conn 00: 0040
nouveau 0000:01:00.0: DRM: DCB conn 01: 1120
nouveau 0000:01:00.0: DRM: unknown connector type 20
nouveau 0000:01:00.0: DRM: failed to create encoder 0/1/0: -19
nouveau 0000:01:00.0: DRM: MM: using CRYPT for buffer copies
nouveau 0000:01:00.0: DRM: allocated 1440x900 fb: 0x50000, bo ffff88007f5d6400
nouveau 0000:01:00.0: fb0: nouveaufb frame buffer device
The differences in the Xorg.0.logs for the failed/working case is essentially some memory address / time / kernel boot arg differences and then the tail hunk:
@@ -174,323 +174,13 @@ nouveau interface version: 1.3.1
compiled for 1.18.3, module version = 0.0.2
ABI class: X.Org Video Driver, version 20.0
(WW) Falling back to old probe method for vesa
-(II) Loading sub module "dri2"
-(II) LoadModule: "dri2"
-(II) Module "dri2" already built-in
-(--) NOUVEAU(0): Chipset: "NVIDIA NV84"
-(II) NOUVEAU(0): Creating default Display subsection in Screen section
- "Default Screen Section" for depth/fbbpp 24/32
... more - for the successful launch
+(EE) No devices detected.
...