2009/09/29

我的黃金周

今個星期放大假,自製黃金周,終於可以過一整個優閒的星期了!

2009/09/26

Working on weekend

Long time since last time working on weekend.
This saturday I was so busy. Firstly I need to bring mum to causeway bay for body check, at 9am.
After over an hour of waiting and checking, it is already 11am, we then go to restaurant for lunch, as I need to work in the afternoon.
Sent mum to bus stop for backing home, and then go to quarry bay to work.
Due to some misunderstanding and some missing information, the work was not very smooth, although it is supposed to be simple.
Finally finished at 8pm and went home after dinner with partners. What a long day!
And most trouble thing is I need to stand-by there on monday at 8am... So I probably need to wake up and then take bus without eating breakfast. Hope it will be a smooth day.

2009/09/25

龍鳳檸茶?

以前在茶餐廳喝了龍鳳檸樂(檸檬+喊檸檬+可樂)之後覺得味道不錯。
上個月自己買了材料在家中自製,發現效果比在茶餐廳更好,估計是因為新鮮的檸檬吧。
後來用同樣方法自製了咸檸檬七喜、青檸梳打和普通檸檬茶,證實了新鮮的檸檬味道很好,什至不用加很多的糖也很好喝。
最近試了檸檬加青檸做檸檬茶(街上沒有得賣吧),發覺加上青檸的檸檬茶更香更甜!
---
每天上班都會經過 7-11 便利店,總會看看有什麼好喝的飲料,會買回公司喝,今天竟然發現維他也 “學” 我推出了 “青檸.檸檬茶” 呢,現在還沒打開,待會要試一試跟我自家製的有什麼分別!

2009/09/20

Fedora 11 MIPS/N32 yum-able installation completed

After weeks of troubleshooting and rebuilding, we can now install Fedora 11 MIPS/N32 version "base" group by yum, that means we can bootstrap a base Fedora system already.
Next is to make most of the commonly used applications available on yum and find a server to host the repository (~5Gb so far).











Smart Q5 version 5.0

拿到手才剛一個多星期,Smart Q5 就推出了新版本的系統了,5.0 的系統基於 Ubuntu 9.10 preview,很激進吧? 不過用上手覺得比以前的版本快了不少,而且變得美觀很多。
也順便試了安裝 Mer 0.16 testing version,不錯,但是 Marvell 的網站去不到,不能安裝 wifi 驅動 firmware,暫時還不能上網。
國產的PMP/PDA/MID 來講,智器算是中上水準的了,至少跟山寨機那種 “一出廠就不會再更新” 的態度很不同。

2009/09/18

Busy week

Finally can have some rest after a busy week.
Went to visit client on Monday to fix some issues.
Then stay in Shenzhen for 2 days about Huawei.
Finally have 2 days in office to handle those unhandled things when not in office.
And now, weekend finally came!
BBQ with family tomorrow, and dinner with friends on Sunday night.

2009/09/15

Smart Q5

終於有時間拿我的智器 Smart Q5 來把玩了。
意見不用多說,簡單來說它就是一台 ARM 架構的 MID,用來上網看網頁、聊天、看文件、電郵效果都很好,又方便攜帶,有 Wifi 的地方就能玩了,是一台不錯的東西。
有空要試安裝 Android 和 Mer 玩玩。
http://en.smartdevices.com.cn/index.html

2009/09/12

PMON's new function

Just checkout new PMON for Loongson box, and there is a nice new function: "BIOS" like setup screen.

1. Standard options


2. Boot options


3. Network boot options


4. Exit menu

淘寶網

