内核及文件系统

上传人:xzh****18 文档编号:34633619 上传时间:2018-02-26 格式:DOC 页数:14 大小:10.21MB
返回 下载 相关 举报
内核及文件系统_第1页
第1页 / 共14页
内核及文件系统_第2页
第2页 / 共14页
内核及文件系统_第3页
第3页 / 共14页
内核及文件系统_第4页
第4页 / 共14页
内核及文件系统_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《内核及文件系统》由会员分享,可在线阅读,更多相关《内核及文件系统(14页珍藏版)》请在金锄头文库上搜索。

1、内核和根文件系统移植一、移植环境 主 机: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 /

2、root/my2440/linux-2.6.32.2/1. 进入内核根目录修改 Makefile 使之编译成 ARM 平台#cd linux-2.6.32.2#gedit Makefile在 193 行ARCH ?= $(SUBARCH)CROSS_COMPILE ?=修改为ARCH ?= armCROSS_COMPILE ?= arm-linux-其中,ARCH 是指定目标平台为 arm,CROSS_COMPILE 是指定交叉编译器,这里指定的是系统默认的交叉编译器,如要使用其它的,则要把编译器的全路径在这里写出2. 拷贝,建立自己的文件Linux-2.6.32.2 本身已经包含了mini2

3、440 的支持,这样就出现了重名。那怎么办呢?在此我们依然使用 MINI2440 这个名称,只不过在后面的移植步骤中,把原始内核自带的 mini2440 代码部分直接删除就可以了,以免和我们自己移植的混淆了。接下来, 我们注意到linux-2.6.32.2/arch/arm/mach-s3c2440 目录下有个mach-mini2440.c 文件,它其实就是国外爱好者为 mini2440 移植添加的主要内容了,但我们不用它,把它直接删除。将以前修改好的 mach-mini2440.c 复制到此目录下,要注意时钟、分区、机器码等的修改3. 编译测试在 Linux 源代码根目录下执行/#make

4、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 l

5、ogo -File systems -* Miscellaneous filesystems -YAFFS2 file system support4. 保存配置完后将配置文件保存为.config,这样方便下次 make menuconfig时默认加载上次配置过的文件5. 交叉编译内核#make zImage#make uImage如果没有任何错误,编译出来的内核在 arch/arm/boot/目录下,文件uImage 即是。6. 将内核镜像文件 uImage 下载到 Mini2440 上测试三、结束语Ok,新的内核移植成功,但是现在开发板还不能正常运行,因为还有各种设备的驱动和文件系统没有移

6、植,这些将在后续的篇章中一一讲述。 嵌入式 Linux 之我行 Linux-2.6.30.4 在 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. 准备工作目录和进入工作目录

7、 #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 = arm2)配置 busybox 选项,下面只列出了要注意的地方,没有列出的默认即可 #make menuconfigBusybox Settings -Buld Op

8、tions -* 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

9、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 www2)向各目录中添加文件系统所需要的目录或文件,没有提到的就不

10、用添加。这里要注意各种文件的权限,建议都改为 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.co

11、nf: 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: 系统

12、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:50

13、2: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 f

14、sck ordernone /proc proc defaults 0 0none /dev/pts devpts mode=0622 0 0tmpfs /dev/shm tmpfs defaults 0 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 subprocesse

15、s.#/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 61.144.56.

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号