У меня есть Orange Pi Zero под управлением Lubuntu, и я хочу, чтобы он взаимодействовал с Arduino (клоном).
Я только что вставил USB-кабель от arduino в свой Orange Pi. Если сравнить все 'порты'(?) (папка /dev), когда я подключен и когда нет, я обнаружил, что /dev/usbdev6.4 - это мой arduino.
Мой arduino просто запускает код, где он каждую секунду говорит "Hey" через последовательный порт. Поэтому я попытался запустить: minicom -D /dev/usbdev6.4 Но ничего не вышло.
Я перепробовал много вещей, и теперь у меня нет выбора.
Кто-нибудь может мне помочь?
EDIT: Запрошенная информация:
Моя версия ядра:
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-устройства. Обновите ядро до более нового, которое содержит этот модуль, или скомпилируйте модуль для вашего ядра.
Убедитесь, что вы используете версию исходного кода модуля, которая уже включает нужный вам идентификатор устройства ( 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
— это тот, который был пропатчен и должен присутствовать.