導航:首頁 > 編程系統 > ubuntulinux內核開發

ubuntulinux內核開發

發布時間:2021-03-05 14:20:25

① 怎樣ubuntu環境下編譯內核詳解

步驟/方法
一、下載源代碼和編譯軟體的准備
下載內核源代碼:http://www.kernel.org/
注意,點擊2.6.25內核的F版,即完整版。
如果你懶得去網站點聯接,運行下列命令:
代碼:$cd ~$ wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.25.10.tar.bz2
安裝有關編譯程序。安裝make ,gcc, make-kpkg,運行menuconfig等等和編譯內核相關的工具。安裝不了,請檢查/etc/apt/sources.list 文件。有關命令:代碼:$sudo apt-get install build-essential kernel-package libncurses5-dev
二、解壓源代碼注意,網上很多教程上說應該解壓到 /usr/src,純屬以訛傳訛,linux掌門人linus說解壓到任何目錄上都可以。當然,linus的說法是正確的。我放在自己的主目錄下的src目錄。如果你下載源代碼是放到自己的主目錄下或者運行上面的wget下載的,那麼運行下列命令:代碼:$ cd ~$ mkdir src && tar jfx linux-2.6.25.10.tar.bz2 -C src/現在,源代碼就在 ~/src/linux-2.6.25.10進入源代碼的目錄,准備下一步的工作。後面都在這個目錄裡面進行。代碼:$ cd ~/src/linux-2.6.25.10
三、開始編譯前的准備工作。首先,清理以前編譯時留下的臨時文件。如果是剛剛解開的包,不需要執行這步。如果是第二次或者是第n次編譯,那麼一定要執行。相關命令如下:代碼:$ sudo make mrproper網上很多教程上說把現在使用的內核的config拷貝過來參考,據實驗,是不需要的,ubuntu還有debian會自動做這步。不過這條命令倒是可以學習一下。當然你可以將以前的配置拷貝過來。命令:代碼:cp /boot/config-`uname -r` ./.config
四、開始配置內核選項。相關命令:代碼:$sudo make menuconfig配置用到的鍵只有幾個,esc退出菜單;空格改變選項狀態;游標鍵上下左右移動,回車選定。選項意義:M是編譯成可以隨時加入的模塊,*是編譯進入內核,空就是不要。配置選項非常多,具體配置可以參考金步國先生翻譯的資料:Linux 2.6.19.x 內核編譯配置選項。參考網址:http://lamp.linux.gov.cn/Linux/kernel_options.html為了一次成功,請大家遵循一個原則,如果你自己使用的內核已經選用了某個選項,如果你沒用充分的理由,不要隨便改動。這樣雖然內核不那麼精簡,但是不容易出現問題。我們可以精簡的部分是硬體模塊部分,對於自己沒有的硬體要毫不猶豫的清除。如果你很執著,或者你有潔癖,你也可以一項項對過去,按照金步國先生的資料描述去選擇基本上沒有問題。
五、必須強調的幾個選項:1、
在「General setup」裡面的「Prompt for development and/or incomplete
code/drivers」金步國認為是不需要。但是如果你的硬體比較新,那幾乎是必須選的,這樣,我們才可以找到4965無線網卡,alsa聲音驅動等
等。Kernel log buffer size 我選15,雙核。如果你用ia64,要選16。Control Group support 集群支持?可以不要Choose SLAB allocator (SLUB (Unqueued Allocator)) 內存管理模式slab和slub選擇slub。
2、在「Block layer」里,假如沒有2TB的硬碟,就去掉:Support for Large Block Devices 。Support for Large Single Files 也不需要,誰有2TB的文件?
3、Processor type and features中是關於cpu的,要認真選。Symmetric multi-processing support是打開多核的開關,我的cpu是雙核的,選中。Processor family (Core 2/newer Xeon) 我的是Core 2/newer Xeon。找到自己的cpu後,把Generic x86 support選項取消。Subarchitecture Type 選(PC-compatible)Maximum number of CPUs 輸入自己的核心數目,我輸入2。SMT (Hyperthreading) scheler support說的是超線程技術,P4有支持的,我的t8100不支持,目前大部分市場上的家用cpu都不支持。High Memory Support (4GB) 1G以下選1G;我是3G,選4G;4G以上的選16G在「 Timer frequency 」里,默認是250Hz,較新的cpu都可以選擇了1000Hz,性能更好。
4、Power management options中把APM (Advanced Power Management) BIOS support關閉。現在的電腦都用acpi了。CPU Frequency scaling 是筆記本cpu節電技術Default CPUFreq governor (conservative) cpu節電模式有四個,筆記本默認選conservative比較好。ACPI Processor P-States driver 必須選,不然CPU Frequency就不能用。後面的可選自己硬體相關的,我選的是Intel Enhanced SpeedStep和 Intel Speedstep on ICH-M chipsets,其他的統統消滅。
5、Bus options的選擇:Bus options (PCI, PCMCIA, EISA, MCA, ISA)PCI support PCI Express support 現在新買的機器基本上都是PCI Express了ISA support 較新的新機器沒有ISA設備,可以去掉MCA support 去掉NatSemi SCx200 support 去掉PCI Hotplug Support Support for PCI Hotplug (EXPERIMENTAL) 如果沒有PCI熱插拔設備,去掉這里的選項可以考慮全部編譯進內核,而不是以模塊形式存在。
6、Device Drivers是重點,由於linux不但面向個人工作站,更多的是面向伺服器的應用,所以可以把自己機器上沒有的硬體全部去掉,而不用面面俱到。但是通用型的選項要慎重。比如在網卡的部分,除了我的千兆網卡 Broadcom Tigon3 support和4965無線網卡Intel Wireless WiFi 4965AGN,其餘的硬體支持統統去掉。再比如音效卡部分,我的是hd音效卡,我只是在PCI devices中,選intel hd 音效卡,再選Build IDT/Sigmatel HD-audio codec support,除此之外的硬體支持全部去掉。
音效卡還有一個細節,在ubuntu7.10裡面, 需要在/etc/modprobe.d/alsa-base後面添加options
snd-hda-intel probe_mask=1
model=3stack,這樣我的筆記本喇叭才可以發聲,不然只有外接耳機或者音箱。這次編譯以後,這個動作就不必了,但是兩個耳機插口只有一個可以用
了。再比如我的電腦中沒有agp,就可以直接把agp相關的選項全部取消。要注意的:ATA/ATAPI/MFM/RLL support Include IDE/ATA-2 DISK support 如果你的/boot是放在IDE硬碟上,那麼這里一定要選*,選M都不行。否則啟動時會出現「waiting for root file system」的提示而停滯不前。 SCSI emulation support 要用刻錄機,必須選。SCSI device support 現在都是SATA硬碟,一定要選* SCSI disk support 如果你的/boot放在SATA硬碟上,一定要選*。
SCSI CDROM support 雖然康寶刻錄機是ide介面的,但是必須把它當成scsi介面的,這是老問題了。用刻錄機,必須選。
Graphics supportSupport for frame buffer devices 選中,進入選擇 VESA VGA graphics support 選上,不然字元界面啟動會有問題,後面的顯卡選擇:由於我的顯卡是nvidia 8400gs,要自己安裝nvidia公司的驅動,所以一個都沒有選。這樣導致ubuntu開機動畫會出問題,我索性在grub中的splash字元全部刪除,把開機動畫關閉。字元界面很正常。 Console display driver support 有人開機後字元控制台錯誤,就是這部分選項沒有選,出問題了。 Framebuffer Console support 需要打開。
Bootup logo 開機圖標,會在自檢的畫面上加上個性圖標。需要在grub上添加「vga=」的選項,可以參考http://dotimes.com/articles /t23-slackware-framebuffer.html7、File systemsFilesystem in Userspace support 簡稱fuse。是必選的,如果你要用windows分區。
CD-ROM/DVD Filesystems ISO 9660 CDROM file system support 一般選*DOS/FAT/NT Filesystems VFAT (Windows-95) fs support 有FAT32分區就選*吧 NTFS file system support 有NTFS分區就選*吧 NTFS write support 如果想對 NTFS分區進行寫操作,選*必須將啟動盤的文件系統編譯進內核,默認是編譯成模塊,這樣無法啟動系統。ubuntu採用的文件系統是ext3,請把ext2,ext3相關的必要選項都編譯進入內核。
8、Virtualization這個大類是我多花幾百元買t8100的主要原因,因為t8100支持intel vt技術使linux上的虛擬機的性能大幅度提高。這里的選項我除了amd的,其他都編譯成模塊。
9、全部設置完成,最後一項是保存設置。按照我的習慣,先在上一層目錄保存一個備份,文件名類似 ../config20080630然後再保存到當起目錄,文件名 .config退出設置程序。
六、開始編譯內核。ubuntu的工具是make-kpkg,和其他的發行版相比,步驟相對簡單。相關命令:代碼:$sudo make-kpkg clean 這條命令好像不要超級許可權,很多資料上說要,不過這不是原則問題。
$ sudo make-kpkg -initrd --initrd --append-to-version=dell1400 kernel_image kernel-headers上述命令中的dell1400可以用自己喜歡的字元代替,最後的字元一定是數字.輸完上述命令回車之前,建議大家把瀏覽器還有別的運用程序都關掉,機器開始的工作比較艱苦。
我的機器大概十幾分鍾。
七、安裝內核編譯完成就是安裝工作。編譯好的內核在上一層目錄。包括linux-headers-...-_i386.deb和linux-image-...-i386.deb兩個文件,如果你不搞開發的話,只要安裝內核就可以,頭文件以後要用的時候再說。安裝相關命令:
代碼:$ cd ..$ sudo dpkg -i linux-image-(按tab鍵)文件名很長,如果不用tab自動補足是不可能的,tab鍵萬歲。安裝完成後和老內核比較一下大小代碼:
$ ls -l /boot/
八、重新啟動驗證新內核。代碼:$ sudo reboot
九、顯卡驅動如果你的顯卡和我一樣是nvidia顯卡,啟動之後往往無法正常進入x-window。即使能看到gdm登錄界面,效果也是很差的。那麼就要安裝nvidia驅動。用ctrl+alt+f1 進入字元命令行,輸入用戶名,密碼登錄。命令:代碼:下載驅動$ wget http://us.download.nvidia.com/XFree86/Linux-x86/173.14.12/NVIDIA-Linux-x86-173.14.12-pkg1.run$sudo -s輸入密碼取得超級許可權。#ps ax看看和gdm相關的進程,把這些進程全部關閉;用sudo /etc/init.d/gdm stop有可能有一個進程沒有關閉:#kill 進程號然後安裝nvidia顯卡驅動,當然驅動要先下好,到nvidia驅動所在的目錄里,運行:# sh ./NVIDIA-Linux-x86-173.14.12-pkg1.run重新啟動以後就ok。要用nvidia的驅動,每次升級內核都要這么做。
十、無線網卡相關的內核選項是Networking --->Wireless --->Generic IEEE 802.11 Networking Stack (mac80211)還有4965的驅動。4965
無線網卡驅動雖然已經編入內核,但沒有firmware無法使用。需要把原來內核的firmware拷貝到新內核對應的目錄,名字和內核一致,我的內核是
linux-image-2.6.25.10dell1400,那建的目錄名就是2.6.25.10dell1400。代碼:具體命令:$ cd /lib/firmware/$ sudo mkdir 2.6.25.10dell1400把你的老內核中的4965的firmware拷貝過來。$ sudo cp 2.6.24-16-generic/* 2.6.25.10dell1400/上面的命令和下面的命令是等價的:$ cd /lib/firmware/$ sudo cp -R 2.6.24-16-generic/ 2.6.25.10dell1400/
重新啟動系統,無線網卡就正常了。
附編譯使用的機器配置:dell vostro 1400,t8100,nvidia 8400cs顯卡,內置SigmaTel STAC9228晶元的音效卡,4965無線網卡,BCM5906M千兆網卡,3G內存,160G硬碟,combo刻錄。
編譯系統版本:ubuntu 8.04桌面版.

② ubuntu 如何安裝內核頭文件

ubuntu可以使用抄apt-get命令來安裝匹配的內核頭文件。

1、首先,使用dpkg-query命令檢查是否有可用的內核頭文件。

$ dpkg-query -s linux-headers-$(uname -r)
2、接著使用下面的命令安裝匹配的內核頭文件。

$ sudo apt-get install linux-headers-$(uname -r)

3、驗證頭文件是否成功安裝。

$ dpkg-query -s linux-headers-$(uname -r)

Package: linux-headers-3.11.0-26-generic
Status: install ok installed

提示安裝成功

註:Debian、Ubuntu、Linux Mint默認頭文件在/usr/src下。

③ Ubuntu和Linux是什麼關系

Linux是一套免費使用和自由傳播的類Unix操作系統,是一個基於POSIX和UNIX的多用戶、多任務、支持多線程和多CPU的操作系統。

而嚴格來講,Linux這個詞本身只表示Linux內核,但實際上人們已經習慣了用Linux來形容整個基於Linux內核,並且使用GNU 工程各種工具和資料庫的操作系統。

Linux是開放源代碼的,所以網上會出現各種各樣的發行版本,Ubuntu Linux就是其中一種。Ubuntu採用Linux內核,圖形界面採用GNOME(Kubuntu使用KDE)。

簡而言之,Linux系統是個統稱,它有Red Hat、Debian、Suse、Ubuntu等發行版本,它們都是用的Linux內核,都是Linux系統。

對於ubuntu而言,就是linux操作系統的具體,而linux對於ubuntu來說就是他的抽象;在linux操作系統中,因為應用程序和管理策略的不同,有多個版本,例如:ubuntu,fedora,redhat,centos等

(3)ubuntulinux內核開發擴展閱讀:

Ubuntu是一個南非的民族觀念,該詞來自於祖魯語和科薩語。國際音標為 /ùbúntú/,曼德拉將ubuntu發音為/u:bu:tu:/,意為人們之間的忠誠和聯系。被視為非洲人的傳統理念,也是建立新南非共和國的基本原則之一,與非洲復興的理想密切相關。

Linux是一款免費的操作系統,用戶可以免費獲得並任意修改其源代碼,這是其他的操作系統所做不到的。正是由於這一點,來自全世界的無數程序員參與了Linux的修改、編寫工作,程序員可以根據自己的興趣和靈感對其進行改變,這讓Linux獲得了無數改良,不斷壯大。

④ 如何基於編譯後的linux內核開發操作系統就像ubuntu一樣的。。

從你的提來問中能看出來源你是個赤裸裸的小白啊,什麼叫開發操作系統?
ubuntu是一個linux發行版而已,像Fedora、Redhat、Debian、Centos、Archlinux、Gentoo一樣都是linux發行版,在linux內核基礎上加入了一系列GNU軟體,所以也叫Linux/GNU操作系統
Gnome也是一個GNU軟體而已,是一個桌面環境,Xorg為Linux內核提供圖形協議,而Gnome則利用這個協議來顯示圖形。類似的桌面環境還有KDE、lxde、fce4、openbox、e17等

⑤ 烏班圖是基於linux系統開發的嗎

Ubuntu本來就是linux的桌面操作系統,現在開發出移動操作系統了,肯定是基於linux內核了

⑥ ubuntu與linux的區別在哪

ubuntu是基於linux的一種操作系統,就好比XP是WINDOWS系統的一種,但WIN2003.WIN7也是屬於WINDOWS系統. 新手先學ubuntu吧。好學。

⑦ 如何在Debian或Ubuntu上安裝完整的內核源碼

你好,在Debian上安裝完整的內核源碼
在下載內核源碼之前,先安裝dpkg-dev,其中包含你在Debian上生成源代碼時需要的開發工具套件。不僅如此,dpkg-dev中還包含在用來解壓Debian源碼包並自動打補丁的工具dpgk-source。
$ sudo apt-get install dpkg-dev
然後,運行以下命令下載完整的內核源碼。
$ apt-get source linux-image-$(uname -r)
伴隨著完整內核源碼(linux_X.X.XX.orig.tar.xz)的還有一些可用的內核補丁(linux_X.X.X+XXX.debian.tar.xz)和源碼控制文件(linux_XXXX.dsc),這些都將被下載並存儲到當前目錄。在.dsc文件中會指出如何給內核源碼打補丁。
當下載完成,以上的命令將會自動調用工具dpkg-source將下載的內核源碼解壓到當前的目錄中,與此同時根據.dsc文件來下補丁。
最終完整的內核源碼樹將會以"linux-X.X.XX"的形式呈現在當前目錄中。
在Ubuntu上安裝完整內核源碼
如果你想安裝完整內核源碼的話,以上在Debian上的那一套做法在Ubuntu上仍然奏效。
在Ubuntu上還有另一套方法安裝完整內核源碼。事實上,你可以查一下由Canonical為Ubuntu不同發行版維護的內核源碼樹。
$ sudo apt-get install git
$ git clone git://kernel.ubuntu.com/ubuntu/ubuntu-$(lsb_release --codename | cut -f2).git

⑧ 如何為Ubuntu升級Linux Kernel 4.4內核

這個就比較大復了,好制像ubuntu官方還沒有這個版本的內核吧,畢竟這么新。如此的話,你只能去內核官網自行下載,然後自行編譯,關於如何編譯請參照如下的博客:
有幾點需要注意,
attention:新編譯的內核,可能會導致某些開發庫因為沒有相應的適配所以無法正常使用。請謹慎升級。

⑨ linux 是什麼我可以用ubuntu開發一個新的作業系統嗎還是開發一些手機軟體

linux是一個系統,但是linux小組只是開發系統內核,有些公司為用這個內核去開發新系統,ubuntu就是用linux內核開回發出答了ubuntu版本的linux,補充外殼什麼的。想開發新系統就自己寫,ubuntu已經是一個完整的系統了。開發手機軟體用基於安卓的吧,安卓也是用linux內核。

閱讀全文

與ubuntulinux內核開發相關的資料

熱點內容
怎樣看好友的視頻文件 瀏覽:285
編程青浦哪裡學 瀏覽:857
樂高模擬app軟體哪裡有 瀏覽:23
設置輕app什麼意思 瀏覽:659
電影院嬰兒可以進嗎 瀏覽:943
如何指定app不充值 瀏覽:757
2019韓國倫理片最帥男主 瀏覽:304
林正英鬼片時間線 瀏覽:890
如何隱藏表格內不需要的數據 瀏覽:97
工程建設四制是哪個文件提出來的 瀏覽:944
u盤文件系統未知 瀏覽:219
韓國古裝電影香艷床戲 瀏覽:451
大數據是怎麼確定有南京旅居史的 瀏覽:418
網路技術專員翻譯 瀏覽:838
iphone6s和魅族pro6 瀏覽:328
小米如何解決app不讓截圖 瀏覽:82
裝大數據 瀏覽:252
3ds哪個文件夾是存檔 瀏覽:850
外國電影在哪裡能看 瀏覽:332
小v影院 瀏覽:916

友情鏈接