用BusyBox制作Linux根文件系統

STEP 1:構建目錄結構?

創建根文件系統目錄,主要包括以下目錄
/dev? /etc /lib? /usr? /var /proc /tmp /home /root /mnt /bin? /sbin? /sys?

#mkdir???? /home/rootfs
#cd ? ? ? ?/home/rootfs

#mkdir? dev? etc? lib? usr? var? proc? tmp? home? root? mnt ? sys


STEP 2:??? 使用busybox構建/bin /sbin linuxrc

進入busybox-1.16.1目錄,執行

#make defconfig

#make menuconfig

Busybox Setting ----->
??? Build Options ----->
?? ? ? ?//1選擇將busybox進行靜態編譯
??????? [*]Build BusyBox as a static binary (no shared libs)
??????? //2.指定交叉編譯器為
??????? (/usr/local/arm/4.3.2/bin/arm-linux-)Cross Compiler prefix

Installation Options ----->

??????? //3.選擇上 Don’t use /usr
Busybox Library Tuning--->
??? [*]Username completion
?? ?[*]Fancy shell prompts
??? [*]Query? cursor? position? from? terminal
??????? //4.編譯出的busybox的shell命令解釋器支持顯示當前路徑及主機信息

保存退出

#make???
#make install

在busybox目錄下會看見 _install目錄,里面有/bin /sbin linuxrc三個文件
將這三個目錄或文件拷到第一步所建的rootfs文件夾下。

#cp bin/ sbin/ linuxrc /home/rootfs -ra?

?? 切記一定要帶上-a的參數,因為bin目錄里大部分都是鏈接,如果不帶-a的參數,拷過去之后會做相應的復制,不再是鏈接的形式


STEP 3? 構建etc目錄:

1)進入根文件系統rootfs的etc目錄,執行如下操作:

