日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

使用Busybox构造cramfs根文件系统

發布時間:2023/12/10 windows 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用Busybox构造cramfs根文件系统 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
使用Busybox構造cramfs根文件系統

11.1、下載Busybox,如果系統中沒有mkcramfs工具則還要下載mkcramfs壓縮工具。本文件系統使用Busybox-1.10.1cramfs-1.1。壓縮文件Busybox-1.10.1.tar.bz2cramfs-1.1.tar.gz

22.解壓文件:

tar jxvf Busybox-1.10.1.tar.bz2

tar zxvf cramfs-1.1.tar.gz

2、進入解包之后生成cramfs-1.1目錄,執行編譯命令:

make

編譯完成之后,會生成mkcramfscramfsck兩個工具,其中mkcramfs工具是用來創建cramfs文件系統的,而cramfsck工具則用來進行cramfs文件系統的釋放以及檢查。如果該目錄下已有這兩個可執行程序,則無需編譯,直接使用。

3.修改Makefile文件

ARM板為例,打開Makefile文件,找到ARCH?=CROSS_COMPILE?=兩項,修改為

ARCH ?= arm

CROSS_COMPILE ?=arm-linux- //arm-linux-為交叉編譯器在環境變量中的目錄前綴,視自己交叉編譯環境而定

4.進入解壓后的Busybox-1.10.1目錄,運行make menuconfigmake gconfig進行配置

在進行配置時有幾項需要注意:

?Build Options>

Build BusyBox as a static binary (no shared libs)

Force NOMMU build

Build shared libbusybox

Build with Large File Support (for accessing file>2GB)

如果選擇 Build BusyBox as a static binary (no shared libs)方式進行編譯時,所需的庫已經與程序靜態地鏈接在一起,這些程序不需要額外的庫就可以單獨運行,但是自己編寫的程序在文件系統上運行必須采用靜態編譯,否則會報諸如:bin/sh: hello :not found的錯誤。

靜態編譯如:

arm-linux-gcc–static hello.c –o hello

 如果選擇Build shared libbusybox方式進行編譯時,要將交叉編譯的動態庫或符號鏈接復制到對應的目錄中,否則程序不能運行。同時在配置時應去掉Build shared libbusybox目錄下的兩項:如下 

Build shared libbusybox>

 Producebinary for each applet,linked against libbusybox

Produceadditional busybox binary linked against libbusybox

同時去掉

Build with Large File Support (for accessing file>2GB)

否則編譯會報錯。

?一定要勾選上如下配置:

Init Utilities>

(*) init

(*) Supporting reading an inittab file//支技init進程讀取/etc/inittab配置文件。

(*) Supporting running commands with controlling-tty//使busybox在真實的串口設備中運行命令行,不使用可能會報類似與:shcan’t access ttyjob control turned off的錯誤。

其它基本可按默認配置。

5.執行

make

編譯完成后執行

make install

 則在Busybox-1.10.1目錄下有_install這個目錄,這正是我們想要的。

66. _install目錄下已經有三個包含應用程序的目錄:binsbinusr和腳本linuxrc,注意此linuxrc不要隨便換掉,就用此linuxrc

在此_install目錄下創建其它幾個需要的目錄,如下

mkdir etc dev proc tmp lib var sys

7.轉到dev目錄下創建設備節點

mknod ram0 b 1 0

mknod-m 660 console c 51

mknod-m 660 null c 1 3

mknod-m 660 zero c 1 3

mknod-m 666 ttySAC0 c 204 64

8.編寫腳本,這一點很重要,沒寫好或腳本有錯誤,文件系統都起不來。

轉到etc目錄,編寫inittab腳本,內容如下:

# Startup the system

null::sysinit: /bin/mount –o remount,rw/

null::sysinit: /bin/mount –t procproc /proc

null::sysinit: /bin/mount –a

console::sysinit: /etc/init.d/rcS

ttySAC0::respawn: /bin/sh

9.編寫掛載表fstab

proc/proc proc defaults 0 0

sysfs/sys sysfs defaults 0 0

none/dev/pts devpts mod=0622 0 0

tmpfs/dev/shm tmpfs defaults 0 0

10.etc下創建目錄init.d

cd init.d

創建腳本rcS

內容如下:

# /bin/sh

保存,并修改rcS的權限,否則會出現Cannot run ‘/etc/init.d/rcS’:Permission denied的錯誤:

chmod775 rcS

1111.生成文件系統映像。

11、./mkcramfs _install rootfs.cramfs

至此,文件系統制作完畢。
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的使用Busybox构造cramfs根文件系统的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。