Вопрос или проблема
Я пытаюсь получить доступ к последовательному порту сотового модема ZTE MF831.
Я могу получить доступ к последовательному порту из Windows, используя драйвер “ZTE Proprietary USB Modem” (modem.sys, ZTEusbmdm6k.sys).
Но я не могу получить доступ к нему с Raspberry Pi, я пробовал:
minicom -D /dev/ttyUSB0 -b 9600
но я не могу ввести ничего, и нет никакого вывода. Я также пробовал читать/ записывать с помощью cat/echo в /dev/ttyUSB0 без успеха.
lsusb
Bus 001 Device 011: ID 19d2:0016 ZTE WCDMA Technologies MSM ZTE Wireless Ethernet Adapter
dmesg
[13336096.289113] usb 1-1.3: новое высокоскоростное USB-устройство номер 11, использующее xhci_hcd
[13336096.423536] usb 1-1.3: Найдено новое USB-устройство, idVendor=19d2, idProduct=0016, bcdDevice=52.45
[13336096.423565] usb 1-1.3: Новые строки USB-устройства: Mfr=1, Product=2, SerialNumber=3
[13336096.423579] usb 1-1.3: Продукт: ZTE Wireless Ethernet Adapter
[13336096.423589] usb 1-1.3: Производитель: ZTE, Incorporated
[13336096.444144] option 1-1.3:1.0: обнаружен GSM модем (1-порт) конвертер
[13336096.444559] usb 1-1.3: GSM модем (1-порт) конвертер теперь подключен к ttyUSB0
Многие проблемы с доступом к устройствам являются проблемами разрешений и могут быть решены путем изменения членства в группах.
Вы можете найти имя устройства, наблюдая за sudo journalctl --follow
во время подключения вашего устройства (если у вас есть journalctl
). ИЛИ ls -1 -l /dev >dev.before
, подключите устройство, подождите 10 секунд, ls -1 -l /dev >dev.after;diff /dev/{before,after}
.
В частности, если ls -l
показывает, что групповые разрешения (второй “rwx
” тройной код) равны “rw
” (например, “-rw-rw----
“), то добавление себя в группу, владеющую устройством, предоставит доступ rw
.
Вот как:
# измените на имя вашего устройства
device="/dev/ВашеУстройство"
device="/dev/ttyUSB0"
sudo adduser $USER $(stat -c "%G" $device)
Это позволит вам стать членом группы (в качестве члена вторичной группы), которая может rw
к устройству, но есть еще один шаг.
Чтобы сделать все ваши процессы членами новой группы, выполните выход из системы и вход в систему. Членство в группах устанавливается во время login
.
Чтобы создать один процесс в новой группе (для тестирования перед выходом/входом):
newgrp $(stat -c "%G" $device)
Смотрите man newgrp
.
Ответ или решение
Здравствуйте!
Проблема, с которой вы столкнулись при доступе к последовательному порту модема ZTE MF831 на Raspberry Pi, может быть вызвана несколькими факторами. Вот пошаговое руководство, которое может помочь вам решить эту проблему.
1. Проверка прав доступа
Часто проблемы доступа к устройствам возникают из-за недостатка прав. Убедитесь, что ваш пользователь входит в группу, которая имеет доступ к последовательному порту.
Чтобы проверить права доступа к устройству, выполните следующие команды:
ls -l /dev/ttyUSB0
Вы должны увидеть что-то вроде:
crw-rw---- 1 root dialout 188, 0 date time /dev/ttyUSB0
Если группа, указанная после прав (в примере выше — dialout
), имеет права на запись rw
, добавьте своего пользователя в эту группу:
sudo adduser $USER dialout
После этого вам нужно выйти и войти в систему заново, чтобы изменения вступили в силу. Чтобы проверить, работает ли это, выполните команду:
groups
Убедитесь, что dialout
присутствует в списке групп.
2. Использование Minicom
После того как вы убедились, что у вас есть необходимые права, попробуйте снова подключиться к вашему модему с помощью Minicom:
minicom -D /dev/ttyUSB0 -b 9600
Если Minicom по-прежнему не отображает ничего и не принимает ввод, проверьте его настройки, убедившись, что параметры являются корректными (9600 бод — это стандартный для модемов, но если есть документация к вашему модему, проверьте).
3. Другие методы для чтения и записи
Если Minicom не работает, вы можете попробовать использовать команды cat
и echo
. Например:
echo "AT" > /dev/ttyUSB0
cat /dev/ttyUSB0
Это позволит вам отправить команду AT и посмотреть, что вернет модем. Если вы не видите никаких ответов, возможно, что проблема заключается в неправильных настройках или в самой аппаратной части.
4. Проверка состояния устройства
Используйте dmesg
, чтобы просмотреть последнюю информацию о подключенном устройстве. Команда:
dmesg | tail -n 20
покажет, что происходит в системе, когда вы подключаете модем. Убедитесь, что устройство правильно определяется и нет сообщений об ошибках.
5. Проверка других устройств
Если вы пробовали все вышеперечисленные шаги и проблема не была решена, попробуйте подключить модем к другому компьютеру (например, под управлением Windows) для проверки работоспособности. Если он работает там, возможно, у вас есть специфическая проблема с конфигурацией Raspberry Pi.
Заключение
Если ни один из вышеперечисленных методов не помог, пожалуйста, сообщите, какие именно сообщения вы получаете или какие проблемы остались. Это может помочь более детально диагностировать проблему. Удачи!