???????拷貝Busybox-1.16.1/examples/bootfloopy/etc/* 到當前目錄下
??????? #cp –r busybox-1.16.1/examples/bootfloopy/etc/*? rootfs/etc

??????? 修改inittab,把第二項改為::respawn:-/bin/login

??????? 刪除第三、第四行代碼 ??

2)拷貝虛擬機上的/etc/passwd, /etc/group, /etc/shadow到rootfs/etc下

??????? # cp /etc/passwd?? rootfs/etc
??????? # cp /etc/group ? ?rootfs/etc
??????? # cp /etc/shadow?? roofs/etc

對以下三個文件修改,只保存與root相關的項,根據具體情況內容會有所不同。

修改passwd為root:x:0:0:root:/root:/bin/sh,即只保存與root相關項,而且最后改成/bin/ash。

修改group為root:x:0:root

修改shadow為root:$1$x9yv1WlB$abJ2v9jOlOc9xW/y0QwPs.:14034:0:99999:7:::

登陸開發板時需輸入用戶名密碼,同虛擬機相同

3)修改profile

PATH=/bin:/sbin:/usr/bin:/usr/sbin ? ? ? ? ?//可執行程序 環境變量

export LD_LIBRARY_PATH=/lib:/usr/lib ? ? ? ?//動態鏈接庫 環境變量

/bin/hostname sunplusedu

USER="`id -un`"

LOGNAME=$USER

HOSTNAME='/bin/hostname'

PS1='[\u@\h \W]# ' ? ? ? ? ? ? ? ? ? ? ? ? ?//顯示主機名、當前路徑等信息:

4)修改 etc/init.d/rc.S文件

/bin/mount -n -t ramfs ramfs /var

/bin/mount -n -t ramfs ramfs /tmp

/bin/mount -n -t sysfs none /sys

/bin/mount -n -t ramfs none /dev

/bin/mkdir /var/tmp

/bin/mkdir /var/modules

/bin/mkdir /var/run

/bin/mkdir /var/log

/bin/mkdir -p /dev/pts??????????????????? //telnet服務需要

/bin/mkdir -p /dev/shm??????????????????? //telnet服務需要

echo /sbin/mdev > /proc/sys/kernel/hotplug//USB自動掛載需要

/sbin/mdev -s ? ? ? ? //啟動mdev在/dev下自動創建設備文件節點

/bin/mount -a

5)修改etc/fstab文件,增加以下文件

??????? none ? /dev/pts??? devpts ? mode=0622 ? ? ?0 0
?? ? ? tmpfs ?/dev/shm??? tmpfs??? defaults ? ? ? 0 0


STEP 4 構建lib目錄:

?? ??1)#cd /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/lib

???? 將以下動態庫拷貝到rootfs/lib下
???? #cp? *so*? roofs/lib? -a

?? ??2)#cd /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/usr/lib
?? ? 將以下動態庫拷貝到rootfs/lib下
???? #cp ./libstdc++.so.*? rootfs/lib? -a

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/253768.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/253768.shtml
英文地址,請注明出處:http://en.pswp.cn/news/253768.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Angular Elements 組件在非angular 頁面中使用的DEMO

2019獨角獸企業重金招聘Python工程師標準>>> 一、Angular Elements 介紹 Angular Elements 是伴隨Angular6.0一起推出的新技術。它借助Chrome瀏覽器的ShadowDom API,實現一種自定義組件。 這種組件可以用Angular普通組件的開發技術進行編寫,…

(轉) android里,addContentView()動態增加view控件,并實現控件的頂部,中間,底部布局...

http://blog.csdn.net/bfboys/article/details/52563089轉載于:https://www.cnblogs.com/zhangminghan/p/6182909.html

verilog仿真——$test$plusargs 和 $value$plusargs

VERILOG的參數可以用define和parameter的方式定義,這種方法要求我們在編譯前將變量必須定義好,編譯完成之后再也不能修改; 然而,有時候我們在進行仿真時,需要從外部傳遞參數,這個要求怎么滿足呢&#xff1…

盧卡斯定理

盧卡斯定理:解決一類組合數取模問題 A、B是非負整數,p是質數。AB寫成p進制:Aa[n]a[n-1]...a[0],Bb[n]b[n-1]...b[0]。 則組合數C(A,B)與C(a[n],b[n])*C(a[n-1],b[n-1])*...*C(a[0],b[0]) modp同余 即:Lucas(n,m,p)c(n%p,m%p)*Luc…

內核理解

在純技術方面,內核是硬件與軟件之間的一個中間層。其作用是將應用程序的請求傳遞給硬件,并充當底層的驅動程序,對系統中的各種設備和組件。內核啟動init程序作為第一個進程,該進程負責進一步的系統初始化操作,并顯示登…

loadrunner中對https證書的配置

1、準備好網站的證書,一般證書是cer格式; 2、因為loadrunner只支持pem格式的證書,所以要將證書轉換格式,利用openssl工具;(或者直接讓開發提供pem格式的證書)3、得到pem格式的證書之后&#xff…

Android 9 Pie震撼來襲 同步登陸WeTest

作者:We Test小編商業轉載請聯系騰訊WeTest獲得授權,非商業轉載請注明出處。原文鏈接:wetest.qq.com/lab/view/40…WeTest 導讀2018年8月7日,Google對外發布最新 Android 9.0 正式版系統,并宣布系統版本Android P 被正…

Datapath綜合代碼規范(Verilog)

一、一般準則 1、有符號數運算 利用類型“signed”完成有符號數運算,而不是用無符號數模擬有符號數運算。這樣可以得到更好的QoR。在資源報告中檢查操作數的類型和大小。 2、符號/零擴展 盡量不要手動擴展。verilog利用signed/unsigned會自動完成擴展。這樣代碼可…

Linux下V4L2編程小結

http://www.360doc.com/content/12/0318/16/532901_195392228.shtml :davind dm365linux移植 http://www.embedhq.org/html/jsbw/2010/0425/390.html :Linux下V4L2編程小結

百(垃)度(圾)之星初賽B hdu6114

Chess 題意:中文題 思路:其實就是在n個格子上放m個棋子(n>m)(xjb套Lucas的板子... AC代碼: #include "iostream" #include "string.h" #include "stack" #include "…

variable 'xxx' unsafe in 'case'的處理

問題描述: case get(?Player_LoopTaskInfo) of{TargetCnt, TaskStar, TaskExp} ->ok;_ ->throw("not_found_loop_task_info") end 在case語句中,這樣寫,編譯時,會提示變量unsafe,解決編譯器報錯的…

SDUT 3347 數據結構實驗之數組三:快速轉置

數據結構實驗之數組三&#xff1a;快速轉置 Time Limit: 1000 ms Memory Limit: 65536 KiBProblem Description 轉置運算是一種最簡單的矩陣運算&#xff0c;對于一個m*n的矩陣M( 1 < m < 10000,1 < n < 10000 )&#xff0c;它的轉置矩陣T是一個n*m的矩陣&…

linux設備和驅動加載的先后順序

Linux驅動先注冊總線&#xff0c;總線上可以先掛device&#xff0c;也可以先掛driver&#xff0c;那么究竟怎么控制先后的順序呢。 Linux系統使用兩種方式去加載系統中的模塊&#xff1a;動態和靜態。 靜態加載&#xff1a;將所有模塊的程序編譯到Linux內核中&#xff0c;由do_…

CMOS 圖像傳感器——Skipping 和 Binning 模式

在通常的CMOS讀取方式中&#xff0c;由于像素讀取規模的差異&#xff0c;不同的分辨率對應不同的幀率。在通道帶寬固定的前提下&#xff0c;想要提高幀率就要考慮是否需要縮小視野&#xff08;外圈裁切&#xff09;。若不希望視野縮小&#xff0c;需要減少采樣的分辨率。 常用的…

DAVINCI DM365-368中 linux-2.6.32的移植

http://www.360doc.com/content/12/0318/16/532901_195392228.shtml 很詳細的一篇文章&#xff0c;在此感謝了&#xff01; http://www.rosoo.net/a/201001/8316.html DM系列芯片外設詳細介紹

Jacoco--測試覆蓋率工具

介紹JaCoCo&#xff08;Java Code Coverage&#xff09;是一種分析單元測試覆蓋率的工具&#xff0c;使用它運行單元測試后&#xff0c;可以給出代碼中哪些部分被單元測試測到&#xff0c;哪些部分沒有沒測到&#xff0c;并且給出整個項目的單元測試覆蓋情況百分比&#xff0c;…

HTML 標記大全參考手冊

1.文件結構 文件類型 <HTML></HTML> &#xff08;放在文檔的開頭與結尾&#xff09; 文件主題 <TITLE></TITLE> &#xff08;必須放在「文頭」區塊內&#xff09; 文頭 <HEAD></HEAD> &#xff08;描述性資料&#xff0c;如「主題」&#…

APB協議學習

APB(Advanced Peripheral Bus) 1、APB的概述與特點 APB主要用于低帶寬的周邊外設之間的連接&#xff0c;例如UART、1284等&#xff0c;它的總線架構不像AHB支持多個主模塊&#xff0c;在APB里面唯一的主模塊就是APB 橋。其特性包括&#xff1a;兩個時鐘周期傳輸&#xff1b;無…

私有協議棧開發

通信協議從廣義上區分&#xff0c;可以分為公有協議和私有協議。由于私有協議的靈活性&#xff0c;它往往會在某個公司或者組織內部使用&#xff0c;按需定制&#xff0c;也因為如此&#xff0c;升級起來會非常方便&#xff0c;靈活性好。絕大多數的私有協議傳輸層都基于TCP/IP…

制作NFS

最近學習NFS&#xff0c;用本地測試. 以下是我的測試過程 環境 ubuntu 10.4 vm 7.1 終端 ifconfig 得到 ubuntu資料 INET ADDR 192.168.0.4 BCAST 192.168.0.255 MASK 255.255.255.0 一 安裝NFS $ sudo apt-get install nfs-kernel-server $ sudo apt-get install nfs…