0.前言
最近在弄3562的自制板,有很多串口,然后发现设备文件名编号有些跳跃,不方便用户使用,因此,需要对这些设备文件进行重命名
1.查看设备号
我们需要知道目标设备文件的设备号,通过ls -l /dev/tty*查看
本次需要关注的就是/dev/ttyS*和/dev/ttyCH343USB*,一共10个串口
设备号是第五列,子设备号是第六列。
例如:
- /dev/ttyCH343USB0的设备号是170,子设备号是0
- /dev/ttyS2的设备号是4,子设备号是66
2.删除设备文件
笔者希望这些设备文件最终都是/dev/S*命名,因此有些会与原设备文件同名。如果用户希望的设备文件命名方式不会出现重名的情况,可以跳过此步骤。
因为会出现同名,所以我们需要先把所有/dev/ttyS*都删除,这里我把/dev/ttyCH343USB*也一同删除了。
删除方法:使用rm指令
rm /dev/ttyS2
rm /dev/ttyS3
rm /dev/ttyS4
rm /dev/ttyS7
rm /dev/ttyS8
rm /dev/ttyS9
rm /dev/ttyCH343USB0
rm /dev/ttyCH343USB1
rm /dev/ttyCH343USB2
rm /dev/ttyCH343USB3
使用ls /dev/tty*查看可以发现没有上述这些设备文件了
3.重建设备文件
使用mknod指令来重建设备文件
mknod 新设备文件名 设备类型 设备号 子设备号
新设备文件名:此处为 /dev/ttyS*
设备类型:串口是字符设备,此处为 c
设备号和子设备号使用前文看到的数据
因此,我这里根据外设接口,重建设备文件,指令如下:
# COM1 => /dev/ttyS2
mknod /dev/ttyS1 c 4 66# COM2 => /dev/ttyS3
mknod /dev/ttyS2 c 4 67# COM3 => /dev/ttyS4
mknod /dev/ttyS3 c 4 68# COM4 => /dev/ttyS7
mknod /dev/ttyS4 c 4 71# COM5 => /dev/ttyS8
mknod /dev/ttyS5 c 4 72# COM6 => /dev/ttyS9
mknod /dev/ttyS6 c 4 73# COM7 => /dev/ttyCH343USB0
mknod /dev/ttyS7 c 170 0# COM8 => /dev/ttyCH343USB1
mknod /dev/ttyS8 c 170 1# COM9 => /dev/ttyCH343USB2
mknod /dev/ttyS9 c 170 2# COM10 => /dev/ttyCH343USB3
mknod /dev/ttyS10 c 170 3
4.查看结果
通过ls /dev/ttyS*指令查看是否创建设备文件
创建成功。
后续经过串口收发测试,设备文件成功映射。
5.补充
mknod的其他用法,参见mknod --help指令