Using unsupported Nvidia hardware with mx-linux >= 18

Message
Author
User avatar
legacyland
Posts: 4
Joined: Sat Nov 20, 2021 3:56 pm

Using unsupported Nvidia hardware with mx-linux >= 18

#1 Post by legacyland »

Hello! I'm new here so apologies if this is too niche or posted in the wrong place. I rescued a useless old mac (iMac 6,1 - 2.16Ghz Core 2 Duo 24") from work a few years back and have been having many hours of good clean fun getting a nice, usable Linux installation on it. It was quite nice and stable with various light Ubuntus (LXDE and XFCE) in the past, after dealing with a quirky EFI (well documented elsewhere), and getting bluetooth and isight and broadcom issues worked out. In fact last year my son did pandemic 10th grade on this machine (mucho google docs and zoom with probably a discord window on the side). Well this year the machine comes back to my desk and won't play so nice with the newer kernel versions. I'm writing to share what I've found and hopefully make the path lighter for others keeping these lovely machines out of the landfill and useful. So far MX-Linux has been just beautiful and performant on what is surely the Volvo 240 of desktop all-in-ones.

System details:

Code: Select all

System:
  Host: <filter> Kernel: 5.10.0-9-amd64 x86_64 bits: 64 
  compiler: N/A 
  parameters: BOOT_IMAGE=/boot/vmlinuz-5.10.0-9-amd64 
  root=UUID=<filter> ro 
  nouveau.noaccel=1 
  Desktop: i3 4.19.1-non-git info: i3bar dm: LightDM 1.26.0 
  Distro: MX-21_x64 Wildflower October 20  2021 
  base: Debian GNU/Linux 11 (bullseye) 
Machine:
  Type: Desktop System: Apple product: iMac6,1 v: 1.0 
  serial: <filter> Chassis: type: 13 v: Mac-F4218FC8 
  serial: <filter> 
  Mobo: Apple model: Mac-F4218FC8 v: DVT serial: <filter> 
  UEFI: Apple v: IM61.88Z.0093.B07.0706281250 date: 06/28/07 
CPU:
  Topology: Dual Core model: Intel Core2 T7400 bits: 64 type: MCP 
  arch: Core Merom family: 6 model-id: F (15) stepping: 6 
  microcode: D1 L2 cache: 4096 KiB 
  flags: lm nx pae sse sse2 sse3 ssse3 vmx bogomips: 8645 
  Speed: 1066 MHz min/max: 1000/2167 MHz Core speeds (MHz): 
  1: 1214 2: 1304 
  Vulnerabilities: Type: itlb_multihit status: KVM: VMX disabled 
  Type: l1tf mitigation: PTE Inversion; VMX: EPT disabled 
  Type: mds status: Vulnerable: Clear CPU buffers attempted, no 
  microcode; SMT disabled 
  Type: meltdown mitigation: PTI 
  Type: spec_store_bypass status: Vulnerable 
  Type: spectre_v1 mitigation: usercopy/swapgs barriers and 
  __user pointer sanitization 
  Type: spectre_v2 
  mitigation: Full generic retpoline, STIBP: disabled, RSB filling 
  Type: srbds status: Not affected 
  Type: tsx_async_abort status: Not affected 
Graphics:
  Device-1: NVIDIA G73 [GeForce 7300 GT] driver: nouveau 
  v: kernel bus ID: 01:00.0 chip ID: 10de:0395 
  Display: x11 server: X.Org 1.20.11 driver: nouveau 
  unloaded: fbdev,modesetting,vesa alternate: nv 
  resolution: 1920x1200~60Hz 
  OpenGL: renderer: llvmpipe (LLVM 11.0.1 128 bits) 
  v: 4.5 Mesa 20.3.5 compat-v: 3.1 direct render: Yes 
Audio:
  Device-1: Intel NM10/ICH7 Family High Definition Audio 
  vendor: Realtek driver: snd_hda_intel v: kernel bus ID: 00:1b.0 
  chip ID: 8086:27d8 
  Sound Server: ALSA v: k5.10.0-9-amd64 
