使用Busybox製作最小檔案系統並燒寫入開發板
使用Busybox製作最小檔案系統並燒寫入開發板
實驗環境
交叉編譯平臺 (on VMware14.0,Win10)
交叉編譯鏈 gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf
前提 得到busybox工具包(busybox-1.29.0.tar.bz2)
硬體 迅為開發板i.MX6ULL終結者
實驗目的
使用busybox工具製作檔案系統,並燒寫入開發板測試。
實驗原理
Busybox整合了一百多個最常用linux命令和工具,且其體積較小,編譯速度快,適用於製作嵌入式linux根檔案系統。
實驗過程
1、已獲得busybox原始碼busybox-1.29.0.tar.bz2
拷貝到Ubuntu中,使用命令“tar -vxjf busybox-1.29.0.tar.bz2”,解壓 busybox,
2、檢查交叉編譯鏈:
3、檢查ncurse庫,避免錯誤apt-get install libncurses5-dev
4、修改檔案使支援中文
busybox1.17.0 以後版本對中文的支援進行了限制。要想讓 busybox1.17.0 以上支援中文,需做如下修改。
首先cd到busybox的目錄下,使用命令“vim libbb/printable_string.c”,查詢函式 printable_string,其定義中大於 0x7F 的字元直接被break 掉,或者直接被“?”代替了。因此註釋掉這幾行
:wq儲存退出即可;
然後使用命令“ vim libbb/unicode.c”,查詢函式 unicode_conv_to_printable2,同樣對0x7f後作用的語句註釋掉
:wq儲存退出,只要之後對busybox配置時設定好就可以支援中文了;
5、配置busybox
使用命令“make defconfig ”,即可配置 busybox 為預設配置。
。。。
接著使用make menuconfig命令進入圖形化配置介面配置busybox。
進入seting在“Build Options”欄找到“Cross compiler prefix”,它是指定編譯器來編譯
填入arm-none-linux-gnueabi-
在“— Installation Options ”欄找到“(./_install) Destination path for ‘make install’ (NEW)”。修改安裝地址
選擇“vi-style line editing commands(NEW)”選項;
進入到“Linux Module Utilities —>”空格取消選擇“Simplified modutils”;
回到“Busybox Configuration”介面,進入setting,找到“Support Unicod”和“Check $LC_ALL, $LC_CTYPE and $LANG environment variables”,選中這兩個選項,使能 busybox 的 unicode 編碼以支援中文
然後exit 儲存;
6、編譯busybox
make
make install
編譯成功
cd 到之前設定的安裝目錄下,可以看到已經生成了幾個檔案
7、整理、完善檔案系統
製作的檔案系統還需要新建“dev,etc,lib,mnt,proc,sys,tmp,var”資料夾,使用命令“mkdir dev etc lib mnt proc sys tmp var”
8、進入/etc目錄,新建檔案eth0-setting,並在“eth0-setting”檔案裡輸入下面的內容:
設定了linux的IP以及閘道器等引數;
9、然後儲存並退出“eth0-setting”檔案,使用chmod 755 eth0-setting命令修改檔案許可權;
10、接著在 etc 目錄下用“mkdir init.d”命令建立“init.d”目錄(放置服務指令碼),進入到“init.d”目錄,然後在“init.d”目錄下建立“ifconfig-eth0”檔案,寫入網路配置資訊
:wq儲存退出,chmod 755 ifconfig-eth0更改許可權;
11、新建rcS指令碼,(開機自動執行、批處理設定)寫入內容:
:wq儲存退出,chmod 755 rcS設定許可權;
12、在“etc”目錄下建立檔案“passwd”,輸入下面的內容:
儲存退出,更改許可權755
13、建立檔案profile,輸入一下內容
儲存退出,更改許可權755
14、在etc下建立/rc.d/init.d目錄,並在init.d中新建檔案vi netd,輸入內容:
儲存退出,更改許可權755
15、進到rootfs目錄下的lib,Busybox 編譯生成的二進位制檔案是以動態連結庫的形式執行,所以我們需要拷貝編譯器裡面的庫檔案到“lib”目錄,使用命令
15、進到/rootfs/var,新建目錄lib,lock,log,run,tmp,(mkdir lib lock log run tmp)
16、此時檔案系統已做完,回到/rootfs目錄,使用壓縮命令將檔案系統打包,生成 rootfs.tar.bz2 檔案
17、此時可看到已生成檔案系統映象
燒寫進開發板驗證
1、將上面得到的rootfs.tar.bz2傳到windows,並與檔案樹檔案imx6ul_topeet_nand.dtb,uboot.imx,zImage,一起拷貝到燒寫工具mfgtool的指定資料夾下;
2、把開發板接好OTG線,上電,USB線,將開發板的撥碼開關撥至序列下載模式,啟動mfgtool開啟燒寫,同時在secure CRT觀察開發板情況。
燒寫完畢:
3、將開發板的撥碼開關撥至nand啟動模式,reset;
顯示出之前製作的檔案系統目錄。
實驗完成
相關文章
- 在Linux下製作一個簡單的給ARM開發板使用的檔案系統Linux
- 湃兔更新映象檔案的製作與燒寫
- 根檔案系統簡介與BusyBox構建根檔案系統
- 使用HiBurn燒錄鴻蒙.bin檔案到Hi3861開發板鴻蒙
- TX2系統環境映象製作及燒寫
- [每日電路圖] 12、帶自動燒寫能力的 ESP8266 開發板製作
- 小白自制Linux開發板 五. Debian檔案系統製作,以及WIFI配置、交換分割槽配置LinuxWiFi
- rootfs -根檔案系統製作
- 寫作業系統之開發載入器作業系統
- 14_一鍵燒寫QT程式到開發板QT
- 讀取檔案流並寫入檔案流
- 小白自制Linux開發板 三. Linux核心與檔案系統移植Linux
- i.MX6ULL終結者Linux檔案系統的構建BusyBox構建根檔案系統Linux
- BNB 燃燒代幣模式專案系統開發模式
- 以太橙系統模式開發製作模式
- iOS自定義log並寫入檔案iOS
- 關於瑞芯微RK3568開發板的燒寫方式
- 使用CSS製作火焰燃燒動畫CSS動畫
- 嵌入式linux系統的開發——基於JFSS2檔案系統的分割槽及映象製作Linux
- 森林鏈系統軟體開發製作
- 如何在Ubuntu保留檔案系統和備份當前開發板映象Ubuntu
- 瑞芯微3568開發板實時作業系統作業系統
- 寫作業系統之搭建開發環境作業系統開發環境
- zynq 按照傳統的Linux開發模式製作系統Linux模式
- 使用ISE軟體製作網表檔案
- 寫作業系統之開發引導扇區作業系統
- Matlab製作shp檔案Matlab
- netcdf檔案複製並修改
- BNB燃燒代幣模式專案系統開發原理(原始碼搭建)模式原始碼
- 製作ISO檔案 與 提取ISO檔案
- python如何開啟帶變數名的txt檔案並寫入資料Python變數
- PC 和開發板之間傳輸檔案
- STORM:史丹佛開發創新型寫作系統(翻譯)ORM
- PHP寫入檔案PHP
- Python製作egg檔案包Python
- Linux作業系統支援的檔案系統有哪些?Linux作業系統
- 作業系統——裝置驅動和檔案系統作業系統
- C語言產生正弦波,將資料寫入檔案中並用gnuplot作圖C語言