用bosybox制作文件系統
阿新 • • 發佈:2018-05-31
創建 ech orange bin 有變 硬件驅動 啟動內核 onf boot
1 在orangepi_sdk/source/busybox-1.25.0目錄裏有源碼.
2
3 1). 先清除編譯出來的文件及配置文件
4 make distclean
5
6 2). 配置busybox
7 make menuconfig //進入配置界面
8
9 Busybox Settings --->
10 Build Options --->
11 │[*] Build BusyBox as a static binary (no shared libs) // 靜態編譯busybox,編出來的程序不依賴其它動態庫
12 (arm-linux-gnueabihf-) Cross Compiler prefix //光標移動這行後,按確認鍵進入輸入模式. 指定使用交叉編譯器
13
14 保存退出後, 執行make編譯
15 3). 執行make install, 會把文件系統生成在busybox源碼根目錄下的_install目錄
16 然後把_install整個目錄復制到/disk3/, 並改名h3fs
17
18 4). 在h3fs目錄裏創建文件系統所需的目錄
19 mkdir dev proc sys tmp var mnt
20 mkdir var/log
21 mkdir var/lock
22 mkdir var/lib
23 mkdir var/run
24
25 5). 在h3fs目錄裏創建etc/init.d/rcS文件(用於進文件系統後的初始化工作, 相當於PC上的/etc/rc.local)
26 mkdir etc/init.d -p
27 touch etc/init.d/rcS
28
29 6).
30 修改h3fs裏的etc/init.d/rcS, 增加以下內容, 指定目錄使用指定的文件系統類型格式
31 mount -t proc none /proc
32 mount -t sysfs none /sys
33 mount -t tmpfs none /tmp
34 mount -t ramfs none /dev
35 mdev -s //讓mdev自動根據相應的驅動產生相應的設備文件
36
37 syslogd //產生日誌的守護進程
38 echo /sbin/mdev > /proc/sys/kernel/hotplug //當硬件驅動有變化時, 調用mdev -s產生或移除相應的設備文件
39
40
41 7). 創建h3fs裏的etc/inittab文件, 增加以下內容:
42 ::sysinit:/etc/init.d/rcS //用rcS作系統初始化
43 ttyS0::askfirst:-/bin/sh //使用ttyS0作板子的控制終端
44
45
46 8). 增加環境變量:
47 創建h3fs裏的etc/profile文件, 增加以下內容
48 export PS1="^_^ \w # " //用於命令行前面的提示符
49
50
51 9). 把應用程序所需的動態庫從交叉編譯器裏復制到h3fs裏.
52 把交叉編譯器裏的arm-linux-gnueabihf/libc/lib/arm-linux-gnueabihf/裏的內容 復制到h3fs/lib目錄 (沒有lib則創建)
53 //註意: 如果程序執行時報"not found",而不是路徑的問題時就是缺少動態庫了
54
55 10). 以上做完以後, 還需要給整個文件系統目錄設權限
56 chmod 0777 /disk3/h3fs -R
57
58 11). 把文件系統存放到SD卡的ext分區
59 進入h3fs目錄下:
60 tar cf fs.tar * //把整個文件系統打成一個包
61 把板上的SD卡接入PC,如果有自動掛載,則"tar xf fs.tar -C /掛載目錄"解包到SD卡上
62 如果沒有自動掛載,則手動把/dev/sdb2掛載到一個目錄裏再解包.
63
64 12). 以上操作完成後, 把SD卡放回板子上啟動, 還需在uboot上設置環境變量bootargs
65 setenv bootargs "root=/dev/mmcblk0p2 rw console=ttyS0,115200" //此參數是告訴內核,文件系統是在第0個mmc設備的第2個分區, 用ttyS0作控制終端,波特率為115200
66
67 保存好環境變量後,啟動內核:
68 [ 2.696791] devtmpfs: mounted
69 [ 2.700378] Freeing init memory: 316K //只要出現這句表示內核已成功進入文件系統裏
70
71 Please press Enter to activate this console.
參考:https://blog.csdn.net/jklinux/article/details/72679950
用bosybox制作文件系統