1

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.
  1. 最初に収集したクロスコンパイラをインストールすることは、正しいクロスコンパイラを見つけることだったので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 2012

    Fedora 16ボックスのバージョン50でSourcery G ++をダウンロードしてセットアップしました。次に、のディレクトリを PATH 変数に追加しました。

    EXPORT PATH=$PATH:(インストールされた CodeSourcery へのパス)/CodeSourcery/Sourcery_G++_Lite/bin

    または手動で ~/.bash_profile に追加します:

    sudo gedit ~/.bash_profile

    次に、PATH 変数を更新します。

    ソース ~/.bash_profile

  2. カーネルソースをダウンロード -

    正しいソースを見つけようとするのは難しいかもしれませんが、デバイスが 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 モジュールをコンパイルする方法について何か提案はありますか?

4

1 に答える 1

1

CONFIG_MODVERSIONS をオフにして、動作するかどうかを確認します。そうでない場合は、「dmesg」を実行して新しいエラーを確認してください。

このページを確認してください。役立つ場合があります。

于 2012-11-05T09:10:24.243 に答える