Welcome

首页 / 软件开发 / C++ / 制作嵌入式芯片s3c2410板卡的NetBSD启动镜像

制作嵌入式芯片s3c2410板卡的NetBSD启动镜像2011-04-25gvim最近事很多,抽时间在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