九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
嵌入式開發(fā)實戰(zhàn)5——LINUX的根文件系統(tǒng)之一基本環(huán)境的搭建和BUSYBOX編譯

嵌入式開發(fā)實戰(zhàn)5——LINUX的根文件系統(tǒng)之一基本環(huán)境的搭建和BUSYBOX編譯


 
正如上回說的一樣,回到我們的根本目的,LINUX的整體流程開發(fā),今天開始最后一大部分,即根文件系統(tǒng),LINUX和WIN有所不同,他的內(nèi)核和文件系統(tǒng)是分開的,當然還有UI,但這里不談那個,只談根文件系統(tǒng)。
這個東西很重要,目前做根文件系統(tǒng)的方法有很多,在這里只講比較流行的一種方式,即busybox,所以,第一件事是從網(wǎng)上DOWN這個源碼下來。
http://www.busybox.net/downloads/
如果有什么變動大家可以自己去網(wǎng)上搜,這個很好找。包括各種開發(fā)板一般都會跟著一份兒的。說起來也是一個賣點不是。
在建立根文件系統(tǒng)前,首先要建立一些主要的文件目錄,因為LINUX沒有分區(qū)的概念,都是以文件來區(qū)分,所以一些必須的文件夾是提前得建立好的。
#!/bin/sh 
echo "------Create rootfs dire ctons start...--------"  
mkdir rootfs  
cd rootfs  
echo "--------Create root,dev....----------"  
mkdir root dev etc boot tmp var sys proc lib mnt home usr  
mkdir etc/init.d etc/rc.d etc/sysconfig  
mkdir usr/sbin usr/bin usr/lib usr/modules  
echo "make node in dev/console dev/null"  
mknod -m 600 dev/console c 5 1  
mknod -m 600 dev/null        c 1 3 
 
mkdir mnt/etc mnt/jffs2 mnt/yaffs mnt/data mnt/temp  
mkdir var/lib var/lock var/run var/tmp  
chmod 1777 tmp  
chmod 1777 var/tmp  
echo "-------make direction done---------"
這里我們用友善的SHELL腳本,不過這里需要引起注意的是:
1、 你在WIN下把這個拷過去,直接在LINUX下執(zhí)行,(當然,你得chmod +x namefilescript)會出現(xiàn)“沒有那個文件或目錄”的錯誤,原因是WIN下的回車和換行是兩個字符,而在LINUX是一個\n,所以要么直接在LINUX中做,要么直接手敲。如果已經(jīng)在WIN拷進來了,那么可以用下面的方法進行替換:
                   sed -i 's/\r$//' shell_file_name.sh
