garibaldi 发表于 2007-02-02 10:47

[嵌入式应用]跑嵌入式FreeBSD的步骤

前一段时间跑的嵌入式FreeBSD.

不太完全, 比如没时间写如何做lib的编译
一般lib库的编译还需要更新/usr/share/mk/*
因为它的里面在编译arm的big-endian版本时需要用到一个TARGET_BIG_ENDIAN

不要指望一下子就把lib一次编译成功. 我是一个一个的lib去编译的. 例:
cd /usr/src/lib/libc/
make TARGET_BIG_ENDIAN=Y
make DESTDIR=/usr/cross_arm install

最终的*.so文件还不能装进去, 只能手工的拷贝过去 :(
总之一个麻烦.

include的建立是 直接拷贝 /usr/include 到usr/cross_arm/usr/include
然后删除machine子目录, 再从/usr/src/sys/arm/include 拷贝到
/usr/cross_arm/usr/include/machine
总之又一个麻烦.

我的文档里面内容不全, 如果有人对其感兴趣可以试一试, 并随时更新这份文档.

还有我没有把上面的写进去还有一个原因就是我也不能确定上面的方法是不是有问题.
或者还有更好的方法.

还有NetBSD的应用程序是否可以直接在FreeBSD上运行我也不能确定, 也没有试过
, 但是接照我的理解是可以行的通的, 如果不行就更新一下文档.

gvim 发表于 2007-02-02 11:36

哈!不错!写的比较平易近人。
如果可以提供pdf版本更好 ^_^

收藏了

[ 本帖最后由 gvim 于 2007-2-2 11:52 编辑 ]

gvim 发表于 2007-02-02 11:45

关于cross compile,贴一段ML上收集的tip(源地址忘了保留,而且我没有检验过:em06:)

Did you know that you can just do:

make kernel-toolchain TARGET_ARCH=arm
make buildkernel TARGeT_ARCH=arm KERNCONF=TS7200

That's rather easy.You can even cross-build against a different kernel tree
(I use this a lot for my p4 trees).For example:

make TARGET_ARCH=amd64 KERNCONF=LINT KERNSRCDIR=/home/john/work/p4/proc \
    buildkernel NO_MODULES=yes

With repeated builds (e.g. when fixing compile errors) adding
NO_KERNELCLEAN=yes NO_KERNELDEPEND=yes is good as well.

garibaldi 发表于 2007-02-02 11:53

是的.

上面的编译方式还没有试过,

上面的方式需要在sysinstall里面下载/usr/src/base的文件.
并在/usr/src/下make

有时间会试试gcc最新的版本并采用上面的方式.

ulovko 发表于 2012-05-27 09:07

这个收藏了 多谢分享!

axlrose 发表于 2012-05-27 11:44

收藏了,才发现是07年的
BSD没找到类似yaffs2, UBIFS 这类的flash文件系统
页: [1]
查看完整版本: [嵌入式应用]跑嵌入式FreeBSD的步骤