Linux系统下串口的问题终于解决了

操作串口的时候,总是出现“/dev/ttyS0: no such device or address”,但是这个文件是存在的。

曾经想过,问题是不是处在内核对串口的支持上,但是,用ttySA0和ttySA1都能做为Console的,说明硬件上和内核都是支持的。于是,问题锁定在文件系统上。

后来想到是不是ttyS0建立不正确呢?当时建立是mknod -m 666 ttyS0 c 4 64,网上很多文档都是这样建立的(内核没有开devfs)。

查看/proc/tty/drviers,有一行“ttySAC   /dev/s3c2410_serial 204 64-66 serial”,Oh yeah,我明白,s3c2410的串口设备号和x86的不一样的,主设备号是204,此设备号是64。

所以

rm ttyS*
mknod -m 666 ttyS0 c 206 64
mknod -m 666 ttyS1 c 206 65

经过测试,确实这样可行!