|
|
157行目: |
157行目: |
| または | | または |
| sudo make distclean -j $(nproc) # .configファイル等の設定ファイルを全て削除する | | sudo make distclean -j $(nproc) # .configファイル等の設定ファイルを全て削除する |
| <br><br>
| |
|
| |
| == スーパーI/Oチップのカーネルモジュールの有効化 ==
| |
| まず、付属しているスーパーI/Oチップのカーネルモジュールを知りたい場合は、[https://github.com/torvalds/linux Linux KernelのGithub]にあるgit repoから、スーパーI/Oチップ名で検索する。<br>
| |
| <br>
| |
| 以下の例では、スーパーI/Oチップ名が"iTE IT8786E-I"の場合である。<br>
| |
| repo:torvalds/linux iTE IT8786E-I
| |
| <br>
| |
| <syntaxhighlight lang="c">
| |
| /* linux/drivers/gpio/gpio-it78.cファイル */
| |
|
| |
| /* gpio-it78.c */
| |
|
| |
| /*
| |
| * GPIO interface for IT87xx Super I/O chips
| |
| *
| |
| * Author: Diego Elio Pettenò <flameeyes@flameeyes.eu>
| |
| * Copyright (c) 2017 Google, Inc.
| |
| *
| |
| * Based on it87_wdt.c by Oliver Schuster
| |
| * gpio-it8761e.c by Denis Turischev
| |
| * gpio-stmpe.c by Rabin Vincent
| |
| */
| |
| </syntaxhighlight>
| |
| <br>
| |
| <syntaxhighlight lang="make">
| |
| # linux/drivers/gpio/Makefileファイル
| |
| # ※ "CONFIG_GPIO_IT87"という部分の文字列を控えておくこと
| |
|
| |
| obj-$(CONFIG_GPIO_IT87) += gpio-it87.o
| |
| </syntaxhighlight>
| |
| <br>
| |
| # linux/drivers/gpio/Kconfigファイル
| |
|
| |
| Kconfig snippet:
| |
|
| |
| config GPIO_IT87
| |
| tristate "IT87xx GPIO support"
| |
| help
| |
| Say yes here to support GPIO functionality of IT87xx Super I/O chips.
| |
|
| |
| This driver is tested with ITE IT8728 and IT8732 Super I/O chips, and
| |
| supports the IT8761E, IT8613, IT8620E, and IT8628E Super I/O chips as
| |
| well.
| |
|
| |
| To compile this driver as a module, choose M here: the module will
| |
| be called gpio_it87.
| |
| <br>
| |
| スーパーI/Oチップ名を確認して、該当するカーネルモジュールがインストールされているかどうかを確認する。<br>
| |
| find /lib/modules/$(uname -r)/kernel/drivers/gpio -iname "*gpio*" | grep -i gpio-it87
| |
| <br>
| |
| スーパーI/Oチップ名を確認して、該当するカーネルモジュールが読み込まれているかどうかを確認する。<br>
| |
| grep CONFIG_GPIO_IT87 /boot/config-$(uname -r)
| |
|
| |
| # 出力例:
| |
| # mと出力される場合、そのカーネルモジュールがデフォルトでは無効であることを意味する
| |
| CONFIG_GPIO_IT87=m
| |
| <br>
| |
| スーパーI/Oチップのカーネルモジュールを有効にする。<br>
| |
| sudo modprobe gpio-it87
| |
| <br>
| |
| GPIOピンの入出力に関する設定はBIOS / UEFIを通してのみ変更可能であり、GPIOの値を設定 / 取得する場合はスーパーユーザ権限が必要である。<br>
| |
| <br>
| |
| もし、gpiolibのピン番号がBIOS / UEFIのピン番号と一致しない場合は、各ピンをブレッドボード上のLEDに接続して、以下のようなシェルスクリプトを実行する。<br>
| |
| 以下の例では、チップセット0の全ピンを1秒間ごとにトグルしている。<br>
| |
| ただし、実行前に、BIOS / UEFIにおいて、全てのGPIOピンを出力モードに割り当てること。<br>
| |
| <syntaxhighlight lang="sh">
| |
| for i in $(seq 0 63)
| |
| do
| |
| echo -n "$i on "
| |
| sudo gpioset 0 "$i=1"
| |
| sleep 1
| |
| echo off
| |
| sudo gpioset 0 "$i=0"
| |
| done
| |
| </syntaxhighlight>
| |
| <br><br> | | <br><br> |
|
| |
|