20 feb 2011
well, how to say it politely: proprietary driver, go to hell! lately i’ve been using =x11-drivers/nvidia-drivers-260.19.29 with:
enabled/disabled in various combinations but the laptop was crashing all over the place, that includes:
i probably had 2-6 crashes per day at least. but on the bright side i did not have much file loss because i migrated from xfs to ext3!
i’ve had issues with this since i bought the laptop!
i’ve been experimenting with ‘/usr/src/linux/Documentation/networking/netconsole.txt’ which is a very very important tool when tracking down kernel related issues. before KMS + nouveau + gallium3d a kernel crash would not ‘bluescreen’ on linux when using the old driver architecture. KMS makes this possible now.
back then i was using the nvidia.ko driver, so i create a little setup to track down the problem:
setup here is pretty easy, inside a screen console, issue this command:
nc -l -u -p 6666
or
nc -l -u -p 6666 | tee ~/netconsole.log
using screen makes it easy to retrieve the error log later for saving it to a file.
start that script every new boot as root:
ip a del 192.168.100.233/24 dev eth0
ip a add 192.168.100.233/24 brd 192.168.100.255 dev eth0
rmmod netconsole
sleep 1
dmesg -n 8
modprobe netconsole netconsole=4444@192.168.100.233/eth0,6666@192.168.100.10/00:64:18:34:13:63
syntax:
netconsole=[src-port]@[src-ip]/[
where
src-port source for UDP packets (defaults to 6665)
src-ip source IP to use (interface address)
dev network interface (eth0)
tgt-port port for logging agent (6666)
tgt-ip IP address for logging agent
tgt-macaddr ethernet MAC address for logging agent (broadcast)
note: dmesg -n 8 is very important!
right after you start the script on the laptop** this (or similar) should appear**:
netconsole: network logging started
netconsole: local port 4444
netconsole: local IP 192.168.100.233
netconsole: interface 'eth0'
netconsole: remote port 6666
netconsole: remote IP 192.168.100.10
if not, then something is wrong! check that the connection works by using this command:
echo -n "hello world" | nc -u 192.168.100.10 6666
but notice:
the nc receiver will attach to one source port number. so if you run that echo, it will attach to that source port number and then it will ignore anything coming from netconsole (another source port number)
therefore restart nc on the remote machine.
the problem for me was that** i wasn’t able to record any nvidia related bug as it was probably a hardlock**, i did not try to use the ‘sys key’ but it would have been a good idea. the logging works for some ‘suspend/resume issues’.
Note: use the ethernet devices, it does not work with the wireless lan devices!
since yesterday i’m using =x11-drivers/xf86-video-nouveau-0.0.16_pre20101130 for 2d (3d does not work yet). a friend with the same laptop reported that on his debian machine also 3d support is working. so far i only had one crash after 7x suspend/resume cycling. this is very good as it makes working with that computer now possible. 3d support as running =x11-apps/mesa-progs-8.0.1 glxgears/glxinfo only produces a black window which seems to do nothing. at least 3d does not ‘segfault’ the application using it as yesterday before i did: ‘emerge -uDN world’ properly.
‘blue screens’ on linux are actually ‘black screens’ and it is finally working which is a very good thing. still i did not understand why my laptop was crashing after the 7th resume cycle. i have to learn how to interpret such a trace ;-). at least i got a backtrace in comparison to the netconsole approch (using the nvidia.ko driver).
last time i tried to install the nouveau driver on my gentoo based laptop i had many troubles. this time i only emerged a few packages as x11-drivers/xf86-video-nouveau and it was working after i blacklisted the nvidia module and adapted my xorg.conf to use nouveau by deleting it.
2d performance is really good and power saving seems to be implemented now as the fan gets very silent now. not quite as silent compared to the nvidia.ko driver but much much better compared to the last time i tried nouveau.
there are not 2d drawing artefacts anymore and scrolling in the browser is very performant and feels good.
i’m using a setup where both NX and VT are enabled and working. all my virtual machines using virtualbox are running.
suspend/resume does not work 100% well as the screen brightness is setup to the minimum level after resume and it can not be changed so far.
i think that x11-drivers/nvidia-drivers finally bites the dust for several reasons:
thanks to all developers of nouveau to make this possible! i owe you one!!
Edit: some updates as:
i guess both things are related to caching done wrongly