0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Linux內(nèi)核學(xué)習(xí)的環(huán)境搭建和內(nèi)核編譯

Linux愛好者 ? 來源:博客園 ? 作者:xiongyuanxiong ? 2021-01-02 18:01 ? 次閱讀

一、linux內(nèi)核學(xué)習(xí)之一:環(huán)境搭建--安裝Debian7.3

本系列文章假設(shè)讀者已對linux有一定的了解,其實學(xué)習(xí)linux內(nèi)核不需要有很深的關(guān)于linux的知識,只需要了解以下內(nèi)容:linux基礎(chǔ)知識及基本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ù)雜到可以成為一個獨立的學(xué)科了,畢竟這不是我們學(xué)習(xí)的內(nèi)容,所以我選擇最簡單的方法:選擇一個linux發(fā)行版進行安裝。

1、選擇linux發(fā)行版

即使使用最簡單的構(gòu)建工作環(huán)境的方法,也耗費了我許多時間。

"選擇"之所以這樣困難,正是因為可供選擇的太多了!

linux發(fā)行版有成百上千種,每個發(fā)行版都有不同的特點,確實讓人難于取舍。我先后試裝過Gentoo,Arch,debian,fedora。發(fā)行版的選擇見仁見智,我不敢說哪個發(fā)行版好,哪個不好,每個發(fā)行版都有它的擁躉。這里 建議在選擇時考慮幾個問題:設(shè)計哲學(xué),社區(qū)支持和包管理器。

實際上,選擇哪種發(fā)行版都關(guān)系不大,發(fā)行版之間的差別基本上都是外圍組件,對linux的內(nèi)核的修改都不會很多。

況且我們在學(xué)習(xí)linux內(nèi)核,或者開發(fā)linux驅(qū)動時,一般都是以官方內(nèi)核(即Linus維護的主線內(nèi)核)為基準.所以我們搭建好環(huán)境后幾乎都是要選擇一個版本的官方內(nèi)核來重新編繹以備用的。

現(xiàn)階段有時間可以多試試不同的發(fā)行版,選擇自己最喜歡,用起來最順手的,一旦選擇好了,就不要再改了,一直堅持用它,把它用得滾瓜爛熟.人們會關(guān)注你在linux環(huán)境中是否得心應(yīng)手,一般不會關(guān)心你懂得用多少種linux發(fā)行版。

經(jīng)過反復(fù)的試用,比較,我最終選擇了Debian,吸引我的是它的崇尚自由的設(shè)計哲學(xué);強大的社區(qū)支持;數(shù)量龐大的軟件包. 相對而言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 、選擇主機環(huán)境

網(wǎng)上很多有經(jīng)驗的linux專家級人物都建議直接在自己的工作機或家庭機上安裝linux系統(tǒng),所有日常工作,生活都在linux系統(tǒng)里完成。

不過對于大多數(shù)人來說,這太不現(xiàn)實了了。作為桌面系統(tǒng),當(dāng)對于windows而言,linux還是有許多不方便的,即使是最近幾年非常火的ubuntu,號稱可以替換windows的發(fā)行版,在日常使用的軟件方面,還是有不小的差距;

再者,我們在工作中常常還是需要開發(fā)windows程序,而家里更不合適了,家里人基本上都用慣了windows,總不能強迫他們?nèi)ビ貌欢膌inux系統(tǒng)吧。因此,windows+vmware作為主機環(huán)境對于許多人來說,還是第一選擇。

另外還需要一臺真實電腦上安裝linux系統(tǒng),因為在vmware里的客戶系統(tǒng)無法訪問主機中一些硬件,如pci設(shè)備等,當(dāng)開發(fā)這些設(shè)備的驅(qū)動時必須在真實機器上調(diào)試。

我使用的主機環(huán)境有兩個:windows 7+vmware10.0.1環(huán)境中安裝debian以及x86-64位機器上的windows 7+debian雙系統(tǒng)。

3 安裝準備

安裝準備工作的第一步當(dāng)然是下載安裝鏡像了。Debian的下載地址:www.debian.org/CD/http-ftp。