Network:
  Device-1: Marvell 88E8053 PCI-E Gigabit Ethernet driver: sky2 
  v: 1.30 port: 1000 bus ID: 02:00.0 chip ID: 11ab:4362 
  IF: eth0 state: down mac: <filter> 
  Device-2: Broadcom and subsidiaries BCM4321 802.11a/b/g/n 
  vendor: Apple AirPort Extreme driver: b43-pci-bridge v: N/A 
  port: 1000 bus ID: 03:00.0 chip ID: 14e4:4328 
  IF-ID-1: wlan0 state: up mac: <filter> 
Drives:
  Local Storage: total: 247.33 GiB used: 6.74 GiB (2.7%) 
  ID-1: /dev/sda vendor: Seagate model: ST3250824AS Q 
  size: 232.89 GiB block size: physical: 512 B logical: 512 B 
  speed: 1.5 Gb/s serial: <filter> rev: H scheme: GPT 
  ID-2: /dev/sdb type: USB model: USB DISK 2.0 size: 14.44 GiB 
  block size: physical: 512 B logical: 512 B serial: <filter> 
  rev: PMAP scheme: MBR 
Partition:
  ID-1: / raw size: 47.93 GiB size: 46.88 GiB (97.80%) 
  used: 6.51 GiB (13.9%) fs: ext4 dev: /dev/sda2 
  ID-2: /home raw size: 180.32 GiB size: 176.43 GiB (97.84%) 
  used: 232.9 MiB (0.1%) fs: ext4 dev: /dev/sda4 
  ID-3: swap-1 size: 4.37 GiB used: 3.8 MiB (0.1%) fs: swap 
  swappiness: 15 (default 60) cache pressure: 100 (default) 
  dev: /dev/sda3 
Sensors:
  System Temperatures: cpu: 48.0 C mobo: N/A gpu: nouveau 
  temp: 56 C 
  Fan Speeds (RPM): cpu: 998 
Repos:
  No active apt repos in: /etc/apt/sources.list 
  Active apt repos in: /etc/apt/sources.list.d/debian-stable-updates.list 
  1: deb http://deb.debian.org/debian bullseye-updates main contrib non-free
  Active apt repos in: /etc/apt/sources.list.d/debian.list 
  1: deb http://deb.debian.org/debian bullseye main contrib non-free
  2: deb http://security.debian.org/debian-security bullseye-security main contrib non-free
  Active apt repos in: /etc/apt/sources.list.d/mx.list 
  1: deb http://la.mxrepo.com/mx/repo/ bullseye main non-free
Info:
  Processes: 172 Uptime: 16h 25m Memory: 2.91 GiB 
  used: 952.5 MiB (31.9%) Init: SysVinit v: 2.96 runlevel: 5 
  default: 5 Compilers: gcc: 10.2.1 alt: 10 
  Shell: quick-system-in running in: quick-system-in inxi: 3.0.36 
The biggest issue with this particular machine is that the built-in video card (NVIDIA G73) is unsupported by nvidia and needs a kernel parameter tweak to run reliably with the Nouveau driver. A few years ago, installing nvidia-legacy-304xx-driver worked fine for me, but that's not an option with kernel versions after 4.2, I believe. What happens is the live disk runs fine and installs fine. Yet when booting into the fresh installation the system freezes up randomly and usually within a few minutes under light activity, leaving a working mouse pointer but no ability to quit or change consoles. I could be wrong but I think it's that the xorg session crashes. Adding nomodeset to the boot line quelled the crashing but made the monitor resolution awful.

I tried Mint 19 and 20, Antix 19.4, MX-Linux 18.4, 19.4, 21. Always with the same result. After a crash there would be dozens of lines on system logs like this:

Code: Select all

