カーネル2.6.32に基づくParrot AR Drone 2.0に組み込みLinux / BusyBoxをインストールするためにHuawei E3276 USB LTEモデムのサポートをコンパイルしようとしています。ただし、カーネルモジュールをロードした後、いくつかの問題が発生します。
まず、必要なカーネルモジュールをロードします。
- USBネットワーク、
- 疾病管理予防センター-ACM、
- CDC_サブセット、
- CDC_イーサリアム、
- 情報産業省、
- USBシリアルポート
モデムはイーサネットNICのように動作し、ルーティングされたインターフェイス(ポートで192.168.1.100)を提供するため、実際の4G設定はすべてWebインターフェイスを介してモデム自体で行われます(なぜドライバがeth
含まれていないのか疑問に思う場合qmi_wwan
)。
dmesg
次に、次の項目が表示されるまで4Gモデムを接続しましたlsusb
。
lsusb
:
Bus 001 Device 002: ID 12d1:1f01 Huawei Technologies Co., Ltd.
dmesg
:
scsi8 : SCSI emulation for USB Mass Storage devices
usb 1-1: uevent
usb-storage: device found at 12
usb-storage: waiting for device to settle before scanning
/home/stephane/.ardrone/linux/ardrone2_ARDrone2_Version_20130102/Linux/kernel/omap/drivers/usb/core/inode.c: creating file '012'
hub 1-0:1.0: state 7 ports 1 chg 0000 evt 0002
hub 1-0:1.0: port 1 enable change, status 00000503
scsi 8:0:0:0: CD-ROM HUAWEI Mass Storage 2.31 PQ: 0 ANSI: 2
この時点で、modeswitch
次のコマンドを使用してデバイスをモデムモードに切り替えました。
usb_modeswitch-1.1.9-arm-static -v 12d1 -p 1f01 -W -M 55534243123456780000000000000011060000000000000000000000000000
これは成功し、製品コードを変更して再接続します。
lsusb
:
Bus 001 Device 003: ID 12d1:1001 Huawei Technologies Co., Ltd. E620 USB Modem
dmesg
:
usb-storage 1-1:1.0: disconnect by usbfs
usb 1-1: usbfs: process 4792 (usb_modeswitch-) did not claim interface 0 before use
hub 1-0:1.0: state 7 ports 1 chg 0000 evt 0002
hub 1-0:1.0: port 1, status 0100, change 0001, 12 Mb/s
usb 1-1: USB disconnect, address 12
usb 1-1: unregistering device
usb 1-1: usb_disable_device nuking all URBs
usb 1-1: unregistering interface 1-1:1.0
usb 1-1:1.0: uevent
usb 1-1: uevent
hub 1-0:1.0: debounce: port 1: total 100ms stable 100ms status 0x100
hub 1-0:1.0: hub_suspend
usb usb1: bus auto-suspend
usb usb1: usb resume
hub 1-0:1.0: hub_resume
hub 1-0:1.0: port 1: status 0101 change 0001
hub 1-0:1.0: state 7 ports 1 chg 0002 evt 0000
hub 1-0:1.0: port 1, status 0101, change 0000, 12 Mb/s
usb 1-1: new high speed USB device using musb_hdrc and address 13
usb 1-1: skipped 4 descriptors after interface
usb 1-1: skipped 4 descriptors after interface
usb 1-1: skipped 4 descriptors after interface
usb 1-1: default language 0x0409
usb 1-1: udev 13, busnum 1, minor = 12
usb 1-1: New USB device found, idVendor=12d1, idProduct=1001
usb 1-1: New USB device strings: Mfr=2, Product=1, SerialNumber=0
usb 1-1: Product: HUAWEI Mobile
usb 1-1: Manufacturer: HUAWEI Technology
usb 1-1: uevent
usb 1-1: usb_probe_device
usb 1-1: no configuration chosen from 1 choice
/home/stephane/.ardrone/linux/ardrone2_ARDrone2_Version_20130102/Linux/kernel/omap/drivers/usb/core/inode.c: creating file '013'
hub 1-0:1.0: state 7 ports 1 chg 0000 evt 0002
hub 1-0:1.0: port 1 enable change, status 00000503
Spurious irq 95: 0xffffffdf, please flush posted write for irq 56
残念ながら、そのusb_probe_device
手順の後に設定が見つかりましたが、説明なしでは選択しないというメッセージが表示されます。
見つかった設定を実行し続けない理由を見つけるのに役立つ人はいますか?どの診断手順を実行する必要がありますか?どのテストを試すべきですか?
答え1
私もあなたと同じことをしようとしています。 ARDrone2で動作する3G / 4Gモデムを取得しようとしています。しかし、私はあなたほど遠くありません。私はツールチェーンを使い始めて、hello worldを実行しようとする最初の数回の試みは失敗しました。
特に答えはなく、ただアイデアだけあるだけです。お客様のログ メッセージを Google ですばやく検索したところ、次の内容が見つかりました。 https://bugzilla.kernel.org/show_bug.cgi?id=8167
しかし、私はARDrone2がカーネル2.6.32.9を使用していると思います。
ARDrone2にはuclinux
通常、組み込みシステムをターゲットにしたビルドがあるため、ビルドは最小限の機能に最適化されています。ドローンでカーネルモジュールをコンパイルするときにいくつかのフラグが設定されていない可能性があります(ファイルにはgeneric.c
ステートメントの関連行の周りにそれを暗示するコメントがあります#if !defined
)。
これが真であれば、正しいフラグを有効にして再コンパイルする必要があります。ただし、問題をテストすることはできません。私のモデムはまだ出荷中です。