国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Linux > 正文

制作linux內核安裝包

2024-06-28 13:25:45
字體:
來源:轉載
供稿:網友
制作linux內核安裝包

實驗基于Centos 6.2

升級linux內核

直接在一個有編譯環境的設備上,編譯升級內核很簡單。

make menuconfig

或者

拷貝現有系統的.config文件

修改.config文件 CONFIG_DEBUG_INFO=n (避免編譯產生文件過大)

make oldconfig

make all -j4

make modules_install

make install

制作linux內核安裝包

有時需要在虛擬機上編譯好內核后,安裝到另外的設備上,而設備上工具有限,沒有編譯開發環境等。一種方式是通過nfs掛載,在設備上直接make modules_install,然后make install。

另外一種,就是手動拷貝安裝。下面介紹怎么制作一個內核安裝包,可以直接在設備上安裝。以下以內核3.5.3為例說明。

1、編譯

make all -j4

2、準備各種目錄及文件

新建文件夾 kernel-3.5.3

export INSTALL_MOD_PATH=kernel-3.5.3

執行make modules_install 模塊會安裝到文件夾kernel-3.5.3中

拷貝源碼目錄下scripts中的depmod.sh 到kernel-3.5.3中

拷貝源碼目錄下arch/x86/boot/bzImage 到kernel-3.5.3中

拷貝源碼目錄下System.map到kernel-3.5.3中

拷貝源碼目錄下arch/x86/boot/install.sh 到kernel-3.5.3中

所有文件準備好了

kernel-3.5.3

  --lib

    --firmware

    --modules

      --3.5.3

  --bzImage

  --depmod.sh

  --install.sh

  --System.map

3、編寫安裝腳本

在這之前,首先需要修改下install.sh腳本

在文件適當位置加上變量定義

  INSTALLKERNEL=installkernel

然后編寫安裝腳本 install_kernel.sh

#!/bin/bashPROGRAM=install_kernel.shif [ "$0" != "${PROGRAM}" ]; thenif [ "$0" != "./""${PROGRAM}" ]; thenecho "ERROR: ****** !"exitfifiecho "0%..."/bin/cp -rf lib/modules/3.5.3 /lib/modules/echo "30%..."/bin/sh depmod.sh /sbin/depmod 3.5.3echo "60%..."sh install.sh 3.5.3 bzImage System.map "/boot"echo "100%"echo "install success !"

4、現在有個問題,你會發現,目錄下有個install.sh腳本,有個install_kernel.sh腳本,為了避免使用時混亂,我們吧install.sh重命名一下。

mv install.sh kernel_install
mv install_kernel.sh install.sh

然后重新編輯下我們的install.sh(原來的install_kernel.sh),并加入修改grub的功能,默認啟動到新內核中。

#!/bin/bashPROGRAM=install.shGRUB_CONF="/boot/grub/grub.conf"line_no=""modify_grub(){    line_no=`sed -n '/^default/=' $GRUB_CONF`          if [ $line_no ] ;then        sed -i "${line_no}cdefault=0" $GRUB_CONF     fi}if [ "$0" != "${PROGRAM}" ]; then    if [ "$0" != "./""${PROGRAM}" ]; then        echo "ERROR: ****** !"        exit    fifiecho "0%..."/bin/cp -rf lib/modules/3.5.3 /lib/modules/echo "30%..."/bin/sh depmod.sh /sbin/depmod 3.5.3echo "60%..."sh kernel_install 3.5.3 bzImage System.map "/boot"echo "90%..."modify_grubecho "100% OK!"

5、打包kernel-3.5.3文件夾下的內容

制作完成,拿到設備上,解壓,執行install.sh即可完成內核安裝。

制作linux模塊編譯環境

好,現在你制作了一個內核安裝包,現在有人要將以前的驅動,重新編譯,以適應這個新的內核。你總不能把你編譯的源碼打個包給他的吧,太大了。

其實只要拷貝幾個必要的目錄就可以了,以下還是以3.5.3為例,制作一個模塊編譯環境的安裝包。

新建文件夾 kernel-3.5.3-devel

kernel-3.5.3-devel下新建usr/src/kernel/3.5.3目錄

拷貝源碼目錄下arch/x86 到3.5.3/arch下 (可以把boot文件夾刪掉,節省空間)

拷貝源碼目錄下include到3.5.3下

拷貝源碼目錄下scripts到3.5.3下

拷貝源碼目錄下usr 到3.5.3下

拷貝源碼目錄下 .config Kbuild Kconfig Makefile Module.symvers modules.builtin modules.order System.map到3.5.3下

Kernel-3.5.3下新建目錄lib/modules/3.5.3

然后lib/modules/3.5.3中,建立build連接文件,連接到../../../usr/src/kernel/3.5.3

好,打包kernel-3.5.3-devel文件夾下的文件和目錄,就做好了一個編譯環境的安裝包,使用者先使用內核安裝包安裝內核,然后使用本安裝包,直接解壓到自己設備的根目錄。重啟切換到3.5.3內核下,即可進行模塊的開發和編譯了。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 汉阴县| 铜鼓县| 南川市| 西吉县| 黄梅县| 大洼县| 米林县| 博野县| 寿宁县| 咸阳市| 白沙| 乐亭县| 米易县| 苍溪县| 海晏县| 神农架林区| 西藏| 申扎县| 古田县| 滕州市| 华安县| 祁东县| 泊头市| 徐州市| 道孚县| 西昌市| 同心县| 陆良县| 武隆县| 吴旗县| 永靖县| 吉安县| 承德市| 闽清县| 泰来县| 资阳市| 弥渡县| 澄城县| 儋州市| 六枝特区| 皮山县|