当前位置: 技术问答>linux和unix
求助:usb转serial串口设备在linux内核中创建及生成tty设备的改写
来源: 互联网 发布时间:2016-12-02
本文导语: 当把一个usb转serial串口设备插到linux系统上时,系统自动识别设备后会把设备和/dev目录下设备节点相关联,但是默认的关联是从ttyUSB0开始,依次ttyUSB1,ttyUSB2..... (内核打印信息为: pl2303 1-1.4:1.0: pl2303 converter detec...
当把一个usb转serial串口设备插到linux系统上时,系统自动识别设备后会把设备和/dev目录下设备节点相关联,但是默认的关联是从ttyUSB0开始,依次ttyUSB1,ttyUSB2.....
(内核打印信息为:
pl2303 1-1.4:1.0: pl2303 converter detected
usb 1-1.4: pl2303 converter now attached to ttyUSB0)
现在想要把和usb转serial串口设备相关联的/dev/ttyUSB0设备节点的名字改成自己想要的名字,比如插上一个usb转串口设备后该设备和/dev/ttyUSB122相关联,文件操作时open(“/dev/ttyUSB122”)
想要完成这样的需求应该在内核驱动哪儿改啊,这是我毕业设计导师让我做的,不会呀,完全无从下手啊,求前辈指导
(内核打印信息为:
pl2303 1-1.4:1.0: pl2303 converter detected
usb 1-1.4: pl2303 converter now attached to ttyUSB0)
现在想要把和usb转serial串口设备相关联的/dev/ttyUSB0设备节点的名字改成自己想要的名字,比如插上一个usb转串口设备后该设备和/dev/ttyUSB122相关联,文件操作时open(“/dev/ttyUSB122”)
想要完成这样的需求应该在内核驱动哪儿改啊,这是我毕业设计导师让我做的,不会呀,完全无从下手啊,求前辈指导
|
看下内核中的 drivers/usb/serial/usb-serial.c文件
设备号在usb_serial_probe()函数中设定吧
设备号在usb_serial_probe()函数中设定吧
|
drivers/usb/serial/usb-serial.c
1077 for (i = 0; i port[i];
1079 dev_set_name(&port->dev, "ttyUSB%d", port->number);
1080 dbg ("%s - registering %s", __func__, dev_name(&port->dev));
1081 port->dev_state = PORT_REGISTERING;
1082 retval = device_add(&port->dev);
1083 if (retval) {
1084 dev_err(&port->dev, "Error registering port device, "
1085 "continuingn");
1086 port->dev_state = PORT_UNREGISTERED;
1087 } else {
1088 port->dev_state = PORT_REGISTERED;
1089 }
1090 }
1077 for (i = 0; i port[i];
1079 dev_set_name(&port->dev, "ttyUSB%d", port->number);
1080 dbg ("%s - registering %s", __func__, dev_name(&port->dev));
1081 port->dev_state = PORT_REGISTERING;
1082 retval = device_add(&port->dev);
1083 if (retval) {
1084 dev_err(&port->dev, "Error registering port device, "
1085 "continuingn");
1086 port->dev_state = PORT_UNREGISTERED;
1087 } else {
1088 port->dev_state = PORT_REGISTERED;
1089 }
1090 }