Как «поговорить» с USB-модемом в Linux?

У меня есть USB-модем, который идентифицирован в Linux (Ubuntu 12.04) с lsusb как

Bus 001 Device 003: ID 0572:1329 Conexant Systems (Rockwell), Inc.

Как разговаривать с этим устройством (например, с microcom и т. Д.?)? Какое dev устройство мне следует использовать? Нет доступных /dev/ttyUSBXXX и только один /dev/ttyACM0.

6
задан 25 September 2012 в 18:26

6 ответов

Вы можете использовать cu.

$ sudo apt-get install cu

Вы можете подключиться к вашему модему с помощью:

$ cu -l ttyACM0

(где ttyACM0 - устройство / dev / ttyACM0). Вы должны получить ответ:

connected

На этом этапе вы можете использовать любую из стандартных AT-команд, например, для проверки набора номера:

ATDT 123-456-7890

У вас должен быть установлен идентификатор пользователя для группового набора для разрешения доступа к модему.

Вы можете выйти из приложения cu с помощью «~.» (точка тильды).

Другие команды Hayese можно найти по адресу:

http://en.wikipedia.org/wiki/Hayes_command_set

0
ответ дан 25 September 2012 в 18:26

Используйте minicom, socat или screen:

socat - /dev/ttyUSB1 
minicom -D /dev/ttyUSB1
screen /dev/ttyUSB1

ПРИМЕЧАНИЕ. Я использовал реальное имя устройства /dev/ttyUSB1 вместо фальшивого /dev/usbDev.

0
ответ дан 25 September 2012 в 18:26
  1. Убедитесь, что ваш USB-модем правильно подключен к любому доступному USB-порту на вашем компьютере с Ubuntu.

  2. Щелкните значок сети и выберите Edit connections. Это запустит утилиту сетевого управления Ubuntu.

  3. Выберите имя USB-модема из списка доступных подключений, затем нажмите Properties.

  4. Нажмите Enable this Connection, чтобы сообщить Ubuntu, что вы хотите использовать это устройство для подключения к интернет-сетям.

  5. Нажмите OK.. Теперь ваш USB-модем будет правильно подключен и настроен в Ubuntu, и теперь вы можете использовать его для подключения к Интернету.

Источник урока здесь

0
ответ дан 25 September 2012 в 18:26

Существуют две программы, о которых я знаю, что вы можете использовать для отправки команд AT (Внимание) на ваш модем, одна из них - терминал последовательного порта, а другая - Cutecom.

0
ответ дан 25 September 2012 в 18:26

Если под разговором вы подразумеваете отправку AT-команд в форме

echo "ATi" > /dev/usbDev

, попробуйте это: http://brunomgalmeida.wordpress.com/2012/04/06/send-at-commands -в-USB-модем /

0
ответ дан 25 September 2012 в 18:26

Я верю ответу, который Вы ищете, здесь: Используя winmodem USB с драйвером Conexant в (K) (Сновещательной) Ubuntu 11.10.

Важный материал (извлеченный из сайта):

Когда я включил модем Conexant, я выполнился

lsusb

и это сказало:

[...]

Bus 006 Device 002: ID 0572:1300 Conexant Systems (Rockwell), Inc. SoftK56 Data Fax Voice CARP

[...]

таким образом, я знал, что модем HSF был распознан системой.

Поскольку у меня было предыдущее интернет-соединение, я обновил систему

sudo apt-get update && sudo apt-get dist-upgrade

Я проверил, что у меня не было предыдущих установленных драйверов Conexant. Например: Я выполнился

ls /usr/sbin/hsfconfig

и это сказало, что тот файл не существовал; если это существовало, я буду думать, что что-то было все еще установлено.

Я удостоверился, что у меня был "gcc", и "сделайте" готовыми, выполнившись

sudo apt-get install gcc make

Затем я выполнил те шаги, сказанные там:

sudo -s
cd /lib/modules/$(uname -r)/build/include/linux
ln -s ../generated/utsrelease.h
ln -s ../generated/autoconf.h
exit

Я подготовил файлы к компиляции драйвера, выполнившись

mkdir ~/conexant_modem
cd ~/conexant_modem

и если у меня была 64-разрядная операционная система, я выполнился

wget http://linux.dell.com/files/ubuntu/hardy/modem-drivers/hsf/hsfmodem-7.68.00.09x86_64oem.tar.gz
tar xzf hsfmodem-7.68.00.09x86_64oem.tar.gz
wget http://www.bargweb.net/images/2009/november/hsfmodem-7.80.02.05-DiacoEdition.zip
unzip hsfmodem-7.80.02.05-DiacoEdition.zip
cp -a hsfmodem-7.80.02.05-DiacoEdition/modules/imported/include/framewrk.h hsfmodem-7.68.00.09x86_64oem/modules/imported/include/framewrk.h
cp -a hsfmodem-7.80.02.05-DiacoEdition/modules/imported/include/osservices.h hsfmodem-7.68.00.09x86_64oem/modules/imported/include/osservices.h

