如何编译linux内核到单片机,Ubuntu10.04下Linux内核编译的完整步骤

1、在http://www.kernel.org/上下载最新的内核源代码linux-2.6.33.1.tar.bz2,放在/liqiong/Linux内核 目录下,liqiong是Linux OS的第一个用户名。

2、进入Linux内核源码所在的目录(cd Linux内核),解压该内核代码到/usr/src下:

sudo tar -xjvf linux-2.6.33.1.tar.bz2 -C /usr/src

3、进入Linux内核源码解压后的目录/usr/src/linux-2.6.33.1(cd /usr/src/linux-2.6.33.1)

4、sudo make mrproper         净化解压后的源代码

5、sudo make menuconfig     对内核选项进行配置

在配置过程中会发生如下错误:

*** 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] 错误 1

make: *** [menuconfig] 错误2

解决办法:

(1)cd / 进入根目录后,在终端输入:sudo apt-get install ncurses

信息:

正在读取软件包列表... 完成

正在分析软件包的依赖关系树

正在读取状态信息... 完成

现在没有可用的软件包 ncurses,但是它被其它的软件包引用了。

这可能意味着这个缺失的软件包可能已被废弃,

或者只能在其他发布源中找到

E: 软件包 ncurses 还没有可供安装的候选者

(2)然后接着在终端输入:sudo apt-get install libncurses*

信息:

正在读取软件包列表... 完成

正在分析软件包的依赖关系树

正在读取状态信息... 完成

注意,根据正则表达式“libncurses*”选中了 libncurses5

注意,根据正则表达式“libncurses*”选中了 libncurses-dev

注意,选取 libncurses5-dev 而非 libncurses-dev

注意,根据正则表达式“libncurses*”选中了 libncursesw5-dbg

注意,根据正则表达式“libncurses*”选中了 libncursesw5-dev

注意,根据正则表达式“libncurses*”选中了 libncurses-ruby

注意,根据正则表达式“libncurses*”选中了 libncurses5-dbg

注意,根据正则表达式“libncurses*”选中了 libncurses5-dev

注意,根据正则表达式“libncurses*”选中了 libncursesw5

将会安装下列额外的软件包:

libncurses5-dbg libncurses5-dev libncursesw5-dbg libncursesw5-dev

下列【新】软件包将被安装:

libncurses5-dbg libncurses5-dev libncursesw5-dbg libncursesw5-dev

共升级了 0 个软件包,新安装了 4 个软件包,要卸载 0 个软件包,有 92 个软件未被升级。

需要下载 6,201kB 的软件包。

解压缩后会消耗掉 21.1MB 的额外空间。

您希望继续执行吗?[Y/n]y

获取:1 http://cn.archive.ubuntu.com karmic/main libncurses5-dev 5.7+20090803-2ubuntu2 [1,564kB]

获取:2 http://cn.archive.ubuntu.com karmic/main libncursesw5-dev 5.7+20090803-2ubuntu2 [484kB]

获取:3 http://cn.archive.ubuntu.com karmic/main libncurses5-dbg 5.7+20090803-2ubuntu2 [1,958kB]

获取:4 http://cn.archive.ubuntu.com karmic/main libncursesw5-dbg 5.7+20090803-2ubuntu2 [2,194kB]

下载 6,201kB,耗时 2min 41s (38.5kB/s)

选中了曾被取消选择的软件包 libncurses5-dev。

(正在读取数据库 ... 系统当前总共安装有 112582 个文件和目录。)

正在解压缩 libncurses5-dev (从 .../libncurses5-dev_5.7+20090803-2ubuntu2_i386.deb) ...

选中了曾被取消选择的软件包 libncursesw5-dev。

正在解压缩 libncursesw5-dev (从 .../libncursesw5-dev_5.7+20090803-2ubuntu2_i386.deb) ...

选中了曾被取消选择的软件包 libncurses5-dbg。

正在解压缩 libncurses5-dbg (从 .../libncurses5-dbg_5.7+20090803-2ubuntu2_i386.deb) ...

选中了曾被取消选择的软件包 libncursesw5-dbg。

正在解压缩 libncursesw5-dbg (从 .../libncursesw5-dbg_5.7+20090803-2ubuntu2_i386.deb) ...

正在处理用于 man-db 的触发器...

正在设置 libncurses5-dev (5.7+20090803-2ubuntu2) ...

正在设置 libncursesw5-dev (5.7+20090803-2ubuntu2) ...

正在设置 libncurses5-dbg (5.7+20090803-2ubuntu2) ...

正在设置 libncursesw5-dbg (5.7+20090803-2ubuntu2) ...

(3)再cd /usr/src/linux-2.6.33.1进入内核所在目录,再次输入sudo make menuconfig就好了!

6、对于配置可选择General Setup或者选择其他的自定义选项保存后退出。

7、sudo make dep         建立模块间的依赖信息

8、sudo make clean       删除配置时留下的一些不用的文件

(7、8两步可能对于一些PC没有作用)

9、sudo make bzImage     编译内核,内核较小时可以用make zImage

10、sudo make modules    编译内核模块

当然,在编译内核时,可通过make-j来加速内核的编译,n一般等于CPU数量的两倍。单核,n=2;双核,n=4.即执行sudo make -j4就可以编译了!

11、sudo make modules_install   安装内核模块

12、sudo make install           安装内核

13、cd / 后在终端输入:sudo mkinitramfs 2.6.33.1 -o /boot/initrd.img-2.6.33.1-generic

14、到此为止,构建内核完毕,第十二步把内核映象和System.map拷贝到/boot/下

#sudo cp /usr/src/linux-2.6.33.1/arch/i386/boot/bzImage /boot/vmlinuz-2.6.33.1-generic

#sudo cp System.map /boot/System.map-KERNEL_VERSION

#sudo ln -s /boot/System.map-KERNEL_VERSION /boot/System.map

15、

(1)修改grub配置文件

在终端输入:sudo update-grub2,就会把刚才编译的内核加入了Grub;(此时就可以重启了,重启后在Grub启动项里多了Ubuntu, Linux 2.6.33.1-generic)

若还需修改(在Ubuntu10.04中没有采用menu.lst,而是用的grub.cfg(/boot/grub/)),则修改grub.cfg就可以了,

在终端中输入:sudo gedit /boot/grub/grub.cfg    用root账户进入grub.cfg并编辑

(或用sudo chmod +w /boot/grub/grub.cfg改变grub.cfg的权限后在进行编辑)

如将Grub中的menuentry "Ubuntu, Linux 2.6.33.1-generic"{...}修改为menuentry "Ubuntu, Linux 2.6.33.1-liqiong"{...}(Linux 2.6.33.1-generic是我们刚才编译的内核)

(2)修改default变量

在/boot/grub/grub.cfg中,设置set default="【某个数字】"(设置Grub启动项里的默认启动项)

在Grub启动项里,从0数起,我的XP在第10项,所以set default="10",即XP就是默认的启动项了。

最后重启一切都OK了!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值