Centos7 下編譯ramdisk內核模塊brd.ko的方法

1. 確保centos7上有gcc和make等工具linux

2. 獲取centos7源碼。
    CentOS-7-x86_64-1503-01版本的內核是3.10.0-229.el7.x86_64,下載該distribution版本的內核源碼,拷貝到根目錄:
   
http://vault.centos.org/7.1.1503/updates/Source/SPackages/kernel-3.10.0-229.1.2.el7.src.rpm
   
    安裝該源碼包
    [user@host]# rpm -i kernel-3.10.0-229.1.2.el7.src.rpm 
    
    如今內核的源代碼目錄樹能夠在 ~/rpmbuild/SOURCE/ 這個目錄內找獲得,源碼文件是linux-3.10.0-229.1.2.el7.tar.xz
   
3. 編譯內核源碼
    (1) 將linux-3.10.0-229.1.2.el7.tar.xz 文件拷貝到目錄  /usr/src/kernels/ 下
   
    (2) 解壓內核源碼
        [user@host kernels]#  tar -xvf linux-3.10.0-229.1.2.el7.tar.xz
       
    (3) 切換到 linux-3.10.0-229.1.2.el7目錄
        [user@host kernels] #  cd linux-3.10.0-229.1.2.el7
       
    (4)清除從前編譯內核時殘留的.o 文件和沒必要要的關聯。
           確保源代碼目錄下沒有不正確的.o文件和文件依賴關係,執行該命令後,內核選項會回到默認的狀態下。若是你是下載的內核源碼,並且是第一次編譯,就沒有必要執行這一步操做
        [user@host inux-3.10.0-229.1.2.el7]# make mrproper
       
        將已存在的./.config文件內容,做爲新版本內核的默認值。
        [user@host inux-3.10.0-229.1.2.el7]# make oldconfig
       
    (5) 配置內核,修改相關參數
        [user@host inux-3.10.0-229.1.2.el7]# make menuconfig
        在內核配置菜單中配置ramdisk塊驅動模塊的個數和大小,並保存退出
            Device Drivers
                |-->Block devices
                            |-->  [M]RAM block device support
                                     (xx) Default number of RAM disks
                                     (xx) Default RAM disk size(kbytes)
       
    (6) 編譯內核和內核模塊
        [user@host inux-3.10.0-229.1.2.el7]# make bzImage  
        [user@host inux-3.10.0-229.1.2.el7]# make modules
   
    (7) 編譯後的Ramdisk模塊的存放位置
        /usr/src/kernels/linux-3.10.0-229.1.2.el7/drivers/block/brd.ko
   
4. 安裝新的brd.ko模塊
centos

    (1) 將新的brd.ko模塊拷貝到Centos7系統的 以下目錄/lib/modules/3.10.0-229.el7.x86_64/kernel/drivers/block/,
        覆蓋原來的ramDisk模塊brd.ko。
工具

    (2) 將舊的brd.ko模塊從內核中移除。
        [root@localhost ~]# rmmod brd
   
    (3) 更新內核模塊依賴。
        [root@localhost  ~]# depmod -a
  
    (4) 從新掛載內核模塊。
        [root@localhost  ~]# modprobe brd
   
    (5) 檢查內核模塊是否掛載成功,
        若是上面的內核選項中[Default number of RAM disks]的值設置的是2,那麼,
        新模塊加載成功後,命令會輸出顯示/dev/ram0 和 /dev/ram1 兩個設備
        [root@localhost  ~]#  ls /dev/ram*   
    
    (6) 檢查ramdisk的容量大小(以1024M的ramdisk爲例),輸入如下命令。
         [root@localhost  ~] mkdir /tmp/ramdisk0
         [root@localhost  ~] mke2fs /dev/ram0
         [root@localhost  ~] mount /dev/ram0 /tmp/ramdisk0
         [root@localhost  ~] df -h
            Filesystem               Size  Used Avail Use% Mounted on
            /dev/ram0               1008M  1.3M  956M   1% /tmp/ramdisk0
ui

相關文章
相關標籤/搜索