刪除不需要的庫,確保所有庫大小不超過 4m:
$ du -mh lib/
新增系統啟動檔案:
在 etc 下新增檔案 inittab,檔案內容如下:
#this is run first except when booting in single-user mode.
::sysinit:/etc/init.d/rcs
::askfirst:-/bin/sh
::restart:/sbin/init
::ctrlaltdel:/sbin/reboot
在 etc 下新增檔案 fstab ,檔案內容如下:
#device mount-point type options dump fsck order
proc /proc proc defaults 0 0
tmpfs /tmp tmpfs defaults 0 0
sysfs /sys sysfs defaults 0 0
tmpfs /dev tmpfs defaults 0 0
這裡我們掛載的檔案系統有三個 proc、 sysfs 和 tmpfs 。在核心中 proc 和 sysfs 預設都支援,而 tmpfs
是沒有支援的,我們需要新增 tmpfs 的支援
修改 linux 核心配置;
$ cd ~/ kernel/linux-3.14
$ make menuconfig
file systems —>
pseudo filesystems —>
virtual memory file system support (former shm fs)
tmpfs posix access control lists
重新編譯核心:
$ make uimage
$ cp arch/arm/boot/uimage /tftpboot
回到建立的檔案系統處, 在 etc 下建立 init.d 目錄,並在 init.d 下建立 rcs 檔案, rcs 檔案內容為:
#!/bin/sh
/bin/mount -a
echo /sbin/mdev > /proc/sys/kernel/hotplug
/sbin/mdev -s
為 rcs 新增可執行許可權:
$ chmod +x init.d/rcs
在 etc 下新增 profile 檔案,檔案內容為:
#!/bin/sh
export hostname=exynos4412
export user=root
export home=/root
export ps1="[use
r@
user@
user
@hostname \w]# "
path=/bin:/sbin:/usr/bin:/usr/sbin
ld_library_path=/lib:/usr/lib:$ld_library_path
export path ld_library_path
重要:新製作的檔案系統尺寸若超出 8m,刪除不需要的庫檔案
3.2nfs 測試
3.2.1將我們新建的根檔案系統拷貝到/source/rootfs 目錄下
$sudo mkdir /opt/rootfs
$sudo cp _install/* /opt/rootfs –a
3.2.2設定uboot引數
#setenv bootargs noinitrd root=/dev/nfs nfsroot=192.168.13.116:/opt/rootfs init=/linuxrc console=ttysac2,115200 ip=192.168.13.123
3.2.3實驗現象
nfs根檔案系統掛載成功
3.3ramdisk 檔案系統製作實驗
3.3.1製作乙個大小為 8m 的映象檔案
$ cd ~
$ dd if=/dev/zero of=ramdisk bs=1k count=8192 ( ramdisk 為 8m)
3.3.2格式化這個映象檔案為 ext2
$ mkfs.ext2 -f ramdisk
3.3.3在 mount 下面建立 initrd 目錄作為掛載點
$ sudo mkdir /mnt/initrd
3.3.4將這個磁碟映象檔案掛載到/mnt/initrd 下
注意這裡的 ramsidk 不能存放在 rootfs 目錄中
$ sudo mount -t ext2 -o loop ramdisk /mnt/initrd
3.3.5將我們的檔案系統複製到 initrd.img 中
將測試好的檔案系統裡的內容全部拷貝到 /mnt/initrd 目錄下面
$ sudo cp /source/rootfs/* /mnt/initrd –a
3.3.6解除安裝 initrd
$ sudo umount /mnt/initrd
3.3.7壓縮 initrd.img 為 initrd.img.gz 並拷貝到/tftpboot 下
$ gzip --best -c ramdisk > ramdisk.gz
3.3.8格式化為 uboot 識別的格式
$ mkimage -n 「ramdisk」 -a arm -o linux -t ramdisk -c gzip -d ramdisk.gz ramdisk.img
$ cp ramdisk.img /tftpboot
3.3.9配置核心支援 ramdisk
製作完 ramdisk.img 後,需要配置核心支援 ramdisk 作為啟動檔案系統, 修改核心配置
$ make menuconfig
file systems —>
<> second extended fs support
device drivers
scsi device support —>
<> scsi disk support
block devices —>
<>ram block device support
(16)default number of ram disks
(8192) default ram disk size (kbytes) (修改為 8m)
general setup —>
initial ram filesystem and ram disk (initramfs/initrd) support
3.3.10重新編譯核心
複製到uimage到 /tftpboot目錄下
$cp arch/arm/boot/uimage /tftpboot
3.3.11重新設定uboot啟動引數:
構建Linux根檔案系統
七天不吃飯三天不喝水,天天做題的傢伙 構建linux根檔案系統 第一步 移植安裝busybox unix命令集合。見上個檔案。第二步 使用glibc庫 安裝lib庫檔案 開發板上只需要載入器和動態庫 1 安裝載入器 在 usr local arm arm none linux gnueabi arm...
Linux 檔案系統構建命令mkfs
mkfs用來在乙個裝置上構建linux支援的相關檔案系統,也可稱之為格式化工具,這裡的裝置通常是指標硬碟分割槽。在linux上通過fdisk等工具進行完分割槽後,還需要對分割槽進行處理,使之支援相應的檔案系統,這時候就需要用到mkfs這個工具,建立 檔案系統過程的實質是在磁碟空間上面建立檔案系統所需...
Linux檔案系統構建命令mkfs
mkfs用來在乙個裝置上構建linux支援的相關檔案系統,也可稱之為格式化工具,這裡的裝置通常是指標硬碟分割槽。在linux上通過fdisk等工具進行完分割槽後,還需要 對分割槽進行處理,使之支援相應的檔案系統,這時候就需要用到mkfs這個工具,建立 檔案系統過程的實質是在磁碟空間上面建立檔案系統所...