编译linux内核步骤Linux -电脑资料

电脑资料 时间:2019-01-01 我要投稿
【www.unjs.com - 电脑资料】

    本来上个星期就应该写的,拖到现在了,

编译linux内核步骤Linux

。 开机的顺序是: BIOS MBR ( 就是 Lilo 或 Grub ) 取得 boot loader; 取得核心 kernel 的资料并加载 init 很多 scripts login 与 shell 为什么要重新编译内核: 1、内核太庞大 2、与硬件搭配稳定 3、支持新的硬件 编译

本来上个星期就应该写的,拖到现在了。

    开机的顺序是:

    BIOS

    MBR ( 就是 Lilo 或 Grub ) 取得 boot loader;

    取得核心 kernel 的资料并加载

    init

    很多 scripts

    login 与 shell

    为什么要重新编译内核:

    1、内核太庞大

    2、与硬件搭配稳定

    3、支持新的硬件

    编译过程:

    1、编译之前先查看内核版本:uname -r

    2、下载更新的内核版本升级:http://www.kernel.org

    3、解压

    #cd /usr/src

    #tar zxvflinux-2.4.31.tar.gz

    如果怕之前已经有人编译过核心,会产生一些.o的目的档案,所以先执行:

    #make mrproper

    会显示RM去除档案的讯息

    4、如果对同一版本内核编译,要修改一下:

    #cd /lib/modules

    #mv 2.4.18 2.4.18.old

    5、设定编译模式:

    make config :这种模式需要逐行输入所需要设定的项目,无法往前修改设定,所以目前很少使用这种方式来设定 Kernel 的项目了;

    make xconfig :这种模式则是使用 X-Window 为主要环境的设定模式!除非你有 X-Window 在执行,否则没有办法使用这种模式;

    make menuconfig :这种模式有点像是文字界面的选单模式,较为简便,而且可以在纯文字界面下面执行编辑动作!是目前最常使用的模式。

    #make menuconfig

    # make dep    <==建立相依的属性关系!

    # make clean <==将旧的资料去除掉!

    # make bzImage <==开始编译核心!这个核心是经过压缩的

    # make modules       <==开始编译模块!这个动作视您刚刚编译的模块数量!

    # make modules_install   <==将资料给他安装在 /lib/modules/`uname -r` 里面

    # make install       <==将刚刚 bzImage 建立完成的核心给他安装上来!

    6、修改grub:

    #vi /boot/grub/menu.lst 增加如下:

    title linux-2.4.31

    kernel (hd0,0)/boot/vmlinuz-2.4.31 root=/dev/hda1

    内核编译完成,重启机器,

电脑资料

编译linux内核步骤Linux》(https://www.unjs.com)。

    几个命令:

    depmod:模块的相依性

    MILY: MingLiU; mso-fareast-font-family: 宋体">-a:将/etc/modules.conf可以查询到的模块的相关性都写入/lib/modules/`uname -r`/当中

    -e:显示出目前已加载的不可执行的模块名称

    -n:将各模块的相依性直接输出屏幕上,而不是输出到/lib/modules/`uname -r`当中

    -s:将一些讯息结果输出到syslog的登录档中!

    lsmod:查看系统的模块

    modinfo:查看模块的信息

    -a:列出作者

    -d:列出这个模块的基本说明

    -n :列出这个模块的档案放置路径与名称

    modprobe:加载系统模块

    -l:列出系统模块

    -c:更详细的列出系统模块

    insmod:加载系统模块

    -f:强制将模块加载,要加载不相同版本的模块时候可能会用到的参数

    -k:自动在核心没有使用到该模块的时候,先清除干净!

    -p:测试模块是否可以被加载,不会直接加载系统中!

    -s:将一些执行讯息写到syslog这种登录档,而不是写到terminal当中

    rmmod:删除模块

    原文转自:http://www.ltesting.net

最新文章