嵌入式学习笔记300-linux根文件系统搭建

  1. 制作根文件系统首先需要用busybox编译出系统文件所需的应用程序,然后再以此拓展构建根文件系统。

    这里使用busybox1.16.0,可以在本博客查询看是否有上传。

    tar jxvf busybox-1.16.0.tar.bz2 -C your_path

  2. 配置:进入busybox-1.16.0 修改makefile,将164行的CROSS_COMPILE=/xx/xx/4.3.3/bin/arm-linux- , 189行修改ARCH = arm,最后输入 make menuconfig , 这里我采用默认即可,主要的即使修改 General Configuration选项 设置,比如使能History save vi-style等。接着退出保存为.config,最后 make;make install。最后会在当前目录生成 _install目录,里面就有基本的arm架构所需的应用程序,包括uboot传参给kernel所需启动的文件系统第一个应用程序。bin linuxrc sbin usr
  3. 构建文件系统,在busybox-1.16.0下以_stall为蓝本,cp -r _stall root_fs,就构建基本的文件系统root_fs,接着在root_fs下新建相关目录

    mkdir dev etc lib mnt opt proc root tmp usr/lib usr/share var

  4. dev目录:

    由于系统初始化init进程需要用到/dev/console 和 /dev/null,所以事先手动建立

cd dev
mknod console c 5 1
mknod null c 1 3 

可能需要sudo无权限建立

5. etc目录

这里copy天嵌自带的文件系统里的文件即可

6. lib目录:

这里拷贝交叉编译自带的一下lib

cp -raf /xx/4.3.3/arm-none-linux-gnueabi/libc/armv4t/usr/lib/.so ./lib

7. mnt目录:

这里建立 udisk sddisk两个目录来挂载U盘和SD卡,其配置在/etc/mdev.conf下:

sd[a-z]*[0-9]       0:0 0660    @(mount -t vfat -o iocharset=cp936 /dev/$MDEV /mnt/udisk)
sd[a-z]*[0-9]       0:0 0660    *(umount /mnt/udisk)
mmcblk[0-9]*p[0-9]  0:0 0660    @(mount -t vfat -o iocharset=cp936 /dev/$MDEV /mnt/sd)
mmcblk[0-9]*p[0-9]  0:0 0660    *(umount /mnt/sd)
  1. 其他目录可以为空!
  2. 制作镜像,交叉编译工具自带关于制作各种文件系统镜像命令,由于我们采用的是yaffs2,所以使用mkyaffsimage_2或者mkyaffs2image,其中针对64M nand flash的使用mkyaffsimage_2,而128M及以上的用mkyaffs2image,之所以有两个命令是因为linux kernel nand driver对不同的nand size有不同的处理。我的demo board是256MB的nand 因此就是 mkyaffs2image root_fs root_fs.bin即可。
  3. 烧入到nand,同样,像烧入kernel一样,这里采用天嵌自带的bootloader选择将root_fs.bin烧入到其指定的地址 0x500000处。
时间: 2024-08-27 10:02:38

嵌入式学习笔记300-linux根文件系统搭建的相关文章

Linux学习笔记<二>——Linux根文件系统和文件目录管理

文件系统中各目录的说明: /boot:系统启动相关的文件,如内核,initrd以及grub(bootloader) /dev:设备文件 设备文件: 块设备:随机访问,数据块,唔所谓顺序,如银盘 字符设备:线性访问,按字符为单位,有次序地一个接一个地输入/读取,如键盘,鼠                  标,显示器 设备号:主设备号(major)和次设备号(minor) /etc:配置文件 /home:用户的家目录,每一个用户的家目录默认为/home/USERNAME /root:管理员的家目录

2017.3.2学习笔记----------nfs以及根文件系统

根文件系统的制作烧写,nfs,驱动程序的编译 <1> 根文件系统的制作烧写: 类似于前一节,步骤可以参考手册,将补丁文件打入虚拟机,再安装即可. 具体步骤参考开发板应用手册3.4节 <2> 使用flash上的根文件系统启动沪,手工MOUNT NFS: mount -t nfs -o nolock,vers=2 192.168.1.132:/work/nfs_root /mnt ls  /mnt <3>使用nfs作为根文件系统来启动 进入uboot: set bootar

嵌入式 Linux根文件系统移植(一)——Linux文件系统简介

