LCD4 Capeのデバイスツリーは/lib/firmware/BB-BONE-LCD4-01-00A1.dtsにあります。私が見たとき、そのGPIOボタンの宣言は混乱しました。回路図改訂A1によると、5つのボタンがあります。協会、そのどれもUART2であるGPIO0_3にマップされません。ただし、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ケープを無効にし、直接編集してコンパイルしたLCD dtsを起動してみました。uEnv.txtこのように:
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
。
答え1
Angstromメーリングリストは、このバグが次のAngstromリリースで修正されることを示しています。変更されたdtsファイルでカーネル全体を再コンパイルして修正することもできます。 LCDデバイスツリーはカーネルと共に直接バンドルされており、他の仮想ケープのように動的にロードすることはできません。