[  208.748952] nouveau 0000:01:00.0: fifo: DMA_PUSHER - ch 1 [Xorg[2423]] get 0eeef000 put 00025010 state 80020000 (err: INVALID_CMD) push 00000000
[  208.748989] nouveau 0000:01:00.0: fifo: DMA_PUSHER - ch 1 [Xorg[2423]] get 0eeef000 put 00025020 state 80020000 (err: INVALID_CMD) push 00000000
[  208.749047] nouveau 0000:01:00.0: fifo: DMA_PUSHER - ch 1 [Xorg[2423]] get 0eeef000 put 00025030 state 80020000 (err: INVALID_CMD) push 00000000
[  208.749098] nouveau 0000:01:00.0: fifo: DMA_PUSHER - ch 1 [Xorg[2423]] get 0eeef000 put 00025040 state 80020000 (err: INVALID_CMD) push 00000000
[  208.749120] nouveau 0000:01:00.0: fifo: DMA_PUSHER - ch 1 [Xorg[2423]] get 0eeef000 put 00025050 state 80020000 (err: INVALID_CMD) push 00000000
[  209.004833] nouveau 0000:01:00.0: fifo: DMA_PUSHER - ch 1 [Xorg[2423]] get 0eeef000 put 00025060 state 80020000 (err: INVALID_CMD) push 00000000
[  209.340970] nouveau 0000:01:00.0: fifo: DMA_PUSHER - ch 1 [Xorg[2423]] get 0eeef000 put 00025070 state 80020000 (err: INVALID_CMD) push 00000000
[  209.341001] nouveau 0000:01:00.0: fifo: DMA_PUSHER - ch 1 [Xorg[2423]] get 0eeef000 put 00025090 state 80020000 (err: INVALID_CMD) push 00000000
[  209.341044] nouveau 0000:01:00.0: fifo: DMA_PUSHER - ch 1 [Xorg[2423]] get 0eeef000 put 000250a0 state 80020000 (err: INVALID_CMD) push 00000000
[  209.341094] nouveau 0000:01:00.0: fifo: DMA_PUSHER - ch 1 [Xorg[2423]] get 0eeef000 put 000250b0 state 80020000 (err: INVALID_CMD) push 00000000
[  209.341140] nouveau 0000:01:00.0: fifo: DMA_PUSHER - ch 1 [Xorg[2423]] get 0eeef000 put 000250c0 state 80020000 (err: INVALID_CMD) push 00000000
[  209.341161] nouveau 0000:01:00.0: fifo: DMA_PUSHER - ch 1 [Xorg[2423]] get 0eeef000 put 000250d0 state 80020000 (err: INVALID_CMD) push 00000000
[  210.061389] nouveau 0000:01:00.0: fifo: DMA_PUSHER - ch 1 [Xorg[2423]] get 0eeef000 put 000250e0 state 80020000 (err: INVALID_CMD) push 00000000
[  210.149656] nouveau 0000:01:00.0: fifo: DMA_PUSHER - ch 1 [Xorg[2423]] get 0eeef000 put 000250f0 state 80020000 (err: INVALID_CMD) push 00000000
[  210.846394] nouveau 0000:01:00.0: fifo: DMA_PUSHER - ch 1 [Xorg[2423]] get 0eeef000 put 00025100 state 80020000 (err: INVALID_CMD) push 00000000
[  210.846468] nouveau 0000:01:00.0: fifo: DMA_PUSHER - ch 1 [Xorg[2423]] get 0eeef000 put 00025110 state 80020000 (err: INVALID_CMD) push 00000000
[  210.846499] nouveau 0000:01:00.0: fifo: DMA_PUSHER - ch 1 [Xorg[2423]] get 0eeef000 put 00025120 state 80020000 (err: INVALID_CMD) push 00000000
[  210.846512] nouveau 0000:01:00.0: fifo: DMA_PUSHER - ch 1 [Xorg[2423]] get 0eeef000 put 00025130 state 80020000 (err: INVALID_CMD) push 00000000
[  213.391090] nouveau 0000:01:00.0: fifo: DMA_PUSHER - ch 1 [Xorg[2423]] get 0eeef000 put 00025140 state 80020000 (err: INVALID_CMD) push 00000000
[  213.391250] nouveau 0000:01:00.0: fifo: DMA_PUSHER - ch 1 [Xorg[2423]] get 0eeef000 put 00025150 state 80020000 (err: INVALID_CMD) push 00000000
[  213.391520] nouveau 0000:01:00.0: fifo: DMA_PUSHER - ch 1 [Xorg[2423]] get 0eeef000 put 00025160 state 80020000 (err: INVALID_CMD) push 00000000
[  213.391596] nouveau 0000:01:00.0: fifo: DMA_PUSHER - ch 1 [Xorg[2423]] get 0eeef000 put 00025170 state 80020000 (err: INVALID_CMD) push 00000000
[  213.391752] nouveau 0000:01:00.0: fifo: DMA_PUSHER - ch 1 [Xorg[2423]] get 0eeef000 put 00025180 state 80020000 (err: INVALID_CMD) push 00000000
[  213.391827] nouveau 0000:01:00.0: fifo: DMA_PUSHER - ch 1 [Xorg[2423]] get 0eeef000 put 00025190 state 80020000 (err: INVALID_CMD) push 00000000
[  213.391987] nouveau 0000:01:00.0: fifo: DMA_PUSHER - ch 1 [Xorg[2423]] get 0eeef000 put 000251a0 state 80020000 (err: INVALID_CMD) push 00000000
[  213.392085] nouveau 0000:01:00.0: fifo: DMA_PUSHER - ch 1 [Xorg[2423]] get 0eeef000 put 000251b0 state 80020000 (err: INVALID_CMD) push 00000000
[  213.392140] nouveau 0000:01:00.0: fifo: DMA_PUSHER - ch 1 [Xorg[2423]] get 0eeef000 put 000251c0 state 80020000 (err: INVALID_CMD) push 00000000
[  213.392183] nouveau 0000:01:00.0: fifo: DMA_PUSHER - ch 1 [Xorg[2423]] get 0eeef000 put 000251d0 state 80020000 (err: INVALID_CMD) push 00000000
[  218.380051] nouveau 0000:01:00.0: fifo: DMA_PUSHER - ch 1 [Xorg[2423]] get 0eeef000 put 000251e0 state 80020000 (err: INVALID_CMD) push 00000000
Although the system became unresponsive to the keyboard, if I installed openssh-server I could ssh in from another machine and type reboot or shutdown to avoid using the hardware power off button.

