最近事很多,抽时间在arm9的s3c2410a上跑了一把NetBSD3.0。参考了网上一些资料,尤 其是一个韩国的网站(看不懂啊,蝌蚪文),我把过程详细记录下来,以滋同好。
整个 过程十分简单!我认为原因在于NetBSD是一个完整的OS。
下面是过程的详细描述(由 于NetBSD本身优秀的生成框架,所以步骤不多,我能做的只有把说明说详细些,说罗嗦些, 呵~)
制作的host环境,随便,既:可以是NetBSD自己,也可以是FreeBSD,Linux都可 以,方法都一样。
目标运行环境s3c2410芯片的开发版(我试验了两块,但并不保证所 有板子都可以无修改的运行)
引用:在ftp://ftp.netbsd.org/pub/NetBSD/NetBSD- 3.0.1/source/sets/下载netbsd的源代码,包括src.tgz, syssrc.tgz, gnusrc.tgz, share.tgz
% foreach file (*.tgz)
? tar -xzf $file -C /
? end #解压缩所有元码文件到/usr/src目录
src.tgz是/usr/bin, /usr/sbin, /bin, /sbin下工具,/lib /libexec库文件等等的源代码
syssrc.tgz是 NetBSD系统的内核源代码
gnusrc.tgz是gnu社区的软件的源代码,包括gcc编译器,gdb 调试器,binutils等等工具,以及这些Gnu工具所需要的库
share.tgz包含了makefile 所需要的编译控制文件,在/usr/share/mk下也有一份
引用:交叉编译器
cd /usr/src
mkdir ../obj
./build.sh -mevbarm tools
交叉编译arm交叉 编译器(见补充:1),-m选项是告诉build.sh我们需要的是arm的编译器。
这步之后在 /usr/src下生成一个tooldir.xx文件夹。
我是在FreeBSD6.1下编译的,所以该文件夹 名为tooldir.FreeBSD-6.1-RELEASE-i386。
在Zenwalk Linux下的名字是 tooldir.Linux-2.6.16-unknow-i386
默认生成的是4.1.2,如果需要使用3.3.3的编 译器,可以在/etc/mk.conf(可能需要手动建立)中添加HAVE_GCC=3
在~/.cshrc中set path最后添加:/usr/src/tooldir.FreeBSD-6.1-RELEASE-i386/bin,这样,一个完整的交叉 编译环境就已经搭建好了。不要忘了tcsh需要rehash
引用:编译内核(一些详细的说 明过一会说明,这里仅仅是步骤)
由于NetBSD已经移植了三星s3c2410芯片的smdk2410 开发版的代码,所以我们的过程就十分简单。
cd /usr/src
vi sys/arch/evbarm/conf/SMDK2410