web-dev-qa-db-ja.com

LinuxでUSBモデムと「話す」方法

Linux(Ubuntu 12.04)でlsusbとして識別されるUSBモデムがあります

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

そのデバイスと通信する方法(たとえば、マイクロコムなど?)どのdevデバイスを使用する必要がありますか? /dev/ttyUSBXXXはなく、/dev/ttyACM0は1つだけです。

6
Alex

トークで、ATコマンドを次の形式で送信することを意味する場合

echo "ATI" > /dev/usbDev

これを試してください: http://brunomgalmeida.wordpress.com/2012/04/06/send-at-commands-to-usb-modem/

3
Bruno

Cuを使用できます。

$ Sudo apt-get install cu

次の方法でモデムに接続できます。

$ cu -l ttyACM0

(with:デバイス/ dev/ttyACM0であるttyACM0)応答が返されるはずです:

connected

この時点で、ダイヤルをテストするなど、標準のATコマンドを使用できます。

ATDT 123-456-7890

モデムへのアクセス許可を得るには、グループIDにユーザーIDを設定する必要があります。

「〜」でcuアプリケーションを終了できます。 (チルダドット)。

他のHayeseコマンドは次の場所にあります。

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

4
L. D. James

minicomsocat、またはscreenを使用します。

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

注:偽の/dev/ttyUSB1ではなく、実際のデバイス名/dev/usbDevを使用しました。

2
pevik

あなたが探している答えはここにあると信じています: (K)Ubuntu 11.10(Oneiric)のConexantドライバーでUSB winmodemを使用する

重要なもの(サイトから抽出):

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」と「make」の準備ができていることを確認し、実行しました

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-open 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-open modules/osdcp.c

そのファイルで文字列を検索しました

static spinlock_t dcp_lock = SPIN_LOCK_UNLOCKED;

で置き換える

static DEFINE_SPINLOCK(dcp_lock);

そのファイルを保存して閉じました。

  1. 実行しました

    xdg-open modules/osdiag.c

そのファイルで文字列を検索しました

static spinlock_t diag_lock = SPIN_LOCK_UNLOCKED;

で置き換える

static DEFINE_SPINLOCK(diag_lock);

そのファイルを保存して閉じました。

  1. 実行しました

    xdg-open modules/osfloat.c

そのファイルで文字列を検索しました

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

で置き換える

static DEFINE_SPINLOCK(fpstates_lock);

そのファイルを保存して閉じました。

  1. 実行しました

    xdg-open modules/osservices.c

そのファイルで文字列を検索しました

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

で置き換える

static DEFINE_SPINLOCK(atomic_lock);

そのファイルを保存して閉じました。

  1. 実行しました

    xdg-open 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ソースビルドディレクトリはどこですか?」と尋ねた後、リターンキーを押してデフォルトの回答を受け入れました。他の質問でもデフォルトの回答を受け入れました。

最後に、コマンドはそれを報告しました

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...Howto/Conexant :「ソースツリーを削除または移動しないでください[この場合:〜/ conexant_modem ]これらの手順の後、システムから、ドライバーをアンインストールしてパッチを適用する必要があります。」

kppp(たとえば)を起動し、モデムが/dev/ttySHSF0にあることを指定して、新しい「接続」を構成しました。 efax-gtkなどのプログラムを使用して、モデム経由でFAXを送信することもできます。

1
LnxSlck

AT(アテンション)コマンドをモデムに送信するために使用できる2つのソフトウェアがあります。1つはシリアルポート端末で、もう1つはCutecomです。

0
Aman Sharma
  1. USBモデムがUbuntuコンピューターの利用可能なUSBポートに適切に挿入されていることを確認します。

  2. ネットワークアイコンをクリックし、Edit connectionsを選択します。これにより、Ubuntuのネットワーク管理ユーティリティが起動します。

  3. 利用可能な接続のリストからUSBモデムの名前を選択し、Properties.をクリックします

  4. Enable this Connectionをクリックして、このデバイスを使用してインターネットネットワークに接続することをUbuntuに伝えます。

  5. OK.をクリックします。これで、USBモデムがUbuntuに適切に接続され、Ubuntuで設定され、これを使用してインターネットに接続できるようになります。

チュートリアルのソース こちら

0
Frantique