前言:最近项目需用串口与电脑通信,考虑到电脑免安装驱动问题,直接用usb模拟串口使用。按照网上教程试验几天不成,特意总结一下细节,以备后期所需;
一、配置内核代码:(基于原子哥教程的内核代码linux-imx-rel_imx_4.1.15_2.1.0_ga_alientek实验)
Device Drivers > USB support > USB Gadget Support
(借用“静思心远”图片)
二、编译内核代码后可得几个模块,拷贝模块到对应位置:
cd drivers/usb/gadget/
sudo cp legacy/g_serial.ko ~/linux/nfs/rootfs/lib/modules/4.1.15/
sudo cp libcomposite.ko ~/linux/nfs/rootfs/lib/modules/4.1.15/
sudo cp function/usb_f_serial.ko ~/linux/nfs/rootfs/lib/modules/4.1.15/
sudo cp function/usb_f_obex.ko ~/linux/nfs/rootfs/lib/modules/4.1.15/
sudo cp function/usb_f_acm.ko ~/linux/nfs/rootfs/lib/modules/4.1.15/
sudo cp function/u_serial.ko ~/linux/nfs/rootfs/lib/modules/4.1.15/
三、加载模块:
depmod
modprobe libcomposite.ko
modprobe u_serial.ko
modprobe usb_f_acm.ko
modprobe usb_f_serial.ko
modprobe usb_f_obex.ko
modprobe g_serial.ko
1、需要注意内核版本跟模块的一致性;
2、需要注意加载模块的顺序;
3、网上很多说模块的路径存放需要在/lib/modules/4.1.15/ (还没验证是否正确);
4、终端需要回显使用 cat /dev/ttyGS0 > /dev/ttymxc0
5、测试串口通信:(注意波特率一致)