在李先静大牛的博客上看到他发布了一个embedded-lfs的工具,用来编一个嵌入式环境下使用的linux系统的,我正好需要一个这样的工具来替换复杂而不够灵活的openembedded,于是自己试了一下。
不编不知道,在ubuntu下编译还是需要一些修改的,所以我也折腾的2个晚上,现将我的一些小心得列在这里供其他有兴趣的人参考。
我只编了openmoko的directfb方式,其他的还没试过。
1.因为我的ubuntu(8.04)已经是用作开发用的系统(用于kernel和driver)了,所以一般的开发工具包都有安装(gcc,autotool等),但是还有一些包也需要安装libtool,gettext,libglib2.0-dev,libgtk-directfb-2.0-dev,libgtk2.0-dev,这些缺一不可。
2.fontconfig 配置要加上 –with-freetype-config=$(PREFIX)/bin/freetype-config,要不会说找不到freetype
3.可能我的ubuntu比较旧,glib-mkenums这个工具也比较旧缺少一些功能,编译atk的时候会出错,可以等glib编译完成以后 进入glib/arm/gobject,然后 sudo cp glib-mkenums /usr/bin就可以了
4.建议用root帐号编译,atk会写/usr/bin的目录,晕
5.如果编译gtk的时候遇到no: command not found的错误,可以去看下gtk源码目录下的arm/demo目录下的 Makefile,把那句GDK_PIXBUF_CSOURCE=no改成GDK_PIXBUF_CSOURCE=gdk-pixbuf- csource,这个貌似是我的系统没有安装好某个包,使得它没有找到这个工具,其实它是存在的,不知道其他ubuntu会不会也有这个问题。
6.embedded-lfs不支持自动从上次出错的包往下编,不过它为每个包都提供一个start目标,比如编译到freetype出错了,就可以make -f Makefile_xxxx freetype_start就可以从freetype接着往下编了。
编译完成后全部文件一共700多M,比POKY的10G小多。。。当然还缺少一些启动脚本之类的东西,不知道以后会不会继续完善,我个人很喜欢这个小工具:)
最后对embeded-lfs提一个小建议:是不是可以搞一个work目录,把编译的临时文件都放在里面,全部放在当前目录下有点乱。



No Comments Now!
Sorry, comments are closed for this item.