AyFun / HiSTBLinux_drive

hi3798mv3dmm_hi3798mv300 4.4.35_ecoo_83080368 CH341
17 stars 0 forks source link

关于hi3798mv100的ch340驱动 #1

Closed KellsonM closed 1 year ago

KellsonM commented 1 year ago

感谢你的付出,我尝试根据你链接内的方法去build,一直碰到各种错误,我的是hi3798mv100,hinas 4.4.35_ecoo_81051468,是mdmo1g的配置,能方便帮忙编译一个ch340的驱动吗?非常感谢

AyFun commented 1 year ago

@KellsonM 我这没有跟你一样的设备,所以编出来可能你也用不了。 有什么问题什么错误,都可以贴出来,我看能不能解决。

KellsonM commented 1 year ago

谢谢回复,我是在WSL里面Ubuntu 18.04交叉编译,按照3.1复制默认hi3798mv100的默认配置,前面在第四步make -j$(nproc) 就出现下面的错误。

log.txt

同时我也参考了https://bbs.histb.com/d/1286-zai-windowsxia-bian-yi-hai-si-linuxgu-jian 这里。

AyFun commented 1 year ago

@KellsonM 如果是交叉编译,需要跳过3.1按照3.2的步骤来。 你给的链接里面写的很详细了,编译内核可以完全按照他的步骤来。 另外我其实有试过用wsl交叉编译出linux headers,很顺利,但没有进行后续编译驱动。有条件还是建议直接在设备上编译。

KellsonM commented 1 year ago

@AyFun 我最后还是直接上设备编译,根据你的步骤配置了环境,复制了linux-4.4.y文件夹进去配置好之后我用 make -C ./ M=/home/ch341/ 编译,终于编译成功了。

在安装的时候,提示 “insmod: ERROR: could not insert module ch341.ko: Device or resource busy”

dmesg显示 [ 167.912660] Error: Driver 'ch341' is already registered, aborting...

但lsmod没有显示安装任何module。

AyFun commented 1 year ago

rmmod或者modprobe -r ch341卸载,然后重新安装或者放到 /usr/lib/modules/4.4.35_xxxx/kernel/drivers,depmod -a自动加载,重启或者重新插拔设备都试试

KellsonM commented 1 year ago

我发现了原来我的版本kernel内置了ch340,经过一番测试后,发现我真正需要的驱动是cdc-acm,用以下命令编译,再安装就搞定了! make CONFIG_USB_ACM=m /home/build/linux-4.4.y/drivers/usb/class/cdc-acm.ko

非常感谢!

AyFun commented 1 year ago

恭喜!

GreenTeodoro839 commented 1 year ago

@KellsonM 如果是交叉编译,需要跳过3.1按照3.2的步骤来。 你给的链接里面写的很详细了,编译内核可以完全按照他的步骤来。 另外我其实有试过用wsl交叉编译出linux headers,很顺利,但没有进行后续编译驱动。有条件还是建议直接在设备上编译。

大佬,headers怎么编译?我想用headers编译sdk以外的驱动