Announcement

Collapse
No announcement yet.

Update from 6.8.0-49 to kernel 6.8.0-50 and/or 0-51 fails

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Update from 6.8.0-49 to kernel 6.8.0-50 and/or 0-51 fails

    The Discover system updates have been working fine up through 6.8.0-49. When the 6.8.0-50 and 6.8.0-51 updates came along recently, my laptop crashes on reboot. (It will still boot fine with 6.8.0-49. ) It's difficult to imagine no one else has had this problem. The only updates/installs I've done have been through Discover. All updates since the 22.04 -> 24.04 upgrade have worked. The only clue I see is that the binary package for btusb: 4.1 is missing when I run dkpm. Although it is there for the kernel 6.8.0-49 I'm running now (see below). It looks like there is a coding error in /var/lib/dkms/btusb/4.1/build/btusb.c, but everyone should be having the same problem as I am if that were the case.

    If anyone has any ideas ... Many thanks.

    Here is the boot error when I boot in 6.8.0-50 recovery mode, the boot process hangs and reports:
    Code:
    ...
    /dev/root: can't open blockdev
    VFS: cannot open root device "/dev/nvme0n1p2" on unknown-block (0,0): error -6
    Please append a correct "root=" boot option; available partitions are: List of all bdev filesystems [ext3 ext2 ext4 ...]
    Kernel Panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
    (I can't print that screen, and that error reporting doesn't make it to the sys.log or any log that I could find)

    I also see that the menu entries in /boot/grub/grub.cfg are different for 6.8.0-49 than for 6.8.0-50/51, formerly passing a UUID as a root device, and starting(?) in 6.8.0-50 passing a file path:

    Code:
    ...
    linux /boot/vmlinuz-6.8.0-50-lowlatency root=/dev/nvme0n1p2 ro quiet splash $vt_handoff
    ...
    linux /boot/vmlinuz-6.8.0-49-lowlatency root=UUID=771799f0-05ff-4c3a-8091-576b70a9b68b ro recovery nomodeset dis_ucode_ldr


    ​If I run dpkg:
    Code:
    sudo dpkg --configure -a
    Setting up linux-headers-6.8.0-50-lowlatency (6.8.0-50.51.1) ...
    /etc/kernel/header_postinst.d/dkms:
    * dkms: running auto installation service for kernel 6.8.0-50-lowlatency
    Sign command: /usr/bin/kmodsign
    Signing key: /var/lib/shim-signed/mok/MOK.priv
    Public certificate (MOK): /var/lib/shim-signed/mok/MOK.der
    
    Building module:
    Cleaning build area...
    'make' all KVER=6.8.0-50-lowlatency...(bad exit status: 2)
    ERROR (dkms apport): binary package for btusb: 4.1 not found
    Error! Bad return status for module build on kernel: 6.8.0-50-lowlatency (x86_64)
    Consult /var/lib/dkms/btusb/4.1/build/make.log for more information.
    dkms autoinstall on 6.8.0-50-lowlatency/x86_64 failed for btusb(10)
    Error! One or more modules failed to install during autoinstall.
    Refer to previous errors for more information.
    * dkms: autoinstall for kernel 6.8.0-50-lowlatency
    ...fail!
    ...
    ​
    ...
    And here is the btusb-4.1 make log:

    Code:
    DKMS make.log for btusb-4.1 for kernel 6.8.0-51-generic (x86_64)
    Thu Dec 19 05:26:10 PM PST 2024
    make -C /lib/modules/6.8.0-51-generic/build M=/var/lib/dkms/btusb/4.1/build modules
    make[1]: Entering directory '/usr/src/linux-headers-6.8.0-51-generic'
    warning: the compiler differs from the one used to build the kernel
    The kernel was built by: x86_64-linux-gnu-gcc-13 (Ubuntu 13.3.0-6ubuntu2~24.04) 13.3.0
    You are using: gcc-13 (Ubuntu 13.3.0-6ubuntu2~24.04) 13.3.0
    CC [M] /var/lib/dkms/btusb/4.1/build/btusb.o
    /var/lib/dkms/btusb/4.1/build/btusb.c: In function ‘btusb_probe’:
    /var/lib/dkms/btusb/4.1/build/btusb.c:4501:25: error: ‘HCI_QUIRK_VALID_LE_STATES’ undeclared (first use in this function); did you mean ‘HCI_QUIRK_BROKEN_LE_STATES’?
    4501 | set_bit(HCI_QUIRK_VALID_LE_STATES, &hdev->quirks);
    | ^~~~~~~~~~~~~~~~~~~~~~~~~
    | HCI_QUIRK_BROKEN_LE_STATES
    /var/lib/dkms/btusb/4.1/build/btusb.c:4501:25: note: each undeclared identifier is reported only once for each function it appears in
    make[3]: *** [scripts/Makefile.build:243: /var/lib/dkms/btusb/4.1/build/btusb.o] Error 1
    make[2]: *** [/usr/src/linux-headers-6.8.0-51-generic/Makefile:1925: /var/lib/dkms/btusb/4.1/build] Error 2
    make[1]: *** [Makefile:240: __sub-make] Error 2
    make[1]: Leaving directory '/usr/src/linux-headers-6.8.0-51-generic'
    make: *** [Makefile:7: all] Error 2
    I tried this in case it is a BT problem:

    Code:
    $ sudo dkms add ./bluetooth-6.8
    Error! DKMS tree already contains: btusb-4.1
    You cannot add the same module/version combo more than once.
    ]$ sudo dkms install btusb/4.1
    Module btusb/4.1 already installed on kernel 6.8.0-49-lowlatency (x86_64), skip. You may override by specifying --force.

    Last edited by gkhouri; Today, 12:11 AM.

    #2
    Couple of comments and questions:
    1. There's no program or package I know of called "dkpm" so I assume you meant either "dkms" or "dpkg" but I'm not sure which. You should probably fix your typos there.
    2. Some places it appears you refer to the generic kernel and some others the low-latency kernel. Exactly which kernels do you have installed and which are you trying to boot to?
    3. You're using a kernel module names "btusb" but it does not appear to exist in Kubuntu sources.
    4. dkms, in my past experience, auto-installs modules into any new kernel without user action. Your output confirms the btusb module is already installed on the 6.8.0-49-low-latency kernel.
    5. grub will not use device names unless you override that in /etc/default/grub. How or where do you suppose grub has been modified?
    With the mix of kernels and a non-standard module package, I'm not surprised at all that no one else has this issue here. A quick web search reveals a similar complaint on "Ask Ubuntu" with a link to a possible solution on Linuxmint forum. From the looks of all this, it seems the problem lies with the btusb package, not Kubuntu. You simply may need to keep booting to the kernel that works until the btusb devs fix the problem.

    However, the grub issue is odd. There is/was a way to force grub to use system devices names instead of UUID but I tested it just now on a VM and it seems not to work any longer.

    From the grub error you posted above: VFS: cannot open root device "/dev/nume0n1p2" on unknown-block (0,0): error -6

    Note the misspelling. This: /dev/nume0n1p2 is not a valid device name. It should be: /dev/nvme0n1p2 - nvme not nume

    update-grub does not make typos so it appears possible someone has created a custom grub stanza in /etc/grub.d/40_custom or elsewhere and committed the typo.

    Please Read Me

    Comment


      #3
      Originally posted by oshunluvr View Post
      You're using a kernel module names "btusb" but it does not appear to exist in Kubuntu sources.
      btusb is a standard bluetooth kernel module, most devices are USB based, even when they are included on the wifi card.

      However, I am strongly guessing that the OP has an updated source for btusb for whatever reason, and the code fails on the current kernel.
      Not knowing the source for this (because of course we don't have this very important bit of extremely relevant information) I can't say what needs to be done, other than pestering the developer of this code, or seeing if there are updated sources or patches for it.

      This is on top of the lowlatency kernel, which is not as useful (or needed at all) as it used to be in the olden times (pre-2019-ish), and I will assume that the normal kernel, it builds just fine.

      Comment


        #4
        oshunlvr, thanks for pointing out the typos and I have corrected them. (I was getting delirious by the time I posted.) The grub entry has the correct device name. The earlier reference to "/dev/nvme0n1p2"​ I wrote down by hand (incorrectly) from the crashed boot screen, since I had no way of capturing that info. There has been no custom grub stanza. Yes, now it seems the problem lies with the btusb package, not Kubuntu.​ The only bootable kernel I have left is 6.8.0-49 low-latency because from what I understand, newer kernel updates remove older kernels. and I no longer have a 6.8.0-49 generic kernel. I'm a musician, and I use the low-latency kernels for recording.
        And claydoh, your comments reminded me that I installed another developer's BT package after the upgrade from 22.04 to 24.04, since BT supplied with 24.04 was usless on my new Lenovo laptop, and the replacement BT package worked (until now). I had forgotten about this. The 6.8.0-50 and 6.8.0-51 updates try and fail to build both the generic kernels and the low-latency kernels, btw.

        Any suggestions on how to remove the 3rd party developer's BT package ane reinstall the distributed one? I have no record of where I got that package, and my linux/unix skills are minimal.
        Thanks for you time and help.

        Comment

        Working...
        X