еще, если у меня была 32-разрядная операционная система, я выполнился

wget http://linux.dell.com/files/ubuntu/hardy/modem-drivers/hsf/hsfmodem-7.68.00.09oem.tar.gz
tar xzf hsfmodem-7.68.00.09oem.tar.gz
wget http://www.bargweb.net/images/2009/november/hsfmodem-7.80.02.05-DiacoEdition.zip
unzip hsfmodem-7.80.02.05-DiacoEdition.zip
cp -a hsfmodem-7.80.02.05-DiacoEdition/modules/imported/include/framewrk.h hsfmodem-7.68.00.09oem/modules/imported/include/framewrk.h
cp -a hsfmodem-7.80.02.05-DiacoEdition/modules/imported/include/osservices.h hsfmodem-7.68.00.09oem/modules/imported/include/osservices.h
A note for the curious ones: those "framewrk.h" and "osservices.h" files were the different ones between the directories "hsfmodem-7.68.00.09oem/modules/imported" and "hsfmodem-7.80.02.05-DiacoEdition/modules/imported".

Если у меня была 64-разрядная операционная система, я выполнился

wget http://www.linuxant.com/drivers/hsf/full/archive/hsfmodem-7.80.02.06x86_64full/hsfmodem-7.80.02.06x86_64full.tar.gz

еще, если у меня была 32-разрядная операционная система, я выполнился

wget http://www.linuxant.com/drivers/hsf/full/archive/hsfmodem-7.80.02.06full/hsfmodem-7.80.02.06full.tar.gz

Примечание для любопытных: тот файл был новейшим в http://www.linuxant.com/drivers/hsf/full/downloads.php

И затем, если у меня была 64-разрядная операционная система, я выполнился

tar xzf hsfmodem-7.80.02.06x86_64full.tar.gz
rm -r hsfmodem-7.80.02.06x86_64full/modules/imported
cp -R hsfmodem-7.68.00.09x86_64oem/modules/imported hsfmodem-7.80.02.06x86_64full/modules/
cp -R hsfmodem-7.68.00.09x86_64oem/modules/imported hsfmodem-7.80.02.06x86_64full/modules/

еще, если у меня была 32-разрядная операционная система, я выполнился

tar xzf hsfmodem-7.80.02.06full.tar.gz
rm -r hsfmodem-7.80.02.06full/modules/imported
cp -R hsfmodem-7.68.00.09oem/modules/imported hsfmodem-7.80.02.06full/modules/
cp -R hsfmodem-7.68.00.09oem/modules/imported hsfmodem-7.80.02.06full/modules/

Следующий шаг должен был убрать существующий каталог.

Если у меня была 64-разрядная операционная система, я выполнился

rm -rf hsfmodem-7.68.00.09x86_64oem
rm -rf hsfmodem-7.80.02.05-DiacoEdition
rm hsfmodem-7.68.00.09x86_64oem.tar.gz
rm hsfmodem-7.80.02.05-DiacoEdition.zip
rm hsfmodem-7.80.02.06x86_64full.tar.gz

еще, если у меня была 32-разрядная операционная система, я выполнился

rm -rf hsfmodem-7.68.00.09oem
rm -rf hsfmodem-7.80.02.05-DiacoEdition
rm hsfmodem-7.68.00.09oem.tar.gz
rm hsfmodem-7.80.02.05-DiacoEdition.zip
rm hsfmodem-7.80.02.06full.tar.gz

Затем я должен был изменить некоторые файлы для адаптации их для работы с 3.0.0 версиями ядра Linux. Если у меня была 64-разрядная операционная система, я выполнился

cd hsfmodem-7.80.02.06x86_64full
xdg-open modules/GPL/serial_cnxt.c

еще, если у меня была 32-разрядная операционная система, я выполнился

cd hsfmodem-7.80.02.06full
xdg-open modules/GPL/serial_cnxt.c

и затем текстовый редактор был запущен. Я искал строку

#ifndef FOUND_UART_REGISTER_PORT

и ниже я нашел строку

static DECLARE_MUTEX(cnxt_port_sem);

Я удалил ту последнюю строку и записал там

static DEFINE_SEMAPHORE(cnxt_port_sem);

и я сохранил и закрыл тот файл. Я выполнился

xdg-open modules/osdiag.c

и затем текстовый редактор был запущен. Я искал строку

THIS_MODULE,

и ниже я нашел строку

.ioctl    = diag_ioctl,

Я удалил ту строку и записал там

.compat_ioctl = diag_ioctl,

и я сохранил и закрыл тот файл. Я выполнился

xdg-open modules/osnvm.c

