嵌入式Linux系统由 Linux内核 + 根文件系统 两部分组成

一个完整的嵌入式Linux系统组成:bootloader + boot parameters + kernel + root filesystem
嵌入式Linux系统使用的是Linux内核,制作方法基本和X86平台的Linux内核一致,下面介绍制作运行于micro2440开发板的内核和根文件系统。
嵌入式Linux内核的制作:
1,到www.kernel.org下载源代码,解压,进入内核源代码目录。
2,清除原有的配置与中间文件
x86: make distclean
arm: make distclean
3,配置内核:
x86: make menuconfig ARCH=i386
arm: make menuconfig ARCH=arm //配置完毕在内核源代码目录生成.config文件,建议参考arch/arm/configs/s3c2410_defconfig .config、
4,编译内核:
x86: make bzImage
arm: make uImage ARCH=arm CROSS_COMPILE=arm-linux- //编译成功在arch/arm/boot/目录下产生zImage内核映像
5,使用tftp下载到开发板运行即可
 
 
 
根文件系统的制作:
 
根文件系统是Linux启动时使用的第一个文件系统,就像PC机上的文件目录
 
6,创建根文件系统的目录(目录名随便取)
mkdir rootfs
cd rootfs
mkdir bin dev etc lib proc sbin sys usr mnt tmp var
mkdir usr/bin usr/lib usr/sbin lib/modules
 
7,创建设备文件
cd dev/
mknod -m 666 console c 5 1
mknod -m 666 null c 1 3
 
8,安装/etc(随便拷贝点/etc/目录下的文件到该etc目录下)
 
9,编译内核模块
cd Linux 2.6.29 //进入Linux内核目录
make modules ARCH=arm CORSS_COMPILE=arm-linux-
 
10,安装内核模块(把编译好的内核模块拷贝到创建的这个文件系统)
make modules_install ARCH=arm INSTALL_MOD_PATH=/***/rootfs //生成rootfs/lib/modules/2.6.29.4-FriendlyARM
 
 
busybox的配置-编译-安装:
 
11,配置busybox(Linux下面是用的一整套的命令和工具的集合)
解压busybox,进入busybox根目录
make menuconfig
 
选择需要使用的工具
 
进入 busybox settings->build option->
选中 “build busybox as a static binary”,静态链接
更改Cross Compiler prefix 为(arm-linux-)
 
进入installation option->
选中“do not use /usr”,可以避免busybox被安装到宿主系统的/usr目录下,破坏宿主系统
更改busybox installation prefix位置为(/xxx/rootfs)
 
12,编译,安装busybox(把相关的命令/文件拷贝到这个正在创建的文件系统)
在busybox根目录下
make ARCH=arm CROSS_COMPILE=arm-linux- /*等...........等*/
make install //执行的是busybox这个可执行文件/*rootfs/bin/目录下多了好多文件*/
 
13,至此根文件系统制作完成
 
 
 
由根文件系统制作ramdisk
 
 
14,需要一个软件genext2fs,为制作ramdisk的工具,
下载地址http://download.chinaunix.net/download.php?id=6874&ResourceID=3625
安装方法:
解压genext2fs
#cd genext2fs
#./configure
#make
#make install
15,利用genext2fs制作ramdisk
#genext2fs -b 8192 -d /***/rootfs ramdisk //根文件系统的所有内容变成了ramdisk=8192=8MB
gzip -9 -f ramdisk //对ramdisk进行压缩,将此压缩文件放到开发板即 可作为根文件系统启动起来
开发板可运行的文件系统:
NFS文件系统:文件系统在PC机上,开放给开发板运行
ramdisk文件系统:下载到开发板的内存中运行
Linux支持的文件系统:
ext2,ext3,vfat,jffs,romfs,nfs,这些不同的文件系统由虚拟文件系统VFS统一管理
嵌入式Linux支持的文件系统:
jffs2,yaffs,cramfs,ramdisk,ramfs
jffs2:用于NorFlash上,可读写,支持数据压缩
yaffs2:用于NandFlash上,不支持数据压缩,可读写
cramfs:既可以用于NorFlash上,又可以用于NandFlash上,只读,支持数据压缩
ramdisk:用一部分固定大小的内存作为分区来使用,并非是一个实际的文件系统,方便内核启动
NFS:文件系统在PC机上,通过网络共享

