0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

BeagleBone Black(Debian8.6)で GPIO を unexport できないときの対処法

Last updated at Posted at 2018-12-20

環境

  • BeagleBone Black Rev.C
    • BeagleBoard.org Debian Image 2016-11-06(/etc/dogtag)
    • Debian8.6(2016.11.6)

概要

このページによると,8.4以降のバージョンの Debian がインストールされている Beaglebone Black では,特定の GPIO ピンがデフォルトで常時 export されており,unexport することができないらしい.自分も Debian8.6 で同じ現象が起きたため,その対処法をここで紹介する.

以下のように,最初からいくつかのピンが export されている上に,これまでの unexport する手順ではエラーが出てしまう.

root@beaglebone:~# cd /sys/class/gpio/
root@beaglebone:/sys/class/gpio# ls
export   gpio115  gpio15  gpio22  gpio27  gpio31  gpio45  gpio48  gpio50  gpio61  gpio67  gpio7       gpiochip64
gpio112  gpio116  gpio2   gpio23  gpio3   gpio4   gpio46  gpio49  gpio51  gpio65  gpio68  gpiochip0   gpiochip96
gpio114  gpio14   gpio20  gpio26  gpio30  gpio44  gpio47  gpio5   gpio60  gpio66  gpio69  gpiochip32  unexport
root@beaglebone:/sys/class/gpio# echo 48 > unexport
bash: echo: write error: Invalid argument

手順

1. cape-universal を無効化

root@beaglebone:~# vi /boot/uEnv.txt

uEnv.txt を root 権限で編集する.

uEnv.txt の
cmdline=coherent_pool=1M quiet cape_universal=enable を
cmdline=coherent_pool=1M quiet cape_universal=disabled に変更して上書き保存.

uEnv.txt(変更後)
# Docs: http://elinux.org/Beagleboard:U-boot_partitioning_layout_2.0

uname_r=4.4.30-ti-r64
# uuid=
# dtb=

## BeagleBone Black/Green dtb's for v4.1.x (BeagleBone White just works..)

## BeagleBone Black: HDMI (Audio/Video) disabled:
# dtb=am335x-boneblack-emmc-overlay.dtb

## BeagleBone Black: eMMC disabled:
# dtb=am335x-boneblack-hdmi-overlay.dtb

## BeagleBone Black: HDMI Audio/eMMC disabled:
# dtb=am335x-boneblack-nhdmi-overlay.dtb

## BeagleBone Black: HDMI (Audio/Video)/eMMC disabled:
# dtb=am335x-boneblack-overlay.dtb

## BeagleBone Black: wl1835
# dtb=am335x-boneblack-wl1835mod.dtb

## BeagleBone Green: eMMC disabled
# dtb=am335x-bonegreen-overlay.dtb

cmdline=coherent_pool=1M quiet cape_universal=disabled

# In the event of edid real failures, uncomment this next line:
# cmdline=coherent_pool=1M quiet cape_universal=enable video=HDMI-A-1:1024x768@60e

## Example v3.8.x
# cape_disable=capemgr.disable_partno=
# cape_enable=capemgr.enable_partno=

## Example v4.1.x
# cape_disable=bone_capemgr.disable_partno=
# cape_enable=bone_capemgr.enable_partno=

## enable Generic eMMC Flasher:
## make sure, these tools are installed: dosfstools rsync
# cmdline=init=/opt/scripts/tools/eMMC/init-eMMC-flasher-v3.sh

uuid=850b0ebc-fda6-45f7-8b68-df180bc7e37c

2. 再起動

root@beaglebone:~# reboot

再起動後,デフォルトで export されていた gpio がなくなった.

root@beaglebone:~# cd /sys/class/gpio/
root@beaglebone:/sys/class/gpio# ls
export  gpiochip0  gpiochip32  gpiochip64  gpiochip96  unexport

さらに,自由に export / unexport できるようになったことを確認できた.

root@beaglebone:/sys/class/gpio# echo 48 > export
root@beaglebone:/sys/class/gpio# ls
export  gpio48  gpiochip0  gpiochip32  gpiochip64  gpiochip96  unexport
root@beaglebone:/sys/class/gpio# echo 48 > unexport
root@beaglebone:/sys/class/gpio# ls
export  gpiochip0  gpiochip32  gpiochip64  gpiochip96  unexport
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?