tecs.heta
2025年3月31日 12時33分
Armadillo-640のユーザースイッチ(SW1)を長押して、シャットダウンと電源断をしたいのですが、どうしたらよいのか、教えていただきたいです。
データをMicroSDに保存する機能があるため、正常にシャットダウンから電源断としたい。
なお、ABOSではなく、linux10(buster)で行いたいので、よろしくお願いします。
==========
製品型番:A6400-D00Z
Debianバージョン:linux10(buster)
カーネルバージョン:Linux armadillo 4.14-at66 #3
==========
コメント
tecs.heta
山下様、ご回答有り難うございました。
SW1を3秒間押し続けることで、シャットダウン電源OFFするができました。
> アットマークテクノの下山です。
>
> デバイスツリーの変更でSW1をシャットダウンボタンにすることができます。
> linux-v4.14-at[version]/arch/arm/boot/dts/armadillo-640.dts
> の中にあるsw1ノード内を次のように変更してください。
> ■ 変更前
>
> gpio-keys { > compatible = "gpio-keys"; > pinctrl-names = "default"; > pinctrl-0 = <&pinctrl_gpio_keys>; > > sw1 { > label = "SW1"; > gpios = <&gpio1 10 GPIO_ACTIVE_LOW>; > linux,code = <KEY_ENTER>; > }; > }; >
>
> ■ 変更後
>
>
> gpio-keys { > compatible = "gpio-keys"; > pinctrl-names = "default"; > pinctrl-0 = <&pinctrl_gpio_keys>; > > sw1 { > label = "SW1"; > gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>; > linux,code = <KEY_POWER>; > debounce-interval = <3000>; // ms > }; > }; >
>
> 変更箇所は次の3つです。
> ・gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>
(ACTIVE_LOWからACTIVE_HIGHに変更)
> ・linux,code = <KEY_POWER>
とすることで、SW1を押したときにシャットダウンするようになります
> ・debounce-interval = <3000>
長押し時間(ms)の設定なので、ここは適切な値に変更してください
>
> dtsのビルド手順は次のとおです(Linuxカーネルのビルド↓とほぼ同じです)
> https://manual.atmark-techno.com/armadillo-640/armadillo-640_product_ma…
>
> 1.ソースファイルのダウンロードと解凍
>
> atmark@atde8:~$ wget https://armadillo.atmark-techno.com/files/downloads/armadillo-640/source/linux-v4.14-at66.tar.gz > atmark@atde8:~$ wget https://armadillo.atmark-techno.com/files/downloads/armadillo-640/source/initramfs_a600-2.1.2.cpio.gz > atmark@atde8:~$ tar xf linux-v4.14-at66.tar.gz >
>
> 2.シンボリックリンク作成とコンフィギュレーション
>
> atmark@atde8:~$ cd linux-v4.14-at66/ > atmark@atde8:~/linux-v4.14-at66$ ln -s ../initramfs_a600-2.1.2.cpio.gz initramfs_a600.cpio.gz > atmark@atde8:~/linux-v4.14-at66$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- armadillo-640_defconfig >
>
> 3.~/linux-v4.14-at66/arch/arm/boot/dts/armadillo-640.dtsを上のとおり書き換える
>
> 4.dtsをビルド
>
> atmark@atde8:~/linux-v4.14-at66$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- dtbs >
>
> 5.dtbファイル(~/linux-v4.14-at66/arch/arm/boot/dts/armadillo-640.dtb
)ができあがるので、これをArmadilloの/bootにa640.dtb
としてコピーし、rebootする
>
> root@armadillo:~# cp armadillo-640.dtb /boot/a640.dtb > root@armadillo:~# reboot >
>
> これでSW1を3秒押すとシャットダウンするようになるはずです。
> 念のため、編集後のdtsとビルドしたdtbファイルを添付しますので、とりあえず動作確認したい場合はお使いください。
at_shota.shimoyama
2025年3月31日 16時44分
アットマークテクノの下山です。
デバイスツリーの変更でSW1をシャットダウンボタンにすることができます。
linux-v4.14-at[version]/arch/arm/boot/dts/armadillo-640.dts
の中にあるsw1ノード内を次のように変更してください。
■ 変更前
■ 変更後
変更箇所は次の3つです。
・
gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>
(ACTIVE_LOWからACTIVE_HIGHに変更)・
linux,code = <KEY_POWER>
とすることで、SW1を押したときにシャットダウンするようになります・
debounce-interval = <3000>
長押し時間(ms)の設定なので、ここは適切な値に変更してくださいdtsのビルド手順は次のとおです(Linuxカーネルのビルド↓とほぼ同じです)
https://manual.atmark-techno.com/armadillo-640/armadillo-640_product_ma…
1.ソースファイルのダウンロードと解凍
2.シンボリックリンク作成とコンフィギュレーション
3.~/linux-v4.14-at66/arch/arm/boot/dts/armadillo-640.dtsを上のとおり書き換える
4.dtsをビルド
5.dtbファイル(
~/linux-v4.14-at66/arch/arm/boot/dts/armadillo-640.dtb
)ができあがるので、これをArmadilloの/bootにa640.dtb
としてコピーし、rebootするこれでSW1を3秒押すとシャットダウンするようになるはずです。
念のため、編集後のdtsとビルドしたdtbファイルを添付しますので、とりあえず動作確認したい場合はお使いください。