Raspbian、SPI-TFT-Display:如何在运行时禁用 fbtft 和 restore/reenable /dev/spidev0.0

Raspbian, SPI-TFT-Display: How to disable fbtft at runtime and restore/reenable /dev/spidev0.0

我想让 fbtft 在启动时显示启动画面,然后在启动完成后启动一个程序,该程序通过 /dev/spidev0.0

直接与显示器对话

当我启用 fbtft(modprobe fbtft_device 和 modprobe flexfb)时,设备 /dev/spidev0.0 消失,因此用户程序无法与显示器对话。如何在运行时禁用 fbtft 并重新启用 spidev?我试过了

modprobe -r flexfb
modprobe -r spidev
modprobe -r spi_bcm2835
modprobe spidev
modprobe spi_bcm2835

没有成功。没有错误,fbtft 似乎被禁用(lsmod 中没有提及)但仍然没有 /dev/spidev0.0,只有 /dev/spidev0.1

我错过了什么?

非常感谢!

根据 fbtft 开发者的说法,模块 fbtft_device 在卸载时不会恢复 spidev 设备。为了在运行时恢复它,可以创建一个设备树覆盖层,添加一个 spidev 设备并使用 dtoverlay 命令加载它。

由于我没有设备树方面的经验,我遵循了 fbftft 开发人员的另一个想法(感谢提示):我用我自己的闪屏程序(使用 spidev)制作了一个 initramfs,完全避免了 fbtft。

fbftft issue 548