首页 » ARM » Kernel: 编译、安装内核详细过程

Kernel: 编译、安装内核详细过程

作者: lesca 分类: ARM, Kernel, Ubuntu 发布时间: 2011-02-27 18:43 ė浏览 11,602 次 62条评论

本文已过期!请查看更新版本:Kernel:编译、安装内核详解教程
清理

$ make distclean
  CLEAN   scripts/basic
  CLEAN   scripts/kconfig
  CLEAN   include/config include/generated

复制配置文件(自己配置可以省略此步骤)

cp /boot/config-current_version-general ./.config


生成配置文件

$ make menuconfig
  HOSTCC  scripts/basic/fixdep
  HOSTCC  scripts/basic/docproc
  HOSTCC  scripts/kconfig/conf.o
  HOSTCC  scripts/kconfig/kxgettext.o
 *** Unable to find the ncurses libraries or the
 *** required header files.
 *** 'make menuconfig' requires the ncurses libraries.
 *** 
 *** Install ncurses (ncurses-devel) and try again.
 *** 
make[1]: *** [scripts/kconfig/dochecklxdialog] Error 1
make: *** [menuconfig] Error 2

Aho! 遇到错误,我们缺少 ncurses-dev这个包:

sudo apt-get update sudo apt-get install ncurses-dev

再来一次:


成功了,看看有啥要改的,没有直接退出保存即可。

编译内核

$ make bzImage [V=1]
... # 这里要很长时间,中间编译的过程略去了
Root device is (8, 8)
Setup is 14620 bytes (padded to 14848 bytes).
System is 4090 kB
CRC 2705ad73
Kernel: arch/x86/boot/bzImage is ready  (#1) #告诉你编译后的内核镜像在哪里

编译、安装模块

make modules 
... # 这里要很长时间,中间编译的过程略去了 sudo make modules_install # 将模块相关的文件复制到/lib/modules/目录下的$version目录

生成ramdisk

mkinitrd initrd-version $version

注释:$version 一定要是/lib/modules/下存在的目录名
如果机器上没有mkinitrd这条命令,你试试mkinitramfs

$ mkinitramfs -o initrd-2.6.37.2

安装内核

sudo cp arch/x86/boot/bzImage /boot/vmlinuz-2.6.37.2 sudo cp initrd-2.6.37.2 /boot/
$ sudo update-grub
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-2.6.37.2
Found initrd image: /boot/initrd-2.6.37.2
done

好啦,安装完毕,重启试试看新内核吧!!

原创文章,转载请遵守许可条款

Copyright

本文出自 Lesca 技术宅,转载时请注明出处及相应链接。

本文永久链接: https://lesca.me/archives/kernel-complie-and-install-process.html

2 Comments

  1. 郁闷 2011-02-28 at 23:59

    我的编译为什么会出错呢? 找不到模块说?

    1. lesca 2011-03-01 at 14:52

      你是执行哪一步的时候出错的?编译安装、模块那里嘛?
      安装模块前必须先编译make modules,否则就会找不到模块了。

Ɣ回顶部