Armadilloフォーラム

gpio.shの実行でエラーが発生

nsk_sato

2017年8月30日 19時19分

Armadillo-840のマニュアルに従い
kernelとuserlandのイメージファイルを作成しました。

このイメージをフラッシュメモリに書込み、立ち上げた所
gpio.shの実行でエラーが発生し装置が立ち上がらない状況となりました
 エラー内容(抜粋):「can't create /sys/class/gpio/gpioxx」

現象が発生している状況で、/sys/class/gpioディレクトリ配下
を確認したところ実行エラーとなったgpioxxがありませんでした。
実行エラーとならなかったgpioxxは存在していました。

イメージ作成手順の中で、/sys/class/gpio/gpioxxの生成に関する
操作/設定/変更は何かありますでしょうか?

コメント

nsk_iida

2017年8月31日 11時17分

> Armadillo-840のマニュアルに従い
> kernelとuserlandのイメージファイルを作成しました。
>
> このイメージをフラッシュメモリに書込み、立ち上げた所
> gpio.shの実行でエラーが発生し装置が立ち上がらない状況となりました
>  エラー内容(抜粋):「can't create /sys/class/gpio/gpioxx」
>
上記のgpio.shとは、自前のスクリプトで、「echo in > /sys/class/gpio/gpioxx/direction」(xx=番号値)
を複数のgpioxxに実行しています。

> 現象が発生している状況で、/sys/class/gpioディレクトリ配下
> を確認したところ実行エラーとなったgpioxxがありませんでした。
> 実行エラーとならなかったgpioxxは存在していました。
>
/sys/class/gpio/配下のgpioxxが中途半端に作成されている点が不明です。

> イメージ作成手順の中で、/sys/class/gpio/gpioxxの生成に関する
> 操作/設定/変更は何かありますでしょうか?
>

at_ohsawa

2017年8月31日 17時53分

exportしようとして

can't create /sys/class/gpio/gpioxx

が出力されるのであれば、当該のピンがGPIO以外のデバイスドライバ
に割り当てられているということです。
GPIOと他のデバイスドライバでピンを同時に使う事はできません。

参照:Armadillo-840 製品マニュアル
6.9. GPIO
https://manual.atmark-techno.com/armadillo-840/armadillo-840_product_ma…

どのGPIOポートを期待されているのかは分らないので、ここからは
想像になりますが恐らく、Armadillo-840のCON7もしくはCON8に
独自の拡張ボードを接続して、その信号のいくつかをGPIOとして使いたい。
という事かと思います。

その場合は、linux kernelのコンフィギュレーション(下記マニュアル参照)から
CON7 extension board
CON8 extension board
のうち、独自の拡張ボードを接続した側を Custom に選択して
デフォルトで設定されているオーディオコーデック等のドライバの
割り当てを解除します。

参照: Armadillo-840シリーズ 製品マニュアル
8.3. Linuxドライバ 8.3.1. Armadillo-840
https://manual.atmark-techno.com/armadillo-840/armadillo-840_product_ma…

この章に記載してある通り、Customにすると各デバイスドライバの
選択を解除することができます。
解除すると、GPIOに割り当て可能な信号線はGPIOドライバに割り当て
られるので、exportができるようになります。

どのGPIOポート/ピンを使いたいのかを教えてもらえれば、具体的な説明が
できると思います。

nsk_iida

2017年8月31日 18時54分

at_ohsawa様

貴重な情報ありがとうございました。

仰るっ通りmenuconfigで対応でき解決しました。

重ねてありがとうございました。

> exportしようとして
>
>

> can't create /sys/class/gpio/gpioxx
> 

>
> が出力されるのであれば、当該のピンがGPIO以外のデバイスドライバ
> に割り当てられているということです。
> GPIOと他のデバイスドライバでピンを同時に使う事はできません。
>
> 参照:Armadillo-840 製品マニュアル
> 6.9. GPIO
> https://manual.atmark-techno.com/armadillo-840/armadillo-840_product_ma…
>
> どのGPIOポートを期待されているのかは分らないので、ここからは
> 想像になりますが恐らく、Armadillo-840のCON7もしくはCON8に
> 独自の拡張ボードを接続して、その信号のいくつかをGPIOとして使いたい。
> という事かと思います。
>
> その場合は、linux kernelのコンフィギュレーション(下記マニュアル参照)から
> CON7 extension board
> CON8 extension board
> のうち、独自の拡張ボードを接続した側を Custom に選択して
> デフォルトで設定されているオーディオコーデック等のドライバの
> 割り当てを解除します。
>
> 参照: Armadillo-840シリーズ 製品マニュアル
> 8.3. Linuxドライバ 8.3.1. Armadillo-840
> https://manual.atmark-techno.com/armadillo-840/armadillo-840_product_ma…
>
> この章に記載してある通り、Customにすると各デバイスドライバの
> 選択を解除することができます。
> 解除すると、GPIOに割り当て可能な信号線はGPIOドライバに割り当て
> られるので、exportができるようになります。
>
> どのGPIOポート/ピンを使いたいのかを教えてもらえれば、具体的な説明が
> できると思います。