您的位置:首页 > 运维架构 > Linux

Linux内核编译过程

2018-01-10 15:51 435 查看
       环境配置:在虚拟机Oracle VM Virtual中运行Ubuntu 12。

  获取内核,可以在https://www.kernel.org/下载最新版本的内核,笔者下载的是linux-4.5.2.tar.xz。笔者使用共享文件功能在Windows系统和ubuntu系统间交换文件,在windows系统用迅雷下载Linux内核,下载完成之后,放入到共享文件中。(在虚拟机中添加共享文件功能可百度)。

       打开终端,使用命令sudo su获得root权限,进入到共享文件目录下/media/sf_share_file(sf_share_file为自己定义的共享文件夹名字),使用mv linux-4.5.2.tar.xz /usr/src 命令将内核压缩包移动到usr/src目录下(.xz与/usr之间有一个空格),使用tar -Jxvf linux-4.5.2.tar.xz解压内核,注意不能在共享文件夹中解压内核,否则编译过程中会出现错误。

      
执行命令:apt-get install build-essential kernel-package libncurses5-dev fakeroot;apt-get install libssl-dev;安装编译内核所需的程序。

         编译配置:make menuconfig;配置内核,可以选择默认的,然后退出,生成.config文件,可以用vim打开。若编译过多次,可执行make mrproper命令,清除之前编译产生的文件,首次编译则不需要。一般为了保证当前ubuntu系统

的正常使用,可以使用当前系统的 配置文件,配置文件在/boot目录下,配置文件名为config-3.13.0-32-generic,3.13.0-32为当前内核的版本号。在/boot目录下,执行命令cp config-3.13.0-32-generic /usr/src/.config 替换生成的.config文件。

或者执行make menuconfig ,点击load,删除.config,输入/boot/config-3.13-32-generic 替换生成的.config,保存并退出。

开始编译:make bzImage;编译启动映像

                   make modules;编译模块

这两个过程需花费两个小时左右。

安装内核:make modules_install;安装模块

                    make install;安装内核

更改启动grub:mkinitramfs 4.5.2 -o /boot/initrd.img-4.5.2;制作initrd.img

                           update-grub2;更改grub

重启系统,uname -a 查看内核版本号

   
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Linux内核编译