Improving user experience
Like Wolfgang said in http://n2.nabble.com/Weekly-Engineering-News-41-2008-td1336450.html , Openmoko assembled a team to focus on improving the user experience. The focus and coverage of this group is:
- We improve the current stack instead of creating new features.
- Prefer stuffs which could be brought over to gta03 instead of gta02/om2008 specific.
- Won't work on om2007 stack. Won't do hardware.
- May cooperate with Paroli, FSO or system team but we're not them.
- Will work on Qtopia but with lower priority.
Here is the current draft and it will be updated frequently.
- call quality +1
- echo (in testing #1267)
- volume (alsa-state?)
- Reduce boot time (#69,#1722)
- Optimize the touch screen driver on freerunner for finger usage.(in testing #2031)
- A generic python loader to enhance the start up time of python scripts.
- program startup speed
- response time
- scripts: resolv.conf, etc.
- default nameserver OpenDNS added.
- scripts: resolv.conf, etc.
- Reliably make and receive phone calls and SMS messages (John: That's included in qtopia bugfix + fso)
- change the button order of "end call" or "ans call"
- put speaker button on the dialer app
- devices (command line improvement first)
- wifi userspace
- opkg: faster algorithm
Other Wish list
Weekly update 20/10 2008
Now for the status update this week:
Tick merged the qtopia echo patch (#1267), it works, no echo but the audio sounds a little bit less 'vivid' (not sure if this is the right word). He is now working on the touch screen usage, see http://lists.openmoko.org/pipermail/devel/2008-October/002712.html
Olv and Erin is working on reducing boot time. Currently it's reduced from 2:35 (Om2008.9) to around 1:40. One minute less in one week, and Olv just got back from hospital last Monday. We will merge this into OE once we get it organized properly.
Jeremy is working together with kernel guy (aka Matt Hsu) to look into the possible improvement, namely take a screenshot and show it first during resume. It's a common technique in mobile phone.
Julian is working on the python loader. He is new to python but he got very good helps here in the office such as Guillaume, etc. He still got some distro work to finish so it's going to take a while before he can work full time on this.
Currently we have a major blocker #2071. It can be solved by update EFL, but no icons will show up in illume. This seems to be a different bug, but we are having an evas-native related issue on the build server so the EFL packages are not updated correctly in downloads.openmoko.org. This prevents people from confirming it and fire another bug.
EFL ABI changed along with the svn rev increment last week, so Installer and Locations won't work without rebuilding. Although people already got reassigned, but nobody will give Om2008 love except us and holger, so we will fix the issues above and update testing repo soon.
Weekly update 1/11 2008
On the organization chart we were called 'optimization' team so I put this in the subject, even though my ideal name would be something like 'Keroro' .
Olv and Erin provided an experimental fastboot images for the interested to try: http://lists.openmoko.org/pipermail/devel/2008-October/002950.html
Jeremy reported his status: http://lists.openmoko.org/pipermail/devel/2008-October/002882.html
Julian is still struggling with oprofile, python, etc. etc. along with distro tasks. With nobody offically assigned to distro team this seems never end.
Check out tick's work to the touch screen: http://lists.openmoko.org/pipermail/devel/2008-October/002822.html It's commited as abe8f448547d1bd69ac2963e07e2657f27b79691 and should be available in testing repo after next autobuild.
The illume issue (#2082) is partially solved now. It requires quite some black magic in the theme and config files to make the icons show up again. Thanks for raster's help on this. read more about this in: http://lists.openmoko.org/pipermail/community/2008-October/034881.html
After seeing these cute icons, we found out only qtopia and sudoku work as usual. Other applications such as installer, locations are fully dead (#2098, #2099), while settings is half dead (#2097). Tick fixed 2098 and 2099 in openmoko.git commit 6725b90d5c9d844da196485beca7d9e82f8ce68c
This efl update from oe.dev upstream really scared us, so the current plan is to stop following efl svn until another efl snapshot/release.
The alsa state file is a real trouble. Since the audio quality actually differs on different versions of FR, it's hard to create one state file that suits all. We will keep working on it.
Weekly update 7, Nov 2008
A brief summary of what the optimization team did last week:
Erin worked on qtopia to improve the network registering time.
Qtopia 4.3.2: camp network about 26~36 sec and it would display 'No Network' on screen before that.
Qt extended 4.4.2: 40 sec from qpe main() to Ready [black screen first, home screen 20 sec]
Qtopia 4.3.2 + X11 [17 + 52 sec before, 52 sec -12 -20 = 30 sec, by applying two patches] http://git.openmoko.org/?p=qtopia.git;a=commit;h=9f0eb58ab7cca96e90bd49845d23b10ecf7ba664 http://git.openmoko.org/?p=qtopia.git;a=commit;h=9c8c832f77f4f24adc5ad17f5031016ce8562a34
FSO: 10-20 sec
Google Android: 20 sec
Olv tried to replace u-boot by qi along with various improvements to bring down the boot time to illume (without qtopia) to about 30 secs. qi does not support dfu-util so only do this if you know what you're doing. He dived into a lot of code reading to see if there are further possibilities.
Jeremy looked into the two issues about suspend/resume that we may fix in userspace. One is #1991, here is his update:
As I inspected, qpe and apmd opens /dev/apm_bios right now, and I found two possible scenarios for this issue as below:
1) in qpe, we need to wait for the reply of prepare_suspend for the modem. in this case, we may need to wait for a period +of time that exceed 30 seconds, and we don't know how long it could be, waitfing for the response from modem.
2) It goes to blank, but then ompower doesn't get any request for doing suspend. I doubt in some case, illume doesn't set +the suspend_delay timer.
for 1), I will go to check what does that mean by the AT commands we emit before executing "apm --suspend".
for 2), I will debug illume for a while.
Another one #1347 is about after the resume, it goes to suspend immediately. For this one, it's because screensaver timeouts right after the resume. We can fix this by invoking "xset s off" before going +to sleep, and reset it after the resume. Though I am looking into the possbilities of enabling apm in xglamo and checking the apm_bios driver code to see if we can fix this in xglamo.
BTW, Matt has patches to solve ticket #1884. It works. Matt is arranging them and he is going to update some information about it.
Julian wrote an initial version of python loader. It imports various modules first, listens on dbus and forks on demand to execfile. This brought down the load time of pyefl-sudoko from 2.59s to 1.38, a 46% improvement, and om-settings from 3.99 to 1.60, 59% improvement. There was already a daemon in Om2008 just for the sake of loading om-settings (and it cleverly sleeps for 4 seconds before starting up, make the booting even slower), we take it out to get the 3.99 number.
It is just a start, there are many issues left regarding the python loader and we will keep working on it. Once the code is in a better shape Julian will put it into our svn/git.
Tick mainly worked on the upgrade path this week (#2109).
Weekly update 14,Nov
We're heading toward the next release of Om2008 now. The current bug list could be obtained by custom query keyword 'Om2008.11' on docs.openmoko.org. Our team will work on some of the tickets, smooth out minor issues so the testing team could have time to test and hopefully release before the end of this month.
To be more specific, we are working on the following tickets:
- #69 speed up system initialization: Olv will merge his improvement into testing repo next week.
- #1489 sometimes volume is too low during a call: Tick will implement a volume control in qtopia dialer.
- #2031 scroll list implementation: Tick will improve etk_scroll_list to fit our designer's idea.
- #2113 suspend time come up right after you change the time: Jeremy will look into this.
Other then that: Erin will keep looking into qtopia. Julian needs to study more about the python loader.
Weekly update 17~22, Nov
Not much to say this week. Most of the work we did could be seen by querying docs.openmoko.org with keyword 'Om2008.11' and the commit logs.
Overall, Olv pushed his boot time enhancements (#69), so it will be in testing repo.
Tick enhanced etk scroll list (#2031) and is working on a volume issue (#1489). Jeremy fixed another suspend ticket (#2113).
Erin worked on a qtopia camping problem. She will take a look at bluetooth status starting from next week. Julian helped out our designer, Will, to work on the edge files. Upgrade path is getting better but there are still some issues (#2127).
We are having an internal debate regarding the release now, so there is not much I can say about this at the moment.
Weekly update 11/23 ~ 11/29, Nov
John Lee posted the following in the community mailing list
As Sushama (our new testing team member) indicated in http://lists.openmoko.org/pipermail/devel/2008-November/003493.html , we won't have a release in Nov. Currently the testing team is going to do a full test on the latest testing image. It has all the goodies we did and a lot of improvements over Om2008.9, so please try it and report any error you find.
>From Om2008.9 it's recommanded to upgrade with the following steps:
sed -i -e 's%Om2008.8%testing%' /etc/opkg/*.conf /etc/init.d/xserver-nodm stop screen -DR opkg update opkg -force-overwrite upgrade # (please ans Y to all questions) # (the sshd (dropbear) will restart, so you need to reconnect and do # 'screen -DR' again) opkg upgrade shutdown -r now
To get the fastest boot time you also need to remove the following packages:
opkg remove task-base-nfs task-base-smbfs task-base-bluetooth \ task-base-usbgadget avahi-daemon avahi-autoipd blueprobe \ usb-gadget-mode portmap exquisite exquisite-theme-freerunner \ exquisite-themes
- GTK redraw problem
- some obsolete kernel modules still left in system
- must remove 'ro' in kernel boot parameter if you use sd boot.
- will purge your incompatible e config, so you might need to set stuffs like suspend time again.
Since there are different hw versions out there (a5, a6, a7), it's impossible to provide one alsa state file that suits all models. However, it seems you can always find appropriate values for your neo. My way is to adjust control.4 Speaker Playback Volume in /usr/share/openmoko/scenarios/gsmhandset.state
the max value is 127, 95 works best on my a5. With volume level 3 or 4 in qtopia dialer, the other side can hear no echo while I get good audio quality.
Tick helped to put his touchscreen improvement into stable-tracking, he will work on opkg internals next. Olv moved to look into kernel and fso. Erin will try bluetooth. Julian is working on the GTK redraw issue, please help him out. Jeremy will fix some qtopia bugs and keep working on suspend/resume issues.
Weekly update 30,Nov ~ 6,Dec
Team status update:
As in http://lists.openmoko.org/pipermail/community/2008-December/036792.html (send/receive files via bluetooth in NEO), Erin keeps working on bluetooth. Jeremy fixed some qtopia and location bugs, and will continue learning more about kernel. The GTK redraw problem is fixed now (#1946) so Julian will be back to help with the Paroli edje files and keeps working on python. Olv is having kernel fun now, but since it's gta03 related, you probably won't see him a lot on the public kernel list.
Tick mostly worked on opkg this week. Basically there are two big issues:
- Incorrect behavior: as Tick indicated on devel list, there are still some logical error in opkg, which caused some problems during upgrade. That's why I have to use the -force-overwrite option in my previous upgrade howto.
- Efficiency: opkg is obviously not very efficient, both in memory and in speed.
Maybe we could expect another opkg release soon.
OM is moving more focus to gta03 now, so my current resource for qtopia is fairly limited. Currently the things I want to fix most are:
- UCSD problem
- Window focus (soft menu disappear, problems when multiple sms come in, etc.)
- Partial import of sim contacts.
Please suggest if anything missing and I'll arrange my priorities.
There are several good things worth mentioning last week:
- The infamous WSOD (#1841) seems to be solved. It's already in testing repo. Praise for all helped in this!
- GTK redraw problem (#1946) solved along with similar problem in qt with an illume patch. Thanks, Raster!
p.s. It seems my last update might have created an impression that the only way to try the testing repo is to upgrade from Om2008.9. It's not true. Another way is to flash directly from http://downloads.openmoko.org/daily/testing/ if you don't mind reflashing the phone.
another p.s. Someone in OM kindly reminds me that my post can create inappropriate impressions, because although the logic is correct, the words and tongues might be misleading. My native language is Chinese (and I'm a master of words and tongues in Chinese), so it's kind of difficult for me to enhance this. All I can do is encourage you to go ahead and ask if anything is unclear, and keep in mind I'm a Taiwanese engineer when you read this. ;)
optimization team case closed
Let me explain Openmoko's software strategy for the next 6 months:
---1 current stable image Our current stable image is called 'Om2008.9', available at http://downloads.openmoko.org/releases/Om2008.9/ We are sometimes cherry-picking fixes into it, but admittedly not as many as we would like. If someone wants to step up to become stable maintainer for this image and cherry-pick more fixes into it, please let me know. Alternatively, a number of other images are available, Debian, Qt Extended, Android, FDOM, SHR, etc. See http://wiki.openmoko.org/wiki/Distributions for a more comprehensive list.
---2 Mickey's framework milestones As many people know, the next big thing for Openmoko will be Mickey's FSO framework around d-bus and Python, and the Paroli telephony UI. See http://wiki.openmoko.org/wiki/OpenmokoFramework A few weeks ago, Mickey released milestone 4, available at http://downloads.freesmartphone.org/fso-stable/milestone4.1/ In late January, he plans to come out with milestone 5, in late March with milestone 6. See here for a more detailed roadmap: http://trac.freesmartphone.org/roadmap
---3 next major release, Om2009 After the next 2 FSO milestones, Openmoko will fork off a stable branch, and spend 2-3 months on testing and bug fixing. This will lead to our next major release, Om2009. The telephony UI will be Paroli, see http://code.google.com/p/paroli/ The way things are going right now, we will probably have this release mid-next year.
That's about it. Lots of good stuff happening in that direction, most importantly I would mention the progress with our .28 kernel, improved wifi driver, some attempts at getting more out of the glamo chip, improved boot time, etc. Yes, the Optimization team is gone, as part of a bigger company reorganization. Some people were laid off. Some new ones are being hired. John did a great job, and I hope he stays around to continue his excellent work, for example to bring the optimization improvements up into dev.openembedded.org so that more people can see the progress.
Best Regards, Wolfgang