Linux内核编译和运行

时间:2022-01-15 09:34:35

 

内核获取网站:https://www.kernel.org/pub/linux/kernel/

步骤如下:

1、打开终端,更改用户权限为root。具体做法是在终端输入sudo su,然后按提示输入密码。判断是否是root用户是使用whoami命令,若输出为root则已经切换到root账户。

2、输入mv linux-2.6.36.tar.gz  /usr/src,目的是把下载的内核源代码文件移到/usr/src目录。

3、输入cd /usr/src切换到该目录下。

4、输入tar zxvf linux-2.6.36.tar.gz,目的是解压内核包,生成的源代码放在linux-2.6.36目录下。

5、输入cd linux-2.6.36,切换到该目录下。

6、输入cp /boot/config-,然后按下Tab键,系统会自动填上该目录下符合条件的文件名,然后继续输入 .config,目的是使用在boot目录下的原配置文件。

7、配置内核

方法很多,主要有如下几种:

make mrproper

#make menuconfig  //基于ncurse库编制的图形工具界面

如果没有ncurse 库

Ubuntu: 运行apt-getinstall libncurses5-dev 

fedora : 运行 yum install ncurses-devel

#make config  //基于文本命令行工具,不推荐使用

#make xconfig  //基于X11图形工具界面

#make gconfig  //基于gtk+的图形工具界面

由于对Linux还处在初学阶段,所以选择了简单的配置内核方法,即make menuconfig。在终端输入make menuconfig,等待几秒后,终端变成图形化的内核配置界面。进行配置时,大部分选项使用其缺省值,只有一小部分需要根据不同的需要选择。

对每一个配置选项,用户有三种选择,它们分别代表的含义如下:

<*>或[*]——将该功能编译进内核

[]——不将该功能编译进内核

[M]——将该功能编译成可以在需要时动态插入到内核中的代码

注意:SCSI 虚拟机的话要编译进去

8、编译内核只需在终端输入make,然后等待编译的完成。 

9、sudo make modules  (编译模块)
10、sudo make modules_install  (安装模块)
11、make install
PS:  以下是内核无法启用的时候照下面做:

 

sudo mkinitramfs -o /boot/initrd.img-2.6.36

sudo update-initramfs -c -k 2.6.36

sudo update-grub2  //自动修改系统引导配置,产生grub.cfg启动文件。

 

注意: 

之前安装内核2.6.32版本总是失败,虽然和gcc 高版本有点关联,但修改了内核文件,是可以兼容高版本的gcc,之后发现有可能是和我Ubuntu版本12.4有冲突,要么和GRUB2 有点关联,要么和图形界面有点关联,但做人要有恒心,做不出来也要想办法搞出来,之后我又下载了一个2.6.36版本,因为老师的龙芯系统就是2.6.36的内核,安装我电脑虚拟机,果然成功!发现是2.6.32版本太早导致有可能失败,我之前的内核版本是3.8.13.

 

Linux内核编译和运行