在李先静大牛的博客上看到他发布了一个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目录,把编译的临时文件都放在里面,全部放在当前目录下有点乱。
Posts Tagged ‘linux’
今天看到IDM公司正在准备把经典的ultraedit移植到linux上,而且会拥有本地化的界面,看到这个不知道是高兴还是好笑。要说我刚开始接触linux的时候就一直梦想有一个像ultraedit那样易用的(注意不是强大)文本编辑器,可以简单的进行列操作,但是一直都没有,虽然已经习惯了命令行,习惯了vim,但是每次用到windows下的ultraedit都会赞叹,都会期待有一个linux版本的ultraedit。 可是如今,linuxer已经似乎不太需要ultraedit这样的一个工具了,能熟练运用vim,emacs的就不说了,就算不会的,sciedit,甚至gedit都已经很好了,虽然ultraedit依然很好用,但是已经没有绝对的优势了,而且如果它还是像windows那样是收费软件的话…..真不知道它能在linux上走多远 p.s ubuntu9.04 发布beta版了,很让人期待的一个版本…
今天试了vmware6.5,Windows和linux版都用过了,windows是直接升级的,没有任何问题,不过感觉改动也不大,只是图标都变了,能支持的硬件也多了,居然识别了我的x61的指纹识别和TPM芯片,速度似乎比原来快了些。linux版我是第一次用,以前都在linux下用vbox的,用下来,感觉速度确实没有vbox快,但是明显要稳定,而且对网络USB等支持要好的多了,用起来很方便,很容易就能实现share folder,也试了一下linux下的unity功能,也就是直接把Windows的窗口弄到linux的界面上,感觉是linux下的原生窗口,不过只能把现有的窗口弄出来,如果我在linux下面想打开新的windows窗口不知道怎么弄了,这点没有vbox方便,vbox可以直接看到windowsxp的start按钮。看来真的可以用ubuntu做主系统,windowsxp作为虚拟系统了(跑一些只能在Windows下跑,却又不得不用到的软件…)。据说vmware6.5还支持3d加速,明天有空试试。
去http://im.qq.com/qq/linux/download.shtml下吧,界面很清爽,没有windows下那么多乱七八糟的插件,让我有了继续使用QQ的一点点想法… 截图:
http://www.sina.com.cn 2007年07月25日 16:47 cnbeta 新闻来源:原创 来源:cnbeta 这个世界充满了争吵。GNOME与KDE,VIM与EMACS,Firefox与IE,以及,Linux与Windows。 我对步行有一种强烈的偏爱,只要时间允许我一定会用步行这种交通方式,而周围的更喜欢骑自行车的人并没有因此感到不快;使用五笔输入法的人并没 有天天想着怎样争取更多的拼音输入法用户加入到五笔输入法的阵营中来,使用拼音输入法的人也没有因为五笔输入法难以学习就认为它是垃圾,迟早退出历史舞 台。 可是Linux和Windows的用户为什么吵得这么凶,乃至于到了人身攻击和辱骂的程度? 我讨厌争吵。所以我一直在反思。 一、Linux与Windows之间不存在竞争,它们中的任何一个都不会被另外一个所击败和代替。 有谁会认为步行、自行车、公交车、小轿车、火车、轮船之间存在你死我活的关系?有谁会认为其中的一个可以打败和完全代替另外一个?我想不会吧。虽然它们都是交通工具,都具有相同的功能,但是它们的特点和优势不同,适用场合和人群也不同。 同样的,为什么要试图用Linux打败Windows,或者要用Windows打败Linux?它们都是很优秀的操作系统,具有相同的功能,但是它们的特点和优势不同,适用的场合和人群也不同。我不会因为我喜欢步行就要求所有的人都喜欢步行。我也不会因为我喜欢Linux就要求所有的人都喜欢Linux。我学习过五笔输入法,最后放弃了,没有人看不起我。我也不会因为有谁放弃了学习Linux而看不起他。 二、“易用性”不是Linux的缺点。 很多人认为Linux的“易用性”不行是Linux用户不多的重要原因。但是,根据他们的描述,我认为这个词叫做“易学性”比较恰当。“易学 性”是Linux的缺点,“易用性”不是。我认为有部分Linux用户正是因为这一用词不当而被激怒的。继续打比方,五笔输入法比拼音输入法难学和五笔输 入法比拼音输入法难用是两个概念。前者大家都承认。后者,如果五笔输入法难用,用五笔输入法的人难道是吃饱了撑的? 我甚至认为,“易用性”是Linux的优势(个人意见而已,欢迎讨论)。至少对我来说,我发现在学会了Linux之后,在很多方面使用 Linux要比使用Windows方便一些(当然,QQ和网银除外,还好两个我都不用)。我不想写一些Windows用户不熟悉的东西,继续打比方,五笔 输入法比拼音输入法打字速度快,小轿车比公交车自由灵活,火车软卧比硬座舒服,这些都是“易用性”方面的东西。 当然,我们不能因为Linux在很多方面“易用性”好,就简单地说Linux“好”。其实那些说Linux“好”的人,大多强调的都是“易用性”方面。“好”这个词太绝对了,前面一定要加上限定词,强调一下是哪个方面。没有限定词的“好”很容易激怒别人。 三、无论怎么努力,“易学性”都不会成为Linux的优势。 Mac OS X就是一个例子。假定你从未接触过电脑,你从零开始学习一个操作系统,到你可以熟练使用这个操作系统,你将学习哪些知识?这些知识,不论从数量还是从难度 来说,Mac都比Windows少很多。从这个角度来说,Mac应该是最好学的操作系统了吧?可是为什么我们还是感到Mac难学?因为学习Mac所需的知 识难以获取。学习Windows所需的知识,你可以很轻松的从你周围的人那里,从网络上和报纸上获得。而你可能会发现,你周围没有一个Mac用户来告诉你 一些经验,甚至在书店都找不到介绍Mac的书。 所以,Windows的“易学性”来源于它的群众基础。只要它的群众基础还在,他的“易学性”就是很难撼动的。所以,想从“易学性”上打败Windows是困难的,甚至是不可能的。 四、Windows用户应该做什么? 其实不用做什么。不用做什么你们也生活的很好。你们如果感兴趣的话,可以了解了解其他的操作系统,比如Linux,UNIX,Mac,也许你会 发现他们中有一个更适合你呢(我就是,了解Linux之后,有相见狠晚的感觉啊,如果我早了解它就好了)。如果你不感兴趣,不了解也无所谓。 不要仅仅凭借一时冲动就更换你的操作系统。了解了解再做行动吧。也许你白白耗费了许多时间和精力之后,才发现你更换的那个操作系统并不适合你。我觉得这样很可惜的。操作系统种类很多,你有很多种选择的,好好考虑一下选择哪种吧。 就像我希望Linux用户不要恶意攻击Linux一样,我也希望Windows用户不要恶意攻击Linux。如果你不了解,不要信口开河。 五、Linux用户应该做什么? 其实也不用做什么。我们现在不也生活的很好么?如果有空,让大家看看Linux,消除他们的神秘感,扫扫盲,让大家了解了解Linux,消除一 些误解(从cnbeta上的评论看,有一些误解是很深的。这是我们的错,我们缺乏平等的真诚的介绍)。不要试图说服别人使用Linux,因为你并不知道他 们适合什么。让他们了解Linux,他们自己会做出决定的。如果还有空,可以考虑考虑成立一个LUG(Linux Users Group),大家一起讨论讨论使用Linux的一些经验,这样的讨论很难得又很有用处。成立LUG只有还可以一起做些什么东西。Linux本来就是通过 这种方式越变越好的。 如果看到了有人正在出于对Linux的无知和/或误解而攻击Linux,不要生气。对Linux的无知和误解,正是我们同Windows用户缺乏友好的交流造成的,是我们的错。想办法促进这种交流吧。 如果有人决定学习Linux,我相信,你们会尽你们的全力来帮助他们尽快入门的。但是,不要讲一些过于深,他们并不一定需要的东西。这和一般的 Windows用户不需要掌握很多很高深的东西(比如,手工杀毒)也能生活的很好一样。比如,如果他们不主动要求的话,我是不会详细讲解命令行的使用的, 不用命令行并不会让他们生活在水深火热之中。 六、究竟哪些人适合使用Linux呢? 这句话真的没有办法回答。自己是否适合使用Linux,只有自己心里清楚。有很多我认为适合使用Linux的人放弃了它,有很多我认为不适合的 人正在使用它。在我参加的LUG里,有着各式各样性格的人,用Linux做着各式各样的事情。让我印象最深刻的一个例子就是一个女生,她甚至在使用 Windows上都是一个菜鸟。仅仅是因为见到了漂亮的Beryl桌面,就闹着让我教她Linux,并且竟然坚持使用了下来,(当然,她使用Linux也 是菜鸟,不过对她够用了)。让我感到不可思议。 但是我可以说,Linux用户中,哪些性格的人比较多。这和“哪些人适合使用Linux”是两码事,但是也许能够给大家一个参考。 Linux用户中,比较多的人有: 1.“懒”人。记着我这“懒”是打了引号的哦。他们会因为“懒”得去敲太多次的键盘而学会了五笔输入法,因为“懒”得去在菜单中一项一项费力找而记住了很多快捷键。你会发现做同样的事情,这种人的总操作数比你少很多,因此也比你快。Linux简直就是为这种人准备的。 2.计算机和/或IT技术的爱好者。这种人凭借自己的兴趣爱好,学习Linux对他们来说并不困难。然后,Linux在某些方面的易用性吸引了他,使得他坚持了下来。 [...]
看了这个标题一定会晕吧,是啊,这就是今天我在web上看东西的轨迹, 首先要从昨天的开会说起,会上说到我们这个项目的软件需要规划,然后自然想到用什么OS的问题,傅说用VxWorks,我一想用那个不是等于做了一个玩具嘛,VxWorks又大又不提供源码怎么和我们的芯片用在一起呢,不过不用VxWorks的话只能用现在的那个老OS,这个OS用是能用,不过有点版权问题啊, 后来想想不如在网上看看有没有什么好用的,我的想法是找一个和原来的OS差不多的微型化的kernel就可以了,另外也要考虑是否可以后续的和其他高级的OS进行连接以扩展功能,于是自然想到了RTLINUX,这个东东以前也看过,用一个小的硬实时核作为起点然后启动linux作为它的一个最低级别的任务,不过它是商业化的实现,不适合我们公司使用,只能作为一个参考, 忽然想起之前玩NS2的时候无意中看到过一个OKL4,貌似也是个和RT类似的东东,不过没仔细研究,于是又翻出来看看,一看之下原来大有来头,OKL4源自Jochen Liedtke(2001年去世了)的L4微内核,Open Kernel Labs 公司改进以后提出了虚拟化技术,使得在L4上面可以跑各种操作系统,这个东东居然还被用到了qualcomm的3G手机里,它把linux和qualcomm原有的brew同时运行了起来,真是让人大吃一惊,看来天外有天这个道理是永恒正确的。这些都是我ozlab的blog上看到的,看的时候又看到了Nanokernel for embeded linux的东西,我以前也听说过这个Nano,和RT是很像的东西,于是又去看Nano,找了一个blog和slides出来–Jserv’s Blog 看Nano的时候又在Jserv的blog里看到了更让我眼前一亮的Open Moko,是一个完全开放的linux手机应用平台(不像MOTO就是不开放接口),而且已经有成形的产品出来了,就是Neo1973 ,真的很有意思,有空我去会研究一下,说不定也去买个NEO1973用用,以便把烂E680扔掉,呵呵, 说道这里我就谈谈我对embedded linux的一些看法,对于embedded linux有很多种实现方法,有如RT这样完全架空linux的,有如MontaVista那样基于linux内核改造的,也有一些中间路线的,不过我还是倾向于架空linux的做法,因为我是做通信的,明白硬实时性能对通信系统的重要性,在通信系统中很多操作是必须在指定的时间内完成的,要不就是失败了,架空linux对linux内核的改动几乎没有,也比较好移植,当然缺点也有,就是用户进程与实时内核通信的效率相对比较低,如果有大量需要调用实时内核的资源的话就不太合适了,不过对我来说我一开始可能连linux都不需要用,只要用实时内核就好了,以后需要扩展应用的时候再把它加上,这样对我来说就非常的灵活了, 哎,今天有是不务正业了,我要做的component的设计文档还没有写好呢,一个月内写完还是有点难度的,明天开始要好好工作了,有空的话在研究研究OKL4和NANO,呵呵,
最近在公司装个linux作为debug平台,看了默认的提示行觉得非常不爽,所以决定改变一下,于是翻出来这个文章,写的不错。 作为 Linux/UNIX 人,我们有很长的时间是在 shell 中工作,并且在许多情况下,下面这一行就是始终盯着我们的那个提示行: bash-2.04$ 如果您恰巧是超级用户 (root),您就有权使用下面这个美丽的标示“身份”的提示行版本: bash-2.04# 这些提示行并不是十分漂亮。 这也就难怪几种 Linux 版本对默认提示行进行了升级,在其中增加了颜色和更多的信息。但是,即便您恰好有一个本身带有很好的彩色提示行的新式版本,它也不可能是完美无缺的。您或 许希望在提示行中增加或更改几种颜色,或者增加(或删除)一些信息。从头开始设计属于您自己的彩色的、经过装饰的提示行并不难。 提示行基础 在 bash 下,可以通过更改 PS1 环境变量的值来设置提示行,如下所示: $ export PS1=”> ” > 更改会立即生效,通过将 “export” 定义放在您的 ~/.bashrc 文件中可将这种更改固定下来。只要您愿意,PS1 可以包含任意数量的纯文本: $ export PS1=”This is my super prompt > ” This is my super prompt > 尽管这很有趣,但在提示行中包含大量静态文本并不是特别有用。大多数定制的提示行包含诸如用户名、工作目录或主机名之类的信息。这些花絮信息可以帮助您在 shell 世界中遨游。例如,下面的提示行将显示您的用户名和主机名: $ export PS1=”\u@\H > ” [...]
用dup2可以修改任何文件描述符到任何实际文件,dup可以复制一个新的描述符到实际文件, 以下是APUE(Advanced Programming in the Unix Environment)里关于他们的描述,后面还有一个小程序是实际修改STDOUT的,呵呵。 dup and dup2 Functions An existing file descriptor is duplicated by either of the following functions. #include <unistd.h> int dup(int filedes); int dup2(int filedes, int filedes2); Both return: new file descriptor if OK, 1 on error The new file descriptor returned by dup is guaranteed to be the [...]
前天花了一天时间把自己做的LINUX完全通过网络boot起来了(包括一个ramdisk),虽然费了一番周折,但是最终结果是完美的,所以颇为得意,又怕以后再弄的时候忘掉,所以在自己的日记本上写下来,也可以供有兴趣的人参考,当然下面的过程写的非常简单是给我自己看的,如果读者对相关的东西不是太熟悉的,可能需要查阅更多的参考资料,呵呵 How to make linux boot from network 1. Enable dhcp server on a linux server, the /etc/dhcpd.conf should be looked like this: ddns-update-style interim; ignore client-updates; allow bootp; allow booting; subnet 192.168.253.0 netmask 255.255.255.0 { option routers 192.168.253.9; option subnet-mask 255.255.255.0; option nis-domain “domain.org”; option domain-name “domain.org”; option domain-name-servers 192.168.253.9; option time-offset -18000; # [...]


