Win10用VMwareWorkstation搭的虛擬機 CentOS6.5,內核版本2.6.32-431.el6.x86_64 在該環境下升級至4.9.195版本(版本隨便選的一個),而且編譯版本信息(版本信息裏面加上個人學號_姓名)html
肯定內核以及版本信息linux
[root@ymhadoop ~]# uname -r 2.6.32-431.el6.x86_64 [root@ymhadoop ~]# cat /etc/centos-release CentOS release 6.5 (Final)
#逐條運行命令 sudo yum groupinstall "Development Tools" sudo yum install ncurses-devel sudo yum install qt-devel sudo yum install openssl-devel //後文所有默認在root權限下輸入命令(即省略sudo)
若是使用sudo命令報錯: xxx is not in the sudoers file.This incident will be reported. 解決辦法見後文[1]segmentfault
Development Tools" :是用於更新編譯環境,確保內核源碼編譯的時候擁有編譯時所需的一切工具windows
ncurses-devel:確保讓make config系列指令正確地執行centos
qt-devel、openssl-devel同上服務器
CentOS6的源碼放在/urc/src/kernels/文件夾下,因此我也直接將壓縮包解壓至該路徑下,獲得文件夾linux-4.9.195。app
cd /usr/src/kernels/ tar -zxvf ~/installer/linux/src/linux-4.9.195.tar.gz
因爲個人上機任務是須要在源碼的版本信息中加入個人學號_姓名,則只須要用make menuconfig指令 —> 這個指令能讓你的源碼配置在可視化界面上操做。ide
make menuconfig指令與以前配置編譯環境時候的後三條語句息息相關,不然會報錯誤: Makefile:546: recipe for target 'menuconfig' failed 解決辦法見後文[3]工具
看到menu菜單後,進入General setup;進入setup後,再找到 Local version - append to kernel release 表示在內核版本後面加上自定義的版本字符串(小於64字符),能夠用"uname -a/-r"命令看到oop
回車後鍵入:_xxxxxxxx_ym
cd /usr/src/kernels/linux-4.9.195/ make -j 4
cat /proc/cpuinfo
查看cpu信息。 找到其中「processor : [數字]」表示對CPU的編號,這個編號從0開始,因此找到最後一個「processor : [數字]」,[數字]+1就是你的CPU數。個人機器最後一個CPU編號爲「processor : 0」,因此個人電腦是單核。make modules_install
make install
vi /etc/grub.conf #boot=/dev/sda default=0 //此處須要將1修改爲0;通常新安裝的內核在第一個位置,因此設置default=0。 timeout=5 splashimage=(hd0,0)/grub/splash.xpm.gz hiddenmenu title CentOS (3.10.58) root (hd0,0) ......
reboot //重啓命令 uname -r //查看內核版本信息 4.9.195_xxxxxxxxx_ym //顯示內核版本信息
sudo命令報錯是由於用普通用戶權限使用root級別命令 簡單解決就直接su命令切換到root用戶下進行原來操做便可,可是要把原命令中的sudo去掉 其餘可以容許普通用戶使用sudo命令的解決方法 [點擊這]
make[1]: *** [scripts/kconfig/mconf.o] 錯誤 1 make: *** [menuconfig] 錯誤 2 通常是因爲gcc和內核版本不兼容致使的。
make[1]: *** [scripts/kconfig/mconf.o] Error 1 Makefile:546: recipe for target 'menuconfig' failed make: *** [menuconfig] Error 2
該錯誤是由於make menuconfig須要安裝(Ubuntu)libssl-dev / (CentOS)openssl-devel
[root@ymhadoop ~]# lsmod | grep [module_name] //For example :lsmod | grep sco [root@ymhadoop ~]# find /lib/ -name "*sco.ko"
[ERROR: modinfo: could not find module * ] [CentOS 6.x 內核升級(2.6.32 -> 3.10.58)過程記錄] [Linux CentOS 修改內核引導順序] [CentOS7編譯內核 詳細步驟] [CentOS系統安裝libssl-dev時No package libssl-dev availab] [CentOS 6.X 系統更改內核啓動順序] [CentOS 7.3 手動編譯安裝最新版本Linux Kernel ]