Armadilloフォーラム

Armadillo-IoT G4(またはX2)のArmadillo Base OSでUSBドングルPIX-MT110を認識させたい

hisanori

2023年4月11日 8時53分

現在、Armadillo-Iot G4(またはX2)でピクセラ社のPIX-MT110というUSBドングル(モバイル通信)を使おうとしております。
Raspberry Pi4では、USBドングルを挿しただけでeth1を認識してネットワークとして使うことができましたが、
Armadillo-Iot G4では挿しただけではネットワークデバイスとして認識してくれず、
ATDE9の環境(=ArmadilloBaseOS開発環境)でmenuconfigを使いカーネルビルドで
https://blog.zelkova.cc/2021/03/pixela-pix-mt110.html
のサイトを参考にいくつかのモジュールを有効化してカスタムイメージを作ったのですが、
カスタムイメージで更新した後でもPIX-MT110を認識してくれませんでした。
menuconfigの設定が足りてないのか、何かしらのチップ用モジュールのクロスコンパイルが必要なのか・・・。
ご教授いただければ幸いです。よろしくお願いいたします。

コメント

at_dominique.m…

2023年4月11日 9時18分

hisanoriさん、

お世話なっています、
アットマークテクノのマルティネです。

> 現在、Armadillo-Iot G4(またはX2)でピクセラ社のPIX-MT110というUSBドングル(モバイル通信)を使おうとしております。
> Raspberry Pi4では、USBドングルを挿しただけでeth1を認識してネットワークとして使うことができましたが、
> Armadillo-Iot G4では挿しただけではネットワークデバイスとして認識してくれず、
> ATDE9の環境(=ArmadilloBaseOS開発環境)でmenuconfigを使いカーネルビルドで
> https://blog.zelkova.cc/2021/03/pixela-pix-mt110.html
> のサイトを参考にいくつかのモジュールを有効化してカスタムイメージを作ったのですが、
> カスタムイメージで更新した後でもPIX-MT110を認識してくれませんでした。
> menuconfigの設定が足りてないのか、何かしらのチップ用モジュールのクロスコンパイルが必要なのか・・・。

そうですね、menuconfig で必要なドライバーが入れてないだけだと思います。

マニュアルの手順でビルドできると思いますので、
https://manual.atmark-techno.com/armadillo-iot-g4/armadillo-iotg-g4_pro…
を参考にしてリンクしていただいたブログに記載されているオプションを有効(mかy)にしていただけたら動くと思います。
この手順の何か分からないところがあったら遠慮なく聞いてください。

また、おそらく、その中のどれか一つだけがかけていると思いますので 、確認していただければ来月以降のアップデートでデフォルト有効にしたいと思います。

動いている raspberry pi か、モジュールを入れた後の Armadillo で以下のコマンドの出力を提供していただけますか?

# armadillo の場合、メモリ上で usbutils パッケージの追加
# raspberry pi の場合はおそらく raspbian なので、「apt install usbutils」になります
armadillo:~# apk add usbutils
# デバイスを表示します
armadillo:~# usb-devices 
 
T:  Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=480  MxCh= 1
D:  Ver= 2.00 Cls=09(hub  ) Sub=00 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=1d6b ProdID=0002 Rev=05.10
S:  Manufacturer=Linux 5.10.175-0-at-debug xhci-hcd
S:  Product=xHCI Host Controller
S:  SerialNumber=xhci-hcd.1.auto
C:  #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=0mA
I:  If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
E:  Ad=81(I) Atr=03(Int.) MxPS=   4 Ivl=256ms
 
T:  Bus=02 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=5000 MxCh= 1
D:  Ver= 3.00 Cls=09(hub  ) Sub=00 Prot=03 MxPS= 9 #Cfgs=  1
P:  Vendor=1d6b ProdID=0003 Rev=05.10
S:  Manufacturer=Linux 5.10.175-0-at-debug xhci-hcd
S:  Product=xHCI Host Controller
S:  SerialNumber=xhci-hcd.1.auto
C:  #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=0mA
I:  If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
E:  Ad=81(I) Atr=03(Int.) MxPS=   4 Ivl=256ms
 
... 省略

その出力のUSBドングルの部分の「Driver」を確認できたら、どのモジュールでしたかを確認できますので不要なものを無効のままに残せます。
(今の armadillo で認識されてないので、実効してもDriverが空のままになるはずです)

よろしくお願いします。

hisanori

2023年4月11日 18時08分

ご返信ありがとうございます。Armadillo-Iot-G4にPIX-MT110を挿入して、「usb-devices」コマンドを確認したところ、
挿入後は以下のログが増えておりました。
T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 3 Spd=480 MxCh= 0
D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 2
P: Vendor=15a9 ProdID=0046 Rev=03.18
S: Manufacturer=PIXELA LIMITED
S: Product=4G Modem
C: #Ifs= 2 Cfg#= 1 Atr=a0 MxPwr=500mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=e0(wlcon) Sub=01 Prot=03 Driver=(none)
E: Ad=82(I) Atr=03(Int.) MxPS= 8 Ivl=32ms
I: If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=(none)
E: Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms

