製作yaffs2根檔案系統
現在大部分開發板都可以支援yaffs2 檔案系統,它是專門針對嵌入式裝置,特別是使用nand flash作為儲存器的嵌入式裝置而建立的一種檔案系統,早先的yaffs僅支援小頁(512byte/page)的nand flash,使用 yaffs2 就可以支援大頁的 nand flash。
所謂製作根檔案系統,就是建立各個目錄,並且在裡面建立各種檔案,比如在/bin,/sbin/目錄下存放各種可執行的程式,在/etc目錄下存放配置檔案,在/lib目錄下存放庫檔案,下面就開始檔案系統的製作。
可以從http://www.busybox.net/downloads/下載Busybox-1.13.3。
1.根檔案系統的目錄結構
bin 存放所有使用者都可以使用的、基本的命令。
sbin 存放的是基本的系統命令,它們用於啟動系統、修復系統等。
usr 裡面存放的是共享、只讀的程式和資料。
proc 這是個空目錄,常作為proc檔案系統的掛載點。
dev 該目錄存放裝置檔案和其它特殊檔案。
etc 存放系統配置檔案,包括啟動檔案。
lib 存放共享庫和可載入塊(即驅動程式),共享庫用於啟動系統、執行根檔案系統中的可執行程式。
boot 引導載入程式使用的靜態檔案
home 使用者主目錄,包括供服務賬號鎖使用的主目錄,如FTP
mnt 用於臨時掛接某個檔案系統的掛接點,通常是空目錄。也可以在裡面建立空的子目錄。
opt 給主機額外安裝軟體所擺放的目錄。
root root使用者的主目錄
tmp 存放臨時檔案,通常是空目錄。
var 存放可變的資料。
2.建立根檔案系統的目錄
建立一個shell指令碼檔案create_filesystem用於構建根檔案系統的各個目錄。執行./ create_filesystem nfsroot即可在當前目錄下建立根檔案系統的目錄nfsroot,其指令碼的內容如下:
#!/bin/sh |
改變了tmp目錄的使用權,讓它開啟sticky位,為tmp目錄的使用權開啟此位,可確保tmp目錄底下建立的檔案,只有建立它的使用者有權刪除。
執行chmod +x create_filesystem新增可執行許可權。
3.建立動態的連結庫
動態連結庫直接使用友善之臂的,首先,下載友善之臂的根檔案系統解壓後得到root_qtopia,把該檔案下的lib下的檔案全部複製到我們自己建立的lib/資料夾下。cp –rd root_qtopia/lib/* nfsroot/lib/
4.編譯和安裝Busybox
Bosybox 是一個遵循GPL v2協議的開源專案,它在編寫過程總對檔案大小進行優化,並考慮了系統資源有限(比如記憶體等)的情況,使用 Busybox 可以自動生成根檔案系統所需的bin、sbin、usr 目錄和 linuxrc 檔案。
解壓Busybox,然後修改該目錄下的makefile檔案,修改平臺為arm平臺,修改編譯器為預設的交叉編譯器
CROSS_COMPILE ?=arm-linux- //大約在164行
ARCH ?=arm //大約在189行
config %config: scripts_basic outputmakefile FORCE改為 %config: scripts_basic outputmakefile FORCE
/ %/: prepare scripts FORCE 改為 %/: prepare scripts FORCE
配置busybox,在busybox-1.13.3目錄下,這裡我們只關心改動的地方。執行make menuconfig,其各個選項的配置如下(只列出更改的):
(1)Busybox Settings--->
BuildOptions--->
[*]Build BusyBox as a static binary(no shared libs)
BusyboxLibrary Tuning --->
(1024)Maximumlength of input
[*]vi-style line editing commands
[*]Fancyshell prompts
(2)Linux System Utilities --->
[*]Support/etc/mdev.conf
[*]Supportcommand execution at device addition/removal
(3) Linux Module Utilities--->
[ ]simplified modutils
[*]insmod
[*]rmmod
[*]lsmod
[*]modprobe
5.編譯busybox
編譯busybox到指定目錄: make CONFIG_PREFIX= nfsroot install
即:執行make CONFIG_PREFIX=根檔案系統目錄 install
在rootfs目錄下會生成目錄bin、sbin、usr和檔案linuxrc的內容。
6.建立etc目錄
init程序根據/etc/inittab檔案來建立其他的子程序,比如呼叫指令碼檔案配置IP地址,掛載其他的檔案系統,最後啟動shell等。
(1)拷貝主機etc目錄下的passwd、group、shadow檔案到rootfs/etc目錄下。
(2)在etc/下建立mdev.conf檔案
內容為:
# system all-writable devices full 0:0 0666 null 0:0 0666 ptmx 0:0 0666 random 0:0 0666 tty 0:0 0666 zero 0:0 0666 # console devices tty[0-9]* 0:5 0660 vc/[0-9]* 0:5 0660 # serial port devices s3c2410_serial0 0:5 0666 =ttySAC0 s3c2410_serial1 0:5 0666 =ttySAC1 s3c2410_serial2 0:5 0666 =ttySAC2 s3c2410_serial3 0:5 0666 =ttySAC3 # loop devices loop[0-9]* 0:0 0660 =loop/ # i2c devices i2c-0 0:0 0666 =i2c/0 i2c-1 0:0 0666 =i2c/1 # frame buffer devices fb[0-9] 0:0 0666 # input devices mice 0:0 0660 =input/ mouse.* 0:0 0660 =input/ event.* 0:0 0660 =input/ ts.* 0:0 0660 =input/ # rtc devices rtc0 0:0 0644 >rtc rtc[1-9] 0:0 0644 # misc devices mmcblk0p1 0:0 0600 =sdcard */bin/hotplug.sh sda1 0:0 0600 =udisk * /bin/hotplug.sh |
(3)etc/inittab檔案:仿照Busybox的examples/inittab檔案,在etc/目錄下建立一個inittab檔案,寫上以下內容:
#etc/inittab ::sysinit:/etc/init.d/rcS ::askfirst:-/bin/sh ::ctrlaltdel:/sbin/reboot ::shutdown:/bin/umount -a -r |
(4)建立etc/init.d/rcS檔案:
這是一個指令碼檔案,可以在裡面新增自動執行的命令
#!/bin/sh PATH=/sbin:/bin:/usr/sbin:/usr/bin runlevel=S//執行的級別 prevlevel=N umask 022 //資料夾的掩碼
|
最後,還要改變它的屬性,使它具有可執行許可權 chmod +x etc/init.d/rcS
(5)etc/sysconfig目錄下新建檔案HOSTNAME,內容為“mini2440”。
(6)建立etc/fstab檔案:
內容如下,表示執行完,“mount -a”命令後將掛載proc,tmpfs等包含在該檔案中的所有的檔案系統。
#device mount-point type option dump fsck order |
(7)建立etc/profile檔案:
#Ash profile |
7. 製作根檔案系統映像檔案
使用命令mkyaffs2image-128Mrootfs rootfs.yaffs2生成根檔案系統映像檔案。
把生成的rootsfs.yassf2檔案下載到nandFlash中的根檔案系統區。然後從NANDFlash啟動可以看到啟動資訊。
相關推薦
製作yaffs2根檔案系統
現在大部分開發板都可以支援yaffs2 檔案系統,它是專門針對嵌入式裝置,特別是使用nand flash作為儲存器的嵌入式裝置而建立的一種檔案系統,早先的yaffs僅支援小頁(512byte/page)的nand flash,使用 yaffs2 就可以支援大頁的 nand
一步一步製作yaffs/yaffs2根檔案系統(四)---構建etc、dev等剩餘目錄
開發環境:Ubuntu 12.04 開發板:mini2440 256M NandFlash 64M SDRAM
一步一步製作yaffs/yaffs2根檔案系統--生成yaffs/yaffs2映象檔案及下載到開發板
開發環境:Ubuntu 12.04 開發板:mini2440 256M NandFlash 64M SDRAM 交叉編譯器:arm-linux-
一步一步製作yaffs/yaffs2根檔案系統(一)
開發環境:Ubuntu 12.04 開發板:mini2440 256M NandFlash 64M SDRAM
#嵌入式Linux最小系統移植# yaffs2根檔案系統移植出錯記錄
busybox官網地址: 本次移植採用的busybox版本: busybox-1.26.0.tar.bz2 交叉編譯工具鏈版本: $ arm-linux-gcc -v gcc version 4.4.3 (ctng-1.6.1) 1
基於busybox製作mini2440根檔案系統及使用nfs掛載
常見的檔案系統有yaffs2, jffs2,他們是適用於根檔案系統映象存在於NAND Flash上的情況。而傳統的Linux EXT2/EXT3檔案系統格式適用於傳統的block裝置,比如SD卡或者硬碟。 cramfs同時適用於以上兩種情況。其不管採用哪種格式,核心都必
製作ubuntu根檔案系統
參考文件: http://blog.csdn.net/mountzf/article/details/51707853 http://developer.t-firefly.com/thread-10963-1-1.html http://rockchip.wikidot.
JZ2440:yaffs2 格式根檔案系統製作
YAFFS目前有yaffs、yaffs2兩個版本,一般來說,yaffs對小頁(512B+16B/頁)的NandFlash(68M)有很好的支援,yaffs2對大頁(2K+64B/頁)的NandFlash(128M、256M或者更大)支援更好。 我的 nandflash
debian9安裝busybox,並製作根檔案系統(2)
3,製作根檔案系統 在上文debian9安裝busybox,並製作根檔案系統(1)中輸入make install命令進行安裝,busybox會自動將rootfs根檔案系統安裝到之前設定的目錄下,之前我設定的是/home/guoyanzhang/rootfs,進入之後, ##ls -l drw
debian9安裝busybox,並製作根檔案系統(1)
1,構建根檔案目錄 ##mkdir rootfs ##mkdir root home bin sbin etc dev usr lib tmp mnt sys proc ##mkdir usr/lib usr/bin 2,安裝busybox 2.1,下載busybox安裝包,https
Linux根檔案系統製作與各種掛載方式的實現
Linux根檔案系統的製作 什麼是檔案系統 計算機的檔案系統是一種儲存和組織計算機資料的方法,它使得對其訪問和查詢變得容易,檔案系統使用檔案和樹形目錄的抽象邏輯概念代替了硬碟和光碟等物理裝置使用資料塊的概念,使用者使用檔案系統來儲存資料不必關心資料實際儲存在硬碟(或者光碟)的地址為多少的資料
busybox製作最小根檔案系統
接上篇,qemu啟動linux核心 ,啟動核心失敗後,開始製作一個最小的ramdisk根檔案系統。 根檔案系統製作工具busybox,還是走大眾路線吧。原始碼包下載地址:https://busybox.net/ 直接進入busybox的根目錄,準備編譯,使用預設配置檔案defconfig,
Linux:一步一步製作自己的根檔案系統
一步一步製作自己的根檔案系統 在這裡,實驗過程使用的是九鼎提供的S5PV210開發板,實驗核心同樣來自其官方資料盤中Linux資料包中的的QT4.8中的相關原始碼,實驗的NFS檔案系統在虛擬中的Ubuntu14.04中建立. 建立檔案系統根目錄 root
利用busybox和mkfs.jffs2製作根檔案系統
PC機系統:Ubuntu 12.04 LTS 目標板:海思3518C Flash型別:SPI Flash(16M) Busybox:BusyBox-1.16.1.tgz 嵌入式交叉編譯工具鏈:arm-hisiv100nptl-linux-gcc 目標
Linux核心移植和根檔案系統製作(詳細步驟精講)
start_kernel是所有 Linux 平臺進入系統核心初始化後的入口函式,它主要完成剩餘的與硬體平臺相關的初始化工作,在進行一系列與核心相關的初始化後,呼叫第一個使用者程序-init 程序並等待使用者程序的執行,這樣整個 Linux 核心便啟動完畢。該函式所做的具體工作有:呼叫 setup_arch
cramfs根檔案系統製作啟動總結
cramfs啟動根檔案系統 Cramfs:Compressed ROM File System Cramfs是Linux的創始人 Linus Torvalds參與開發的一種只讀的壓縮檔案系統。它也基於MTD驅動程式。 cramfs擁有以下一些特性: 採用實時解壓
移植u-boot-2011.03到S3C2440(utu2440)的方法與步驟###8. u-boot引導啟動nand flash中核心和根檔案系統cramfs和使用者檔案系統yaffs2支援
rivers/rtc/hctosys.c: unable to open rtc device (rtc0)uncorrectable error : <3>uncorrectable error : <3>end_request: I/O error, dev mtdblock2,
openwrt的編譯系統是如何製作根檔案系統的
答:分析以下makefile即可獲取整個過程 以nxp layerscape系統的編譯過程為例 1.分析target/linux/layerscape/image/Makefile的最後一句,這是一個好的開端 $(eval $(call BuildImage)) 2.巨集Bu
最新busybox-1.28.1製作根檔案系統
本文適配fs4412開發板,使用的核心為linux4.9.9。 1.原始碼下載 Busybox的官方原始碼下載路徑為: http://busybox.net/downloads/ 可以下載最新的busybox-1.28.1 2.解壓原始碼 tar
移植核心學習筆記2-----修改分割槽及製作根檔案系統
1、製作分割槽 (1)分析 在上節實驗中出現以下問題:無法掛載根檔案系統 在以前u-boot燒寫檔案系統時是燒寫到某個地方,以前的分割槽是下面那樣劃分的,劃分為4個分割槽,但是上面有8個分割槽 分割槽修改參考(分割槽是在程式碼裡面寫死的,u-boot怎麼設定不會影響核心