使能ch340驱动
修改源码路径下mklinux.sh添加make menuconfig图形配置一下。
使能ch340驱动。
配置环境变量。
单独编译内核文件。
打包镜像烧写文件。
ubuntu固定USB串口设备端口号
参考链接:http://t.zoukankan.com/zhouzhishuai-p-10438776.html
android固定USB串口设备端口号
采用打补丁的方式修改/kernel/drivers/usb/serial/usb-serial.c文件。
参考链接:https://wenku.baidu.com/view/c6a00d1240323968011ca300a6c30c225901f02b.html
通过USB设备名去识别USB转串口插入的哪个U口,再根据不同的U口分配一个不同的节点。博主测试了3个USB接口分别打印出的信息是5-1,7-1.1,7-1.2。主要是修改/kernel/drivers/usb/serial/usb-serial.c文件下这两个函数。
static int allocate_minors(struct usb_serial *serial, int num_ports)
{
struct usb_serial_port *port;
unsigned int i, j;
int minor;
dev_dbg(&serial->interface->dev, "%s %d\n", __func__, num_ports);
mutex_lock(&table_lock);
for (i = 0; i < num_ports; ++i) {
port = serial->port[i];
minor = idr_alloc(&serial_minors, port, 0, 0, GFP_KERNEL);
if(!strcmp(dev_name,"5-1"))
{
minor=1;
}
else if(!strcmp(dev_name,"7-1.1"))
{
minor=2;
}
else if(!strcmp(dev_name,"7-1.2"))
{
minor=3;
}
if (minor < 0)
goto error;
port->minor = minor;
port->port_number = i;
}
serial->minors_reserved = 1;
mutex_unlock(&table_lock);
return 0;
error:
for (j = 0; j < i; ++j)
idr_remove(&serial_minors, serial->port[j]->minor);
mutex_unlock(&table_lock);
return minor;
}
static int usb_serial_probe(struct usb_interface *interface,
const struct usb_device_id *id)
{
...内容省略...
if (allocate_minors(serial, num_ports)) {
替换为
if (allocate_minors(serial, num_ports,dev_name(&port->serial->dev->dev))) {
dev_err(ddev, "No more free serial minor numbers\n");
goto probe_error;
}
...内容省略...
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)