LCD4ケープのデバイスツリーは/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 inuEnv.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
が存在しても何も表示されません。
Angstromメーリングリストによると、このエラーは次のAngstromリリースで修正される予定です。変更されたdtsファイルを使用してカーネル全体を再コンパイルすることによって修正することもできます。 LCDデバイスツリーはカーネルに直接バンドルされており、他の仮想ケープのように動的にロードすることはできません。