我正在尝试从Raspberry Pi B3上的虚拟传感器读取数据。我想在 i2c 端口上创建虚拟传感器。我做的第一件事当然是启用i2c端口。使用以下命令,我可以看到 i2c 界面是否正常工作:
# i2cdetect -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
# ls /dev/*i2c*
/dev/i2c-1
然后我尝试运行这两个make
命令,uname -r
与具有build
子目录的目录不匹配。如果我uname -r
硬编码到具有build
子目录的目录,我可以继续,但是我必须在之后执行的命令sudo modprobe -r i2c_stub
将不起作用。错误:modprobe: FATAL: Module i2c_stub not found.
.我已经 https://superuser.com/questions/952688/installing-new-driver-on-linux-missing-the-build-directory 关注了这个问题,但它并没有解决我的问题。
# sudo make -C /lib/modules/$(uname -r)/build M=$(pwd) modules
make: *** /lib/modules/4.4.16-v7+/build: No such file or directory. Stop.
# sudo make -C /lib/modules/$(uname -r)/build M=$(pwd) modules_install
make: *** /lib/modules/4.4.16-v7+/build: No such file or directory. Stop.
# uname -r
4.4.16-v7+
# ls -l /lib/modules/4.4.16-v7+/
total 1716
drwxr-xr-x 11 root root 4096 Aug 2 2016 kernel
-rw-r--r-- 1 root root 447387 Aug 2 2016 modules.alias
-rw-r--r-- 1 root root 463774 Aug 2 2016 modules.alias.bin
-rw-r--r-- 1 root root 4574 Aug 2 2016 modules.builtin
-rw-r--r-- 1 root root 6025 Aug 2 2016 modules.builtin.bin
-rw-r--r-- 1 root root 142062 Aug 2 2016 modules.dep
-rw-r--r-- 1 root root 207587 Aug 2 2016 modules.dep.bin
-rw-r--r-- 1 root root 302 Aug 2 2016 modules.devname
-rw-r--r-- 1 root root 58127 Aug 2 2016 modules.order
-rw-r--r-- 1 root root 55 Aug 2 2016 modules.softdep
-rw-r--r-- 1 root root 175706 Aug 2 2016 modules.symbols
-rw-r--r-- 1 root root 218826 Aug 2 2016 modules.symbols.bin
# ls -l /lib/modules/4.9.35-v7+/
total 1848
lrwxrwxrwx 1 root root 33 Jul 3 2017 build -> /usr/src/linux-headers-4.9.35-v7+
drwxr-xr-x 11 root root 4096 Jun 23 08:54 kernel
-rw-r--r-- 1 root root 478139 Jul 3 2017 modules.alias
-rw-r--r-- 1 root root 492852 Jul 3 2017 modules.alias.bin
-rw-r--r-- 1 root root 4778 Jul 3 2017 modules.builtin
-rw-r--r-- 1 root root 6290 Jul 3 2017 modules.builtin.bin
-rw-r--r-- 1 root root 153132 Jul 3 2017 modules.dep
-rw-r--r-- 1 root root 222028 Jul 3 2017 modules.dep.bin
-rw-r--r-- 1 root root 302 Jul 3 2017 modules.devname
-rw-r--r-- 1 root root 61224 Jul 3 2017 modules.order
-rw-r--r-- 1 root root 55 Jul 3 2017 modules.softdep
-rw-r--r-- 1 root root 198792 Jul 3 2017 modules.symbols
-rw-r--r-- 1 root root 245292 Jul 3 2017 modules.symbols.bin
我必须恢复到当前的Raspbian内核。
sudo apt-get install --reinstall raspberrypi-bootloader raspberrypi-kernel
https://www.raspberrypi.org/documentation/linux/kernel/updating.md