因為在公司限制上網(wǎng),另外也不喜歡老是在線安裝軟件,就直接下載了一個用于amd64平臺的DVD安裝鏡像.有3G多,常用的軟件都有了,需要時直接從DVD里安裝就行了,一勞永逸。

3.1 vmware
首先使用vmware創(chuàng)建vmware虛擬機,創(chuàng)建時候,"Guest operation system"選擇"Debian 7 64位"這一項。

內(nèi)核分配512M即可,硬盤20G足夠了。vmware虛擬機可以直接將iso文件作為客戶機的光盤使用,因此安裝起來非常方便。

只需要在虛擬設(shè)置中的DVD光驅(qū)的連接選項設(shè)置為"使用ISO映象文件",并指定DVD安裝ISO鏡像的路徑即可(后面為了簡潔起見,將這一操作稱為"ISO鏡像加入虛擬機"),接下來開機即可用光盤引導(dǎo)(如果虛擬機磁盤已安裝有系統(tǒng),則需要在虛擬機的BIOS里設(shè)置光盤啟動,這跟普通電腦設(shè)置方法是相同的)。

3.2 x86-64機器

在真實的機器上,使用U盤安裝更加方便。我們將在已裝windwos7的x86-64機器上用U盤安裝,確保你的電腦能用U盤啟動,如果不行只能選擇燒寫ISO到DVD光盤中用光盤安盤了。其次要確保硬盤有足夠的空間,如果沒有的話,可以調(diào)整windows使用的磁盤空間大小(如果不懂設(shè)置方法,可以自己百度一下),我的硬盤預(yù)留了20G的空間。

接下來制作U盤安裝盤,這里需要用到Universal-USB-Installer工具(我用的是1.9.5.1版本)。步驟如下:

在windows系統(tǒng)下插入U盤;打開Universal-USB-Installer程序;

在step1中選擇"try unlisted linux ISO";

step2中選擇DVD安裝ISO的路徑;step3選擇要安裝的U盤(推薦勾選"Format");

開始寫入U盤,經(jīng)過幾十分鐘的等待,U盤安裝完畢,可以使用該U盤啟動了。

(用U盤啟動的方法與主板的類型相關(guān),可在網(wǎng)上搜索相關(guān)的內(nèi)容)

4 安裝系統(tǒng)

為了使用方便,兩個系統(tǒng)將采用相同的安裝配置,另外我只安裝基本的shell環(huán)境和必要的工具軟件。

使用GUI模式雖然美觀,看起來爽,但是對我們這些硬件資源貧乏的窮人來說,運行GUI就是種浪費;其次,與windows不同,linux的X Window完全運行在用戶態(tài),與內(nèi)核關(guān)系不大;再者,在漂亮的桌面環(huán)境上放一個終端窗口,總覺得很怪異。

我覺得內(nèi)核和驅(qū)動開發(fā)者都應(yīng)該用shell環(huán)境,只在需要進行UI相關(guān)的測試或編寫UI程序時才使用GUI環(huán)境。

言歸正傳,繼續(xù)進行我們的系統(tǒng)安裝吧。經(jīng)過上面的步驟,不管是vmware還是x86-64機器,debian安裝界面總算是出現(xiàn)了。