嵌入式Linux内核,文件系统的制作相关推荐

  1. 制作嵌入式Linux根文件系统

    文章目录 1. 根文件系统布局 2. 使用BusyBox生成二进制工具 2-1. 获取BusyBox源码 2-2. 配置BusyBox 2-2-1. 选择编译静态库 2-2-2. 选择交叉编译工具链 ...

  2. 采用busybox的嵌入式Linux根文件系统的的制作方法

    在嵌入式Linux操作系统越中文件系统作为操作系统的重要组成部分,用于控制对数据文件及设备的存取,提供对文件和目录的分层组织形式,数据缓冲以及对文件存取权限的控制.根文件系统一直是Linux系统不可或 ...

  3. 嵌入式Linux根文件系统制作

    嵌入式Linux根文件系统制作 一.根文件系统简介 根文件系统首先是一种文件系统,该文件系统不仅具有普通文件系统的存储数据文件的功能,但是相对于普通的文件系统而言它还是内核启动时所挂载(mount)的 ...

  4. 嵌入式Linux内核和文件系统,在IXP435上移植嵌入式Linux内核和根文件系统

    简要介绍如何在IXP435上移植嵌入式Linux内核和根文件系统 1.安装交叉编译工具 为什么要先安装交叉编译工具?由于我们的Linux操作系统是安装在嵌入式处理器平台上的,需要在主机上编译出开发板需 ...

  5. 嵌入式烧写Linux内核,嵌入式linux 内核和根文件系统烧写方式简介

    总体来说,嵌入式Linux内核和根文件的引导与PC机差不多. 嵌入式linux内核和根文件系统可以存放在各种可能的存储设备中,一般情况下我们将内核和根文件系统直接烧入到Flash中(包括NOR和NAN ...

  6. 构建基本的嵌入式Linux根文件系统

    构建基本的嵌入式Linux根文件系统 其实在去年8月份我做系统移植时就构建好了一个可以用的根文件系统,但是那时是跟着别人的<Linux全线移植文档>做的.有些东西我也不清楚,只是跟着做,做 ...

  7. TQ210 —— 嵌入式Linux根文件系统的设计与实现

    嵌入式Linux根文件系统的设计与实现 1.Linux文件系统基本概念 文件系统类型:FAT32.NTFS.EXT2. EXT3. JFFS2. YAFFS2. NFS Linux根文件系统目录结构: ...

  8. 嵌入式 Linux 内核驱动开发【The first day: 36093万字】

    嵌入式 Linux 内核驱动开发[1] 嵌入式 Linux 内核驱动开发前言 第1章 Linux 内核裁剪和定制 [1]Linux 内核开发简介 [2] Linux 源码阅读工具 [1.2.1]Sou ...

  9. 嵌入式linux内核编译感想,嵌入式Linux内核的交叉编译编译-基于2.6.26

    测试环境:Fedora 9 Linux 2.6.26 / gcc 4.3.0 / arm-Linux-gcc 3.4.1 本 文主要介绍如何构建在x86平台上交叉编译各平台上的嵌入式Linux内核.要 ...

  10. 嵌入式linux文件系统格式,嵌入式Linux的文件系统分区及数据读写方法与流程

    本发明涉及Linux系统的数据存储管理领域,特别是涉及一种基于NANDFlash存储器和UBIFS文件系统的嵌入式Linux的文件系统分区及数据读写方法. 背景技术: ::目前Linux操作系统由于源 ...

最新文章

  1. 赔偿谷歌1.8亿美元!前Uber自动驾驶主管被告到破产
  2. 安卓能不能安装jar_Sentaurus TCAD安装之jedit+TCAD宏包
  3. notepad正则表达式替换_正则表达式装逼(实用)指南
  4. numpy基础(part3)--加载文件
  5. python123测验9程序题答案_Django ORM 练习题及答案_python_脚本之家
  6. java获取单击内容,java – 单击菜单链接时,获取元素不是可点击的异常
  7. 《 产品设计思维:电商产品设计全攻略》一一2.3 电子商务的存在形态
  8. zabbix mysql 平台_监控平台-zabbix
  9. 【嵌入式】第一次大作业_记录环境温度并存入数据库
  10. 【Vegas原创】Oracle批量create、Lock user的方法
  11. 【扩频通信】第五章 扩频信号解扩和解调
  12. 小米笔试题(句子反转)
  13. 学习编程从哪里开始比较好呢?有什么推荐?
  14. 两年,从纯小白到腾讯阿里,应届非计算机毕业生的2014互联网求职之路(转)...
  15. BP神经网络实例及代码分析(python+tensorflow实现)
  16. IC岗位详解| 一位合格的模拟版图工程师需要具备哪些能力?
  17. Navicat Premium绿色版安装
  18. 13,python中tkinter模块里的按键事件
  19. 物联网终端安全自动化扫描系统
  20. 【JSS-22双延时时间继电器】

热门文章

  1. 金电容(法拉电容)与可充放电池的相关知识
  2. A Simple Math Problem (矩阵快速幂)
  3. ZeroMQ API(一) 总序
  4. 单例设计模式全局缓存accessToken
  5. 上网爱快?EasyRadius FOR 爱快V2接口测试版正式推出,欢迎广大爱迷们测试噢
  6. c#变量初始化的学习
  7. ORB-SLAM2-建立双目稠密点云(一)
  8. day 22 封装 + property + classmethod + staticmethod
  9. [BZOJ4810][Ynoi2017]由乃的玉米田 莫队+bitset
  10. 分享一款在线less转css的神器