一、linux內(nèi)核學(xué)習(xí)之一:環(huán)境搭建--安裝Debian7.3
本系列文章假設(shè)讀者已對(duì)linux有一定的了解,其實(shí)學(xué)習(xí)linux內(nèi)核不需要有很深的關(guān)于linux的知識(shí),只需要了解以下內(nèi)容:linux基礎(chǔ)知識(shí)及基本shell命令;現(xiàn)代操作系統(tǒng)的基本概念;C語言和gcc基本使用。
在開始我們的linux內(nèi)核學(xué)習(xí)之前。首先需要搭建我們的工作學(xué)習(xí)環(huán)境,即安裝linux系統(tǒng)。關(guān)于linux系統(tǒng)構(gòu)建本身的學(xué)問已經(jīng)復(fù)雜到可以成為一個(gè)獨(dú)立的學(xué)科了,畢竟這不是我們學(xué)習(xí)的內(nèi)容,所以我選擇最簡單的方法:選擇一個(gè)linux發(fā)行版進(jìn)行安裝。
1、選擇linux發(fā)行版
即使使用最簡單的構(gòu)建工作環(huán)境的方法,也耗費(fèi)了我許多時(shí)間。
"選擇"之所以這樣困難,正是因?yàn)榭晒┻x擇的太多了!
linux發(fā)行版有成百上千種,每個(gè)發(fā)行版都有不同的特點(diǎn),確實(shí)讓人難于取舍。我先后試裝過Gentoo,Arch,debian,fedora。發(fā)行版的選擇見仁見智,我不敢說哪個(gè)發(fā)行版好,哪個(gè)不好,每個(gè)發(fā)行版都有它的擁躉。這里 建議在選擇時(shí)考慮幾個(gè)問題:設(shè)計(jì)哲學(xué),社區(qū)支持和包管理器。
實(shí)際上,選擇哪種發(fā)行版都關(guān)系不大,發(fā)行版之間的差別基本上都是外圍組件,對(duì)linux的內(nèi)核的修改都不會(huì)很多。
況且我們?cè)趯W(xué)習(xí)linux內(nèi)核,或者開發(fā)linux驅(qū)動(dòng)時(shí),一般都是以官方內(nèi)核(即Linus維護(hù)的主線內(nèi)核)為基準(zhǔn).所以我們搭建好環(huán)境后幾乎都是要選擇一個(gè)版本的官方內(nèi)核來重新編繹以備用的。
現(xiàn)階段有時(shí)間可以多試試不同的發(fā)行版,選擇自己最喜歡,用起來最順手的,一旦選擇好了,就不要再改了,一直堅(jiān)持用它,把它用得滾瓜爛熟.人們會(huì)關(guān)注你在linux環(huán)境中是否得心應(yīng)手,一般不會(huì)關(guān)心你懂得用多少種linux發(fā)行版。
經(jīng)過反復(fù)的試用,比較,我最終選擇了Debian,吸引我的是它的崇尚自由的設(shè)計(jì)哲學(xué);強(qiáng)大的社區(qū)支持;數(shù)量龐大的軟件包. 相對(duì)而言debian還是比較保守的,我用的當(dāng)前的最新穩(wěn)定版Debian7.3,在2013年12月發(fā)布,它使用的內(nèi)核還是3.2的(現(xiàn)在官方最新的穩(wěn)定版內(nèi)核為3.12.8),不過它配套的工具如GCC,make等,即使用來編繹最新版的內(nèi)核也已經(jīng)夠用了。
2 、選擇主機(jī)環(huán)境
網(wǎng)上很多有經(jīng)驗(yàn)的linux專家級(jí)人物都建議直接在自己的工作機(jī)或家庭機(jī)上安裝linux系統(tǒng),所有日常工作,生活都在linux系統(tǒng)里完成。
不過對(duì)于大多數(shù)人來說,這太不現(xiàn)實(shí)了了。作為桌面系統(tǒng),當(dāng)對(duì)于windows而言,linux還是有許多不方便的,即使是最近幾年非常火的ubuntu,號(hào)稱可以替換windows的發(fā)行版,在日常使用的軟件方面,還是有不小的差距;
再者,我們?cè)诠ぷ髦谐3_€是需要開發(fā)windows程序,而家里更不合適了,家里人基本上都用慣了windows,總不能強(qiáng)迫他們?nèi)ビ貌欢膌inux系統(tǒng)吧。因此,windows+vmware作為主機(jī)環(huán)境對(duì)于許多人來說,還是第一選擇。
另外還需要一臺(tái)真實(shí)電腦上安裝linux系統(tǒng),因?yàn)樵趘mware里的客戶系統(tǒng)無法訪問主機(jī)中一些硬件,如pci設(shè)備等,當(dāng)開發(fā)這些設(shè)備的驅(qū)動(dòng)時(shí)必須在真實(shí)機(jī)器上調(diào)試。
我使用的主機(jī)環(huán)境有兩個(gè):windows 7+vmware10.0.1環(huán)境中安裝debian以及x86-64位機(jī)器上的windows 7+debian雙系統(tǒng)。
3 安裝準(zhǔn)備
安裝準(zhǔn)備工作的第一步當(dāng)然是下載安裝鏡像了。Debian的下載地址:www.debian.org/CD/http-ftp。
因?yàn)樵?a target="_blank">公司限制上網(wǎng),另外也不喜歡老是在線安裝軟件,就直接下載了一個(gè)用于amd64平臺(tái)的DVD安裝鏡像.有3G多,常用的軟件都有了,需要時(shí)直接從DVD里安裝就行了,一勞永逸。
3.1 vmware
首先使用vmware創(chuàng)建vmware虛擬機(jī),創(chuàng)建時(shí)候,"Guest operation system"選擇"Debian 7 64位"這一項(xiàng)。
內(nèi)核分配512M即可,硬盤20G足夠了。vmware虛擬機(jī)可以直接將iso文件作為客戶機(jī)的光盤使用,因此安裝起來非常方便。
只需要在虛擬設(shè)置中的DVD光驅(qū)的連接選項(xiàng)設(shè)置為"使用ISO映象文件",并指定DVD安裝ISO鏡像的路徑即可(后面為了簡潔起見,將這一操作稱為"ISO鏡像加入虛擬機(jī)"),接下來開機(jī)即可用光盤引導(dǎo)(如果虛擬機(jī)磁盤已安裝有系統(tǒng),則需要在虛擬機(jī)的BIOS里設(shè)置光盤啟動(dòng),這跟普通電腦設(shè)置方法是相同的)。
3.2 x86-64機(jī)器
在真實(shí)的機(jī)器上,使用U盤安裝更加方便。我們將在已裝windwos7的x86-64機(jī)器上用U盤安裝,確保你的電腦能用U盤啟動(dòng),如果不行只能選擇燒寫ISO到DVD光盤中用光盤安盤了。其次要確保硬盤有足夠的空間,如果沒有的話,可以調(diào)整windows使用的磁盤空間大?。ㄈ绻欢O(shè)置方法,可以自己百度一下),我的硬盤預(yù)留了20G的空間。
接下來制作U盤安裝盤,這里需要用到Universal-USB-Installer工具(我用的是1.9.5.1版本)。步驟如下:
在windows系統(tǒng)下插入U(xiǎn)盤;打開Universal-USB-Installer程序;
在step1中選擇"try unlisted linux ISO";
step2中選擇DVD安裝ISO的路徑;step3選擇要安裝的U盤(推薦勾選"Format");
開始寫入U(xiǎn)盤,經(jīng)過幾十分鐘的等待,U盤安裝完畢,可以使用該U盤啟動(dòng)了。
(用U盤啟動(dòng)的方法與主板的類型相關(guān),可在網(wǎng)上搜索相關(guān)的內(nèi)容)
4 安裝系統(tǒng)
為了使用方便,兩個(gè)系統(tǒng)將采用相同的安裝配置,另外我只安裝基本的shell環(huán)境和必要的工具軟件。
使用GUI模式雖然美觀,看起來爽,但是對(duì)我們這些硬件資源貧乏的窮人來說,運(yùn)行GUI就是種浪費(fèi);其次,與windows不同,linux的X Window完全運(yùn)行在用戶態(tài),與內(nèi)核關(guān)系不大;再者,在漂亮的桌面環(huán)境上放一個(gè)終端窗口,總覺得很怪異。
我覺得內(nèi)核和驅(qū)動(dòng)開發(fā)者都應(yīng)該用shell環(huán)境,只在需要進(jìn)行UI相關(guān)的測試或編寫UI程序時(shí)才使用GUI環(huán)境。
言歸正傳,繼續(xù)進(jìn)行我們的系統(tǒng)安裝吧。經(jīng)過上面的步驟,不管是vmware還是x86-64機(jī)器,debian安裝界面總算是出現(xiàn)了。
選擇"advanced option"-->"expert install"進(jìn)入專家安裝模式(現(xiàn)在專家那么多,咱也來冒充一回吧!!)。彈出了一列選項(xiàng),其實(shí)里面有很多選項(xiàng)都沒必要使用的,大部分都可以在系統(tǒng)安裝完成后進(jìn)行設(shè)置。
選項(xiàng)列表的前面是安裝語言和鍵盤設(shè)置,這些可以跳過,就用默認(rèn)的English就行了,反正在文本模式下也顯示不了中文。首先要執(zhí)行的是" Load installer components from cd",這一步會(huì)加載ISO(或U盤)中的安裝組件,全部選擇默認(rèn)則可。
加載完后,安裝選項(xiàng)又多了不少。下一步可以"setup user and passwords",在配置選擇中,最好選擇“不使用root帳號(hào)”,root帳戶權(quán)限太大,現(xiàn)在的linux界普遍認(rèn)為不用為妙,可以使用sudo工具執(zhí)行特權(quán)操作,創(chuàng)建自己的用戶名和密碼,按提示操作即可。
接著就要配置磁盤分區(qū)了,首先要"detect disks",讓安裝程序先檢測磁盤,然后進(jìn)行"partition disks",怕安裝程序弄壞我的磁盤,我喜歡選擇了"Manual"模式。懶得去設(shè)計(jì)分區(qū),將剩余空間全部劃成了一個(gè)"/"分區(qū),分區(qū)的屬性分別是:"ext4"類型,"primary","bootable"選項(xiàng)。完成分成,忽略關(guān)于沒有交換分區(qū)的警告,寫入磁盤就完了。
現(xiàn)在可以開始"install the base system"。安裝過程中有個(gè)提示,問你要選擇哪個(gè)內(nèi)核,我選了"linux-image-3.2.0-4-amd64",沒去研究供選擇的兩個(gè)內(nèi)核有何不同;接下來又提示initrd的選擇,為了節(jié)省空間,選擇了"targeted:only ....."。
接下來可以"configure the package manager",因?yàn)槲也幌胱屜到y(tǒng)連網(wǎng),所以就在"use a network mirror"選擇了"no",另外其他的"service"也全部不選,當(dāng)然這些選項(xiàng)都可以在系統(tǒng)安裝好以后進(jìn)行修改。
最后選擇安裝軟件:"select and install software",在軟件列表中,我只選擇了安裝"standard system utilities",其他全部不裝。
到這里,實(shí)質(zhì)上的系統(tǒng)已經(jīng)安裝完了,就差引導(dǎo)部分了。有g(shù)rub和lilo可選,我更喜歡grub,因此選擇:"install the grub boot loader"。debian7.3用的是grub2,功能非常強(qiáng)大。
在安裝過程中g(shù)rub會(huì)自動(dòng)檢測當(dāng)前磁盤中安裝的其他的系統(tǒng),可以放心將grub安裝到MBR中,不必?fù)?dān)心你的windows會(huì)無法啟動(dòng)。安裝完畢,選擇"finish the install",重啟系統(tǒng)吧!
5 安裝開發(fā)工具
現(xiàn)在我們有了一個(gè)基本的debian系統(tǒng),但是還沒有g(shù)cc等開發(fā)工具,無法進(jìn)行日常工作,需要安裝這些工具。
5.1 設(shè)置安裝源
debian的包管理器非常完善,我們現(xiàn)在安裝軟件就用debian強(qiáng)大的apt-get命令。但是在使用前要先配置安裝源,以告訴apt-get命令去哪里找我們的軟件。
安裝軟件盡量都從下載的ISO安裝,既然下載了那么大的一個(gè)ISO鏡像,就別浪費(fèi)了。debian可以設(shè)置幾種安裝源,如CD安裝源,網(wǎng)絡(luò)安裝源,本地安裝源。
5.1.1 設(shè)置CD安裝源
在vmware中,可以將ISO文件當(dāng)作光盤使用,實(shí)在是太方便了。因此,在vmware中我們?cè)O(shè)置以CD作為安裝源,實(shí)際上在安裝系統(tǒng)時(shí),系統(tǒng)的包管理器就已經(jīng)把DVD安裝盤加入安裝源了,可以查看/etc/apt/sources.list文件。
如果沒有加入,或者想加入別的CD安裝源也非常簡單,只需執(zhí)行以下操作:
將ISO加入虛擬機(jī)
掛載光盤:sudo mount /dev/cdrom /media/cdrom
將光盤加入安裝源:sudo apt-cdrom add
打開/etc/apt/sources.list查看是否添加成功
更新軟件件表:sudo apt-get update
5.1.2 設(shè)置本地安裝源
在真實(shí)的x86-64機(jī)器上,系統(tǒng)無法把安裝U盤識(shí)別為光盤,不能將安裝U盤作為CD安裝源加入。
不過我們可以將ISO文件掛載到某個(gè)目錄,再將該目錄作為本地安裝源加入包管理器,步驟如下:
創(chuàng)建本地安裝源目錄:sudo mkdir /mnt/iso_1
掛載ISO文件到該目錄:sudo mount /.../debian-*.iso /mnt/iso_1
添加本地安裝源:打開/etc/apt/sources.list,添加一行,內(nèi)容為:deb file:///mnt/iso_1 wheezy main
更新軟件列表:sudo apt-get update
5.2 安裝開發(fā)工具
5.2.1 安裝VIM,執(zhí)行命令:sudo apt-get install vim
安裝系統(tǒng)時(shí)安裝的是精簡版的VIM:vim.tiny,功能不齊全,因此安裝完整的VIM,喜歡其他代碼編輯工具的網(wǎng)絡(luò)可以安裝其他工具。
VIM安裝完后進(jìn)行配置,在/etc/vim/vimrc文件最后加上以下幾行(不包括括號(hào)內(nèi)容):
set nobackup (打開時(shí)不創(chuàng)建備份文件)
set ts=4 (設(shè)置tab鍵寬度為4個(gè)字符寬)
set atuoindent (啟用自動(dòng)縮進(jìn)功能)
set cindent (啟用C語言縮進(jìn)功能)
set shiftwidth=4 (縮進(jìn)寬度為4個(gè)字符寬)
syntax on (打開語法高亮功能)
5.2.2 安裝開發(fā)工具包:sudo apt-get install build-essential
build-essential包含了常用的gcc,g++,make等開發(fā)工具.
5.2.3 安裝linux-headers:sudo apt-get install linux-headers-3.2.0-4-amd6
需要編繹系統(tǒng)自帶內(nèi)核相關(guān)的模塊時(shí),必須安裝該內(nèi)核對(duì)應(yīng)的linux-headers,里面包含內(nèi)核配置信息,內(nèi)核頭文件等。
5.2.4 安裝ncurses-dev:sudo apt-get install libncurses5-dev
內(nèi)核配置腳本依賴于該工具,如果沒有安裝的話,配置內(nèi)核里會(huì)出錯(cuò)。
5.2.5 安裝git:sudo apt-get install git
著名的流行的分布式版本管理工具,由Linus開發(fā),官方內(nèi)核開發(fā)用的版本管理工具也是git。Linus的作品,不能不用??!
git需要先配置用戶名和email:
git config --global user.name "xxxxxx"
git config --global user.email "xxxxxx@xxx.com"
6 環(huán)境搭建完成
可以正式開始我們的linux內(nèi)核學(xué)習(xí)之旅了。
二、linux內(nèi)核學(xué)習(xí)之二:編譯內(nèi)核
環(huán)境搭好后,馬上就進(jìn)入到下一環(huán)節(jié)--編譯內(nèi)核。linux的內(nèi)核是整個(gè)系統(tǒng)最核心的部分,內(nèi)核的功能基本上決定了系統(tǒng)的能力。
linux的內(nèi)核代碼使用的是GPL授權(quán),允許自由下載,修改并重新發(fā)布內(nèi)核,只要求發(fā)布修改后的內(nèi)核的同時(shí)提供源代碼。
各種各樣的內(nèi)核版本眾多,幾乎所有的linux發(fā)行版都會(huì)對(duì)內(nèi)核進(jìn)行或多或少的修改,debian也不例外。這些內(nèi)核都有個(gè)源頭,即Linus維護(hù)的官方內(nèi)核,其他的內(nèi)核幾乎都是建立在官方內(nèi)核的基礎(chǔ)上的。我們的內(nèi)核學(xué)習(xí),也是以官方內(nèi)核為準(zhǔn)。
linux官方內(nèi)核的網(wǎng)站是:www.kernel.org。從里面可以了解到內(nèi)核開發(fā)的最新動(dòng)態(tài),現(xiàn)在就把該網(wǎng)址加入收藏夾吧。
(另外有個(gè)網(wǎng)站:www.lwn.net里面有許多l(xiāng)inux大牛發(fā)表的觀點(diǎn),也值得收藏)。
從linux內(nèi)核3.0開始,內(nèi)核版本命名采用的策略跟以前不一樣,命名格式為3.A.B,其中A為內(nèi)核的版本,B為補(bǔ)丁的版本。即3.A.B與3.A.C的內(nèi)核是相同的版本,具有相同的功能,如果C>B,只是說明3.A.C相比3.A.B修補(bǔ)了一些BUG而已。
進(jìn)入內(nèi)核3.0時(shí)代后,內(nèi)核的開發(fā)工作發(fā)展迅速,版本更新得很快,第一個(gè)3.0版本是在2011年7月,而現(xiàn)在,最新的穩(wěn)定版已是3.12.8,而新的3.13版內(nèi)核開發(fā)工作也已接近尾聲,即將發(fā)布穩(wěn)定版了。("zh.wikipedia.org/wiki/linux"內(nèi)核"介紹了部分版本的特性)。
1 選擇內(nèi)核版本
首先我們需要從www.kernel.org選擇一個(gè)版本。實(shí)際上從2.6版本開始,內(nèi)核的架構(gòu)沒有特別大的變動(dòng),基本上是添加新的功能,添加新的驅(qū)動(dòng)的支持,內(nèi)核接口有一些變動(dòng)。
另外,除非不得已,不要再使用2.4及更低版本,因?yàn)?.6內(nèi)核的整個(gè)架構(gòu)經(jīng)過全面重新設(shè)計(jì),效率更高,功能更完善,也更安全。
我覺得盡量選擇與發(fā)行版使用的內(nèi)核版本差不多的話會(huì)比較好點(diǎn),內(nèi)核跟其他組件相對(duì)會(huì)配合得好些,不知是不是這樣。debian7.3使用的內(nèi)核是3.2的,而現(xiàn)在該內(nèi)核版本的最新版為3.2.54,使用相同內(nèi)核版本的帶有最新補(bǔ)丁的內(nèi)核重編譯并替換原來的內(nèi)核,可以最大程度上減少與系統(tǒng)其他部分的兼容性問題,這樣我們可以將主要精力集中在內(nèi)核的學(xué)習(xí)上。
下載得到的內(nèi)核名為linux-3.2.54.tar.xz。
下面將描述在上一課中搭建的“windows7+vmware10.0.1+debian7.3”的系統(tǒng)中編譯內(nèi)核linux-3.2.54的步驟,在真實(shí)機(jī)器上安裝的debian7.3系統(tǒng)上編譯的方法也是類似的。
2 安裝vmware-tools
內(nèi)核文件下載好后,需復(fù)制到vmware客戶系統(tǒng)(即debian系統(tǒng))。
最好的方法是使用vmware提供的文件共享功能,這個(gè)功能由vmware-tools軟件包提供,需要先安裝該軟件包。首先設(shè)置共享目錄,在VMware菜單欄上點(diǎn)擊"虛擬機(jī)"-->"設(shè)置",打開設(shè)置頁面,點(diǎn)擊"選項(xiàng)"屬性頁,點(diǎn)擊"共享文件夾",在右端選擇"總是啟用",再點(diǎn)擊"添加",按提示設(shè)置主機(jī)中用于共享的目錄路徑和共享名稱(我用的是workspace)。
啟動(dòng)debian系統(tǒng)后,點(diǎn)擊菜單欄的"虛擬機(jī)"-->"安裝VMWare Tools"。稍等片刻后,虛擬機(jī)的CD光驅(qū)動(dòng)應(yīng)該已經(jīng)有了vmware-tools的安裝盤。在debian系統(tǒng)按以下步驟進(jìn)行:
掛載光盤:sudo mount /dev/cdrom /media/cdrom
復(fù)制安裝包: cp /media/cdrom/VM*.tar.gz ./
解壓安裝包:tar -xvf ./VM*.tar.gz
cd ./vmware-tools-distrib
安裝:sudo ./vmware-install.pl(安裝過程中所有選項(xiàng)都使用默認(rèn)即可)
安裝完成了,檢查發(fā)現(xiàn)/mnt目錄下多了一項(xiàng)hgfs目錄,里面是主機(jī)共享目錄,即/mnt/hgfs/workspace。
3 準(zhǔn)備新的內(nèi)核源代碼
將下載的內(nèi)核源代碼放在上一步中設(shè)置的主機(jī)共享目錄中,然后解壓到默認(rèn)的內(nèi)核源代碼目錄:sudo tar -xvf /mnt/hgfs/workspace/linux-*.tar.gz -C /usr/src
/usr/src目錄下是專門存放內(nèi)核源代碼的。
放在其他目錄也可以編譯的,不過我們還是遵循通用的規(guī)則吧。
我們的debian系統(tǒng)是64位版本(正式名稱是x86_64),為了避免出現(xiàn)問題,我們的內(nèi)核也將編譯成x86_64版本,故修改下源代碼目錄名稱:sudo mv /usr/src/linux-3.2.54 /usr/src/linux-3.2.54.x86_64.同時(shí)把源代碼目錄下的Makefile文件內(nèi)容也改一下:
sudo vim /usr/src/linux-3.2.54.x86_64/Makefile
搜索字符串"EXTRAVERSION =",在"="后面加上".x86_64"。
這樣,編譯出來的內(nèi)核鏡像,模塊目錄等都會(huì)自動(dòng)加上".x86_64"后綴。
4 配置內(nèi)核
配置內(nèi)核就是告訴編譯器,源代碼中的哪些功能要編譯進(jìn)內(nèi)核,哪些編譯成模塊,哪些不需要編譯。源碼中包含了幾千個(gè)選擇,因此配置內(nèi)核是個(gè)很復(fù)雜很吃力的工作,為了簡化這個(gè)工作,內(nèi)核開發(fā)者為各個(gè)平臺(tái)編寫了默認(rèn)的簡單配置文件。以x86平臺(tái)為例,配置文件放在"arch/x86/configs"目錄下,可將這些配置文件作為配置工作的起點(diǎn),選擇其中一個(gè)文件復(fù)制到源碼目錄下,并命令名為".config"(注意前面有個(gè)".",它是隱藏文件),這是內(nèi)核編譯時(shí)使用的配置文件,也是內(nèi)核配置工具啟動(dòng)時(shí)加載的文件,當(dāng)然內(nèi)核配置修改后的配置信息也保存在這個(gè)文件里。
由于VMWare的硬件與普通的硬件不同,用內(nèi)核開發(fā)者提供的配置文件編譯出來的內(nèi)核無法引導(dǎo)系統(tǒng),我們先暫時(shí)忽略有關(guān)內(nèi)核配置的復(fù)雜細(xì)節(jié),走條捷徑,以debian系統(tǒng)安裝時(shí)產(chǎn)生的配置文件作為我們配置內(nèi)核的起點(diǎn)。
既然debian能引導(dǎo),用它編譯出來的內(nèi)核應(yīng)該不會(huì)有什么大問題,復(fù)制debian的配置文件到源代碼目錄,并配置:
sudo cp /boot/config-3.2.0-4-amd64 /usr/src/linux-3.2.54.x86_64/.config
cd /usr/src/linux-3.2.54.x86_64/
sudo make menuconfig
即使不修改內(nèi)核的配置還是需要執(zhí)行sudo make menuconfig,因?yàn)榘l(fā)行版的內(nèi)核可能經(jīng)過修改,使用的.config也可能會(huì)有差異,執(zhí)行一下sudo make menuconfig,它會(huì)重新分析.config文件,設(shè)置文件中描述的配置信息,退出后再保存成新內(nèi)核適用的.config文件(退出時(shí),配置工具會(huì)詢問你是否保存修改,需要選擇"yes")。
5 編譯,安裝新內(nèi)核
內(nèi)核配置完成了,可以編譯內(nèi)核了,分別執(zhí)行以下命令,進(jìn)行編譯并安裝內(nèi)核:
sudo makesudo make modules_installsudo make install
make命令根據(jù)配置信息進(jìn)行編譯,包括模塊。debian系統(tǒng)默認(rèn)加入了許多驅(qū)動(dòng)模塊,整個(gè)編譯過程比較耗時(shí),估計(jì)長達(dá)1.5~2個(gè)小時(shí),在編譯時(shí)可能出現(xiàn)各種問題,需要根據(jù)錯(cuò)誤提示進(jìn)行修改。
本次編譯模塊時(shí)就提示“drivers/staging/rts5139”這個(gè)模塊編譯出錯(cuò),這是一個(gè)USB讀卡器的驅(qū)動(dòng),不是什么必需的驅(qū)動(dòng),直接在內(nèi)核配置中去掉該模塊吧。
因此,重新執(zhí)行sudo make menuconfig,找到該模塊:“Device Drivers”-->"Staging drivers"-->"Realtek RTS5139 USB card reader support"。去掉該模塊支持,退出保存,重新執(zhí)行sudo make。
make modules_install命令用于安裝可裝載模塊,這些模塊會(huì)自動(dòng)安裝到/lib/modules/3.2.54.x86_64下。
make install命令執(zhí)行三個(gè)操作:復(fù)制內(nèi)核鏡像到/boot目錄下;生成initrd-img;更新grub。命令成功執(zhí)行成功后,新的內(nèi)核已可以使用,并且列在引導(dǎo)菜單中。
6 重啟系統(tǒng)
重啟系統(tǒng),grub引導(dǎo)選項(xiàng)中多了我們新編譯的內(nèi)核選擇,選擇新內(nèi)核引導(dǎo)。進(jìn)入系統(tǒng)后執(zhí)行命令uname -r 查看當(dāng)前的內(nèi)核版本,顯示為“3.2.54.x86_64”,確實(shí)是我們新編譯的內(nèi)核。
不過,在VMWare中重編譯內(nèi)核后,vmware-tools的文件共享功能不起作用了,這是因?yàn)関mware-tools中包含了內(nèi)核模塊,重編譯后,這些模塊不能再正常加載了。
只需執(zhí)行命令:sudo vmware-config-tools.pl(全部使用默認(rèn)選項(xiàng)),重新配置vmware-tools即可讓共享功能正常使用。
任務(wù)完成,可以收工!
原文標(biāo)題:Linux 內(nèi)核學(xué)習(xí):環(huán)境搭建和內(nèi)核編譯
文章出處:【微信公眾號(hào):Linux愛好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
責(zé)任編輯:haq
-
內(nèi)核
+關(guān)注
關(guān)注
3文章
1372瀏覽量
40290 -
Linux
+關(guān)注
關(guān)注
87文章
11304瀏覽量
209520
原文標(biāo)題:Linux 內(nèi)核學(xué)習(xí):環(huán)境搭建和內(nèi)核編譯
文章出處:【微信號(hào):LinuxHub,微信公眾號(hào):Linux愛好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論