android7.1-固定usb转串口设备节点名称

本文介绍了如何在Ubuntu和Android系统中固定USB转串口设备的端口号。在Ubuntu中,通过修改mklinux.sh添加图形配置,启用CH340驱动,并配置环境变量。而在Android系统中,需要通过打补丁方式修改kernel文件,根据USB设备名分配不同节点,实现端口号的固定。提供了具体代码示例和参考链接。
摘要由CSDN通过智能技术生成

使能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);
		/* 固定USB转串口设备名 */
		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:
	/* unwind the already allocated minors */
	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;
	}
...内容省略...
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Paper_Love

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值