在linux下如何将ttyS0改成别的号,比如ttyS4什么的,我的系统只有一个串口。

时间:2022-11-13 09:32:28
不明白楼主为什么要这样做,不过是有办法的。
ttyS0只是代表一个设备节点,它存在主设备号和次设备号。一个设备节点包含了这两个设备号,Linux系统通过这两个号唯一的确定一个驱动实例。
一个实际存在的串口只能够存在一个驱动实例。大多数的驱动实例只支持单一现成的读写操作,所以不允许多个程序同时打开设备文件,典型的一种就是串口,它只允许一个程序打开。
一个驱动实例对应一组唯一的主设备号和次设备号,多个设备节点可以指向同一组设备号。
下面是结论:
不论如何更改ttyS0,串口只能打开一次。
可以通过简单的cp /dev/ttyS0 /dev/ttyS4将设备节点的名称复制为/dev/ttyS4,或者使用mv命令对名称进行修改,但是不能改变串口只能打开一次的状况。

追问

是这样的,项目用的开发板上只有一个串口,这个串口好像被系统占用了,有人告诉我改个名字,也就是改个节点,就能解决,我刚刚接触linux,还不太懂,用mv命令更改了,可是重启机又恢复原样了,请问该怎么办?

回答

mv和cp只是临时起作用。
多余的串口应该是被init进程托管了,可以查看/etc/inittab中有没有getty /dev/ttySx的内容,注释掉试试。