欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    内核及文件系统.doc

    • 资源ID:70347469       资源大小:10.21MB        全文页数:14页
    • 资源格式: DOC        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    内核及文件系统.doc

    内核和根文件系统移植一、移植环境· 主  机: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-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 本身已经包含了mini2440 的支持,这样就出现了重名。那怎么办呢?在此我们依然使用MINI2440 这个名称,只不过在后面的移植步骤中,把原始内核自带的mini2440 代码部分直接删除就可以了,以免和我们自己移植的混淆了。接下来, 我们注意到linux-2.6.32.2/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-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. 准备工作目录和进入工作目录 #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 ->          Don't use /usr            Applets 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 3"etc"目录,创建各种配置文件并向里面添加内容,没有列出的就不用添加: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" in  start)        /usr/sbin/$base          stop)    pid=/bin/pidof $base    if -n "$pid" ; then        kill -9 $pid    fi        esacexit 0sysconfig/HOSTNAME: 主机名称文件,内容如下: MY2440fstab: 系统挂载文件系统列表,内容如下: # device  mount-point   type     options     dump   fsck 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 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 -un"LOGNAME=$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.100"home"目录:创建一个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目录下,这样就可以在任何目录下执行mkyaffs2image命令了。#tar -zxvf mkyaffs2image.tgz将生成的mkyaffs2imag这个文件拷贝到/usr/local/bin目录下回到rootfs目录所在的目录,运行下面的命令#mkyaffs2image rootfs/ rootfs.img5. 下载文件系统镜像到开发板上测试,使用情况如下:三、结束语    现在文件系统成功移植上去了,加上上一篇章的内核移植,至此开发板可以运行起来了。但是各种外设还不能正常使用,后续的篇章将逐步移植各种设备的驱动,使之完善。

    注意事项

    本文(内核及文件系统.doc)为本站会员(asd****56)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开