当前位置: 亚洲城ca88 > 亚洲城 > 正文

秀脱linux实战笔记linux,编译及安装Linux内核步骤

时间:2019-07-06 21:19来源:亚洲城
!本文基于Fedora 秀脱linux实战笔记linux-kernel-3.0.3实战片篇: 1.首先下载新内核源文件 下载地址:kernel.org 2.以往张开解压,解压地方随便,最佳放置毫无干系主要的目录,只怕本人的hom

!本文基于Fedora


秀脱linux实战笔记linux-kernel-3.0.3实战片篇:

1.首先下载新内核源文件 下载地址:kernel.org
2.以往张开解压,解压地方随便,最佳放置毫无干系主要的目录,只怕本人的home,那样便于操作。

Linux内核3.0版本发表已有一段时间了,不明了那几个版本号大跃进的内核是不是好用。不过当下相继发行版的linux还仍未选择3.0的基本,因而得以友善下手工编织译内核来感受一下!趁着此番编译内核的时机能够再熟识一下编写翻译内核的手续。

   QQ:     6541657 
EMAIL:xiutuo@gmail.com

  1. 跻身解压后的目录,
    千帆竞发安插基本,假设从前安插过,请先进行
    $ make mrproper #清理旧的二进制文件
    从此现在采纳一下三者之一:

                   $ make config
                   $ make menuconfig
                   $ make xconfig
    

1.下载并解压内核到自由目录

从源码官方网站下载最新的基础源码3.0.4,能够解压至跋扈目录,作者放在主目录下:

  1. ~$ tar xjvf linux-3.0.4.tar.bz2  2.布局基本

对基础进行铺排是为着博取根本配置文件.config。通过对内核进行布局,能够使今后编写翻译成功的基石扩大或收缩对一部分基础性子的支撑。对基本进行配置有两种艺术,有依据文本的配备格局也可以有依靠图形的用户分界面。下边采取采用相比较布满的make menuconfig格局:

  1. ~/linux-3.0.4$sudo apt-get install libncurses5-dev ~/linux-3.0.4$sudo make menuconfig  

鉴于该配置方式基于ncurses库,所以在开发银行配置界如今要先安装ncurses库。运行配置界前面,必须步入源码根目录,配置分界面运行成功后如下图:

亚洲城 1

大家这里对根本根据默许的布署形式开展编译,因而当配置菜单运行后直接退出并保存就能够。此时就在根本源码根目录下生成了.config。

一:环境
linux: centos6
kernel:linux-3.0.3.tar.bz2
应用root用户编写翻译内核
水源裁剪:
使得:保留常用USB驱动,援助常用磁盘接口如SCSI,sATA
去掉有线,Bluetooth,ISDN,,其余娱乐手柄,手持设备等都已去掉
扶助ext3,ext4,cifs,nfs,不支持设想化
内核debug形式已经关闭,编写翻译情势使用优化code size格局编写翻译
CPU架构:只保留intel,去掉AMD等,cpu采纳非抢占调治(server)格局
言语:只保留UTF-8,ISO,简体普通话

字符分界面下还是用menuconfig相比较好些,图形分界面能够用xconfig。
设若想在已有的.config上做布署,能够进行
make oldconfig;
听从提示和内需对新增加特色开展计划。假诺还必要尤其修改和铺排,则足以重新运营
make menuconfig,配置后保存。

3.编写翻译内核

今昔就足以编写翻译内核了,可是总体编写翻译进度比较深入,由此能够对make加-j参数来巩固编写翻译的效用。在make时利用该选项会为编写翻译进程分配n个并发职责,那样能够减弱编写翻译时间。n的取值为cpu个数的二倍。

  1. ~/linux-3.0.4$sudo make -j4  

上述进度会有两局地的专门的学业,其一是编写翻译内核,即编写翻翻译并配词置选项中标识为Y的那部分基础;其二是编写翻译内核模块,即编写翻译配置选项中标识为M的那有个别基石。

二:编写翻译希图
1.备选相关软件包
yum install rpmdevtools yum-utils ncurses-devel make rpm-build rpm-devel

  1. $ make clean,当然这一步不是必须的。借使此前做过make mrproper,那么这一步能够不做make clean
  2. 编译:
    平时奉行
    $ make bzImage && make modules 就能够了
  3. 设置模块
    # make modules_install(此命令必要root权限)
  4. 把当前目录下的.config、System.map文件,以及子目录中的文件 ./arch/i386/boot/bzImage 复制到/boot下,比量齐观命名,命名准绳能够参谋/boot下已某个文件
    具体为:
    # cp .config /boot/config-version.number# cp ./arch/i386/boot/bzImage /boot/vmlinuz-version.number# cp System.map /boot/System.map-version.number
  5. 生成initramfs.img文件
    目前fedora下使用dracut命令
    # dracut /boot/initramfs-version.number.img version.number
    注:以上命令中的version.number必要替换为当前编写翻译内核的版本号
  6. 修改指导器,# vi /boot/grub/grub.conf
    以grub为例:
    修改grub.conf,依据已有运转参数格式加多新参数。
  7. $reboot
    最后再一次开动,采用新基础实行测量试验

4.设置内核模块以及基本

先是对内核模块举行安装,那一个进度会将刚刚编写翻译内核模块时生成的内核模块复制到/lib/modules/3.0.4/目录下,个中3.0.4为相应的水源版本。使用的指令如下:

  1. ~/linux-3.0.4$sudo make modules_install

继之使用下述命令安装编写翻译好的基础:

  1. ~/linux-3.0.4$sudo make install  

安装内核的历程主要完毕了以下的办事:

