linuxheaders
⑴ 如何在linux上安裝內核頭文件
當你在編譯一個設備驅動模塊時,你需要在系統中安裝內核頭文件。內核頭文件同樣在你編譯與內核直接鏈接的用戶空間程序時需要。當你在這些情況下安裝內核頭文件時,你必須確保內核頭文件精確地與你當前內核版本匹配(比如:3.13.0-24-generic)。
如果你的內核是發行版自帶的內核版本,或者使用默認的包管理器的基礎倉庫升級的(比如:apt-ger、aptitude或者yum),你也可以使用包管理器來安裝內核頭文件。另一方面,如果下載的是kernel源碼並且手動編譯的,你可以使用make命令來安裝匹配的內核頭文件。
現在我們假設你的內核是發行版自帶的,讓我們看下該如何安裝匹配的頭文件。
在 Debian、Ubuntu 或者 Linux Mint 上安裝內核頭文件
假設你沒有手動編譯內核,你可以使用apt-get命令來安裝匹配的內核頭文件。
首先,使用dpkg-query命令檢查是否有可用的內核頭文件。
$ dpkg-query -s linux-headers-$(uname -r)
dpkg-query: package 'linux-headers-3.11.0-26-generic' is not installed and no information is available
接著使用下面的命令安裝匹配的內核頭文件。
$ sudo apt-get install linux-headers-$(uname -r)
驗證頭文件是否成功安裝。
$ 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下。
在 Fedora、CentOS 或者 RHEL 上安裝內核頭文件
假設你沒有手動編譯內核,你可以使用yum命令來安裝匹配的內核頭文件。
首先,用下面的命令檢查系統是否已經安裝了頭文件。如果下面的命令沒有任何輸出,這就意味著還沒有頭文件。
$ rpm -qa | grep kernel-headers-$(uname -r)
接著用yum命令安裝頭文件。這個命令會自動找出合適的頭文件並安裝。
$ sudo yum install kernel-headers
驗證包安裝的狀態。
$ rpm -qa | grep kernel-headers-$(uname -r)
⑵ linux-headers-3.5.0-23 和 linux-headers-3.5.0-23-generic 的區別
linux-headers-3.5.0-23是文件頭,另一個是文件頭內核
⑶ Ubuntu內多餘的linux headers文件是否可以卸載
可以的
當你重新編譯內核後,可以將舊的內核鏡像、配置文件刪除。
⑷ linux headers是什麼 openwrt
linux是一個開源項目,openwrt是一個基於linux內核做出的產品,就像安卓4.0以前其實是運行在linux上的java虛擬出來的,4.0之後是直接運行在linux內核上,速度和響應提高不少。
⑸ linux header是什麼文件
Linux-headers 是 Linux 的開發頭文件,編程時要用到。
⑹ linux-headers就是內核
完全沒看懂樓主要什麼。
Linux-headers 是 Linux 的開發頭文件,應該位於 /usr/include/linux 裡面。不過有的系統習慣放 /usr/src 裡面一分(這種情況很少,因為正規的地方是 /lib/moles/<內核版本>/ 的某個目錄,印象里是他的 build 里),因為有的軟體去這里尋找當前內核的源代碼來調用當前源代碼的 header 進行編譯。/usr/include 裡面的 Linux 內核頭文件,是專門編譯 libc 用的。不能保證內核模塊的編譯要求。
真正的 Linux 不可能給這個名字。/usr/src 裡面習慣是放完整的 Linux 源代碼。但具體名字,要看系統的定義了,有的叫 linux-sources、kernel-source 什麼的。有的可能是改進版的名字。
⑺ linux的安裝包一般有devel,lib,headers,有什麼區別,謝謝
linux的安裝包一般都是rpm結尾的,你說的這些devel,lib,headers這些不是安裝包的格式,而爛簡是他們知歷嫌的屬性表述。devel代表驅動,lib代表庫,headers是一些特殊的軟體搭手。
⑻ 如何通過linux源碼樹製作linux kernel headers用於內核模塊開發
先查看自己OS使用的內核版本
shana@shana:~$ uname -r
2.6.22-14-generic
如果安裝系統時,自動安裝了源碼。在 /usr/src 目錄下有對應的使用的版本目錄。例如下(我是自己下的)
shana@shana:/usr/src$ ls
linux-headers-2.6.22-14
linux-headers-2.6.22-14-generic
linux-source-2.6.22
linux-source-2.6.22.tar.bz2
shana@shana:/usr/src$
如果沒有源碼。(一般ubuntu 都沒有吧)
查看一下可一下載的源碼包(切記不要使用超級用戶使用此命令否則……會提示沒有此命令)
shana@shana:/usr/src$ apt-cache search linux-source
linux-source - Linux kernel source with Ubuntu patches
xen-source-2.6.16 - Linux kernel source for version 2.6.17 with Ubuntu patches
linux-source-2.6.22 - Linux kernel source for version 2.6.22 with Ubuntu patches
shana@shana:/usr/src$
我選擇了 linux-source-2.6.22 - Linux kernel source for version 2.6.22 with Ubuntu patches 這個~
然後 install 之
shana@shana:/usr/src$ sudo apt-get install linux-source-2.6.22
下載完成後,在/usr/src下,文件名為:linux-source-2.6.22.tar.bz2,是一個壓縮包,解壓縮既可以得到整個內核的源代碼:
注意 已經切換到超級用戶模式
root@shana:/usr/src#tar jxvf linux-source-2.6.20.tar.bz2
解壓後生成一個新的目錄/usr/src/linux-source-2.6.22,所有的源代碼都在該目錄下。
進入該目錄
開始配置內核 選擇最快的原版的配置(默認)方式 (我是如此)
root@shana:/usr/src/linux-source-2.6.22# make oldconfig
當然你也可以使用 自知前己喜歡的配置方式 如 menuconfig , xconfig(必須有GTK環境吧)。反正不用剪裁什麼,所以不管那種方式能配置它就行了。
完成後,開始make 吧拆模 這兒比較久 一般有1一個小時吧。(保證空間足夠 我編譯完成後 使用了1.8G) 我分區時分給/目錄30G的空間,我沒遇到這問題。倒是我朋友遇到了。
shana@shana:/usr/src/linux-source-2.6.22$ make
shana@shana:/usr/src/linux-source-2.6.22$ make bzImage
當然,第一個make也可以不執行,直接make bzImage。執行結束後,可以看到在當前目錄下生成了一個新的文件: vmlinux, 其屬性為-rwxr-xr-x。
然後 :
root@shana:/usr/src/linux-source-2.6.22#make moles
root@shana:/usr/src/linux-source-2.6.22#make moles_install
執行結束之後,會在/lib/moles下生成新的目錄/lib/moles/2.6.22-14-generic/
。 在隨後的編譯模塊文件時,要用到這個路徑下的build目錄。至此,搭御清內核編譯完成。可以重啟一下系統。
至此 內核樹就建立啦
⑼ 如何安裝linux headers
這個如果源里有,就從源里安裝,不同發行版有所不同debian/ubuntu應該是sudoapt-getinstalllinux-headers-`uname-r`