zoukankan      html  css  js  c++  java
  • 制作根文件系统

    1、首先下载BusyBox(我用的是busybox-1.20.0)

     #make menuconfig    //进入
        Busybox Settings  --->
            Build Options  --->
                 (arm-linux-) Cross Compiler prefix //制定交叉编译器
     #make         //编译
      #make install CONFIG_PREFIX = /root/nfs/roofs      //安装到你制定的目录

    2、再将交叉编译器目录里面的库文件拷贝到相应的lib目录(参照韦东山的毕业班第3课第2节视频教程)

    3、新建etc目录

      3.1新建文件inittab文件内容:

    #etc/inittab  
    ::sysinit:/etc/init.d/rcS    #进入init.d目录执行rsS文件中的命令
    ::askfirst:-/bin/sh     #打开命令行程序是我们可以使用命令
    ::ctrlaltdel:/sbin/reboot    #关机相关的命令
    ::shutdown:/bin/umount -a –r  

      3.2新建init.d目录在里面新建rcS文件内容:

    #!/bin/sh  
    PATH=/sbin:/bin:/usr/sbin:/usr/bin  
    runlevel=S  
    prevlevel=N  
    umask 022  
      
    export PATH runlevel prevlevel  
    
    #mount -a 时会执行 etc/fstab文件中的挂载选项
    mount -a 
    #支持热插拔
    echo /sbin/mdev>/proc/sys/kernel/hotplug  
    mdev -s  
    #设置用户名
    /bin/hostname cxd

      3.3新建fstab目录内容:

    #device    mount-point     type     option     dump   fsck   order  
    proc          /proc        proc     defaults    0        0  
    none          /tmp         ramfs    defaults    0        0  
    sysfs         /sys         sysfs    defaults    0        0  
    mdev          /dev         ramfs    defaults    0        0 

      3.4新建mdev.conf文件内容为空,复制友善之臂文件系统中的group、passwd、profile文件

    4、新建dev目录

    //在dev目录下创建两个节点mknod console c 5 1 
    # mknod null c 1 3

    5、创建home、mnt、proc、root、sys、tmp目录

    6、挂在根文件系统后在系统中执行

    #mkdir -p /lib/modules/$(uname -r)

      现在的内核模块在插入卸载时都会要转到 “/lib/modules/内核版本号/ ” 这个目录里。所以只要建立这个目录

      否则使用rmmod卸载驱动模块时会出现 rmmod : chdir(/lib/modules): No such file or directory    但是有时会出现这种错误rmmod: chdir(2.6.38-cxd-g696d0ab-dirty): No such file or directory于是我又在/lib/modules下建立这个文件夹 2.6.38-cxd-g696d0ab-dirty 就可以了;

    7、移植QtE,首先说明一下Qtopia和QtE的区别:

      网友彬ye介绍:

    值得特别注意的是在版本4之前,Qt/E和Qtopia是不同的两套程序,Qt/E是基础类库,Qtopia是构建于Qt/E之上的一系列应用程序。但从版本4开始,Trolltech将Qt/E并入到了Qtopia产品线中去了,并推出了新的Qtopia4。但实际上原来的Qt/E仍然作为基础类库,只是改名为Qtopia Core了,也许又感觉Qtopia Core跟Qtopia容易让人搞混,所以又改名为qt-embedded-linux-opensource-linux/wince(QT也支持Wince )。它作为嵌入式版本的核心,既可以与Qtopia配合,也可以独立使用。而原来的Qtopia则被分成几层,核心的应用框架和插件系统被称为 Qtopia Platform,上层的应用程序则按照不同的目标用户分为不同的包,如Qtopai PDA,Qtopia Phone。

    Qte的改名过程,Qte-->Qtopia Core-->Qt-embedded-linux-xxxx --> qt-everywhere-opensource-src-xxxxx(目前是这样的,博主注

    这几个其实差不多是一个东西,名称很容易搞混。

    记住在QT4版本前要安装Qtopia需要先装Qt/E,但之后的就不需要了。4之后的Qtopia 已经带有QT/E库了。

    所以总的来说,QT也就三种:面向桌面的x11、面向嵌入式的Qt/E、以及面向嵌入式带各种应用程序的Qtopia桌面系统!!!

      其实也不叫什么移植,只是拷贝友善文件系统中库文件而已;

      首先在/bin目录下新建一个qt脚本文件内容如下:

    #!/bin/sh
    # tell the program the qt lib's path
    export QTDIR=/opt
    export QTDIRLIB=/opt/Qt_lib
    export LD_LIBRARY_PATH=$QTDIRLIB:$LD_LIBRARY_PATH
    export PATH=$PATH:$QTDIR/bin
    export QWS_KEYBOARD=TTY:/dev/tty1
    export QWS_SIZE=800*480
    export QT_QWS_FONTDIR=/opt/Qt_lib/fonts 
    
    cd /opt
    ./hospital -qws

      然后再/opt目录下新建一个Qt_lib目录然后把qt测试程序考到/opt目录下,运行命令 #qt

      会出现错误说找不到共享库,你就在友善的文件系统里去一个一个的搜索相应的库文件拷贝到Qt_lib目录下就行,

    注:这几天收获的有点多要好好记录下来,此文件系统还有很多需要完善,呵呵!

  • 相关阅读:
    Android系统移植与驱动开发概述
    MySQL查看数据库安装路径
    GOOGLE HACK 语法
    django中orm多表查询,减少数据库查询操作
    javascript中json字符串对象转化
    centos7关闭图形界面启动系统
    centos 7下安装pycharm专业版
    centos 7 安装pip和pip3
    Centos7安装python3并与python2共存
    centos 7 安装mysql
  • 原文地址:https://www.cnblogs.com/cxd2014/p/4477612.html
Copyright © 2011-2022 走看看