zoukankan      html  css  js  c++  java
  • [国嵌攻略][101][根文件系统制作]

    根文件系统

    一个嵌入式Linux系统可以有多个文件系统,但必须有第一个文件系统,也就是根文件系统。系统启动后看到的目录和目录里面的文件就是文件系统。

    建立根文件系统

    1.创建目录

    示例:

    mkdir rootfs

    cd rootfs

    mkdir bin dev etc lib mnt proc sbin sys tmp usr var

    mkdir usr/bin usr/lib usr/sbin lib/modules

    2.创建设备文件

    Linux系统中设备以文件的方式存在dev目录下,Linux系统启动时需要console文件和null文件。

    示例:

    cd dev

    mknod -m 666 console c 5 1  -m 666属性,console设备文件名,c字符设备,5主设备号,1次设备号

    mknod -m 666 null c 1 3

    3.添加配置文件

    配置文件与处理器架构无关

    示例:

    tar zxvf etc.tar.gz

    cp etc/* rootfs/etc/

    4.添加内核模块

    make modules ARCH=arm CROSS_COMPILE=arm-linux-

    make modules_install ARCH=arm INSTARLL_MOD_PATH=.../rootfs/

    5.编译和安装busybox

    5.1配置busybox

    make menuconfig

    busybox settings->build options->[*]build busybox as a static binary

    busybox settings->build options->(arm-linux-)cross compiler prefix

    busybox settings->installation options->[*]don’t use /usr

    busybox settings->installation options->(.../rootfs)busybox installation prefix

    5.2.编译busybox

    make

    5.2.安装busybox

    make install

    挂载根文件系统

    1.文件系统类型

    根据存储设备的硬件特性和系统需求,不同的文件系统有不同的应用场合。在嵌入式Linux应用中,主要的存储设备为ram和flash,常用的基于存储设备的文件系统类型包括:jffs2,yaff2,ubifs,ramdisk等。

    基于nand flash的文件系统:yaffs2,ubifs

    基于norflash的文件系统:jffs2

    基于内存的文件系统:ramdisk,initramfs

    基于网络的文件系统:nfs

    网络文件系统一般在开发阶段使用,内存文件系统的优势是启动速度快,nand flash文件的优势是可以保存用户数据,所在在实际产品中会采用内存文件系统和nand flash文件系统混用的情况。

    2.使用initramfs挂载根文件系统

    特点:

    使用initramfs的优点在于启动速度快,缺点是无法修改文件系统里面的内容。一般在做成产品后使用。

    2.1.在根文件系统下创建软链接

    cd .../rootfs/

    ln –s ./bin/busybox init

    2.2.配置Linux内核

    make menuconfig ARCH=arm

    general setup->[*]initial ram filesystem and ram disk->(.../rootfs)initramfs source file(s)

    2.3.编译Linux内核

    make uImage ARCH=arm CROSS_COMPILE=arm-linux-

    2.4.设置启动参数

    进入uboot设置环境变量

    setenv bootargs noinitrd console=ttySAC0,115200

    saveenv

    2.5.下载内核文件

    tftp 31000000 uImage

    2.6.启动内核

    bootm 31000000

    3.使用nfs挂载根文件系统

    特点:

    使用nfs的优点在于可以通过网络直接修改文件系统里面的内容,缺点在于需要网络。一般在开发阶段使用。

    3.1.配置内核

    make menuconfig ARCH=arm

    general setup->[ ]initial ram filesystem and ram disk

    file systems->[*]network file systems->[*]root file system on nfs

    3.2.编译Linux内核

    make uImage ARCH=arm CROSS_COMPILE=arm-linux-

    3.3.设置启动参数

    进入uboot设置环境变量

    console=ttySAC0,115200   表示使用串口0,波特率是115200

    root=/dev/nfs rw   表示使用根目录下的/dev/nfs设备作为文件系统,rw可读可写

    nfsroot=192.168.1.101:.../rootfs   表示nfs服务器的地址和根文件系统的路径

    ip=开发板IP地址:服务器IP地址:网关地址:地址掩码:开发板主机名:IP对应的网卡设备:动态域名获取

    示例:

    setenv bootargs noinitrd console=ttySAC0,115200 init=/init root=/dev/nfs rw nfsroot=192.168.1.101:.../rootfs ip=192.168.1.230:192.168.1.101:192.168.1.1:255.255.255.0::eth0:off

    saveenv

    3.4.配置NFS服务器

    vim /etc/exports   修改NFS服务器路径

    .../rootfs *(rw,sync,no_root_squash)

    /etc/init.d/nfs restart   启动NFS服务器

    3.5.下载内核文件

    tftp 31000000 uImage

    3.6.启动内核

    bootm 31000000

  • 相关阅读:
    快速复习正则表达式
    常用正则表达式
    用SqlConnectionStringBuilder修改连接超时时间
    GRUB 启动 WIN PE 镜像(ISO)
    win xp 关闭动画屏幕角色,那只小狗
    win xp firefox,chrome 在浏览网页时字体发虚,可以设置为新宋体
    OpenFileDialog 打开快捷方式时,返回的是快捷方式引用的路径,而不是快捷方式(.lnk)自身的路径
    关闭IE 对剪切板访问的提示
    svn 提交代码 自动过滤技巧,自动过滤不想提交的文件和文件夹
    WinForm 打开文件夹
  • 原文地址:https://www.cnblogs.com/d442130165/p/5242672.html
Copyright © 2011-2022 走看看