定制linux内核并编译busybox

下载内核:https://www.kernel.org/

下载busybox:http://www.busybox.net/

下载到家目录解压源码包到/usr/src目录下:

到/usr/src目录下创建软连接:

准备编译环境:

yum安装包组 “ServerPlatform Development” 和“Development tools”

yum groupinstall"Server Platform Development" "Development tools"

到linux目录下执行make allnoconfig清空所有内核选项然后执行make menuconfig

打开配置界面后根据自己硬件选择适合的驱动,要支持cpu,支持多线程,支持scsi接口,支持文件系统,支持TCP/IP协议栈,支持键盘等线性设备,根据自己的需求选择。

选择好后保存退出,执行makebzImage编译内核可用 –j # 开启多线编译程速度更快

编译busybox:

cd /usr/src/busybox

make menuconfig

进入配置界面 选中Busybox Settings--->Build Options  ---> BuildBusyBox as a static binary (no shared libs)

其余选项可以保持默认。

yum安装glibc-static包

yuminstall glibc-static  然后执行make编译busybox

准备第二块硬盘然后将编译好的内核和busybox放到指定目录下

第二块硬盘分两个区做成ext4文件系统并挂载到/mnt/boot和/mnt/sysroot下:

mkfs -t ext4 /dev/sdb1  创建文件系统

mkfs -t ext4 /dev/sdb2  创建文件系统

mkdir /mnt/boot       创建目录

mkdir /mnt/sysroot     创建目录

mount /dev/sdb1 /mnt/boot    挂载分区1

mount /dev/sdb2 /mnt/sysroot  挂载分区2

为第二块硬盘创建grub:

将内核复制到/dev/sdb1,busybox复制到/dev/sdb2并创建必要的目录

cp /usr/src/linux/arch/x86/boot/bzImage /mnt/boot

cp/usr/src/busybox/_install/* /mnt/sysroot

创建grub.conf文件

vim/mnt/boot/grub/grub.conf

内容如下:

default=0

timeout=5

title mylinux

root (hd0,0)

kernel /bzImage ro root=/dev/sda2init=/sbin/init

创建inittab文件 vim /mnt/sysroot/etc/inittab

创建rc.sysinit文件 vim/mnt/sysroot/etc/rc.d/rc.sysinit

时间: 2024-11-08 21:31:00

定制linux内核并编译busybox的相关文章

启动流程排错,自制linux内核,编译内核

CentOS 6启动流程: POST --> Boot Sequence(BIOS) --> Boot Loader --> Kernel(ramdisk) --> rootfs--> switchroot--> /sbin/init-->(/etc/inittab, /etc/init/*.conf) --> 设定默认运行级别--> 系统初始化脚本rc.sysinit--> 关闭或启动对应级别的服务--> 启动终端 grub legacy

定制linux内核+Busybox+dropbear实现远程登录

简单介绍下各阶段工作流程: POST:开机后,加载BIOS信息(里面包含各硬件的相关信息) BIOS(boot sequence):选择(设备)启动项,然后读取MBR信息 Boot Loader:初始化硬件.建立内存空间映射,读取grub配置文件 Initrd:加载内核(硬件检测及初始化.挂载根文件系统)0→启动第一个进程init→该程序读出/etc/inittab./etc/rc.d/rc.sysinit./etc/rc.d/rc.local文件 Shell:启动/bin/login程序,进入

linux 内核手动编译

手动编译内核 1.uname -r 先查看内核版本 2.yum groupinstall "Development Libraries" " Development Tools" 安装开发工具和库文件 可先yum grouplist 来查看 3.下载kernel www.kernel.org 4. tar xf linux-2.6.28.10.tar.gz -C/usr/src/ 5.cd /usr/src 6.ln -sv linux-2.6.28.10 linu

【Linux内核】编译与配置内核(x86)

(1)配置内核 如何配置内核 1. make config 基于文本的交互式配置 2. make menuconfig 基于文本模式的菜单型配置 使用make menuconfig 配置内核 在配置中<>,[] <>可以用三种选择空白,*或者M,[]可以用两种选择,空白和*. 空白是不选择,*表示选择并编译进内核映像文件,M会编译成内核模块. 配置结果保存在源码根目录的 .config 文件中(2)编译内核 1.编译内核 make zImage make bzImage zImag

关于linux内核无法编译成模块的解决方法

在做驱动时,往往想编译成模块,让后加载来使用,这样灵活性较高,无需重新编译内核. 然后在使用供应商提供的内核时,往往无法编译成内核.也就是说把宏设置为y,编译进内核没有问题,但是设置成m编译成模块却不行.检查很多地方都不行,实际上这个问题很简单,可就这个简单的问题,搞了我一天,真心伤啊,这里做个记录做谨记. 解决的办法很简单,看看在执行内核make的时候是否添加了modules参数,如下面的形式: make -C $(KDIR) M=$(PWD) modules ARCH=arm CROSS_C

Linux 内核配置编译

1.make distclean 2.make menuconfig 3.make bzImage 4.make modules 5.make modules_install

linux内核的配置机制及其编译过程

linux内核的配置机制及其编译过程 国嵌第一天第三节:讲解的是内核在X86平台上的配置.安装过程,制作自己的Linux系统,并双系统启动. <Linux系统移植>第四章 http://blog.csdn.net/zhengmeifu/article/details/7682373 Linux内核具有可定制的特点,具体步骤如下: 1.1.1 配置系统的基本结构 Linux内核的配置系统由三个部分组成,分别是: 1.Makefile:分布在 Linux 内核源代码根目录及各层目录中,定义 Lin

linux内核编译与开发

一.Linux内核简介linux kernel map: linux 系统体系结构: linux kernel体系结构: arm有7种工作模式,x86也实现了4个不同级别RING0-RING3,RING0级别最高, 这样linux用户代码运行在RING3下,内核运行在RING0,这样系统本身就得到了 充分的保护 用户空间(用户模式)转到内核空间(系统模式)方法: ·系统调用 ·硬件中断 linux kernel 体系结构: 虚拟文件系统VFS: VFS(虚拟文件系统)隐藏各种文件系统的具体细节,

编译Linux内核

这篇文章的目的是帮助理解如何编译一版Linux内核.熟悉Kconfig KBuild工具.无论是自己修改自己正在使用linux内核还是做嵌入式的交叉编译,都会有一些帮助. 内核编译体系 如果大家接触过一些Linux下的开源软件,就会知道它们使用 autotools 来进行配置及编译.通过执行./config --> make --> make install 命令来编译源代码.Linux内核的编译也需要先配置再编译.配置使用 Kconfig , 编译使用 KBuild , 这两个工具支撑起了L