選擇"advanced option"-->"expert install"進入專家安裝模式(現(xiàn)在專家那么多,咱也來冒充一回吧?。?。彈出了一列選項,其實里面有很多選項都沒必要使用的,大部分都可以在系統(tǒng)安裝完成后進行設(shè)置。

選項列表的前面是安裝語言和鍵盤設(shè)置,這些可以跳過,就用默認的English就行了,反正在文本模式下也顯示不了中文。首先要執(zhí)行的是" Load installer components from cd",這一步會加載ISO(或U盤)中的安裝組件,全部選擇默認則可。

加載完后,安裝選項又多了不少。下一步可以"setup user and passwords",在配置選擇中,最好選擇“不使用root帳號”,root帳戶權(quán)限太大,現(xiàn)在的linux界普遍認為不用為妙,可以使用sudo工具執(zhí)行特權(quán)操作,創(chuàng)建自己的用戶名和密碼,按提示操作即可。

接著就要配置磁盤分區(qū)了,首先要"detect disks",讓安裝程序先檢測磁盤,然后進行"partition disks",怕安裝程序弄壞我的磁盤,我喜歡選擇了"Manual"模式。懶得去設(shè)計分區(qū),將剩余空間全部劃成了一個"/"分區(qū),分區(qū)的屬性分別是:"ext4"類型,"primary","bootable"選項。完成分成,忽略關(guān)于沒有交換分區(qū)的警告,寫入磁盤就完了。

現(xiàn)在可以開始"install the base system"。安裝過程中有個提示,問你要選擇哪個內(nèi)核,我選了"linux-image-3.2.0-4-amd64",沒去研究供選擇的兩個內(nèi)核有何不同;接下來又提示initrd的選擇,為了節(jié)省空間,選擇了"targeted:only ....."。

接下來可以"configure the package manager",因為我不想讓系統(tǒng)連網(wǎng),所以就在"use a network mirror"選擇了"no",另外其他的"service"也全部不選,當(dāng)然這些選項都可以在系統(tǒng)安裝好以后進行修改。

最后選擇安裝軟件:"select and install software",在軟件列表中,我只選擇了安裝"standard system utilities",其他全部不裝。

到這里,實質(zhì)上的系統(tǒng)已經(jīng)安裝完了,就差引導(dǎo)部分了。有g(shù)rub和lilo可選,我更喜歡grub,因此選擇:"install the grub boot loader"。debian7.3用的是grub2,功能非常強大。

在安裝過程中g(shù)rub會自動檢測當(dāng)前磁盤中安裝的其他的系統(tǒng),可以放心將grub安裝到MBR中,不必擔(dān)心你的windows會無法啟動。安裝完畢,選擇"finish the install",重啟系統(tǒng)吧!

5 安裝開發(fā)工具

現(xiàn)在我們有了一個基本的debian系統(tǒng),但是還沒有g(shù)cc等開發(fā)工具,無法進行日常工作,需要安裝這些工具。

5.1 設(shè)置安裝源

debian的包管理器非常完善,我們現(xiàn)在安裝軟件就用debian強大的apt-get命令。但是在使用前要先配置安裝源,以告訴apt-get命令去哪里找我們的軟件。

安裝軟件盡量都從下載的ISO安裝,既然下載了那么大的一個ISO鏡像,就別浪費了。debian可以設(shè)置幾種安裝源,如CD安裝源,網(wǎng)絡(luò)安裝源,本地安裝源。

5.1.1 設(shè)置CD安裝源

在vmware中,可以將ISO文件當(dāng)作光盤使用,實在是太方便了。因此,在vmware中我們設(shè)置以CD作為安裝源,實際上在安裝系統(tǒng)時,系統(tǒng)的包管理器就已經(jīng)把DVD安裝盤加入安裝源了,可以查看/etc/apt/sources.list文件。

如果沒有加入,或者想加入別的CD安裝源也非常簡單,只需執(zhí)行以下操作:

將ISO加入虛擬機

掛載光盤:sudo mount /dev/cdrom /media/cdrom

將光盤加入安裝源:sudo apt-cdrom add

打開/etc/apt/sources.list查看是否添加成功

更新軟件件表:sudo apt-get update

5.1.2 設(shè)置本地安裝源

在真實的x86-64機器上,系統(tǒng)無法把安裝U盤識別為光盤,不能將安裝U盤作為CD安裝源加入。

不過我們可以將ISO文件掛載到某個目錄,再將該目錄作為本地安裝源加入包管理器,步驟如下:

創(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)時安裝的是精簡版的VIM:vim.tiny,功能不齊全,因此安裝完整的VIM,喜歡其他代碼編輯工具的網(wǎng)絡(luò)可以安裝其他工具。

VIM安裝完后進行配置,在/etc/vim/vimrc文件最后加上以下幾行(不包括括號內(nèi)容):

set nobackup (打開時不創(chuàng)建備份文件)

set ts=4 (設(shè)置tab鍵寬度為4個字符寬)

set atuoindent (啟用自動縮進功能)

set cindent (啟用C語言縮進功能)

set shiftwidth=4 (縮進寬度為4個字符寬)

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)的模塊時,必須安裝該內(nèi)核對應(yīng)的linux-headers,里面包含內(nèi)核配置信息,內(nèi)核頭文件等。

