短い一般的な質問
私はカーネル4.9がインストールされているBeaglebone BlackでDebian 9(Stretch)を実行しています。オンラインで見つけた指示に従おうとしましたが、これまでUARTデバイスを設定できないようです。自分のデバイスをどのように設定しますか?構成の問題をデバッグ/トラブルシューティングするにはどうすればよいですか?私の設定が正しいことをどうやって確認しますか?
長くて詳細な質問
私は通常、組み込みLinux、特にBeagleboneに初めて触れました。私はここで提供された指示に従いました。
最新の「MicroSDカードからBeagleBoneおよびPocketBeagle用Stretch IoT(グラフィックスデスクトップなし)」画像をダウンロードしました(具体的には骨-debian-9.3-iot-armhf-2018-03-05-4gb.img)から最新の写真ページSDカードからBeagleboardをフラッシュします。インストール後、シリアルUSBケーブルを介してLinuxデスクトップからBeagleboneにアクセスできました。これは、次の記事で説明されている方法と似ています。
screen
次のコマンドを正常に使用できます。
screen /dev/ttyUSB0 115200
Micro-USB-USBケーブルを使用してSSH経由で接続することもできます。
ssh [email protected]
Beagleboneに接続した後、私のカーネルバージョンがあることを確認したLinux beaglebone 4.9.82-ti-r102
後、Beaglebone UARTの設定に関するいくつかの記事を読んでください。
私の結論は、(通常)OSとカーネルのバージョンに応じて確認する必要があるいくつかの設定ファイルがあることです。これには以下が含まれます。
/boot/uEnv.txt
/boot/uboot/uEnv.txt
/etc/default/capemgr
/media/BEAGLEBONE/uEnv.txt
次のようないくつかのデバイスファイルも言及されています。
- /sys/devices/bone_capemgr.*/slots
各ファイルに次の行を追加してみましたuEnv.txt
。
cape_enable=capemgr.enable_partno=BB-UART1,BB-UART2,BB-UART4,BB-UART5
optargs=capemgr.enable_partno=BB-UART1,BB-UART2,BB-UART3,BB-UART5
また、次の行を追加してみました/etc/default/capemgr
。
CAPE=BB-SPI-01,BB-UART1,BB-UART2,BB-UART4
再起動後、次を使用してUARTデバイスが表示されることを確認しました。
ls -l /dev/ttyO*
残念ながら、私は次のような結果を得ました(予想外の結果):
debian@beaglebone:~$ ls -l /dev/ttyO*
lrwxrwxrwx 1 root root 5 Jan 1 00:00 /dev/ttyO0 -> ttyS0
注:気にしませんttyO0
。気にしませんttyO1, ..., ttyO5
。
また、いくつかの異なる試みも試しましたが(時間とスペースを節約するために)要求しない限り、すべての試みを説明するわけではありません。
私がここで何を間違っているのか? UARTデバイスを有効にする正しい方法は何ですか?
ベストアンサー1
以下は、カーネル4.14を含むDebian 9.9に適用されます(Debian 9.3ではなくDebian 8.3にも適用されます)。
起動後、/dev/ttyO1、O2、O4ファイルが表示されますが、ピンを正しいpinmuxに設定するまでは機能しません。
#ttyO1:
config-pin P9_24 uart
config-pin P9_26 uart
#ttyO2:
config-pin P9_21 uart
config-pin P9_22 uart
#ttyO4:
config-pin P9_11 uart
config-pin P9_13 uart
この手順は再起動するたびに実行する必要があります。一種の起動スクリプトに属します。
UART4のような簡単なループバックテストにより、UARTが正しく動作していることを確認できます。
P9_11とP9_13の間にワイヤを配置
画面/開発者/ttyO4
ウィンドウに入力したテキストが表示され、ワイヤを外すと入力が表示されなくなります。 UARTが動作しています。