documents:os:linux:debian:bbb-doc004
文書の過去の版を表示しています。
004.もっとPINを寄こせ
2026-08-15
意外とI/Oの口が空いてないので増やしてみる
もったいない未使用PIN
利用可能なPINを探してみる。…纏まって使えそうな箇所が無い。
debian@BeagleBone:~$ gpioinfo
gpiochip0 - 32 lines:
line 0: "[mdio_data]" unused input active-high
line 1: "[mdio_clk]" unused input active-high
line 2: "P9_22 [spi0_sclk]" "P9_22" input active-high [used]
line 3: "P9_21 [spi0_d0]" "P9_21" input active-high [used]
line 4: "P9_18 [spi0_d1]" "P9_18" input active-high [used]
line 5: "P9_17 [spi0_cs0]" "P9_17" input active-high [used]
line 6: "[mmc0_cd]" "cd" input active-low [used]
line 7: "P9_42A [ecappwm0]" "P9_42" input active-high [used]
line 8: "P8_35 [lcd d12]" "P8_35" input active-high [used]
line 9: "P8_33 [lcd d13]" "P8_33" input active-high [used]
line 10: "P8_31 [lcd d14]" "P8_31" input active-high [used]
line 11: "P8_32 [lcd d15]" "P8_32" input active-high [used]
line 12: "P9_20 [i2c2_sda]" "P9_20" input active-high [used]
line 13: "P9_19 [i2c2_scl]" "P9_19" input active-high [used]
line 14: "P9_26 [uart1_rxd]" "P9_26" input active-high [used]
line 15: "P9_24 [uart1_txd]" "P9_24" input active-high [used]
line 16: "[rmii1_txd3]" unused input active-high
line 17: "[rmii1_txd2]" unused input active-high
line 18: "[usb0_drvvbus]" unused input active-high
line 19: "[hdmi cec]" unused input active-high
line 20: "P9_41B" "P9_41" input active-high [used]
line 21: "[rmii1_txd1]" unused input active-high
line 22: "P8_19 [ehrpwm2a]" "P8_19" input active-high [used]
line 23: "P8_13 [ehrpwm2b]" "P8_13" input active-high [used]
line 24: "NC" unused input active-high
line 25: "NC" unused input active-high
line 26: "P8_14" "P8_14" input active-high [used]
line 27: "P8_17" "P8_17" input active-high [used]
line 28: "[rmii1_txd0]" unused input active-high
line 29: "[rmii1_refclk]" unused input active-high
line 30: "P9_11 [uart4_rxd]" "P9_11" input active-high [used]
line 31: "P9_13 [uart4_txd]" "P9_13" input active-high [used]
gpiochip1 - 32 lines:
line 0: "P8_25 [mmc1_dat0]" "P8_25" input active-high [used]
line 1: "[mmc1_dat1]" "P8_24" input active-high [used]
line 2: "P8_5 [mmc1_dat2]" "P8_05" input active-high [used]
line 3: "P8_6 [mmc1_dat3]" "P8_06" input active-high [used]
line 4: "P8_23 [mmc1_dat4]" "P8_23" input active-high [used]
line 5: "P8_22 [mmc1_dat5]" "P8_22" input active-high [used]
line 6: "P8_3 [mmc1_dat6]" "P8_03" input active-high [used]
line 7: "P8_4 [mmc1_dat7]" "P8_04" input active-high [used]
line 8: "NC" "PHY reset" output active-low [used]
line 9: "NC" unused input active-high
line 10: "NC" unused input active-high
line 11: "NC" unused input active-high
line 12: "P8_12" "P8_12" input active-high [used]
line 13: "P8_11" "P8_11" input active-high [used]
line 14: "P8_16" "P8_16" input active-high [used]
line 15: "P8_15" "P8_15" input active-high [used]
line 16: "P9_15A" "P9_15" input active-high [used]
line 17: "P9_23" "P9_23" input active-high [used]
line 18: "P9_14 [ehrpwm1a]" "P9_14" input active-high [used]
line 19: "P9_16 [ehrpwm1b]" "P9_16" input active-high [used]
line 20: "[emmc rst]" unused input active-high
line 21: "[usr0 led]" "beaglebone:green:usr0" output active-high [used]
line 22: "[usr1 led]" "beaglebone:green:usr1" output active-high [used]
line 23: "[usr2 led]" "beaglebone:green:usr2" output active-high [used]
line 24: "[usr3 led]" "beaglebone:green:usr3" output active-high [used]
line 25: "[hdmi irq]" "interrupt" input active-high [used]
line 26: "[usb vbus oc]" unused input active-high
line 27: "[hdmi audio]" "enable" output active-high [used]
line 28: "P9_12" "P9_12" input active-high [used]
line 29: "P8_26" "P8_26" input active-high [used]
line 30: "P8_21 [emmc]" "P8_21" input active-high [used]
line 31: "P8_20 [emmc]" "P8_20" input active-high [used]
gpiochip2 - 32 lines:
line 0: "P9_15B" unused input active-high
line 1: "P8_18" "P8_18" input active-high [used]
line 2: "P8_7" "P8_07" input active-high [used]
line 3: "P8_8" "P8_08" input active-high [used]
line 4: "P8_10" "P8_10" input active-high [used]
line 5: "P8_9" "P8_09" input active-high [used]
line 6: "P8_45 [hdmi]" "P8_45" input active-high [used]
line 7: "P8_46 [hdmi]" "P8_46" input active-high [used]
line 8: "P8_43 [hdmi]" "P8_43" input active-high [used]
line 9: "P8_44 [hdmi]" "P8_44" input active-high [used]
line 10: "P8_41 [hdmi]" "P8_41" input active-high [used]
line 11: "P8_42 [hdmi]" "P8_42" input active-high [used]
line 12: "P8_39 [hdmi]" "P8_39" input active-high [used]
line 13: "P8_40 [hdmi]" "P8_40" input active-high [used]
line 14: "P8_37 [hdmi]" "P8_37" input active-high [used]
line 15: "P8_38 [hdmi]" "P8_38" input active-high [used]
line 16: "P8_36 [hdmi]" "P8_36" input active-high [used]
line 17: "P8_34 [hdmi]" "P8_34" input active-high [used]
line 18: "[rmii1_rxd3]" unused input active-high
line 19: "[rmii1_rxd2]" unused input active-high
line 20: "[rmii1_rxd1]" unused input active-high
line 21: "[rmii1_rxd0]" unused input active-high
line 22: "P8_27 [hdmi]" "P8_27" input active-high [used]
line 23: "P8_29 [hdmi]" "P8_29" input active-high [used]
line 24: "P8_28 [hdmi]" "P8_28" input active-high [used]
line 25: "P8_30 [hdmi]" "P8_30" input active-high [used]
line 26: "[mmc0_dat3]" unused input active-high
line 27: "[mmc0_dat2]" unused input active-high
line 28: "[mmc0_dat1]" unused input active-high
line 29: "[mmc0_dat0]" unused input active-high
line 30: "[mmc0_clk]" unused input active-high
line 31: "[mmc0_cmd]" unused input active-high
gpiochip3 - 32 lines:
line 0: "[mii col]" unused input active-high
line 1: "[mii crs]" unused input active-high
line 2: "[mii rx err]" unused input active-high
line 3: "[mii tx en]" unused input active-high
line 4: "[mii rx dv]" unused input active-high
line 5: "[i2c0 sda]" unused input active-high
line 6: "[i2c0 scl]" unused input active-high
line 7: "[jtag emu0]" unused input active-high
line 8: "[jtag emu1]" unused input active-high
line 9: "[mii tx clk]" unused input active-high
line 10: "[mii rx clk]" unused input active-high
line 11: "NC" unused input active-high
line 12: "NC" unused input active-high
line 13: "[usb vbus en]" unused input active-high
line 14: "P9_31 [spi1_sclk]" "P9_31" input active-high [used]
line 15: "P9_29 [spi1_d0]" "P9_29" input active-high [used]
line 16: "P9_30 [spi1_d1]" "P9_30" input active-high [used]
line 17: "P9_28 [spi1_cs0]" "P9_28" input active-high [used]
line 18: "P9_42B [ecappwm0]" "P9_92" input active-high [used]
line 19: "P9_27" "P9_27" input active-high [used]
line 20: "P9_41A" "P9_91" input active-high [used]
line 21: "P9_25" "P9_25" input active-high [used]
line 22: "NC" unused input active-high
line 23: "NC" unused input active-high
line 24: "NC" unused input active-high
line 25: "NC" unused input active-high
line 26: "NC" unused input active-high
line 27: "NC" unused input active-high
line 28: "NC" unused input active-high
line 29: "NC" unused input active-high
line 30: "NC" unused input active-high
line 31: "NC" unused input active-high
debian@BeagleBone:~$
使用しているBBBにはディスプレイを繋いでいない。なのにHDMIの為に結構な数のPINが予約されている。
……もったいないお化けが出るね…
debian@BeagleBone:~$ gpioinfo | grep hdmi
line 19: "[hdmi cec]" unused input active-high
line 25: "[hdmi irq]" "interrupt" input active-high [used]
line 27: "[hdmi audio]" "enable" output active-high [used]
line 6: "P8_45 [hdmi]" "P8_45" input active-high [used]
line 7: "P8_46 [hdmi]" "P8_46" input active-high [used]
line 8: "P8_43 [hdmi]" "P8_43" input active-high [used]
line 9: "P8_44 [hdmi]" "P8_44" input active-high [used]
line 10: "P8_41 [hdmi]" "P8_41" input active-high [used]
line 11: "P8_42 [hdmi]" "P8_42" input active-high [used]
line 12: "P8_39 [hdmi]" "P8_39" input active-high [used]
line 13: "P8_40 [hdmi]" "P8_40" input active-high [used]
line 14: "P8_37 [hdmi]" "P8_37" input active-high [used]
line 15: "P8_38 [hdmi]" "P8_38" input active-high [used]
line 16: "P8_36 [hdmi]" "P8_36" input active-high [used]
line 17: "P8_34 [hdmi]" "P8_34" input active-high [used]
line 22: "P8_27 [hdmi]" "P8_27" input active-high [used]
line 23: "P8_29 [hdmi]" "P8_29" input active-high [used]
line 24: "P8_28 [hdmi]" "P8_28" input active-high [used]
line 25: "P8_30 [hdmi]" "P8_30" input active-high [used]
debian@BeagleBone:~$
19個のPINを利用できるんじゃないかな。これをユーザが利用できるようにしたい。
予約を取り消させる方法
/boot/uEnv.txt というファイルがあり、Linuxカーネル側の設定を上書きする事が出来る。
debian@BeagleBone:~$ grep -n 'uboot_overlay\|video\|audio' /boot/uEnv.txt 10:enable_uboot_overlays=1 13:#uboot_overlay_addr0=<file0>.dtbo 14:#uboot_overlay_addr1=<file1>.dtbo 15:#uboot_overlay_addr2=<file2>.dtbo 16:#uboot_overlay_addr3=<file3>.dtbo 19:#uboot_overlay_addr4=<file4>.dtbo 20:#uboot_overlay_addr5=<file5>.dtbo 21:#uboot_overlay_addr6=<file6>.dtbo 22:#uboot_overlay_addr7=<file7>.dtbo 27:###Disable auto loading of virtual capes (emmc/video/wireless/adc) 28:#disable_uboot_overlay_emmc=1 29:#disable_uboot_overlay_video=1 30:#disable_uboot_overlay_audio=1 31:#disable_uboot_overlay_wireless=1 32:#disable_uboot_overlay_adc=1 38:#disable_uboot_overlay_addr0=1 39:#disable_uboot_overlay_addr1=1 40:#disable_uboot_overlay_addr2=1 41:#disable_uboot_overlay_addr3=1 51:#cmdline=coherent_pool=1M net.ifnames=0 lpj=1990656 rng_core.default_quality=100 quiet video=HDMI-A-1:1024x768@60e debian@BeagleBone:~$
既にenable_uboot_overlays=1が指定されているので、怪しそうな#disable_uboot_overlay_video=1と#disable_uboot_overlay_audio=1のコメントアウトを解除して再起動してみる。
debian@BeagleBone:~$ ls -l /boot
合計 42552
-rw-r--r-- 1 root root 542 9月 2 2023 SOC.sh
-rw-r--r-- 1 root root 4782766 9月 1 2023 System.map-5.10.168-ti-r71
-rw-r--r-- 1 root root 4694259 8月 7 2025 System.map-5.10.168-ti-r83
-rw-r--r-- 1 root root 190939 9月 1 2023 config-5.10.168-ti-r71
-rw-r--r-- 1 root root 191640 8月 7 2025 config-5.10.168-ti-r83
drwxr-xr-x 4 root root 4096 8月 11 09:32 dtbs
-rw-r--r-- 1 root root 7719588 9月 2 2023 initrd.img-5.10.168-ti-r71
-rw-r--r-- 1 root root 7959893 8月 11 09:46 initrd.img-5.10.168-ti-r83
-rw-r--r-- 1 debian debian 1713 8月 11 09:34 uEnv.txt
drwxr-xr-x 2 root root 4096 9月 2 2023 uboot
-rwxr-xr-x 1 root root 11342336 9月 1 2023 vmlinuz-5.10.168-ti-r71
-rwxr-xr-x 1 root root 6656512 8月 7 2025 vmlinuz-5.10.168-ti-r83
debian@BeagleBone:~$ sudo vi /boot/uEnv.txt
[sudo] debian のパスワード:
debian@BeagleBone:~$ sudo reboot
-- 再起動後 --
debian@BeagleBone:~$ gpioinfo | grep hdmi
line 19: "[hdmi cec]" unused input active-high
line 25: "[hdmi irq]" unused input active-high ← 表示が変わってる
line 27: "[hdmi audio]" unused input active-high ← 表示が変わってる
line 6: "P8_45 [hdmi]" "P8_45" input active-high [used]
line 7: "P8_46 [hdmi]" "P8_46" input active-high [used]
line 8: "P8_43 [hdmi]" "P8_43" input active-high [used]
line 9: "P8_44 [hdmi]" "P8_44" input active-high [used]
line 10: "P8_41 [hdmi]" "P8_41" input active-high [used]
line 11: "P8_42 [hdmi]" "P8_42" input active-high [used]
line 12: "P8_39 [hdmi]" "P8_39" input active-high [used]
line 13: "P8_40 [hdmi]" "P8_40" input active-high [used]
line 14: "P8_37 [hdmi]" "P8_37" input active-high [used]
line 15: "P8_38 [hdmi]" "P8_38" input active-high [used]
line 16: "P8_36 [hdmi]" "P8_36" input active-high [used]
line 17: "P8_34 [hdmi]" "P8_34" input active-high [used]
line 22: "P8_27 [hdmi]" "P8_27" input active-high [used]
line 23: "P8_29 [hdmi]" "P8_29" input active-high [used]
line 24: "P8_28 [hdmi]" "P8_28" input active-high [used]
line 25: "P8_30 [hdmi]" "P8_30" input active-high [used]
debian@BeagleBone:~$ config-pin -q P8_45 ←試しにP8_45を確認する。
Current mode for P8_45 is: default
debian@BeagleBone:~$ config-pin -l P8_45
Available modes for P8_45 are: default gpio gpio_pu gpio_pd pwm pruout pruin
debian@BeagleBone:~$ config-pin P8_45 gpio
Current mode for P8_45 is: gpio
debian@BeagleBone:~$ config-pin -q P8_45
Current mode for P8_45 is: gpio ← GPIOモードで使えそう!!
debian@BeagleBone:~$
次からはこの空けた部分を実際に使ってみる。
documents/os/linux/debian/bbb-doc004.1786775693.txt.gz · 最終更新: by k896951