Eventually, what I found is that this video card doesn't do hardware acceleration. The nouveau kernel module just needs to be told so, and all is well. After having days of uptime on MX19 with kernel 4.19 I tried MX21 live and found it stable enough to go ahead and install. It's only been a day, but after 16H of uptime I'm willing to call it a success. I installed i3wm, openssh-server, kicked a few tires, let it sleep overnight, woke it up, tweaked the panels and never crashed. I guess people have lots of opinions about proprietary drivers vs nouveau, I'm not going into that, just to say that for 2D graphics in a modern, light system on old hardware this works fine. I'm typing on i3 but XFCE works great as well, and this is of course kernel version 5.10.

For those who are running 2006 era nvidia cards, look yours up at the video acceleration page https://nouveau.freedesktop.org/VideoAcceleration.html and see if hardware acceleration is unavailable. Typing inxi -G at a terminal will tell you which family of card you have (mine is G73 which translates to NV40 on the FeatureMatrix https://nouveau.freedesktop.org/FeatureMatrix.html).

If so add

Code: Select all

nouveau.noaccel=1
to your bootline and see if that works for you. While booting, during the brief time that you see grub options, press 'e' and move with cursor keys to the end of the line that begins with 'linux'. You can replace 'quiet splash' with 'nouveau.noaccel=1', then press F10 to continue booting. I could be remembering this a bit wrong, but I think the MX21 bootline now has '$e' at the end to set the run level. I'd leave that at the end and put the nouveau param before it.

You can make the change persist with the MX Boot Options tool by adding to or replacing the Kernel parameters.

User avatar
Black Dynamite
Posts: 1
Joined: Sat Nov 27, 2021 9:54 pm

Re: Using unsupported Nvidia hardware with mx-linux >= 18

#2 Post by Black Dynamite »

nouveau driver work fine for most and unless your a gamer you shouldn't need Nvidia drivers . I have dual cards in my M6700 and switch between both as usage requires (using 470.82 for my Nvidia )Glad you got it solved

Post Reply

Return to “Hardware /Configuration”