pop-os / linux

Pop!_OS fork of https://launchpad.net/ubuntu/+source/linux
Other
110 stars 14 forks source link

Kernel upgrade broke system76 and system76-acpi modules until manual rebuild #319

Closed nerdboy4200 closed 3 months ago

nerdboy4200 commented 4 months ago

After upgrading my kernel to the latest 6.8 kernel - modules system76 and system76-acpi did not run - this issue was resolved by a reinstall of the 2 packages that contain those.

The actual error in the kernel log was:

May 25 13:51:40 lagos kernel: system76: disagrees about version of symbol led_classdev_unregister
May 25 13:51:40 lagos kernel: system76: Unknown symbol led_classdev_unregister (err -22)
May 25 13:51:40 lagos kernel: system76: disagrees about version of symbol led_classdev_notify_brightness_hw_changed
May 25 13:51:40 lagos kernel: system76: Unknown symbol led_classdev_notify_brightness_hw_changed (err -22)
May 25 13:51:40 lagos kernel: system76: disagrees about version of symbol led_classdev_register_ext
May 25 13:51:40 lagos kernel: system76: Unknown symbol led_classdev_register_ext (err -22)
...
May 25 13:51:40 lagos kernel: system76_acpi: disagrees about version of symbol led_classdev_notify_brightness_hw_changed
May 25 13:51:40 lagos kernel: system76_acpi: Unknown symbol led_classdev_notify_brightness_hw_changed (err -22)
May 25 13:51:40 lagos kernel: system76_acpi: disagrees about version of symbol devm_led_classdev_unregister
May 25 13:51:40 lagos kernel: system76_acpi: Unknown symbol devm_led_classdev_unregister (err -22)
May 25 13:51:40 lagos kernel: system76_acpi: disagrees about version of symbol devm_led_classdev_register_ext
May 25 13:51:40 lagos kernel: system76_acpi: Unknown symbol devm_led_classdev_register_ext (err -22)
May 25 13:51:40 lagos kernel: system76_acpi: disagrees about version of symbol battery_hook_register
May 25 13:51:40 lagos kernel: system76_acpi: Unknown symbol battery_hook_register (err -22)
May 25 13:51:40 lagos kernel: system76_acpi: disagrees about version of symbol battery_hook_unregister
May 25 13:51:40 lagos kernel: system76_acpi: Unknown symbol battery_hook_unregister (err -22)
May 25 13:51:40 lagos kernel: system76: disagrees about version of symbol led_classdev_unregister
May 25 13:51:40 lagos kernel: system76: Unknown symbol led_classdev_unregister (err -22)
May 25 13:51:40 lagos kernel: system76: disagrees about version of symbol led_classdev_notify_brightness_hw_changed
May 25 13:51:40 lagos kernel: system76: Unknown symbol led_classdev_notify_brightness_hw_changed (err -22)
May 25 13:51:40 lagos kernel: system76: disagrees about version of symbol led_classdev_register_ext
May 25 13:51:40 lagos kernel: system76: Unknown symbol led_classdev_register_ext (err -22)

It appears that the upgrade from history log was:

linux-headers-6.8.0-76060800daily20240311-generic:amd64 (6.8.0-76060800daily20240311.202403110203~1714077665~22.04~4c8e9a0, 6.8.0-76060800daily20240311.202403110203~1715181801~22.04~aba43ee)

This appears to have happened possibly due to at least b57f055b1411061997700fb0c42bf340c3d045f4 causing a difference in the led structure used - which broke the signature of the function (my guess). Based on the terminal log from apt - it appears that we might not have rebuilt the system76-acpi and system76 driver because the versions were the same - so it didn't need to rebuild. Luckily - this did not break the nvidia modules (the system I run is a kudu6) because they do not appear to use the associated structures.

I belive this is the proper place for this bug report because the issue was caused more likely by the kernel upgrade than the modules themselves - since I think the issue is that the version difference due to headers was more of the cause than the modules themselves.

Let me know if you need my apt logs if you want to look at the full information.

nerdboy4200 commented 4 months ago

I should note that reverting the revert is not the issue - I think the issue is more that the change when pushed out did not force the module to possibly rebuild properly - either due to the header not triggering a dependency rebuild or ???

crawfxrd commented 4 months ago

Module rebuilds can be triggered by reinstalling the packages:

sudo apt install --reinstall system76-dkms system76-acpi-dkms

Or manually using DKMS (check dkms status for actual version):

sudo dkms uninstall system76/1.0.15~1711484415~22.04~1662a71
sudo dkms install system76/1.0.15~1711484415~22.04~1662a71

sudo dkms uninstall system76_acpi/1.0.2~1716558197~22.04~a2020c4
sudo dkms install system76_acpi/1.0.2~1716558197~22.04~a2020c4
LucaspBaum commented 4 months ago

I was facing the same problem, but it just came back to normal. I tried the command @crawfxrd suggested, rebooted the system and then let it in rest mode for a while. When I came back it was back to normal.

nerdboy4200 commented 4 months ago

I did a package reinstall and that took care of it (after doing a full power cycle afterwards just to be sure everything cleared out).

leviport commented 3 months ago

I think the DKMS update triggered rebuilds for most users, so I'm going to close this for now. If there are any further reports, we can reopen.

eric-usca commented 1 month ago

I am still seeing:

$ sudo system76-power charge-thresholds org.freedesktop.DBus.Error.Failed: Not running System76 firmware with charge threshold support

after reinstalling system76-dkms and system76-acpi-dkms, and reboot

$ sudo apt install --reinstall system76-dkms system76-acpi-dkms

I like to get charge-thresholds working again. I am not sure how to figure what the issue could be. I very much appreciate any help or suggestion.