私はLubuntuを実行しているOrange Pi Zeroを持っており、それをArduino(クローン)と通信させたいと考えています。
Arduino からの USB ケーブルを Orange Pi に差し込みました。接続しているときと接続していないときの「ポート」(/dev フォルダ) を比較すると、/dev/usbdev6.4 が Arduino であることがわかりました。
私の Arduino は、シリアル経由で 1 秒ごとに「Hey」と発声するコードを実行しています。そこで、次を実行しようとしました: minicom -D /dev/usbdev6.4 しかし、何も表示されません。
いろいろ試してみましたが、もう選択肢がありません。
誰か助けてくれませんか?
編集: 要求された情報:
私のカーネルバージョン:
Linux orangepi 3.4.39 #46 SMP PREEMPT Wed Nov 9 09:50:08 CST 2016 armv7l armv7l armv7l GNU/Linux
コマンドはdmesg | grep -i tty
次のように出力しました:
$[ 0.000000] Kernel command line: console=ttyS0,115200 console=tty1 root=/dev/mmcblk0p2 init=/sbin/init rootwait rootfstype=ext4 panic=10 consoleblank=0 enforcing=0 loglevel=7
[ 0.000000] console [tty1] enabled
[ 0.393385] uart0: ttyS0 at MMIO 0x1c28000 (irq = 32) is a SUNXI
[ 0.505110] console [ttyS0] enabled
[ 1.007724] uart1: ttyS1 at MMIO 0x1c28400 (irq = 33) is a SUNXI
[ 1.111633] uart2: ttyS2 at MMIO 0x1c28800 (irq = 34) is a SUNXI
[ 2.490156] Bluetooth: RFCOMM TTY layer initialized
dmesg の違い:
> [ 188.338462] ehci_irq: highspeed device connect
> [ 188.540136] ehci_irq: highspeed device disconnect
> [ 188.540200] ohci_irq: fullspeed or lowspeed device connect
> [ 188.960117] usb 6-1: new full-speed USB device number 2 using sunxi-ohci
lsusb の違い:
> Bus 006 Device 002: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter
これも読みました: https://lists.launchpad.net/kernel-packages/msg183415.html
これは CH341 チップのバグに関するものです。私のクローン Arduino はこれを使用していると思います。これが問題なのでしょうか?
実行するmodinfo ch341
と、次の結果が返されました:
libkmod: ERROR ../libkmod/libkmod.c:507 kmod_lookup_alias_from_builtin_file:
could not open builtin file '/lib/modules/3.4.39/modules.builtin.bin'
modinfo: ERROR: Module ch341 not found.
前もって感謝します!
答え1
答えはこうです: USB シリアル デバイスに必要なカーネル モジュールがありません。このモジュールを含む新しいカーネルにアップグレードするか、カーネル用にモジュールをコンパイルしてください。
必要なデバイスIDがすでに含まれているモジュールソースコードのバージョンを使用してください(1a86:7523
)。インストールが成功すると、次のようなものが表示されます。
$ sudo modinfo ch341
filename: /lib/modules/4.8.5/kernel/drivers/usb/serial/ch341.ko
license: GPL
alias: usb:v1A86p5523d*dc*dsc*dp*ic*isc*ip*in*
alias: usb:v1A86p7523d*dc*dsc*dp*ic*isc*ip*in*
alias: usb:v4348p5523d*dc*dsc*dp*ic*isc*ip*in*
depends: usbserial,usbcore
intree: Y
vermagic: 4.8.5 SMP preempt mod_unload modversions 686
(もちろん、これは私のシステム用です)。エイリアスはv1A86p7523d
パッチが適用されたものであり、存在しているはずです。