Android デバイスに ch341.ko モジュールが必要です。
これは、2.4.x (おそらく 2.3.x) 以降のカーネル ソースに含まれているオプションのモジュールです。
The source is located under (kernel)/drivers/usb/serial/ch341.c
I endevoured to learn how to build modules, then found it was already in the source so no need for makefiles and the like, then endevoured to find how to crosscompile the linux source with the ch341 option to add it to the device.
最初に収集したクロスコンパイラをインストールすることは、正しいクロスコンパイラを見つけることだったので
cat /proc/version
、adb シェルから実行すると次のようになりました。root@android:/ # cat /proc/version
Linux バージョン 3.0.8+ (android2@Linux) (gcc バージョン 4.5.1 (Sourcery G++ Lite 2010.09-50) ) #47 PREEMPT Mon Jul 9 16:32:14 CST 2012Fedora 16ボックスのバージョン50でSourcery G ++をダウンロードしてセットアップしました。次に、のディレクトリを PATH 変数に追加しました。
EXPORT PATH=$PATH:(インストールされた CodeSourcery へのパス)/CodeSourcery/Sourcery_G++_Lite/bin
または手動で ~/.bash_profile に追加します:
sudo gedit ~/.bash_profile
次に、PATH 変数を更新します。
ソース ~/.bash_profile
カーネルソースをダウンロード -
正しいソースを見つけようとするのは難しいかもしれませんが、デバイスが Allwinner の A10 である可能性が高いことを知っていたので、次の git リポジトリと便利なチュートリアルを見つけました。
https://github.com/amery/linux-allwinner
http://rhombus-tech.net/allwinner_a10/kernel_compile/
git をインストールした後、2 つのブランチに対してコンパイルを試みたツリーのクローンを作成しました。
「allwinner-v3.0-android-v2」(メインのもの)
"lichee-3.0.8-sun4i" (私のデバイスにより近い)
次のコマンドでクロスコンパイルしました。
make ARCH=arm sun4i_defconfig make ARCH=arm menuconfig make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- -j16 uImage modules make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- INSTALL_MOD_PATH=output modules_install
各コンパイルの後、ch341.ko ファイルをデバイスにプッシュしました。
adb プッシュ出力/lib/modules/3.0.8+/kernel/drivers/usb/serial/ch341.ko /mnt/sdcard/LKMz/ch341.ko
それからinsmodを試しました」
adb shell root@android:/ # insmod /mnt/sdcard/LKMz/ch341.ko insmod: init_module '/mnt/sdcard/LKMz/ch341.ko' failed (Exec format error)
返された dmesg:
dmesg ch341: シンボル module_layout のバージョンについて意見が一致しません
そして -f (強制) オプションを試してみてください:
./system/xbin/busybox insmod -f /mnt/sdcard/LKMz/ch341.ko insmod: 「/mnt/sdcard/LKMz/ch341.ko」を挿入できません: 無効なモジュール形式
そのため、ソースのコンパイルに使用しているバージョンまたはコンパイル オプションに問題があるようです。
ch341.ko モジュールをコンパイルする方法について何か提案はありますか?