出處:
目前的嵌入式開發大多採用
linux作業系統,
linux作業系統執行的一般方式都是核心(如bzimage)加上根檔案系統(rootfs),核心的編譯裁剪說的很多,也不麻煩,我這裡想說的是使用busybox來製作rootfs的方法,
廢話不說那麼多,我製作了乙個sh指令碼程式,可以直接生成我需要的ramdisk,先將指令碼貼出來:
#bash/sh
echo "start make rootfs !"
cd /usr/src/mkosrtfs
mkdir rootfs
cd rootfs
mkdir dev etc lib proc tmp usr var
chmod 777 tmp
mkdir usr/lib
mkdir var/lib var/lock var/log var/run var/tmp
chmod 777 var/tmp
cp -dpr /usr/src/busybox-1.14.2/_install/* .
cp -r /dev/console dev/
cp -r /dev/null dev/
cp -r /dev/zero dev/
cp -r /usr/src/busybox-1.14.2/examples/bootfloppy/etc/* etc/
dd if=/dev/zero of=/usr/src/mkosrtfs/disk bs=1m count=32
mkfs.ext2 -m0 /usr/src/mkosrtfs/disk
mkdir /mnt/ram
mount -o loop /usr/src/mkosrtfs/disk /mnt/ram/
cp -r /usr/src/mkosrtfs/rootfs/* /mnt/ram/
umount /mnt/ram
dd if=/usr/src/mkosrtfs/disk of=/usr/src/mkosrtfs/ramdisk.img
gzip /usr/src/mkosrtfs/ramdisk.img
echo "end make rootfs!"
指令碼寫的很簡單,能實現基本功能,沒有新增判斷,容錯之類的,就是個意思,用得到的時候,可以在上面修改;
需要說明的時候,busybox也有menuconfig選項供我們選擇,我選擇的是將busybox工具編譯成靜態庫,為了簡單和偷懶,如果編譯成動態庫,需要將用到的庫拷貝到lib目錄。
ramdisk製作好了之後,以後如果有改動,只要採用如下方式:
mkdir tmp
gzip -d ramdiak.img.gz
mount -o loop ramdisk.img tmp
#cp 需要的程式到tmp指定的資料夾
umount tmp
gzip ramdisk.img.gz
就可以了。
用Busybox製作嵌入式Linux的檔案系統
1 busybox簡介 熟悉嵌入式linux的人對busybox一定不會陌生。它被非常形象地稱為嵌入式linux系統中的 瑞士軍刀 因為它將許多常用的unix命令和工具結合到了乙個單獨的可執行程式中。雖然與相應的gnu工具比較起來,busybox所提供的功能和引數略少,但在比較小的系統 例如啟動盤 ...
用busybox製作根檔案系統
1 獲取原始碼解壓 tar jvxf busybox 1.13.3.tar.bz2 進入解壓後的busybox原始碼目錄 cdbusybox 1.13.3 2 配置busybox 步驟跟編譯linux核心時很像 makemenuconfig 出現乙個圖形介面,選擇busybox settings,這...
busybox製作根檔案系統
以前的檔案系統都是同事做好的,今天心血來潮決決定探索一下,沒想到出了問題。makefile 405 mixed implicit and normal rules deprecated syntax makefile 1242 mixed implicit and normal rules depr...