内核及文件系统.doc_第1页
内核及文件系统.doc_第2页
内核及文件系统.doc_第3页
内核及文件系统.doc_第4页
内核及文件系统.doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

内核和根文件系统移植一、移植环境 主 机:VMWare-Fedora 9 开发板:Mini2440-64MB Nand 编译器:arm-linux-gcc-4.4.3二、移植步骤本移植是一个简单的过程,比较详细全面的要参考MINI2440开发板提供的文档,目录如下:mini2440开发板友善之臂编写或整理的参考文档ni2440 Linux移植开发实战指南.pdf下面开始移植:先做准备工作:在内核解压之后,给内核打上yaffs2补丁,使内核对yaffs2的支持 #tar -zxvf cvs-root.tar.gz#cd cvs/yaffs2/#./patch-ker.sh c /root/my2440/linux-/1. 进入内核根目录修改Makefile使之编译成ARM平台#cd linux-#gedit Makefile在 193行ARCH ?= $(SUBARCH)CROSS_COMPILE ?=修改为ARCH ?= armCROSS_COMPILE ?= arm-linux-其中,ARCH 是指定目标平台为arm,CROSS_COMPILE 是指定交叉编译器,这里指定的是系统默认的交叉编译器,如要使用其它的,则要把编译器的全路径在这里写出2. 拷贝,建立自己的文件Linux- 本身已经包含了mini2440 的支持,这样就出现了重名。那怎么办呢?在此我们依然使用MINI2440 这个名称,只不过在后面的移植步骤中,把原始内核自带的mini2440 代码部分直接删除就可以了,以免和我们自己移植的混淆了。接下来, 我们注意到linux-/arch/arm/mach-s3c2440 目录下有个mach-mini2440.c 文件,它其实就是国外爱好者为mini2440 移植添加的主要内容了,但我们不用它,把它直接删除。将以前修改好的mach-mini2440.c复制到此目录下,要注意时钟、分区、机器码等的修改3. 编译测试在 Linux 源代码根目录下执行/#make mini2440_defconfig ;使用Linux 官方自带的mini2440 配置#make menuconfig首先加载s3c24xx系列的通用配置,然后在此基础上修改罗列简单的配置,其它的默认Kernel Features -Boot options - System Type -上面除了S3C2440 Machines(只选* MINI2440 development board)外,其它的S3C24XX里面都不选。Device Drivers - Graphics support - Console display driver support - * Bootup logo -File systems -* Miscellaneous filesystems - YAFFS2 file system support4. 保存配置完后将配置文件保存为.config,这样方便下次make menuconfig时默认加载上次配置过的文件5. 交叉编译内核#make zImage#make uImage如果没有任何错误,编译出来的内核在arch/arm/boot/目录下,文件uImage即是。6. 将内核镜像文件uImage下载到Mini2440上测试三、结束语 Ok,新的内核移植成功,但是现在开发板还不能正常运行,因为还有各种设备的驱动和文件系统没有移植,这些将在后续的篇章中一一讲述。 嵌入式Linux之我行Linux-在2440上的移植之文件系统 一、移植环境 主 机:VMWare-Fedora 9 开发板:Mini2440-64MB Nand 编译器:arm-linux-gcc-4.3.2 yaffs补丁:cvs-root.tar.gz 这里下载http:/www.aleph1.co.uk/cgi-bin/viewcvs.cgi/ Busybox:busybox-1.13.0.tar.tar yaffs制作工具:mkyaffs2image.tgz(友善提供)二、移植步骤1. 准备工作目录和进入工作目录 #mkdir rootfs /准备使用的根文件系统目录2. 编译busybox生成文件系统所需要的应用程序 1)解压busybox源码,修改Makefile使之编译成ARM平台: #tar -jxvf busybox-1.13.0.tar.tar#cd busybox-1.13.0#gedit Makefile大概164行改成CROSS_COMPILE = arm-linux- 189行改成ARCH = arm 2)配置busybox选项,下面只列出了要注意的地方,没有列出的默认即可 #make menuconfigBusybox Settings -Buld Options -* Build Busybox as a static binary (no shared libs)Installation Options - Dont use /usrApplets links (as soft-links) -(这里添加绝对路径/roots/) BusyBox installation prefixBusybox Library Tuning -*vi-style line editing commands vi命令编辑风格*Fancy shell prompts 这一项一定要选上,不然无法识别/etc/profile中的PS1变量。Linux Module Utilities - 首先取消Simplified modutils,然后在新出现的菜单中选中insmod,rmmod,lsmod,modprobe,这几项是对模块操作的命令保存配置单,退出。 3)编译和安装busybox,安装完后会/roots目录下生成:bin、linuxrc、sbin、usr #make# make install3. 开始构建文件系统1)在rootfs目录下建立其它目录#cd rootfs / #mkdir dev etc home lib mnt opt proc tmp var www 2)向各目录中添加文件系统所需要的目录或文件,没有提到的就不用添加。这里要注意各种文件的权限,建议都改为777,命令:#chmod 777 文件名dev目录,创建两个设备文件: # sudo mknod console c 5 1# sudo mknod null c 1 3# sudo mknod ttySAC0 c 204 64# sudo mknod mtdblock0 b 31 0 # sudo mknod mtdblock1 b 31 1 # sudo mknod mtdblock2 b 31 2# sudo mknod mtdblock3 b 31 3etc目录,创建各种配置文件并向里面添加内容,没有列出的就不用添加:boa/boa.conf: boa WEB服务器配置文件,暂时为空。group: 系统用户组配置文件,内容如下: root:*:0:daemon:*:1:bin:*:2:sys:*:3:adm:*:4:tty:*:5:disk:*:6:lp:*:7:lpmail:*:8:news:*:9:uucp:*:10:proxy:*:13:kmem:*:15:dialout:*:20:fax:*:21:voice:*:22:cdrom:*:24:floppy:*:25:tape:*:26:sudo:*:27:audio:*:29:ppp:x:99:500:x:500:plg501:x:501:fainittab: 系统init进程配置文件,内容如下: # /etc/inittab:sysinit:/etc/init.d/rcSttySAC0:askfirst:-/bin/sh:ctrlaltdel:/sbin/reboot:shutdown:/bin/umount -a -rmime.types: 暂时为空。passwd: 系统密码文件,内容如下: root:0:0:root:/:/bin/shftp:14:50:FTP User:/var/ftp:bin:*:1:1:bin:/bin:daemon:*:2:2:daemon:/sbin:nobody:*:99:99:Nobody:/:sky:502:502:Linux User,:/home/sky:/bin/shrc.d/init.d/httpd: 内容如下: #!/bin/shbase=boa# See how we were called.case $1 instart)/usr/sbin/$base;stop)pid=/bin/pidof $baseif -n $pid ; thenkill -9 $pidfi;esacexit 0sysconfig/HOSTNAME: 主机名称文件,内容如下: MY2440fstab: 系统挂载文件系统列表,内容如下: # device mount-point type options dump fsck ordernone/proc proc defaults0 0none/dev/pts devptsmode=06220 0tmpfs/dev/shm tmpfsdefaults0 0init.d/rcS: 系统启动加载项,内容如下: #!/bin/shPATH=/sbin:/bin:/usr/sbin:/usr/binrunlevel=Sprevlevel=Numask 022export PATH runlevel prevlevel#Trap CTRL-C &c only in this shell so we can interrupt subprocesses.#/bin/mount -t proc none /proc/bin/mount -t tmpfs none /tmp/bin/mount -t tmpfs none /var/bin/mkdir -p /var/log/bin/hostname -F /etc/sysconfig/HOSTNAMEmdev.conf: mdev设备配置文件,暂时为空。net.conf: 网络配置文件,暂时为空。profile: 用户环境配置文件,内容如下: # Ash profile # vim: syntax=sh# No core files by default#ulimit -S -c 0 /dev/null 2&1USER=id -unLOGNAME=$USERPS1=uh W# PATH=$PATH:/usr/local/binLD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/libHOSTNAME=/bin/hostnameexport USER LOGNAME PS1 PATH LD_LIBRARY_PATHresolv.conf: DNS配置文件,内容如下: nameserver 00home目录:创建一个sky目录,与etc目录passwd文件中的sky相对应lib目录:这个里面放的都是库文件,直接从交叉编译器的库文件目录中拷贝过来: #cp -f /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/lib/*.so* lib/ -a4. 使用yaffs制作工具编译构建好的文件系统。先解压mkyaffs2image.tgz(这个工具是友善提供的,可以在他们的网站上下载),会自动解压到开发主机的/usr/sbin/目录下,在这个目录下将mkyaffs2imag这个文件拷贝到/usr/local/bin目录下,这

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论