linux内核编译的结果,linux内核编译初体验

1. linux内核下载:ftp://ftp.kernel.org/pub/linux/kernel/v2.6/,截止2013.01.18,最新linux内核为3.8-rc,目前最稳定的是3.7.4

2.对内核的处理也分为三步:

第一步:解压缩

第二步:打补丁

第三步:配置,第一种方法是make menuconfig;第二种是在arch/arm/configs/

目录下找到相似的,make XXX_defconfig,结果是保存在.config文件中的。然后执行make

menuconfig这个命令是在make XXX_defconfig基础上选择修改配置项。 第三种使用厂家提供的配置文件,使用方法是cp config_厂家 .config 然后运行make menuconfig。

第四步:编译,直接执行make就行了,如果想要生成uImage,也即真正内核的头部64字节。但是我make

uImage的话显示信息是make: *** No rule to make target

`uImage'. Stop.

奇了怪了 直接编译内核的话make命令出现: CHK include/linux/version.h

CHK include/linux/utsrelease.h

CALL scripts/checksyscalls.sh

CHK include/linux/compile.h

SYSCALL arch/i386/kernel/vsyscall-int80.so

gcc: error: elf_i386: No such file or directory

make[1]: *** [arch/i386/kernel/vsyscall-int80.so] Error 1

make: *** [arch/i386/kernel] Error 2

以上错误信息是由交叉编译器版本造成的这里用的是arm-linux-gcc-4.3.2,换成arm-linux-gcc-3.3.2就没问题了,如图所示:

a4c26d1e5885305701be709a3d33442f.png

假如上面的是正常的话,把板子上的b型usb口接到电脑上去,并且安装好驱动。

在uboot启动菜单中有一个download linux kernel uImage,用dnw上位机软件usb port

的transmit选择生成的uImage即可。

uboot的cmd_menu.c中可以发现uboot的菜单选项,具体的输入了k之后,执行的是usbslave 0

0x30000000; nand erase kernel; nand write.jffs2 0x30000000 kernel

$(filesize),首先是用usb这个命令来接受dnw,收到之后就去擦除内核分区,然后把下载到0x30000000分区地址的数据烧到内核分区去,烧写的大小是宏定义的$filesize也即接受的数据的大小。

然后输入B命令 来启动内核

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值