The only reason why I did not switched to the
NOUVEAU driver up to now was the lack of 3D acceleration. I was not following this issue and did read by chance
this mail on another interesting topic (Gnome 3), which was redirecting me to
this other mail, giving the status of 3D NOUVEAU acceleration: just install the
libgl1-mesa-dri-experimental package!
Gave it a try, and... yes!
Okay, you better have a nvidia card supported by the NOUVEAU driver of course: nvidia cards are grouped by
Codenames, find yours, and then check the
status matrix for you card. Mine is:
% lspci|grep VGA
01:00.0 VGA compatible controller: nVidia Corporation GT216 [GeForce GT 220] (rev a2)
i.e. the NV50 family that has quite a good status in the NOUVEAU status matrix.
And indeed, glxinfo is happy:
% glxinfo|egrep -i "rendering|GLX"
direct rendering: Yes
server glx vendor string: SGI
server glx version string: 1.4
server glx extensions:
GLX_ARB_multisample, GLX_EXT_import_context, GLX_EXT_texture_from_pixmap,
GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_MESA_copy_sub_buffer,
GLX_OML_swap_method, GLX_SGI_make_current_read, GLX_SGI_swap_control,
GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer,
GLX_SGIX_visual_select_group, GLX_INTEL_swap_event
client glx vendor string: Mesa Project and SGI
client glx version string: 1.4
client glx extensions:
GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_import_context,
GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_EXT_framebuffer_sRGB,
GLX_MESA_copy_sub_buffer, GLX_MESA_multithread_makecurrent,
GLX_MESA_swap_control, GLX_OML_swap_method, GLX_OML_sync_control,
GLX_SGI_make_current_read, GLX_SGI_swap_control, GLX_SGI_video_sync,
GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer,
GLX_SGIX_visual_select_group, GLX_EXT_texture_from_pixmap,
GLX_INTEL_swap_event
GLX version: 1.4
GLX extensions:
GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_import_context,
GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_MESA_copy_sub_buffer,
GLX_MESA_multithread_makecurrent, GLX_MESA_swap_control,
GLX_OML_swap_method, GLX_OML_sync_control, GLX_SGI_make_current_read,
GLX_SGI_swap_control, GLX_SGI_video_sync, GLX_SGIS_multisample,
GLX_SGIX_fbconfig, GLX_SGIX_pbuffer, GLX_SGIX_visual_select_group,
GLX_EXT_texture_from_pixmap, GLX_INTEL_swap_event
96 GLX Visuals
144 GLXFBConfigs:
confirmed by glxgears, giving a little bit less than 800 FPS.
Very well done, developpers.
So I removed the NIVIDIA proprietary driver:
% apt-get remove --purge nvidia-glx xserver-xorg-video-nvidia libgl1-nvidia-glx nvidia-alternative libgl1-nvidia-alternatives nvidia-kernel-dkms nvidia-settings nvidia-vdpau-driver nvidia-xconfig
,
installed the NOUVEAU driver:
% apt-get -t unstable install libgl1-mesa-dri-experimental xserver-xorg-video-nouveau
,
remove my hacked xorg.conf that was:
Section "ServerFlags"
Option "ignoreABI" "true"
EndSection
Section "Module"
Load "glx"
EndSection
Section "Device"
Identifier "Video Card"
Driver "nvidia"
EndSection
,
rebooted, and it works. Again many thanks to the NOUVEAU developpers. This is simply a great and professional work.
PS: do not remove APIC when you boot linux, I am a noob in kernel knowledge, but indeed this was an error (I was playing with various settings on my realtime version of the kernel). And the "noapic" option was a leftover from this (more precisely, I was playing with the IRQ interrupts!). The NOUVEAU driver failed first, saying: "(EE) NOUVEAU(0): failed to set mode: Device or resource busy"... Removing the "noapic" from the kernel boot options was enough to get NOUVEAU driver back to life