嵌入式linux系統學習筆記

ARM 222瀏覽

嵌入式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) 通過網絡共享文件(開發階段)

七星彩走势图2元网官网