以前我也有試過網上購物,我的 iBook, 兩部 iPod,也都是在 Apple 網站買的。想不到買 Notebook 也是網上買吧?對,因為我太懶了...
不過一直也沒有試過在香港/大陸的網站買東西,一來沒有什麼特別想買的,二來好像很容易受騙。但最近聽過很多朋友在淘寶網 (www.taobao.com) 買東西,反應不錯,所以我也在上面買了一台 Smart Q5,感覺良好,覺得比其他的網站安全,因為也算是大公司(?),而且買賣的交易流程設計得很好:
1. 賣家開戶,放東西上網
2. 買家下訂單,然後付錢給淘寶
3. 賣家發貨,買家收到之後確認
4. 確認之後,淘寶會把錢轉給賣家
5. 賣家收妥,交易完成
這種模式看來賣家比買家發險還高呢 :-P

2009/09/11

Hacking RHEV

RHEV is coming live. But most of the functions are still under construction, including parameters for better performance.
And for customer test, we need to do performance enhancement, after some study, we found that some modules are even missing from the hypervisor... While waiting for engineering team, we try to modify KVM parameters first. There is no straight forward method, finally I tried to modify the source and it works. :-)
The customer will test for performance in next week, hope everything works fine and we can finish a big deal.

2009/09/09

Fedora 11 MIPS-N32 - Forth (most important) milestone

Most important milestone archived, kernel RPM for Fedora 11 built, based on Loongson kernel source.



Next target is whole GNOME suite.

2009/09/05

龙芯对自由软件的理解不够深入 [转载]

【 以下文字转载自 LinuxDev 讨论区 】
发信人: dahuang (Straightman), 信区: LinuxDev
标 题: 张乐:龙芯对自由软件的理解不够深入
发信站: 水木社区 (Sun Jul 5 22:05:16 2009), 站内

http://www.testlab.com.cn/html/qiyejisuan/20090702/1293.html

导语

  上期我们刊发了有关中科院计算所获得MIPS架构授权的评论,在肯定其产业化进展的同时,也提到基础软件部分逐渐成为新的瓶颈。本次我们特别邀请了长期奋斗在龙芯与自由软件领域一线的专家撰文进行点评,深入剖析目前这方面存在的种种问题。

作者简介

