CM4IO-FAN

来自Waveshare Wiki
跳转至: 导航搜索

CM4IO-FAN编译不通过的排查方法

注意:只适用于bullseye 64位系统,32位的bullseye系统通过升级后会变成64位,但是软件是32位的,所以通过32位升级上来的是无法使用的

  • 按照教程如果出现内核头文件找不到,可以通过下面命令进行安装内核头文件:
sudo apt install raspberrypi-kernel-headers
  • 查询自己的实际内核版本是否跟下载的内核头文件一致
uname -r
ls /usr/src
  • 如果发现不一致,则需要更新到最新的内核版本,然后重启,再查看实际内核版本是否跟内核头文件一致
sudo apt upgrade
sudo reboot
  • 如果一致则可以正常编译了,如果还是不一致,卸载内核头文件,重新安装
sudo apt remove raspberrypi-kernel-headers
sudo apt install raspberrypi-kernel-headers
  • 再次确认,如果还是不同,则是软件包无法导入最新的内核头文件,需要重新安装官方树莓派系统
  • 再次安装后,不要sudo apt update,否则无法下载适应实际内核版本的头文件
  • 例如:
    • 出现下面这个情况,就需要升级内核:sudo apt upgrade
    • 升级完成后要重启:sudo reboot
    • CM4IO-FAN-1.jpg
    • 出现下面这个情况,就需要修改dkms.conf文件:
    • sudo nano /var/lib/dkms/cm4io-fan/0.2.0/source/dkms.conf
    • CM4IO-FAN-2.jpg
    • 注释掉:BUILD_EXCLUSIVE_KERNEL="^5.([1-9][0-9])..*"
    • 然后保存(ctrl+s)退出(ctrl+x)
    • CM4IO-FAN-3.jpg
    • 如果升级内核后,无法下载跟自己内核版本一致的内核头文件,这是树莓派系统的BUG,因为内核更新了,但是软件库没有更新,就会导致下载的内核头文件跟实际内核版本不同,这时需要自己编译内核,变成跟内核头文件一致的内核版本即可。
    • 使用32位的bullseye系统不能使用sudo apt upgrade,会升级成64位系统,但是下载的软件都是32位,会不兼容(不要问我是怎么知道的)
    • 目前的官方系统(bullseye的32位和64位)在默认安装后不进行update和upgrade的情况下,是可以直接按照wiki教程直接编译的。