1、管明远,机器人安防,小组成员:谢齐发 李东 常艳青 陈启鹏 卢文杰 管明远,个人主要负责,内核的移植和相关驱动的添加,根文件系统的制作和部署,用户文件系统的制作和部署,UDEV的移植和使用,软件环境,开发环境: Ubuntu9 VMware Workstation软件包: Linux-2.6.22.6内核 u-boot-1.3.1 busybox-1.15.3 udev-080,U-Boot第一阶段,将CPU的工作模式设为管理模式(svc) 关看门狗,关中断 设置时钟分频 关闭MMU和Cache 初始化内存时序 U-Boot自搬移 设置栈 跳转到第二阶段代码,U-Boot第二阶段,调用一系列的
2、初始化函数(init_sequence数组) 初始化Flash设备 将环境参数读入内存 初始化网络设备,获取IP地址和MAC地址 调用main_loop函数 可以从串口输入相应命令,或是直接执行bootcmd命令,Busybox init进程,内核启动的第一个也是唯一的一个用户进程(ID=1) init进程是后续所有进程的发起者 Busybox init程序流程:,内核启动init进程,设置信号处理函数,初始化控制台,解析/etc/inittab文件,构建dev目录,/etc/inittab: init进程根据/etc/inittab 文件来创建其它子进程,:sysinit:/etc/init
3、.d/rcS,/etc/init.d/rcS: 脚本文件,可以在里面 添加自动执行的命令,mount -a,/etc/fstab: 挂载文件系统,挂载/etc/fstab文件指定的所有文件系统,#device mount_point type options dump fsck order proc /proc proc defaults 0 0 tmpfs /tmp tmpfs defaults 0 0 sysfs /sys sysfs defaults 0 0 tmpfs /dev tmpfs defaults 0 0,常用的嵌入式文件系统,jffs2,yaffs,cramfs,NFS,可
4、读写、支持数据压缩提供崩溃/掉电安全保护 提供“写平衡”支持 当文件系统快满时,速度变慢,只读文件系统,可靠性高压缩方式存储,运行时解压缩 速度快、效率高、节省存储空间 用户不能对文件系统内容进行扩充,速度快,挂载时间短内存占用少 跨平台的文件系统 自带NAND芯片的驱动,在不同机器、不同操作系 统之间通过网络共享文件广泛地用于产品的开发调试阶段,NandFlash分区,uboot 256K kernel 2M 根文件系统 CRAMFS 8M 用户文件系统 JFFS2 剩余的NandFlash空间,设备文件系统的发展,2008 2007 2006,devfs,由Linux 2.6内核引入运行在
5、用户空间在设备被发现时加载驱动模块可以动态建立/删除设备文件,由Linux 2.4内核引入运行在内核空间在设备节点打开时,自动加载对应的驱动可动态获取设备号,udev,udev工作流程,udevd从kernel收到 一个设备的uevent,在配置文件(udev.conf)中 查找规则文件所在的目录,在规则目录中按顺序 查询所有的规则文件,按匹配规则,为该设备产 生相应的设备文件,删除/dev中相应的设备文件,删除设备,添加设备,在/dev下用内核设备名 作为设备文件名,没有匹配规则,存在匹配规则,udev规则文件,一般保存在/etc/udev/rules.d目录下 规则文件必须以.rules为
6、后缀名 以lexical顺序解析规则文件,可以控制解析顺序 规则文件以行为单位,每一行代表一个规则 每个规则分为一个或多个匹配和赋值部分,常用的匹配关键字,ACTION匹配行为 KERNEL匹配内核设备名 BUS匹配总线类型 SUBSYSTEM匹配子系统名 SYSFS匹配从sysfs得到的信息,常用的赋值关键字,NAME创建的设备文件名 SYMLINK符号创建连接名 OWNER设备的所有者 IMPORT 调用外部程序,例子:SD卡的自动挂载,/etc/udev/rules.d/10-addsd.rules:ACTION=“add“,KERNEL=“mmcblk0-9p0-9“,RUN+=“/sbin/mount-sd.sh %k“/sbin/mount-sd.sh:#!/bin/sh /bin/mount -t vfat /dev$1 /tmp -iocharset=gb2312 sync,Thank You!,Your company slogan in here,