Linux-Kernel
LCD4 Cape 的 Beaglebone 黑色設備樹
LCD4 cape 的設備樹位於 /lib/firmware/BB-BONE-LCD4-01-00A1.dts 當我查看它時,那些 GPIO 按鈕的聲明讓我感到困惑。根據原理圖修訂版 A1 這裡連結有五個按鈕,它們都沒有映射到 GPIO0_3,即 UART2。但在 dts 文件中,GPIO0_3(在 P9_21 上)用作按鈕。
bone_lcd4_cape_keys_00A2_pins: pinmux_bone_lcd4_cape_keys_00A2_pins { pinctrl-single,pins = < 0x040 0x2f /* gpmc_a0.gpio1_16, INPUT | PULLDIS | MODE7 */ 0x044 0x2f /* gpmc_a1.gpio1_17, INPUT | PULLDIS | MODE7 */ 0x04c 0x2f /* gpmc_a3.gpio1_19, INPUT | PULLDIS | MODE7 */ 0x154 0x2f /* P9_21 spi0_d0.gpio0_3 INPUT | PULLDIS | MODE7 */ >; };
假設這是一個錯誤,我嘗試在啟動時禁用 LCD4 cape,並在uEnv.txt中為 LCD 啟動我自己編輯和編譯的 dts,如下所示:
optargs=quiet capemgr.disable_partno=BB-BONELT-HDMI,BB-BONELT-HDMIN,BB-BONE-LCD4-01 capemgr.enable_partno=myNewCape
myNewCape.dtbo 位於
/lbi/firmware
並從中編譯,myNewCape.dts
沒有錯誤。基本上我註釋掉了所有 GPIO 按鈕和鍵組定義。它沒有用。此螢幕顯然已被禁用,capemgr.disable_partno=BB-BONE-LCD4-01
但它甚至從未顯示任何內容capemgr.enable_partno=myNewCape
。
Angstrom 郵件列表說這個錯誤將在下一個 Angstrom 版本中得到糾正。它也可以通過使用修改後的 dts 文件重新編譯整個核心來糾正。LCD設備樹直接與核心捆綁在一起,不能像其他虛擬cape一樣動態載入。