(一):首先linux根文件系統的制作需要的開發(fā)環(huán)境。1:移植Linux內核版本: linux-3.0.1 (只要能用就行)2:交叉編譯工具:arm-linux-gcc 4.3.2(任選)3:文件系統制作工具:Busybox-1.13.3(任選)4:etc.tar.gz(二):交叉編譯環(huán)境的搭建(這一步我在我的博客其他文章里面有 詳細的搭建過程,很簡單滴~)(三):創(chuàng)建根文件系統的目錄1:在主目錄下面新建一個文件夾rootfs[root@localhost fs]# ls[root@localhost fs]# mkdir rootfs[root@localhost fs]# cd rootfs/[root@localhost rootfs]# mkdir bin dev etc lib proc sbin sys usr mnt tmp var[root@localhost rootfs]# mkdir usr/bin usr/lib usr/sbin lib/modules說明:根文件系統是Linux啟動的時候使用的第一個文件系統,沒有他系統將無法正常的啟動然而在這個根文件系統中又包含了一系列的目錄,接下來對這些目錄做一個簡單的介紹。其實這個大家都很懂的bin存放所有用戶都可以使用的、基本的命令。sbin存放的是基本的系統命令,它們用于啟動系統、修復系統等。sys一些總線啊設備啊驅動啊。等等都在這里。好像都是動態(tài)生成的吧usr里面存放的是共享、只讀的程序和數據。proc這是個空目錄,常作為proc文件系統的掛載點。dev該目錄存放設備文件和其它特殊文件。etc存放系統配置文件,包括啟動文件。lib存放共享庫和可加載塊(即驅動程序),共享庫用于啟動系統、運行根文件系統中的可執(zhí)行程序。mnt用于臨時掛接某個文件系統的掛接點,通常是空目錄。也可以在里面創(chuàng)建空的子目錄。boot引導加載程序使用的靜態(tài)文件home用戶主目錄,包括供服務賬號鎖使用的主目錄,如FTPopt給主機額外安裝軟件所擺放的目錄。rootroot用戶的主目錄tmp存放臨時文件,通常是空目錄。var存放可變的數據。
2:創(chuàng)建設備文件[root@localhost rootfs]#cd dev/[root@localhost dev]# mknod -m 666 console c 5 1[root@localhost dev]# mknod -m 666 null c 1 3說明:mknod -m 666 console c 5 1console 為設備文件名,自己可以隨便取,c代表是字符型設備(可選b,塊設備)5是主設備號 /dev/devices里面記錄現有的設備1是次設備號當你要給兩個同樣的設備上一個驅動的時候就要分了,從0開始,1就是第二個了 ,對于字符設備,次設備號就表示同類型設備的不同設備。666代表訪問的權限
3:配置/etc/這里有兩種方法1:可以把系統上面的/etc/下面一些比較重要的文件拷貝過來2:也可以直接在網上下載一個etc.tar.gz#tar -zxvf etc.tar.gz 將解壓出來的文件etc下面的東西全部拷貝到上面新建的根目錄下面/rootfs/etc/下面etc/inittabetc/profileetc/fstabetc/init.d/etc/init.d/rcS
4:編譯內核模塊首先進入內核目錄下面(內核目錄和根文件系統目錄不是在同一個目錄下面的)# cd linux-3.0.1#make modules ARCH=arm CROSS_COMPILE=arm-linux-說明:在這一步出現一些問題,發(fā)現怎么編譯也不行,后來由下載了一個內核,編譯通過5:安裝內核模塊#make modules_install ARCH=arm INSTALL_MOD_PATH=/home/xiongyao/rootfs說明:將內核里面編譯好的模塊放在根文件系統目錄下面6:配置busybox說明:關于busybox:(百度百科)busybox是一個集成了一百多個最長用linux命令和工具的軟件。BusyBox 包含了一些簡單的工具,例如ls、cat 和echo等等,還包含了一些更大、更復雜的工具,例如grep、find、mount 以及telnet。有些人將 BusyBox 稱為 Linux 工具里的瑞士軍刀。簡單的說BusyBox就好像是個大工具箱,它集成壓縮了 Linux 的許多工具和命令,也包含了 Android 系統的自帶的shell。# tar -xvzf busybox-1.13.3.tar.gz# cd busybox-1.13.3#make menuconfig說明:這一步是要配置busybox的圖形界面,使之生效,運行這個命令可能會出錯,原因是因為你沒有安裝那個圖像界面的依賴庫,在終端里面輸入apt-get install libncurses5-dev 就ok了~Busybox Settings-----> build Options----->選中Build BusyBox as a static binary(no shared libs)Busybox Settings-----> InstallationOptions ------------> 選中 “dont use /usr” 選中此項可以避免busybox被安裝到宿主系統的/usr目錄下,破壞宿主系統Busybox Installation Prefix(/home/fs/myrootfs) 這里要輸入busybox安裝的絕對路徑7:編譯安裝busybox#make ARCH=arm CROSS_COMPILE=arm-linux-#make install到現在為止,根文件系統就完全做好了,你可以把這個根文件系統制作成ramdisk系統8:、將根文件系統制作 成ramdisk#genext2fs -b 8192 -d /home/fs/myrootfs/ ramdisk說明:這一步出現問題,后來發(fā)現是這個分配的空間太小,于是將8192改為120400#genext2fs -b /home/xiongyao/rootfs/ ramdisk #gzip -9 -f ramdisk這樣就可以將ramdisk.gz下載到開發(fā)板上面去了
新聞熱點
疑難解答