8月なので心機一転、というか、案件が(不具合がなければ)変わるので、少し違う方面の調べごとをしている。
BeagleBone Green来たる
[bbg]BegleBone Green用のLinuxを作ろう
UARTで制御したいデバイスがあるので、UART1を使うことにした。
P9の24ピンと26ピンがUART1だ。
さて、UART0は/dev/ttyS0として見ていて、それをコンソールで使っているようだ。
$ tty
/dev/ttyS0
じゃあ、ttyS1がUART1だろう。
$ ls -l /dev/ttyS*
crw------- 1 ubuntu tty 4, 64 Aug 1 02:42 /dev/ttyS0
crw-rw---- 1 root dialout 4, 65 Aug 1 02:22 /dev/ttyS1
crw-rw---- 1 root dialout 4, 66 Aug 1 02:22 /dev/ttyS2
crw-rw---- 1 root dialout 4, 67 Aug 1 02:22 /dev/ttyS3
crw-rw---- 1 root dialout 4, 68 Aug 1 02:22 /dev/ttyS4
crw-rw---- 1 root dialout 4, 69 Aug 1 02:22 /dev/ttyS5
ノードはあるから、使えるんじゃなかろうか。
$ cat hello.txt > /dev/ttyS1
cat: write error: Input/output error
エラーだ。。。
rootになっているからかも、とsudoでやってみたが同じだった。
ネットで検索すると、BeagleBone Blackのことがよく出てくる。
/dev/ttyO系らしいが、uEnv.txtに
cape_enable=capemgr.enable_partno=BB-UART1
などと追加すると良いらしい。
BBGには、/uEnv.txtと/boot/uEnv.txtがあるので、/boot/uEnv.txtに追加した。
dmesgには、カーネルのコマンドラインに追加されるようだ。
Kernel command line: console=tty0 console=ttyO0,115200n8 capemgr.enable_partno=BB-UART1 root=/dev/mmcblk0p1 rootfstype=ext4 rootwait fixrtc
が、変わらず。。。
dmesgを見ると、ttyO0はttyS0に置き換えました、と出てるので、/dev/ttyO1があるのを期待してみたが、無い。
$ sudo cat /proc/tty/driver/serial
serinfo:1.0 driver revision:
0: uart:8250 mmio:0x44E09000 irq:155 tx:21075 rx:461 RTS|CTS|DTR|DSR
1: uart:unknown port:00000000 irq:0
....
あら、unknown扱いになっているので、ドライバが見えていない?
https://eewiki.net/display/linuxonarm/BeagleBone+Black#BeagleBoneBlack-LinuxKernel
ここに「see: BeagleBone Black#capemgr.v4.1.x+」というリンクがあるな。
capemgrというのが何だか知らないけど、当時のブログに何も書いていないから、やっていないのだと思う。
capemgr: v4.1.x+のところを順番にやっているのだが、installのところで64bit OSはサポートしていないというエラーが出てしまう。
はっ、もしかして、これはBeagleBone上で行う作業なのか??
PC上でスクリプトを動かして、/usr/local/binにdtcとかいうコマンドがコピーされてしまったよ。。。
/boot/uEnv.txtに追加するやつで
dtb=am335x-boneblack-overlay.dtb
があるけど、am335x-bonegreen-overlay.dtbもあったので、そちらにしておこう。
最終的にはこうなった(uname_rは最初から入っていた)。
uname_r=4.4.10-bone10
dtb=am335x-bonegreen-overlay.dtb
cape_enable=bone_capemgr.enable_partno=BB-UART1
では、再起動して確認。
$ sudo cat /proc/tty/driver/serial
serinfo:1.0 driver revision:
0: uart:8250 mmio:0x44E09000 irq:155 tx:8210 rx:74 RTS|CTS|DTR|DSR
1: uart:8250 mmio:0x48022000 irq:187 tx:0 rx:0 CTS|DSR|CD|RI
2: uart:unknown port:00000000 irq:0
....
出てきた出てきた。
$ cat hello.txt > /dev/ttyS1
$
エラー出なくなった。
やれやれですわ。
0 件のコメント:
コメントを投稿
コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。
注: コメントを投稿できるのは、このブログのメンバーだけです。