2018年9月3日 星期一

Rebuild kernel with Ubuntu kernel source

##  Ubuntu kernel source
    **  網站支援KERNEL
    **  https://github.com/torvalds/linux
   **  首先看一下自己的内核版本
    **  apt-cache search linux-source
    **  自動抓取相同KERNEL
    **  sudo apt-get install linux-source
    **  sudo apt-get install linux-source-4.4.0


##  Ubuntu 16.04 server rebuild kernel
    **  安裝必要套件
    **  sudo apt-get update
    **  sudo apt-get install libncurses-dev
    **  sudo apt-get install fakeroot build-essential kernel-package ncurses-dev libssl-dev xz-utils
    **  sudo apt-get install fakeroot build-essential kernel-package libncurses5 libncurses5-dev
    **  sudo apt-get install fakeroot build-essential kernel-package libncurses5 libncurses5-dev  bin86 linux-kernel-devel  debhelper modutils
    sudo apt-get install fakeroot build-essential kernel-package libncurses5 libncurses5-dev  linux-kernel-devel  debhelper modutils


##  Complier kernel and update
    **  使用mak3-kpkg安裝
        1.  make-kpkg clean
        2.  fakeroot make-kpkg --initrd kernel_image kernel_headers (complier 相關 .deb)
        3.  sudo dpkg -i linux-image-3.7.2_3.7.2-10.00.Custom_i386.deb
        4.  sudo dpkg -i linux-headers-3.7.2_3.7.2-10.00.Custom_i386.deb
     
    **  標準安裝

##  移除舊核心
    **  dpkg --get-selections | grep linux-image 顯示現有核心
    **  sudo apt-get purge linux-image-2.6.38-10-generic     移除特地核心
    **  sudo update-grub2 

A. 安裝Kernel:
Step1. 搜尋(檢查)想要安裝的kernel版本是否存在
        $ sudo apt-cache search linux-image-*

       或者填入版本號搜尋,將X.X.XX填入版本號
        $ sudo apt-cache search linux-image-X.X.XX-generic

Step2. 開始安裝kernel
        $ sudo apt-get install linux-image-X.X.XX-generic
        $ sudo apt-get install linux-image-4.15.0-33-generic

        如果有其他需求,像是編譯模組,可以連headers都裝上
        $ sudo apt-get install linux-headers-X.X.XX-generic
     
Step3. 安裝後,更新initramfs image,詳細man update-initramfs
        $ sudo update-initramfs -u -k all

       或者使用
        $ sudo update-initramfs -u -k `uname -r`
Step4. 接著更新grub清單
        $ sudo update-grub

Step5. 重開機
        $ sudo reboot

        按ESC鍵進入GRUB選單,選擇安裝的Kernel開機


B.移除Kernel:
Step1. 檢查目前正在用哪個kernel
        $ uname -a
Step2. 或者列出目前系統中已安裝哪些kernel
        $ dpkg --get-selections | grep linux-image
Step3. 移除不要的Kernel,會自動將相關版本的 linux-image-extra-* 也一併移除
        $ sudo apt-get purge linux-image-X.X.XX-XX-generic

    wget https://github.com/torvalds/linux/archive/v4.5.tar.gz
    tar -xvf v4.5.tar.gz
    cd linux-4.5/
 
    sudo apt-get install build-essential ncurses-dev libssl-dev build-essential ncurses-dev xz-utils kernel-package
    sudo make -j 4 clean
    sudo make -j 4
    sudo make modules -j 4
    sudo make modules_install
    sudo make install
   sudo mkinitramfs -o /boot/initrd.img-4.5
   sudo update-initramfs -c -k 4.5
 
    sudo apt update 更新系統的所有存儲庫。
    sudo apt upgrade -y 升級安裝的所有軟件包。
    sudo reboot 重新啟動服務器以確保應用可能安裝的內核更新。
    sudo apt list --upgradeable 現在再次檢查可升級包,並使用以下命令。
 
    wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.11.2/linux-headers-4.11.2-041102_4.11.2-041102.201705201036_all.deb
    wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.11.2/linux-headers-4.11.2-041102-generic_4.11.2-041102.201705201036_amd64.deb
    wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.11.2/linux-image-4.11.2-041102-generic_4.11.2-041102.201705201036_amd64.deb
    dpkg -i *.deb 使用dpkg命令安裝軟件包。
    sudo update-grub 內核程序包安裝完成後,更新grub並重新啟動系統。
    sudo reboot

沒有留言:

張貼留言