1.将编写翻译内核时生成的内核镜像bzImage拷贝到/boot目录下,并将那一个镜像命名字为vmlinuz-。假如选用x86的cpu,则该镜像放在arch/x86/boot/目录下(处李樯在编写翻译的基石源码下)。

2.将~/linux-3.0.4/目录下的System.map拷贝到/boot/目录下,重新命名称叫System.map-3.0.4。该公文中存放了基本的符号表。

3.将~/linux-3.0.4/目录下的.config拷贝到/boot/目录下,重新命名叫config-3.0.4。

三. 源码编写翻译安装步骤

上述是Linux内核配置、编写翻译和设置的中央步骤,写的相比轻松。应接各位指教。

5.创建initrd.img文件

initrd.img即为初步化的ramdisk文件,它是三个镜像文件,将部分最宗旨的驱动程序和指令工具打包到镜像文件里。该镜像文件的功效是在系统还不曾挂载根分区前,系统须求实行一些操作,比方挂载scsi驱动,此时将initrd文件释放到内部存储器中,作为三个虚构的根分区,然后施行有关脚本,运维insmod命令加载必要的模块。

实际的始建方法如下:

  1. ~/linux-3.0.4$sudo mkinitramfs 3.0.4 -o /boot/initrd.img-3.0.4  
  1. 解压源码
    tar xvf linux-3.0.3.tar.bz2
    cd linux-3.0.3
  2. make mrproper 
    只如果第三遍编写翻译,省略该手续,该手续首要删除编写翻译后生成的部分文书,尽管.config,makefile,*.o等文件
    倘假诺率先次编译退步,再二回编写翻译,则必须进行。

  3. make menuconfig  | make config | make menuconfig | make xconfig | make gconfig
    定制内核配置,请上述措施任选一种。笔者那边选择make menuconfig

  4. make
    编写翻译内核

  5. make modules_install 
    设置内核模块, 把上一步营造出来的基石归入二个模块子目录中:
    /lib/modules/内核版本,这里是/lib/modules/3.0.3/

  6. make install
    把编写翻译好的基础归入/boot中,而且会更新引导文件,会把vmlinuz和System.map复制到/boot目录下同期修改grub
    要害会扭转一下文件:
    config-3.0.3   --内核编写翻译配置文件内容正是make menuconfig出来的文件.config的情节,只是文件名分化而已
    initrd-3.0.3.img 
    vmlinux-3.0.3.bz2
    System.map-3.0.3 
    vmlinuz-3.0.3

  7. new-kernel-pkg --mkinitrd --depmod --install 3.0.3
    设置grub,new-kernel-pkg --mkinitrd --depmod --install 内核版本号
    修改/boot/grub/grub.conf文件,扩充一下剧情
    title CentOS Linux (3.0.3)
            root (hd0,6)
            kernel /vmlinuz-3.0.3 ro root=UUID=db5edc6d-d16b-4308-8c7b-6df9f4f4e26c 
    rd_NO_LUKS rd_NO_LVM rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYS
    FONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us crashkernel=auto rhgb quiet
            initrd /initrd-3.0.3.img

亚洲城 2

6.更新grub

最终一步则是创新grub运营菜单,使用下边包车型客车授命则能够自动更新运行菜单:

sudo update-grub2

如此会将刚刚编写翻译好的基本放在运转菜单的第二个人,借使急需修改运行菜单中私下认可系统的运营顺序,则修改/boot/grub/grub.cfg文件中的set default=的值就可以。

OK,内核编译达成。

亚洲城 3

四. 编译成rpm包

  1. 解压源码
    tar xvf linux-3.0.3.tar.bz2
    cd linux-3.0.3
    vi scripts/package/mkspec 
    充实一下几行,目标:当rpm -i kernel-3.0.3-1.x86_64.rpm 电动配置grub.conf

echo "%post"
echo 'if [ `uname -i` == "x86_64" -o `uname -i` == "i386" ]; then'
echo  'if [ -f /etc/sysconfig/kernel ]; then'
echo  '/bin/sed -i -e 's/^DEFAULTKERNEL=kernel-smp$/DEFAULTKERNEL=kernel/' /etc/sysconfig/kernel || exit $?'
echo  'fi '
echo 'fi '
echo '/sbin/new-kernel-pkg  --mkinitrd --make-default --depmod --install %{version} || exit $?' 

  1. make mrproper 
    倘假使率先次编写翻译,省略该手续,该手续首要删除编写翻译后生成的部分文件,假如.config,makefile,*.o等文件
    要是是首先次编写翻译战败,再叁次编译,则必须进行。

  2. make menuconfig  | make config | make menuconfig | make xconfig | make gconfig
    定制内核配置,请上述措施任选一种。作者这里选择make menuconfig
    生产基础配置文件.config

  1. make rpm-pkg
    更改一下文件

Wrote: /root/rpmbuild/SRPMS/kernel-3.0.3-1.src.rpm
Wrote: /root/rpmbuild/RPMS/x86_64/kernel-3.0.3-1.x86_64.rpm
Wrote: /root/rpmbuild/RPMS/x86_64/kernel-headers-3.0.3-1.x86_64.rpm

  1. 设置内核
    rpm -ivh /root/rpmbuild/RPMS/x86_64/kernel-3.0.3-1.x86_64.rpm

五.附录
kernel-3.0.3-1.src.rpm下载地址


kernel-3.0.3-1.x86_64.rpm下载地址

kernel-headers-3.0.3-1.x86_64.rpm下载地址

转载自:

编辑:亚洲城 本文来源:秀脱linux实战笔记linux,编译及安装Linux内核步骤

关键词: 亚洲城ca88