我有一台 Banana Pi M1,想在 ThinkPad T400 上刷入 libreboot。我按照树莓派(ThinkPad X200),因为 RPi 的 GPIO 引脚与 BPi 几乎相同,而 T400 的芯片与 X200 相同。唯一的问题是,当要刷新设备时,似乎没有
$ flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=512 --chip MX25L6405D -r romread1.rom
flashrom v0.9.9-r1955 on Linux 4.10.9-gnu-1 (armv7l)
flashrom is free software, get the source code at https://flashrom.org
Calibrating delay loop... OK.
linux_spi_init: failed to open /dev/spidev0.0: No such file or directory
Error: Programmer initialization failed.
当然,如果设备 /dev/spidev* 不存在!!
$ ls /dev/spidev*
ls: cannot access '/dev/spidev*': No such file or directory
$ lsmod|grep spi
spidev 7364 0
spi_sun4i 4955 0
我已经尝试了所有方法:加载 spidev、spi-gpio、spi_sun4i 内核模块、不同的引脚排列等。也许我没有找到正确的引脚排列?如果没有任何东西连接到 GPIO 引脚,/dev/spidev* 设备会显示出来吗?我怎样才能更轻松地测试它们?
在几乎所有问题中,人们都通过编辑 /boot/config.txt 来解决,但据我所知这仅适用于 RPi。无论如何,我在其中安装的内核没有该文件。
SoC:全志 A20
RAM:1GB
操作系统: 抛物线 GNU/Linux 自由版(基于 Arch Linux 和 ALARM,没有专有软件包)
BPi 的 GPIO 引脚:https://bananapi.gitbooks.io/bpi-m1/content/en/Banana-Pi-GIPO.png
更多规格:https://bananapi.gitbooks.io/bpi-m1/en/
编辑:/dev 中有一些设备看类似于 /dev/spidev* 设备附近的某物:
/dev/gpiochip0
/dev/gpiochip1
/dev/hidraw0
/dev/hidraw1
/dev/iio:device0
/dev/iio:device1
我说“接近”是因为 flashrom 说:
# flashrom -p linux_spi:dev=/dev/gpiochip0
flashrom v0.9.9-r1955 on Linux 4.13.5-gnu-1 (armv7l)
flashrom is free software, get the source code at https://flashrom.org
Calibrating delay loop... OK.
linux_spi_init: failed to set SPI mode to 0x00: Invalid argument
Error: Programmer initialization failed.
对于所有这些设备,它都会Invalid argument
使用我输入的“spispeed”(优于Inappropriate ioctl for device
)。我怀疑/dev/gpiochip0
可能是芯片吗?但是,如果是,我不知道如何解决“无效参数”的问题
答案1
请尝试以下操作:
- 类型
vi /boot/config.txt
- 按下i即可进入“插入”模式。
- 删除
#
前面的dtparam=spi=on
以取消注释该行 - Esc然后按:wq
- 按下Enter保存。