ThinkBook 16 2024 Ubuntu驱动适配全攻略:无线网卡、触控板与休眠调优
1. 为什么我要给ThinkBook 16 2024装Ubuntu手里这台ThinkBook 16 2024是今年年初入的配置是Ultra 5 125H加32G内存屏幕是16寸2.5K 120Hz那款。买它的时候我就想好了Windows留着处理一些必须用Windows的活日常开发全部切到Ubuntu上去。原因很简单我平时写代码、跑容器、连各种开发板Linux环境顺手太多了。但真开始装的时候才发现这台机器在Ubuntu下的驱动适配并不是开箱即用。无线网卡、触控板、指纹、Fn快捷键、屏幕亮度调节多多少少都有点问题。尤其是无线网卡和触控板这两个一个关系到能不能上网一个关系到日常操作体验不解决根本没法用。我前后折腾了大概三个周末试过Ubuntu 24.04 LTS和24.10两个版本也参考了不少社区里的帖子踩了不少坑。现在这台机器在Ubuntu下已经跑得很稳了无线网卡正常、触控板手势可用、亮度调节正常、休眠唤醒也没问题。这篇文章就把我整个折腾过程整理出来从系统安装到各个驱动的处理尽量写细一点让同样用这台机器的朋友少走点弯路。需要说明的是我用的具体型号是ThinkBook 16 G6 IMH2024款网卡是Intel的具体型号后面会讲。不同批次可能硬件有差异如果你的机器配置和我不同部分步骤可能需要调整。另外我全程用的是UEFI启动加单硬盘双系统方案如果你是全盘装Ubuntu流程会简单一些。2. 装系统前的准备工作2.1 确认你的硬件型号动手之前先确认硬件这一步很多人会跳过结果后面驱动装错了白忙活。在Windows下打开设备管理器重点看这几个无线网卡型号ThinkBook 16 2024不同批次可能用Intel AX201、AX211或者Realtek的卡这直接决定了后面驱动怎么处理显卡Ultra 5 125H是Arc核显这个在较新的内核里支持已经不错了触控板一般是Synaptics或者Elan的接口走的是I2C HID指纹通常是Goodix的这个在Linux下支持一直是个老大难我手上这台无线网卡是Intel AX211触控板是Elan的I2C HID设备指纹是Goodix。你可以用lspci和lsusb在Ubuntu Live环境里先看一眼确认清楚再往下走。2.2 制作启动盘和BIOS设置启动盘我用的是Ventoy把Ubuntu 24.04.1 LTS的ISO直接拷进去就行比反复烧录方便。ISO去Ubuntu中文官网下载选桌面版不要选Server版除非你打算纯命令行。BIOS设置这块有几个关键项Secure Boot建议先关掉虽然Ubuntu现在对Secure Boot支持还行但装第三方驱动比如后面要说的网卡驱动时开着Secure Boot会麻烦很多SATA模式保持AHCI不要改成RAID不然Ubuntu安装器可能认不到硬盘显卡模式如果有独显切换选项先设成混合模式或者核显模式装完系统再调注意改BIOS之前先把BitLocker关掉或者暂停不然改完启动项Windows会要恢复密钥这个坑我踩过。2.3 分区方案我是双系统Windows那边留了200G剩下的给Ubuntu。分区的时候手动分方案如下挂载点大小文件系统说明/boot/efi512MFAT32和Windows共用已有的EFI分区即可不用新建/100Gext4系统和软件/home剩余空间ext4个人数据swap32Gswap和内存等大方便休眠EFI分区如果Windows已经有一个直接挂载上去就行不用格式化。这一点很重要格式化EFI分区会把Windows的启动项干掉。3. 无线网卡驱动的处理3.1 先搞清楚你的网卡到底认没认装完系统第一件事就是看网卡认没认。打开终端lspci -nnk | grep -iA3 network如果输出里能看到你的网卡型号并且Kernel driver in use那一行有驱动名说明认了。如果显示Kernel driver in use: N/A或者干脆没输出那就是没认。我第一遍装24.04的时候AX211是直接认的内核里带了iwlwifi驱动。但有个问题连上WiFi之后速度很慢而且偶尔会断。后来查了下是固件版本的问题。3.2 Intel网卡的固件更新Intel网卡的驱动分两部分内核模块和固件。内核模块一般没问题固件可能需要更新。检查固件版本dmesg | grep iwlwifi | grep firmware如果提示固件加载失败或者版本旧去linux-firmware仓库更新。Ubuntu下可以直接sudo apt update sudo apt install linux-firmware如果apt里的版本还是旧可以去kernel.org的linux-firmware仓库手动下载最新的iwlwifi固件放到/lib/firmware/下对应目录然后重启。我实测下来更新到最新固件之后AX211的断流问题基本没了速度也正常了。3.3 Realtek网卡的坑如果你运气不好拿到的是Realtek的卡比如RTL8852BE之类的那就麻烦一些。Ubuntu自带的内核里可能没有对应驱动需要自己编译。常见做法是去GitHub找对应的驱动仓库clone下来编译安装git clone https://github.com/xxx/rtl8852be.git cd rtl8852be make sudo make install sudo modprobe 8852be编译之前确保装了build-essential和对应内核版本的linux-headers。这个驱动每次内核升级之后都要重新编译比较烦建议用DKMS方式装能自动跟着内核更新。提示编译驱动之前先sudo apt install build-essential linux-headers-$(uname -r)不然make会报错找不到头文件。3.4 网卡被软阻塞的情况有时候网卡驱动没问题但就是连不上可能是被rfkill软阻塞了。检查rfkill list如果看到Soft blocked: yes用sudo rfkill unblock wifi这个情况在笔记本上挺常见的尤其是从Windows重启过来的时候Windows那边把网卡关了Linux这边就继承了这个状态。4. 触控板驱动的调试4.1 触控板认没认的判断方法触控板的问题比网卡更隐蔽。设备管理器里看着正常但就是不能用这种情况在Linux下很常见。先看内核有没有认到设备dmesg | grep -i touchpad dmesg | grep -i i2c如果看到i2c_hid相关的报错比如i2c_hid_acpi i2c-ELAN...: failed to set a report descriptor那就是I2C HID设备枚举出了问题。我第一遍装的时候就是这个报错触控板完全没反应。后来查了半天是内核参数的问题。4.2 内核参数调整在GRUB里加内核参数可以解决大部分I2C HID触控板的问题。编辑/etc/default/grubsudo nano /etc/default/grub找到GRUB_CMDLINE_LINUX_DEFAULT这一行在引号里加上i2c_hid.pci_disable1或者有些情况需要加i2c_hid_acpi.force1具体加哪个取决于你的硬件。我这边加的是i2c_hid.pci_disable1加完之后触控板就认到了。改完执行sudo update-grub sudo reboot4.3 触控板手势配置触控板认到之后默认可能只支持基本的移动和点击多指手势要自己配。Ubuntu 24.04用的是Wayland会话手势支持比X11好很多。检查当前会话echo $XDG_SESSION_TYPE如果是wayland三指、四指手势基本开箱可用。如果是x11建议装libinput-gestures来配。我这边Wayland下三指切换工作区、四指呼出概览都是默认就有的不用额外配。如果你想要更细的手势可以装gestures这个工具配置文件在~/.config/gestures/下。4.4 触控板灵敏度调整有些朋友反馈触控板太灵敏或者太迟钝这个可以调。用xinputX11或者libinputWayland来调。Wayland下可以用gsettingsgsettings set org.gnome.desktop.peripherals.touchpad speed 0.5数值范围是-1到10是默认负数慢正数快。点击力度也可以调gsettings set org.gnome.desktop.peripherals.touchpad tap-to-click true gsettings set org.gnome.desktop.peripherals.touchpad disable-while-typing truedisable-while-typing这个建议开着不然打字的时候手掌碰到触控板会乱跳。5. 其他驱动和细节调优5.1 显卡和亮度调节Ultra 5 125H的Arc核显在Ubuntu 24.04的内核里支持已经不错了但亮度调节可能有问题。如果Fn键调亮度没反应检查ls /sys/class/backlight/如果只有acpi_video0没有intel_backlight说明用的是ACPI的亮度接口可能不好使。加内核参数acpi_backlightnative加到GRUB里update-grub重启。我这边加完之后亮度调节就正常了。5.2 指纹识别Goodix的指纹在Linux下支持一直不好。Ubuntu 24.04里fprintd对部分Goodix型号有支持可以试试sudo apt install fprintd libpam-fprintd fprintd-enroll如果enroll的时候提示找不到设备那就是不支持只能等上游更新。我这边试了enroll能过但识别率很低基本没法用最后还是用密码。5.3 Fn快捷键ThinkBook的Fn快捷键大部分在Linux下能用但有几个可能没映射。比如F8的性能模式切换、F9的键盘背光这些可能需要额外的驱动或者脚本。键盘背光一般可以通过/sys/class/leds/下的接口控制ls /sys/class/leds/ echo 1 | sudo tee /sys/class/leds/tpacpi::kbd_backlight/brightness性能模式切换可以用power-profiles-daemonpowerprofilesctl set performance这个在Ubuntu 24.04里是默认装的可以直接用。5.4 休眠和唤醒休眠这块我踩了个大坑。默认情况下Ubuntu的休眠可能是关的需要手动开。检查cat /sys/power/state如果输出里没有disk说明休眠没启用。需要改GRUB加resume参数指向swap分区。先找到swap的UUIDsudo blkid | grep swap然后在GRUB的GRUB_CMDLINE_LINUX_DEFAULT里加resumeUUID你的swap分区UUID同时确保/etc/initramfs-tools/conf.d/resume里也写了同样的UUID然后sudo update-initramfs -u sudo update-grub我这边配好之后休眠唤醒正常合盖休眠也没问题。6. 常见问题速查折腾过程中遇到不少问题整理成表格方便对照问题现象可能原因解决方法无线网卡不认驱动缺失或固件旧更新linux-firmwareRealtek卡需编译驱动WiFi连上但慢/断流固件版本问题更新iwlwifi固件到最新触控板完全没反应I2C HID枚举失败加内核参数i2c_hid.pci_disable1触控板手势缺失会话是X11切到Wayland或装libinput-gestures亮度调节无效用了ACPI接口加acpi_backlightnative休眠不可用未配置resumeGRUB加resume参数指向swap指纹识别率低驱动不完善暂时用密码等上游更新Fn键部分无效映射缺失用sysfs接口或power-profiles-daemon替代提示每次改完GRUB参数记得sudo update-grub改完initramfs记得sudo update-initramfs -u不然不生效。7. 我个人的一些经验体会这台ThinkBook 16 2024在Ubuntu下的适配整体来说比前几年好了不少但离完美还有距离。我的建议是装之前先确认硬件型号尤其是网卡Intel的卡省心很多Realtek的卡要有心理准备。触控板的问题基本都是内核参数能解决的多查dmesg报错信息里其实写得很清楚。另外Ubuntu 24.04 LTS比24.10稳建议用LTS版本。内核版本尽量用新的新硬件支持都在新内核里。如果遇到问题Arch Wiki和Ubuntu论坛是找答案的好地方很多问题别人已经踩过了。最后说一句装Linux驱动这事急不得一个一个问题解决解决一个记一个慢慢就顺了。我这台机器现在日常用已经完全没问题了续航、性能、外设都正常值得折腾。