Merge pull request #2 from brain-hackers/add-usb-gadget

Add USB-host Explanation
This commit is contained in:
Takumi Sueda 2022-01-09 00:20:11 +09:00 committed by GitHub
commit c9988be342
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -25,10 +25,96 @@ excerpt: PC と USB ケーブル1本で接続できる便利な仕組みとそ
# USB コントローラーの動作モードを変更する
初期状態では Brain の USB コントローラーはホストとして動作するため、このままではデバイスになることができません。
2021年2月23日現在ではまだありませんが、コントローラーの動作モードを簡単に切り替えるスクリプトを用意する予定です。
2022年1月8日現在ではまだありませんが、コントローラーの動作モードを簡単に切り替えるスクリプトを用意する予定です。
手動で変更するには、Device Tree Compiler を使用します
手動で変更するには、以下の手順に従ってください
1. SDカードの第1パーティションを`/boot`にマウントします
```
sudo mount /dev/mmcblk1p1 /boot
```
2. 元のdtsをバックアップします
{機種名の数字}は適宜置き換えてください。(例:PW-SH5→imx28-pwsh5.dtb
```
sudo cp /boot/imx28-pwsh{機種名の数字}.dtb /boot/imx28-pwsh{機種名の数字}.dtb.orig
```
3. dtbファイルをテキスト形式に変換します
```
dtc -I dtb -O dts /boot/imx28-pwsh{機種名の数字}.dtb > dts 2> /dev/null
```
## コピペ用
1〜3の手順をまとめると以下のようになります
```
sudo mount /dev/mmcblk1p1 /boot
sudo cp /boot/imx28-pwsh{機種名の数字}.dtb /boot/imx28-pwsh{機種名の数字}.dtb.orig
dtc -I dtb -O dts /boot/imx28-pwsh{機種名の数字}.dtb > dts 2> /dev/null
```
4. 設定を書き換えます
```
nano dts
```
`usb@80080000`ノードの中から`dr_mode = "host"`の箇所を探し、`dr_mode = "peripheral"`に書き換えます。スペルに注意しましょう。
書き換え後は以下のようになります。
```diff
ahb@80080000 {
usb0: usb@80080000 {
pinctrl-names = "default";
pinctrl-0 = <&usb0_id_pins_a>;
vbus-supply = <&reg_usb0_vbus>;
- dr_mode = "host";
+ dr_mode = "peripheral";
status = "okay";
};
};
```
書き換えられたら保存してエディタを終了します。`Ctrl+O`の次に`Enter`を押して保存して、`Ctrl+X`で終了します。
5. 編集したものをバイナリ形式に変換します
```
dtc -I dts -O dtb dts > dtb 2> /dev/null
```
```
sudo mv dtb /boot/imx28-pwsh{機種名の数字}.dtb
```
6. SDカードの第1パーティションアンマウントします
```
sudo umount /boot
```
7. 再起動します
```
sudo reboot
```
## コピペ用
5〜7の手順をまとめると以下のようになります。
```
dtc -I dts -O dtb dts > dtb 2> /dev/null
sudo mv dtb /boot/imx28-pwsh{機種名の数字}.dtb
sudo umount /boot
sudo reboot
```
# Brain に Ethernet Gadget を喋らせる