1 Linux终端(串口)
210开发板有4个串口 2440开发板有3个串口
在2440开发板中三个串口设备对应如下
串口名字 主设备号 次设备号
s3c2410_serial0 204 64
s3c2410_serial1 204 65
s3c2410_serial2 204 66
有的系统里使用这三个名字
ttySAC0 204 64
ttySAC1 204 65
ttySAC2 204 66
2、构建dev目录
使用两种方法构建dev系统。
方法1:静态创建设备文件(节点)
从系统启动过程可知,涉及的设备有:/dev/mtdblock*(MTD)(MTD块设备),/dev/ttySAC*(串口设备)、/dev/console、/devnull,只要建立以下设备就可以启动系统。
在dev目录下:
#mknod console c 5 1
#mknod null c 1 3
#mknod ttySAC0 c 204 64
方法2:使用mdev创建设备文件
/*通过读取内核信息来创建设备文件的*/
#mount -t tmpfs mdev /dev //使用内核文件系统,减少对flash的读写
#mkdir /dev/pts //dev/pts用来支持外部网络链接(telnet)的虚拟终端
#mount -t devpts devpts /dev/pts
#mount -t sysfs sysfs /sys //mdev通过sysfs文件系统获得设备信息
#echo /bin/mdev>/proc/sys/kernel/hotplug //设置内核,当有设备插拔时调用/bin/mdev程序
#mdev -s //在/dev目录下生成内核支持的所有设备的节点
要在内核启动时,自动运行mdev。需要修改两个文件:etc/fstab来自动挂载文件系统、修改etc/init.d/rcS加入自动运行命令。
1:etc/fstab
# device mount-point type option dump fsck order
proc /proc proc defaults 0 0
tmpfs /tmp tmpfs defaults 0 0 //提高速度,减小磨损
sysfs /sys sysfs defaults 0 0 //告诉mdev有那些设备文件的操作
tmpfs /dev tmpfs defaults 0 0 //防止热热插拔时减少磨损
需要注意的是:开发板上通过mdev生成的/dev目录中,S3C2410的串口名是s3c2410_serial 0。需要修改etc/inittab文件。
修改前:
ttySAC0::askfirst:~bin/sh
修改后:
s3c2410_serial0::askfirst:~/bin/sh
3
对于mdev,需要注意的是,文件系统里存在/etc/mdev.conf文件,它包含了medv的配置信息。通过这个文件,我们可以自定义一些设备节点的名称或链接来满足特定的需要。这是root qtopia中mdev.conf的内容:
9.#console devices
10.tty[0-9]* 0:5 0660
11vc/[0-9]* 0:5 0660
12.
13. # serial port devices
14. s3c2410_serial0 0:5 0666 =ttySAC0
15. s3c2410_serial1 0:5 0666 =ttySAC1
16. s3c2410_serial2 0:5 0666 =ttySAC2
17. s3c2410_serial3 0:5 0666 =ttySAC3
18. 19. # loop devices
20. loop[0-9]* 0:0 0660 =loop/
21.
22. # i2c devices
23. i2c-0 0:0 0666 =i2c/0
24. i2c-1 0:0 0666 =i2c/1
可以看到,原本串口驱动注册的设备名是 s3c2410_serial0, s3c2410_serial1 和
s3c2410_serial2,而 mdev 则会在/dev 目录下对应生成 ttySAC0, ttySAC1和ttySAC2以符合
应用程序对于串口设备名称的习惯