Comment 236 for bug 546393

Revision history for this message
In , 6-j-p (6-j-p) wrote :

Created attachment 109963
9400M dmesg

What follows is my partially working workaround for my 9400M in my MacBook Pro 5,1. For my fully working workaround for my 9600M GT see https://bugs.freedesktop.org/show_bug.cgi?id=86537

The following was tested with a kernel 3.18-rc6 (without applying any of the patches here):

(1) Append 'modprobe.blacklist=nouveau' to the kernel boot parameters
This allows the system to boot.
(2) Once booted, as root, reset the 9400M GPU: 'echo 1 > /sys/bus/pci/devices/0000:03:00.0/reset'
(3) 'echo 1 > /sys/bus/pci/devices/0000:03:00.0/rescan'
(4) 'echo 1 > /sys/bus/pci/devices/0000:02:00.0/remove'
This completely removes the 9600M GT GPU from the system so nouveau does not use in when we load the module in the next step.
(5) 'modprobe nouveau'

where
0000:03:00.0 is the PCI address of my 9400M
and
0000:02:00.0 is the PCI address of my 9600M GT.

Nouveau seemingly loads fine for the 9400M, however I find myself unable to actually use my 9400M GPU for anything (while repeating the same above steps for my 9600M GT works fine). For example, starting gdm with the 9400M does nothing. I believe this is because the 9400M GPU is not "connected" to any display (since it was not selected in OSX). I've attached dmesg logs for loading nouveau for each of the GPUs in my laptop here. Notice that for the working 9600M GT, the log shows:
nouveau [ DRM] allocated 1440x900 fb: 0x70000, bo ffff88014750d400
1449x900 is the native resolution of my laptop's display.

while for the non-working 9400M, the log shows:
nouveau 0000:03:00.0: No connectors reported connected with modes
[drm] Cannot find any crtc or sizes - going 1024x768
nouveau [ DRM] allocated 1024x768 fb: 0x50000, bo ffff88014715a400

I think I'm pretty close to having a universal working solution for both GPUs here. Does anyone know how I can "connect" my 9400M GPU with my display?

I've tried fiddling a bit with xrandr after loading nouveau for the 9400M, but it seems to always report no displays found.