嵌入式linux系统学习笔记

嵌入式linux内核制作


1 清除原有配置文件与中间文件
x86 make distclean
arm make distclean
2 配置内核
x86 make menuconfig
arm make menuconfig ARCH=arm
3 内核编译
x86 make bzImage
arm make uImage ARCH=arm CROSS_COMPILE=arm-linux-




根文件系统的制作
1 创建目录和文件
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
2 创建设备文件
cd dev/
mknod -m 666 console c 5 1
mknod -m 666 null c 1 3
cd ..
3 安装/etc
tar etc.tar.gz -C /xxx/rootfs
4 编译内核模块
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 settings-->
build options-->
选中build busybox as a static binary (no shared libs)
选中cross corpiler prefix(arm-linux-)
installation options-->
选中don't use/usr
busybox installation prefix(/xxx/rootfs)
注明编译后的busybox的安装位置
7 编译安装
make ARCH=arm CROSS_COMPILE=arm-linux-
make install




嵌入式文件系统
linux支持的文件系统类型:
ext2 ext3 vfat jffs romfs nfs
虚拟文件系统VFS(virtual file system) 为各类文件系统提供一个统一的应用编


程接口


文件系统架构
目录树 用户层
-----------------------------
虚拟文件系统(vfs) 内核层


jffs2 yaffs ramfs
------------------------------
mtd字符设备 mtd块设备 底层驱动

mtd 设备驱动
-------------------------------
nor flash nand flash ram 硬件层






基于flash的文件系统


nor
jffs日志闪存文件系统2(journalling flash file system v2)
可读写、支持数据压缩的日志型文件系统


nand
yaffs/yaffs2(yet another flash file system)不支持数据压缩




cramfs 只读的压缩文件系统






基于ram的文件系统


ramdisk 将一部分固定大小的内存当作块设备为使用
initramfs 类似于tmpfs(产品发布阶段)
nfs(network file system) 通过网络共享文件(开发阶段)

猜你喜欢

转载自retacn-yue.iteye.com/blog/1828393