サーバーに Kannel をインストールしましたが、GSM 3G USBモデムを使用してSMSメッセージを送信/受信します(セクションSMSセンター> KannelユーザーガイドのGSMモデム。
ノートブックにKannelを既にインストール、構成、テストしました。
モデムをノートブックに接続すると、/dev/ttyUSB0
という名前のデバイスが表示されます。モデムにコマンドを送信するシリアルポートとして機能します。
このデバイスをKannel構成ファイルに配置する必要があります。
いくつかのテストの後、Kannelを運用サーバーにインストールすることにしました。サーバーはLinux-VServerを実行し、私のタスクはHostにKannelをインストールし、PlaySMSをApacheを実行するguestsの1つ。
問題は、私のマシン(およびすべての通常のLinuxボックスでAFAIK)で作成されたttyUSB0
に類似したデバイスが見つからないことです。
ここにいくつかの診断コマンドがあります。使用されているモデムは同じモデルではありませんが、ノートブックでSierra 308をすでにテストしましたが、これも動作します。
uname -a
:
Linux twoflower 3.4.9-1-Arch #1 SMP PREEMPT Wed Aug 15 18:11:01 UTC 2012 i686 GNU/Linux
dmesg
モデムを接続すると(Huawei 156B):
[35328.849886] usb 1-2: new high-speed USB device number 12 using ehci_hcd
[35329.007281] scsi9 : usb-storage 1-2:1.2
[35329.010054] scsi10 : usb-storage 1-2:1.3
[35329.301153] usbcore: registered new interface driver usbserial
[35329.302155] usbcore: registered new interface driver usbserial_generic
[35329.303064] USB Serial support registered for generic
[35329.303221] usbserial: USB Serial Driver core
[35329.368043] usbcore: registered new interface driver option
[35329.368960] USB Serial support registered for GSM modem (1-port)
[35329.369332] option 1-2:1.0: GSM modem (1-port) converter detected
[35329.377484] usb 1-2: GSM modem (1-port) converter now attached to ttyUSB0
[35329.377567] option 1-2:1.1: GSM modem (1-port) converter detected
[35329.378930] usb 1-2: GSM modem (1-port) converter now attached to ttyUSB1
[35330.013635] scsi 9:0:0:0: CD-ROM HUAWEI Mass Storage 2.31
PQ: 0 ANSI: 2
[35330.019275] scsi 10:0:0:0: Direct-Access HUAWEI MMC Storage 2.31
PQ: 0 ANSI: 2
[35330.028997] sd 10:0:0:0: [sdb] Attached SCSI removable disk
[35330.214473] sr0: scsi-1 drive
[35330.214484] cdrom: Uniform CD-ROM driver Revision: 3.20
[35330.216603] sr 9:0:0:0: Attached scsi CD-ROM sr0
uname -a
:
Linux macunaima 2.6.26-1-vserver-AMD64 #1 SMP Fri Mar 13 20:19:13 UTC 2009 x86_64 GNU/Linux
dmesg
モデムを接続すると(Sierra 308):
[ 3.246112] usb 8-4: new high speed USB device using ehci_hcd and address 2
[ 3.381966] usb 8-4: config 1 has an invalid interface number: 9 but
max is 5
[ 3.382076] usb 8-4: config 1 has an invalid interface number: 7 but
max is 5
[ 3.382184] usb 8-4: config 1 has no interface number 2
[ 3.382285] usb 8-4: config 1 has no interface number 5
[ 3.384576] usb 8-4: configuration #1 chosen from 1 choice
[ 3.389070] usb 8-4: New USB device found, idVendor=0f3d,
idProduct=68a3
[ 3.389070] usb 8-4: New USB device strings: Mfr=3, Product=2,
SerialNumber=4
[ 3.389070] usb 8-4: Product: USB 308
[ 3.389070] usb 8-4: Manufacturer: Sierra Wireless, Incorporated
[ 3.389070] usb 8-4: SerialNumber: 353354045586405
lsusb
:
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 008 Device 002: ID 0f3d:68a3 Airprime, Incorporated
Bus 008 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
私がここで見つけた同様の問題の唯一の前の質問は / devにエントリなしでUSBシリアルポートにアクセスするにはどうすればよいですか? でした。
彼の場合、dmesg
はttyUSB0
が作成されたと言いましたが、これは私の場合は発生しません。
とにかく、私はmknod
を使用してデバイスを手動で作成し、そこに投稿された解決策を試しました:
for i in 0 1 2 3 4 5 6 7 8 9; do
Sudo mknod /dev/ttyUSB$i c 188 $i
done
lsusb
はデバイスがBus 008 Device 002
に接続されていると言っているため、これらすべてのデバイスを作成しました。
うまく行かなかった。私はpicocom
でテストしましたが、これは次のように述べています(ttyUSB0
だけでなく、これらすべてのデバイスに対して)。
$ picocom -
FATAL: cannot open /dev/ttyUSB0: No such device or address
私のノートブックでは、picocom
は正常に動作します。
$ picocom -b 9600 /dev/ttyUSB0
Terminal ready
AT # my input
OK
私は@Renanと一緒にいます:この問題は新しいカーネルで修正されたようです。 ( LKMLのそのようなスレッドの1つ )
重要なエラーはinvalid interface number
1。これは、USBドライバーがデバイスを認識していることを意味しますが、ドライバーが予期しない方法で機能(インターフェイス)に番号を付けているため、対応できません。ぐるぐる回って、人々がカーネルの弱点を修正してこれらの新しいデバイスとそれらの奇妙なインターフェース番号付け動作に対処しているいくつかのケースを見つけることができます。
私はこれについて完全に確信しているわけではありません。順不同のインターフェイス番号が間違っている、またはカーネルx.y.zのすべてのUSBデバイスに対してすべて修正されていると言っている明確なドキュメントが見つからないためです。 Whac-a-Mole のような開発努力のようです。
サーバー上のカーネルをアップグレードすることは決して簡単な修正ではありません。最初に仮説を確認するための中間ステップを試します。サーバーのDebianのバージョンをVMに入れ、スナップショットを作成し、そこでカーネルをアップグレードし、アップグレード後にUSBデバイスが表示されるかどうかを確認します。 (明らかに、VM USBデバイスをVMにプッシュするソフトウェアを使用する必要があります。最近はほとんどの場合)。
これが機能しない場合は、スナップショットに簡単にロールバックできます。これは、VMは、何かを製品サーバーにロールアウトする前の将来のテストに役立つはずです。
私はあなたと同じ問題に遭遇しました。 gsm-utils
パッケージをインストールしてみてください。
apt-get install gsm-utils
あなたが与えた情報から、私はシステムがそのUSBデバイスの設定ファイルを持っていないと思います。正しいconf
を取得し、/etc/usb_modeswitch.d
に追加してアクティブにします。その後、USBデバイスとして検出されます。
この記事 を参照してください。