- 本实验采用linux-2.6.30.4 version测试,交叉编译为4.3.3,相关源码可以自行下载或到本博客查看是否有,在自己环境下尝试编译kernel通过确保环境ok为后续的移植做好准备。
- 对下载的linux-2.6.30.4.tar.bz2进行解压到自己指定位置 tar jxvf linux-2.6.30.4.tar.bz2 -C your_path
- 修改编译工具及架构: 进入kernel根目录 cd linux-2.6.30.4 修改makefile,大概在193行将ARCH ?= (SUBARCH) 改成 ARCH = arm, 将194行的CROSS_COMPILE ?= 改成 CROSS_COMPILE = /XX/XX/4.3.3/bin/arm-linux-
- 基本工作完成可以开始尝试编译处镜像文件了,在根目录下执行 make menuconfig进行kernel的配置,不过却出现了如下提示:
[email protected]:~/samba/linux-2.6.30.4$ 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
[email protected]:~/samba/linux-2.6.30.4$
提示需要ncurses libraries 在终端执行 sudo apt-get install ncurses-dev,不过又出现另外报错:
【警告】:下列软件包不能通过验证!
libtinfo-dev libncurses5-dev
不经验证就安装这些软件包吗?[y/N] Y
错误 http://hk.archive.ubuntu.com/ubuntu/ precise/main libtinfo-dev i386 5.9-4
解析“hk.archive.ubuntu.com:http”时,出现了某些故障(-5 - 没有与主机名关联的地址)
错误 http://hk.archive.ubuntu.com/ubuntu/ precise/main libncurses5-dev i386 5.9-4
解析“hk.archive.ubuntu.com:http”时,出现了某些故障(-5 - 没有与主机名关联的地址)
无法下载 http://hk.archive.ubuntu.com/ubuntu/pool/main/n/ncurses/libtinfo-dev_5.9-4_i386.deb 解析“hk.archive.ubuntu.com:http”时,出现了某些故障(-5 - 没有与主机名关联的地址)
无法下载 http://hk.archive.ubuntu.com/ubuntu/pool/main/n/ncurses/libncurses5-dev_5.9-4_i386.deb 解析“hk.archive.ubuntu.com:http”时,出现了某些故障(-5 - 没有与主机名关联的地址)
E: 有几个软件包无法下载,您可以运行 apt-get update 或者加上 –fix-missing 的选项再试试?
最后发现是ubuntu无法联网…………………….
在VBox将桥接改成NAT就可以了,然后再改为桥接以便本机的win7可以访问,毕竟用的是samba实现win7和ubuntu互联的。不过Vbox之前是配置两个网卡的一个配置桥接一个配置NAT就可以了,不过不知道我的VBox怎么不能设置第二块网卡了………………
make menuconfig 后会出现如下画面:
这里我们只是验证kernel是否可以编译过去,所以采用kernel已配置好的config,将光标移至最下的倒数第二有个“Load an Alternate Configuration File”,按回车键进入输入框,输入地址为 “/arch/arm/s3c2410_defconfig”,期间如果输入错误要 ctrl+backspace来删除,如果直接退出最后点击”YES”的话只是保存到之前load的file里,应该是在首页将光标移至最下的“Save an Alternate Configuration File” 直接保存为“.config”,会在根目录下生成.config配置文件,以后make menuconfig会直接导入这个配置文件,导入后对menuconfig的更改会直接保存到这个.config,所以如果希望这个.config是个蓝本不想被修改可以导入后最后不要直接退出点击“YES”,而是选择 “Save an Alternate Configuration File“ ,不过推荐的做法是直接在根目录下备份.config cp .config .config.bak
5. 保存配置退出后直接 make all 即可
接着会进行一系列的编译,大概需要7,8分钟,这取决你电脑的配置了,
最后会在arch/arm/boot/下生成zImage
至此,Linux kernel所需的环境是ok的,为接下来的porting做好了准备