centos編譯linux
① 如何在Ubuntu/CentOS上安裝linux內核4.0
如果你正在使用Linux的發行版Ubuntu
15.04,你可以直接通過Ubuntu內核網站安裝。在你的Ubuntu15.04上安裝最新的Linux內核4.0,你需要在shell或終端中在root訪問許可權下運行以下命令。
上面的命令會自動安裝為CentOS
7構建的Linux內核4.0。
現在,下面的是另一種方式,通過編譯源代碼安裝最新的內核4.0。
從源代碼編譯安裝
1.
安裝依賴軟體
首先我們需要為編譯linux內核安裝依賴的軟體。要完成這些,我們需要在一個終端或者shell中運行以下命令。
4.
配置
配置Linux內核有兩種選擇的。我們可以創建一個新的自定義配置文件或者使用已有的配置文件來構建和安裝Linux內核。這都取決於你自己的需要。
配置新的內核
現在我們在shell或終端中運行make
menuconfig命令來配置Linux內核。我們執行以下命令後會顯示一個包含所有菜單的彈出窗口。在這里我們可以選擇我們新的內核配置。如果你不熟悉這些菜單,那就敲擊ESC鍵兩次退出。
② 如何在centos7中編譯linux內核
下載linux內核的源代碼,然後設置內核參數,然後編譯。
③ CentOS 5.5下如何編譯安裝新內核
第一步:下載內核
傳送門:地址.筆者下載的是3.2.84版本
第二步:解壓編譯內核
由於我下的是.tar.xz文件,用tar命令不能直接解壓。
1.我的系統里不帶xz解壓軟體,先下載xz-5.0.3.tar.bz2文件並解壓安裝
tar -jvxf xz-5.0.3.tar.bz2 cd /opt/xz-5.0.3 #進入解壓後的文件夾 ./configure make make install2.解壓內核
xz -d linux-3.2.84.tar.xz tar -xvf linux-3.2.84.tar3.如果是第一次編譯內核,並沒有上次殘留的文件可以跳過該步驟(最好仔細看下指令對應的功能)
make mrproper make clean 刪除大多數的編譯生成文件, 但是會保留內核的配置文件.config, 還有足夠的編譯支持來建立擴展模塊 make mrproper 刪除所有的編譯生成文件, 還有內核配置文件, 再加上各種備份文件 make distclean mrproper刪除的文件, 加上編輯備份文件和一些補丁文件。4.搭建編譯內核所需要的環境
yum -y install gcc yum install ncurses ncurses-devel yum install openssl-devel5.進入內核解壓文件夾配置內核參數
由於我是個小白不會選,為了方便,直接用make localmodconfig命令,這個命令是以本來的.config文件為基礎去選,可以參考論文:嵌入式linux系統的裁剪優化和測試技術.然後我就一直回車直到結束。然後再輸入make menuconfig命令進入圖形選擇菜單,將kenel hacking中的Sample..選項去掉(具體那一項我忘了,尷尬),退出保存。然後編輯.config文件中的“CONFIG_SYSFS_DEPRECATED”,默認該選項為not set,被注釋掉的,將其改為y,即修改為“CONFIG_SYSFS_DEPRECATED=y”,之後可能還要修改,後面再說。
6.編譯新內核
make bzImage && make moles && make moles_install7.安裝內核
8.編譯安裝可能出現的情況
應該是沒什麼問題, 不過也不排除會出現下面的情況:make:警告:檢測到時鍾錯誤。您的創建可能是不完整的。 解決辦法:find . -type f -exec touch {} ; 重新編譯下就好了。
9.處理下img中的東西(我說不清楚= =)
1)解壓initrd文件
# cp /boot/initrd-3.2.84.img /tmp # cd /tmp/ # ls initrd-2.6.30.4.img # mkdir newinitrd # cd newinitrd/ # zcat ../initrd-2.6.30.4.img | cpio -i釋放之後看到如下內容
# ls bin dev etc init lib proc sbin sys sysroot2)編輯init,刪掉其中重復的四行中的兩行 echo “Loading dm-region-hash.ko mole” insmod /lib/dm-region-hash.ko echo “Loading dm-region-hash.ko mole” insmod /lib/dm-region-hash.ko 3)重新打包initrd
# find . | cpio -c -o > ../initrd 11538 blocks # cd .. # gzip -9 < initrd > initrd.img # ls initrd-2.6.30.4.img initrd initrd.img這裡面的initrd.img就是重新打包後的文件。 4)把initrd.img復制到/boot下 命令:#cp initrd.img /boot 5)修改grub.config,在/etc文件夾下 把initrd-3.2.84.img改為initrd.img就可以了 6)reboot重啟 記得選擇自己的內核!別錯過啦!
以上內容就是小編為大家帶來的關於CentOS 5.5下編譯安裝新內核的方法了,希望可以幫助到大家!
④ centos linux編譯安裝Ralink無線網卡驅動出現錯誤,iinstall: 無法獲取"rt3090sta.ko" 的文件狀態(stat):
是因為你的用戶名不對,不應該用root應該用對應桌面的用戶名:例如
administrator@ubantu:/桌面$
⑤ CentOS怎麼編譯linux程序
打開你的終端 linux叫bash 進去到你的工作目錄 在裡面敲命令 比如 gcc code.c -o code 就是把code.c源代碼編譯鏈接成code 系統默認生成的可執行文件是a.out 這個你需要學習gcc命令 如果是項目編譯需要用到make 還要學習寫makefile 東西很多 望採納
⑥ 如何在CentOS上使用高版本的GCC編譯
CentOS作為伺服器系統,追求的是穩定性和高性能,運行其上的軟體自然不會同步得那麼實時。普通軟體,找到合適的YUM倉庫就能順利解決依賴完成更新。
但是對於GCC這種底層應用來講,涉及到的依賴非常多。更新超復雜,且不建議在生產伺服器上進行更新。但如果你需要新版本的GCC該怎樣呢?實際上Redhat和CentOS一直對開發有專門的支持,即devtools軟體包。包含有:gcc、gdb、binutils、elfutils、SystemTap、Valgrind、OProfile和dwz。以CentOS為例:
wget http://people.centos.org/tru/devtools-1.1/devtools-1.1.repo -O /etc/yum.repos.d/devtools-1.1.repo
yum -y --enablerepo=testing-1.1-devtools-6 install devtoolset-1.1-gcc devtoolset-1.1-gcc-c++
為了不影響本機的gcc環境,開發工具默認安裝在『/opt/centos/devtoolset-1.1/root/』目錄下。需要修改用戶的環境變數方可使用:
export CC=/opt/centos/devtoolset-1.1/root/usr/bin/gcc
export CPP=/opt/centos/devtoolset-1.1/root/usr/bin/cpp
export CXX=/opt/centos/devtoolset-1.1/root/usr/bin/c++
推薦使用gcc默認給出的環境變數設置腳本『/opt/centos/devtoolset-1.1/enable 』。將其加到有需要用戶的環境變數中,重新登錄即生效。
echo 'source /opt/centos/devtoolset-1.1/enable' >> ~/.bash_profile
筆者小試了一把,在CentOS 6.4下,原生GCC版本為4.4.7-3,官網給出的開發版本為4.7.2-5。拿來編譯linux-3.9.7內核,生成的文件變小了一丁點,時間沒太留意,上應該更快吧。
⑦ CentOS怎麼編譯linux程序
打開你的終端 linux叫bash 進去到你的工作目錄 在裡面敲命令 比如 gcc code.c -o code 就是把code.c源代碼編譯鏈接成code 系統默認生成的可執行文件是a.out 這個你需要學習gcc命令 如果是項目編譯需要用到make 還要學習寫makefile 東西很多 望採納
⑧ centos怎麼編譯linux系統
有些軟體會有 make uninstall 之類的功能,但大多都沒有,所以只有手動刪除,或者在configure的時候加個preifx參數,比如 --preifx=/opt/squid,這樣當你不用的時候直接rm -rf /opt/squid 就可以了。
⑨ 【Linux】為CentOS5.3重新編譯內核時出現的問題
現在內核編譯改動很大,減少了很多的步驟的。
應該是你的
config
有問題。新手不要
make
mrproper
後直接
make
config
。這樣你看到的默認設置是內核那個默認,大部分機器這個默認設置啟動都有問題的。
你最好看看
/boot/
裡面有沒有系統自帶內核的config,拷貝到新的內核源代碼裡面重命名為
.config
(注意文件名開始有點的)。
之後
make
oldconfig
,補全設置。之後再
make
menuconfig
詳細設置。
這樣你的
config
應該就不會出現落下什麼設置導致不能啟動了。
另外,最好你的
Linux
分區所用的分區格式的驅動,還有硬碟控制器晶元驅動,全都編進內核。這樣差不多可以脫離
initrd
啟動計算機。可以選擇繞過
initrd
來防止多一個步驟多一個問題的狀況。
⑩ Linux centos7使用make編譯時報錯,提示C文件初始值設定元素不是常量,請問應該怎麼解決
static const 初始化值必須為常量,就是只能是編譯時就能確定的值,而不是運行時運算出來的值.
得看看makefloatx80是什麼,如果是一個普通函數,那麼出現這個錯誤是應該的.
考慮到是官方庫,可能是使用的編譯器版本不同.