5.2.4 安裝ncurses-dev:sudo apt-get install libncurses5-dev

內(nèi)核配置腳本依賴于該工具,如果沒有安裝的話,配置內(nèi)核里會出錯。

5.2.5 安裝git:sudo apt-get install git

著名的流行的分布式版本管理工具,由Linus開發(fā),官方內(nèi)核開發(fā)用的版本管理工具也是git。Linus的作品,不能不用?。?/p>


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)境搭好后,馬上就進入到下一環(huán)節(jié)--編譯內(nèi)核。linux的內(nèi)核是整個系統(tǒng)最核心的部分,內(nèi)核的功能基本上決定了系統(tǒng)的能力。

linux的內(nèi)核代碼使用的是GPL授權(quán),允許自由下載,修改并重新發(fā)布內(nèi)核,只要求發(fā)布修改后的內(nèi)核的同時提供源代碼。

各種各樣的內(nèi)核版本眾多,幾乎所有的linux發(fā)行版都會對內(nèi)核進行或多或少的修改,debian也不例外。這些內(nèi)核都有個源頭,即Linus維護的官方內(nèi)核,其他的內(nèi)核幾乎都是建立在官方內(nèi)核的基礎(chǔ)上的。我們的內(nèi)核學(xué)習(xí),也是以官方內(nèi)核為準。

linux官方內(nèi)核的網(wǎng)站是:www.kernel.org。從里面可以了解到內(nèi)核開發(fā)的最新動態(tài),現(xiàn)在就把該網(wǎng)址加入收藏夾吧。

(另外有個網(wǎng)站:www.lwn.net里面有許多l(xiāng)inux大牛發(fā)表的觀點,也值得收藏)。

從linux內(nèi)核3.0開始,內(nèi)核版本命名采用的策略跟以前不一樣,命名格式為3.A.B,其中A為內(nèi)核的版本,B為補丁的版本。即3.A.B與3.A.C的內(nèi)核是相同的版本,具有相同的功能,如果C>B,只是說明3.A.C相比3.A.B修補了一些BUG而已。

進入內(nèi)核3.0時代后,內(nèi)核的開發(fā)工作發(fā)展迅速,版本更新得很快,第一個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選擇一個版本。實際上從2.6版本開始,內(nèi)核的架構(gòu)沒有特別大的變動,基本上是添加新的功能,添加新的驅(qū)動的支持,內(nèi)核接口有一些變動。

另外,除非不得已,不要再使用2.4及更低版本,因為2.6內(nèi)核的整個架構(gòu)經(jīng)過全面重新設(shè)計,效率更高,功能更完善,也更安全。

