构建嵌入式rtlinux系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
构建嵌入式rtlinux系统
1
1.下载linux内核linux-2.4.22.tar.gz,从ftp:///上镜像站点下载的,速度很快。
解压到/usr/src/linux-2.4.22
2下载RTLinux:rtlinux-3.2-rc1.tar.bz2 从ftp:///pub/rtlinux上下载。
解压到/usr/src/rtlinux-3.2-rc1
3. 给linux内核打RTLinux补丁,并编译新内核:
cd /usr/src/rtlinux-3.2-rc1
ln –s /usr/src/linux-2.4.22 /usr/src/rtlinux-3.2-rc1/linux
cd ./linux
只有在这个目录下你的命令才会生效。否则会显示
make: *** No rule to make target 'config' , stop的错误提示.
patch –p1 < ../patches/kernel_patch-2.4.22-rtl3.2-pre3
make mrproper
如果你以前编译过内核,那应当先执行#make mrproper 这个命令,它可以删除以前的建构的痕迹。如果你没有编译过,可以不执行它。
make menuconfig
选择网卡驱动以及EXT3文件系统,去掉APM选项,disableAPIC支持,将一些不必要的支持去掉,如对红外线和其它周边设备的支持,重要的一点是记住通常为节略空间内核必须支持RAMDISK及ext2,否则系统不能正常引导。编译之前请确认您是以root的身份在进行操作,否则会返回Permission Denied的提示。,把你认为不需要的东西都不要编译到内核,比如业余电台,scsi,I20,IrDA,isdn,bluetooth.最后保存为.config后退出。
make dep(设置依赖关系)
make bzImage(建构内核)
make modules 通常情况下将所有要用到的模块编译进内核,因此,这一步可以省略。
至此,你已得到了linux内核镜像文件在/usr/src/linux-2.4.22/arch/i386/boot/目录下。
4.编译得到rtlinux模块
cd /usr/src/rtlinux-3.2-rc
make clean
make menuconfig 内核选项取默认值即可
make dep
make modules
make devices 用来在系统的/dev/目录下生成相应的设备文件,
make install
此时,你在/usr/src/rtlinux-3.2-rc/modules/下得到编译好的rtlinux模块。
5.根文件系统的制作
制作根文件系统前,我们先要解决一个问题:因为一个根文件系统要实现基本的功能,必须包括一些常用工具:如:sh,ls,cd,cat…… 但是常用工具会占用很多空间,要是用原
来系统中的这些命令,就是全部用静态编译,不是用动态连接库,大概也要有2MB~3MB,体积过于庞大。因此我们我们的解决的方案是使用BusyBox工具。BusyBox 它包含了七十多种Linux 上标准的工具程序,只需要的磁盘空间仅仅几百k 。在嵌入式系统上常用到它。
5.1建立BusyBox
首先我们从官方网站上下载BusyBox的较新版本:busybox-1.00-rc3.tar.gz并且解开
#tar zxvf busybox-1.00-rc3.tar.gz
为了压缩空间,我们采用静态编译,修改Makefile 中的DOSTA TIC 参数为true
DOSTA TIC=true
然后修改BusyBox 中的init.c,设定系统要执行的第一个程序为: /etc/rc.d/rc.sysinit
#define INIT_SRCIPT "/etc/rc.d/rc.sysinit"2
开始编译BusyBox
#make menuconfig 根据实际情况来决定各编译选项,以尽量减少编译后大小。
#make
#make install
到这一步我们就得到了可执行命令busybox
解决了这个问题后,我们可以开始制作根文件系统
5.2制作根文件系统
首先为根文件系统建一个目录叫做doc,然后进入doc目录内
# mkdir doc
# cd doc
然后为root filesystem 建立一些标准的目录
# mkdir dev etc etc/rc.d bin proc mnt tmp var
# chmod 755 dev etc etc/rc.d bin mnt tmp var
# chmod 555 proc
# ln -s sbin bin
然后进入/dev 目录下建立根文件系统必须的一些设备文件。
建立一般终端机设备
# mknod tty c 5 0
# mkdir console c 5 1
# chmod 666 tty console
建立VGA Display 虚拟终端机设备
# mknod tty0 c 4 0
# chmod 666 tty0
建立RAM disk 设备
# mknod ram0 b 1 0
# chmod 600 ram0
建立floppy 设备
# mknod fd0 b 2
# chmod 600 fd0
建立null 设备
# mknod null c 1 3
# chmod 666 null