おそらくこの「Driver=(none)」となっているのが原因なのかと思います。。
念のため、コマンドログ全体のものも添付ファイルにアップさせていただきます。
お手数ですがご確認いただけると幸いです。よろしくお願いします。

ファイル ファイルの説明
PIX-MT110挿入後.txt PIX-MT110挿入後の「usb-devices」コマンド出力ログ

at_dominique.m…

2023年4月12日 7時43分

hisanoriさん、

> おそらくこの「Driver=(none)」となっているのが原因なのかと思います。。

はい、ドライバーが見つからない時に (none) と表示されますね。
このモデムは USB のデバイスIDではなく、C: #ifs=2 の USB_CLASS_COMM で認識されて、 https://blog.zelkova.cc/2021/03/pixela-pix-mt110.html に記載されているドライバーのリストを順番に試してどれかが対応していると思われます。
その中のどれかを簡単に区別できませんが、ドライバーが有効になると、usb-devices コマンドでどれが正解でしたのかが分かるようになります。

大変お手数ですが、マニュアルの「9.7.2. Linux カーネルをビルドする」( https://manual.atmark-techno.com/armadillo-iot-g4/armadillo-iotg-g4_pro… ) の手順で menuconfig のところにブログにリストされている CONFIG_USB_CATC、CONFIG_USB_NET_RNDIS_HOST などを有効にして( / キーで検索して、「(1)」等では 1 でオプションのもとに行って、y で有効にできます) 、ビルドしたカーネルをインストールしてからもう一度 usb-devices を実効していただければこれからのリリースにも必要なモジュールを有効にします。

手元に適合性の raspberry pi 等があれば、そちらに接続して usb-devices でどのドライバでしたのかが分かるようになりますので、「menuconfig」のステップをもう少し簡単に案内できます。

お手数をおかけしますが、このモデムがなければこちらで確認できませんのでよろしくお願いいたします。

hisanori

2023年4月12日 18時10分

ご返信ありがとうございます。結果的にmenuconfigで必要なものをすべて「y(=「*」)」で設定するようにコンフィグ変更したカスタムカーネルを
適用したところ「eth2」を自動で認識してくれるようになりました!疎通も問題ありませんでした。
誠にありがとうございます。
今回の備忘録としてmenuconfigでデフォルトから変更した箇所をキャプチャで整理いたしましたので、添付いたします。
このたびは質問に答えていただきありがとうございました。

ファイル ファイルの説明
カスタムビルド.pdf PIX-MT110が利用できるようになったmenuconfigの設定(画面キャプチャ)

at_dominique.m…

2023年4月13日 9時29分

hisanoriさん、

> ご返信ありがとうございます。結果的にmenuconfigで必要なものをすべて「y(=「*」)」で設定するようにコンフィグ変更したカスタムカーネルを
> 適用したところ「eth2」を自動で認識してくれるようになりました!疎通も問題ありませんでした。

モデムを使用できてよかったです!

> 今回の備忘録としてmenuconfigでデフォルトから変更した箇所をキャプチャで整理いたしましたので、添付いたします。

画面キャプチャまでありがとうございます。
大変お手数ですが、「usb-devices」コマンドをもう一度実行していただけたら助かります。実際に使われているドライバだけを標準で有効しようと思っていましたので、その確認のためです。

よろしくお願いします。

hisanori

2023年4月13日 15時08分

了解しました。(確かに不要なCONFIGありそうですね。。)
usb-devicesコマンドの出力で「PIX-MT110」の箇所を抜粋すると以下の状態になっております。

T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=480 MxCh= 0
D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 2
P: Vendor=15a9 ProdID=0046 Rev=03.18
S: Manufacturer=PIXELA LIMITED
S: Product=4G Modem
C: #Ifs= 2 Cfg#= 1 Atr=a0 MxPwr=500mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=e0(wlcon) Sub=01 Prot=03 Driver=rndis_host
E: Ad=82(I) Atr=03(Int.) MxPS= 8 Ivl=32ms
I: If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=rndis_host
E: Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms

念のため全ログも添付ファイルに貼っておきます。
よろしくお願いします。

ファイル ファイルの説明
カスタムビルドのPIX-MT110挿入後.txt

at_dominique.m…

2023年4月13日 15時37分

hisanoriさん

マルティネです。

> I: If#= 0 Alt= 0 #EPs= 1 Cls=e0(wlcon) Sub=01 Prot=03 Driver=rndis_host

ありがとうございます!
次のリリースに CONFIG_USB_NET_RNDIS_HOST も有効にしますので、今度の更新でリビルドせずに動くようになると思います。

また何か困ることがあれば聞いてください。