注:WiringPi 已停止维护

现象

从 GitHub 拉取最新版本的 WiringPi (2.70),在编译安装后,使用 gpio -v 检验时会出现如下提示:

gpio version: 2.70
Copyright (c) 2012-2018 Gordon Henderson
This is free software with ABSOLUTELY NO WARRANTY.
For details type: gpio -warranty

Oops: Unable to determine board revision from /proc/cpuinfo
 -> No "Hardware" line
 ->  You'd best google the error to find out why.

问题定位

首先定位该提示输出的位置,在 wiringPi/wiringPi.c 中:

查找该函数的调用,有一个调用输出了 “No "Hardware" line”:

查看这个调用,发现是查找 /proc/cpuinfo 中的 Hardware 行:

发现在 /proc/cpuinfo 中确实不存在 Hardware 行。因此,我们可以在别处手动制作一个 cpuinfo 文件,包含 WiringPi 所需要的所有信息:

并修改 WiringPi 中所有对 /proc/cpuinfo 文件的调用为调用修改过的 cpuinfo 文件,分别在 piGpioLayout 函数与 piBoardId 函数中:

重新编译安装后,再次执行 gpio -v 命令,可以正常识别板子信息:

执行 gpio readall 命令:


磁铁完结喵。