gpt4 book ai didi

android - 如何为 android 构建 ch341.ko usb 串行驱动程序?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:06:48 33 4
gpt4 key购买 nike

我们需要在我们的 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. 安装交叉编译器我收集到的第一件事是找到正确的交叉编译器,所以从 adb shell 运行 cat/proc/version 得到:

    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”(更适合我的设备)

    我使用以下命令交叉编译:

    使 ARCH=arm sun4i_defconfig 制作 ARCH=arm 菜单配置 制作 ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- -j16 uImage 模块 make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-INSTALL_MOD_PATH=输出模块_安装

    每次编译后,我将ch341.ko文件推送到设备:

    adb push output/lib/modules/3.0.8+/kernel/drivers/usb/serial/ch341.ko/mnt/sdcard/LKMz/ch341.ko

    然后试了insmod"

    亚行外壳 root@android:/# insmod/mnt/sdcard/LKMz/ch341.ko insmod: init_module '/mnt/sdcard/LKMz/ch341.ko' 失败(执行格式错误)

    dmesg 返回:

    dmesg ch341: 不同意符号 module_layout 的版本

    并尝试使用 -f(强制)选项:

    ./system/xbin/busybox insmod -f/mnt/sdcard/LKMz/ch341.ko insmod: 无法插入 '/mnt/sdcard/LKMz/ch341.ko': 模块格式无效

    看来我用来编译源代码的版本或编译选项有问题。

    有人对如何编译 ch341.ko 模块有什么建议吗?

最佳答案

关闭 CONFIG_MODVERSIONS 并检查它是否有效。如果没有,“dmesg”并检查新错误。

检查 this页,它可能会有所帮助。

关于android - 如何为 android 构建 ch341.ko usb 串行驱动程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12244455/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com