这段时间在编译Micrel的ARM芯片(KS8695X),之前一直用从官网上下载的linux内核包进行编译,但最近官网上提供的linux2.6.23版本需要gcc3.4.6以上版本编译,而我只有3.4.0版本,到网上下载了很多gcc版本,都不能完全将开发包编译通过。
今天研究了一下openwrt,发现太好用了,以后多用这种方式编译。
准备工作
需要安装如下安装包:
gcc
gcc-c++
ncurses
zlib
flex
ncurses-devel
zlib-devel
bison
autoconf
下载代码
由于Openwrt没有支持Micrel的芯片,故Micrel提供了Openwrt工程文件,从官网上下载一个即可,我从ftp://www.micrel.com/ethernet/8695P/ 下载了openwrt-8.09.1.1-20090904.bz2,然后解压到本地目录,最好解压到openwrt-8.09.
然后运行下面命令下载其他包
svn co svn://svn.openwrt.org/openwrt/tags/8.09 kamikaze_8.09
svn co svn://svn.openwrt.org/openwrt/branches/packages_8.09 packages_8.09
svn co http://x-wrt.googlecode.com/svn/tags/kamikaze_8.09 x-wrt_8.09
openwrt_8.09kamikaze_8.09packages_8.09x-wrt_8.09
编译
./openwrt-8.09/link -d kamikaze_8.09/ -p packages_8.09/ -x x-wrt_8.09/cd kamikaze_8.09make menuconfig
Target System Micrel Centaur [2.6]Subtarget KSZ8695XTarget Profile Micrel Centaur KSZ8695XGCC版本:Advanced configuration options-->Toolchain Options-->GCC compiler Version
make
结果
toolchain: staging_dir/toolchain-arm_gcc3.4.6kernel: linux-micrel_pegasus_ksz9692p/linux-2.6.23.17applications: build_dir/armroot filesystem: build_dir/arm/root-micrel_pegasusfile images: bin
kernel image: openwrt-micrel_centaur-2.6.uImagerootfilelsystem: openwrt-micrel_centaur-squashfs.imgroot+kernel: openwrt-micrel_centaur-2.6-squashfs.imguboot: u-boot-micrel_centaur-2.6-squashfs.img