或者見“嵌入式開發(fā)實戰(zhàn)4——內(nèi)核的編譯之十二觸摸屏的驅(qū)動”最后類似說明。
2、 直接拷貝的話,在創(chuàng)建etc/rc.d這個文件夾時,當中有一個空格,所以雖然能創(chuàng)建成功,但是是錯誤的,會報一個“etc已經(jīng)存在”,同時把rc.d 創(chuàng)建在父目錄下。
3、 這個腳本還有一個問題,就是他在創(chuàng)建父目錄時,少了usr,(見上面紅色部分)所以下面在創(chuàng)建usr/bin目錄時,報無法創(chuàng)建,因為LINUX下的目錄是一層層的創(chuàng)建的。
4、 還有一個問題,如果你不使用ROOT用戶的話,可能最后創(chuàng)建mknod命令時,會報一個沒有權(quán)限操作。
然后就是把友善的LIB庫拷到創(chuàng)建的根文件系統(tǒng)目錄下:
cd /mnt/hgfs/share   說明:這里是進入到你相應(yīng)的目錄下
tar –zxvf root_qtopia.tg z –C /opt/studyarm   說明:你創(chuàng)建的根文件的父目錄
cp –rfd /opt/studyarm/root_qtopia/ lib/* /opt/studyarm/rootfs/lib/*
注意:最后一個*,應(yīng)該沒有。
然后就可以開始編譯busybox了,這里使用的版本是:busybox.1.13.3
Cd /home/fjf/rootfile
Tar –zxvf busybox.1.13.3  (-C /xx/xxx)  說明:后面的小括號是可以解壓到指定目錄下。
cd /home/fjf/rootfile/busybox-1.13.3  
修改: 
CROSS_COMPILE ?=arm-linux-   //第164 行 
ARCH ?=arm //第189 行
配置選項有幾中選擇,一種是使用默認的配置,這個基本就夠用了,二是使用友善提供的默認配置(fa_config(輸入命令“cp fa.config .config”可以調(diào)用該配置)),三是使用網(wǎng)上一些牛人的資料:
可以參考原文作者的如下步驟:
輸入make menuconfig 進行配置
 
(1)、Busybox Settings--->  
  General Configuration---> 
[*] Show verbose applet usage messages  
[*] Store applet usage messa ges in compressed form  
[*] Support –install [-s] to install applet links at runtime  
[*] Enable locale support(system needs locale for this to work)  
 
 
[*] Support for –long-options  
[*] Use the devpts filesystem for unix98 PTYs  
[*] Support writing pidfiles  
[*] Runtime SUID/SGID configur ation via /etc/busybox.config  
[*]    Suppress warning message if /e tc/busybox.conf is not readable  
Build Options--->  
     [*] Build BusyBox as a static binary(no shared libs)  
[*] Build with Large File Support(for accessing files>2GB)  
Installation Options->  
[]Don’t use /usr  
Applets links (as soft-links) --->  
(./_install) BusyBox installation prefix  
Busybox Library Tuning --->  
(6)Minimum password legth  
(2)MD5:Trade Bytes for Speed  
[*]Fsater /proc scanning code(+100bytes)  
[*]Command line editing  
(1024)Maximum length of input  
[*] vi-style line editing commands  
(15) History size  
[*] History saving  
[*] Tab completion  
[*]Fancy shell prompts  
(4) Copy buffer size ,in kilobytes  
[*]Use ioctl names rather than hex values in error messages   
[*]Support infiniband HW  
(2)、Linux Module Utilities--->  
  (/lib/modules)Default directory containing modules  
(modules.dep)Default name of modules.dep  
[*] insmod  
[*] rmmod  
[*] lsmod  
[*] modprobe  
-----options common to multiple modutils  
[ ] support version 2.2/2.4 Linux kernels  
[*]Support tainted module checking with new kernels  
[*]Support for module .aliases file  
[*] support for modules.symbols file  
(3)、在busybox 中配置對dev 下設(shè)備類型的支持 
dev 的創(chuàng)建有三種方法:  
手動創(chuàng)建:在制作根文件系統(tǒng)的時候,就在 dev 目錄下創(chuàng)建好要使用的設(shè)備文件,系統(tǒng)
掛接根文件系統(tǒng)后,就可以使用dev 目錄下的設(shè)備文件了。 
使用devfs文件系統(tǒng):這種方法已經(jīng)過時,具有不確定的設(shè)備映射、沒有足夠的主/ 次設(shè)
備號、devfs消耗大量的內(nèi)存。 
udev :它是個用戶程序,能根據(jù)系統(tǒng)中硬件設(shè)備的狀態(tài)動態(tài)的更新設(shè)備文件,包括設(shè)備
文件的創(chuàng)建、刪除等。它的操作相對復(fù)雜,但靈活性很高 
mdev是busybox 自帶的一個簡化版的 udev ,適合于嵌入式的應(yīng)用埸合。其具有使用簡
單的特點。它的作用,就是在系統(tǒng)啟動和熱插拔或動態(tài)加載驅(qū)動程序時,自動產(chǎn)生驅(qū)動程序所
需的節(jié)點文件。在以 busybox 為基礎(chǔ)構(gòu)建嵌入式linux 的根文件系統(tǒng)時,使用它是最優(yōu)的選擇。
下面的選項將增加對mdev的支持。 
Linux System Utilities  --->                
    [*]Support /etc/mdev.conf          
        [*]Support command execution at device addition/removal  
最后當然是編譯busybox 
編譯busybox 到指定目錄: 
cd /home/fjf/rootfile/busybox-1.13.3  
make CONFIG_PREFIX=/home/fjf/rootfile/rootfs install  
在rootfs 目錄下會生成目錄bin、sbin 、usr和文件 linuxrc 的內(nèi)容。
前面的腳本創(chuàng)建了這幾個目錄對這個沒有影響,大家不要擔心。
萬里長征,第一步就要完成了,努力?。?!
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
mini6410根文件系統(tǒng)的制作
Linux內(nèi)核移植和yaffs2根文件系統(tǒng)制作V1.2(6)
[實踐]busybox1.16.1建立文件系統(tǒng)
用BusyBox制作Linux根文件系統(tǒng)
嵌入式linux根文件系統(tǒng)制作(經(jīng)典)
嵌入式Linux系列第5篇:Nand Flash根文件系統(tǒng)制作
更多類似文章 >>
生活服務(wù)
熱點新聞
分享 收藏 導長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服