A while back I purchased a 512MB Galaxy GeForce 9600 GSO card for about 45 bucks.
Anyways, 3D acceleration never worked on this thing and the NVIDIA drivers would always fail, and the following message would show up in the dmesg:
vmap allocation for size 16781312 failed: use vmalloc=<size ..
Finally, here's how I fixed it. According to http://http.download.nvidia.com/XFree86/Linux-x86/190.42/README/chapter-09.html adding vmalloc=512MB to the kernel should fix it. So, temporarily, I edited /boot/grub/grub.cfg (grub v1 people should use menu.lst) and tagged vmalloc=512MB somewhere at the end.
linux /boot/vmlinuz-2.6.31-16-generic root=UUID=7b32764a-9004-42a8-98d7-4e48ec97dc06 ro quiet splash vmalloc=512MB
This finally fixed it.
For grub2 people, edit /etc/default/grub and add vmalloc=512MB to GRUB_CMDLINE_LINUX_DEFAULT . Here's mine:
# If you change this file, run 'update-grub' afterwards to update # /boot/grub/grub.cfg. GRUB_DEFAULT=0 #GRUB_HIDDEN_TIMEOUT=0 GRUB_HIDDEN_TIMEOUT_QUIET=false GRUB_TIMEOUT="10" GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian` GRUB_CMDLINE_LINUX_DEFAULT="quiet splash vmalloc=512MB" GRUB_CMDLINE_LINUX="" # 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=640x480 # 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 entrys #GRUB_DISABLE_LINUX_RECOVERY="true"
Finally do sudo update-grub
This should also work for 9600 GT.
MeasureIt