天天看點

Ubuntu 18.04 如何更新核心解決驅動問題?

作者:軟核改造祝融叔

很多虛拟機的Ubuntu18.04的映像的核心版本都非常低,

Ubuntu 18.04 如何更新核心解決驅動問題?

一般用uname -a 檢視版本

Linux ubuntu-bionic 4.15.0-213-generic #224-Ubuntu SMP Mon Jun 19 13:30:12 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

也就是核心為4.15版本,而我插入常見飛控硬體使用usb模拟序列槽,并沒有出現/dev/ttyACM0這樣的裝置結點。而我在18.04的桌面機上插入而出現這個裝置結點。

用 uname -r 檢視成功的核心的版本就是

5.4.0-124-generic

比虛拟機自動建立的版本要高。

是以解決無法識别cdc-acm驅動的最好的辦法就是更新核心。

以下均是在低版本ubuntu 核心的操作。

apt-cache search linux | grep linux-image

能使用的image很多,我需要查找那一些generic結尾的image ,這是标準核心的字尾。

我這裡節選一下,其中能用最高版本是 linux-image-5.4.0-99-generic

linux-image-5.4.0-92-generic - Signed kernel image generic
linux-image-5.4.0-92-lowlatency - Signed kernel image lowlatency
linux-image-5.4.0-94-generic - Signed kernel image generic
linux-image-5.4.0-94-lowlatency - Signed kernel image lowlatency
linux-image-5.4.0-96-generic - Signed kernel image generic
linux-image-5.4.0-96-lowlatency - Signed kernel image lowlatency
linux-image-5.4.0-97-generic - Signed kernel image generic
linux-image-5.4.0-97-lowlatency - Signed kernel image lowlatency
linux-image-5.4.0-99-generic - Signed kernel image generic
linux-image-5.4.0-99-lowlatency - Signed kernel image lowlatency           

是以在查找這個版本的相關包

apt-cache search linux | grep 5.4.0-99-generic

查找結果節選如下

linux-buildinfo-5.4.0-99-generic - Linux kernel buildinfo for version 5.4.0 on 64 bit x86 SMP
linux-cloud-tools-5.4.0-99-generic - Linux kernel version specific cloud tools for version 5.4.0-99
linux-headers-5.4.0-99-generic - Linux kernel headers for version 5.4.0 on 64 bit x86 SMP
linux-image-5.4.0-99-generic - Signed kernel image generic
linux-image-unsigned-5.4.0-99-generic - Linux kernel image for version 5.4.0 on 64 bit x86 SMP
linux-modules-5.4.0-99-generic - Linux kernel extra modules for version 5.4.0 on 64 bit x86 SMP
linux-modules-extra-5.4.0-99-generic - Linux kernel extra modules for version 5.4.0 on 64 bit x86 SMP
linux-tools-5.4.0-99-generic - Linux kernel version specific tools for version 5.4.0-99
linux-modules-nvidia-390-5.4.0-99-generic - Linux kernel nvidia modules for version 5.4.0-99
linux-modules-nvidia-418-server-5.4.0-99-generic - Linux kernel nvidia modules for version 5.4.0-99
linux-modules-nvidia-450-server-5.4.0-99-generic - Linux kernel nvidia modules for version 5.4.0-99           

其中image是核心,modules 是核心動态子產品,headers是頭檔案,tools核心調試工具,我們全部安裝上

sudo apt install linux-image-5.4.0-99-generic linux-headers-5.4.0-99-generic linux-modules-5.4.0-99-generic linux-modules-extra-5.4.0-99-generic linux-tools-5.4.0-99-genericun

安裝後,因為是更新版本,它會自動修改 grub讓其優先引導高版的核心,是以我們隻需重新開機後,再用 uname -r 檢視,核心版本已經更新

$ uname -r

5.4.0-99-generic

解決acm驅動不識别問題

此時找到cdc-acm驅動,可以發現就在modules目錄裡,

/lib/modules$ find . -name cdc-acm*

./5.4.0-99-generic/kernel/drivers/usb/class/cdc-acm.ko

執行安裝指令

modprobe cdc-acm

插入usb就會在系統中出現/dev/ttyACM0結點

Ubuntu 18.04 如何更新核心解決驅動問題?