张乐(http://zhangle.is-a-geek.org

Gentoo Linux开发者暨中文社区负责人,Gentoo龙芯版维护者,2009 Google SoC Debian MIPS N32 Port项目导师,资深自由软件贡献者。曾为计算机世界实验室《龙芯2F处理器GCC 4.4优化探秘》一文撰写点评,并在测试中提供了全程支持。


  最近,有关龙芯“自主CPU战略失败”的争论掀起了很大的波澜。虽然这方面问题已得到澄清,但龙芯真正面临的问题其实还有很多。在这篇文章里,笔者针对龙芯与自由软件这个话题,结合近两年来参与项目的经验,阐述一些个人见解,希望能够唤醒龙芯团队与公众对此的关注。

   自诞生之日起,龙芯就与以Linux为代表的自由软件之间存在着千丝万缕的联系。并且由于商务、产业环境等方面的原因,现阶段龙芯可谓是相当倚重自由软 件。但这并不是一件坏事,相反的,长远来看这是一件天大的好事。作为一个自由软件行业的长期从业者,笔者坚信未来自由软件将成为主流,龙芯只不过是顺应潮 流而已。

  虽然自由软件经过20年左右的发展,已取得长足进步,但从市场占有率来看,还并不普及。尤其在以桌面应用为代表的领域,用 户的使用习惯甚至成为超越软件功能的决定性因素。而在一些特殊的市场,自由软件已经打开了突破口,手机上的Android、上网本及MID领域的 Moblin都是成功案例。所以,龙芯应该继续坚持自由软件这条道路,义无反顾地走下去,前途必将是无限光明。这一点,相信龙芯的开发团队、下游厂商和爱 好者们都看得很清楚。

  再来看看龙芯平台上自由软件的发展现状。Linux本身支持MIPS,理论上可以运行在龙芯上,但这其中还需 要做很多工作。首先,要保证软件可以运行。和x86平台上可以自行DIY不同,基于MIPS平台的产品一般都是特殊订制的,Linux内核为每种MIPS 机器都设定了一套独立的配置选项。再加上龙芯和其他MIPS实现还有一些细微的差别,龙芯电脑上有一些硬件的驱动也尚未进入Linux内核,所以未经修改 的内核在龙芯平台上是不能运行的。目前,这个问题已基本得到解决,但要彻底根治,还要等Linux/MIPS项目正式收录龙芯2F平台的内核补丁才行。

   其次,软件能否良好高效地运行?这个问题牵扯到许多层面,解决起来复杂的多。在底层,由于龙芯2号处理器实现了完整的MIPS III指令集,工具链(gcc/binutils)不经修改也是可以使用的。并且目前已发布的gcc 4.4和binutils 2.19已经支持龙芯2E和2F,可以生成龙芯特有的指令。然而,系统底层函数库glibc还缺少专门针对龙芯的优化,并且截至目前貌似还没有人着手进 行。类似的,系统里所有多媒体相关的库和应用程序都可以做一些针对龙芯特殊指令的优化,但目前也尚未有人统计过有哪些需要优化,哪些已经做过优化。据笔者 了解,中科龙梦现在有一个mplayer(Linux下使用最广泛的媒体播放器)的优化项目,只是其优化的形式值得商榷,具体细节下面还会详细探讨。

   除了工具链、函数库和应用程序,ABI的选择也是对性能影响较大的一个方面。在龙芯乃至整个MIPS世界里,使用最多的是O32的系统,它的效率明显落 后于采用N32 ABI的系统。经过测试,至少从目前来看,N32 ABI在非科学计算领域应该是最好的选择。但由于用户群体相对较少,现有N32系统在龙芯上存在着一些问题。笔者从去年年底开始这方面的探索,有若干补丁 被Linux内核/glibc/gcc等项目收录,并制作了一个采用N32 ABI的Gentoo Linux。经过一段时间的排错,这个系统在龙芯平台上已经可以投入实用。由O32向N32迁移是MIPS平台上系统的必然发展趋势,前段时间,今年 Google Summer of Code指导机构之一的Debian还成立了一个MIPS N32移植项目,该项目的完成将会对N32系统的普及起到巨大的推动作用。

  总体上看,龙芯上自由软件的发展现状处于由可用到好用的过渡阶段,成果与不足并存。笔者认为,目前龙芯软件开发的最大问题是龙芯对自由软件的理解不够深入,具体表现为开发中某些做法与自由软件社区中约定俗成的做法有些不同。

   首先,常见的自由软件发展形式中发展的主体是软件项目,推动项目发展的是围绕这个项目成立的社区。公司只作为软件项目的一个贡献者,是社区成员的角色, 这方面最好的代表就是Linux内核。有的项目背后虽然只由一个公司所掌控,也得采用这种形式,比如Ubuntu。这样做的好处是可以淡化公司的存在,让 人们相信自己是为了这个软件项目在做贡献,尽可能多地吸引不同背景的开发者。而目前实际上并没有这样的一个关于龙芯的社区存在。如果有这样一个社区的话, 我们应该尽快为龙芯软件的发展确定一个路线图,确立统一的规划,加强社区各个成员间的合作与共享。比如搞清楚发展的先后顺序,搞清楚每个成员正在做的事 情,搞清楚每个具体项目的进度,搞清楚还有哪些工作需要完成等等。这样,假如有其他人想加入的话,也可以知道自己应该从哪里下手,有利于吸引更多的开发 者。建立Planet(开发者的blog聚合)也很有必要,可以让所有人随时了解每个开发者已经做了什么,正在做着什么。

  其次,在 研发软件之前,应该对现存的自由软件项目做充分的调研,看看有哪些项目可以利用(龙芯选择Linux其实也是不自觉的经历了这个步骤)。并非只有操作系统 才值得这样做,桌面环境、应用软件一样可以。逸珑8089笔记本自带系统的桌面是经过修改的KDE,这个项目笔者认为很难有什么前途,因为决定自由软件发 展的一个重要因素是使用人数,用的人多了,才会吸引更多的贡献者。如果在决策之初稍作调研的话,也许会发现海峡对岸的开发者正在打造一个叫做LXDE的轻 量级桌面环境。这个桌面环境运行起来可以显示出与华硕EeePC几乎一样的操作界面,与逸珑8089笔记本自带系统的界面也很相似。LXDE遵循 freedesktop.org组织提出的自由桌面标准开发,如果当初在此基础上进行二次开发,会省不少力气,还能创造双赢的局面。

   第三,龙芯相对欠缺与国际自由软件社区主动交流的意识和行动。自由软件的一个好处是谁都可以得到源代码来学习和改进。但改进只有被上游所收录之后才能真 正地存活下去。例如逸珑8089笔记本的温度与风扇监控模块在最新版本的Linux内核上工作不正常,我们只有自己去做相应的修改。如果模块进入了内核, 我们就不用做这个事情,当初引入这个改动的人会负责把内核中所有需要改动的地方进行修改。

  想让上游收录我们的补丁,在写补丁之前就 应该了解上游对于代码的要求,比如最起码的代码风格等。在写的过程中,也应该多多听取上游对于代码的意见。可惜龙芯目前在这方面做的还不够好。以前文提到 的mplayer为例,简单看一下这个专门为龙芯优化的mplayer的源代码,可以发现几乎所有的改动都是把原有代码注释掉,再加上手工编写的汇编语 言。这样的改动,让任何人都没有协作的余地,也会给维护带来很大麻烦(汇编语言难以理解且与ABI相关),是绝对没有可能进入上游的。如果要用龙芯的多媒 体指令集,可以利用gcc 4.4版本开始提供的龙芯多媒体指令intrinsic。最起码,可以为每一个指令定义一个宏,而不要直接使用大段的汇编语言。

  要解决所有这些问题,最根本的还是要重视软件在龙芯生态环境中的作用,不要视其为附庸。软件社区的建设与人才培养是当务之急,要知道在许多大型IT企业中, 软、硬件工程师的比率甚至超过2:1。另一方面,目前龙芯阵营中,还缺少在国际开源社区举足轻重的人物,如果完全靠自己培养,将会比较耗时。收买有时也是 很有效的运作方式,就像英特尔雇佣Xorg的老大Keith Packard,对龙芯就是很好的启发。笔者认为,只有当我们的软件工程师可以代表龙芯在一些著名的自由软件国际会议上发表主题演讲的时候,才意味着龙芯 产业生态环境达到了健全的程度。

SLES 11 installation on KVM provided by RHEL 5.4

Today I tried to install SLES 11 on KVM virtual machine provided in RHEL 5.4, the installation is okay but a few extra steps needed as SuSE's installation problem doesn't understand "/dev/vda" as a disk device.
Installation steps:
http://people.redhat.com/ywong/suse-virt

2009/09/03

拜訪華為(二)

今天又要去華為了,今次是因為要設置一些測試環境給他們嘗試 RHEV,同場還有其他各大公司的人,因為華為要選一家的 solution 出來用,北京來的同事已經搭建了基本環境,我去加東西和改一下設定就可以了。
不過午餐後有點不舒服,還好最後都能完成,反觀其他公司的人,弄了整天也沒有什麼看... 哈哈...
下星期就可以正式開始性能和功能測試了。

2009/09/01

Fedora for MIPS N32 - A trouble bug fixed

After building a lot of Fedora packages on my Loongson 2f box with MIPS N32 ABI, I found that some of the programs just segmentation fault once started. I had no idea on the reason before.
Tonight when I was building cups, there is a segmentation fault during build, so I tried to play around with those CFLAGS and LDFLAGS for that small program, and I found that it is due to -fPIE, on x86 platform, we use -pie as CFLAGS and LDFLAGS, but for some other architectures like SPARC (and MIPS) we need to use -fPIE instead, so I tried to look for this option in openssh and xinetd, both fixed after changing that! So what I need is just to add a condition check in RPM spec files, and I don't even need to find which program requires this, because there is a checking for SPARC already.