我覺得盡量選擇與發(fā)行版使用的內(nèi)核版本差不多的話會比較好點,內(nèi)核跟其他組件相對會配合得好些,不知是不是這樣。debian7.3使用的內(nèi)核是3.2的,而現(xiàn)在該內(nèi)核版本的最新版為3.2.54,使用相同內(nèi)核版本的帶有最新補丁的內(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的步驟,在真實機器上安裝的debian7.3系統(tǒng)上編譯的方法也是類似的。

2 安裝vmware-tools

內(nèi)核文件下載好后,需復(fù)制到vmware客戶系統(tǒng)(即debian系統(tǒng))。

最好的方法是使用vmware提供的文件共享功能,這個功能由vmware-tools軟件包提供,需要先安裝該軟件包。首先設(shè)置共享目錄,在VMware菜單欄上點擊"虛擬機"-->"設(shè)置",打開設(shè)置頁面,點擊"選項"屬性頁,點擊"共享文件夾",在右端選擇"總是啟用",再點擊"添加",按提示設(shè)置主機中用于共享的目錄路徑和共享名稱(我用的是workspace)。


啟動debian系統(tǒng)后,點擊菜單欄的"虛擬機"-->"安裝VMWare Tools"。稍等片刻后,虛擬機的CD光驅(qū)動應(yīng)該已經(jīng)有了vmware-tools的安裝盤。在debian系統(tǒng)按以下步驟進行:
掛載光盤: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(安裝過程中所有選項都使用默認即可)


安裝完成了,檢查發(fā)現(xiàn)/mnt目錄下多了一項hgfs目錄,里面是主機共享目錄,即/mnt/hgfs/workspace。

3 準備新的內(nèi)核源代碼

將下載的內(nèi)核源代碼放在上一步中設(shè)置的主機共享目錄中,然后解壓到默認的內(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.同時把源代碼目錄下的Makefile文件內(nèi)容也改一下:
sudo vim /usr/src/linux-3.2.54.x86_64/Makefile
搜索字符串"EXTRAVERSION =",在"="后面加上".x86_64"。


這樣,編譯出來的內(nèi)核鏡像,模塊目錄等都會自動加上".x86_64"后綴。

4 配置內(nèi)核

配置內(nèi)核就是告訴編譯器,源代碼中的哪些功能要編譯進內(nèi)核,哪些編譯成模塊,哪些不需要編譯。源碼中包含了幾千個選擇,因此配置內(nèi)核是個很復(fù)雜很吃力的工作,為了簡化這個工作,內(nèi)核開發(fā)者為各個平臺編寫了默認的簡單配置文件。以x86平臺為例,配置文件放在"arch/x86/configs"目錄下,可將這些配置文件作為配置工作的起點,選擇其中一個文件復(fù)制到源碼目錄下,并命令名為".config"(注意前面有個".",它是隱藏文件),這是內(nèi)核編譯時使用的配置文件,也是內(nèi)核配置工具啟動時加載的文件,當(dāng)然內(nèi)核配置修改后的配置信息也保存在這個文件里。


由于VMWare的硬件與普通的硬件不同,用內(nèi)核開發(fā)者提供的配置文件編譯出來的內(nèi)核無法引導(dǎo)系統(tǒng),我們先暫時忽略有關(guān)內(nèi)核配置的復(fù)雜細節(jié),走條捷徑,以debian系統(tǒng)安裝時產(chǎn)生的配置文件作為我們配置內(nèi)核的起點。

既然debian能引導(dǎo),用它編譯出來的內(nèi)核應(yīng)該不會有什么大問題,復(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,因為發(fā)行版的內(nèi)核可能經(jīng)過修改,使用的.config也可能會有差異,執(zhí)行一下sudo make menuconfig,它會重新分析.config文件,設(shè)置文件中描述的配置信息,退出后再保存成新內(nèi)核適用的.config文件(退出時,配置工具會詢問你是否保存修改,需要選擇"yes")。

5 編譯,安裝新內(nèi)核

內(nèi)核配置完成了,可以編譯內(nèi)核了,分別執(zhí)行以下命令,進行編譯并安裝內(nèi)核:

sudo makesudo make modules_installsudo make install

make命令根據(jù)配置信息進行編譯,包括模塊。debian系統(tǒng)默認加入了許多驅(qū)動模塊,整個編譯過程比較耗時,估計長達1.5~2個小時,在編譯時可能出現(xiàn)各種問題,需要根據(jù)錯誤提示進行修改。

本次編譯模塊時就提示“drivers/staging/rts5139”這個模塊編譯出錯,這是一個USB讀卡器的驅(qū)動,不是什么必需的驅(qū)動,直接在內(nèi)核配置中去掉該模塊吧。

因此,重新執(zhí)行sudo make menuconfig,找到該模塊:“Device Drivers”-->"Staging drivers"-->"Realtek RTS5139 USB card reader support"。去掉該模塊支持,退出保存,重新執(zhí)行sudo make。

make modules_install命令用于安裝可裝載模塊,這些模塊會自動安裝到/lib/modules/3.2.54.x86_64下。

make install命令執(zhí)行三個操作:復(fù)制內(nèi)核鏡像到/boot目錄下;生成initrd-img;更新grub。命令成功執(zhí)行成功后,新的內(nèi)核已可以使用,并且列在引導(dǎo)菜單中。

6 重啟系統(tǒng)

重啟系統(tǒng),grub引導(dǎo)選項中多了我們新編譯的內(nèi)核選擇,選擇新內(nèi)核引導(dǎo)。進入系統(tǒng)后執(zhí)行命令uname -r 查看當(dāng)前的內(nèi)核版本,顯示為“3.2.54.x86_64”,確實是我們新編譯的內(nèi)核。

不過,在VMWare中重編譯內(nèi)核后,vmware-tools的文件共享功能不起作用了,這是因為vmware-tools中包含了內(nèi)核模塊,重編譯后,這些模塊不能再正常加載了。

只需執(zhí)行命令:sudo vmware-config-tools.pl(全部使用默認選項),重新配置vmware-tools即可讓共享功能正常使用。

任務(wù)完成,可以收工!

原文標題:Linux 內(nèi)核學(xué)習(xí):環(huán)境搭建和內(nèi)核編譯

文章出處:【微信公眾號:Linux愛好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 內(nèi)核
    +關(guān)注

    關(guān)注

    3

    文章

    1336

    瀏覽量

    40083
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11123

    瀏覽量

    207894

原文標題:Linux 內(nèi)核學(xué)習(xí):環(huán)境搭建和內(nèi)核編譯

文章出處:【微信號:LinuxHub,微信公眾號:Linux愛好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    linux驅(qū)動程序如何加載進內(nèi)核

    Linux系統(tǒng)中,驅(qū)動程序是內(nèi)核與硬件設(shè)備之間的橋梁。它們允許內(nèi)核與硬件設(shè)備進行通信,從而實現(xiàn)對硬件設(shè)備的控制和管理。 驅(qū)動程序的編寫 驅(qū)動程序的編寫是Linux驅(qū)動開發(fā)的基礎(chǔ)。在編
    的頭像 發(fā)表于 08-30 15:02 ?189次閱讀

    linux驅(qū)動程序的編譯方法是什么

    Linux驅(qū)動程序的編譯方法主要包括兩種: 與內(nèi)核一起編譯編譯成獨立的內(nèi)核模塊 。以下是對
    的頭像 發(fā)表于 08-30 14:46 ?162次閱讀

    Linux內(nèi)核測試技術(shù)

    Linux 內(nèi)核Linux操作系統(tǒng)的核心部分,負責(zé)管理硬件資源和提供系統(tǒng)調(diào)用接口。隨著 Linux 內(nèi)核的不斷發(fā)展和更新,其復(fù)雜性和代碼規(guī)
    的頭像 發(fā)表于 08-13 13:42 ?246次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>內(nèi)核</b>測試技術(shù)

    歡創(chuàng)播報 華為宣布鴻蒙內(nèi)核已超越Linux內(nèi)核

    1 華為宣布鴻蒙內(nèi)核已超越Linux內(nèi)核 ? 6月21日,在華為開發(fā)者大會上, HarmonyOS NEXT(鴻蒙NEXT)——真正獨立于安卓和iOS的鴻蒙操作系統(tǒng),正式登場。這是HarmonyOS
    的頭像 發(fā)表于 06-27 11:30 ?567次閱讀

    【飛騰派4G版免費試用】2.手把手實戰(zhàn)編譯Linux內(nèi)核

    親愛的工程師、學(xué)生和愛好者們,我來啦!非常感謝上一篇文章【飛騰派4G版免費試用】1.實戰(zhàn)交叉編譯環(huán)境搭建和手把手uboot編譯下方的評論區(qū)網(wǎng)友:Jonny的贊賞和表揚,特此為熱心網(wǎng)友再
    發(fā)表于 12-16 23:28

    獲取Linux內(nèi)核源碼的方法

    (ELF1/ELF1S開發(fā)板及顯示屏)Linux內(nèi)核是操作系統(tǒng)中最核心的部分,它負責(zé)管理計算機硬件資源,并提供對應(yīng)用程序和其他系統(tǒng)組件的訪問接口,控制著計算機的內(nèi)存、處理器、設(shè)備驅(qū)動程序和文件系統(tǒng)等
    的頭像 發(fā)表于 12-13 09:49 ?537次閱讀
    獲取<b class='flag-5'>Linux</b><b class='flag-5'>內(nèi)核</b>源碼的方法

    Linux內(nèi)核自解壓過程分析

    uboot完成系統(tǒng)引導(dǎo)以后,執(zhí)行環(huán)境變量bootm中的命令;即,將Linux內(nèi)核調(diào)入內(nèi)存中并調(diào)用do_bootm函數(shù)啟動內(nèi)核,跳轉(zhuǎn)至kernel的起始位置。
    的頭像 發(fā)表于 12-08 14:00 ?704次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>內(nèi)核</b>自解壓過程分析

    Linux內(nèi)核UDP收包為什么效率低

    現(xiàn)在很多人都在詬病Linux內(nèi)核協(xié)議棧收包效率低,不管他們是真的懂還是一點都不懂只是聽別人說的,反正就是在一味地懟Linux內(nèi)核協(xié)議棧,他們的武器貌似只有DPDK。 但是,即便
    的頭像 發(fā)表于 11-13 10:38 ?385次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>內(nèi)核</b>UDP收包為什么效率低

    嵌入式學(xué)習(xí)-ElfBoard ELF 1-內(nèi)核源碼編譯的方法

    1.拷貝ELF1開發(fā)板資料包\\02-Linux 源代碼\\02-0 出廠內(nèi)核和uboot源碼\\內(nèi)核源碼目錄下的內(nèi)核源碼到開發(fā)環(huán)境/hom
    發(fā)表于 11-04 09:04

    如何用樹莓派學(xué)習(xí)Linux內(nèi)核源碼?

    怎么用樹莓派學(xué)習(xí)Linux內(nèi)核源碼??
    發(fā)表于 10-20 07:09

    淺談Linux內(nèi)核源碼的Makefile、Kconfig和.config文件

    Linux內(nèi)核源碼文件繁多,搞不清Makefile、Kconfig、.config間的關(guān)系,不了解內(nèi)核編譯體系,編譯修改
    發(fā)表于 10-17 16:19 ?3283次閱讀
    淺談<b class='flag-5'>Linux</b><b class='flag-5'>內(nèi)核</b>源碼的Makefile、Kconfig和.config文件

    移植Linux內(nèi)核ramfs和ramdisk文件系統(tǒng)

    在移植Linux內(nèi)核早期時,如果flash等存儲設(shè)備的驅(qū)動還沒寫好,可以將文件系統(tǒng)放到內(nèi)存中運行。 此時可以使用 ramfs 和 ramdisk ,即將內(nèi)存的一部分用作文件系統(tǒng)。 ramfs
    的頭像 發(fā)表于 10-04 14:41 ?896次閱讀
    移植<b class='flag-5'>Linux</b><b class='flag-5'>內(nèi)核</b>ramfs和ramdisk文件系統(tǒng)

    Linux內(nèi)核動態(tài)輸出調(diào)試

    動態(tài)輸出可以動態(tài)選擇打開某個內(nèi)核子系統(tǒng)的輸出,可以有選擇性地打開某些模塊的輸出。 配置內(nèi)核編譯選項要使用動態(tài)輸出,必須在配置內(nèi)核時打開CONFIG_DYNAMIC_DEBUG宏。
    的頭像 發(fā)表于 09-27 15:45 ?462次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>內(nèi)核</b>動態(tài)輸出調(diào)試

    Linux內(nèi)核編譯腳本

    獲得編譯命令及選項 編譯linux時,默認不會顯示編譯的命令,如果你要獲得編譯命令及其選項,可以在make命令后面加上宏定義: make V
    的頭像 發(fā)表于 09-27 11:52 ?536次閱讀

    內(nèi)核模塊知識:多個源文件編譯生成一個內(nèi)核模塊

    ? module ?taints?kernel 幾個可能原因: 模塊沒有聲明 GPL 協(xié)議 當(dāng)前linux內(nèi)核版本和編譯模塊使用的內(nèi)核版本不一致 使用
    的頭像 發(fā)表于 09-26 16:58 ?757次閱讀