Armadilloフォーラム

CH341を有効化してカーネルをリビルドするとGSM接続ができない

suzuki-j

2019年6月19日 9時41分

お世話になっております。
鈴木と申します。

USB-シリアル変換コネクタを利用するために、カーネルコンフィグレーションでCH341を有効化してカーネルをリビルドしたらGSM接続が出来なくなった件について、ご教授いただきたく、よろしくお願いします。

Armadillo-IoT G3(型番:AGX3142-U03Z)を用いています。
カーネルのビルドには最新のATDE(ATDE7 v20190527)を利用しています。
また、カーネルとinitramfsのソースはAtmark Techno様が配布しているlinux-4.1-x1-at9.tar.gzとinitramfs_x1-v1.1.0.cpio.gzを利用しています。

ビルドしたカーネルイメージとDTBで起動してGSM接続しようとすると以下のエラーが出ます。
$ nmcli connection up gsm-ttyUSB2
Error: Connection activation failed: No suitable device found for this connection.

なお、この状態で以前のカーネルイメージとDTBに戻すと問題なく接続できます。

一点だけ気になったのは、"https://armadillo.atmark-techno.com/forum/armadillo/3934"にはapt-get upgradeを行うとカーネルのビルドに失敗するとありましたが、最新のATDE環境ではupgradeを行わなくても同じ現象が起き、パッケージのダウングレードが必要でした。(apt updateは行いましたが)

CH341を無効にした状態でのカーネルビルドは試していないため、原因がCH341との相性にあるのかどうかは切り分けていませんが、以下にこちらのビルド手順を記載いたしますので、手順に問題がないか、また最新のATDEでビルドしたカーネルでGSM接続が可能でしょうか?

■ビルド手順
----------------------------------------------
1.ATDEの入手
ATDE7 v20190527
https://users.atmark-techno.com/files/downloads/atde/atde7-i386-2019052…

2.ATDEのセットアップ
※作業効率のためにSSHを導入
$ sudo apt update
$ sudo apt install openssh-server

3.カーネルビルド(以下sshで接続してリモートターミナルから作業)
3.1.ソースの入手と展開
$ mkdir work
$ cd work/
$ wget https://users.atmark-techno.com/files/downloads/armadillo-iot-g3/source…
$ wget https://users.atmark-techno.com/files/downloads/armadillo-iot-g3/source…
$ tar xzf linux-4.9-x1-at9.tar.gz
$ cd linux-4.9-x1-at9/
$ ln -s ../initramfs_x1-v1.1.0.cpio.gz initramfs_x1.cpio.gz

3.2.コンフィグレーション
$ make ARCH=arm x1_defconfig
$ make ARCH=arm menuconfig

CH341を有効化

Symbol: USB_SERIAL_CH341 [=y]
Type : tristate
Prompt: USB Winchiphead CH341 Single Port Serial Driver
Location:
-> Device Drivers
-> USB support (USB_SUPPORT [=y])
-> USB Serial Converter support (USB_SERIAL [=y])
Defined at drivers/usb/serial/Kconfig:104
Depends on: USB_SUPPORT [=y] && USB [=y] && USB_SERIAL [=y]

3.3.ビルド
$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-

下記のエラーが出て失敗
※apt upgradeは行っていない
-----------------------------
make[1]: *** 'firmware/ti-connectivity/TIInit_11.8.32.bts.gen.o' に必要なターゲット '/lib/firmware/ti-connectivity/TIInit_11.8.32.bts' を make するルールがありません. 中止.
Makefile:1008: ターゲット 'firmware' のレシピで失敗しました
make: *** [firmware] エラー 2
-----------------------------
3.4. https://armadillo.atmark-techno.com/forum/armadillo/3934を参考にファームのダウングレード

$ cd ../
$ wget https://download.atmark-techno.com/debian/pool/non-free/f/firmware-nonf…
$ sudo dpkg -i firmware-ti-connectivity_0.43.1atmark3_all.deb
$ cd linux-4.9-x1-at9/

3.5.再度ビルド
$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- LOADADDR=0x80008000 uImage

4.SDブート用のSDカードを作成
4.1.手順15.1に従い、ブート用のSDカードを作成
 ルートファイルシステムはv20190507を利用
 https://users.atmark-techno.com/files/downloads/armadillo-iot-g3/debian…

4.2.ビルドしたカーネルイメージとdtbをSDカードにコピー
- arch/arm/boot/uImage
- arch/arm/boot/armadillo_iotg_g3_m1.dtb

5.SDカードからArmadilloを起動してネットワークを設定
$ nmcli connection add type gsm ifname ttyUSB2 apn [apn] user [user] password [password]
$ nmcli connection up gsm-ttyUSB2
Error: Connection activation failed: No suitable device found for this connection.

※SDカードのカーネルイメージとdtbのみをデフォルト(/dev/mmcblk2p1に格納されているもの)と差し替えてSDから起動するとリンクアップするため、nmcliでの設定に問題は無いと思われます。

コメント

at_keitaro.takahashi

2019年6月19日 9時57分

高橋です

①GSM接続ができない
恐らく以下の不具合に該当すると思われます

不具合報告: Armadillo-IoT G3 M1: Linux-4.9-x1-at9を使用すると3G/LTE通信ができない
https://users.atmark-techno.com/forum/armadillo/3953

お手数ですが、修正までLinux-4.9-x1-at8までのカーネルイメージをご使用いただくようお願い申し上げます。

②upgradeを行っていなくてもカーネルのビルドに失敗する
こちらでも最新版のATDEを使用すると同様の問題が発生することを確認致しました。
該当のフォーラムには追記いたします。情報ありがとうございます。

これらの修正はアップデートで修正する予定です。
ご迷惑をおかけし申し訳ありません。

suzuki-j

2019年7月8日 18時55分

お世話になっております。

鈴木です。

返信遅くなりましたが、記載させていただいた不具合は解消致しました。
ご対応ありがとうございます。

よろしくお願いします。