и затем текстовый редактор был запущен. Я искал строку

static LIST_HEAD(nvm_newinst_list);

и ниже я нашел строку

static DECLARE_MUTEX(nvmelem_writelist_sem);

Я удалил ту последнюю строку и записал там

static DEFINE_SEMAPHORE(nvmelem_writelist_sem);

и я сохранил и закрыл тот файл.

Примечание для любопытных: источником тех изменений в тех файлах был http://www.openmamba.org/showfile.ht...l-2.6.37.patch

Пользователь по имени Chiaseth помог сообщению тех шагов, которые я выполнил, этот путь:

  1. Я выполнился

    xdg-открытый modules/osservices.c

и затем текстовый редактор был запущен. Я искал строку

#include <linux/smp_lock.h>

и я удалил ту строку и записал там

#include <linux/mutex.h>
DEFINE_MUTEX(os_mutex);  // Define a mutex

В том файле я искал строки

unlock_kernel()

замена всех их с

mutex_unlock(&os_mutex)

Кроме того, в том файле я искал строки

lock_kernel()

замена всех их с

mutex_lock(&os_mutex)

и я сохранил и закрыл тот файл.

  1. Я выполнился

    xdg-открытый modules/osdcp.c

В том файле я искал строку

static spinlock_t dcp_lock = SPIN_LOCK_UNLOCKED;

замена его с

static DEFINE_SPINLOCK(dcp_lock);

и я сохранил и закрыл тот файл.

  1. Я выполнился

    xdg-открытый modules/osdiag.c

В том файле я искал строку

static spinlock_t diag_lock = SPIN_LOCK_UNLOCKED;

замена его с

static DEFINE_SPINLOCK(diag_lock);

и я сохранил и закрыл тот файл.

  1. Я выполнился

    xdg-открытый modules/osfloat.c

В том файле я искал строку

static spinlock_t fpstates_lock __attribute__((unused)) = SPIN_LOCK_UNLOCKED;

замена его с

static DEFINE_SPINLOCK(fpstates_lock);

и я сохранил и закрыл тот файл.

  1. Я выполнился

    xdg-открытый modules/osservices.c

В том файле я искал строку

static spinlock_t atomic_lock __attribute__((unused)) = SPIN_LOCK_UNLOCKED;

замена его с

static DEFINE_SPINLOCK(atomic_lock);

и я сохранил и закрыл тот файл.

  1. Я выполнился

    xdg-открытый modules/GPL/oscompat.h

В том файле я искал строку

static spinlock_t tqueue_lock __attribute__((unused)) = SPIN_LOCK_UNLOCKED;

замена его с

static DEFINE_SPINLOCK(tqueue_lock);

и я сохранил и закрыл тот файл.

Наконец... Если выполняется

sudo make install
sudo hsfconfig

Это спросило, "Где исходный каталог сборки Linux, который соответствует Вашему рабочему ядру?", затем я просто нажал клавишу Return для принятия ответа по умолчанию. Я также принял ответ по умолчанию в других вопросах.

Наконец команда сообщила об этом

The /dev/modem alias (symlink) points to ttySHSF0

Я выполнился

dmesg

и в конце я видел

[59190.782005] hsfengine: module license 'see LICENSE file distributed with driver' taints kernel.
[59190.782011] Disabling lock debugging due to kernel taint
[59192.564398] ttySHSF0 at MMIO 0x0 (irq = 0) is a Conexant HSF softmodem (USB-0572:1300)
[59192.600274] usbcore: registered new interface driver hsfusbcd2
[59194.416241] usbcore: deregistering interface driver hsfusbcd2
[59194.600064] usb 6-1: reset full speed USB device using uhci_hcd and address 2
[59194.811746] cnxthsf_DcpDestroy: units still active, waiting..
[59194.811764] cnxthsf_DcpDestroy: units still active, waiting..
[59194.811778] cnxthsf_DcpDestroy: units still active, waiting..
[59196.967466] ttySHSF0 at MMIO 0x0 (irq = 0) is a Conexant HSF softmodem (USB-0572:1300)
[59196.994150] usbcore: registered new interface driver hsfusbcd2

который предназначенный, среди прочего, в котором был обнаружен USB-модем /dev/ttySHSF0.

Примечание: поскольку они сказали в https://help.ubuntu.com/community/Di... Практическое руководство/Conexant: "не удаляйте или перемещайте исходное дерево [в наш случай: ~/conexant_modem] от Вашей системы после этих шагов, это потребуется, чтобы удалять и исправлять драйвер".

Я запустился kppp (например), и настроенный новое "соединение", указывая, что модем был в /dev/ttySHSF0. Вы могли также использовать программу как efax-gtk отправить факсы через модем.

1
ответ дан 25 September 2012 в 18:26

Другие вопросы по тегам:

Похожие вопросы: