版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Linux內(nèi)核裁剪培訓(xùn)第一頁(yè),共38頁(yè)。整體過(guò)程1.需要準(zhǔn)備的軟件2.內(nèi)核編譯3.制作根文件系統(tǒng)4.創(chuàng)建Ramdisk5.編譯Grub6.創(chuàng)建ISO第二頁(yè),共38頁(yè)。1.需要準(zhǔn)備的軟件Grub,引導(dǎo)加載程序(BootLoader),我用的Grub版本是V0.93;BusyBox,目前有V1.00、V1.3.2、V1.10.4、V1.12.0、V1.14.1、V1.15.5等版本,我用的是V1.10.4;Linux內(nèi)核,可以去網(wǎng)站上下載,我這里使用的是V2.6.31。根文件系統(tǒng),包括根文件系統(tǒng)的架構(gòu),根文件系統(tǒng)的內(nèi)容,根文件系統(tǒng)所采用的文件系統(tǒng)類型等等。第三頁(yè),共38頁(yè)。2.內(nèi)核編譯2.1內(nèi)核配置方式2.2內(nèi)核配置選項(xiàng)2.3建立依賴關(guān)系2.4編譯內(nèi)核2.5建立并安裝內(nèi)核第四頁(yè),共38頁(yè)。2.1內(nèi)核配置方式在三種方式都可以進(jìn)行內(nèi)核配置(makeconfig或makeoldconfig、makemenuconfig和makexconfig)。makeconfig或makeoldconfig:這種方式不直觀,而且容易出錯(cuò),不建議使用。makemenuconfig:大多數(shù)據(jù)情況下使用這種方式,比較直觀,建議使用這種方式。makexconfig:這是在XWindows圖形界面下使用,也比較好用。不過(guò)它需要XWidnows的支持。第五頁(yè),共38頁(yè)。2.2內(nèi)核配置選項(xiàng)Linux內(nèi)核配置選項(xiàng)很多,在這里就不一一介紹了,這里只說(shuō)明我們需要用到的配置項(xiàng),其它配置項(xiàng)使用缺省值即可。Eanbleloadablemodulesupport:該項(xiàng)必須選上,因?yàn)槲覀兪褂玫氖荝AMDISK,其空間有限,所在,我們使用模塊編譯方式,當(dāng)使用某個(gè)功能時(shí),臨時(shí)解壓縮出來(lái),使用完成后,再將其刪除,這樣可以節(jié)省磁盤空單。另外,象IDE這樣的設(shè)備,在編譯時(shí)不允許[*],只能以[M]方式編譯。DeviceDrivers HIDDevices(HumanInterfacedevice) USBHumanInterfacedevice(fullHID)support:
我們要支持USB鍵盤和USB鼠標(biāo),所以這個(gè)選項(xiàng)目須[M]上。USBsupport EHCIHCD(USB2.0)support
支持USB設(shè)備(如:USB移動(dòng)硬盤)。 OHCIHCDsupport
支持USB設(shè)備(如:USB移動(dòng)硬盤)。 UHCIHCD(mostinterandVIA)support
支持USB鍵盤。 USBmassstoragesupport
我們要在系統(tǒng)運(yùn)行期,動(dòng)態(tài)MountUSB移動(dòng)設(shè)備,該選項(xiàng)必須[M]上。 ATA/ATAPI/MFM/RLLsupport我們的ISO啟動(dòng)系統(tǒng)運(yùn)行在PC機(jī)上,而大多數(shù)PC機(jī)使用的是IDE硬盤(一般服務(wù)器系統(tǒng)才使用SCSI硬盤設(shè)備),我們可以在啟動(dòng)系統(tǒng)中使用外部應(yīng)用程序進(jìn)行硬盤的操作。SCSIdevicesupport SCSIdevicesupport
在Linux系統(tǒng)中,USB移動(dòng)磁盤被虛擬成SCSI設(shè)備,我們系統(tǒng)需要讀到USB磁盤上的信息。所以該選項(xiàng)需要[M]上。 SCSIdisksupport SCSI磁盤設(shè)備支持,雖然我們系統(tǒng)中沒(méi)有用到物理上的SCSI設(shè)備,但還是[M]上吧。 SCSIgenericsupport
通用的SCSI設(shè)備支持。第六頁(yè),共38頁(yè)。2.3建立依賴關(guān)系這一步一個(gè)命令makedep就可以搞定。內(nèi)核源碼樹(shù)中大多數(shù)文件都會(huì)與一些頭文件有依賴關(guān)系,makedep期間會(huì)在內(nèi)核源碼樹(shù)中每個(gè)子目錄下面產(chǎn)生一個(gè)隱藏的.depend文件。此文件內(nèi)包含子目錄里面各文件所依賴的頭文件清單。第七頁(yè),共38頁(yè)。2.4編譯內(nèi)核makebzImageormakezImage。注意bzImage和在zImage都是經(jīng)gzip算法壓縮過(guò)的內(nèi)核映像,所不同的是在zImage的大小無(wú)法超過(guò)500KB,而bzImage則沒(méi)有這個(gè)限制,如果映象建立過(guò)程中有錯(cuò)誤,一個(gè)就是你的內(nèi)核配置不正確,還有一個(gè)可能就是需要makemrproper來(lái)消除上一次的編譯記錄,makemrproper之后內(nèi)核源碼相當(dāng)于剛安裝時(shí)候的狀態(tài)。第八頁(yè),共38頁(yè)。2.5建立并安裝內(nèi)核makemodules&makemodules_install。注意模塊的默認(rèn)安裝位置是/lib/modules目錄下,目錄名即是你的內(nèi)核版號(hào),如果/lib/modules目錄下有一個(gè)相同的內(nèi)核版本號(hào)目錄,如果很重要的話你最好把它備份,因?yàn)闀?huì)被新的覆蓋。至此內(nèi)核以及相應(yīng)的模塊已經(jīng)建立好了。第九頁(yè),共38頁(yè)。3.制作根文件系統(tǒng)3.1根文件系統(tǒng)的基礎(chǔ)結(jié)構(gòu)3.2建立根文件系統(tǒng)3.3建立設(shè)備文件3.4制定應(yīng)用程序3.5系統(tǒng)配置文件3.6初始化腳本第十頁(yè),共38頁(yè)。3.1根文件系統(tǒng)的基礎(chǔ)結(jié)構(gòu)目錄
內(nèi)容bin必要的用戶命令(二進(jìn)制文件)boot引導(dǎo)加載程序使用的靜態(tài)文件dev設(shè)備文件和其它特殊文件etc系統(tǒng)配置文件,包括啟動(dòng)文件home用戶主目錄lib必要的連接庫(kù),例如C連接庫(kù),內(nèi)核模塊mnt安裝點(diǎn),用于暫時(shí)安裝文件系統(tǒng)opt附加的軟件套件proc用來(lái)提供內(nèi)核與進(jìn)程信息的虛擬文件系統(tǒng)rootroot用戶的主目錄sbin必要的系統(tǒng)管理員命令(二進(jìn)制文件)tmp暫時(shí)性的文件usr在第二層包括對(duì)大多數(shù)用戶都有用的大量應(yīng)用程序和文件(包括庫(kù)文件)var監(jiān)控程序和工具程序所存放的可變數(shù)據(jù)第十一頁(yè),共38頁(yè)。3.2建立根文件系統(tǒng)(一)對(duì)于ISO啟動(dòng)盤上的linux來(lái)說(shuō),用戶的權(quán)限問(wèn)題并不復(fù)雜,我們只需要設(shè)置一個(gè)超級(jí)用戶以及其它系統(tǒng)服務(wù)必要的帳戶即可,由于相當(dāng)于是單用戶,因此home目錄也可以不要,其它的目錄在我看來(lái)都是必要的,下面我們開(kāi)始建立根文件系統(tǒng)的基本結(jié)構(gòu)。#cd/mnt/rootfs#mkdirbinsbindevetclibroottmpusrvarprocoptmnt#mkdirusr/{bin,sbin,lib,share}#mkdirvar/{lock,log,run,empty}第十二頁(yè),共38頁(yè)。3.2建立根文件系統(tǒng)(二)一般二進(jìn)制命令可以存放的目錄包括bin,sbin,usr/bin,usr/sbin,它們有什么區(qū)別呢?二進(jìn)制文件放在哪個(gè)目錄,這與它在系統(tǒng)中所扮演的角色密切相關(guān),如果這是普通用戶和系統(tǒng)管理員必備的二進(jìn)制文件(比如ls和mkdir等),就會(huì)放在bin目錄下,如果只是系統(tǒng)管理員所具有的一些特權(quán)指令(普通用戶使用這些指令有限制,如ifconfig),那么它應(yīng)該放在sbin目錄下,usr/bin目錄下存放的是普通用戶和管理員"不常用"的命令,而usr/sbin目錄下是管理員"不常用"的命令。上面已經(jīng)說(shuō)過(guò)我們不需要區(qū)分普通用戶和系統(tǒng)管理員(root),因此我們只需創(chuàng)建一個(gè)系統(tǒng)管理員帳號(hào)就可以了,但是這里為什么我們還要?jiǎng)?chuàng)建這四個(gè)目錄呢?是因?yàn)槲覀冇玫絙usybox套件,下面說(shuō)明安裝定制應(yīng)用程序的時(shí)候會(huì)講到。下面我們把剛才建立的內(nèi)核模塊拷貝到lib目錄下(注:以后我們所有的操作都是以/mnt/rootfs為根操作的)
#mkdirlib/modules#cp–dpR/lib/modules/2.4.20-8customlib/modules第十三頁(yè),共38頁(yè)。3.3建立設(shè)備文件(一)依照unix的傳統(tǒng),在Linux系統(tǒng)中任何對(duì)象(包括設(shè)備)都可以視為文件,在Linux系統(tǒng)中所有的設(shè)備文件都放在dev目錄下面,建立設(shè)備文件通常有兩種方法,一個(gè)是直接把宿主機(jī)上面的拷貝過(guò)來(lái)(拷貝的時(shí)候需要加上dpR參數(shù)),另外一種方法就是自己手工用mknod創(chuàng)建(注意這兩種方法都需要root權(quán)限)。
一般情況下我們都是使用第一種方法,但是這里面為了便于大家更深入的理解設(shè)備文件,我使用第二種方法來(lái)創(chuàng)建。首先來(lái)看如何使用mknod命令來(lái)創(chuàng)建特定的設(shè)備文件。
#cddev#mknod-m666nullc13
上面這條命令創(chuàng)建了null設(shè)備,-m參數(shù)指定所創(chuàng)建設(shè)備的基本權(quán)限,null是設(shè)備名稱,c代表是字符設(shè)備,相應(yīng)的塊設(shè)備用b表示,1是主編號(hào),3是次編號(hào)。第十四頁(yè),共38頁(yè)。3.3建立設(shè)備文件(二)我們這里需要建立的dev條目如表格所示:文件名說(shuō)明類型主編號(hào)次編號(hào)權(quán)限位mem物理內(nèi)存存取字符設(shè)備11600console系統(tǒng)控制臺(tái)字符設(shè)備51600urandom真隨機(jī)數(shù)產(chǎn)生器字符設(shè)備18644nullnull(黑洞)設(shè)備字符設(shè)備13666zero以nullbyte(零值字節(jié))為數(shù)據(jù)來(lái)源字符設(shè)備15666tty現(xiàn)行的tty設(shè)備字符設(shè)備50666tty0現(xiàn)行的虛擬控制臺(tái)字符設(shè)備40600tty1第一個(gè)虛擬控制臺(tái)字符設(shè)備41600ptyp0firstpseudo-ttymaster字符設(shè)備20666ttyp0firstBSDpseudo-ttyslave字符設(shè)備30666ram0第一塊ram盤塊設(shè)備10640hda主IDE硬盤(或者光盤)塊設(shè)備30660hda1上述主盤的第一個(gè)分區(qū)塊設(shè)備31660hdb從IDE硬盤(或者光盤)塊設(shè)備364660hdb1上述從盤的第一個(gè)分區(qū)塊設(shè)備365660sda第一塊scsi盤的整個(gè)盤塊設(shè)備80660sda1第一塊scsi盤的第一個(gè)分區(qū)塊設(shè)備81660sdb第二塊scsi盤的整個(gè)盤塊設(shè)備816660sdb1第二塊scsi盤的第一個(gè)分區(qū)塊設(shè)備816660fd0第一個(gè)軟盤設(shè)備塊設(shè)備20660第十五頁(yè),共38頁(yè)。3.4制定應(yīng)用程序這個(gè)是個(gè)大頭,但是由于一般的發(fā)行版自帶的應(yīng)用程序都很龐大,而且應(yīng)用程序依賴的動(dòng)態(tài)鏈接庫(kù)也大的出奇,所以就有人想出很多辦法,其中busybox在這方面做的非常的好,目前busybox在嵌入式方面應(yīng)用非常廣泛,BusyBox真如其名,它把所有的應(yīng)用程序集成在一個(gè)命令里面,目前BusyBox支持unix/linux命令集里面的大部分命令,包括基本的命令cp,cd,chmod,chown,date,cat,ar等,編輯工具vi,awk等,網(wǎng)絡(luò)工具ifconfig,netstat,route,telnet,,,telnetd等,模塊工具lsmod,insmod,rmmod,modprobe,壓縮解壓縮工具gzip,gunzip,tar,bzip,bunzip,zip,unzip等,查找工具find,grep,xargs,init工具init,poweroff,halt,reboot,帳號(hào)密碼管理工具addgroup,delgroup,adduser,deluser,getty,login,shadow,進(jìn)程相關(guān)工具free,kill,killall,top,ps等,其它的last,fdisk,dmesg,swapon,s等等都有,另外,BusyBox還提供幾個(gè)shell,我們一般用ash,它和bash非常的相似。第十六頁(yè),共38頁(yè)。3.4.1BusyBox配置首先到網(wǎng)上下載一個(gè)穩(wěn)定的BusyBox版本,我用的版本是busybox-1.10.4,然后解壓到工作目錄下。busybox的配置方法和標(biāo)準(zhǔn)的linux內(nèi)核的配置方法非常相似,我們只要切換到busybox的根目錄下,使用makemenuconfig就會(huì)輕松定制出適合特定用途的一組應(yīng)用程序。#makemenuconfig#make#makeinstall
注意busybox默認(rèn)是安裝到根目錄下的_install文件文件夾。#cd_install#ls
你會(huì)發(fā)現(xiàn)bin目錄下只有一個(gè)busybox二進(jìn)制文件,其它的命令,bin,sbin以及usr/bin,usr/sbin目錄下的都是指向busybox的鏈接文件。這么多命令一個(gè)應(yīng)用程序就搞定了,我們看看busybox有多大:#du-kbin/busybox625第十七頁(yè),共38頁(yè)。3.4.2安裝BusyBox到根文件系統(tǒng)在busybox的根目錄下編譯好二進(jìn)制程序之后運(yùn)行:#makeinstallPREFIX=/mnt/roofsbusybox安裝好之后,看看它依賴的動(dòng)態(tài)鏈接庫(kù)#lddbusyboxlibm.so.6=>/lib/tls/libm.so.6(0x40026000)libcrypt.so.1=>/lib/libcrypt.so.1(0x40048000)libc.so.6=>/lib/tls/libc.so.6(0x42000000)/lib/ld-linux.so.2=>/lib/ld-linux.so.2(0x40000000)
#cd/mnt/rootfs#cdlib#cp–dpR/lib/libc-2.3.2.so./#cp–dpR/lib/libc.so.6./#cp–dpR/lib/libm*./#cp–dpR/lib/libcrypt-2.3.2.so./#cp–dpR/lib/libcrypt.so.1./#mkdirtls#ln–slibc-2.3.2.sotls/libc.so.6#ln–slibm-2.3.2.sotls/libm.so.6第十八頁(yè),共38頁(yè)。3.4.3BusyBox的初始化除了基本的命令之外,BusyBox還支持init功能,如同其它的init一樣,busybox的init也是完成系統(tǒng)的初始化工作,關(guān)機(jī)前的工作等等,我們知道在Linux的內(nèi)核被載入之后,機(jī)器就把控制權(quán)轉(zhuǎn)交給內(nèi)核,linux的內(nèi)核啟動(dòng)之后,做了一些工作,然后找到根文件系統(tǒng)里面的init程序,并執(zhí)行它,BusyBox的init進(jìn)程會(huì)依次進(jìn)行以下工作:(參考<<構(gòu)建嵌入式LINUX系統(tǒng)>>p201)為init設(shè)置信號(hào)處理過(guò)程初始化控制臺(tái)剖析/etc/inittab文件執(zhí)行系統(tǒng)初始化命令行,缺省情況下會(huì)使用/etc/init.d/rcS執(zhí)行所有導(dǎo)致init暫停的inittab命令(動(dòng)作類型:wait)執(zhí)行所有僅執(zhí)行一次的inittab(動(dòng)作類型:once)
一旦完成以上工作,init進(jìn)程便會(huì)循環(huán)執(zhí)行以下進(jìn)程:執(zhí)行所有終止時(shí)必須重新啟動(dòng)的inittab命令(動(dòng)作類型:once)執(zhí)行所有終止時(shí)必須重新啟動(dòng)但啟動(dòng)前必須詢問(wèn)用戶的inittab命令(動(dòng)作類型:askfirst)第十九頁(yè),共38頁(yè)。3.5系統(tǒng)配置文件3.5.1/etc/init.d/rcS文件3.5.2/etc/fstab文件3.5.3/etc/mtab文件3.5.4/etc/profile文件3.5.5/etc/ld.so.conf與/etc/ld.so.cache文件3.5.6/etc/passwd,/etc/shadow,/etc/group文件3.5.7/etc/services文件3.5.8/etc/nsswitch.conf文件3.5.9/etc/hosts,/etc/host.conf,/etc/resolv.conf文件3.5.10/etc/syslog.conf文件第二十頁(yè),共38頁(yè)。3.5.1/etc/init.d/rcS文件配置文件一般放在/etc/目錄下,init初始化命令行的文件是/etc/init.d/rcS,下面是我的rcS文件:#!/bin/sh/bin/mount-av/etc/init.d/rc.usb/etc/init.d/rc.idestart/bin/mount/dev/had/mnt/etc/init.d/rc.local#endmount-av掛載所有在/etc/fstab里面列出的文件系統(tǒng);依次執(zhí)行rc.usb(加載usb模塊),rc.idestart(加載IDE驅(qū)動(dòng)),rc.local(執(zhí)行本地的一些服務(wù))。第二十一頁(yè),共38頁(yè)。3.5.2/etc/fstab文件上面使用mount命令的時(shí)候已經(jīng)涉及到了fstab文件,下面是我的fstab文件:/dev/ram0 /
ext2 defaults 0 0Proc /
proc proc defaults
0 0關(guān)于fstab配置文件的語(yǔ)法可以manfstab第二十二頁(yè),共38頁(yè)。3.5.3/etc/mtab文件這個(gè)文件里面的內(nèi)容是動(dòng)態(tài)變化的,當(dāng)mount一個(gè)文件系統(tǒng)的時(shí)候,如果mount沒(méi)有加上-n參數(shù),那么安裝信息就會(huì)寫(xiě)入mtab文件,df命令讀取的就是這個(gè)文件。第二十三頁(yè),共38頁(yè)。3.5.4/etc/profile文件這個(gè)文件是sh用的,當(dāng)用戶獲得一個(gè)shell后,sh就會(huì)根據(jù)這個(gè)文件配置用戶的登陸環(huán)境,下面是我的profile文件。echoecho-n"Processing/etc/profile..."
PATH=/bin:/sbin:/usr/bin:/usr/sbinexportPATHecho"Done"echo其中PATH環(huán)境變量指定當(dāng)用戶鍵入一個(gè)命令時(shí),sh尋找這個(gè)命令的路徑。其它的export命令,alias命令不用說(shuō)了吧,busybox里面的ash和bash非常相似,因此只要熟悉bash就會(huì)不成問(wèn)題。第二十四頁(yè),共38頁(yè)。3.5.5/etc/ld.so.conf與/etc/ld.so.cache文件這兩個(gè)文件是與lib庫(kù)有關(guān)的,它們用來(lái)指定應(yīng)用程序?qū)ふ襩ib庫(kù)的路徑。我的ld.so.conf文件內(nèi)容如下:/lib/usr/lib/usr/local/lib
ld.so.cache里面的內(nèi)容是由是ldconfig命令生成的,ldconfig根據(jù)ld.so.conf配置文件生成ld.so.cache里面的內(nèi)容,應(yīng)用程序讀取的是ld.so.cache文件,因此如果變動(dòng)了ld.so.conf文件,需要運(yùn)行一次ldconfig才能是新的配置生效,另外如果新加了lib庫(kù)文件,也需要ldconfig。第二十五頁(yè),共38頁(yè)。3.5.6/etc/passwd,/etc/shadow,/etc/group文件group里面存放的是用戶組的信息,我的group文件內(nèi)容如下:root:x:0:root:passwd里面存放的是用戶的信息,我的passwd文件內(nèi)容如下:root:x:0:0:root:/root:/bin/shUser:/var/sshd:x:74:74:piviledge-separatedSSH:/var/empty/sshd:/sbin/nologin注意,group和passwd里面的每一行都不是多余的。shadow文件是pam認(rèn)證用到的密碼存放文件第二十六頁(yè),共38頁(yè)。3.5.7/etc/services文件網(wǎng)絡(luò)應(yīng)用程序用到的標(biāo)準(zhǔn)服務(wù)端口映射表,我的services文件如下:tcpmux 1/tcptcpmux 1/udp 20/tcpftp 21/tcpssh 22/tcpssh 22/udptelnet 23/tcpnameserver 42/tcpnamesyslog 514/udpauth 113/tcpauthenticationtapident因?yàn)槲倚枰_(kāi)啟sshd,syslogd服務(wù),同時(shí)會(huì)使用ftp,ssh,telnet應(yīng)用程序。所以就會(huì)加上上面的東西,但是注意并不是所有的網(wǎng)絡(luò)應(yīng)用程序都會(huì)依賴與services文件,比如telnet,但是也許telnetd需要。第二十七頁(yè),共38頁(yè)。3.5.8/etc/nsswitch.conf文件這個(gè)文件的作用很大,沒(méi)有它很多程序都不能正常運(yùn)行,關(guān)于它的具體作用還是用mannsswitch.conf看看吧。我的nsswitch.conf文件內(nèi)容如下:passwd:filesshadow:filesgroup:fileshosts:filesdnsethers:filesnetmasks:filesnetworks:filesprotocols:filesservices:filesnetgroup:filespublickey:filesautomount:filesaliases:files注意hosts這一行一定要加上dns,不然即使有resolv.conf文件,域名也不能解析,注意nsswitch.conf是對(duì)應(yīng)一組lib庫(kù)的,這里我們用了files,dns,因此需要拷貝相應(yīng)的lib庫(kù)到/lib目錄下.#cd/mnt/rootfs#cp-dpR/lib/libnss_files*./lib#cp-dpR/lib/libnss_dns*./lib第二十八頁(yè),共38頁(yè)。3.5.9/etc/hosts,/etc/host.conf,/etc/resolv.conf文件我的hosts文件內(nèi)容如下,不用說(shuō)也應(yīng)該清楚什么意思了,不清楚的manhosts。localhost:localdomainlocalhost
host.conf和resolv.conf是域名解析的時(shí)候用到的配置文件,其中resolv.conf里面是域名服務(wù)器的ip地址,host.conf里面放的是主機(jī)的查找規(guī)則。不了解的還是manhost.conf和manresolv.conf。我的host.conf與resolv.conf文件內(nèi)容分別如下:host.conf:orderhosts,bind
resolv.conf:nameserver31第二十九頁(yè),共38頁(yè)。3.5.10/etc/syslog.conf文件syslogd服務(wù)程序讀取的配置文件。我的文件內(nèi)容如下:#Logallkernelmessagestotheconsole.#Loggingmuchelsecluttersupthescreen.#kern.*/dev/console#Loganything(exceptmail)oflevelinfoorhigher.#Don'tlogprivateauthenticationmessages!*.info;mail.none;authpriv.none;cron.none/var/log/messages
#Theauthprivrestrictedaccess.authpriv.*/var/log/secure
#Savebootmessagesalsotoboot.loglocal7.*/var/log/boot.log第三十頁(yè),共38頁(yè)。3.6初始化腳本3.6.1/etc/init.d/rc.usb文件3.6.2/etc/init.d/rc.ide文件3.6.3/etc/init.d/rc.local文件第三十一頁(yè),共38頁(yè)。3.6.1/etc/init.d/rc.usb文件(一)加載usb驅(qū)動(dòng)模塊,當(dāng)然如果你的內(nèi)核是靜態(tài)編譯進(jìn)usb模塊的,那就沒(méi)有必要在這里多此一舉了。以節(jié)省ramdisk的存儲(chǔ)空間,所以還是需要內(nèi)核識(shí)別u盤,等系統(tǒng)啟動(dòng)之后再把需要的東西從u盤拷貝到ram里面。rc.usb內(nèi)容如下:
#!/bin/sh##Thisscriptistoinitilizeusbcontrollerand##Thedrivermoduleusb-storage##Touseusbunderlinuxthemodulecore,scsi_mod##andsd_modareneeded,inthis##systemtheyarecompliedinkernel#/sbin/usbisthesmallscripttostartorstopusbsupport/sbin/usbstart#scriptrc.usbend這個(gè)腳本里面用到了/sbin/usb這個(gè)程序,其實(shí)并不是一個(gè)真正的程序,它是我寫(xiě)的一個(gè)加載和卸載usb模塊的shell腳本。/sbin/usb腳本內(nèi)容如下:第三十二頁(yè),共38頁(yè)。3.6.1/etc/init.d/rc.usb文件(二)#!/bin/sh##Asimplestartupscripttostartusbforlinux#
case"$1"in start) /sbin/modprobeusbcore /sbin/modprobeusbhid /sbin/modprobeehci_hcd /sbin/modprobeuhci_hcd /sbin/modprobeohci_hcd /sbin/modprobeusb-storage ;;
stop) /sbin/rmmodusbcore /sbin/rmmodusbhid /sbin/rmmodehci_hcd /sbin/rmmoduhci_hcd /sbin/rmmodohci_hcd /sbin/rmmodusb-storage ;; *) echo"Usage:$0{start|stop}" exit1 esac#script/sbin/usbend第三十三頁(yè),共38頁(yè)。3.6.2/etc/init.d/rc.ide文件加載IDE硬盤設(shè)備腳本,在LinuxKernel2.6.31中,IDE是以模塊的方式編譯的(即:無(wú)法[*]),所以,必須外部加載后,才能驅(qū)動(dòng)IDE硬盤設(shè)備。我的rc.ide腳本如下:
#!/bin/sh#Asimplestartupscripttostarti
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 工程合同范本6
- 雇傭搬運(yùn)合同范本
- 《航海氣象學(xué)》期末考試備考題庫(kù)及答案(一)
- 廣告護(hù)欄合同范本
- 公廁建設(shè)合同范本
- 廠區(qū)保安外包合同范本
- 基金公司合同范本
- 校園活動(dòng)安全班會(huì)課件
- 防塵建筑材料采購(gòu)合同范本
- 配電行業(yè)解決方案
- 易栓癥教學(xué)講解課件
- 第五章人體工程學(xué)及辦公空間設(shè)計(jì)課件
- 高中生物人教版必修一動(dòng)畫(huà)大全課件
- 職業(yè)危害因素監(jiān)測(cè)檢測(cè)記錄表
- 內(nèi)照射的防護(hù)課件
- SPECTRO MAX直讀光譜儀安全操作規(guī)程
- 工程缺陷責(zé)任期終止證書(shū)
- 新概念英語(yǔ)第二冊(cè)課文(全中文)
- 宇通客車CAN總線系統(tǒng)培訓(xùn)教材課件
- DB4401-T 10.5-2019 +反恐怖防范管理++第5部分:教育機(jī)構(gòu)-(高清現(xiàn)行)
- 廣東深圳市福田區(qū)選用機(jī)關(guān)事業(yè)單位輔助人員和社區(qū)專職工作者365人模擬試卷【共500題附答案解析】
評(píng)論
0/150
提交評(píng)論