嵌入式linux内核和根目录制作
系统组成:
Bootloader, Boot parameters, Kernel, Root filesystem
嵌入式linux系统有linux内核与根文件系统两部分构成,两者缺一不可。
内核制作:
1:清除原有配置与中间文件
X86:make distclean
arm:make distclean
2 配置内核(copy其他类似的配置文件为.config)
x86:make menuconfig
arm:make menuconfig ARCH=arm /* nfs与ramdisk启动的区别 */
3 编译内核
x86:make bzImage
arm:make uImage ARCH=arm CROSS_COMPILE=arm-linux-
/***********************************************************************/
/***********************************************************************/
根文件系统制作:
根文件系统是linux启动时使用的第一个文件系统。没有根文件系统,linux将无法
正常启动。
根文件系统由一系列目录组成,目录中包含了应用程序,C库,以及相关的配置文件
。
1 创建根文件系统目录
mkdir rootfs
cd rootfs
mkdir bin bin dev etc lib proc sbin sys usr mnt tmp var
mkdir usr/bin usr/lib usr/sbin lib/modules
2 创建设备文件
cd dev/
mknod -m 666 console c 5 1
mknod -m 666 null c 1 3
3 安装/etc
tar etc.tar.gz -C /xxx/rootfs /* /etc下的文件一般不会发生改变 */
4 编译内核模块
进入linux内核目录(linux-2.6.29)
make modules ARCH=arm CROSS_COMPILE=arm-linux-
5 安装内核模块
make modules_install ARCH=arm INSTALL_MOD_PATH=/xxx/rootfs
6 配置busybox
进入busybox目录执行
make menuconfig
a 进入Busybox Setting --
build Options --
* 选中"Build busybox as a static binary",静态链接
* Cross Compiler prefix(arm-linux-)
Installation Options --
* 选中"Don't usr/usr", 选中该项可以避免busybox被安装到宿主系统的/usr目录
下,破坏宿主系统
*Busybox Installation Prefix(/xxx/rootfs)
该选项表明编译后的busybox的安装位置
7 编译,安装busybox
*make ARCH=arm CROSS_COMPILE=arm-linux-
*make install
nfs启动:CONFIG_CMDLINE="root=/dev/nfs rw
nfsroot=192.168.1.103:/nfsroot/rootfs ip=192.168.1.230 console=ttySAC0
mem=64M"
ramdisk启动:CONFIG_CMDLINE="root=/dev/ram rw console=ttySAC0 mem=64M"
嵌入式linux内核和根目录制作的更多相关文章
- 制作嵌入式linux内核
拿到一个嵌入式linux内核代码,首先make distclean 接下来,如果在x86平台,就直接make menuconfig,如果是在ARM平台,就直接make menuconfig ARCH= ...
- 嵌入式Linux内核+根文件系统构建工具-Buildroot 快速入手指导【转】
本文转载自:https://my.oschina.net/freeblues/blog/596448 嵌入式Linux内核+根文件系统构建工具-Buildroot 快速入手指导 buildroot 是 ...
- 嵌入式Linux内核制作【转】
本文转载自:http://blog.csdn.net/coding__madman/article/details/51291316 1. Linux体系结构 从整体上来分,linux可以分为User ...
- 嵌入式linux内核制作、根文件系统制作
嵌入式系统构成: 主要由bootloader.kernel.以及根文件系统三部分组成. 内核制作步骤: 制作嵌入式平台使用的linux内核制作方法与pc平台上的linux内核基本一致 1.清除原有配置 ...
- [国嵌攻略][100][嵌入式Linux内核制作]
Linux内核制作步骤 1.清除原有配置 make distclean 2.配置内核 选择一个已有的配置文件简化配置 make menuconfig ARCH=arm 3.编译内核 ARCH指明处理器 ...
- 嵌入式linux内核是什么?
linux内核是一种可以被内核动态加载(insmode)和卸载(rmmod)的可执行二进制代码 最简单的内核 #include <linux/module.h> #include < ...
- 嵌入式Linux内核tasklet机制(附实测代码)
Linux 中断编程分为中断顶半部,中断底半部 中断顶半部: 做紧急,耗时短的事情,同时还启动中断底半部. 中断底半部: 做耗时的事件,这个事件在执行过程可以被中断. 中断底半部实现方法: taskl ...
- 【内核】嵌入式linux内核的五个子系统
Perface Linux内核主要由进程调度(SCHED).内存管理(MM).虚拟文件系统(VFS).网络接口(NET)和进程间通信(IPC)5个子系统组成,如图1所示. 图1 Linux内核的组成部 ...
- 【总结】嵌入式linux内核中Makefile、Kconfig、.config的关系及增加开机Hello World【转】
本文转载自:http://blog.csdn.net/fengyuwuzu0519/article/details/73772109 为了弄清内核的组织结构,我们先来实现下面这个简单的例子. 一.增加 ...
随机推荐
- Bootstrap – 1.认识
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...
- django orm如何作一个优雅一点的filter?
如果有N多fitler条件, 单独放在一个长语句里显然不好看. 还好, django支持字典方式的过滤条件, 写法大约与单独的长语里差不多. 如下: def get_queryset(self): f ...
- 应用nslookup命令查看A记录、MX记录、CNAME记录和NS记录
https://blog.csdn.net/qq_38058202/article/details/80468688
- System.Net.Mail的应用,后端发送邮件
private void btn_send_Click(object sender, EventArgs e) { var emailAcount = ConfigurationManager.App ...
- Js~对数组的操作
在工作中可能用的不多,但一些特殊的场合还是会用到,所以在这里,把JS的数组操作总结一下,分享给大家! Array 对象 Array 对象用于在单个的变量中存储多个值. 创建 Array 对象的语法: ...
- Python全栈开发之2、运算符与基本数据结构
运算符 一.算数元算: 读者可以跟着我按照下面的代码重新写一遍,其中需要注意的是,使用除的话,在python3中可以直接使用,结果是4没有任何问题,但是在python2中使用的话,则不行,比如 9/2 ...
- Java 如何获取系统时间
Java 如何获取系统时间 import java.text.SimpleDateFormat; import java.util.Date; public class Test { public s ...
- JQuery 分割字符串
JQuery 分割字符串 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...
- idea导入或者检出项目时发现编辑器左侧无法显示项目目录结构
按下列步骤操作: 1. 关闭IDEA, 2.然后删除项目文件夹下的.idea文件夹 3.重新用IDEA工具打开项目
- C++ 四种显示转换
转自:http://www.jellythink.com/archives/205 (果冻想) 前言 这篇文章总结的是C++中的类型转换,这些小的知识点,有的时候,自己不是很注意,但是在实际开发中 ...