嵌入式 Linux根文件系统移植(一)--Linux文件系统简介 本文对文件系统分析的代码来源于linux 2.6.35.7版本. 一.文件系统的体系结构 文件系统是对存储设备上的数据和元数据进行组织的机制,便于用户和操作系统的交互.Linux支持多种文件系统,文件系统接口实现为分层的体系结构,将用户接口层.文件系统实现和操作存储设备的驱动程序分隔开.Linux文件系统的体系结构如下: 用户空间包含一些应用程序(例如,文件系统的使用者)和 GNU C库(glibc),为文件系统调用(打开.读取.

嵌入式 Linux根文件系统移植(二)——根文件系统简介

嵌入式 Linux根文件系统移植(二)--根文件系统简介 根文件系统是内核启动时挂载的第一个文件系统,内核代码映像文件保存在根文件系统中,而系统引导启动程序会在根文件系统挂载之后从中把一些基本的初始化脚本和服务等加载到内存中去运行. 一.嵌入式设备文件系统 在嵌入式Linux应用中,主要的存储设备为 RAM(DRAM, SDRAM)和ROM(常采用FLASH存储器),常用的基于存储设备的文件系统类型包括:jffs2, yaffs, cramfs, romfs, ramdisk, ramfs/tm

linux学习笔记(3)-文件系统

三大类文件类型 普通文件:包括文本文件.数据文件.可执行的二进制程序文件 目录文件:linux系统把目录看成一种特殊的文件,利用它构成了文件系统的树形结构 设备文件:把设备也看成是一个文件,例如你的鼠标,你的硬盘,等在linux中表现的就是一个文件 文件类型的标识符 前面谈到linux有多种不同的文件类型,对不同的文件处理方式肯定不同,例如对普通文件和对目录文件处理方式肯定是不同的,那么系统有是怎么识别的呢?,在文件属性里分别用不同的编码给他们做标记就行 下面是 不同文件的不同编码 普通文件(-

Linux根文件系统裁剪 论文阅读笔记

Linux裁剪方法研究 2006 2 Linux裁剪原理: 2 Linux嵌入式系统根文件系统的选择与制作 2006 3 Linux嵌入式系统根文件系统的选择与制作 2006 3 基于ARM的嵌入式Linux操作系统移植的研究 2006 5 基于ARM的嵌入式文件系统研究与设计 2010 6 基于嵌入式Linux的Ext2根文件系统制作分析 2015 6 嵌入式Linux裁剪研究 2009 7 嵌入式Linux根文件系统的构建与分析 2015 8 嵌入式Linux共享库裁剪技术分析与改进 200

嵌入式学习笔记201-Linux kernel动起来

在前篇博文<嵌入式学习笔记200-Linux kernel初体验>在已经确保环境编译是ok的,接下来让kernel能够最基本的动起来,起码可以看到基本的启动打印! 修改外部输入时钟频率, 修改 linux-2.6.30.4\arch\arm\mach-s3c2440\mach-smdk2440.c 在大概163行将16934400改成12000000. static void __init smdk2440_map_io(void) { s3c24xx_init_io(smdk2440_iod

嵌入式学习笔记202-Linux kernel跑起来

在<嵌入式学习笔记104-uboot_1.1.6移植(4)>.<嵌入式学习笔记300-linux根文件系统搭建>uboot和根文件系统都准备好的前提下,此时的kernel已基本可以跑起来,不过还差正确的挂起文件系统,其中uboot传给kernel的挂载处是root=/dev/mtdblock2 ,而在<嵌入式学习笔记201-Linux kernel动起来>的打印分区信息是: mtd: partition "Boot Agent" doesn't en

第17章- 构建Linux根文件系统

本章目标 l 了解Linux的文件系统层次标准(FHS) l 了解根文件系统下各目录的作用 l 掌握构建根文件系统的方法:移植Busybox.构造各个目录.文件等 l 掌握制作yaffs.jffs2文件系统映象文件的方法 推广: 想了解更多嵌入式知识请移步到 100ask.taobao.com 17.1  Linux文件系统概述 17.1.1  Linux文件系统的特点 类似于Windows下的C.D.E等各个盘,Linux系统也可以将磁盘.Flash等存储设备划分为若干个分区,在不同分区存放不

嵌入式学习笔记104-uboot_1.1.6移植(4)

前面的4篇uboot博文基本概括了uboot的整体flow,现在使能支持启动linux,至此之前请先阅读<嵌入式学习笔记200-Linux kernel初体验>和<嵌入式学习笔记201-Linux kernel动起来>.准备kernel的镜像文件才可以立马检测uboot是否能够启动kernel.在u-boot-1.1.6\include\configs\tq2440.h 最后添加如下几行code: /****************** boot kernel setup ****