<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://wiki.openmoko.org/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://wiki.openmoko.org/api.php?action=feedcontributions&amp;user=Narmo&amp;feedformat=atom</id>
		<title>Openmoko - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.openmoko.org/api.php?action=feedcontributions&amp;user=Narmo&amp;feedformat=atom"/>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Special:Contributions/Narmo"/>
		<updated>2013-05-20T00:12:01Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.19.6</generator>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Ringtones</id>
		<title>Ringtones</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Ringtones"/>
				<updated>2008-12-14T21:16:25Z</updated>
		
		<summary type="html">&lt;p&gt;Narmo: /* Updating howtos */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;We need freely distributable/licensed ringtones to ship as default ringtones with the phone.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== License ==&lt;br /&gt;
&lt;br /&gt;
Ringtones should be in OGG/Vorbis format (or converted to it), and licensed in a way that allows free redistribution, such as creative commons by, by-nd, by-sa, gpl, public domain, etc ().&lt;br /&gt;
&lt;br /&gt;
Unless a different license type is required for Openmoko all files are released under the CreativeCommons Attribution-ShareAlike 3.0	license.&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
All tunes have been composed in Rosegarden (an OpenSource MIDI sequencer available at www.rosegardenmusic.com), rendered on a Yamaha Motif ES tone generator and recorded using Audacity or Ardour.&lt;br /&gt;
&lt;br /&gt;
If you would like to modify the tunes, please keep in mind that	rendering the .rg files on a different tone generator will most	likely produce very different (maybe better :-P) results. MIDI	files are available on request, or can be created using Rosegarden's export function.&lt;br /&gt;
&lt;br /&gt;
== File types ==&lt;br /&gt;
&lt;br /&gt;
*.rg  - music &amp;quot;source&amp;quot; files in Rosegarden's native format&lt;br /&gt;
*.wav - Rendered music in uncompressed Wave format&lt;br /&gt;
*.ogg, .mp3 - Wave files compressed with Ogg Vorbis/LAME&lt;br /&gt;
&lt;br /&gt;
== bugzilla.openmoko.org related bug ==&lt;br /&gt;
More information at [http://bugzilla.openmoko.org/cgi-bin/bugzilla//show_bug.cgi?id=199 Bugzilla #199]&lt;br /&gt;
&lt;br /&gt;
== svn.openmoko.org ringtones ==&lt;br /&gt;
&lt;br /&gt;
Here you can listen the current ringtones and sounds made by Marek &amp;quot;Wansti&amp;quot;:&lt;br /&gt;
http://svn.openmoko.org/trunk/src/target/OM-2007.2/artwork/sounds/&lt;br /&gt;
&lt;br /&gt;
== Monophonic ==&lt;br /&gt;
The GTA02 release of the [[Neo1973 Hardware | Neo1973]] will only have ONE speaker, making it mono. This might be worthwhile to remember when creating the ringtones.&lt;br /&gt;
&lt;br /&gt;
== Themes ==&lt;br /&gt;
The default ringtones need to be part of a [[Themes|theme]]. The different tones for calls/messages should have a unified feel to it.&lt;br /&gt;
&lt;br /&gt;
== Comunity ringtones and sounds wishlist ==&lt;br /&gt;
There are some ringtones proposals from the comunity here: [[Wish List - Openmoko Ringtones and Sounds]].&lt;br /&gt;
See also {{ticket|2080}} for the package at http://212.83.231.34/artwork_sounds_20081024_extra.tar.gz&lt;br /&gt;
and /src/target/OM-2007.2/artwork/sounds/ from version control&lt;br /&gt;
&lt;br /&gt;
== Updating howtos ==&lt;br /&gt;
&lt;br /&gt;
For ASU, look around for qtopia packages related to sound profiles in the repository.&lt;br /&gt;
&lt;br /&gt;
'''Tom Yates wrote:'''&lt;br /&gt;
&lt;br /&gt;
The stock ringtone is ''/opt/Qtopia/etc/SystemRingTones/phonering.wav.'' It's a 44.1kHz stereo WAV file, 16-bit.&lt;br /&gt;
&lt;br /&gt;
I decided I wanted a traditional old BT phone, and I found an audio clip of one on the web. It was an 8-bit 16kHz mono clip, called 706_ring.wav. It sounded awful when I moved it into place on the 'phone; very distorted and hissy. I re-codec'ed it on my desktop, using&lt;br /&gt;
&lt;br /&gt;
 mplayer 706_ring.wav -ao pcm -srate 44100 -af-add volume=-20&lt;br /&gt;
&lt;br /&gt;
which created a file audiodump.wav, having the right sampling frequency (-srate 44100) and being slightly quieter (volume=-20 being the drop in dB) Being quieter, the distortion wasn't as bad and so it didn't make me jump out of my skin when the 'phone rang. I put this into place as  openmoko:''/opt/Qtopia/etc/SystemRingTones/phonering.wav'' (saving the old file first) and now I have my custom ringtone.&lt;br /&gt;
&lt;br /&gt;
Reference: http://www.teaparty.net/technotes/openmoko-2.html#Custom-ringtone&lt;br /&gt;
&lt;br /&gt;
For FSO, see the [[FSO ringtones]] page.&lt;br /&gt;
&lt;br /&gt;
== SID ringtones ==&lt;br /&gt;
&lt;br /&gt;
There are many websites where you can download original c64 sid music files.&lt;br /&gt;
* [http://hvsc.c64.org. The High Voltage SID Collection] has over 30.000 sid files&lt;br /&gt;
* [http://www.transbyte.org/SID/HVSC_Top100.html The top 100]&lt;br /&gt;
&lt;br /&gt;
Recommendations: theme from R-Type, IK+ (International Karate Plus), Maniac Mansion, Robocop, Bubble bobble.&lt;br /&gt;
&lt;br /&gt;
== TODO LIST ==&lt;br /&gt;
&lt;br /&gt;
Source: http://svn.openmoko.org/trunk/src/target/OM-2007.2/artwork/sounds/TODO&lt;br /&gt;
&lt;br /&gt;
Feel free to add your own comments or requests here.&lt;br /&gt;
&lt;br /&gt;
Changes:&lt;br /&gt;
&lt;br /&gt;
	-There Is No Phone and Ring'n'Roll are too silent compared to the&lt;br /&gt;
	 others. The ending of Ring'n'Roll needs more treble since the low&lt;br /&gt;
	 frequencies are hardly audible on the small speaker.&lt;br /&gt;
	-The transition parts in Squirrels and Supertux don't work well;&lt;br /&gt;
	 they're too silent so that it sounds as if the phone has stopped&lt;br /&gt;
	 ringing if it's carried in a pocket or lying around at a distance.&lt;br /&gt;
	-Notify sounds should be shorter and less intrusive. Maybe reducing&lt;br /&gt;
	 the volume will already help.&lt;br /&gt;
&lt;br /&gt;
Additions:&lt;br /&gt;
&lt;br /&gt;
	-Startup will have a voice saying &amp;quot;Welcome to Openmoko&amp;quot; mixed into it.&lt;br /&gt;
	-Themes of matching tones for sms, notify, error, ringtone, etc.&lt;br /&gt;
	-More sounds. :-)&lt;br /&gt;
&lt;br /&gt;
[[Category:Add-on data]]&lt;/div&gt;</summary>
		<author><name>Narmo</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Gtkaddpoi</id>
		<title>Gtkaddpoi</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Gtkaddpoi"/>
				<updated>2008-12-04T23:10:39Z</updated>
		
		<summary type="html">&lt;p&gt;Narmo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Gtkaddpoi 01.jpg|thumb|Window for search address]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Gtkaddpoi 02.jpg|thumb|Window for delete POI]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Gtkaddpoi preview.png|thumb|Window with preview of POI with zoom button]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
gtkaddpoi is a simple gtk interface for search an address and add as POI on TangoGPS.&lt;br /&gt;
It's use Yahoo Maps API for found coordinate from an address and put this POI on TangoGPS database.&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
You can download ipk fils from following link&lt;br /&gt;
&lt;br /&gt;
 http://projects.openmoko.org/frs/download.php/490/gtkaddpoi_0.5_all.opk&lt;br /&gt;
&lt;br /&gt;
and then:&lt;br /&gt;
&lt;br /&gt;
 opkg install gtkaddpoi_0.5_all.opk&lt;br /&gt;
&lt;br /&gt;
or directly:&lt;br /&gt;
&lt;br /&gt;
 opkg install http://projects.openmoko.org/frs/download.php/490/gtkaddpoi_0.5_all.opk&lt;br /&gt;
&lt;br /&gt;
Or you can use repository http://minucci.net/file/opkg/ . For add repository follow this command:&lt;br /&gt;
&lt;br /&gt;
 cd /etc/opkg&lt;br /&gt;
 wget http://minucci.net/file/gecco-feed.conf&lt;br /&gt;
&lt;br /&gt;
and then:&lt;br /&gt;
&lt;br /&gt;
 opkg update&lt;br /&gt;
 opkg install gtkaddpoi&lt;br /&gt;
&lt;br /&gt;
[[Category:GPS Applications]]&lt;/div&gt;</summary>
		<author><name>Narmo</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Main_Page/ru</id>
		<title>Main Page/ru</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Main_Page/ru"/>
				<updated>2008-12-03T08:44:53Z</updated>
		
		<summary type="html">&lt;p&gt;Narmo: Added news about Android source for Freerunner from Koolu&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{{Languages|Main_Page}}&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;DIV ALIGN=center&amp;gt;&amp;lt;big&amp;gt;'''Openmoko™ Открытый. Мобильный. Свободный.'''&amp;lt;/big&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/DIV&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
[http://www.linuxphone.ru Портал русскоязычных пользователей]&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
__NOEDITSECTION__ [[Image:Freerunner02.gif|thumb|150px|right|Neo FreeRunners]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=75d806&amp;gt;Введение в Openmoko&amp;lt;/font&amp;gt;==&lt;br /&gt;
[[Image:OpenmokoFramework08.png|250px|left|Программный стек Openmoko|thumb]]&lt;br /&gt;
Openmoko™ - рожден как проект с [http://ru.wikipedia.org/wiki/%D0%9E%D1%82%D0%BA%D1%80%D1%8B%D1%82%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D0%BE%D0%B5_%D0%BE%D0%B1%D0%B5%D1%81%D0%BF%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D0%B5 Открытым Исходным Кодом] под  [[License| лицензиями GPL и LGPL]], представляющий открытую программную архитектуру для мобильных платформ. Openmoko на данный момент продает смартфон [[Neo FreeRunner]] для продвинутых пользователей и начинает компанию по разработке программного обеспечения под него.&lt;br /&gt;
&lt;br /&gt;
[[NeoSoftwareStack|Архитектура Openmoko]] включает в себя [[Host-based development with Xoo and Xephyr|X сервер]] и позволяет пользователям и разработчикам превратить аппаратную платформу мобильных устройств в уникальные продукты. Наша лицензия дает свободу пользователям и разработчикам от &amp;quot;iron to the eyeballs,&amp;quot; свободу в поверхностной настройке устройства или радикальном его изменении;  сменить фоновый рисунок или пересобрать всю систему! Она дает свободу, например, превратить телефон в медицинское устройство, или устройство продаж, или просто свободно устанавливать ваши программы. Для полной свободы программного обеспечения для наших устройств, мы также опубликовали схему устройства в формате CAD под лицензией Creative Commons. Дав свободу программному обеспечению под лицензией GPL, мы позволили сообществу разработчиков FOSS &amp;quot;сделать ее новой&amp;quot;. Освободив схемы устройства в файлах [http://downloads.openmoko.org/CAD/ CAD], мы предоставляем промышленным дизайнерам и инженерам эту же возможность. И на LinuxWorld 2008, мы предоставили [http://downloads.openmoko.org/schematics/ принципиальные схемы].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;6&amp;quot; width=&amp;quot;100%&amp;quot; style=&amp;quot;color:white&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background:#ff6600; text-align:center; font-weight:bold&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;50%&amp;quot;&amp;gt;Новости и события&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;50%&amp;quot;&amp;gt;Новости Openmoko?&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr valign=&amp;quot;top&amp;quot; style=&amp;quot;background:#333333&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
* 02/12: [http://www.koolu.com Koolu.com] выпустила [http://git.koolu.org/ исходный код Android] для Freerunner! ([http://koolu.com/Press-Release/ Пресс-релиз])&lt;br /&gt;
* 01/12: [[Openmoko:Usb light/ru | USB-фонарик]]&lt;br /&gt;
* 24/11: [http://www.linuxphone.ru/2008/11/koolu-android-for-freerunner/ Koolu выпустит порт Android на Neo FreeRunner в декабре]&lt;br /&gt;
* 9/10: [[Weekly Engineering News|Openmoko Weekly Engineering News]]&lt;br /&gt;
* 6/10: [[Community_Updates/October_3rd%2C_2008/ru|Community update]]&lt;br /&gt;
* 2/10: Nokia выпустила [http://qtextended.org/ Qt Extended 4.4.1] ([http://qtextended.org/modules/mydownloads/visit.php?lid=86 image], [http://qtextended.org/modules/mydownloads/visit.php?lid=85 SDK])&lt;br /&gt;
* 27/9: Вышел релиз [[FDOM]]&lt;br /&gt;
* 19/9: точка релиза [[Om_2008.9_Update|Om 2008.9]]&lt;br /&gt;
* 17/9: [[17th September, 2008 - Activity since launch|Community update]] - Activity since launch&lt;br /&gt;
* 2/9: Trolltech [http://www.qtopia.net/modules/mydownloads/singlefile.php?lid=83 опубликовала] Qtopia 4.3.3-snapshot.&lt;br /&gt;
* 28/8: Trolltech [http://n2.nabble.com/qtopia-4.3.2-release-tp789148p789148.html опубликовала] Qtopia 4.3.2.&lt;br /&gt;
* 26/8: Openmoko [http://lists.openmoko.org/pipermail/community/2008-August/027997.html updates] [[Om 2008.8]] дистрибутив.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
* [[Weekly Engineering News|Openmoko Weekly Engineering News]]&lt;br /&gt;
* [[News Archive|(news archive)]]&amp;lt;!--Editors: copy removed news to News Archive! --&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;О Openmoko&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[Introduction/ru| Введение]]&lt;br /&gt;
* [[Why Openmoko| Почему Openmoko]]&lt;br /&gt;
* [[Neo FreeRunner|Neo FreeRunner phone]]&lt;br /&gt;
* [[Supported Hardware]]&lt;br /&gt;
* [[FAQ| ЧаВо]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Старт с Openmoko&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[Getting Openmoko/ru|Getting Openmoko]]&lt;br /&gt;
* [http://www.openmoko.com Openmoko Inc.]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background:#ff6600; text-align:center; font-weight:bold&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;50%&amp;quot;&amp;gt;Для пользователей&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;50%&amp;quot;&amp;gt;Для разработчиков&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr valign=&amp;quot;top&amp;quot; style=&amp;quot;background:#333333&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;C чего начать&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[Getting Started with your Neo FreeRunner/ru | Neo FreeRunner getting started guide]]&lt;br /&gt;
* [[Applications]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Дистрибутивы&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[Distributions|Features comparison table]]&lt;br /&gt;
* [[Om 2008.8|Om 2008.8 (ASU)]] - [[Om 2007.2|Om 2007.2 (old stable)]]&lt;br /&gt;
* [[OpenmokoFramework|FSO]] - [[Qtopia_on_FreeRunner|Qtopia]] - [[Debian|Debian]] - [[Gentoo|Gentoo]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Общение&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[Mailing List Duplicates| Mailing List Duplicates]]&lt;br /&gt;
* [[Discussion_Forums| Форум]]&lt;br /&gt;
* [[Community repository]]&lt;br /&gt;
* [[Development resources | Ресурсы для разработчиков]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Разработка приложений&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[Openmoko developer guide| Руководство разработчика ]]&lt;br /&gt;
* [[Toolchain|Средства разработки]]&lt;br /&gt;
&amp;lt;!-- * &amp;lt;font color=white&amp;gt;VMware&amp;lt;/font&amp;gt; --&amp;gt;&lt;br /&gt;
* [[Python|Введение в Python]]&lt;br /&gt;
* [http://projects.openmoko.org/ Projects hosted in our GForge]&lt;br /&gt;
* [[OpenmokoFramework|Openmoko dbus-based service level framework]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Интеграция и дистрибутивы&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[OpenEmbedded|The OpenEmbedded distribution building framework]]&lt;br /&gt;
* [[MokoMakefile|Сборка Openmoko с использованием MokoMakefile]]&lt;br /&gt;
* [[Opkg|Менеджер пакетов Opkg]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Эмуляция&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[Openmoko under QEMU| Openmoko в QEMU]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=75d806&amp;gt;Продукция Openmoko&amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Первый продукт Openmoko - Neo1973, продавался исключительно через интернет-магазин Openmoko. Продажи закончились в начале февраля 2008 года.&lt;br /&gt;
&lt;br /&gt;
С 26 июня 2008 года Openmoko поставляет Neo FreeRunner (GTA02) - второе поколение Neo. Если вы заинтересованны в покупке Neo FreeRunner, добавьте своё имя в Лист Заинтересованных в Покупке. Также посмотрите групповые покупки на [[GroupSales|Групповых Продажах]] с дополнительными скидками и услугами.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=75d806&amp;gt;Присоединяйтесь к развитию Openmoko&amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;6&amp;quot; width=100%&lt;br /&gt;
! width=50% style=&amp;quot;background:#ff6600;border-left:5px solid white;border-right:5px solid white;border-top:0px solid white; border:1px solid #ff6600; &amp;quot; | &amp;lt;font color=&amp;quot;white&amp;quot; &amp;gt;Руководство разработчика&amp;lt;/font&amp;gt;&lt;br /&gt;
! width=50% style=&amp;quot;background:#ff6600;border-left:5px solid white;border-right:5px solid white;border-top:0px solid white; border:1px solid #ff6600;&amp;quot; |&amp;lt;font color=&amp;quot;white&amp;quot; &amp;gt;Тестирование / Эмуляция и участие в проектах&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot; style=&amp;quot;background:#333333;border-left:5px solid white;border-right:5px solid white;border-bottom:0px solid white; border:1px solid #cccccc; &amp;quot; |&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Разработчику &amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[Toolchain|Использование инструментов разработчика]]&lt;br /&gt;
* &amp;lt;font color=white&amp;gt;VMware&amp;lt;/font&amp;gt;&lt;br /&gt;
* [[Python|Введение в python]]&lt;br /&gt;
* [[Openmoko_under_QEMU|Openmoko через QEMU]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Системная интеграция и настройка&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[OpenEmbedded|OE - Платформа построения приложений]]&lt;br /&gt;
* [[MokoMakefile|Сборка Openmoko с использованием MokoMakefile]]&lt;br /&gt;
* [[Opkg|Opkg]]&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Низкоуровневая / системная разработка&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[u-boot]]  &amp;lt;font color=white&amp;gt;- Загрузчик используемый нами, включая документацию для его модификации&amp;lt;/font&amp;gt;&lt;br /&gt;
* [[kernel]]  &amp;lt;font color=white&amp;gt;- Ядро Linux используемое нами, включая документацию для его модификации&amp;lt;/font&amp;gt;&lt;br /&gt;
* [[gsmd]] &amp;lt;font color=white&amp;gt; - GSM демон управления GSM Модемом&amp;lt;/font&amp;gt;&lt;br /&gt;
* [[agpsd]] &amp;lt;font color=white&amp;gt;- AGPS (Assisted GPS) демон&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|valign=&amp;quot;top&amp;quot; style=&amp;quot;background:#333333;border-left:5px solid white;border-right:5px solid white;border-bottom:0px solid white; border:1px solid #cccccc; &amp;quot; |&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Тестирование&amp;lt;/font&amp;gt;===&lt;br /&gt;
*[[Test Cases|Пройденные тесты]]&lt;br /&gt;
&amp;lt;font color=white&amp;gt; ※&amp;lt;/font&amp;gt; [[:Category: Test |  Узнать больше о Тестировании]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Эмуляция&amp;lt;/font&amp;gt;===&lt;br /&gt;
*[[Getting Openmoko working on host with Xephyr|Эмуляция Openmoko на ПК с использованием Xephyr]]&lt;br /&gt;
*[[Test_Openmoko Emulation with chroot image|Эмуляция Openmoko с готовым образом корневой файловой системы]]&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Публикация вашего проекта===&lt;br /&gt;
*[[Community Repository|Опубликовать Ваш Проект]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=75d806&amp;gt;Сообщество Openmoko&amp;lt;/font&amp;gt;==&lt;br /&gt;
Каждый может присоединиться к проекту Openmoko и сделать свой вклад в разработку открытых продуктов. Присоединяйтесь к нам и сотрудничайте в рамках любого [[Development resources | проекта]], в том числе и Энциклопедии по Openmoko. См. страницу помощи по редактированию информации или внесении/добавлении изменений в энциклопедии.&lt;br /&gt;
&lt;br /&gt;
Вы можете начать с [[introduction|вводной]] страницы , фотографий, видео и Оффициальной Страницы Openmoko Wiki. Как всегда, используйте [[FAQ | Часто Задаваемые Вопросы]] (ЧАВО),  [http://lists.openmoko.org/mailman/listinfo/| списки рассылки] и [[Discussion_Forums| Форумы]] для получения помощи.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;6&amp;quot; width=100%&lt;br /&gt;
! width=50% style=&amp;quot;background:#ff6600;border-left:5px solid white;border-right:5px solid white;border-top:0px solid white; border:1px solid #ff6600; &amp;quot; | &amp;lt;font color=&amp;quot;white&amp;quot; &amp;gt;В Новостях&amp;lt;/font&amp;gt;&lt;br /&gt;
! width=50% style=&amp;quot;background:#ff6600;border-left:5px solid white;border-right:5px solid white;border-top:0px solid white; border:1px solid #ff6600;&amp;quot; |&amp;lt;font color=&amp;quot;white&amp;quot; &amp;gt;Сообщество и События&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot; style=&amp;quot;background:#333333;border-left:5px solid white;border-right:5px solid white;border-bottom:0px solid white; border:1px solid #cccccc; &amp;quot; |&lt;br /&gt;
==&amp;lt;font color=white&amp;gt;В Новостях&amp;lt;/font&amp;gt;==&lt;br /&gt;
*[[Getting Started with your Neo FreeRunner|Neo FreeRunner - с чего начать]]&lt;br /&gt;
*[[ASU Feature Plan|План реализации АОП(Апрельское обновление ПО)]]&lt;br /&gt;
*[[Community Repository|Публикация вашего проекта]]&lt;br /&gt;
*[[GroupSales|Групповые продажи]]&lt;br /&gt;
*[[WhyOpenmoko|Почему Openmoko лучше: Сравнительный Взгляд]]&lt;br /&gt;
==&amp;lt;font color=white&amp;gt;Ежедневные Сборки&amp;lt;/font&amp;gt;==&lt;br /&gt;
*&amp;lt;font color=white&amp;gt;Здесь вы всегда можете загрузить последнюю сборку.&amp;lt;/font&amp;gt;&lt;br /&gt;
** &amp;lt;font color=white&amp;gt;Для FreeRunner &amp;lt;/font&amp;gt;[http://downloads.openmoko.org/daily/ http://downloads.openmoko.org/daily/]&lt;br /&gt;
** &amp;lt;font color=white&amp;gt;Для Neo 1973 &amp;lt;/font&amp;gt; [http://downloads.openmoko.org/daily/ http://downloads.openmoko.org/daily/]&lt;br /&gt;
*&amp;lt;font color=white&amp;gt;Обзоры ежденевных сборок [[Snapshot_review|здесь]], рекомендуемое ядро и корневой образ с обзором будут всегда доступны [http://downloads.openmoko.org/releases/ здесь].&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;font color=white&amp;gt;Заметим, что рекомендованные сборки, не всегда являются последними, но они самые стабильные, надежные и функциональные.&amp;lt;/font&amp;gt;&lt;br /&gt;
|valign=&amp;quot;top&amp;quot; style=&amp;quot;background:#333333;border-left:5px solid white;border-right:5px solid white;border-bottom:0px solid white; border:1px solid #cccccc; &amp;quot; |&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=white&amp;gt; Обновления Сообщества&amp;lt;/font&amp;gt;==&lt;br /&gt;
&amp;lt;font color=white&amp;gt;Просмотр текущего статуса [[Community_Updates|Обновлений Сообщества]]&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=ffffff&amp;gt; ※&amp;lt;/font&amp;gt;[[:Category:Community|  Узнать больше о Сообществе...]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=white&amp;gt;Обзор Вики&amp;lt;/font&amp;gt;==&lt;br /&gt;
*&amp;lt;font color=white&amp;gt;Для получения обзора Openmoko Вики, смотрите [[Openmoko Wiki Official Index Page|Оффициальную Страницу Openmoko Wiki]].&amp;lt;/font&amp;gt;&lt;br /&gt;
==&amp;lt;font color=white&amp;gt;События&amp;lt;/font&amp;gt;==&lt;br /&gt;
*[[Summer of Code 2008]]&lt;br /&gt;
*[[Openmoko Education/zh tw]]&lt;br /&gt;
*[[Events:FOSDEM 2008]]&lt;br /&gt;
*[[OpenLab]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=ffffff&amp;gt; ※&amp;lt;/font&amp;gt;[[:Category:Event|  Узнать больше о Событиях...]]&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=75d806&amp;gt;Openmoko Wiki - с чего начать&amp;lt;/font&amp;gt;==&lt;br /&gt;
Энциклопедия Openmoko открытая. Каждый может присоединиться. Вы сможете найти любую информацию, в том числе: аппаратную и программную документацию, списки ошибок, новости сообщества Openmoko и другое. Присоединяйтесь к энциклопедии, редактируйте ее, наполняйте материалами и помогайте другим. Для полного обзора Openmoko Wiki, пожалуйста посетите [[Openmoko Wiki Official Index Page|Оффициальную Страницу Openmoko Wiki]].&lt;br /&gt;
&lt;br /&gt;
* Пожалуйста прочтите наше [[Openmoko Wiki Editing Guidelines|Руководство по Редактированию Openmoko Wiki]]&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Help:Configuration_settings Настройка параметров списка]&lt;br /&gt;
* [http://meta.wikimedia.org/wiki/Help:Wikitext_reference Руководство по MediaWiki и Wikitext]&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Help:FAQ MediaWiki ЧАВО]&lt;/div&gt;</summary>
		<author><name>Narmo</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Main_Page/ru</id>
		<title>Main Page/ru</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Main_Page/ru"/>
				<updated>2008-12-02T20:10:44Z</updated>
		
		<summary type="html">&lt;p&gt;Narmo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{{Languages|Main_Page}}&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;DIV ALIGN=center&amp;gt;&amp;lt;big&amp;gt;'''Openmoko™ Открытый. Мобильный. Свободный.'''&amp;lt;/big&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/DIV&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
[http://www.linuxphone.ru Портал русскоязычных пользователей]&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
__NOEDITSECTION__ [[Image:Freerunner02.gif|thumb|150px|right|Neo FreeRunners]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=75d806&amp;gt;Введение в Openmoko&amp;lt;/font&amp;gt;==&lt;br /&gt;
[[Image:OpenmokoFramework08.png|250px|left|Программный стек Openmoko|thumb]]&lt;br /&gt;
Openmoko™ - рожден как проект с [http://ru.wikipedia.org/wiki/%D0%9E%D1%82%D0%BA%D1%80%D1%8B%D1%82%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D0%BE%D0%B5_%D0%BE%D0%B1%D0%B5%D1%81%D0%BF%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D0%B5 Открытым Исходным Кодом] под  [[License| лицензиями GPL и LGPL]], представляющий открытую программную архитектуру для мобильных платформ. Openmoko на данный момент продает смартфон [[Neo FreeRunner]] для продвинутых пользователей и начинает компанию по разработке программного обеспечения под него.&lt;br /&gt;
&lt;br /&gt;
[[NeoSoftwareStack|Архитектура Openmoko]] включает в себя [[Host-based development with Xoo and Xephyr|X сервер]] и позволяет пользователям и разработчикам превратить аппаратную платформу мобильных устройств в уникальные продукты. Наша лицензия дает свободу пользователям и разработчикам от &amp;quot;iron to the eyeballs,&amp;quot; свободу в поверхностной настройке устройства или радикальном его изменении;  сменить фоновый рисунок или пересобрать всю систему! Она дает свободу, например, превратить телефон в медицинское устройство, или устройство продаж, или просто свободно устанавливать ваши программы. Для полной свободы программного обеспечения для наших устройств, мы также опубликовали схему устройства в формате CAD под лицензией Creative Commons. Дав свободу программному обеспечению под лицензией GPL, мы позволили сообществу разработчиков FOSS &amp;quot;сделать ее новой&amp;quot;. Освободив схемы устройства в файлах [http://downloads.openmoko.org/CAD/ CAD], мы предоставляем промышленным дизайнерам и инженерам эту же возможность. И на LinuxWorld 2008, мы предоставили [http://downloads.openmoko.org/schematics/ принципиальные схемы].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;6&amp;quot; width=&amp;quot;100%&amp;quot; style=&amp;quot;color:white&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background:#ff6600; text-align:center; font-weight:bold&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;50%&amp;quot;&amp;gt;Новости и события&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;50%&amp;quot;&amp;gt;Новости Openmoko?&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr valign=&amp;quot;top&amp;quot; style=&amp;quot;background:#333333&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
* 01/12: [[Openmoko:Usb light/ru | USB-фонарик]]&lt;br /&gt;
* 24/11: [http://www.linuxphone.ru/2008/11/koolu-android-for-freerunner/ Koolu выпустит порт Android на Neo FreeRunner в декабре]&lt;br /&gt;
* 9/10: [[Weekly Engineering News|Openmoko Weekly Engineering News]]&lt;br /&gt;
* 6/10: [[Community_Updates/October_3rd%2C_2008/ru|Community update]]&lt;br /&gt;
* 2/10: Nokia выпустила [http://qtextended.org/ Qt Extended 4.4.1] ([http://qtextended.org/modules/mydownloads/visit.php?lid=86 image], [http://qtextended.org/modules/mydownloads/visit.php?lid=85 SDK])&lt;br /&gt;
* 27/9: Вышел релиз [[FDOM]]&lt;br /&gt;
* 19/9: точка релиза [[Om_2008.9_Update|Om 2008.9]]&lt;br /&gt;
* 17/9: [[17th September, 2008 - Activity since launch|Community update]] - Activity since launch&lt;br /&gt;
* 2/9: Trolltech [http://www.qtopia.net/modules/mydownloads/singlefile.php?lid=83 опубликовала] Qtopia 4.3.3-snapshot.&lt;br /&gt;
* 28/8: Trolltech [http://n2.nabble.com/qtopia-4.3.2-release-tp789148p789148.html опубликовала] Qtopia 4.3.2.&lt;br /&gt;
* 26/8: Openmoko [http://lists.openmoko.org/pipermail/community/2008-August/027997.html updates] [[Om 2008.8]] дистрибутив.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
* [[Weekly Engineering News|Openmoko Weekly Engineering News]]&lt;br /&gt;
* [[News Archive|(news archive)]]&amp;lt;!--Editors: copy removed news to News Archive! --&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;О Openmoko&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[Introduction/ru| Введение]]&lt;br /&gt;
* [[Why Openmoko| Почему Openmoko]]&lt;br /&gt;
* [[Neo FreeRunner|Neo FreeRunner phone]]&lt;br /&gt;
* [[Supported Hardware]]&lt;br /&gt;
* [[FAQ| ЧаВо]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Старт с Openmoko&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[Getting Openmoko/ru|Getting Openmoko]]&lt;br /&gt;
* [http://www.openmoko.com Openmoko Inc.]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background:#ff6600; text-align:center; font-weight:bold&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;50%&amp;quot;&amp;gt;Для пользователей&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;50%&amp;quot;&amp;gt;Для разработчиков&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr valign=&amp;quot;top&amp;quot; style=&amp;quot;background:#333333&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;C чего начать&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[Getting Started with your Neo FreeRunner/ru | Neo FreeRunner getting started guide]]&lt;br /&gt;
* [[Applications]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Дистрибутивы&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[Distributions|Features comparison table]]&lt;br /&gt;
* [[Om 2008.8|Om 2008.8 (ASU)]] - [[Om 2007.2|Om 2007.2 (old stable)]]&lt;br /&gt;
* [[OpenmokoFramework|FSO]] - [[Qtopia_on_FreeRunner|Qtopia]] - [[Debian|Debian]] - [[Gentoo|Gentoo]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Общение&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[Mailing List Duplicates| Mailing List Duplicates]]&lt;br /&gt;
* [[Discussion_Forums| Форум]]&lt;br /&gt;
* [[Community repository]]&lt;br /&gt;
* [[Development resources | Ресурсы для разработчиков]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Разработка приложений&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[Openmoko developer guide| Руководство разработчика ]]&lt;br /&gt;
* [[Toolchain|Средства разработки]]&lt;br /&gt;
&amp;lt;!-- * &amp;lt;font color=white&amp;gt;VMware&amp;lt;/font&amp;gt; --&amp;gt;&lt;br /&gt;
* [[Python|Введение в Python]]&lt;br /&gt;
* [http://projects.openmoko.org/ Projects hosted in our GForge]&lt;br /&gt;
* [[OpenmokoFramework|Openmoko dbus-based service level framework]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Интеграция и дистрибутивы&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[OpenEmbedded|The OpenEmbedded distribution building framework]]&lt;br /&gt;
* [[MokoMakefile|Сборка Openmoko с использованием MokoMakefile]]&lt;br /&gt;
* [[Opkg|Менеджер пакетов Opkg]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Эмуляция&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[Openmoko under QEMU| Openmoko в QEMU]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=75d806&amp;gt;Продукция Openmoko&amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Первый продукт Openmoko - Neo1973, продавался исключительно через интернет-магазин Openmoko. Продажи закончились в начале февраля 2008 года.&lt;br /&gt;
&lt;br /&gt;
С 26 июня 2008 года Openmoko поставляет Neo FreeRunner (GTA02) - второе поколение Neo. Если вы заинтересованны в покупке Neo FreeRunner, добавьте своё имя в Лист Заинтересованных в Покупке. Также посмотрите групповые покупки на [[GroupSales|Групповых Продажах]] с дополнительными скидками и услугами.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=75d806&amp;gt;Присоединяйтесь к развитию Openmoko&amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;6&amp;quot; width=100%&lt;br /&gt;
! width=50% style=&amp;quot;background:#ff6600;border-left:5px solid white;border-right:5px solid white;border-top:0px solid white; border:1px solid #ff6600; &amp;quot; | &amp;lt;font color=&amp;quot;white&amp;quot; &amp;gt;Руководство разработчика&amp;lt;/font&amp;gt;&lt;br /&gt;
! width=50% style=&amp;quot;background:#ff6600;border-left:5px solid white;border-right:5px solid white;border-top:0px solid white; border:1px solid #ff6600;&amp;quot; |&amp;lt;font color=&amp;quot;white&amp;quot; &amp;gt;Тестирование / Эмуляция и участие в проектах&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot; style=&amp;quot;background:#333333;border-left:5px solid white;border-right:5px solid white;border-bottom:0px solid white; border:1px solid #cccccc; &amp;quot; |&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Разработчику &amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[Toolchain|Использование инструментов разработчика]]&lt;br /&gt;
* &amp;lt;font color=white&amp;gt;VMware&amp;lt;/font&amp;gt;&lt;br /&gt;
* [[Python|Введение в python]]&lt;br /&gt;
* [[Openmoko_under_QEMU|Openmoko через QEMU]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Системная интеграция и настройка&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[OpenEmbedded|OE - Платформа построения приложений]]&lt;br /&gt;
* [[MokoMakefile|Сборка Openmoko с использованием MokoMakefile]]&lt;br /&gt;
* [[Opkg|Opkg]]&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Низкоуровневая / системная разработка&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[u-boot]]  &amp;lt;font color=white&amp;gt;- Загрузчик используемый нами, включая документацию для его модификации&amp;lt;/font&amp;gt;&lt;br /&gt;
* [[kernel]]  &amp;lt;font color=white&amp;gt;- Ядро Linux используемое нами, включая документацию для его модификации&amp;lt;/font&amp;gt;&lt;br /&gt;
* [[gsmd]] &amp;lt;font color=white&amp;gt; - GSM демон управления GSM Модемом&amp;lt;/font&amp;gt;&lt;br /&gt;
* [[agpsd]] &amp;lt;font color=white&amp;gt;- AGPS (Assisted GPS) демон&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|valign=&amp;quot;top&amp;quot; style=&amp;quot;background:#333333;border-left:5px solid white;border-right:5px solid white;border-bottom:0px solid white; border:1px solid #cccccc; &amp;quot; |&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Тестирование&amp;lt;/font&amp;gt;===&lt;br /&gt;
*[[Test Cases|Пройденные тесты]]&lt;br /&gt;
&amp;lt;font color=white&amp;gt; ※&amp;lt;/font&amp;gt; [[:Category: Test |  Узнать больше о Тестировании]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Эмуляция&amp;lt;/font&amp;gt;===&lt;br /&gt;
*[[Getting Openmoko working on host with Xephyr|Эмуляция Openmoko на ПК с использованием Xephyr]]&lt;br /&gt;
*[[Test_Openmoko Emulation with chroot image|Эмуляция Openmoko с готовым образом корневой файловой системы]]&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Публикация вашего проекта===&lt;br /&gt;
*[[Community Repository|Опубликовать Ваш Проект]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=75d806&amp;gt;Сообщество Openmoko&amp;lt;/font&amp;gt;==&lt;br /&gt;
Каждый может присоединиться к проекту Openmoko и сделать свой вклад в разработку открытых продуктов. Присоединяйтесь к нам и сотрудничайте в рамках любого [[Development resources | проекта]], в том числе и Энциклопедии по Openmoko. См. страницу помощи по редактированию информации или внесении/добавлении изменений в энциклопедии.&lt;br /&gt;
&lt;br /&gt;
Вы можете начать с [[introduction|вводной]] страницы , фотографий, видео и Оффициальной Страницы Openmoko Wiki. Как всегда, используйте [[FAQ | Часто Задаваемые Вопросы]] (ЧАВО),  [http://lists.openmoko.org/mailman/listinfo/| списки рассылки] и [[Discussion_Forums| Форумы]] для получения помощи.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;6&amp;quot; width=100%&lt;br /&gt;
! width=50% style=&amp;quot;background:#ff6600;border-left:5px solid white;border-right:5px solid white;border-top:0px solid white; border:1px solid #ff6600; &amp;quot; | &amp;lt;font color=&amp;quot;white&amp;quot; &amp;gt;В Новостях&amp;lt;/font&amp;gt;&lt;br /&gt;
! width=50% style=&amp;quot;background:#ff6600;border-left:5px solid white;border-right:5px solid white;border-top:0px solid white; border:1px solid #ff6600;&amp;quot; |&amp;lt;font color=&amp;quot;white&amp;quot; &amp;gt;Сообщество и События&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot; style=&amp;quot;background:#333333;border-left:5px solid white;border-right:5px solid white;border-bottom:0px solid white; border:1px solid #cccccc; &amp;quot; |&lt;br /&gt;
==&amp;lt;font color=white&amp;gt;В Новостях&amp;lt;/font&amp;gt;==&lt;br /&gt;
*[[Getting Started with your Neo FreeRunner|Neo FreeRunner - с чего начать]]&lt;br /&gt;
*[[ASU Feature Plan|План реализации АОП(Апрельское обновление ПО)]]&lt;br /&gt;
*[[Community Repository|Публикация вашего проекта]]&lt;br /&gt;
*[[GroupSales|Групповые продажи]]&lt;br /&gt;
*[[WhyOpenmoko|Почему Openmoko лучше: Сравнительный Взгляд]]&lt;br /&gt;
==&amp;lt;font color=white&amp;gt;Ежедневные Сборки&amp;lt;/font&amp;gt;==&lt;br /&gt;
*&amp;lt;font color=white&amp;gt;Здесь вы всегда можете загрузить последнюю сборку.&amp;lt;/font&amp;gt;&lt;br /&gt;
** &amp;lt;font color=white&amp;gt;Для FreeRunner &amp;lt;/font&amp;gt;[http://downloads.openmoko.org/daily/ http://downloads.openmoko.org/daily/]&lt;br /&gt;
** &amp;lt;font color=white&amp;gt;Для Neo 1973 &amp;lt;/font&amp;gt; [http://downloads.openmoko.org/daily/ http://downloads.openmoko.org/daily/]&lt;br /&gt;
*&amp;lt;font color=white&amp;gt;Обзоры ежденевных сборок [[Snapshot_review|здесь]], рекомендуемое ядро и корневой образ с обзором будут всегда доступны [http://downloads.openmoko.org/releases/ здесь].&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;font color=white&amp;gt;Заметим, что рекомендованные сборки, не всегда являются последними, но они самые стабильные, надежные и функциональные.&amp;lt;/font&amp;gt;&lt;br /&gt;
|valign=&amp;quot;top&amp;quot; style=&amp;quot;background:#333333;border-left:5px solid white;border-right:5px solid white;border-bottom:0px solid white; border:1px solid #cccccc; &amp;quot; |&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=white&amp;gt; Обновления Сообщества&amp;lt;/font&amp;gt;==&lt;br /&gt;
&amp;lt;font color=white&amp;gt;Просмотр текущего статуса [[Community_Updates|Обновлений Сообщества]]&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=ffffff&amp;gt; ※&amp;lt;/font&amp;gt;[[:Category:Community|  Узнать больше о Сообществе...]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=white&amp;gt;Обзор Вики&amp;lt;/font&amp;gt;==&lt;br /&gt;
*&amp;lt;font color=white&amp;gt;Для получения обзора Openmoko Вики, смотрите [[Openmoko Wiki Official Index Page|Оффициальную Страницу Openmoko Wiki]].&amp;lt;/font&amp;gt;&lt;br /&gt;
==&amp;lt;font color=white&amp;gt;События&amp;lt;/font&amp;gt;==&lt;br /&gt;
*[[Summer of Code 2008]]&lt;br /&gt;
*[[Openmoko Education/zh tw]]&lt;br /&gt;
*[[Events:FOSDEM 2008]]&lt;br /&gt;
*[[OpenLab]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=ffffff&amp;gt; ※&amp;lt;/font&amp;gt;[[:Category:Event|  Узнать больше о Событиях...]]&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=75d806&amp;gt;Openmoko Wiki - с чего начать&amp;lt;/font&amp;gt;==&lt;br /&gt;
Энциклопедия Openmoko открытая. Каждый может присоединиться. Вы сможете найти любую информацию, в том числе: аппаратную и программную документацию, списки ошибок, новости сообщества Openmoko и другое. Присоединяйтесь к энциклопедии, редактируйте ее, наполняйте материалами и помогайте другим. Для полного обзора Openmoko Wiki, пожалуйста посетите [[Openmoko Wiki Official Index Page|Оффициальную Страницу Openmoko Wiki]].&lt;br /&gt;
&lt;br /&gt;
* Пожалуйста прочтите наше [[Openmoko Wiki Editing Guidelines|Руководство по Редактированию Openmoko Wiki]]&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Help:Configuration_settings Настройка параметров списка]&lt;br /&gt;
* [http://meta.wikimedia.org/wiki/Help:Wikitext_reference Руководство по MediaWiki и Wikitext]&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Help:FAQ MediaWiki ЧАВО]&lt;/div&gt;</summary>
		<author><name>Narmo</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Main_Page/ru</id>
		<title>Main Page/ru</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Main_Page/ru"/>
				<updated>2008-12-02T20:10:21Z</updated>
		
		<summary type="html">&lt;p&gt;Narmo: Новость про фонарик через USB (русский вариант)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{{Languages|Main_Page}}&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;DIV ALIGN=center&amp;gt;&amp;lt;big&amp;gt;'''Openmoko™ Открытый. Мобильный. Свободный.'''&amp;lt;/big&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/DIV&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
[http://www.linuxphone.ru Портал русскоязычных пользователей]&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
__NOEDITSECTION__ [[Image:Freerunner02.gif|thumb|150px|right|Neo FreeRunners]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=75d806&amp;gt;Введение в Openmoko&amp;lt;/font&amp;gt;==&lt;br /&gt;
[[Image:OpenmokoFramework08.png|250px|left|Программный стек Openmoko|thumb]]&lt;br /&gt;
Openmoko™ - рожден как проект с [http://ru.wikipedia.org/wiki/%D0%9E%D1%82%D0%BA%D1%80%D1%8B%D1%82%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D0%BE%D0%B5_%D0%BE%D0%B1%D0%B5%D1%81%D0%BF%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D0%B5 Открытым Исходным Кодом] под  [[License| лицензиями GPL и LGPL]], представляющий открытую программную архитектуру для мобильных платформ. Openmoko на данный момент продает смартфон [[Neo FreeRunner]] для продвинутых пользователей и начинает компанию по разработке программного обеспечения под него.&lt;br /&gt;
&lt;br /&gt;
[[NeoSoftwareStack|Архитектура Openmoko]] включает в себя [[Host-based development with Xoo and Xephyr|X сервер]] и позволяет пользователям и разработчикам превратить аппаратную платформу мобильных устройств в уникальные продукты. Наша лицензия дает свободу пользователям и разработчикам от &amp;quot;iron to the eyeballs,&amp;quot; свободу в поверхностной настройке устройства или радикальном его изменении;  сменить фоновый рисунок или пересобрать всю систему! Она дает свободу, например, превратить телефон в медицинское устройство, или устройство продаж, или просто свободно устанавливать ваши программы. Для полной свободы программного обеспечения для наших устройств, мы также опубликовали схему устройства в формате CAD под лицензией Creative Commons. Дав свободу программному обеспечению под лицензией GPL, мы позволили сообществу разработчиков FOSS &amp;quot;сделать ее новой&amp;quot;. Освободив схемы устройства в файлах [http://downloads.openmoko.org/CAD/ CAD], мы предоставляем промышленным дизайнерам и инженерам эту же возможность. И на LinuxWorld 2008, мы предоставили [http://downloads.openmoko.org/schematics/ принципиальные схемы].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;6&amp;quot; width=&amp;quot;100%&amp;quot; style=&amp;quot;color:white&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background:#ff6600; text-align:center; font-weight:bold&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;50%&amp;quot;&amp;gt;Новости и события&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;50%&amp;quot;&amp;gt;Новости Openmoko?&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr valign=&amp;quot;top&amp;quot; style=&amp;quot;background:#333333&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
* 01/12 [[Openmoko:Usb light/ru | USB-фонарик]]&lt;br /&gt;
* 24/11 * [http://www.linuxphone.ru/2008/11/koolu-android-for-freerunner/ Koolu выпустит порт Android на Neo FreeRunner в декабре]&lt;br /&gt;
* 9/10: [[Weekly Engineering News|Openmoko Weekly Engineering News]]&lt;br /&gt;
* 6/10: [[Community_Updates/October_3rd%2C_2008/ru|Community update]]&lt;br /&gt;
* 2/10: Nokia выпустила [http://qtextended.org/ Qt Extended 4.4.1] ([http://qtextended.org/modules/mydownloads/visit.php?lid=86 image], [http://qtextended.org/modules/mydownloads/visit.php?lid=85 SDK])&lt;br /&gt;
* 27/9: Вышел релиз [[FDOM]]&lt;br /&gt;
* 19/9: точка релиза [[Om_2008.9_Update|Om 2008.9]]&lt;br /&gt;
* 17/9: [[17th September, 2008 - Activity since launch|Community update]] - Activity since launch&lt;br /&gt;
* 2/9: Trolltech [http://www.qtopia.net/modules/mydownloads/singlefile.php?lid=83 опубликовала] Qtopia 4.3.3-snapshot.&lt;br /&gt;
* 28/8: Trolltech [http://n2.nabble.com/qtopia-4.3.2-release-tp789148p789148.html опубликовала] Qtopia 4.3.2.&lt;br /&gt;
* 26/8: Openmoko [http://lists.openmoko.org/pipermail/community/2008-August/027997.html updates] [[Om 2008.8]] дистрибутив.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
* [[Weekly Engineering News|Openmoko Weekly Engineering News]]&lt;br /&gt;
* [[News Archive|(news archive)]]&amp;lt;!--Editors: copy removed news to News Archive! --&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;О Openmoko&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[Introduction/ru| Введение]]&lt;br /&gt;
* [[Why Openmoko| Почему Openmoko]]&lt;br /&gt;
* [[Neo FreeRunner|Neo FreeRunner phone]]&lt;br /&gt;
* [[Supported Hardware]]&lt;br /&gt;
* [[FAQ| ЧаВо]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Старт с Openmoko&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[Getting Openmoko/ru|Getting Openmoko]]&lt;br /&gt;
* [http://www.openmoko.com Openmoko Inc.]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background:#ff6600; text-align:center; font-weight:bold&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;50%&amp;quot;&amp;gt;Для пользователей&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;50%&amp;quot;&amp;gt;Для разработчиков&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr valign=&amp;quot;top&amp;quot; style=&amp;quot;background:#333333&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;C чего начать&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[Getting Started with your Neo FreeRunner/ru | Neo FreeRunner getting started guide]]&lt;br /&gt;
* [[Applications]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Дистрибутивы&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[Distributions|Features comparison table]]&lt;br /&gt;
* [[Om 2008.8|Om 2008.8 (ASU)]] - [[Om 2007.2|Om 2007.2 (old stable)]]&lt;br /&gt;
* [[OpenmokoFramework|FSO]] - [[Qtopia_on_FreeRunner|Qtopia]] - [[Debian|Debian]] - [[Gentoo|Gentoo]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Общение&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[Mailing List Duplicates| Mailing List Duplicates]]&lt;br /&gt;
* [[Discussion_Forums| Форум]]&lt;br /&gt;
* [[Community repository]]&lt;br /&gt;
* [[Development resources | Ресурсы для разработчиков]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Разработка приложений&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[Openmoko developer guide| Руководство разработчика ]]&lt;br /&gt;
* [[Toolchain|Средства разработки]]&lt;br /&gt;
&amp;lt;!-- * &amp;lt;font color=white&amp;gt;VMware&amp;lt;/font&amp;gt; --&amp;gt;&lt;br /&gt;
* [[Python|Введение в Python]]&lt;br /&gt;
* [http://projects.openmoko.org/ Projects hosted in our GForge]&lt;br /&gt;
* [[OpenmokoFramework|Openmoko dbus-based service level framework]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Интеграция и дистрибутивы&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[OpenEmbedded|The OpenEmbedded distribution building framework]]&lt;br /&gt;
* [[MokoMakefile|Сборка Openmoko с использованием MokoMakefile]]&lt;br /&gt;
* [[Opkg|Менеджер пакетов Opkg]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Эмуляция&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[Openmoko under QEMU| Openmoko в QEMU]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=75d806&amp;gt;Продукция Openmoko&amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Первый продукт Openmoko - Neo1973, продавался исключительно через интернет-магазин Openmoko. Продажи закончились в начале февраля 2008 года.&lt;br /&gt;
&lt;br /&gt;
С 26 июня 2008 года Openmoko поставляет Neo FreeRunner (GTA02) - второе поколение Neo. Если вы заинтересованны в покупке Neo FreeRunner, добавьте своё имя в Лист Заинтересованных в Покупке. Также посмотрите групповые покупки на [[GroupSales|Групповых Продажах]] с дополнительными скидками и услугами.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=75d806&amp;gt;Присоединяйтесь к развитию Openmoko&amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;6&amp;quot; width=100%&lt;br /&gt;
! width=50% style=&amp;quot;background:#ff6600;border-left:5px solid white;border-right:5px solid white;border-top:0px solid white; border:1px solid #ff6600; &amp;quot; | &amp;lt;font color=&amp;quot;white&amp;quot; &amp;gt;Руководство разработчика&amp;lt;/font&amp;gt;&lt;br /&gt;
! width=50% style=&amp;quot;background:#ff6600;border-left:5px solid white;border-right:5px solid white;border-top:0px solid white; border:1px solid #ff6600;&amp;quot; |&amp;lt;font color=&amp;quot;white&amp;quot; &amp;gt;Тестирование / Эмуляция и участие в проектах&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot; style=&amp;quot;background:#333333;border-left:5px solid white;border-right:5px solid white;border-bottom:0px solid white; border:1px solid #cccccc; &amp;quot; |&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Разработчику &amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[Toolchain|Использование инструментов разработчика]]&lt;br /&gt;
* &amp;lt;font color=white&amp;gt;VMware&amp;lt;/font&amp;gt;&lt;br /&gt;
* [[Python|Введение в python]]&lt;br /&gt;
* [[Openmoko_under_QEMU|Openmoko через QEMU]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Системная интеграция и настройка&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[OpenEmbedded|OE - Платформа построения приложений]]&lt;br /&gt;
* [[MokoMakefile|Сборка Openmoko с использованием MokoMakefile]]&lt;br /&gt;
* [[Opkg|Opkg]]&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Низкоуровневая / системная разработка&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[u-boot]]  &amp;lt;font color=white&amp;gt;- Загрузчик используемый нами, включая документацию для его модификации&amp;lt;/font&amp;gt;&lt;br /&gt;
* [[kernel]]  &amp;lt;font color=white&amp;gt;- Ядро Linux используемое нами, включая документацию для его модификации&amp;lt;/font&amp;gt;&lt;br /&gt;
* [[gsmd]] &amp;lt;font color=white&amp;gt; - GSM демон управления GSM Модемом&amp;lt;/font&amp;gt;&lt;br /&gt;
* [[agpsd]] &amp;lt;font color=white&amp;gt;- AGPS (Assisted GPS) демон&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|valign=&amp;quot;top&amp;quot; style=&amp;quot;background:#333333;border-left:5px solid white;border-right:5px solid white;border-bottom:0px solid white; border:1px solid #cccccc; &amp;quot; |&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Тестирование&amp;lt;/font&amp;gt;===&lt;br /&gt;
*[[Test Cases|Пройденные тесты]]&lt;br /&gt;
&amp;lt;font color=white&amp;gt; ※&amp;lt;/font&amp;gt; [[:Category: Test |  Узнать больше о Тестировании]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Эмуляция&amp;lt;/font&amp;gt;===&lt;br /&gt;
*[[Getting Openmoko working on host with Xephyr|Эмуляция Openmoko на ПК с использованием Xephyr]]&lt;br /&gt;
*[[Test_Openmoko Emulation with chroot image|Эмуляция Openmoko с готовым образом корневой файловой системы]]&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Публикация вашего проекта===&lt;br /&gt;
*[[Community Repository|Опубликовать Ваш Проект]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=75d806&amp;gt;Сообщество Openmoko&amp;lt;/font&amp;gt;==&lt;br /&gt;
Каждый может присоединиться к проекту Openmoko и сделать свой вклад в разработку открытых продуктов. Присоединяйтесь к нам и сотрудничайте в рамках любого [[Development resources | проекта]], в том числе и Энциклопедии по Openmoko. См. страницу помощи по редактированию информации или внесении/добавлении изменений в энциклопедии.&lt;br /&gt;
&lt;br /&gt;
Вы можете начать с [[introduction|вводной]] страницы , фотографий, видео и Оффициальной Страницы Openmoko Wiki. Как всегда, используйте [[FAQ | Часто Задаваемые Вопросы]] (ЧАВО),  [http://lists.openmoko.org/mailman/listinfo/| списки рассылки] и [[Discussion_Forums| Форумы]] для получения помощи.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;6&amp;quot; width=100%&lt;br /&gt;
! width=50% style=&amp;quot;background:#ff6600;border-left:5px solid white;border-right:5px solid white;border-top:0px solid white; border:1px solid #ff6600; &amp;quot; | &amp;lt;font color=&amp;quot;white&amp;quot; &amp;gt;В Новостях&amp;lt;/font&amp;gt;&lt;br /&gt;
! width=50% style=&amp;quot;background:#ff6600;border-left:5px solid white;border-right:5px solid white;border-top:0px solid white; border:1px solid #ff6600;&amp;quot; |&amp;lt;font color=&amp;quot;white&amp;quot; &amp;gt;Сообщество и События&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot; style=&amp;quot;background:#333333;border-left:5px solid white;border-right:5px solid white;border-bottom:0px solid white; border:1px solid #cccccc; &amp;quot; |&lt;br /&gt;
==&amp;lt;font color=white&amp;gt;В Новостях&amp;lt;/font&amp;gt;==&lt;br /&gt;
*[[Getting Started with your Neo FreeRunner|Neo FreeRunner - с чего начать]]&lt;br /&gt;
*[[ASU Feature Plan|План реализации АОП(Апрельское обновление ПО)]]&lt;br /&gt;
*[[Community Repository|Публикация вашего проекта]]&lt;br /&gt;
*[[GroupSales|Групповые продажи]]&lt;br /&gt;
*[[WhyOpenmoko|Почему Openmoko лучше: Сравнительный Взгляд]]&lt;br /&gt;
==&amp;lt;font color=white&amp;gt;Ежедневные Сборки&amp;lt;/font&amp;gt;==&lt;br /&gt;
*&amp;lt;font color=white&amp;gt;Здесь вы всегда можете загрузить последнюю сборку.&amp;lt;/font&amp;gt;&lt;br /&gt;
** &amp;lt;font color=white&amp;gt;Для FreeRunner &amp;lt;/font&amp;gt;[http://downloads.openmoko.org/daily/ http://downloads.openmoko.org/daily/]&lt;br /&gt;
** &amp;lt;font color=white&amp;gt;Для Neo 1973 &amp;lt;/font&amp;gt; [http://downloads.openmoko.org/daily/ http://downloads.openmoko.org/daily/]&lt;br /&gt;
*&amp;lt;font color=white&amp;gt;Обзоры ежденевных сборок [[Snapshot_review|здесь]], рекомендуемое ядро и корневой образ с обзором будут всегда доступны [http://downloads.openmoko.org/releases/ здесь].&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;font color=white&amp;gt;Заметим, что рекомендованные сборки, не всегда являются последними, но они самые стабильные, надежные и функциональные.&amp;lt;/font&amp;gt;&lt;br /&gt;
|valign=&amp;quot;top&amp;quot; style=&amp;quot;background:#333333;border-left:5px solid white;border-right:5px solid white;border-bottom:0px solid white; border:1px solid #cccccc; &amp;quot; |&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=white&amp;gt; Обновления Сообщества&amp;lt;/font&amp;gt;==&lt;br /&gt;
&amp;lt;font color=white&amp;gt;Просмотр текущего статуса [[Community_Updates|Обновлений Сообщества]]&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=ffffff&amp;gt; ※&amp;lt;/font&amp;gt;[[:Category:Community|  Узнать больше о Сообществе...]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=white&amp;gt;Обзор Вики&amp;lt;/font&amp;gt;==&lt;br /&gt;
*&amp;lt;font color=white&amp;gt;Для получения обзора Openmoko Вики, смотрите [[Openmoko Wiki Official Index Page|Оффициальную Страницу Openmoko Wiki]].&amp;lt;/font&amp;gt;&lt;br /&gt;
==&amp;lt;font color=white&amp;gt;События&amp;lt;/font&amp;gt;==&lt;br /&gt;
*[[Summer of Code 2008]]&lt;br /&gt;
*[[Openmoko Education/zh tw]]&lt;br /&gt;
*[[Events:FOSDEM 2008]]&lt;br /&gt;
*[[OpenLab]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=ffffff&amp;gt; ※&amp;lt;/font&amp;gt;[[:Category:Event|  Узнать больше о Событиях...]]&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=75d806&amp;gt;Openmoko Wiki - с чего начать&amp;lt;/font&amp;gt;==&lt;br /&gt;
Энциклопедия Openmoko открытая. Каждый может присоединиться. Вы сможете найти любую информацию, в том числе: аппаратную и программную документацию, списки ошибок, новости сообщества Openmoko и другое. Присоединяйтесь к энциклопедии, редактируйте ее, наполняйте материалами и помогайте другим. Для полного обзора Openmoko Wiki, пожалуйста посетите [[Openmoko Wiki Official Index Page|Оффициальную Страницу Openmoko Wiki]].&lt;br /&gt;
&lt;br /&gt;
* Пожалуйста прочтите наше [[Openmoko Wiki Editing Guidelines|Руководство по Редактированию Openmoko Wiki]]&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Help:Configuration_settings Настройка параметров списка]&lt;br /&gt;
* [http://meta.wikimedia.org/wiki/Help:Wikitext_reference Руководство по MediaWiki и Wikitext]&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Help:FAQ MediaWiki ЧАВО]&lt;/div&gt;</summary>
		<author><name>Narmo</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Openmoko:Usb_light/ru</id>
		<title>Openmoko:Usb light/ru</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Openmoko:Usb_light/ru"/>
				<updated>2008-12-02T20:05:48Z</updated>
		
		<summary type="html">&lt;p&gt;Narmo: Translated page to Russian&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Openmoko:Usb_light}}&lt;br /&gt;
&lt;br /&gt;
= USB-фонарик =&lt;br /&gt;
&lt;br /&gt;
В моём старом телефоне, Sony Ericsson W800i, была одна любимая мной вещь - фонарик (основной функцией которого была подсветка во время фотосъёмки встроенной камерой; но его также можно было использовать и как обычный фонарик). Поэтому я подумал о подобном решении для моего Freerunner, результатом чего стала эта статья.&lt;br /&gt;
&lt;br /&gt;
== Идея ==&lt;br /&gt;
&lt;br /&gt;
* два светодиода&lt;br /&gt;
* два резистора&lt;br /&gt;
* один разъём MiniUSB (папа)&lt;br /&gt;
* немного припоя&lt;br /&gt;
* немного горячего клея...&lt;br /&gt;
&lt;br /&gt;
...и в вашем Freerunner появится фонарик :D&lt;br /&gt;
&lt;br /&gt;
= Инструкции =&lt;br /&gt;
&lt;br /&gt;
== Компоненты ==&lt;br /&gt;
&lt;br /&gt;
* 2 белых светодиода повышенной яркости ⇒ [http://www.reichelt.de/?;ACTION=3;LA=4;GROUP=A5332;GROUPID=3019;ARTICLE=26496;START=0;SORT=artnr;OFFSET=16;SID=28SA7h56wQARwAACk@Bmsa794de820d10a89112a12211e64ae497 LED 3-2000 WS в каталоге Reichelt] (немецкий поставщик электронных компонентов)&lt;br /&gt;
* 2 резистора по 75 Ом 1/4 Вт ⇒ [http://www.reichelt.de/?;ACTION=3;LA=4;GROUP=B1112;GROUPID=3063;ARTICLE=1466;START=0;SORT=artnr;OFFSET=16;SID=28SA7h56wQARwAACk@Bmsa794de820d10a89112a12211e64ae497 1/4W 75 Ом по каталогу Reichelt]&lt;br /&gt;
* 1 кабель USB mini B ⇒ [http://www.reichelt.de/?;ACTION=3;LA=4;GROUP=C6992;GROUPID=3348;ARTICLE=45361;START=0;SORT=artnr;OFFSET=16;SID=28SA7h56wQARwAACk@Bmsa794de820d10a89112a12211e64ae497 AK 673-A USB mini B / USB коннектор по каталогу Reichelt]&lt;br /&gt;
&lt;br /&gt;
= Схемы =&lt;br /&gt;
[[Image:Fetch.png|align|center]]&lt;br /&gt;
&lt;br /&gt;
[http://ru.wikipedia.org/wiki/USB#.D0.9A.D0.B0.D0.B1.D0.B5.D0.BB.D0.B8_.D0.B8_.D1.80.D0.B0.D0.B7.D1.8A.D1.91.D0.BC.D1.8B_USB_1.0_.D0.B8_2.0 Статья на Википедии о USB]&lt;br /&gt;
&lt;br /&gt;
= Подготовка =&lt;br /&gt;
&lt;br /&gt;
Отрежьте кабель USB, снимите изоляцию и уберите ножки 2, 3, 4 (для уменьшения риска короткого замыкания). Теперь соедините компоненты так, как показано на схеме выше. ВНИМАНИЕ ⇒ существует риск замыкания схемы о металлические части разъёма. Проверьте работоспособность схемы без металлических частей.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
[[Image:Fetch1.png|align|center|400px|thumb|'''* без металлических частей разъёма''']]&lt;br /&gt;
|-&lt;br /&gt;
[[Image:Fetch2.png|align|center|400px|thumb|'''* с металлическими частями разъёма''']]&lt;br /&gt;
|-&lt;br /&gt;
[[Image:Fetch3.png|align|center|400px|thumb|'''* с горячим клеем (я знаю, что смотрится это не очень симпатично, но оно работает, оно прочное, и без коротких замыканий''' ;)]]&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
= Программное обеспечение =&lt;br /&gt;
&lt;br /&gt;
Когда я искал хорошее решение для запуска host-mode на Freerunner, я нашёл эту запись в блоге&lt;br /&gt;
&lt;br /&gt;
* http://blogs.thehumanjourney.net/finds/entry/usb_host_mode_the_button&lt;br /&gt;
&lt;br /&gt;
Джозеф Ривз модифицировал свой пакет usbmode-button после нескольких моих предложений, и вот его статья в блоге о версии 0.2&lt;br /&gt;
&lt;br /&gt;
* http://blogs.thehumanjourney.net/finds/entry/usb_mode_button_0_2&lt;br /&gt;
&lt;br /&gt;
Спасибо Джозефу Ривзу :D&lt;br /&gt;
&lt;br /&gt;
Вы можете включать и выключать host-mode одним нажатием на иконку.&lt;br /&gt;
Оно работает!&lt;br /&gt;
&lt;br /&gt;
== Изображения ==&lt;br /&gt;
&lt;br /&gt;
[[Image:Fetch4.jpeg|200px|align|center]]&lt;br /&gt;
[[Image:Fetch6.jpeg|200px|align|center]]&lt;br /&gt;
&lt;br /&gt;
== Видео ==&lt;br /&gt;
&lt;br /&gt;
* Freerunner при дневном свете ⇒ http://www.youtube.com/watch?v=iK5w-OHSm9g&lt;br /&gt;
* Freerunner ночью ⇒ http://www.youtube.com/watch?v=f2H4QZq2xxE&lt;br /&gt;
&lt;br /&gt;
* Моя версия ⇒ http://www.youtube.com/watch?v=-qMmwOoLiZ8 :)&lt;br /&gt;
&lt;br /&gt;
= Улучшения? Идеи! =&lt;br /&gt;
&lt;br /&gt;
Это работает, но выглядит не очень симпатично. Возможно, у вас появятся идеи по этому поводу. Пишите мне :D&lt;br /&gt;
[[Category:Hardware ideas]]&lt;/div&gt;</summary>
		<author><name>Narmo</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Openmoko:Usb_light</id>
		<title>Openmoko:Usb light</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Openmoko:Usb_light"/>
				<updated>2008-12-02T19:50:17Z</updated>
		
		<summary type="html">&lt;p&gt;Narmo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Openmoko:Usb_light}}&lt;br /&gt;
&lt;br /&gt;
=USB-Light=&lt;br /&gt;
One thing that i like on my older phone, a Sony Ericsson W800i, is the light (camera light, but you can use it without the camera). So i thought about a solution for my Freerunner and the result is the following article. At least ⇒ At own's risk ;)&lt;br /&gt;
&lt;br /&gt;
==Idea==&lt;br /&gt;
&lt;br /&gt;
* Two leds&lt;br /&gt;
* Two resitors&lt;br /&gt;
* a miniusb B male connector&lt;br /&gt;
* a bit solder&lt;br /&gt;
* and a bit hot glue&lt;br /&gt;
&lt;br /&gt;
and you have a light for your Freerunner :D&lt;br /&gt;
&lt;br /&gt;
=Instructions=&lt;br /&gt;
==Components==&lt;br /&gt;
&lt;br /&gt;
* 2 x white LED ultra bright ⇒ [http://www.reichelt.de/?;ACTION=3;LA=4;GROUP=A5332;GROUPID=3019;ARTICLE=26496;START=0;SORT=artnr;OFFSET=16;SID=28SA7h56wQARwAACk@Bmsa794de820d10a89112a12211e64ae497 LED 3-2000 WS on Reichelt] (german distributor for electrical components)&lt;br /&gt;
* 2 x 75 Ohm resistors 1/4 W ⇒ [http://www.reichelt.de/?;ACTION=3;LA=4;GROUP=B1112;GROUPID=3063;ARTICLE=1466;START=0;SORT=artnr;OFFSET=16;SID=28SA7h56wQARwAACk@Bmsa794de820d10a89112a12211e64ae497 1/4W 75 Ohm resistor on Reichelt]&lt;br /&gt;
* 1 x USB mini B cable ⇒ [http://www.reichelt.de/?;ACTION=3;LA=4;GROUP=C6992;GROUPID=3348;ARTICLE=45361;START=0;SORT=artnr;OFFSET=16;SID=28SA7h56wQARwAACk@Bmsa794de820d10a89112a12211e64ae497 AK 673-A USB mini B to normal usb connector on Reichelt]&lt;br /&gt;
&lt;br /&gt;
=Schematic=&lt;br /&gt;
[[Image:Fetch.png|align|center]]&lt;br /&gt;
German Wikipedia-article about the universal serial bus ⇒ http://de.wikipedia.org/wiki/Universal_Serial_Bus#Farbkodierung_und_Pinouts&lt;br /&gt;
&lt;br /&gt;
=Preparation=&lt;br /&gt;
Cut the usb cable and seperate the rubber of the usbmini connector and remove the pins 2,3,4 (a lower risk of a short circuit). Now solder the components according to the schematic. WARNING ⇒ risk of a short circuit on the metal parts of the connector. Check the circuit without the metal part, if it works.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
[[Image:Fetch1.png|align|center|400px|thumb|'''* without the metal part of the connector''']]&lt;br /&gt;
|-&lt;br /&gt;
[[Image:Fetch2.png|align|center|400px|thumb|'''* with the metal part of the connector''']]&lt;br /&gt;
|-&lt;br /&gt;
[[Image:Fetch3.png|align|center|400px|thumb|'''* with hot glue (i know its not very beautiful, but it works, it's robust and i have no short circuit''' ;)]]&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
=Software=&lt;br /&gt;
When i searched for a good solution to activate the host-mode of the freerunner i found this blog entry&lt;br /&gt;
&lt;br /&gt;
* http://blogs.thehumanjourney.net/finds/entry/usb_host_mode_the_button&lt;br /&gt;
&lt;br /&gt;
Joseph Reeves modified his usbmode-button package after a few suggestions by me and here is his new blog-article with Version 0.2&lt;br /&gt;
&lt;br /&gt;
* http://blogs.thehumanjourney.net/finds/entry/usb_mode_button_0_2&lt;br /&gt;
&lt;br /&gt;
Thanks Joseph Reeves :D&lt;br /&gt;
&lt;br /&gt;
You can toggle the host-mode on and off with a click on the icon.&lt;br /&gt;
It works!&lt;br /&gt;
&lt;br /&gt;
==Images==&lt;br /&gt;
&lt;br /&gt;
[[Image:Fetch4.jpeg|200px|align|center]]&lt;br /&gt;
[[Image:Fetch6.jpeg|200px|align|center]]&lt;br /&gt;
&lt;br /&gt;
==Videos==&lt;br /&gt;
&lt;br /&gt;
* Freerunner in broad daylight ⇒ http://www.youtube.com/watch?v=iK5w-OHSm9g&lt;br /&gt;
* Freerunner at night ⇒ http://www.youtube.com/watch?v=f2H4QZq2xxE&lt;br /&gt;
&lt;br /&gt;
* My version ⇒ http://www.youtube.com/watch?v=-qMmwOoLiZ8 :)&lt;br /&gt;
&lt;br /&gt;
=Improvements? Ideas!=&lt;br /&gt;
&lt;br /&gt;
It works but it's not very beautiful, perhaps you have any ideas. Mail me :D&lt;br /&gt;
[[Category:Hardware ideas]]&lt;/div&gt;</summary>
		<author><name>Narmo</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Distributions</id>
		<title>Distributions</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Distributions"/>
				<updated>2008-12-02T18:39:54Z</updated>
		
		<summary type="html">&lt;p&gt;Narmo: /* Toolkits / Runtimes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Distributions}}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:right;width:200px;background-color:#FF6600;text-align:center;border-collapse:collapse;font-weight:bold&amp;quot;&lt;br /&gt;
|&amp;lt;font color=white&amp;gt;Distributions&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style='background-color:#333333;color:#FFFFFF'|&lt;br /&gt;
&amp;lt;div align=left&amp;gt;&lt;br /&gt;
* &amp;lt;font color='#BBBBBB'&amp;gt;Openmoko (official)&amp;lt;/font&amp;gt;&lt;br /&gt;
** [[Om 2008.9 Update]]&lt;br /&gt;
** [[Om 2008.8]]&lt;br /&gt;
** [[Om 2007.2]]&lt;br /&gt;
** [[OpenmokoFramework|FSO]]&lt;br /&gt;
* &amp;lt;font color='#BBBBBB'&amp;gt;Community&amp;lt;/font&amp;gt;&lt;br /&gt;
** [[SHR]]&lt;br /&gt;
** [[FDOM]]&lt;br /&gt;
* &amp;lt;font color='#BBBBBB'&amp;gt;Other&amp;lt;/font&amp;gt;&lt;br /&gt;
** [[Qtopia]]&lt;br /&gt;
** [[Debian]]&lt;br /&gt;
** [[Gentoo]]&lt;br /&gt;
** [[Android]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
Openmoko distributions are designed to run on various mobile devices, with the primary aim of supporting Openmoko Inc.'s [[GTA01:Neo 1973|Neo 1973]] and [[Neo FreeRunner]] phones. They are GNU/Linux distributions -- complete operating systems with more or less user applications. You can install any of them on your phone or even have a multiboot system with two distributions installed.&lt;br /&gt;
&lt;br /&gt;
While the Openmoko distributions will run on [[Supported devices|other mobile devices]] too, some other software distributions will also run on the Openmoko Inc. phones (see below).&lt;br /&gt;
&lt;br /&gt;
For downloads see [[Download]], for installation instructions see [[Flashing the Neo FreeRunner]].&lt;br /&gt;
&lt;br /&gt;
== About distributions ==&lt;br /&gt;
&lt;br /&gt;
=== Which distribution should I use ?===&lt;br /&gt;
* Most new users find [[FDOM]] the most comprehensive and functional distribution.&lt;br /&gt;
* If you want &amp;quot;just a phone&amp;quot;, try [[Qtopia]].&lt;br /&gt;
* If you want to develop anything that last, your platform is [[FSO]] (and the choice between EFL, GTK+, Qt, Java, Python or whatever is open).&lt;br /&gt;
* [[SHR]], [[Debian]], [[Gentoo]] and [[Android]] are for people who do not need to ask which distribution they should use.&lt;br /&gt;
* Tracking the &amp;quot;base image&amp;quot; by updating daily from testing/unstable is a different game either.&lt;br /&gt;
&lt;br /&gt;
===Status as of November 9th, 2008 ===&lt;br /&gt;
* The phones ship with [[Om 2007.2]]. It is not supported by Openmoko Inc. anymore. But community developpers continue to work on its phone stack in the [[SHR]] project.&lt;br /&gt;
* The branch currently supported by Openmoko Inc. is [[Om 2008.9 Update]], which is a minor upgrade of [[Om 2008.8]] (formerly named ASU). Based on that, the community made the [[FDOM]] distribution by adding lots of fixes and applications to it.&lt;br /&gt;
* The trunk tip is a &amp;quot;base image&amp;quot; on which the next major release should be based. This next release can be previewed by installing milestones of the [[FSO]] - Free Smartphone.Org project. The [[Debian]] packaging team also track that branch.&lt;br /&gt;
* The FreeRunner is a reference platform for TrollTech's Qt Extended (formerly [[Qtopia]]) distribution.&lt;br /&gt;
* The Android port is work-in-progress.&lt;br /&gt;
&lt;br /&gt;
=== Warnings ===&lt;br /&gt;
&lt;br /&gt;
* Stable in the FreeRunner world does not mean the same thing as stable in Debian world.&lt;br /&gt;
* Most distributions use the same bootloader, kernel, drivers and hardware. Therefore, the same low level bugs are commonly found in all distributions. The latest and greatest software usually has most bug fixes, plus a whole set of new fresh bugs.&lt;br /&gt;
* Most of these distributions also have package repositories. It is a BAD idea to feed from another distribution's repository.&lt;br /&gt;
* Upgrade path between these distributions are mostly not tested, thus updating by changing the feeds will most likely end in broken packages or even an unbootable system. It is advisable to reflash the whole filesystem with [[dfu-util]] to switch between the different distributions, with the reminder that a dual-boot setup (e.g. via sdcard or NFS) can be used.&lt;br /&gt;
&lt;br /&gt;
== Openmoko Inc. driven release targets ==&lt;br /&gt;
&lt;br /&gt;
These different 'release targets' are built out of different branches of the [[OpenEmbedded]] metadistribution source tree.&lt;br /&gt;
&lt;br /&gt;
=== Om 2008.9 ===&lt;br /&gt;
&lt;br /&gt;
The Om 2008.9 Update is the first point release after the initial Om 2008.8 release. Openmoko recommends that all existing installations of Om 2008.8 should be updated to that version. Quality-wise, we are still far from the goal, but this version includes general stability enhancing operating system improvements and a new splash screen. No applications were added or removed. Users with basic telephony needs will find it tolerable as an everyday phone.&lt;br /&gt;
&lt;br /&gt;
{{Main|Om 2008.9 Update}}&lt;br /&gt;
&lt;br /&gt;
=== Om 2008.8 ===&lt;br /&gt;
&lt;br /&gt;
Om 2008.8 was released on August 8, 2008, to replace 2007.2. Prior to that, its codename was ASU (April/August Software Update). This is still the name of the branch in the version control system. This distribution integrates the [http://trolltech.com/products/qtopia Qtopia] phone stack with a set of new Openmoko applications based on the Enlightenment Foundation Libraries. Qtopia being a more mature product than the GNOME Mobile stack, the standard phone applications (dialer, contacts, calculator, calendar) work better than in 2007.2. The Qtopia used in 2008.8 was ported to run on X11, contrary to standard Qtopia which uses the framebuffer. This allows non-Qt applications to safely share the screen with Qt applications. This is a .0 release, many unresolved issues remain in the lower layers (kernel power management, sound, wifi drivers...).&lt;br /&gt;
&lt;br /&gt;
{{Main|Om2008.8}}&lt;br /&gt;
&lt;br /&gt;
=== Om 2007.2 ===&lt;br /&gt;
&lt;br /&gt;
[[Om 2007.2]] is the base-system which is installed on FreeRunner when it leaves the factory. The interface was totally finger-oriented,  optimized for 285ppi, and very orange. It used the GTK+ stack, which is part of the [http://www.gnome.org/mobile/ GNOME Mobile] platform. This distribution is now considered obsolete and not being worked on by Openmoko Inc or by OpenedHand. There is a community effort (see [[SHR]]) to port the GTK based telephony applications to the future middleware from [[FSO]].&lt;br /&gt;
&lt;br /&gt;
{{Main|Om 2007.2}}&lt;br /&gt;
&lt;br /&gt;
=== FSO Milestone IV ===&lt;br /&gt;
&lt;br /&gt;
FSO is an abbreviation for FreeSmartphone.Org. Openmoko is working on a stable system services back-end. Focus is on stable highlevel services that you can access from whatever language or UI that supports [http://dbus.freesmartphone.org/ dbus]. The framework will be used in forthcoming Openmoko distributions. FSO is all about middleware, but if one stacks a bootloader+kernel under it and telephony applications on top, one gets a functional distribution. These are made available as FSO-image milestones. Openmoko Framework Image milestone IV was released on November 11th, 2008 and named 'Homework'. People report that despite its infancy, the phone server part in FSO is already more solid than anywhere else. The kernel under it is a Linux 2.6.24 with modules packaged separately. The telephony application on top of it is Zhone. This is a basic Python dialer/homescreen designed as scaffolding to test the FSO functionalities (even if Zhone is pretty, code path coverage is more critical to it than user-friendliness).&lt;br /&gt;
&lt;br /&gt;
{{Main|FSO}}&lt;br /&gt;
&lt;br /&gt;
== Openmoko Community driven release targets ==&lt;br /&gt;
&lt;br /&gt;
=== SHR - Stable Hybrid Release ===&lt;br /&gt;
&lt;br /&gt;
SHR is a community driven distribution. It contains some basic GTK+ based applications which make use of the FSO. There currently is a EFL (with elementary) dialer, messages and contacts application programmed in C. As of November 9th, 2008, there is no stable release of this distribution yet, as the SHR team doesn't feel it to be good enough. You can find images though on the [http://shr.bearstech.com/shr-testing SHR buildhost].&lt;br /&gt;
&lt;br /&gt;
{{Main|Stable Hybrid Release}}&lt;br /&gt;
&lt;br /&gt;
=== FDOM (FAT and Dirty Openmoko) ===&lt;br /&gt;
&lt;br /&gt;
[[FDOM]] is a distribution based on Openmoko's currently supported image, updated with many ready-to-use applications and with fixes posted in the mailing lists. A combination of applications (everything goes) and fixes to demonstrate the capabilities of the Freerunner and to have a functional phone (sort of). This all while retaining the ability to update through the official feeds.&lt;br /&gt;
&lt;br /&gt;
{{Main|FDOM}}&lt;br /&gt;
&lt;br /&gt;
== Non-Openmoko distributions ==&lt;br /&gt;
&lt;br /&gt;
These are not Openmoko (and OE) based distributions. These are alternatives you can run on your Openmoko phones.&lt;br /&gt;
&lt;br /&gt;
=== Qt Extended ===&lt;br /&gt;
&lt;br /&gt;
The Qt Extended distribution was formerly known as Qtopia up to version 4.3.x included. It comes from [http://www.trolltech.com Trolltech], a Nokia company, the makers of the Qt cross-platform application framework. This distribution aims to provide a ready-to use image for Openmoko devices. It features a noticeably robust telephony stack. Recent release 4.4.2 also sports a webkit-based web browser and Gtalk support.&lt;br /&gt;
&lt;br /&gt;
{{Main|Qtopia / Qt Extended on FreeRunner}}&lt;br /&gt;
&lt;br /&gt;
=== Debian ===&lt;br /&gt;
&lt;br /&gt;
Debian is &amp;quot;the universal operating system&amp;quot;. It comes with thousands and thousands of packages (most of them designed for desktops or servers so far). So in the words of Joachim &amp;quot;nomeata&amp;quot; Breitner from the [http://wiki.debian.org/Teams/DebianFSO pkg-fso] team, this is not really a distribution in the Openmoko sense of the word, but rather a different underlying system for Openmoko distributions. At the moment, we ship the software from the FSO stack, but hopefully we’ll also have, for example, the Stable Hybrid Release software in our archive. So for now, Debian is a different way of installing FSO, which takes more space and provides more programs :-)&lt;br /&gt;
&lt;br /&gt;
{{Main|Debian}}&lt;br /&gt;
&lt;br /&gt;
=== Gentoo ===&lt;br /&gt;
&lt;br /&gt;
Gentoo is all about choices. When installing Gentoo, this is made clear to you several times -- you can choose how much you want to compile yourself, how to install Gentoo, what system logger you want, etc. Gentoo is a fast, modern metadistribution with a clean and flexible design. Gentoo is built around free software and doesn't hide from its users what is beneath the hood. Portage, the package maintenance system which Gentoo uses, is written in Python, meaning you can easily view and modify the source code. Gentoo's packaging system uses source code (although support for precompiled packages is included too) and configuring Gentoo happens through regular textfiles. In other words, openness everywhere.&lt;br /&gt;
&lt;br /&gt;
{{Main|Gentoo}}&lt;br /&gt;
&lt;br /&gt;
=== Android ===&lt;br /&gt;
&lt;br /&gt;
Android is a mobile phone platform by Google, and later the Open Handset Alliance (OHA). Openmoko is fully supporting Android running on the Freerunner. Details along with images are being constructed at the moment. Visit the user web page for [http://wiki.openmoko.org/wiki/User:Seanmcneil3 Sean McNeil] for further details. And you can download kernel and image [http://people.openmoko.org/sean_mcneil/ here].&lt;br /&gt;
&lt;br /&gt;
{{Main|Android}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hackable:1===&lt;br /&gt;
Hackable1 is a community distribution for hackable devices like the Neo Freerunner. It is based on Debian and implements the GNOME mobile platform. &lt;br /&gt;
{{Main|Hackable:1}}&lt;br /&gt;
&lt;br /&gt;
=== Others / unreleased ===&lt;br /&gt;
&lt;br /&gt;
* The [http://www.neopwn.com/software.php NeoPwn] network auditng system's core is a modified Linux 2.6.24 kernel, with cross-compiled module driver support for the numerous compatible addon devices running on a FULL Debian (ARMEL) operating system. The filesystem has been optimized for performance and size and includes the NeoPwn menu system and several GUI dialogs for hardware control and attack automation. ''Status: Unknown, the GPL requires source code to be distributed only to customers''.&lt;br /&gt;
* [http://runningbear.org/trac RunningBear] is an innovating yet free and open-source Operating System for hackable devices driven by Bearstech. Lightweight, Portable, Secure, Friendly and Useful. ''Status: In development''.&lt;br /&gt;
* [[Hackable:1|Hackable1]] is a community distribution for hackable devices like the Neo Freerunner. It is based on Debian and implements the GNOME mobile platform. ''Status: In development. Link with RunningBear to be clarified.''&lt;br /&gt;
* [http://pokylinux.org/ Poky] and Sato, by OpenedHand/Intel. An open source platform build tool derived from OE. It is a complete software development environment for the creation of Linux devices. It enables you to design, develop, build, debug, and test a complete, modern, software stack using Linux, the X Window System and GNOME Mobile based application frameworks for both ARM and x86 based platforms. ''Status: Not sure if it ever ran on the FreeRunner, but it surely could if they wanted.''&lt;br /&gt;
* [http://pyneo.org/ PyNeo] lead dev writes that Mickey Lauer gave the whole pyneo stack and his work to build a flashable image the name &amp;quot;moko underground&amp;quot;. This was an alias for pyneo at that moment. He then started his own stack using most of the technics &amp;amp; architecture, library &amp;amp; language choices used in pyneo. ''Status: still active, ask around on #neo1973-germany ''&lt;br /&gt;
* [http://www.quantum-step.com/ mySTEP] by Openmoko distributor Golden Delicious Computers is based on GNUstep and brings a Objective-C API to the Neo. Core GUI frameworks are &amp;quot;Foundation&amp;quot; &amp;amp; &amp;quot;AppKit&amp;quot;. It has been shown on FOSDEM 2008, LinuxTag 2008 and SYSTEMS 2008 to run on the Neo 1973. If someone reengineers UIKit, (open) source code compatibility to iPhone apps appears achievable. ''Status: it does not have its own kernel so a Freerunner distribution waits for a solid basis and an arm-linux-gnueabi toolchain that runs natively on Mac OS X is currently lacking.''&lt;br /&gt;
&lt;br /&gt;
== Features by distribution/release target ==&lt;br /&gt;
&lt;br /&gt;
Generally, distributions can differ on one or more of the following components:&lt;br /&gt;
* The bootsplash screen image. This is purely decorative.&lt;br /&gt;
* The bootloader. Theoretically, any version of ''uboot'' could be used with any distribution. In the future ''Qi'' will replace ''uboot''.&lt;br /&gt;
* The kernel. GNU/Linux kernels versions 2.6.24, 2.6.26 or 2.6.28 can be found. Some have modules compiled in, others have modules compiled separately. If compiled separately, modules can be distributed in the same package file as the kernel or separately.&lt;br /&gt;
* Middleware: daemons to handle GSM calls or GPS, sound system, personal information storage and so on. Qt and Android have their own subsystems, FreeSmartphone.Org (FSO) is working towards a standard-based Free Software one.&lt;br /&gt;
* Display driver. The original ''Qt Extended'' uses the framebuffer, most other distributions today use ''X11''.&lt;br /&gt;
* Libraries and application framework (widget toolkit and  and graphical environment) : EFL, Qt, Gtk+ or Java ?&lt;br /&gt;
* Basic telephony applications: voice calls, SMS, alarm clock...&lt;br /&gt;
* Smartphone applications: GPS, media player, simple games, web browser...&lt;br /&gt;
* Open source applications: more games, scientific, you name it...&lt;br /&gt;
&lt;br /&gt;
=== Connectivity ===&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; width=100%&lt;br /&gt;
! width=10%| !! width=9%|Om 2008.9 !! width=9%|Om 2008.8 !! width=9%|Om 2007.2 !! width=9%|FSO !! width=9%|SHR !! width=9%|FDOM !! width=9%|Qt Extended !! width=9%|Debian !! width=9%|Gentoo !! width=9%|Android&lt;br /&gt;
|-&lt;br /&gt;
| Telephony || ??         || {{Yes}}        || {{Yes}}       || {{Yes}}        || {{Yes}}        || {{Yes}}         || {{Yes}}     || {{Yes}} (1) || ??         || {{no}}&lt;br /&gt;
|-&lt;br /&gt;
| SMS       || ??         || {{Yes}}        || {{Yes}}       || {{Yes}}        || {{Yes}}        || {{Yes}}         || {{Yes}}     || {{Yes}} (1) || ??         || {{no}}&lt;br /&gt;
|-&lt;br /&gt;
| [[GPRS]]  || ??         || Not through UI || Not through UI|| Not through UI || Not through UI || ??         || {{Yes}}     || {{Yes}} (1) || ??         || {{no}}&lt;br /&gt;
|-&lt;br /&gt;
| WiFi      || ??         || {{Yes}} (*)    || {{Yes}}       || Not through UI || {{Yes}}        || {{Yes}}         || {{Yes}}     || {{Yes}}     || ??         || {{no}}&lt;br /&gt;
|-&lt;br /&gt;
| VoIP      || ??         || ??             || ??            || ??             || ??             || {{Yes}}         || {{Yes}} (1)          || {{Yes}}     || ??         || {{no}}&lt;br /&gt;
|-&lt;br /&gt;
| Bluetooth || ??         || {{Yes}}        || {{Yes}}       || {{No}}         || ??             || {{Yes}}         || {{Yes}}     || {{Yes}}     || ??         || {{Yes}}&lt;br /&gt;
|-&lt;br /&gt;
| GPS (1)   || ??         || {{Yes}} (1)    || {{Yes}}       || {{Yes}}        || {{Yes}}        || {{Yes}}         || {{Yes}} || {{Yes}} (1) || ??         || {{Yes}}&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===  User Interaction ===&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; width=100%&lt;br /&gt;
! width=10%|      !! width=9%|Om 2008.9 !! width=9%|Om2008.8        !! width=9%|2007.2 !! width=9%|FSO !! width=9%|SHR !! width=9%|FDOM !! width=9%|Qt Extended !! width=9%|Debian !! width=9%|Gentoo !! width=9%|Android&lt;br /&gt;
|-&lt;br /&gt;
| Stylus friendly || ??                 || {{Yes}}                  || {{Yes}}         || {{Yes}}      || {{Yes}}      || {{Yes}} || {{Yes}}              || {{Yes}} || ?? || {{Yes}}&lt;br /&gt;
|-&lt;br /&gt;
| Finger friendly || ??                 || Partially                || Partially       || Partially    || {{Yes}}      || {{Yes}} || {{Yes}}              || {{No}} || ?? || {{Yes}}&lt;br /&gt;
|-&lt;br /&gt;
| Accelerometer   || ??                 || {{Yes}} [[Gestures|(1)]] || {{No}}          || {{No}}       || {{No}}       || {{Yes}} || {{No}}               || {{Yes}} || ?? || {{Yes}}&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Applications ===&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; width=100%&lt;br /&gt;
! width=10%| !! width=9%|Om 2008.9 !! width=9%|Om2008.8 !! width=9%|2007.2 !! width=9%|FSO !! width=9%|SHR !! width=9%|FDOM !! width=9%|Qt Extended !! width=9%|Debian !! width=9%|Gentoo !! width=9%|Android&lt;br /&gt;
|-&lt;br /&gt;
| Terminal     || ?? || {{Yes}} (1)                       || Basic (2)   || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}}          || ?? || ??&lt;br /&gt;
|-&lt;br /&gt;
| PIM          || ?? || {{Yes}}                           || {{Yes}}     || {{No}}  || N/A     || ?? || {{Yes}} || {{Yes}} (1)      || ?? || ??&lt;br /&gt;
|-&lt;br /&gt;
| Phonebook    || ?? || {{Yes}}                           || {{Yes}}     || {{Yes}} || {{Yes}}     || ?? || {{Yes}} || {{Yes}} (1)      || ?? || {{Yes}}&lt;br /&gt;
|-&lt;br /&gt;
| Dialer       || ?? || {{Yes}}                           || {{Yes}}     || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} (1)      || ?? || {{Yes}}&lt;br /&gt;
|-&lt;br /&gt;
| Web Browser  || ?? || {{Yes}} (1)                       || {{Yes}} (1) || ?       || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} (1) || ?? || {{Yes}}&lt;br /&gt;
|-&lt;br /&gt;
| Mail Client  || ?? || {{Yes}}                           || ?           || ?       || ?       || ?? || {{Yes}} || {{Yes}} (1)      || ?? || {{Yes}}&lt;br /&gt;
|-&lt;br /&gt;
| XMPP Client  || ?? || {{Yes}} [[Instant Messaging|(1)]] || {{Yes}} (1) || ?       || ?       || ?? || {{Yes}}  || {{Yes}} (1)      ||  || ??&lt;br /&gt;
|-&lt;br /&gt;
| Media Player || ?? || {{Yes}} (1)                       || {{Yes}}     || ?       || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} (1)      || ?? || {{Yes}}&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Toolkits / Runtimes ===&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
! width=10%| !! width=9%|Om 2008.9 !! width=9%|Om2008.8 !! width=9%|2007.2 !! width=9%|FSO !! width=9%|SHR !! width=9%|FDOM !! width=9%|Qt Extended !! width=9%|Debian !! width=9%|Gentoo !! width=9%|Android&lt;br /&gt;
|-&lt;br /&gt;
| GTK+           || ?? || {{Yes}}        || {{Yes}}        || {{Yes}}        || {{Yes}}  || ?? || {{No}}      || {{Yes}}                || ?? || ??&lt;br /&gt;
|-&lt;br /&gt;
| Qt/Qt Extended || ?? || {{Yes}}        || {{No}}         || {{Yes}} ?      || {{Yes}}? || ?? || {{Yes}}     || {{Yes}}                || ?? || ??&lt;br /&gt;
|-&lt;br /&gt;
| Middleware     || ?? || qtopia-x11     || gsmd/neod      || FSO            || FSO      || ?? || Qt Extended || FSO                    || ?? || ??&lt;br /&gt;
|-&lt;br /&gt;
| [[Java]]       || ?? || {{Yes|Jalimo}} || {{Yes|Jalimo}} || {{Yes|Jalimo}} || {{Yes|Jalimo}}  || ?? || ??          || {{Yes|CacaoVM, JamVM}} || ?? || ??&lt;br /&gt;
|-&lt;br /&gt;
| [[Python]]     || ?? || {{Yes}}        || {{Yes}}        || {{Yes}}        || {{yes}}  || ?? || {{Yes}}     || {{Yes}}                || ?? || ??&lt;br /&gt;
|-&lt;br /&gt;
| [[Mono]]       || ?? || {{Yes}} (1)    || {{Yes}} (1)    || ??             || {{no}}   || ?? || ??          || {{Yes}} (1)            || ?? || ??&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Images ===&lt;br /&gt;
Latest and stable combinations for Neo FreeRunner gta02&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
| || OM || FDOM || Qt Extended || Android&lt;br /&gt;
|-&lt;br /&gt;
| current bootloader || [[U-boot|U-Boot]] from [http://downloads.openmoko.org/daily/ OM daily] version [http://downloads.openmoko.org/daily/gta02v5_and_up-u-boot.bin gta02v5_and_up] || [[U-boot|U-Boot]] from [http://downloads.openmoko.org/daily/ OM daily] version [http://downloads.openmoko.org/daily/gta02v5_and_up-u-boot.bin gta02v5_and_up] || [[U-boot|U-Boot]] from [http://downloads.openmoko.org/daily/ OM daily] version [http://downloads.openmoko.org/daily/gta02v5_and_up-u-boot.bin gta02v5_and_up] ||&lt;br /&gt;
|-&lt;br /&gt;
| future bootloader || [[Qi]] from [http://people.openmoko.org/andy/ Andy] latest qi-andy.udfu || [[Qi]] from [http://people.openmoko.org/andy/ Andy] latest qi-andy.udfu || [[Qi]] from [http://people.openmoko.org/andy/ Andy] latest qi-andy.udfu ||&lt;br /&gt;
|-&lt;br /&gt;
| splash || [[Configuring_the_boot_splash_screens|U-Boot]] from [http://downloads.openmoko.org/releases/ OM releases] or [http://downloads.openmoko.org/daily/ OM daily] latest splash.gz || [[Configuring_the_boot_splash_screens|U-Boot]] from [http://downloads.openmoko.org/releases/ OM releases] or [http://downloads.openmoko.org/daily/ OM daily] latest splash.gz || [[Configuring_the_boot_splash_screens|U-Boot]] from [http://downloads.openmoko.org/releases/ OM releases] or [http://downloads.openmoko.org/daily/ OM daily] latest splash.gz ||&lt;br /&gt;
|-&lt;br /&gt;
| kernel || [[Linux]] from [http://downloads.openmoko.org/releases/ OM releases] or [http://downloads.openmoko.org/daily/ OM daily] latest uImage.bin || [[Linux]] from [http://moko.mwester.net/download/ mwester] latest uImage-gta02-mwester-stable.bin or from [http://downloads.tuxfamily.org/3v1deb/openmoko/ treviño] latest uImage-gta02-stable-3v1n0.bin || [[Linux]] from [http://moko.mwester.net/download/ mwester] latest uImage-gta02-mwester-stable.bin or from [http://downloads.tuxfamily.org/3v1deb/openmoko/ treviño] latest uImage-gta02-stable-3v1n0.bin || [[Linux]] from [http://wiki.openmoko.org/wiki/User:Seanmcneil3 McNiel] version [http://people.openmoko.org/sean_mcneil/uImage-android 2.6.26-android]&lt;br /&gt;
|-&lt;br /&gt;
| modules || ? || [[Linux]] from [http://moko.mwester.net/download/ mwester] latest modules-min-gta02-mwester-stable.tgz or modules-all-gta02-mwester-stable.tgz || [[Linux]] from [http://moko.mwester.net/download/ mwester] latest modules-min-gta02-mwester-stable.tgz or modules-all-gta02-mwester-stable.tgz ||&lt;br /&gt;
|-&lt;br /&gt;
| rootfs || [[Main_Page|OM]] from [http://downloads.openmoko.org/releases/ OM releases] or [http://downloads.openmoko.org/daily/ OM daily] latest rootfs.jffs2 || [[FDOM]] from [ftp://ftp.tuxbrain.com/openmoko/fdom/releases/ TuxBrain] version [ftp://ftp.tuxbrain.com/openmoko/fdom/releases/Fat_and_Dirty_OM.200809_20081023.rootfs.jff2 200809_20081023] || [[Qtopia_/_Qt_Extended_on_FreeRunner|QtExtended]] from [http://qtextended.org/modules/mydownloads/viewcat.php?cid=6 TrollTech] latest qtextended-gta02-flash.tgz or from [http://other.lastnetwork.net/OpenMoko/ Hypnotize] latest qtextended-gta02-rootfs-release-working.jffs2 || [[Android]] from [http://wiki.openmoko.org/wiki/User:Seanmcneil3 McNiel] version [http://people.openmoko.org/sean_mcneil/androidfs.jffs2 android]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Footnotes:&lt;br /&gt;
&lt;br /&gt;
(1) works, but need additional software to be installed&lt;br /&gt;
&lt;br /&gt;
(2) unusable due to lack of certain keyboard characters. [[Switching_Keyboards#Matchbox_keyboard|Various fixes available.]]&lt;br /&gt;
&lt;br /&gt;
(*) unstable&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* Mickey Lauer's post &amp;quot;[http://www.vanille-media.de/site/index.php/2008/06/28/gtk-asu-fso-tmtla/ GTK, ASU, FSO, TMTLA!]&amp;quot; describes the differences between distributions 2007.2, ASU and FSO.&lt;br /&gt;
&lt;br /&gt;
[[Category:Distributions|*]]&lt;/div&gt;</summary>
		<author><name>Narmo</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Distributions</id>
		<title>Distributions</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Distributions"/>
				<updated>2008-12-02T18:39:42Z</updated>
		
		<summary type="html">&lt;p&gt;Narmo: /* Applications */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Distributions}}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:right;width:200px;background-color:#FF6600;text-align:center;border-collapse:collapse;font-weight:bold&amp;quot;&lt;br /&gt;
|&amp;lt;font color=white&amp;gt;Distributions&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style='background-color:#333333;color:#FFFFFF'|&lt;br /&gt;
&amp;lt;div align=left&amp;gt;&lt;br /&gt;
* &amp;lt;font color='#BBBBBB'&amp;gt;Openmoko (official)&amp;lt;/font&amp;gt;&lt;br /&gt;
** [[Om 2008.9 Update]]&lt;br /&gt;
** [[Om 2008.8]]&lt;br /&gt;
** [[Om 2007.2]]&lt;br /&gt;
** [[OpenmokoFramework|FSO]]&lt;br /&gt;
* &amp;lt;font color='#BBBBBB'&amp;gt;Community&amp;lt;/font&amp;gt;&lt;br /&gt;
** [[SHR]]&lt;br /&gt;
** [[FDOM]]&lt;br /&gt;
* &amp;lt;font color='#BBBBBB'&amp;gt;Other&amp;lt;/font&amp;gt;&lt;br /&gt;
** [[Qtopia]]&lt;br /&gt;
** [[Debian]]&lt;br /&gt;
** [[Gentoo]]&lt;br /&gt;
** [[Android]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
Openmoko distributions are designed to run on various mobile devices, with the primary aim of supporting Openmoko Inc.'s [[GTA01:Neo 1973|Neo 1973]] and [[Neo FreeRunner]] phones. They are GNU/Linux distributions -- complete operating systems with more or less user applications. You can install any of them on your phone or even have a multiboot system with two distributions installed.&lt;br /&gt;
&lt;br /&gt;
While the Openmoko distributions will run on [[Supported devices|other mobile devices]] too, some other software distributions will also run on the Openmoko Inc. phones (see below).&lt;br /&gt;
&lt;br /&gt;
For downloads see [[Download]], for installation instructions see [[Flashing the Neo FreeRunner]].&lt;br /&gt;
&lt;br /&gt;
== About distributions ==&lt;br /&gt;
&lt;br /&gt;
=== Which distribution should I use ?===&lt;br /&gt;
* Most new users find [[FDOM]] the most comprehensive and functional distribution.&lt;br /&gt;
* If you want &amp;quot;just a phone&amp;quot;, try [[Qtopia]].&lt;br /&gt;
* If you want to develop anything that last, your platform is [[FSO]] (and the choice between EFL, GTK+, Qt, Java, Python or whatever is open).&lt;br /&gt;
* [[SHR]], [[Debian]], [[Gentoo]] and [[Android]] are for people who do not need to ask which distribution they should use.&lt;br /&gt;
* Tracking the &amp;quot;base image&amp;quot; by updating daily from testing/unstable is a different game either.&lt;br /&gt;
&lt;br /&gt;
===Status as of November 9th, 2008 ===&lt;br /&gt;
* The phones ship with [[Om 2007.2]]. It is not supported by Openmoko Inc. anymore. But community developpers continue to work on its phone stack in the [[SHR]] project.&lt;br /&gt;
* The branch currently supported by Openmoko Inc. is [[Om 2008.9 Update]], which is a minor upgrade of [[Om 2008.8]] (formerly named ASU). Based on that, the community made the [[FDOM]] distribution by adding lots of fixes and applications to it.&lt;br /&gt;
* The trunk tip is a &amp;quot;base image&amp;quot; on which the next major release should be based. This next release can be previewed by installing milestones of the [[FSO]] - Free Smartphone.Org project. The [[Debian]] packaging team also track that branch.&lt;br /&gt;
* The FreeRunner is a reference platform for TrollTech's Qt Extended (formerly [[Qtopia]]) distribution.&lt;br /&gt;
* The Android port is work-in-progress.&lt;br /&gt;
&lt;br /&gt;
=== Warnings ===&lt;br /&gt;
&lt;br /&gt;
* Stable in the FreeRunner world does not mean the same thing as stable in Debian world.&lt;br /&gt;
* Most distributions use the same bootloader, kernel, drivers and hardware. Therefore, the same low level bugs are commonly found in all distributions. The latest and greatest software usually has most bug fixes, plus a whole set of new fresh bugs.&lt;br /&gt;
* Most of these distributions also have package repositories. It is a BAD idea to feed from another distribution's repository.&lt;br /&gt;
* Upgrade path between these distributions are mostly not tested, thus updating by changing the feeds will most likely end in broken packages or even an unbootable system. It is advisable to reflash the whole filesystem with [[dfu-util]] to switch between the different distributions, with the reminder that a dual-boot setup (e.g. via sdcard or NFS) can be used.&lt;br /&gt;
&lt;br /&gt;
== Openmoko Inc. driven release targets ==&lt;br /&gt;
&lt;br /&gt;
These different 'release targets' are built out of different branches of the [[OpenEmbedded]] metadistribution source tree.&lt;br /&gt;
&lt;br /&gt;
=== Om 2008.9 ===&lt;br /&gt;
&lt;br /&gt;
The Om 2008.9 Update is the first point release after the initial Om 2008.8 release. Openmoko recommends that all existing installations of Om 2008.8 should be updated to that version. Quality-wise, we are still far from the goal, but this version includes general stability enhancing operating system improvements and a new splash screen. No applications were added or removed. Users with basic telephony needs will find it tolerable as an everyday phone.&lt;br /&gt;
&lt;br /&gt;
{{Main|Om 2008.9 Update}}&lt;br /&gt;
&lt;br /&gt;
=== Om 2008.8 ===&lt;br /&gt;
&lt;br /&gt;
Om 2008.8 was released on August 8, 2008, to replace 2007.2. Prior to that, its codename was ASU (April/August Software Update). This is still the name of the branch in the version control system. This distribution integrates the [http://trolltech.com/products/qtopia Qtopia] phone stack with a set of new Openmoko applications based on the Enlightenment Foundation Libraries. Qtopia being a more mature product than the GNOME Mobile stack, the standard phone applications (dialer, contacts, calculator, calendar) work better than in 2007.2. The Qtopia used in 2008.8 was ported to run on X11, contrary to standard Qtopia which uses the framebuffer. This allows non-Qt applications to safely share the screen with Qt applications. This is a .0 release, many unresolved issues remain in the lower layers (kernel power management, sound, wifi drivers...).&lt;br /&gt;
&lt;br /&gt;
{{Main|Om2008.8}}&lt;br /&gt;
&lt;br /&gt;
=== Om 2007.2 ===&lt;br /&gt;
&lt;br /&gt;
[[Om 2007.2]] is the base-system which is installed on FreeRunner when it leaves the factory. The interface was totally finger-oriented,  optimized for 285ppi, and very orange. It used the GTK+ stack, which is part of the [http://www.gnome.org/mobile/ GNOME Mobile] platform. This distribution is now considered obsolete and not being worked on by Openmoko Inc or by OpenedHand. There is a community effort (see [[SHR]]) to port the GTK based telephony applications to the future middleware from [[FSO]].&lt;br /&gt;
&lt;br /&gt;
{{Main|Om 2007.2}}&lt;br /&gt;
&lt;br /&gt;
=== FSO Milestone IV ===&lt;br /&gt;
&lt;br /&gt;
FSO is an abbreviation for FreeSmartphone.Org. Openmoko is working on a stable system services back-end. Focus is on stable highlevel services that you can access from whatever language or UI that supports [http://dbus.freesmartphone.org/ dbus]. The framework will be used in forthcoming Openmoko distributions. FSO is all about middleware, but if one stacks a bootloader+kernel under it and telephony applications on top, one gets a functional distribution. These are made available as FSO-image milestones. Openmoko Framework Image milestone IV was released on November 11th, 2008 and named 'Homework'. People report that despite its infancy, the phone server part in FSO is already more solid than anywhere else. The kernel under it is a Linux 2.6.24 with modules packaged separately. The telephony application on top of it is Zhone. This is a basic Python dialer/homescreen designed as scaffolding to test the FSO functionalities (even if Zhone is pretty, code path coverage is more critical to it than user-friendliness).&lt;br /&gt;
&lt;br /&gt;
{{Main|FSO}}&lt;br /&gt;
&lt;br /&gt;
== Openmoko Community driven release targets ==&lt;br /&gt;
&lt;br /&gt;
=== SHR - Stable Hybrid Release ===&lt;br /&gt;
&lt;br /&gt;
SHR is a community driven distribution. It contains some basic GTK+ based applications which make use of the FSO. There currently is a EFL (with elementary) dialer, messages and contacts application programmed in C. As of November 9th, 2008, there is no stable release of this distribution yet, as the SHR team doesn't feel it to be good enough. You can find images though on the [http://shr.bearstech.com/shr-testing SHR buildhost].&lt;br /&gt;
&lt;br /&gt;
{{Main|Stable Hybrid Release}}&lt;br /&gt;
&lt;br /&gt;
=== FDOM (FAT and Dirty Openmoko) ===&lt;br /&gt;
&lt;br /&gt;
[[FDOM]] is a distribution based on Openmoko's currently supported image, updated with many ready-to-use applications and with fixes posted in the mailing lists. A combination of applications (everything goes) and fixes to demonstrate the capabilities of the Freerunner and to have a functional phone (sort of). This all while retaining the ability to update through the official feeds.&lt;br /&gt;
&lt;br /&gt;
{{Main|FDOM}}&lt;br /&gt;
&lt;br /&gt;
== Non-Openmoko distributions ==&lt;br /&gt;
&lt;br /&gt;
These are not Openmoko (and OE) based distributions. These are alternatives you can run on your Openmoko phones.&lt;br /&gt;
&lt;br /&gt;
=== Qt Extended ===&lt;br /&gt;
&lt;br /&gt;
The Qt Extended distribution was formerly known as Qtopia up to version 4.3.x included. It comes from [http://www.trolltech.com Trolltech], a Nokia company, the makers of the Qt cross-platform application framework. This distribution aims to provide a ready-to use image for Openmoko devices. It features a noticeably robust telephony stack. Recent release 4.4.2 also sports a webkit-based web browser and Gtalk support.&lt;br /&gt;
&lt;br /&gt;
{{Main|Qtopia / Qt Extended on FreeRunner}}&lt;br /&gt;
&lt;br /&gt;
=== Debian ===&lt;br /&gt;
&lt;br /&gt;
Debian is &amp;quot;the universal operating system&amp;quot;. It comes with thousands and thousands of packages (most of them designed for desktops or servers so far). So in the words of Joachim &amp;quot;nomeata&amp;quot; Breitner from the [http://wiki.debian.org/Teams/DebianFSO pkg-fso] team, this is not really a distribution in the Openmoko sense of the word, but rather a different underlying system for Openmoko distributions. At the moment, we ship the software from the FSO stack, but hopefully we’ll also have, for example, the Stable Hybrid Release software in our archive. So for now, Debian is a different way of installing FSO, which takes more space and provides more programs :-)&lt;br /&gt;
&lt;br /&gt;
{{Main|Debian}}&lt;br /&gt;
&lt;br /&gt;
=== Gentoo ===&lt;br /&gt;
&lt;br /&gt;
Gentoo is all about choices. When installing Gentoo, this is made clear to you several times -- you can choose how much you want to compile yourself, how to install Gentoo, what system logger you want, etc. Gentoo is a fast, modern metadistribution with a clean and flexible design. Gentoo is built around free software and doesn't hide from its users what is beneath the hood. Portage, the package maintenance system which Gentoo uses, is written in Python, meaning you can easily view and modify the source code. Gentoo's packaging system uses source code (although support for precompiled packages is included too) and configuring Gentoo happens through regular textfiles. In other words, openness everywhere.&lt;br /&gt;
&lt;br /&gt;
{{Main|Gentoo}}&lt;br /&gt;
&lt;br /&gt;
=== Android ===&lt;br /&gt;
&lt;br /&gt;
Android is a mobile phone platform by Google, and later the Open Handset Alliance (OHA). Openmoko is fully supporting Android running on the Freerunner. Details along with images are being constructed at the moment. Visit the user web page for [http://wiki.openmoko.org/wiki/User:Seanmcneil3 Sean McNeil] for further details. And you can download kernel and image [http://people.openmoko.org/sean_mcneil/ here].&lt;br /&gt;
&lt;br /&gt;
{{Main|Android}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hackable:1===&lt;br /&gt;
Hackable1 is a community distribution for hackable devices like the Neo Freerunner. It is based on Debian and implements the GNOME mobile platform. &lt;br /&gt;
{{Main|Hackable:1}}&lt;br /&gt;
&lt;br /&gt;
=== Others / unreleased ===&lt;br /&gt;
&lt;br /&gt;
* The [http://www.neopwn.com/software.php NeoPwn] network auditng system's core is a modified Linux 2.6.24 kernel, with cross-compiled module driver support for the numerous compatible addon devices running on a FULL Debian (ARMEL) operating system. The filesystem has been optimized for performance and size and includes the NeoPwn menu system and several GUI dialogs for hardware control and attack automation. ''Status: Unknown, the GPL requires source code to be distributed only to customers''.&lt;br /&gt;
* [http://runningbear.org/trac RunningBear] is an innovating yet free and open-source Operating System for hackable devices driven by Bearstech. Lightweight, Portable, Secure, Friendly and Useful. ''Status: In development''.&lt;br /&gt;
* [[Hackable:1|Hackable1]] is a community distribution for hackable devices like the Neo Freerunner. It is based on Debian and implements the GNOME mobile platform. ''Status: In development. Link with RunningBear to be clarified.''&lt;br /&gt;
* [http://pokylinux.org/ Poky] and Sato, by OpenedHand/Intel. An open source platform build tool derived from OE. It is a complete software development environment for the creation of Linux devices. It enables you to design, develop, build, debug, and test a complete, modern, software stack using Linux, the X Window System and GNOME Mobile based application frameworks for both ARM and x86 based platforms. ''Status: Not sure if it ever ran on the FreeRunner, but it surely could if they wanted.''&lt;br /&gt;
* [http://pyneo.org/ PyNeo] lead dev writes that Mickey Lauer gave the whole pyneo stack and his work to build a flashable image the name &amp;quot;moko underground&amp;quot;. This was an alias for pyneo at that moment. He then started his own stack using most of the technics &amp;amp; architecture, library &amp;amp; language choices used in pyneo. ''Status: still active, ask around on #neo1973-germany ''&lt;br /&gt;
* [http://www.quantum-step.com/ mySTEP] by Openmoko distributor Golden Delicious Computers is based on GNUstep and brings a Objective-C API to the Neo. Core GUI frameworks are &amp;quot;Foundation&amp;quot; &amp;amp; &amp;quot;AppKit&amp;quot;. It has been shown on FOSDEM 2008, LinuxTag 2008 and SYSTEMS 2008 to run on the Neo 1973. If someone reengineers UIKit, (open) source code compatibility to iPhone apps appears achievable. ''Status: it does not have its own kernel so a Freerunner distribution waits for a solid basis and an arm-linux-gnueabi toolchain that runs natively on Mac OS X is currently lacking.''&lt;br /&gt;
&lt;br /&gt;
== Features by distribution/release target ==&lt;br /&gt;
&lt;br /&gt;
Generally, distributions can differ on one or more of the following components:&lt;br /&gt;
* The bootsplash screen image. This is purely decorative.&lt;br /&gt;
* The bootloader. Theoretically, any version of ''uboot'' could be used with any distribution. In the future ''Qi'' will replace ''uboot''.&lt;br /&gt;
* The kernel. GNU/Linux kernels versions 2.6.24, 2.6.26 or 2.6.28 can be found. Some have modules compiled in, others have modules compiled separately. If compiled separately, modules can be distributed in the same package file as the kernel or separately.&lt;br /&gt;
* Middleware: daemons to handle GSM calls or GPS, sound system, personal information storage and so on. Qt and Android have their own subsystems, FreeSmartphone.Org (FSO) is working towards a standard-based Free Software one.&lt;br /&gt;
* Display driver. The original ''Qt Extended'' uses the framebuffer, most other distributions today use ''X11''.&lt;br /&gt;
* Libraries and application framework (widget toolkit and  and graphical environment) : EFL, Qt, Gtk+ or Java ?&lt;br /&gt;
* Basic telephony applications: voice calls, SMS, alarm clock...&lt;br /&gt;
* Smartphone applications: GPS, media player, simple games, web browser...&lt;br /&gt;
* Open source applications: more games, scientific, you name it...&lt;br /&gt;
&lt;br /&gt;
=== Connectivity ===&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; width=100%&lt;br /&gt;
! width=10%| !! width=9%|Om 2008.9 !! width=9%|Om 2008.8 !! width=9%|Om 2007.2 !! width=9%|FSO !! width=9%|SHR !! width=9%|FDOM !! width=9%|Qt Extended !! width=9%|Debian !! width=9%|Gentoo !! width=9%|Android&lt;br /&gt;
|-&lt;br /&gt;
| Telephony || ??         || {{Yes}}        || {{Yes}}       || {{Yes}}        || {{Yes}}        || {{Yes}}         || {{Yes}}     || {{Yes}} (1) || ??         || {{no}}&lt;br /&gt;
|-&lt;br /&gt;
| SMS       || ??         || {{Yes}}        || {{Yes}}       || {{Yes}}        || {{Yes}}        || {{Yes}}         || {{Yes}}     || {{Yes}} (1) || ??         || {{no}}&lt;br /&gt;
|-&lt;br /&gt;
| [[GPRS]]  || ??         || Not through UI || Not through UI|| Not through UI || Not through UI || ??         || {{Yes}}     || {{Yes}} (1) || ??         || {{no}}&lt;br /&gt;
|-&lt;br /&gt;
| WiFi      || ??         || {{Yes}} (*)    || {{Yes}}       || Not through UI || {{Yes}}        || {{Yes}}         || {{Yes}}     || {{Yes}}     || ??         || {{no}}&lt;br /&gt;
|-&lt;br /&gt;
| VoIP      || ??         || ??             || ??            || ??             || ??             || {{Yes}}         || {{Yes}} (1)          || {{Yes}}     || ??         || {{no}}&lt;br /&gt;
|-&lt;br /&gt;
| Bluetooth || ??         || {{Yes}}        || {{Yes}}       || {{No}}         || ??             || {{Yes}}         || {{Yes}}     || {{Yes}}     || ??         || {{Yes}}&lt;br /&gt;
|-&lt;br /&gt;
| GPS (1)   || ??         || {{Yes}} (1)    || {{Yes}}       || {{Yes}}        || {{Yes}}        || {{Yes}}         || {{Yes}} || {{Yes}} (1) || ??         || {{Yes}}&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===  User Interaction ===&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; width=100%&lt;br /&gt;
! width=10%|      !! width=9%|Om 2008.9 !! width=9%|Om2008.8        !! width=9%|2007.2 !! width=9%|FSO !! width=9%|SHR !! width=9%|FDOM !! width=9%|Qt Extended !! width=9%|Debian !! width=9%|Gentoo !! width=9%|Android&lt;br /&gt;
|-&lt;br /&gt;
| Stylus friendly || ??                 || {{Yes}}                  || {{Yes}}         || {{Yes}}      || {{Yes}}      || {{Yes}} || {{Yes}}              || {{Yes}} || ?? || {{Yes}}&lt;br /&gt;
|-&lt;br /&gt;
| Finger friendly || ??                 || Partially                || Partially       || Partially    || {{Yes}}      || {{Yes}} || {{Yes}}              || {{No}} || ?? || {{Yes}}&lt;br /&gt;
|-&lt;br /&gt;
| Accelerometer   || ??                 || {{Yes}} [[Gestures|(1)]] || {{No}}          || {{No}}       || {{No}}       || {{Yes}} || {{No}}               || {{Yes}} || ?? || {{Yes}}&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Applications ===&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; width=100%&lt;br /&gt;
! width=10%| !! width=9%|Om 2008.9 !! width=9%|Om2008.8 !! width=9%|2007.2 !! width=9%|FSO !! width=9%|SHR !! width=9%|FDOM !! width=9%|Qt Extended !! width=9%|Debian !! width=9%|Gentoo !! width=9%|Android&lt;br /&gt;
|-&lt;br /&gt;
| Terminal     || ?? || {{Yes}} (1)                       || Basic (2)   || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}}          || ?? || ??&lt;br /&gt;
|-&lt;br /&gt;
| PIM          || ?? || {{Yes}}                           || {{Yes}}     || {{No}}  || N/A     || ?? || {{Yes}} || {{Yes}} (1)      || ?? || ??&lt;br /&gt;
|-&lt;br /&gt;
| Phonebook    || ?? || {{Yes}}                           || {{Yes}}     || {{Yes}} || {{Yes}}     || ?? || {{Yes}} || {{Yes}} (1)      || ?? || {{Yes}}&lt;br /&gt;
|-&lt;br /&gt;
| Dialer       || ?? || {{Yes}}                           || {{Yes}}     || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} (1)      || ?? || {{Yes}}&lt;br /&gt;
|-&lt;br /&gt;
| Web Browser  || ?? || {{Yes}} (1)                       || {{Yes}} (1) || ?       || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} (1) || ?? || {{Yes}}&lt;br /&gt;
|-&lt;br /&gt;
| Mail Client  || ?? || {{Yes}}                           || ?           || ?       || ?       || ?? || {{Yes}} || {{Yes}} (1)      || ?? || {{Yes}}&lt;br /&gt;
|-&lt;br /&gt;
| XMPP Client  || ?? || {{Yes}} [[Instant Messaging|(1)]] || {{Yes}} (1) || ?       || ?       || ?? || {{Yes}}  || {{Yes}} (1)      ||  || ??&lt;br /&gt;
|-&lt;br /&gt;
| Media Player || ?? || {{Yes}} (1)                       || {{Yes}}     || ?       || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} (1)      || ?? || {{Yes}}&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Toolkits / Runtimes ===&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
! width=10%| !! width=9%|Om 2008.9 !! width=9%|Om2008.8 !! width=9%|2007.2 !! width=9%|FSO !! width=9%|SHR !! width=9%|FDOM !! width=9%|Qt Extended !! width=9%|Debian !! width=9%|Gento !! width=9%|Android&lt;br /&gt;
|-&lt;br /&gt;
| GTK+           || ?? || {{Yes}}        || {{Yes}}        || {{Yes}}        || {{Yes}}  || ?? || {{No}}      || {{Yes}}                || ?? || ??&lt;br /&gt;
|-&lt;br /&gt;
| Qt/Qt Extended || ?? || {{Yes}}        || {{No}}         || {{Yes}} ?      || {{Yes}}? || ?? || {{Yes}}     || {{Yes}}                || ?? || ??&lt;br /&gt;
|-&lt;br /&gt;
| Middleware     || ?? || qtopia-x11     || gsmd/neod      || FSO            || FSO      || ?? || Qt Extended || FSO                    || ?? || ??&lt;br /&gt;
|-&lt;br /&gt;
| [[Java]]       || ?? || {{Yes|Jalimo}} || {{Yes|Jalimo}} || {{Yes|Jalimo}} || {{Yes|Jalimo}}  || ?? || ??          || {{Yes|CacaoVM, JamVM}} || ?? || ??&lt;br /&gt;
|-&lt;br /&gt;
| [[Python]]     || ?? || {{Yes}}        || {{Yes}}        || {{Yes}}        || {{yes}}  || ?? || {{Yes}}     || {{Yes}}                || ?? || ??&lt;br /&gt;
|-&lt;br /&gt;
| [[Mono]]       || ?? || {{Yes}} (1)    || {{Yes}} (1)    || ??             || {{no}}   || ?? || ??          || {{Yes}} (1)            || ?? || ??&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Images ===&lt;br /&gt;
Latest and stable combinations for Neo FreeRunner gta02&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
| || OM || FDOM || Qt Extended || Android&lt;br /&gt;
|-&lt;br /&gt;
| current bootloader || [[U-boot|U-Boot]] from [http://downloads.openmoko.org/daily/ OM daily] version [http://downloads.openmoko.org/daily/gta02v5_and_up-u-boot.bin gta02v5_and_up] || [[U-boot|U-Boot]] from [http://downloads.openmoko.org/daily/ OM daily] version [http://downloads.openmoko.org/daily/gta02v5_and_up-u-boot.bin gta02v5_and_up] || [[U-boot|U-Boot]] from [http://downloads.openmoko.org/daily/ OM daily] version [http://downloads.openmoko.org/daily/gta02v5_and_up-u-boot.bin gta02v5_and_up] ||&lt;br /&gt;
|-&lt;br /&gt;
| future bootloader || [[Qi]] from [http://people.openmoko.org/andy/ Andy] latest qi-andy.udfu || [[Qi]] from [http://people.openmoko.org/andy/ Andy] latest qi-andy.udfu || [[Qi]] from [http://people.openmoko.org/andy/ Andy] latest qi-andy.udfu ||&lt;br /&gt;
|-&lt;br /&gt;
| splash || [[Configuring_the_boot_splash_screens|U-Boot]] from [http://downloads.openmoko.org/releases/ OM releases] or [http://downloads.openmoko.org/daily/ OM daily] latest splash.gz || [[Configuring_the_boot_splash_screens|U-Boot]] from [http://downloads.openmoko.org/releases/ OM releases] or [http://downloads.openmoko.org/daily/ OM daily] latest splash.gz || [[Configuring_the_boot_splash_screens|U-Boot]] from [http://downloads.openmoko.org/releases/ OM releases] or [http://downloads.openmoko.org/daily/ OM daily] latest splash.gz ||&lt;br /&gt;
|-&lt;br /&gt;
| kernel || [[Linux]] from [http://downloads.openmoko.org/releases/ OM releases] or [http://downloads.openmoko.org/daily/ OM daily] latest uImage.bin || [[Linux]] from [http://moko.mwester.net/download/ mwester] latest uImage-gta02-mwester-stable.bin or from [http://downloads.tuxfamily.org/3v1deb/openmoko/ treviño] latest uImage-gta02-stable-3v1n0.bin || [[Linux]] from [http://moko.mwester.net/download/ mwester] latest uImage-gta02-mwester-stable.bin or from [http://downloads.tuxfamily.org/3v1deb/openmoko/ treviño] latest uImage-gta02-stable-3v1n0.bin || [[Linux]] from [http://wiki.openmoko.org/wiki/User:Seanmcneil3 McNiel] version [http://people.openmoko.org/sean_mcneil/uImage-android 2.6.26-android]&lt;br /&gt;
|-&lt;br /&gt;
| modules || ? || [[Linux]] from [http://moko.mwester.net/download/ mwester] latest modules-min-gta02-mwester-stable.tgz or modules-all-gta02-mwester-stable.tgz || [[Linux]] from [http://moko.mwester.net/download/ mwester] latest modules-min-gta02-mwester-stable.tgz or modules-all-gta02-mwester-stable.tgz ||&lt;br /&gt;
|-&lt;br /&gt;
| rootfs || [[Main_Page|OM]] from [http://downloads.openmoko.org/releases/ OM releases] or [http://downloads.openmoko.org/daily/ OM daily] latest rootfs.jffs2 || [[FDOM]] from [ftp://ftp.tuxbrain.com/openmoko/fdom/releases/ TuxBrain] version [ftp://ftp.tuxbrain.com/openmoko/fdom/releases/Fat_and_Dirty_OM.200809_20081023.rootfs.jff2 200809_20081023] || [[Qtopia_/_Qt_Extended_on_FreeRunner|QtExtended]] from [http://qtextended.org/modules/mydownloads/viewcat.php?cid=6 TrollTech] latest qtextended-gta02-flash.tgz or from [http://other.lastnetwork.net/OpenMoko/ Hypnotize] latest qtextended-gta02-rootfs-release-working.jffs2 || [[Android]] from [http://wiki.openmoko.org/wiki/User:Seanmcneil3 McNiel] version [http://people.openmoko.org/sean_mcneil/androidfs.jffs2 android]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Footnotes:&lt;br /&gt;
&lt;br /&gt;
(1) works, but need additional software to be installed&lt;br /&gt;
&lt;br /&gt;
(2) unusable due to lack of certain keyboard characters. [[Switching_Keyboards#Matchbox_keyboard|Various fixes available.]]&lt;br /&gt;
&lt;br /&gt;
(*) unstable&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* Mickey Lauer's post &amp;quot;[http://www.vanille-media.de/site/index.php/2008/06/28/gtk-asu-fso-tmtla/ GTK, ASU, FSO, TMTLA!]&amp;quot; describes the differences between distributions 2007.2, ASU and FSO.&lt;br /&gt;
&lt;br /&gt;
[[Category:Distributions|*]]&lt;/div&gt;</summary>
		<author><name>Narmo</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/MokoMakefile</id>
		<title>MokoMakefile</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/MokoMakefile"/>
				<updated>2008-11-25T20:37:19Z</updated>
		
		<summary type="html">&lt;p&gt;Narmo: Some code formatting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|MokoMakefile}}&lt;br /&gt;
&lt;br /&gt;
MokoMakefile is a Makefile which saves lots of work when setting up an Openmoko build environment.&lt;br /&gt;
By automating the setup process of a new Openmoko build environment, it provides an environment which is configured the same for all the existing developers and should therefore be preferred over manual procedures or individual setup procedures.&lt;br /&gt;
It brings the same repeatability to build environment creation and maintenance as that which the BitBake scripts bring to [[OpenEmbedded]] ease and standardize the process of building OpenEmbedded.&lt;br /&gt;
&lt;br /&gt;
MokoMakefile does not install anything into your system (it can and should be started as normal user). MokoMakefile is a wrapper around all that is required to make it easy to set up and maintain a development environment that fully complies with the setup instructions published by Openmoko.&lt;br /&gt;
&lt;br /&gt;
MokoMakefile is developed by [[User:RodWhitby|Rod Whitby]] - it is not an official product of Openmoko (although I would be happy for them to pick it up and use it internally).  If there is any discrepancy between the [[Openmoko2007.2#How_to_build|official Openmoko build instructions]], and the operation of the MokoMakefile, then you should consider the official instructions to be correct.&lt;br /&gt;
&lt;br /&gt;
The MokoMakefile is able to build both Om2008.8 (org.openmoko.asu.stable, openmoko-asu-image) and &amp;quot;Bleeding Edge&amp;quot; (org.openmoko.dev, openmoko-base-image) images.&lt;br /&gt;
&lt;br /&gt;
MokoMakefile also builds the QEMU-based Neo1973 emulator as part of the build process and has make targets to install the Openmoko images into it and run it. These commands can also be used without downloading and building the whole Openmoko OpenEmbedded distribution. This part is described in [[Using QEMU with MokoMakefile]].&lt;br /&gt;
&lt;br /&gt;
== Requirements for building Openmoko ==&lt;br /&gt;
Independent on whether MokoMakefile or a manual process is used to setup an Openmoko build environment, there are several requirements which must be fulfilled in order for the Openmoko build to succeed:&lt;br /&gt;
&lt;br /&gt;
* RAM: The build host needs to have at least 512MB of RAM, and about the same amount of swap. Some packages built by OpenEmbedded like busybox are built by compiling all source files into one binary which causes gcc to grow beyond 300MB of size and no part of this memory may be on swap for the compile to finish in predictable time. For busybox, this can be turned off, but turning this off means that busybox will not as well optimized by gcc.&lt;br /&gt;
&lt;br /&gt;
* Disk space: You need about 12 GB of available disk space for the Openmoko build to succeed (see below for a tip on how to reduce this).&lt;br /&gt;
&lt;br /&gt;
* Time: The initial build takes at least 5 hours (on 2GHz core2duo without multiprocessor optimization) and may take several days on slower machines.&lt;br /&gt;
&lt;br /&gt;
=== Required software ===&lt;br /&gt;
&lt;br /&gt;
Some distribution specific hints on preparing your build host for building OpenEmbedded are on http://wiki.openembedded.net/index.php/OEandYourDistro but they may be outdated, incomplete and do not cover everything which Openmoko needs to build.&lt;br /&gt;
&lt;br /&gt;
A good guide is [[Building Openmoko from scratch#Build host prerequisites|the section on build host prerequisites]] in [[Building Openmoko from scratch]]&lt;br /&gt;
&lt;br /&gt;
If you forgot anything which OE needs itself, OE will tell you shortly after you start building, but it does not check build dependencies of Openmoko, so you either have to install them before starting or install them after the build failed. OpenEmbedded will continue where it stopped when you restart the build afterwards.&lt;br /&gt;
&lt;br /&gt;
==== Package requirements by distribution ====&lt;br /&gt;
Your distribution needs to provide these commands in order for OpenEmbedded to start building:&lt;br /&gt;
subversion texi2html texinfo help2man&lt;br /&gt;
&lt;br /&gt;
Openmoko needs the development packages (with header files, development libraries and tools) in order to finish building:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;ncurses zlib (or libz) OpenSSL GTK++&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Because there are bugs in the interaction of QEMU and GCC-4, you'll need a copy of gcc-3.x installed as well.&lt;br /&gt;
&lt;br /&gt;
===== Debian / Ubuntu =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install subversion build-essential help2man diffstat texi2html texinfo cvs gawk zip unzip cogito bzip2&lt;br /&gt;
sudo apt-get install libncurses5-dev zlib1g-dev libssl-dev libgtk2.0-dev&lt;br /&gt;
# To prevent errors in host validation&lt;br /&gt;
sudo apt-get install ca-certificates&lt;br /&gt;
# For Openmoko 2007.2 using BitBake-1.8.8:&lt;br /&gt;
sudo apt-get install python-pysqlite2 sqlite3 sqlite3-doc python-pysqlite2-dbg&lt;br /&gt;
# For building faster&lt;br /&gt;
sudo apt-get install quilt python-psyco ccache&lt;br /&gt;
# For qemu, install a second compiler for bug avoidance; MokoMakefile knows to look for it.&lt;br /&gt;
sudo apt-get install gcc-3.4 g++-3.4 libsdl1.2-dev lynx netpbm dosfstools&lt;br /&gt;
&lt;br /&gt;
# On Ubuntu 8.04 and and Debian testing/unstable, the following was required instead of cogito&lt;br /&gt;
sudo apt-get install git-core&lt;br /&gt;
# Ubuntu links /bin/sh to /bin/dash, but some scripts fail because they use pushd and popd, which dash does not support&lt;br /&gt;
sudo dpkg-reconfigure dash&lt;br /&gt;
# Select No when it asks you to install dash as /bin/sh.&lt;br /&gt;
&lt;br /&gt;
# This may be needed only for ASU&lt;br /&gt;
sudo apt-get install libxtst-dev&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== SuSE =====&lt;br /&gt;
For building Openmoko on 10.3, you need&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;gcc-c++ ncurses-devel zlib-devel libopenssl-devel gtk2-devel subversion diffstat texinfo help2man&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For MokoMakefile to not fail on compiling qemu-user, you need to use gcc33:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;wget download.opensuse.org/repositories/devel:/tools:/gcc/openSUSE_Factory/i586/{cpp,gcc}33-3.3.3-41.8.i586.rpm&lt;br /&gt;
rpm -Uhv {cpp,gcc}33-3.3.3-41.8.i586.rpm&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See also the [[Talk:MokoMakefile#Building_on_SuSE_Linux_10.3-AMD64|Talk page on Building on SuSE Linux 10.3-AMD64]]&lt;br /&gt;
&lt;br /&gt;
10.1 and 10.2: same packages as 10.3, but install &amp;lt;code&amp;gt;openssl-devel&amp;lt;/code&amp;gt; instead of libopenssl-devel.&lt;br /&gt;
&lt;br /&gt;
===== Mandriva =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;urpmi git help2man diffstat texi2html texinfo&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Tested with Mandriva 2009.0. &amp;lt;tt&amp;gt;kernel-desktop-devel&amp;lt;/tt&amp;gt; of the current kernel is installed in advance, which installs compilers, binutils and many other general compilation tools.)&lt;br /&gt;
&lt;br /&gt;
==== For all distributions ====&lt;br /&gt;
&lt;br /&gt;
As the QEMU-based neo1973 emulator is also built as part of the build process started by MokoMakefile, so you need gcc-3.3 and other packages for building QEMU installed. See [[Using QEMU with MokoMakefile#Build requirements|the build requirements section]] in [[Using QEMU with MokoMakefile]] for information on the required software.&lt;br /&gt;
&lt;br /&gt;
If you are having problems compiling QEMU and do not need it, you can disable building of QEMU by adding following line to build/conf/local.conf file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;ENABLE_BINARY_LOCALE_GENERATION = &amp;quot;0&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Proxy =====&lt;br /&gt;
&lt;br /&gt;
Users behind a proxy should ensure that their proxy is configured in their wgetrc file as the http_proxy environment variable is unset by MokoMakefile.&lt;br /&gt;
&lt;br /&gt;
== Building Openmoko with MokoMakefile ==&lt;br /&gt;
&lt;br /&gt;
=== Preparations ===&lt;br /&gt;
Create your $OMDIR directory (note that you can change ~/moko to any directory you like):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;mkdir ~/moko ; cd ~/moko&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you have your ~moko dir mounted from a different file system, be sure to edit /etc/mtab to add the 'exec' permission to the file system, else bitbake will fail with error messages stating that /usr/bin/env is an invalid interpreter.&lt;br /&gt;
If you ever want to move your $OMDIR to another location, you must run&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;make clobber ; make setup&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to reinitialize the environment.  Yes, this will take a long time, so choose $OMDIR carefully.&lt;br /&gt;
&lt;br /&gt;
=== MokoMakefile ===&lt;br /&gt;
&lt;br /&gt;
Grab MokoMakefile:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;wget http://www.rwhitby.net/files/openmoko/Makefile&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If that doesn't work, try&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;wget http://svn.projects.openmoko.org/svnroot/mokomakefile/trunk/Makefile&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{note|MokoMakefile uses BitBake 1.8.8 which requires python-sqlite2 and sqlite-3.3 or later. Users of SUSE Linux 10.1 can update to [http://download.opensuse.org/pub/opensuse/distribution/10.2/repo/oss/suse/i586/sqlite-3.3.8-14.i586.rpm the version of openSUSE 10.2]}}&lt;br /&gt;
&lt;br /&gt;
=== Environment ===&lt;br /&gt;
&lt;br /&gt;
If you want to make the &amp;quot;Bleeding Edge&amp;quot; (org.openmoko.dev, openmoko-base-image) image instead of the Om2008.8 image, see [[Distributions]], you need to edit your Makefile.  Read the top of the Makefile for details.&lt;br /&gt;
&lt;br /&gt;
Note that if you want to build FSO, you should use the FSO Makefile at http://downloads.freesmartphone.org rather than the MokoMakefile.&lt;br /&gt;
&lt;br /&gt;
Set up the environment with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;make setup&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you are building for the Neo1973 GTA01, then also do this&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;make setup-machine-om-gta01&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you are building for the FreeRunner GTA02, then also do this&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;make setup-machine-om-gta02&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Building ===&lt;br /&gt;
&lt;br /&gt;
Before starting a lengthy make process, check the [[#Tips|Tips]] section below for how to make Make multicore aware. You may want to modify the build/conf/local.conf file for your target (emulation/chroot) environment.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;make image&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Hint:'' The images build with this command can be found under {$OMDIR}/build/tmp/deploy/glibc/images/neo1973&lt;br /&gt;
&lt;br /&gt;
This will set up the recommended directory structure as described in [[Building Openmoko from scratch]], will download all the required software (from the right places with the right versions), and will immediately start building an image.&lt;br /&gt;
&lt;br /&gt;
Once you have done this, you can choose to continue using the MokoMakefile to initiate your subsequent builds, or you can go into the build directory and run bitbake commands manually.  The choice is yours.&lt;br /&gt;
&lt;br /&gt;
==Updating the environment==&lt;br /&gt;
&lt;br /&gt;
For easy maintenance of your build environment the following commands are available.&lt;br /&gt;
&lt;br /&gt;
1 - To update the MokoMakefile to the latest version:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;make update-makefile&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Be aware that any changes you previously made to the Makefile (like the git branch to use) are lost when executing ''update-makefile''.&lt;br /&gt;
&lt;br /&gt;
2 - To make sure that any recent changes to the build directory structure have been applied:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;make setup&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3 - To update the Openmoko repository checkout and the MokoMakefile patches to the latest version:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;make update&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A quick way to rebuild a new image with the latest updates:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;make update-makefile &amp;amp;&amp;amp; make setup update image&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Build issues==&lt;br /&gt;
&lt;br /&gt;
First, make sure that the problem is reproducible after running&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;make update-makefile &amp;amp;&amp;amp; make setup &amp;amp;&amp;amp; make update&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
then run&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;make clean-package-&amp;lt;foo&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(where you replace &amp;lt;foo&amp;gt; with the name of the package which is failing)&lt;br /&gt;
&lt;br /&gt;
and finally&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;make image&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With luck - you should now have images in your $omdir/build/tmp/deploy/glibc/images/neo1973/ directory. You can then [[Flashing the Neo FreeRunner|flash these]].&lt;br /&gt;
&lt;br /&gt;
If not, and you can get the error to occur three times in a row after running that sequence of commands (including the update and setup steps) three times, then feel free to report it to rwhitby in #openmoko on [[Development_resources#IRC|IRC]].&lt;br /&gt;
&lt;br /&gt;
If you have chronic build problems, cleaning your environment variables and re-running the build from scratch may help. The following script should remove all non-essential variables; you should also manually trim your path to the minimum.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;`env | grep -Ev '^(SHELL|TERM|OLDPWD|USER|USERNAME|PATH|EDITOR|LANG|HOME|DISPLAY|_)=' \&lt;br /&gt;
| sed 's/^\(.*\)=.*/unset \1/'`&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(you must include the backticks).&lt;br /&gt;
&lt;br /&gt;
Note that on some boxes it is necessary to call &amp;quot;make&amp;quot; by typing &amp;quot;/usr/bin/make&amp;quot; afterwards.&lt;br /&gt;
&lt;br /&gt;
On current Ubuntu/Debian unstable/testing boxes another trick is necessary. glibc_2.6.1 fails to build since it is unable to generate the necessary locales until you type in the following line:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo sysctl -w vm.mmap_min_addr=0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that this temporarily disables a new security vulnerability check that has entered /etc/sysctrl - but that makes problems with loads of applications.&lt;br /&gt;
&lt;br /&gt;
To re-enable this check do the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo sysctl -w vm.mmap_min_addr=65536&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See the talk page of this article for more details on this solution.&lt;br /&gt;
&lt;br /&gt;
===Known MokoMakefile errors ===&lt;br /&gt;
&lt;br /&gt;
==== SVN Server Certificate Errors ====&lt;br /&gt;
&lt;br /&gt;
If you get an error like the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;NOTE: Fetch svn://svn.projects.openmoko.org/svnroot/;module=assassin;proto=https&lt;br /&gt;
Error validating server certificate for 'https://svn.projects.openmoko.org:443':&lt;br /&gt;
- The certificate is not issued by a trusted authority. Use the&lt;br /&gt;
fingerprint to validate the certificate manually!&lt;br /&gt;
Certificate information:&lt;br /&gt;
- Hostname: projects.openmoko.org&lt;br /&gt;
- Valid: from Thu, 05 Jun 2008 01:02:42 GMT until Tue, 02 Dec 2008 01:02:42 GMT&lt;br /&gt;
- Issuer: http://www.cacert.org, Root CA&lt;br /&gt;
- Fingerprint: a5:7d:4e:37:e8:94:ee:ba:c1:e8:e9:4b:33:cb:34:91:a9:6d:d3:84&lt;br /&gt;
(R)eject, accept (t)emporarily or accept (p)ermanently?&lt;br /&gt;
svn: OPTIONS of 'https://svn.projects.openmoko.org/svnroot/assassin':&lt;br /&gt;
Server certificate verification failed: issuer is not trusted (https://svn.projects.openmoko.org)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It means you haven't yet accepted the server certificate for the SVN server.  To remedy this, execute the following commands, and hit &amp;quot;p&amp;quot; (to permanently accept the certificate) when prompted:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cd /tmp&lt;br /&gt;
svn co https://svn.projects.openmoko.org/svnroot/assassin&lt;br /&gt;
rm -rf assassin&lt;br /&gt;
cd -&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== exposure_svn and Subversion 1.5.0 ====&lt;br /&gt;
&lt;br /&gt;
If you get an error like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;quot;NameError: global name 'log' is not defined&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There's a bug with subversion 1.5.0 -- downgrade to 1.4.x (or check out the latest subversion sources and use those as they're fixed) and re-fetch the sources.&lt;br /&gt;
&lt;br /&gt;
=== Fixes for distribution/environment-specific or isolated issues ===&lt;br /&gt;
&lt;br /&gt;
Work-arounds for temporary or isolated problems can be found and should be added to the [[Talk:MokoMakefile|Discussion page]] which is associated with this page.  As they are fixed, they will be removed from that page.&lt;br /&gt;
&lt;br /&gt;
==Tips==&lt;br /&gt;
&lt;br /&gt;
* Make sure umask is set to 0022 before you run &amp;quot;make setup&amp;quot;&lt;br /&gt;
* If a certain package does not build due to corrupted download or some such try to remove the sources and rebuild it.&lt;br /&gt;
&amp;lt;pre&amp;gt;rm sources/&amp;lt;package&amp;gt;*&lt;br /&gt;
cd build&lt;br /&gt;
. ../setup-env&lt;br /&gt;
bitbake -crebuild &amp;lt;package&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
After that your build might just work again.&lt;br /&gt;
&lt;br /&gt;
* For people with multiple CPU's (or dual-core ones) this small patch might be useful to build things faster.&lt;br /&gt;
Edit the local.conf and add the following lines:&lt;br /&gt;
&amp;lt;pre&amp;gt;PARALLEL_MAKE = &amp;quot;-j 4&amp;quot;&lt;br /&gt;
BB_NUMBER_THREADS = &amp;quot;4&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change the PARALLEL_MAKE and BB_NUMBER_THREADS values to something that suits better if it chokes your machine.&lt;br /&gt;
&lt;br /&gt;
* I have some problem with the parallel building, mkfs.jffs failed to build the image because the directory was modify while the building of the fs. [[User:Patrick.hetu|patrick.hetu]] 02:19, 27 May 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
* If you encounter an error related with the qemu-native package and not compiling for the qemu, you can edit the build/conf/local.conf file and add ENABLE_BINARY_LOCALE_GENERATION = &amp;quot;0&amp;quot; line to avoid the error.&lt;br /&gt;
&lt;br /&gt;
* To prevent building tons of locales, add a line like this to local.conf:&lt;br /&gt;
&amp;lt;pre&amp;gt;GLIBC_GENERATE_LOCALES = &amp;quot;en_US.UTF-8 nl_NL.UTF-8&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* To not build any binary locales at all, add this to local.conf:&lt;br /&gt;
&amp;lt;pre&amp;gt;ENABLE_BINARY_LOCALE_GENERATION = &amp;quot;0&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* If you want to rebuild the package indexes (for instance, after compiling a new version of a package) without building the whole &amp;lt;code&amp;gt;image&amp;lt;/code&amp;gt;, run &amp;lt;code&amp;gt;make build-package-package-index&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[User:Wurp]] will update this to be a little more comprehensible, but maybe it can help someone as-is in the meantime:&lt;br /&gt;
* If MokoMakefile always fails on some fetch in zlib, just find the binary somewhere, add it to the downloads or sources directory manually (create the .md5 matching file if necessary), and retry.&lt;br /&gt;
&lt;br /&gt;
* Make sure you do not have . in your PATH, this causes an &amp;quot;unrecognized option -Qy&amp;quot; error when building g++spec&lt;br /&gt;
&lt;br /&gt;
=== Useful commands ===&lt;br /&gt;
&lt;br /&gt;
Here is the list (not complete) of useful MokoMakefile commands (actually make targets) and a short description of each one. These should be run inside $OMDIR directory.&lt;br /&gt;
&lt;br /&gt;
; make image : build the full development image&lt;br /&gt;
&lt;br /&gt;
; make tools : build statically-linked [[dfu-util]] and [[openocd]] binaries&lt;br /&gt;
&lt;br /&gt;
; make toolchain : builds [[toolchain]]&lt;br /&gt;
&lt;br /&gt;
; make qemu : builds qemu, downloads flash images from official repository, flashes qemu emulated Neo1973 and runs emulator (see also [[Openmoko under QEMU]]).&lt;br /&gt;
&lt;br /&gt;
; make qemu-local : same as ''make qemu'', but uses locally built images instead of official ones.&lt;br /&gt;
&lt;br /&gt;
; make run-qemu : runs qemu with usb keyboard ''(note: qemu must first be built!)''. This target starts the emulator with some predefined set of options. If you need to start it with other options (enable telnet, etc), see [[QEMU_command_line]].&lt;br /&gt;
&lt;br /&gt;
; make build-package-&amp;lt;package name&amp;gt; : buids ''&amp;lt;package name&amp;gt;'' package&lt;br /&gt;
&lt;br /&gt;
; make update-makefile : updates MokoMakefile&lt;br /&gt;
&lt;br /&gt;
; make clean-package-&amp;lt;foo&amp;gt;: cleans the &amp;quot;&amp;lt;foo&amp;gt;&amp;quot; package&lt;br /&gt;
&lt;br /&gt;
; make setup : to make sure that any recent changes to the build directory structure have been applied&lt;br /&gt;
&lt;br /&gt;
; make update : to update the Openmoko repository checkout and the MokoMakefile patches to the latest version&lt;br /&gt;
&lt;br /&gt;
; make setup-machine-om-gta01 : setup for GTA01 version of Neo1973&lt;br /&gt;
&lt;br /&gt;
; make setup-machine-om-gta02 : setup for GTA02 version of FreeRunner&lt;br /&gt;
&lt;br /&gt;
; make build-package-package-index : Rebuild the package index&lt;br /&gt;
&lt;br /&gt;
== Developing with MokoMakefile ==&lt;br /&gt;
&lt;br /&gt;
For the following explanations $OMDIR is the directory where there Makefile puts all the stuff.&lt;br /&gt;
&lt;br /&gt;
To make in-tree changes and have them built and used by qemu:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cd $OMDIR/openmoko&lt;br /&gt;
quilt new descriptive-patch-name.patch&lt;br /&gt;
quilt add trunk/src/name-of-file-to-change # do this for every file you are about to modify&lt;br /&gt;
...make the changes...&lt;br /&gt;
quilt refresh # this creates a file in $OMDIR/patches/openmoko-HEAD/ and updates the&lt;br /&gt;
# quilt series file there&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: Do '''NOT''' use absolute paths as this confuses quilt and will get you a diff of the file against /dev/null!&lt;br /&gt;
&lt;br /&gt;
To build the changes and have them used by qemu:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;make build-qemu&lt;br /&gt;
make flash-qemu-local&lt;br /&gt;
make run-qemu&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to modify applications instead of the openmoko toolchain, this is what you have to do (example: openmoko-messages):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cd $OMDIR/build&lt;br /&gt;
. ../setup-env&lt;br /&gt;
bitbake -c patch openmoko-messages&lt;br /&gt;
cd tmp/work/armv4t-linux/openmoko-messages-0.0.1+svnnow-r2_2276/openmoko-messages/&lt;br /&gt;
''...make the changes...''&lt;br /&gt;
cd -&lt;br /&gt;
bitbake -c compile openmoko-messages&lt;br /&gt;
bitbake -c build openmoko-messages&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: The compile step is only necessary if you already had the package compiled before patching it.&lt;br /&gt;
&lt;br /&gt;
Note: if you just use &amp;lt;tt&amp;gt;bitbake openmoko-messages&amp;lt;/tt&amp;gt; it will remove the sources after building!&lt;br /&gt;
&lt;br /&gt;
Note: You can use the '-f' switch to force a command to be run (e.g. ''bitbake -f -c compile openmoko-messages'' to force a compile run.&lt;br /&gt;
&lt;br /&gt;
Then continue with MokoMakefile usage.&lt;br /&gt;
&lt;br /&gt;
If you want to add an application to your openmoko distribution, do this:&lt;br /&gt;
All file edits should be done using quilt as described above. That way a patch can easily be submitted to the openmoko project.&lt;br /&gt;
First, create a directory that will correspond to your package and edit a '''.bb''' file in there:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cd $OMDIR/openmoko/&lt;br /&gt;
quilt new mycoolpackage.patch&lt;br /&gt;
mkdir trunk/openembedded/packages/mycoolpackage&lt;br /&gt;
quilt add trunk/openembedded/packages/mycoolpackage/mycoolpackage_1.bb&lt;br /&gt;
quilt edit trunk/openembedded/packages/mycoolpackage/mycoolpackage_1.bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The file should have the following content:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;DESCRIPTION = &amp;quot;This is a cool package&amp;quot;&lt;br /&gt;
SECTION = &amp;quot;username/mycoolpackage&amp;quot;&lt;br /&gt;
PV = &amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
inherit autotools&lt;br /&gt;
&lt;br /&gt;
SRC_URI = &amp;quot;http://www.example.com/download/mycoolpackage-1.tar.gz&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Explanation:&lt;br /&gt;
* DESCRIPTION - Just a short text explaining the package&lt;br /&gt;
* SECTION - I have no clue, but I'll use username/mycoolpackage for now&lt;br /&gt;
* PV - Package Version&lt;br /&gt;
* inherit autotools - The package can be compiled by './configure &amp;amp;&amp;amp; make &amp;amp;&amp;amp; make install' so we tell MokoMakefile to do it this way.&lt;br /&gt;
* SRC_URI = ... - This is the download location of the package source. It's imperative that the tar.gz contains a directory called '''packagename-packageversion''' (in this case: mycoolpackage-1) so that MokoMakefile can find it automatically or the build will fail.&lt;br /&gt;
&lt;br /&gt;
This is not all. We also need to tell MokoMakfile that it needs to build and include the package in the image. To do this, do&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$OMDIR/openmoko $ quilt edit trunk/openembedded/packages/tasks/task-openmoko.bb&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here, increase the value '''PR''' by one and add '''mycoolpackage \''' (with the backslash!) just before the line reading '''#  update-alternatives \'''.&lt;br /&gt;
&lt;br /&gt;
Now run&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;quilt refresh&lt;br /&gt;
cd ..&lt;br /&gt;
make update image&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And if everything's alright you should now have an Openmoko image to flash to your phone or run in qemu as described above.&lt;br /&gt;
&lt;br /&gt;
=== Hello World application ===&lt;br /&gt;
&lt;br /&gt;
There is a [[Building a hello world application|Hello World!]] tutorial available too.&lt;br /&gt;
&lt;br /&gt;
== Testimonials ==&lt;br /&gt;
&lt;br /&gt;
MokoMakefile is recommended by 4 out of 4 new developers on #openmoko, with testimonials such as &amp;quot;For some reason last night I couldn't get my manual install of everything to work (bb complained about my bbpath I think) ... but with your makefile, it works great!&amp;quot;, &amp;quot;MokoMakefile rocks!&amp;quot;, &amp;quot;Wow this build system is nice - it just seems more polished than my gumstix toolchain buildroot system&amp;quot;, &amp;quot;make openmoko-devel-image :) - no magic there&amp;quot;, and &amp;quot;I have never been able to get a build to complete in the pure OE environment, whereas Mokomakefile for some reason builds fine.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Project page:&lt;br /&gt;
http://mokomakefile.projects.openmoko.org/&lt;br /&gt;
&lt;br /&gt;
[[Category:Application Developer]]&lt;br /&gt;
[[Category:System Developers]]&lt;/div&gt;</summary>
		<author><name>Narmo</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/User:Narmo</id>
		<title>User:Narmo</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/User:Narmo"/>
				<updated>2008-11-19T19:05:23Z</updated>
		
		<summary type="html">&lt;p&gt;Narmo: /* Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I've bought OpenMoko Neo FreeRunner on 1st, November, 2008.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
* [http://werewolf.weho.ru My private blog]&lt;br /&gt;
* [http://weho.ru Developers' blog]&lt;br /&gt;
* [http://wiki.weho.ru My wiki]&lt;/div&gt;</summary>
		<author><name>Narmo</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Openmoko_Local_Groups:_Moscow</id>
		<title>Openmoko Local Groups: Moscow</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Openmoko_Local_Groups:_Moscow"/>
				<updated>2008-11-18T19:30:33Z</updated>
		
		<summary type="html">&lt;p&gt;Narmo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Possible Participants ===&lt;br /&gt;
{|border=1&lt;br /&gt;
!Name&lt;br /&gt;
!Skills&lt;br /&gt;
!Level of Interest&lt;br /&gt;
!Other&lt;br /&gt;
!Has Device&lt;br /&gt;
!Has Debug Board&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Shadowjack|Shadowjack]]&lt;br /&gt;
|C, C++, Linux, GPS&lt;br /&gt;
|High&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Denizzz|Denizzz]]&lt;br /&gt;
|C, C++, Linux, GPS&lt;br /&gt;
|High&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[User:BasilK|BasilK]]&lt;br /&gt;
|C, C++, Linux, GPS&lt;br /&gt;
|High&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[[Image: MokoBox.jpg|center]]&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Vc24|vc24]]&lt;br /&gt;
|C, C++, Linux&lt;br /&gt;
|High&lt;br /&gt;
|&lt;br /&gt;
| GTA01&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Shallburn|Shallburn]]&lt;br /&gt;
|C,OCaml,Scheme,Linux&lt;br /&gt;
|Middle&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Kayo|Kayo]]&lt;br /&gt;
|C++, Lua, Python, GNU/Linux&lt;br /&gt;
|High&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[User:yoush|yoush]]&lt;br /&gt;
|C/C++, Linux kernel hacker, Debian Developer&lt;br /&gt;
|High&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[User:GreyCardinal|GreyCardinal]]&lt;br /&gt;
|C/C++, Linux kernel hacker, Debian Developer&lt;br /&gt;
|High&lt;br /&gt;
|&lt;br /&gt;
|GTA02v5&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[User:SR|SR]]&lt;br /&gt;
|C, C++, GNU/Linux&lt;br /&gt;
|High&lt;br /&gt;
|&lt;br /&gt;
|GTA02v6&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Narmo|Narmo]]&lt;br /&gt;
|C, C++, GNU/Linux, Objective-C&lt;br /&gt;
|High&lt;br /&gt;
|&lt;br /&gt;
|[[Image:Moko.jpg|center]]&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Openmoko Local Groups]]&lt;/div&gt;</summary>
		<author><name>Narmo</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Openmoko_Local_Groups:_Moscow</id>
		<title>Openmoko Local Groups: Moscow</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Openmoko_Local_Groups:_Moscow"/>
				<updated>2008-11-18T19:29:02Z</updated>
		
		<summary type="html">&lt;p&gt;Narmo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Possible Participants ===&lt;br /&gt;
{|border=1&lt;br /&gt;
!Name&lt;br /&gt;
!Skills&lt;br /&gt;
!Level of Interest&lt;br /&gt;
!Other&lt;br /&gt;
!Has Device&lt;br /&gt;
!Has Debug Board&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Shadowjack|Shadowjack]]&lt;br /&gt;
|C, C++, Linux, GPS&lt;br /&gt;
|High&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Denizzz|Denizzz]]&lt;br /&gt;
|C, C++, Linux, GPS&lt;br /&gt;
|High&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[User:BasilK|BasilK]]&lt;br /&gt;
|C, C++, Linux, GPS&lt;br /&gt;
|High&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[[Image: MokoBox.jpg|center]]&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Vc24|vc24]]&lt;br /&gt;
|C, C++, Linux&lt;br /&gt;
|High&lt;br /&gt;
|&lt;br /&gt;
| GTA01&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Shallburn|Shallburn]]&lt;br /&gt;
|C,OCaml,Scheme,Linux&lt;br /&gt;
|Middle&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Kayo|Kayo]]&lt;br /&gt;
|C++, Lua, Python, GNU/Linux&lt;br /&gt;
|High&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[User:yoush|yoush]]&lt;br /&gt;
|C/C++, Linux kernel hacker, Debian Developer&lt;br /&gt;
|High&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[User:GreyCardinal|GreyCardinal]]&lt;br /&gt;
|C/C++, Linux kernel hacker, Debian Developer&lt;br /&gt;
|High&lt;br /&gt;
|&lt;br /&gt;
|GTA02v5&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[User:SR|SR]]&lt;br /&gt;
|C, C++, GNU/Linux&lt;br /&gt;
|High&lt;br /&gt;
|&lt;br /&gt;
|GTA02v6&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Narmo|Narmo]]&lt;br /&gt;
|C, C++, GNU/Linux, Objective-C&lt;br /&gt;
|High&lt;br /&gt;
|&lt;br /&gt;
|GTA02v6&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Openmoko Local Groups]]&lt;/div&gt;</summary>
		<author><name>Narmo</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Edje</id>
		<title>Edje</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Edje"/>
				<updated>2008-11-16T15:40:47Z</updated>
		
		<summary type="html">&lt;p&gt;Narmo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is about changing windows decoration and behavior. For [[CustomizeApplicationIcons|changing application icons]] on the home screen, simply change ''.desktop'' files ''/usr/share/applications'' directory. For more general pimping, see the [[Themes]] page.&lt;br /&gt;
&lt;br /&gt;
= Introduction: What is Edje ? =&lt;br /&gt;
&lt;br /&gt;
In most Openmoko FreeRunner distributions, the graphical environment is the Illume module of the [http://www.enlightenment.org/ Enlightenment 17] window manager. Under this environment, the windows decorations and behavior are managed by a graphical library called ''Edge''. Accordingly, the theme is defined in a ''.edj'' file.&lt;br /&gt;
&lt;br /&gt;
On the FreeRunner, Edje themes are stored at ''/usr/share/enlightenment/data/themes''. Which theme gets loaded by default is defined via the symlink ''/usr/share/enlightenment/data/themes/illume.edj''. To use a custom theme, simply put a '''.edj'' file to ''~/.e/e/themes/illume.edj''.&lt;br /&gt;
&lt;br /&gt;
A ''.edj'' file is a collection of possibly several files, including images and even fonts in some cases (see [http://web.enlightenment.org/p.php?p=docs&amp;amp;l=en E17 documentation]). It allows to change the background image (see the example below) but is much more powerful than that. Along with the visual definitions and elements, it includes programmatic statements controlling interaction between GUI elements and between GUI and application.  For instance, the dialer may have three 'program' triggers written into the edje for each button - change GUI to 'pressed', change GUI to 'released', and add digit to number.  Unlike traditional ideas about theming, this interaction is defined in the 'theme' instead of the application itself.  This allows for unprecedented flexibility insofar as 'theming' - you can change button layouts, graphics, even add some features like 'delete last digit' all within the .edj.&lt;br /&gt;
&lt;br /&gt;
If you want to play around with edje themes here are two approaches:&lt;br /&gt;
&lt;br /&gt;
1. Use ''edje-editor''.  Keep in mind that the editor works, quite nicely in some regards, but has some flaws and some distinctly missing features like it can't remove a no-longer-used background image from the .edj file. See [http://lists.openmoko.org/pipermail/community/2008-October/034477.html this message].&lt;br /&gt;
&lt;br /&gt;
2. Alternatively, use ''edje-decc'' to decompile the theme back to config files and images and what-not, manually edit the aforementioned parts, and recompile with ''edje-cc''.  These two tools should be available in your friendly package feed for your Freerunner as ''edje-tools'', and possibly for your desktop linux. This is the method explained below.&lt;br /&gt;
&lt;br /&gt;
Edje uses *.edj Files as binary-configuration files and *.edc as the source of such an *.edj file.&lt;br /&gt;
&lt;br /&gt;
= Installing the Edge compiler/decompiler =&lt;br /&gt;
&lt;br /&gt;
== Installation on Ubuntu ==&lt;br /&gt;
You can install edje_cc and edje_decc for Ubuntu by adding this source to your /etc/apt/sources.lst:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deb http://e17.dunnewind.net/ubuntu hardy e17&lt;br /&gt;
or&lt;br /&gt;
deb http://e17.dunnewind.net/ubuntu gutsy e17&lt;br /&gt;
or&lt;br /&gt;
deb http://e17.dunnewind.net/ubuntu feisty e17&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
After that you can install the needed tools with:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get update &amp;amp;&amp;amp; sudo apt-get install libedje-bin&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: It appears only packages for hardy exist there at this point.&lt;br /&gt;
&lt;br /&gt;
== Installation on Debian ==&lt;br /&gt;
The packages for Ubuntu look like they are compatible with debian.&lt;br /&gt;
Verified is: feisty&amp;lt;-&amp;gt;lenny&lt;br /&gt;
&lt;br /&gt;
Unfortunately, something seems to be broken in recompiling the edjefiles. edje_cc reports syntax errors in fso.edj file; but that comes maybe from the file itself. Maybe edje_cc from ubuntu is just outdated?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It looks like edje is available in [http://packages.debian.org/libedje-bin debian] unstable.&lt;br /&gt;
&lt;br /&gt;
== Installation on Freerunner ==&lt;br /&gt;
To compile/decompile Edje files directly at your freerunner, you first need to install several packages.&lt;br /&gt;
You need at least ''edje-utils'' which provides the compiler and decompiler tools.&lt;br /&gt;
Depending on the contents of the theme, you need additional modules which are provided by ''libevas-*'' packages.&lt;br /&gt;
For example, to be able to load and save JPG files, you need both the ''libevas-loader-jpeg'' and ''libevas-saver-jpg'' packages.&lt;br /&gt;
&lt;br /&gt;
To successfully compile .edj files, you also need a C++ compiler and the embryo_cc scripting language compiler installed.&lt;br /&gt;
&lt;br /&gt;
This line should get you started:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
opkg install edje-utils libevas-loader-jpeg libevas-loader-png libevas-saver-jpeg libevas-saver-png&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To decompile an theme, just type:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@om-gta02:/usr/share/enlightenment/data/themes# edje_decc illume.edj&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To recompile, you can use edje_cc, but most theme files have a build.sh bundled that provides the neccessary parameters:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@om-gta02:/usr/share/enlightenment/data/themes/illume# ./build.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Example: changing wallpaper =&lt;br /&gt;
&lt;br /&gt;
This walkthrough example is divided into two sections. The first one describes how to get a background image if one has not set one before. In this case, also the second section must be performed, which describes, how you can exchange an already set background image if you followed this tutorial.&lt;br /&gt;
&lt;br /&gt;
== First time to set a background image ==&lt;br /&gt;
* ssh to your freerunner&lt;br /&gt;
* Install edje-utils:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
opkg install edje-utils libevas-loader-jpeg libevas-loader-png libevas-saver-jpeg libevas-saver-png&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* cd to the theme directory and decompile the default theme with edje_dcc:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@om-gta02:~# cd /usr/share/enlightenment/data/themes&lt;br /&gt;
root@om-gta02:/usr/share/enlightenment/data/themes# edje_decc illume.edj&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* now you have a new directory &amp;quot;illume&amp;quot;. Edit the file ''freerunner.edc'' inside it.&lt;br /&gt;
* there, add the following code (Please note, that this works for an image with 480x640 pixels. If you have other sizes, adjust min/max/align/aspect):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/*** DEFAULT WALLPAPER ***/&lt;br /&gt;
group { name: &amp;quot;e/desktop/background&amp;quot;;&lt;br /&gt;
images{&lt;br /&gt;
image: &amp;quot;background.png&amp;quot; COMP;&lt;br /&gt;
}&lt;br /&gt;
parts {&lt;br /&gt;
part {&lt;br /&gt;
name: &amp;quot;base&amp;quot;;&lt;br /&gt;
description {&lt;br /&gt;
state: &amp;quot;default&amp;quot; 0.0;&lt;br /&gt;
color: 238 238 236 255;&lt;br /&gt;
image.normal: &amp;quot;background.png&amp;quot;;&lt;br /&gt;
min: 480 640;&lt;br /&gt;
max: 480 640;&lt;br /&gt;
align: 0.0 1.0;&lt;br /&gt;
aspect: 1.0 1.0;&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* prepare a symlink so updating is more easy if you want to change again later:&lt;br /&gt;
root@om-gta02:/usr/share/enlightenment/data/themes# ln -s illume/illume.edj illume_mytheme.edj&lt;br /&gt;
* replace the theme symlink to point to your one:&lt;br /&gt;
root@om-gta02:/usr/share/enlightenment/data/themes# rm illume.edj; ln -s illume_mytheme.edj illume.edj&lt;br /&gt;
&lt;br /&gt;
== Exchanging background again ==&lt;br /&gt;
* scp your ''background.png'' image from host-pc to freerunner:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
scp background.png moko:/usr/share/enlightenment/data/themes/illume/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* on freerunner, recompile the theme&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@om-gta02:/usr/share/enlightenment/data/themes/illume# ./build.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* restart x and enjoy your new background. If you want to change it again, you only need to copy over the new image, recompile the Edje file and reload X:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@om-gta02:~# /etc/init.d/xserver-nodm restart&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Example: hiding the &amp;quot;Install&amp;quot; Bar =&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;   I have removed the assassin installer so it doesn't show up any more&lt;br /&gt;
&amp;gt;&amp;gt;   (I do everything command line while ssh'd in) and I want to get rid&lt;br /&gt;
&amp;gt;&amp;gt;   of the bottom thing with the little pluses.  Is this a possibility?&lt;br /&gt;
&amp;gt;&amp;gt;&lt;br /&gt;
&amp;gt; It should be quite easy. Just decompile the edj file, edit the&lt;br /&gt;
&amp;gt; proper section (compare to the tango freerunner.edc file) and recompile&lt;br /&gt;
&amp;gt; it back.&lt;br /&gt;
&amp;gt;&lt;br /&gt;
Not so simple, but it seems to be the right place... check for &amp;quot;*&amp;quot; or&lt;br /&gt;
&amp;quot;+&amp;quot;, they are in the .edc In place, I've added the value &amp;quot;Bar;&amp;quot; in the Categories of&lt;br /&gt;
&amp;quot;qtopia-clock.desktop&amp;quot; and &amp;quot;qtopia-ringtones.desktop&amp;quot; to get these two&lt;br /&gt;
appli accessible from the bottom bar.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Reference: http://lists.openmoko.org/pipermail/community/2008-September/031188.html&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
If something goes wrong at compiling time, there is most certainly something wrong in your freerunner.edc file. The problem is, that edjecc will complain with cryptical text.&lt;br /&gt;
Check if all files referenced are really there and if no syntax errors are present.&lt;br /&gt;
&lt;br /&gt;
In order to install the new theme, it must be referenced (see above) and illume must be restarted.&lt;br /&gt;
&lt;br /&gt;
= Links =&lt;br /&gt;
* [http://docs.enlightenment.org/api/edje/edje-reference.pdf docs.enlightenment.org] - offical edje documentation&lt;br /&gt;
* [http://52grad.de/.stuff/freerunner/ 52grad.de] - example on using edj files&lt;br /&gt;
* [http://trac.enlightenment.org/e/export/36203/trunk/THEMES/b_and_w/theme.edc example theme file] - with LOTS of comments&lt;br /&gt;
&lt;br /&gt;
[[Category:Settings]]&lt;br /&gt;
[[Category:System Developers]]&lt;/div&gt;</summary>
		<author><name>Narmo</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Android/ru</id>
		<title>Android/ru</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Android/ru"/>
				<updated>2008-11-06T18:57:08Z</updated>
		
		<summary type="html">&lt;p&gt;Narmo: New page: {{Languages|Android}} {{Distributions|Android}}  = Обновления =  * 20081104 Первый образ Android был создан Шоном МакНейлом! Вы можете ...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Android}}&lt;br /&gt;
{{Distributions|Android}}&lt;br /&gt;
&lt;br /&gt;
= Обновления =&lt;br /&gt;
&lt;br /&gt;
* 20081104 Первый образ Android был создан Шоном МакНейлом! Вы можете его потестировать: [http://people.openmoko.org/sean_mcneil/ образ ядра и файловой системы Android] - SMS и звонки работают, WiFi и Bluetooth - пока нет. [http://onlinedev.blogspot.com/2008/11/porting-android-phase-3-done.html ''источник новости'']&lt;br /&gt;
* 20081029 [[User:Cfriedt]] [http://benno.id.au Benno] модифицировал систему сборки Android, так что теперь она создаёт образ JFFS2 вместо YAFFS. Unlike JFFS2, which [http://64.233.169.104/search?q=cache:e8czlAdKTn0J:gentoo-wiki.com/JFFS2/Mounting+gentoo+jffs2&amp;amp;hl=en&amp;amp;ct=clnk&amp;amp;cd=1&amp;amp;gl=ca&amp;amp;client=firefox-a can be mounted read-only from an image], mounting a YAFFS image is not possible unless it's already been written to flash (it complains about the block device being of type '1' and not 'NAND'). JFFS2 also has the benefit that it's a standard OpenMoko image format (See [[Flashing the Neo FreeRunner]] or [[Flashing the Neo 1973]])&lt;br /&gt;
* 20081023 [[User:Bricode]] To track the status of which parts of the Android source tree contain ARMv5 specific code, I've created a table of where it is contained, and the status of patches. It can be found at: http://spreadsheets.google.com/pub?key=pzDEXnU19gkeTjpD28t-7fw&lt;br /&gt;
* 20081022 [[User:Cfriedt]] I was able to 'trivially' compile all of the Android source code without error for the ARMv4T architecture by removing v5TE instructions. Although it will definitely not run anything predictably, at least now that I know the build system will work with a few simple substitutions in build/core/combo/arm-linux.mk. At this point I am able to go ahead and re-implement v5TE instructions as v4T instruction sequences instead (or re-implement entire sections of assembly with hand-optimized v4T instructions).&lt;br /&gt;
* 20081021 [[User:Cfriedt]] Android -&amp;gt; FreeRunner updates on my [http://perpetual-notion.blogspot.com/search/label/android blog]&lt;br /&gt;
* 20081021 Google released the majority [http://source.android.com/download source code] for the phone under Apache free and open-source [http://source.android.com/license license], with portions covered by other existing licenses, such as the Linux kernel under GPLv2.&lt;br /&gt;
* 200810?? [http://www.koolu.com Koolu.com] has announced that they will be '''selling the OpenMoko Freerunner with Android pre-installed''' beginning in November 2008, as well as offering '''free downloads of the Freerunner port of Android''' to existing Freerunner owners. Well-known open-source advocate [http://koolu.com/The-Koolu-Team/maddog.html Jon &amp;quot;maddog&amp;quot; Hall] is CTO and Ambassador for Koolu.&lt;br /&gt;
&lt;br /&gt;
= Вступление =&lt;br /&gt;
Эта страница посвящена портированию [http://www.android.com Android OS] на устройства [[Neo 1973]] и [[Neo FreeRunner]]. С момента, как Android OS была [http://source.android.com/posts/opensource выпущена] 2008-10-21, [http://benno.id.au/blog/2007/11/21/android-neo1973 работа] по портированию Android на [[Neo1973 Hardware|Neo 1973]] и [[Neo_FreeRunner_GTA02_Hardware|FreeRunner]] [http://perpetual-notion.blogspot.com/search/label/android продолжается] и [http://groups.google.com/group/android-porting продолжается].&lt;br /&gt;
&lt;br /&gt;
== Goals ==&lt;br /&gt;
# Systematically introduce patches for ARMv4T in the Android codebase&lt;br /&gt;
# Provide Neo1973 and Neo FreeRunner hardware-dependent patches in the Android codebase, leveraging the work already done by the Openmoko developers, without forcing Android-specific changes upstream&lt;br /&gt;
# Provide a useable Android filesystem and kernel on the [[Distributions]] page that conform to current Openmoko installation routines&lt;br /&gt;
&lt;br /&gt;
== Early Attempts ==&lt;br /&gt;
As [http://benno.id.au Ben Leslie] had pointed out on his [http://benno.id.au/blog/2007/11/21/android-neo1973 blog] far before the source code was released, [http://www.android.com Android] was originally designed to work with the ARMv5TE [http://en.wikipedia.org/wiki/Instruction_set_architecture instruction set architecture] (ISA), which allows for [http://en.wikipedia.org/wiki/ARM_architecture#DSP_Enhancement_Instructions DSP enhanced instructions]. Contrary to the ARMv5TE ISA, the Neo1973 and FreeRunner handsets both feature an arm920t core, which comply to the ARMv4T ISA.&lt;br /&gt;
&lt;br /&gt;
Before the source code was released, kernel trap handlers were implemented to 'emulate' the ARMv5TE ISA. Although the results worked in many cases, trapping is costly and performance suffered as a result. Moreover, without explicitly knowing which conditions were set by various instructions, such as Thumb Mode execution, the result became nondeterministic.&lt;br /&gt;
&lt;br /&gt;
== Current State ==&lt;br /&gt;
&lt;br /&gt;
With the release of the Android [http://source.android.com source code], the Open Source community is no longer limited to dealing with a binary-only product. The Open Handset Alliance (OHA) has let their source code become their product for everyone enrich and benefit from.&lt;br /&gt;
&lt;br /&gt;
Currently, porting efforts are underway in many circles. Patches should be submitted via the [http://source.android.com/submit-patches official Android channels].&lt;br /&gt;
&lt;br /&gt;
To track the status of which parts of the Android source tree contain ARMv5 specific code, I've created a table of where it is contained, and the status of patches. It can be found at: http://spreadsheets.google.com/pub?key=pzDEXnU19gkeTjpD28t-7fw [[User:Bricode]]&lt;br /&gt;
&lt;br /&gt;
[[User:Seanmcneil3|Sean McNeil]] said that he was able to get Androind running (including telephony) in his Freerunner [http://3v1n0.tuxfamily.org/tumblelog/post/368 source].&lt;br /&gt;
&lt;br /&gt;
Ben Leslie mentioned on the android-porting list that he was able to get the 'Android' logo to appear on his Neo 1973.&lt;br /&gt;
&lt;br /&gt;
= How to Help =&lt;br /&gt;
&lt;br /&gt;
== Getting Started ==&lt;br /&gt;
&lt;br /&gt;
You can start by following the instructions to download and build the Android source from scratch. Please see [http://source.android.com/download http://source.android.com/download] and follow the instructions for your architecture.&lt;br /&gt;
&lt;br /&gt;
== Publicize Your Efforts ==&lt;br /&gt;
&lt;br /&gt;
It's generally a good idea to make your efforts known via wiki systems, public mailing lists, forums, and publically open version control systems.&lt;br /&gt;
&lt;br /&gt;
Always take credit for your work but please don't do it in the form of comments. Some code is already hard enough to read without comments polluting the text. The best thing to do is to create a patch and put a header with your information at the top. Collaboration systems such as git might already do this for you (??).&lt;br /&gt;
&lt;br /&gt;
If you create something new and have the ability to designate the license for it, please consider license compatibility issues.&lt;br /&gt;
&lt;br /&gt;
== Porting Strategy ==&lt;br /&gt;
&lt;br /&gt;
* Analysis and leverage of the existing build system&lt;br /&gt;
** buid/core/combo/arm-linux.mk&lt;br /&gt;
*** -D__ARCH_ARM_4__ -D__ARCH_ARM_4T__&lt;br /&gt;
*** -march=armv4t -mcpu=arm920t&lt;br /&gt;
** fix various static references to 'armv5'&lt;br /&gt;
* Isolating ARMv5TE ISA dependent code&lt;br /&gt;
** e.g. grep -n -R -i &amp;quot;${armv5te_isa_pattern}&amp;quot; ~/android&lt;br /&gt;
* Abstracting&lt;br /&gt;
** ( C/C++ )&lt;br /&gt;
*** Use inlined functions / #ifdef statments to implement functions in a portable manner&lt;br /&gt;
*** For inlined assembler calls, it's acceptable for now to use generic C code instead, so long as later on we optimize it by hand.&lt;br /&gt;
** ( ASM )&lt;br /&gt;
*** Proprocessor statements based on ISA / architecture, e.g. #ifdef __ARCH_ARM_5__ ... #endif #ifdef __ARCH_ARM_4__ ... #endif&lt;br /&gt;
*** It's highly suggested that preprocessor statements should not be nested (i.e. make them mutually exclusive)&lt;br /&gt;
*** Some people have suggested that we should not do #ifdef's based on ARCH or ISA, but rather based on an AndroidConfig.h which would define macros like PLD(...) #ifdef HAVE_ARM_PLD pld #else ... #endif .&lt;br /&gt;
&lt;br /&gt;
For each ARMv5TE instruction, one could potentially&lt;br /&gt;
* Implement the instruction using general registers instead of DSP calls (i.e. eabi / softfloat)&lt;br /&gt;
* If that is a) nondeterministic, or b) slow, then sections of code need to be analyzed and hand-optimized for the ARMv4T isa&lt;br /&gt;
&lt;br /&gt;
== List of Unsupported Instructions ==&lt;br /&gt;
&lt;br /&gt;
This is a list of opcodes, extracted from the Android source, that are unsupported for ARMv4T compliant processors (specifically the arm920t). The opcodes represent instructions available for ARMv5, ARMv5T, and ARMv5TE architectures, which are not present in the ARMv4T ISA. The list was obtained by exhaustively editing the recompiling the Android source code until it compiled without error.&lt;br /&gt;
&lt;br /&gt;
Please keep in mind, that in some cases, translating these instructions into a sequence of ARMv4T instructions will be impossible and / or result in nondeterministic execution because of&lt;br /&gt;
* the requirement of additional context&lt;br /&gt;
* the tendencies of certain opcodes to change condition registers that may or may not be present in the arm920t core&lt;br /&gt;
&lt;br /&gt;
=== Opcodes ===&lt;br /&gt;
&lt;br /&gt;
{{scroll box|height=480px|text=&lt;br /&gt;
&amp;lt;TABLE BORDER=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TH&amp;gt;Opcode&amp;lt;/TH&amp;gt;&lt;br /&gt;
&amp;lt;TH&amp;gt;Desription&amp;lt;/TH&amp;gt;&lt;br /&gt;
&amp;lt;TH&amp;gt;[[http://www.arm.com/miscPDFs/14128.pdf PDF]] Page Number&amp;lt;/TH&amp;gt;&lt;br /&gt;
&amp;lt;TH&amp;gt;C&amp;lt;/TH&amp;gt;&lt;br /&gt;
&amp;lt;TH&amp;gt;ASM&amp;lt;/TH&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TH VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;BLX(1)&amp;lt;/TH&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;Branch, Link, and Exchange&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;166&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;N/A (Unused in Android)&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;N/A (Unused in Android)&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TH VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;BLX(2)&amp;lt;/TH&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;Branch, Link, and Exchange&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;168&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&lt;br /&gt;
[[User:Cfriedt]] 20081028&lt;br /&gt;
Remove from inline assembly with something like&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#ifdef HAVE_BLX&lt;br /&gt;
... (inline asm) ...&lt;br /&gt;
#else&lt;br /&gt;
... (inline asm with equivalent blx code, as shown to the right) ...&lt;br /&gt;
#endif&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&lt;br /&gt;
[[User:Cfriedt]] 20081028&lt;br /&gt;
Substitute with a macro reference such as&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#ifdef HAVE_BLX&lt;br /&gt;
#define BLX(a) \&lt;br /&gt;
blx a&lt;br /&gt;
#else&lt;br /&gt;
#define BLX(a) \&lt;br /&gt;
mov pc,lr \&lt;br /&gt;
bx a&lt;br /&gt;
#endif&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TH VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;CLZ&amp;lt;/TH&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;Count Leading Zeros&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;175&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&lt;br /&gt;
[[User:Cfriedt]] 20081028&lt;br /&gt;
Remove from inline assembly with something like&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#ifdef HAVE_CLZ&lt;br /&gt;
... (inline asm) ...&lt;br /&gt;
#else&lt;br /&gt;
... (inline asm with equivalent clz code, as shown to the right) ...&lt;br /&gt;
#endif&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&lt;br /&gt;
[[User:Cfriedt]] 20081029&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#ifdef HAVE_CLZ&lt;br /&gt;
#define CLZ(Rd,Rm) \&lt;br /&gt;
clz Rd,Rm&lt;br /&gt;
#else&lt;br /&gt;
#define CLZ(Rd,Rm) \&lt;br /&gt;
...&lt;br /&gt;
#endif&lt;br /&gt;
...&lt;br /&gt;
CLZ(Rd,Rm)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TH VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;LDRD&amp;lt;/TH&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;Load Registers Doubleword&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;200&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&lt;br /&gt;
[[User:Cfriedt]] 20081028&lt;br /&gt;
Substitute different inline assembly code with something like&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#ifdef HAVE_LDRD&lt;br /&gt;
... (inline asm) ...&lt;br /&gt;
#else&lt;br /&gt;
... (inline asm with ldrd substituted) ...&lt;br /&gt;
#endif&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&lt;br /&gt;
[[User:Cfriedt]] 20081028&lt;br /&gt;
Substitute with a macro reference such as&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#ifdef HAVE_LDRD&lt;br /&gt;
#define LDRD(a,b) \&lt;br /&gt;
ldrd a,b&lt;br /&gt;
#else&lt;br /&gt;
#define LDRD(a,b) \&lt;br /&gt;
...&lt;br /&gt;
#endif&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TH VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;PLD&amp;lt;/TH&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;Preload Data&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;240&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&lt;br /&gt;
[[User:Cfriedt]] 20081028&lt;br /&gt;
Remove from inline assembly with something like&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#ifdef HAVE_PLD&lt;br /&gt;
... (inline asm) ...&lt;br /&gt;
#else&lt;br /&gt;
... (inline asm with pld removed) ...&lt;br /&gt;
#endif&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&lt;br /&gt;
[[User:Cfriedt]] 20081028&lt;br /&gt;
Remove or substitute with a macro reference such as&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#ifdef HAVE_PLD&lt;br /&gt;
#define PLD(a,b) \&lt;br /&gt;
pld a,b&lt;br /&gt;
#else&lt;br /&gt;
#define PLD(a,b)&lt;br /&gt;
#endif&lt;br /&gt;
...&lt;br /&gt;
PLD(r0,#0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TH VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;SMLA&amp;amp;lt;x&amp;amp;gt;&amp;amp;lt;y&amp;amp;gt;&amp;lt;/TH&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;Signed Multiply-Accumulate&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;291&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TH VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;SMLAL&amp;amp;lt;x&amp;amp;gt;&amp;amp;lt;y&amp;amp;gt;&amp;lt;/TH&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;Signed Multiply Accumulate Long&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;298&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TH VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;SMLAW&amp;amp;lt;y&amp;amp;gt;&amp;lt;/TH&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;Signed Multiply-Accumulate Word&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;302&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TH VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;SMUL&amp;amp;lt;x&amp;amp;gt;&amp;amp;lt;y&amp;amp;gt;&amp;lt;/TH&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;Signed Multiply&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;316&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TH VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;SMULW&amp;amp;lt;y&amp;amp;gt;&amp;lt;/TH&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;Signed Multiply Word&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;320&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TH VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;QADD&amp;lt;/TH&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;Saturating Add&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;242&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TH VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;QDADD&amp;lt;/TH&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;Saturating Double and Add&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;249&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TH VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;QDSUB&amp;lt;/TH&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;Saturating Double and Subtract&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;251&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TH VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;QSUB&amp;lt;/TH&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;Saturating Subtract&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;253&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TH VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;STRD&amp;lt;/TH&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;Store Registers Doubleword&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;349&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&lt;br /&gt;
[[User:Cfriedt]] 20081028&lt;br /&gt;
Substitute different inline assembly code with something like&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#ifdef HAVE_STRD&lt;br /&gt;
... (inline asm) ...&lt;br /&gt;
#else&lt;br /&gt;
... (inline asm without strd) ...&lt;br /&gt;
#endif&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&lt;br /&gt;
[[User:Cfriedt]] 20081028&lt;br /&gt;
Substitute with a macro reference such as&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#ifdef HAVE_STRD&lt;br /&gt;
#define STRD(a,b) \&lt;br /&gt;
strd a,b&lt;br /&gt;
#else&lt;br /&gt;
#define STRD(a,b) \&lt;br /&gt;
...&lt;br /&gt;
#endif&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;/TABLE&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Scanning for Files That Use the ARMv5TE ISA ===&lt;br /&gt;
&lt;br /&gt;
Using the above list of opcodes, one can scan the Android source code for ARMv4T-incompatible instruction sequences.&lt;br /&gt;
&lt;br /&gt;
'''Code:'''&lt;br /&gt;
{{scroll box|height=240px|text=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
# $1 is the android directory&lt;br /&gt;
&lt;br /&gt;
if [ $# -ne 1 ]; then&lt;br /&gt;
exit -1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
cd &amp;quot;${1}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
opcodes=&amp;quot;blx clz ldrd pld smlabb smlabt smlatt&lt;br /&gt;
smlal smlawb smlawt smulbb smulbt smultt smulwb&lt;br /&gt;
smulwt qadd qdadd qdsub qsub strd&amp;quot;&lt;br /&gt;
&lt;br /&gt;
for op in ${opcodes}; do&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;* ${op} =====================================&amp;quot;&lt;br /&gt;
&lt;br /&gt;
if [ ! -e .files.${op} ]; then&lt;br /&gt;
&lt;br /&gt;
files=&amp;quot;$(grep -R -i &amp;quot;${op} &amp;quot; * 2&amp;gt;/dev/null)&amp;quot;&lt;br /&gt;
files=&amp;quot;$(echo $files | grep -v &amp;quot;^Binary file&amp;quot; | sed -e 's/:.*//')&amp;quot;&lt;br /&gt;
files=&amp;quot;$(echo $files| grep -v &amp;quot;CREDIT\|README\|^\(kernel/\|.git/\)\|\(\.txt\)$&amp;quot; | sort -u)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;${files}&amp;quot; &amp;gt; .files.${op}&lt;br /&gt;
&lt;br /&gt;
else&lt;br /&gt;
files=&amp;quot;$(cat .files.${op})&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
for fil in ${files}; do&lt;br /&gt;
lines=&amp;quot;$(grep -n -i &amp;quot;${op} &amp;quot; ${fil} | sed -e 's/:.*//g' )&amp;quot;&lt;br /&gt;
lines=&amp;quot;$(echo $lines | sed -e 's/ /,/g')&amp;quot;&lt;br /&gt;
echo &amp;quot;** ${fil}: lines {${lines}}&amp;quot;&lt;br /&gt;
done&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Source Files in Android that Use the ARMv5TE ISA ===&lt;br /&gt;
&lt;br /&gt;
The list of files below may or may not be complete. There might also be some assembly code that is generated with a python script (verification?).&lt;br /&gt;
&lt;br /&gt;
{{scroll box|height=150px|text=&lt;br /&gt;
* blx =====================================&lt;br /&gt;
** bionic/libc/tools/gensyscalls.py: lines {168,186}&lt;br /&gt;
** bootloader/legacy/nandwrite/init.S: lines {77}&lt;br /&gt;
** bootloader/legacy/usbloader/init.S: lines {95}&lt;br /&gt;
** dalvik/vm/arch/arm/CallEABI.S: lines {239}&lt;br /&gt;
** dalvik/vm/arch/arm/CallOldABI.S: lines {145}&lt;br /&gt;
** development/emulator/qtools/thumbdis.cpp: lines {187,265}&lt;br /&gt;
** external/qemu/target-arm/translate.c: lines {1151,1971,2444}&lt;br /&gt;
** external/qemu/trace.c: lines {774,1353,1358}&lt;br /&gt;
** system/core/libpixelflinger/codeflinger/disassem.c: lines {416}&lt;br /&gt;
* clz =====================================&lt;br /&gt;
** development/emulator/qtools/armdis.cpp: lines {654}&lt;br /&gt;
** external/opencore/codecs_v2/audio/aac/dec/src/pv_normalize.h: lines {67,84}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/include/norm_l.h: lines {137}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_wb/dec/src/normalize_amr_wb.h: lines {78,95}&lt;br /&gt;
** external/opencore/codecs_v2/audio/mp3/dec/src/pvmp3_normalize.h: lines {67,84}&lt;br /&gt;
** external/opencore/codecs_v2/video/avc_h264/dec/src/vlc.cpp: lines {23}&lt;br /&gt;
** external/opencore/codecs_v2/video/m4v_h263/enc/src/vlc_encode_inline.h: lines {125,162,168,204,218}&lt;br /&gt;
** external/qemu/target-arm/translate.c: lines {1247}&lt;br /&gt;
** external/skia/libcorecg/Sk64.cpp: lines {340,341,343}&lt;br /&gt;
** external/skia/libcorecg/SkMatrix.cpp: lines {500,501}&lt;br /&gt;
** external/skia/libsgl/effects/SkColorMatrixFilter.cpp: lines {135}&lt;br /&gt;
** external/skia/libsgl/sgl/SkBitmap.cpp: lines {945,946,947}&lt;br /&gt;
** external/skia/libsgl/sgl/SkBitmapShader.cpp: lines {32,33,34}&lt;br /&gt;
** external/skia/libsgl/sgl/SkGraphics.cpp: lines {429,437}&lt;br /&gt;
* ldrd =====================================&lt;br /&gt;
** dalvik/vm/mterp/armv5/OP_AGET_WIDE.S: lines {28}&lt;br /&gt;
** dalvik/vm/mterp/armv5/OP_IGET_WIDE.S: lines {37}&lt;br /&gt;
** dalvik/vm/mterp/armv5/OP_IGET_WIDE_QUICK.S: lines {10}&lt;br /&gt;
** dalvik/vm/mterp/armv5/OP_SGET_WIDE.S: lines {17}&lt;br /&gt;
** dalvik/vm/mterp/out/InterpAsm-armv5.S: lines {2653,7464,8318,8390}&lt;br /&gt;
** system/core/libpixelflinger/rotate90CW_4x4_16v6.S: lines {40,41,42,43}&lt;br /&gt;
* pld =====================================&lt;br /&gt;
** bionic/libc/arch-arm/bionic/memcmp.S: lines {37,44,45,56,57,107,108,195,196}&lt;br /&gt;
** bionic/libc/arch-arm/bionic/memcmp16.S: lines {37,44,45,67,68,116,117,198,199}&lt;br /&gt;
** bionic/libc/arch-arm/bionic/memcpy.S: lines {55,56,57,145,266,293,320}&lt;br /&gt;
** bionic/libc/arch-arm/bionic/strlen.c: lines {59,65}&lt;br /&gt;
** bionic/libc/kernel/arch-arm/asm/arch/irqs.h: lines {162}&lt;br /&gt;
** external/elfutils/src/Makefile: lines {243}&lt;br /&gt;
** external/elfutils/src/Makefile.am: lines {32}&lt;br /&gt;
** external/elfutils/src/Makefile.in: lines {243}&lt;br /&gt;
** external/jpeg/jidctfst.S: lines {69,235,247}&lt;br /&gt;
** external/qemu/target-arm/translate.c: lines {1149}&lt;br /&gt;
** system/core/libpixelflinger/codeflinger/ARMAssembler.cpp: lines {368}&lt;br /&gt;
** system/core/libpixelflinger/codeflinger/ARMAssemblerInterface.cpp: lines {104,108,117}&lt;br /&gt;
** system/core/libpixelflinger/t32cb16blend.S: lines {111,112,134,143}&lt;br /&gt;
* smlabb =====================================&lt;br /&gt;
** external/jpeg/jidctfst.S: lines {110,115,155,156}&lt;br /&gt;
** external/neven/Embedded/common/src/b_BasicEm/Math.c: lines {584,589}&lt;br /&gt;
** external/opencore/codecs_v2/audio/aac/dec/src/fxp_mul32_arm_gcc.h: lines {147,166}&lt;br /&gt;
** external/opencore/codecs_v2/audio/aac/dec/src/fxp_mul32_arm_v5.h: lines {120,129}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/include/basic_op_arm_gcc_v5.h: lines {514,533}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/include/basic_op_arm_v5.h: lines {418,429}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_wb/dec/src/pvamrwbdecoder_basic_op_armv5.h: lines {202}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_wb/dec/src/pvamrwbdecoder_basic_op_gcc_armv5.h: lines {250}&lt;br /&gt;
** external/opencore/codecs_v2/video/m4v_h263/enc/src/dct_inline.h: lines {119,155,167,278,326,341}&lt;br /&gt;
** external/opencore/codecs_v2/video/m4v_h263/enc/src/fastquant_inline.h: lines {178,225,437,517}&lt;br /&gt;
** frameworks/base/libs/audioflinger/AudioMixer.cpp: lines {405,436}&lt;br /&gt;
* smlabt =====================================&lt;br /&gt;
** external/opencore/codecs_v2/audio/aac/dec/src/fxp_mul32_arm_gcc.h: lines {184}&lt;br /&gt;
** external/opencore/codecs_v2/audio/aac/dec/src/fxp_mul32_arm_v5.h: lines {138}&lt;br /&gt;
** external/opencore/codecs_v2/video/m4v_h263/enc/src/dct_inline.h: lines {131,143,294,310}&lt;br /&gt;
* smlatt =====================================&lt;br /&gt;
** external/neven/Embedded/common/src/b_BasicEm/Math.c: lines {585,590}&lt;br /&gt;
** external/opencore/codecs_v2/audio/aac/dec/src/fxp_mul32_arm_v5.h: lines {157}&lt;br /&gt;
** frameworks/base/libs/audioflinger/AudioMixer.cpp: lines {441}&lt;br /&gt;
* smlal =====================================&lt;br /&gt;
** external/opencore/codecs_v2/audio/aac/dec/src/fxp_mul32_arm_v4.h: lines {179,223,236,257,267}&lt;br /&gt;
** external/opencore/codecs_v2/audio/aac/dec/src/fxp_mul32_arm_v4_gcc.h: lines {264,341}&lt;br /&gt;
** external/opencore/codecs_v2/audio/aac/dec/src/fxp_mul32_arm_v5.h: lines {178,188,198}&lt;br /&gt;
** external/opencore/codecs_v2/audio/mp3/dec/src/asm/pvmp3_dct_9.s: lines {84,90,96,101,109,114,116,118,121,132,138,150,163,165,167,174,176,178}&lt;br /&gt;
** external/opencore/codecs_v2/audio/mp3/dec/src/asm/pvmp3_dct_9_gcc.s: lines {73,79,86,90,98,103,105,107,110,121,127,139,152,154,156,163,165,167}&lt;br /&gt;
** external/opencore/codecs_v2/audio/mp3/dec/src/asm/pvmp3_mdct_18.asm: lines {143,162,178,188,192,199,207,217,225,231,237,241,244}&lt;br /&gt;
** external/opencore/codecs_v2/audio/mp3/dec/src/asm/pvmp3_mdct_18.s: lines {145,164,180,190,194,201,209,219,227,233,239,243,246}&lt;br /&gt;
** external/opencore/codecs_v2/audio/mp3/dec/src/asm/pvmp3_mdct_18_gcc.s: lines {143,162,178,188,192,199,207,217,225,231,237,241,244}&lt;br /&gt;
** external/opencore/codecs_v2/audio/mp3/dec/src/asm/pvmp3_polyphase_filter_window.asm: lines {62,63,66,72,76,77,81,82,85,90,94,97,99,100,103,108,113,114,118,119,122,129,136,137,176,179,183,187,190,193}&lt;br /&gt;
** external/opencore/codecs_v2/audio/mp3/dec/src/asm/pvmp3_polyphase_filter_window.s: lines {67,68,71,77,81,82,86,87,90,95,99,102,104,105,108,113,118,119,123,124,127,134,141,142,181,184,188,192,195,198}&lt;br /&gt;
** external/opencore/codecs_v2/audio/mp3/dec/src/asm/pvmp3_polyphase_filter_window_gcc.s: lines {65,66,69,75,79,80,84,85,88,93,97,100,102,103,106,111,116,117,121,122,125,132,139,140,179,182,186,190,193,196}&lt;br /&gt;
** external/opencore/codecs_v2/audio/mp3/dec/src/pv_mp3dec_fxd_op_arm.h: lines {148}&lt;br /&gt;
** external/qemu/trace.c: lines {813}&lt;br /&gt;
** frameworks/base/opengl/libagl/iterators.S: lines {66,67}&lt;br /&gt;
** frameworks/base/opengl/libagl/matrix.h: lines {67,68,96,126,127,282,283,314,315,316}&lt;br /&gt;
* smlawb =====================================&lt;br /&gt;
** external/opencore/codecs_v2/audio/aac/dec/src/fxp_mul32_arm_gcc.h: lines {203,259}&lt;br /&gt;
** external/opencore/codecs_v2/audio/aac/dec/src/fxp_mul32_arm_v5.h: lines {166,416}&lt;br /&gt;
** frameworks/base/libs/audioflinger/AudioResamplerSinc.cpp: lines {93,109}&lt;br /&gt;
** frameworks/base/opengl/libagl/matrix.h: lines {163,203}&lt;br /&gt;
* smlawt =====================================&lt;br /&gt;
** frameworks/base/libs/audioflinger/AudioResamplerSinc.cpp: lines {114}&lt;br /&gt;
** frameworks/base/opengl/libagl/matrix.h: lines {162,202,243,244}&lt;br /&gt;
* smulbb =====================================&lt;br /&gt;
** external/jpeg/jidctfst.S: lines {109,114,151,153}&lt;br /&gt;
** external/opencore/codecs_v2/audio/aac/dec/src/fxp_mul32_arm_gcc.h: lines {79}&lt;br /&gt;
** external/opencore/codecs_v2/audio/aac/dec/src/fxp_mul32_arm_v5.h: lines {71,81}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/include/basic_op_arm_gcc_v5.h: lines {207,251,297,348,361,375,427,440,487}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/include/basic_op_arm_v5.h: lines {199,234,274,314,316,326,367,369,404}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/include/l_mac.h: lines {121,137}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/include/l_msu.h: lines {123,142}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/include/l_mult.h: lines {122,140}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/include/mpy_32.h: lines {132,134,138,164,177,191}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/include/mpy_32_16.h: lines {127,129,150,163}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/include/mult.h: lines {121,141}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_wb/dec/src/pvamrwbdecoder_basic_op_armv5.h: lines {115,139,151,163,189,190,212}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_wb/dec/src/pvamrwbdecoder_basic_op_gcc_armv5.h: lines {112,113,164,183,201,218,265}&lt;br /&gt;
** external/opencore/codecs_v2/video/m4v_h263/enc/src/fastquant_inline.h: lines {250,457,531}&lt;br /&gt;
** external/skia/include/corecg/SkMath.h: lines {170}&lt;br /&gt;
** frameworks/base/libs/audioflinger/AudioMixer.cpp: lines {420,462}&lt;br /&gt;
** system/core/libpixelflinger/t32cb16blend.S: lines {39,66,74,82}&lt;br /&gt;
* smulbt =====================================&lt;br /&gt;
** external/opencore/codecs_v2/audio/aac/dec/src/fxp_mul32_arm_gcc.h: lines {115}&lt;br /&gt;
** external/opencore/codecs_v2/audio/aac/dec/src/fxp_mul32_arm_v5.h: lines {109}&lt;br /&gt;
** system/core/libpixelflinger/codeflinger/texturing.cpp: lines {1091}&lt;br /&gt;
** system/core/libpixelflinger/t32cb16blend.S: lines {47,55}&lt;br /&gt;
* smultt =====================================&lt;br /&gt;
** external/opencore/codecs_v2/audio/aac/dec/src/fxp_mul32_arm_gcc.h: lines {131}&lt;br /&gt;
** external/opencore/codecs_v2/audio/aac/dec/src/fxp_mul32_arm_v5.h: lines {100}&lt;br /&gt;
** frameworks/base/libs/audioflinger/AudioMixer.cpp: lines {467}&lt;br /&gt;
** frameworks/base/libs/audioflinger/AudioResamplerSinc.cpp: lines {73}&lt;br /&gt;
* smulwb =====================================&lt;br /&gt;
** external/opencore/codecs_v2/audio/aac/dec/src/fxp_mul32_arm_gcc.h: lines {221}&lt;br /&gt;
** external/opencore/codecs_v2/audio/aac/dec/src/fxp_mul32_arm_v5.h: lines {373}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_wb/dec/src/pvamrwbdecoder_basic_op_armv5.h: lines {222}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_wb/dec/src/pvamrwbdecoder_basic_op_gcc_armv5.h: lines {283}&lt;br /&gt;
** external/opencore/codecs_v2/audio/sbc/enc/src/sbcenc_filter.h: lines {33}&lt;br /&gt;
** frameworks/base/opengl/libagl/matrix.h: lines {161,201,242}&lt;br /&gt;
* smulwt =====================================&lt;br /&gt;
** external/opencore/codecs_v2/audio/aac/dec/src/fxp_mul32_arm_gcc.h: lines {202,240}&lt;br /&gt;
** external/opencore/codecs_v2/audio/aac/dec/src/fxp_mul32_arm_v5.h: lines {385,415}&lt;br /&gt;
* qadd =====================================&lt;br /&gt;
** external/opencore/codecs_v2/audio/aac/dec/src/fxp_mul32_arm_gcc.h: lines {64}&lt;br /&gt;
** external/opencore/codecs_v2/audio/aac/dec/src/fxp_mul32_arm_v5.h: lines {60}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/include/basic_op_arm_gcc_v5.h: lines {130,256}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/include/basic_op_arm_v5.h: lines {128,235}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/include/l_add.h: lines {122,137}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/include/l_mult.h: lines {123,145}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_wb/dec/src/pvamrwbdecoder_basic_op_armv5.h: lines {71,102,152,176,192}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_wb/dec/src/pvamrwbdecoder_basic_op_gcc_armv5.h: lines {91,115,148,202,234}&lt;br /&gt;
** external/openssl/crypto/bn/bn_prime.c: lines {454,455}&lt;br /&gt;
* qdadd =====================================&lt;br /&gt;
** external/opencore/codecs_v2/audio/aac/dec/src/calc_sbr_synfilterbank.cpp: lines {116,162}&lt;br /&gt;
** external/opencore/codecs_v2/audio/aac/dec/src/trans4m_freq_2_time_fxp.cpp: lines {472,494}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/include/basic_op_arm_gcc_v5.h: lines {212,356,370,385,435,449}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/include/basic_op_arm_v5.h: lines {200,315,321,331,368,371}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/include/l_mac.h: lines {122,142}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/include/mpy_32.h: lines {133,136,140,172,186,201}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/include/mpy_32_16.h: lines {128,131,158,172}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_wb/dec/src/pvamrwbdecoder_basic_op_armv5.h: lines {116}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_wb/dec/src/pvamrwbdecoder_basic_op_gcc_armv5.h: lines {184}&lt;br /&gt;
* qdsub =====================================&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/include/basic_op_arm_gcc_v5.h: lines {302}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/include/basic_op_arm_v5.h: lines {275}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/include/l_msu.h: lines {124,147}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_wb/dec/src/pvamrwbdecoder_basic_op_armv5.h: lines {140}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_wb/dec/src/pvamrwbdecoder_basic_op_gcc_armv5.h: lines {165}&lt;br /&gt;
* qsub =====================================&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/include/basic_op_arm_gcc_v5.h: lines {167}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/include/basic_op_arm_v5.h: lines {162}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/include/l_sub.h: lines {121,138}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_wb/dec/src/pvamrwbdecoder_basic_op_armv5.h: lines {88,127}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_wb/dec/src/pvamrwbdecoder_basic_op_gcc_armv5.h: lines {70,133}&lt;br /&gt;
* strd =====================================&lt;br /&gt;
** dalvik/vm/mterp/armv5/OP_APUT_WIDE.S: lines {31}&lt;br /&gt;
** dalvik/vm/mterp/armv5/OP_IPUT_WIDE.S: lines {39}&lt;br /&gt;
** dalvik/vm/mterp/armv5/OP_IPUT_WIDE_QUICK.S: lines {14}&lt;br /&gt;
** dalvik/vm/mterp/armv5/OP_SPUT_WIDE.S: lines {21}&lt;br /&gt;
** dalvik/vm/mterp/out/InterpAsm-armv5.S: lines {2834,7530,8331,8542}&lt;br /&gt;
** dalvik/vm/oo/Object.h: lines {589}&lt;br /&gt;
** external/opencore/fileformats/avi/parser/include/pv_avifile_streamlist.h: lines {179}&lt;br /&gt;
** external/opencore/fileformats/avi/parser/src/pv_avifile_streamlist.cpp: lines {153}&lt;br /&gt;
** system/core/libpixelflinger/rotate90CW_4x4_16v6.S: lines {47,52,56,60}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Discussion ===&lt;br /&gt;
=== Notes ===&lt;br /&gt;
The file&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
system/core/libpixelflinger/codeflinger/ARMAssembler.cpp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will need special attention. It's responsible for dynamic generation of DSP code.&lt;br /&gt;
&lt;br /&gt;
== Suggestions ==&lt;br /&gt;
* [[User:Cfriedt]] 20081024 I'm not sure how feasible this is, given that the [http://wiki.openmoko.org/wiki/Neo_FreeRunner_Hardware_Issues#SMedia_3362_Documentation_.26_OpenGL_ES_Drivers SMedia 3362 is heavily NDA'd]. However, since the arm920t lacks a floating-point unit / DSP core, is it possible to use the SMedia chip for general-purpose math? This would help in the Android platform, at least, for things like audio and video codecs. Aside from an OpenGL ES driver, OpenMoko documentation for the SMedia would be highly appreciated.&lt;br /&gt;
&lt;br /&gt;
= Important Links =&lt;br /&gt;
(Please Update Me)&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
* [http://source.android.com/documentation Android Documentation]&lt;br /&gt;
* [http://www.arm.com/documentation/ ARM Documentation], (keywords: armv4t, armv5t, armv5te, arm920t, arm926ej-s)&lt;br /&gt;
* [http://www.arm.com/miscPDFs/9658.pdf ARM Assembly Language Programming]&lt;br /&gt;
* [http://www.cse.unsw.edu.au/~cs3221/labs/assembler-intro.pdf An Introduction to the GNU Assembler]&lt;br /&gt;
* [http://www.heyrick.co.uk/assembler/apcsintro.html ARM Procedure Call Standard], [http://en.wikipedia.org/wiki/Calling_convention#ARM ARM Calling Conventions]&lt;br /&gt;
&lt;br /&gt;
== Instruction Set References ==&lt;br /&gt;
* [http://www.arm.com/miscPDFs/14128.pdf ARM Architecture Reference Manual], The definitive ISA documentation&lt;br /&gt;
* [http://www.simplemachines.it/doc/QRC0001H_rvct_v2.1_arm.pdf ARM Instruction Set Quick Reference Card]&lt;br /&gt;
* [http://infocenter.arm.com/help/topic/com.arm.doc.qrc0001l/QRC0001_UAL.pdf ARM and Thumb -2 Instruction Set Quick Reference Card]&lt;br /&gt;
* [http://infocenter.arm.com/help/topic/com.arm.doc.dvi0025b/DVI0025.pdf ARMv4T] (See section 1.4.13)&lt;br /&gt;
* [http://infocenter.arm.com/help/topic/com.arm.doc.dvi0014a/DVI0014A_ARM10T_PO.pdf ARMv5T] (See section 4.16)&lt;br /&gt;
* [http://www.arm.com/pdfs/ARM-DSP.pdf ARM DSP Enhanced Instruction Set]&lt;br /&gt;
* [http://infocenter.arm.com/help/topic/com.arm.doc.ihi0042c/IHI0042C_aapcs.pdf Procedure Call Standard for the ARM Architecture]&lt;br /&gt;
&lt;br /&gt;
== Hardware Reference ==&lt;br /&gt;
&lt;br /&gt;
* [[Neo1973 Hardware]]&lt;br /&gt;
* [[Neo FreeRunner GTA02 Hardware]]&lt;br /&gt;
&lt;br /&gt;
== Communities ==&lt;br /&gt;
* [http://source.android.com/discuss Android Public Mailing Lists]&lt;br /&gt;
** Specifically, [http://groups.google.com/group/android-porting android-porting]&lt;br /&gt;
* [http://lists.openmoko.org/mailman/listinfo OpenMoko Mailing Lists]&lt;br /&gt;
** Specifically, [http://lists.openmoko.org/mailman/listinfo/openmoko-kernel openmoko-kernel]&lt;br /&gt;
* [http://forum.koolu.org/viewforum.php?f=10 Android on FreeRunner] at KoolU.com&lt;br /&gt;
* [[Openmoko Local Groups]]&lt;br /&gt;
* [[Openmoko:Community_Portal]]&lt;br /&gt;
&lt;br /&gt;
= See also =&lt;br /&gt;
&lt;br /&gt;
* [[Debug_Board]]&lt;br /&gt;
&lt;br /&gt;
= External Links =&lt;/div&gt;</summary>
		<author><name>Narmo</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Android</id>
		<title>Android</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Android"/>
				<updated>2008-11-06T18:30:16Z</updated>
		
		<summary type="html">&lt;p&gt;Narmo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Android}}&lt;br /&gt;
{{Distributions|Android}}&lt;br /&gt;
&lt;br /&gt;
= Updates =&lt;br /&gt;
&lt;br /&gt;
* 20081104 The first Android-image has been successfully created by Sean McNeil! You can try on your own: [http://people.openmoko.org/sean_mcneil/ android image and kernel] - sms and calling works, wifi and bluetooth doesn't. [http://onlinedev.blogspot.com/2008/11/porting-android-phase-3-done.html ''news-source'']&lt;br /&gt;
* 20081029 [[User:Cfriedt]] [http://benno.id.au Benno] has modified Android's build system so that it will output a JFFS2 image instead of YAFFS . Unlike JFFS2, which [http://64.233.169.104/search?q=cache:e8czlAdKTn0J:gentoo-wiki.com/JFFS2/Mounting+gentoo+jffs2&amp;amp;hl=en&amp;amp;ct=clnk&amp;amp;cd=1&amp;amp;gl=ca&amp;amp;client=firefox-a can be mounted read-only from an image], mounting a YAFFS image is not possible unless it's already been written to flash (it complains about the block device being of type '1' and not 'NAND'). JFFS2 also has the benefit that it's a standard OpenMoko image format (See [[Flashing the Neo FreeRunner]] or [[Flashing the Neo 1973]])&lt;br /&gt;
* 20081023 [[User:Bricode]] To track the status of which parts of the Android source tree contain ARMv5 specific code, I've created a table of where it is contained, and the status of patches. It can be found at: http://spreadsheets.google.com/pub?key=pzDEXnU19gkeTjpD28t-7fw&lt;br /&gt;
* 20081022 [[User:Cfriedt]] I was able to 'trivially' compile all of the Android source code without error for the ARMv4T architecture by removing v5TE instructions. Although it will definitely not run anything predictably, at least now that I know the build system will work with a few simple substitutions in build/core/combo/arm-linux.mk. At this point I am able to go ahead and re-implement v5TE instructions as v4T instruction sequences instead (or re-implement entire sections of assembly with hand-optimized v4T instructions).&lt;br /&gt;
* 20081021 [[User:Cfriedt]] Android -&amp;gt; FreeRunner updates on my [http://perpetual-notion.blogspot.com/search/label/android blog]&lt;br /&gt;
* 20081021 Google released the majority [http://source.android.com/download source code] for the phone under Apache free and open-source [http://source.android.com/license license], with portions covered by other existing licenses, such as the Linux kernel under GPLv2.&lt;br /&gt;
* 200810?? [http://www.koolu.com Koolu.com] has announced that they will be '''selling the OpenMoko Freerunner with Android pre-installed''' beginning in November 2008, as well as offering '''free downloads of the Freerunner port of Android''' to existing Freerunner owners. Well-known open-source advocate [http://koolu.com/The-Koolu-Team/maddog.html Jon &amp;quot;maddog&amp;quot; Hall] is CTO and Ambassador for Koolu.&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
This page is dedicated to porting the [http://www.android.com Android OS] to the [[Neo 1973]] and [[Neo FreeRunner]] handsets. Since the Android OS was [http://source.android.com/posts/opensource  publically released] on 20081021, [http://benno.id.au/blog/2007/11/21/android-neo1973 work] [http://perpetual-notion.blogspot.com/search/label/android is] [http://groups.google.com/group/android-porting currently underway] to port Android to the [[Neo1973 Hardware|Neo 1973]] and [[Neo_FreeRunner_GTA02_Hardware|FreeRunner]] handsets.&lt;br /&gt;
&lt;br /&gt;
== Goals ==&lt;br /&gt;
# Systematically introduce patches for ARMv4T in the Android codebase&lt;br /&gt;
# Provide Neo1973 and Neo FreeRunner hardware-dependent patches in the Android codebase, leveraging the work already done by the Openmoko developers, without forcing Android-specific changes upstream&lt;br /&gt;
# Provide a useable Android filesystem and kernel on the [[Distributions]] page that conform to current Openmoko installation routines&lt;br /&gt;
&lt;br /&gt;
== Early Attempts ==&lt;br /&gt;
As [http://benno.id.au Ben Leslie] had pointed out on his [http://benno.id.au/blog/2007/11/21/android-neo1973 blog] far before the source code was released, [http://www.android.com Android] was originally designed to work with the ARMv5TE [http://en.wikipedia.org/wiki/Instruction_set_architecture instruction set architecture] (ISA), which allows for [http://en.wikipedia.org/wiki/ARM_architecture#DSP_Enhancement_Instructions DSP enhanced instructions]. Contrary to the ARMv5TE ISA, the Neo1973 and FreeRunner handsets both feature an arm920t core, which comply to the ARMv4T ISA.&lt;br /&gt;
&lt;br /&gt;
Before the source code was released, kernel trap handlers were implemented to 'emulate' the ARMv5TE ISA. Although the results worked in many cases, trapping is costly and performance suffered as a result. Moreover, without explicitly knowing which conditions were set by various instructions, such as Thumb Mode execution, the result became nondeterministic.&lt;br /&gt;
&lt;br /&gt;
== Current State ==&lt;br /&gt;
&lt;br /&gt;
With the release of the Android [http://source.android.com source code], the Open Source community is no longer limited to dealing with a binary-only product. The Open Handset Alliance (OHA) has let their source code become their product for everyone enrich and benefit from.&lt;br /&gt;
&lt;br /&gt;
Currently, porting efforts are underway in many circles. Patches should be submitted via the [http://source.android.com/submit-patches official Android channels].&lt;br /&gt;
&lt;br /&gt;
To track the status of which parts of the Android source tree contain ARMv5 specific code, I've created a table of where it is contained, and the status of patches. It can be found at: http://spreadsheets.google.com/pub?key=pzDEXnU19gkeTjpD28t-7fw [[User:Bricode]]&lt;br /&gt;
&lt;br /&gt;
[[User:Seanmcneil3|Sean McNeil]] said that he was able to get Androind running (including telephony) in his Freerunner [http://3v1n0.tuxfamily.org/tumblelog/post/368 source].&lt;br /&gt;
&lt;br /&gt;
Ben Leslie mentioned on the android-porting list that he was able to get the 'Android' logo to appear on his Neo 1973.&lt;br /&gt;
&lt;br /&gt;
= How to Help =&lt;br /&gt;
&lt;br /&gt;
== Getting Started ==&lt;br /&gt;
&lt;br /&gt;
You can start by following the instructions to download and build the Android source from scratch. Please see [http://source.android.com/download http://source.android.com/download] and follow the instructions for your architecture.&lt;br /&gt;
&lt;br /&gt;
== Publicize Your Efforts ==&lt;br /&gt;
&lt;br /&gt;
It's generally a good idea to make your efforts known via wiki systems, public mailing lists, forums, and publically open version control systems.&lt;br /&gt;
&lt;br /&gt;
Always take credit for your work but please don't do it in the form of comments. Some code is already hard enough to read without comments polluting the text. The best thing to do is to create a patch and put a header with your information at the top. Collaboration systems such as git might already do this for you (??).&lt;br /&gt;
&lt;br /&gt;
If you create something new and have the ability to designate the license for it, please consider license compatibility issues.&lt;br /&gt;
&lt;br /&gt;
== Porting Strategy ==&lt;br /&gt;
&lt;br /&gt;
* Analysis and leverage of the existing build system&lt;br /&gt;
** buid/core/combo/arm-linux.mk&lt;br /&gt;
*** -D__ARCH_ARM_4__ -D__ARCH_ARM_4T__&lt;br /&gt;
*** -march=armv4t -mcpu=arm920t&lt;br /&gt;
** fix various static references to 'armv5'&lt;br /&gt;
* Isolating ARMv5TE ISA dependent code&lt;br /&gt;
** e.g. grep -n -R -i &amp;quot;${armv5te_isa_pattern}&amp;quot; ~/android&lt;br /&gt;
* Abstracting&lt;br /&gt;
** ( C/C++ )&lt;br /&gt;
*** Use inlined functions / #ifdef statments to implement functions in a portable manner&lt;br /&gt;
*** For inlined assembler calls, it's acceptable for now to use generic C code instead, so long as later on we optimize it by hand.&lt;br /&gt;
** ( ASM )&lt;br /&gt;
*** Proprocessor statements based on ISA / architecture, e.g. #ifdef __ARCH_ARM_5__ ... #endif #ifdef __ARCH_ARM_4__ ... #endif&lt;br /&gt;
*** It's highly suggested that preprocessor statements should not be nested (i.e. make them mutually exclusive)&lt;br /&gt;
*** Some people have suggested that we should not do #ifdef's based on ARCH or ISA, but rather based on an AndroidConfig.h which would define macros like PLD(...) #ifdef HAVE_ARM_PLD pld #else ... #endif .&lt;br /&gt;
&lt;br /&gt;
For each ARMv5TE instruction, one could potentially&lt;br /&gt;
* Implement the instruction using general registers instead of DSP calls (i.e. eabi / softfloat)&lt;br /&gt;
* If that is a) nondeterministic, or b) slow, then sections of code need to be analyzed and hand-optimized for the ARMv4T isa&lt;br /&gt;
&lt;br /&gt;
== List of Unsupported Instructions ==&lt;br /&gt;
&lt;br /&gt;
This is a list of opcodes, extracted from the Android source, that are unsupported for ARMv4T compliant processors (specifically the arm920t). The opcodes represent instructions available for ARMv5, ARMv5T, and ARMv5TE architectures, which are not present in the ARMv4T ISA. The list was obtained by exhaustively editing the recompiling the Android source code until it compiled without error.&lt;br /&gt;
&lt;br /&gt;
Please keep in mind, that in some cases, translating these instructions into a sequence of ARMv4T instructions will be impossible and / or result in nondeterministic execution because of&lt;br /&gt;
* the requirement of additional context&lt;br /&gt;
* the tendencies of certain opcodes to change condition registers that may or may not be present in the arm920t core&lt;br /&gt;
&lt;br /&gt;
=== Opcodes ===&lt;br /&gt;
&lt;br /&gt;
{{scroll box|height=480px|text=&lt;br /&gt;
&amp;lt;TABLE BORDER=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TH&amp;gt;Opcode&amp;lt;/TH&amp;gt;&lt;br /&gt;
&amp;lt;TH&amp;gt;Desription&amp;lt;/TH&amp;gt;&lt;br /&gt;
&amp;lt;TH&amp;gt;[[http://www.arm.com/miscPDFs/14128.pdf PDF]] Page Number&amp;lt;/TH&amp;gt;&lt;br /&gt;
&amp;lt;TH&amp;gt;C&amp;lt;/TH&amp;gt;&lt;br /&gt;
&amp;lt;TH&amp;gt;ASM&amp;lt;/TH&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TH VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;BLX(1)&amp;lt;/TH&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;Branch, Link, and Exchange&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;166&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;N/A (Unused in Android)&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;N/A (Unused in Android)&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TH VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;BLX(2)&amp;lt;/TH&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;Branch, Link, and Exchange&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;168&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&lt;br /&gt;
[[User:Cfriedt]] 20081028&lt;br /&gt;
Remove from inline assembly with something like&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#ifdef HAVE_BLX&lt;br /&gt;
... (inline asm) ...&lt;br /&gt;
#else&lt;br /&gt;
... (inline asm with equivalent blx code, as shown to the right) ...&lt;br /&gt;
#endif&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&lt;br /&gt;
[[User:Cfriedt]] 20081028&lt;br /&gt;
Substitute with a macro reference such as&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#ifdef HAVE_BLX&lt;br /&gt;
#define BLX(a) \&lt;br /&gt;
blx a&lt;br /&gt;
#else&lt;br /&gt;
#define BLX(a) \&lt;br /&gt;
mov pc,lr \&lt;br /&gt;
bx a&lt;br /&gt;
#endif&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TH VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;CLZ&amp;lt;/TH&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;Count Leading Zeros&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;175&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&lt;br /&gt;
[[User:Cfriedt]] 20081028&lt;br /&gt;
Remove from inline assembly with something like&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#ifdef HAVE_CLZ&lt;br /&gt;
... (inline asm) ...&lt;br /&gt;
#else&lt;br /&gt;
... (inline asm with equivalent clz code, as shown to the right) ...&lt;br /&gt;
#endif&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&lt;br /&gt;
[[User:Cfriedt]] 20081029&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#ifdef HAVE_CLZ&lt;br /&gt;
#define CLZ(Rd,Rm) \&lt;br /&gt;
clz Rd,Rm&lt;br /&gt;
#else&lt;br /&gt;
#define CLZ(Rd,Rm) \&lt;br /&gt;
...&lt;br /&gt;
#endif&lt;br /&gt;
...&lt;br /&gt;
CLZ(Rd,Rm)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TH VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;LDRD&amp;lt;/TH&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;Load Registers Doubleword&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;200&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&lt;br /&gt;
[[User:Cfriedt]] 20081028&lt;br /&gt;
Substitute different inline assembly code with something like&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#ifdef HAVE_LDRD&lt;br /&gt;
... (inline asm) ...&lt;br /&gt;
#else&lt;br /&gt;
... (inline asm with ldrd substituted) ...&lt;br /&gt;
#endif&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&lt;br /&gt;
[[User:Cfriedt]] 20081028&lt;br /&gt;
Substitute with a macro reference such as&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#ifdef HAVE_LDRD&lt;br /&gt;
#define LDRD(a,b) \&lt;br /&gt;
ldrd a,b&lt;br /&gt;
#else&lt;br /&gt;
#define LDRD(a,b) \&lt;br /&gt;
...&lt;br /&gt;
#endif&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TH VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;PLD&amp;lt;/TH&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;Preload Data&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;240&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&lt;br /&gt;
[[User:Cfriedt]] 20081028&lt;br /&gt;
Remove from inline assembly with something like&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#ifdef HAVE_PLD&lt;br /&gt;
... (inline asm) ...&lt;br /&gt;
#else&lt;br /&gt;
... (inline asm with pld removed) ...&lt;br /&gt;
#endif&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&lt;br /&gt;
[[User:Cfriedt]] 20081028&lt;br /&gt;
Remove or substitute with a macro reference such as&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#ifdef HAVE_PLD&lt;br /&gt;
#define PLD(a,b) \&lt;br /&gt;
pld a,b&lt;br /&gt;
#else&lt;br /&gt;
#define PLD(a,b)&lt;br /&gt;
#endif&lt;br /&gt;
...&lt;br /&gt;
PLD(r0,#0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TH VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;SMLA&amp;amp;lt;x&amp;amp;gt;&amp;amp;lt;y&amp;amp;gt;&amp;lt;/TH&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;Signed Multiply-Accumulate&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;291&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TH VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;SMLAL&amp;amp;lt;x&amp;amp;gt;&amp;amp;lt;y&amp;amp;gt;&amp;lt;/TH&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;Signed Multiply Accumulate Long&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;298&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TH VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;SMLAW&amp;amp;lt;y&amp;amp;gt;&amp;lt;/TH&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;Signed Multiply-Accumulate Word&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;302&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TH VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;SMUL&amp;amp;lt;x&amp;amp;gt;&amp;amp;lt;y&amp;amp;gt;&amp;lt;/TH&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;Signed Multiply&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;316&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TH VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;SMULW&amp;amp;lt;y&amp;amp;gt;&amp;lt;/TH&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;Signed Multiply Word&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;320&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TH VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;QADD&amp;lt;/TH&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;Saturating Add&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;242&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TH VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;QDADD&amp;lt;/TH&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;Saturating Double and Add&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;249&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TH VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;QDSUB&amp;lt;/TH&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;Saturating Double and Subtract&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;251&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TH VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;QSUB&amp;lt;/TH&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;Saturating Subtract&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;253&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TH VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;STRD&amp;lt;/TH&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;Store Registers Doubleword&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;349&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&lt;br /&gt;
[[User:Cfriedt]] 20081028&lt;br /&gt;
Substitute different inline assembly code with something like&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#ifdef HAVE_STRD&lt;br /&gt;
... (inline asm) ...&lt;br /&gt;
#else&lt;br /&gt;
... (inline asm without strd) ...&lt;br /&gt;
#endif&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&lt;br /&gt;
[[User:Cfriedt]] 20081028&lt;br /&gt;
Substitute with a macro reference such as&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#ifdef HAVE_STRD&lt;br /&gt;
#define STRD(a,b) \&lt;br /&gt;
strd a,b&lt;br /&gt;
#else&lt;br /&gt;
#define STRD(a,b) \&lt;br /&gt;
...&lt;br /&gt;
#endif&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;/TABLE&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Scanning for Files That Use the ARMv5TE ISA ===&lt;br /&gt;
&lt;br /&gt;
Using the above list of opcodes, one can scan the Android source code for ARMv4T-incompatible instruction sequences.&lt;br /&gt;
&lt;br /&gt;
'''Code:'''&lt;br /&gt;
{{scroll box|height=240px|text=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
# $1 is the android directory&lt;br /&gt;
&lt;br /&gt;
if [ $# -ne 1 ]; then&lt;br /&gt;
exit -1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
cd &amp;quot;${1}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
opcodes=&amp;quot;blx clz ldrd pld smlabb smlabt smlatt&lt;br /&gt;
smlal smlawb smlawt smulbb smulbt smultt smulwb&lt;br /&gt;
smulwt qadd qdadd qdsub qsub strd&amp;quot;&lt;br /&gt;
&lt;br /&gt;
for op in ${opcodes}; do&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;* ${op} =====================================&amp;quot;&lt;br /&gt;
&lt;br /&gt;
if [ ! -e .files.${op} ]; then&lt;br /&gt;
&lt;br /&gt;
files=&amp;quot;$(grep -R -i &amp;quot;${op} &amp;quot; * 2&amp;gt;/dev/null)&amp;quot;&lt;br /&gt;
files=&amp;quot;$(echo $files | grep -v &amp;quot;^Binary file&amp;quot; | sed -e 's/:.*//')&amp;quot;&lt;br /&gt;
files=&amp;quot;$(echo $files| grep -v &amp;quot;CREDIT\|README\|^\(kernel/\|.git/\)\|\(\.txt\)$&amp;quot; | sort -u)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;${files}&amp;quot; &amp;gt; .files.${op}&lt;br /&gt;
&lt;br /&gt;
else&lt;br /&gt;
files=&amp;quot;$(cat .files.${op})&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
for fil in ${files}; do&lt;br /&gt;
lines=&amp;quot;$(grep -n -i &amp;quot;${op} &amp;quot; ${fil} | sed -e 's/:.*//g' )&amp;quot;&lt;br /&gt;
lines=&amp;quot;$(echo $lines | sed -e 's/ /,/g')&amp;quot;&lt;br /&gt;
echo &amp;quot;** ${fil}: lines {${lines}}&amp;quot;&lt;br /&gt;
done&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Source Files in Android that Use the ARMv5TE ISA ===&lt;br /&gt;
&lt;br /&gt;
The list of files below may or may not be complete. There might also be some assembly code that is generated with a python script (verification?).&lt;br /&gt;
&lt;br /&gt;
{{scroll box|height=150px|text=&lt;br /&gt;
* blx =====================================&lt;br /&gt;
** bionic/libc/tools/gensyscalls.py: lines {168,186}&lt;br /&gt;
** bootloader/legacy/nandwrite/init.S: lines {77}&lt;br /&gt;
** bootloader/legacy/usbloader/init.S: lines {95}&lt;br /&gt;
** dalvik/vm/arch/arm/CallEABI.S: lines {239}&lt;br /&gt;
** dalvik/vm/arch/arm/CallOldABI.S: lines {145}&lt;br /&gt;
** development/emulator/qtools/thumbdis.cpp: lines {187,265}&lt;br /&gt;
** external/qemu/target-arm/translate.c: lines {1151,1971,2444}&lt;br /&gt;
** external/qemu/trace.c: lines {774,1353,1358}&lt;br /&gt;
** system/core/libpixelflinger/codeflinger/disassem.c: lines {416}&lt;br /&gt;
* clz =====================================&lt;br /&gt;
** development/emulator/qtools/armdis.cpp: lines {654}&lt;br /&gt;
** external/opencore/codecs_v2/audio/aac/dec/src/pv_normalize.h: lines {67,84}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/include/norm_l.h: lines {137}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_wb/dec/src/normalize_amr_wb.h: lines {78,95}&lt;br /&gt;
** external/opencore/codecs_v2/audio/mp3/dec/src/pvmp3_normalize.h: lines {67,84}&lt;br /&gt;
** external/opencore/codecs_v2/video/avc_h264/dec/src/vlc.cpp: lines {23}&lt;br /&gt;
** external/opencore/codecs_v2/video/m4v_h263/enc/src/vlc_encode_inline.h: lines {125,162,168,204,218}&lt;br /&gt;
** external/qemu/target-arm/translate.c: lines {1247}&lt;br /&gt;
** external/skia/libcorecg/Sk64.cpp: lines {340,341,343}&lt;br /&gt;
** external/skia/libcorecg/SkMatrix.cpp: lines {500,501}&lt;br /&gt;
** external/skia/libsgl/effects/SkColorMatrixFilter.cpp: lines {135}&lt;br /&gt;
** external/skia/libsgl/sgl/SkBitmap.cpp: lines {945,946,947}&lt;br /&gt;
** external/skia/libsgl/sgl/SkBitmapShader.cpp: lines {32,33,34}&lt;br /&gt;
** external/skia/libsgl/sgl/SkGraphics.cpp: lines {429,437}&lt;br /&gt;
* ldrd =====================================&lt;br /&gt;
** dalvik/vm/mterp/armv5/OP_AGET_WIDE.S: lines {28}&lt;br /&gt;
** dalvik/vm/mterp/armv5/OP_IGET_WIDE.S: lines {37}&lt;br /&gt;
** dalvik/vm/mterp/armv5/OP_IGET_WIDE_QUICK.S: lines {10}&lt;br /&gt;
** dalvik/vm/mterp/armv5/OP_SGET_WIDE.S: lines {17}&lt;br /&gt;
** dalvik/vm/mterp/out/InterpAsm-armv5.S: lines {2653,7464,8318,8390}&lt;br /&gt;
** system/core/libpixelflinger/rotate90CW_4x4_16v6.S: lines {40,41,42,43}&lt;br /&gt;
* pld =====================================&lt;br /&gt;
** bionic/libc/arch-arm/bionic/memcmp.S: lines {37,44,45,56,57,107,108,195,196}&lt;br /&gt;
** bionic/libc/arch-arm/bionic/memcmp16.S: lines {37,44,45,67,68,116,117,198,199}&lt;br /&gt;
** bionic/libc/arch-arm/bionic/memcpy.S: lines {55,56,57,145,266,293,320}&lt;br /&gt;
** bionic/libc/arch-arm/bionic/strlen.c: lines {59,65}&lt;br /&gt;
** bionic/libc/kernel/arch-arm/asm/arch/irqs.h: lines {162}&lt;br /&gt;
** external/elfutils/src/Makefile: lines {243}&lt;br /&gt;
** external/elfutils/src/Makefile.am: lines {32}&lt;br /&gt;
** external/elfutils/src/Makefile.in: lines {243}&lt;br /&gt;
** external/jpeg/jidctfst.S: lines {69,235,247}&lt;br /&gt;
** external/qemu/target-arm/translate.c: lines {1149}&lt;br /&gt;
** system/core/libpixelflinger/codeflinger/ARMAssembler.cpp: lines {368}&lt;br /&gt;
** system/core/libpixelflinger/codeflinger/ARMAssemblerInterface.cpp: lines {104,108,117}&lt;br /&gt;
** system/core/libpixelflinger/t32cb16blend.S: lines {111,112,134,143}&lt;br /&gt;
* smlabb =====================================&lt;br /&gt;
** external/jpeg/jidctfst.S: lines {110,115,155,156}&lt;br /&gt;
** external/neven/Embedded/common/src/b_BasicEm/Math.c: lines {584,589}&lt;br /&gt;
** external/opencore/codecs_v2/audio/aac/dec/src/fxp_mul32_arm_gcc.h: lines {147,166}&lt;br /&gt;
** external/opencore/codecs_v2/audio/aac/dec/src/fxp_mul32_arm_v5.h: lines {120,129}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/include/basic_op_arm_gcc_v5.h: lines {514,533}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/include/basic_op_arm_v5.h: lines {418,429}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_wb/dec/src/pvamrwbdecoder_basic_op_armv5.h: lines {202}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_wb/dec/src/pvamrwbdecoder_basic_op_gcc_armv5.h: lines {250}&lt;br /&gt;
** external/opencore/codecs_v2/video/m4v_h263/enc/src/dct_inline.h: lines {119,155,167,278,326,341}&lt;br /&gt;
** external/opencore/codecs_v2/video/m4v_h263/enc/src/fastquant_inline.h: lines {178,225,437,517}&lt;br /&gt;
** frameworks/base/libs/audioflinger/AudioMixer.cpp: lines {405,436}&lt;br /&gt;
* smlabt =====================================&lt;br /&gt;
** external/opencore/codecs_v2/audio/aac/dec/src/fxp_mul32_arm_gcc.h: lines {184}&lt;br /&gt;
** external/opencore/codecs_v2/audio/aac/dec/src/fxp_mul32_arm_v5.h: lines {138}&lt;br /&gt;
** external/opencore/codecs_v2/video/m4v_h263/enc/src/dct_inline.h: lines {131,143,294,310}&lt;br /&gt;
* smlatt =====================================&lt;br /&gt;
** external/neven/Embedded/common/src/b_BasicEm/Math.c: lines {585,590}&lt;br /&gt;
** external/opencore/codecs_v2/audio/aac/dec/src/fxp_mul32_arm_v5.h: lines {157}&lt;br /&gt;
** frameworks/base/libs/audioflinger/AudioMixer.cpp: lines {441}&lt;br /&gt;
* smlal =====================================&lt;br /&gt;
** external/opencore/codecs_v2/audio/aac/dec/src/fxp_mul32_arm_v4.h: lines {179,223,236,257,267}&lt;br /&gt;
** external/opencore/codecs_v2/audio/aac/dec/src/fxp_mul32_arm_v4_gcc.h: lines {264,341}&lt;br /&gt;
** external/opencore/codecs_v2/audio/aac/dec/src/fxp_mul32_arm_v5.h: lines {178,188,198}&lt;br /&gt;
** external/opencore/codecs_v2/audio/mp3/dec/src/asm/pvmp3_dct_9.s: lines {84,90,96,101,109,114,116,118,121,132,138,150,163,165,167,174,176,178}&lt;br /&gt;
** external/opencore/codecs_v2/audio/mp3/dec/src/asm/pvmp3_dct_9_gcc.s: lines {73,79,86,90,98,103,105,107,110,121,127,139,152,154,156,163,165,167}&lt;br /&gt;
** external/opencore/codecs_v2/audio/mp3/dec/src/asm/pvmp3_mdct_18.asm: lines {143,162,178,188,192,199,207,217,225,231,237,241,244}&lt;br /&gt;
** external/opencore/codecs_v2/audio/mp3/dec/src/asm/pvmp3_mdct_18.s: lines {145,164,180,190,194,201,209,219,227,233,239,243,246}&lt;br /&gt;
** external/opencore/codecs_v2/audio/mp3/dec/src/asm/pvmp3_mdct_18_gcc.s: lines {143,162,178,188,192,199,207,217,225,231,237,241,244}&lt;br /&gt;
** external/opencore/codecs_v2/audio/mp3/dec/src/asm/pvmp3_polyphase_filter_window.asm: lines {62,63,66,72,76,77,81,82,85,90,94,97,99,100,103,108,113,114,118,119,122,129,136,137,176,179,183,187,190,193}&lt;br /&gt;
** external/opencore/codecs_v2/audio/mp3/dec/src/asm/pvmp3_polyphase_filter_window.s: lines {67,68,71,77,81,82,86,87,90,95,99,102,104,105,108,113,118,119,123,124,127,134,141,142,181,184,188,192,195,198}&lt;br /&gt;
** external/opencore/codecs_v2/audio/mp3/dec/src/asm/pvmp3_polyphase_filter_window_gcc.s: lines {65,66,69,75,79,80,84,85,88,93,97,100,102,103,106,111,116,117,121,122,125,132,139,140,179,182,186,190,193,196}&lt;br /&gt;
** external/opencore/codecs_v2/audio/mp3/dec/src/pv_mp3dec_fxd_op_arm.h: lines {148}&lt;br /&gt;
** external/qemu/trace.c: lines {813}&lt;br /&gt;
** frameworks/base/opengl/libagl/iterators.S: lines {66,67}&lt;br /&gt;
** frameworks/base/opengl/libagl/matrix.h: lines {67,68,96,126,127,282,283,314,315,316}&lt;br /&gt;
* smlawb =====================================&lt;br /&gt;
** external/opencore/codecs_v2/audio/aac/dec/src/fxp_mul32_arm_gcc.h: lines {203,259}&lt;br /&gt;
** external/opencore/codecs_v2/audio/aac/dec/src/fxp_mul32_arm_v5.h: lines {166,416}&lt;br /&gt;
** frameworks/base/libs/audioflinger/AudioResamplerSinc.cpp: lines {93,109}&lt;br /&gt;
** frameworks/base/opengl/libagl/matrix.h: lines {163,203}&lt;br /&gt;
* smlawt =====================================&lt;br /&gt;
** frameworks/base/libs/audioflinger/AudioResamplerSinc.cpp: lines {114}&lt;br /&gt;
** frameworks/base/opengl/libagl/matrix.h: lines {162,202,243,244}&lt;br /&gt;
* smulbb =====================================&lt;br /&gt;
** external/jpeg/jidctfst.S: lines {109,114,151,153}&lt;br /&gt;
** external/opencore/codecs_v2/audio/aac/dec/src/fxp_mul32_arm_gcc.h: lines {79}&lt;br /&gt;
** external/opencore/codecs_v2/audio/aac/dec/src/fxp_mul32_arm_v5.h: lines {71,81}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/include/basic_op_arm_gcc_v5.h: lines {207,251,297,348,361,375,427,440,487}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/include/basic_op_arm_v5.h: lines {199,234,274,314,316,326,367,369,404}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/include/l_mac.h: lines {121,137}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/include/l_msu.h: lines {123,142}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/include/l_mult.h: lines {122,140}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/include/mpy_32.h: lines {132,134,138,164,177,191}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/include/mpy_32_16.h: lines {127,129,150,163}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/include/mult.h: lines {121,141}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_wb/dec/src/pvamrwbdecoder_basic_op_armv5.h: lines {115,139,151,163,189,190,212}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_wb/dec/src/pvamrwbdecoder_basic_op_gcc_armv5.h: lines {112,113,164,183,201,218,265}&lt;br /&gt;
** external/opencore/codecs_v2/video/m4v_h263/enc/src/fastquant_inline.h: lines {250,457,531}&lt;br /&gt;
** external/skia/include/corecg/SkMath.h: lines {170}&lt;br /&gt;
** frameworks/base/libs/audioflinger/AudioMixer.cpp: lines {420,462}&lt;br /&gt;
** system/core/libpixelflinger/t32cb16blend.S: lines {39,66,74,82}&lt;br /&gt;
* smulbt =====================================&lt;br /&gt;
** external/opencore/codecs_v2/audio/aac/dec/src/fxp_mul32_arm_gcc.h: lines {115}&lt;br /&gt;
** external/opencore/codecs_v2/audio/aac/dec/src/fxp_mul32_arm_v5.h: lines {109}&lt;br /&gt;
** system/core/libpixelflinger/codeflinger/texturing.cpp: lines {1091}&lt;br /&gt;
** system/core/libpixelflinger/t32cb16blend.S: lines {47,55}&lt;br /&gt;
* smultt =====================================&lt;br /&gt;
** external/opencore/codecs_v2/audio/aac/dec/src/fxp_mul32_arm_gcc.h: lines {131}&lt;br /&gt;
** external/opencore/codecs_v2/audio/aac/dec/src/fxp_mul32_arm_v5.h: lines {100}&lt;br /&gt;
** frameworks/base/libs/audioflinger/AudioMixer.cpp: lines {467}&lt;br /&gt;
** frameworks/base/libs/audioflinger/AudioResamplerSinc.cpp: lines {73}&lt;br /&gt;
* smulwb =====================================&lt;br /&gt;
** external/opencore/codecs_v2/audio/aac/dec/src/fxp_mul32_arm_gcc.h: lines {221}&lt;br /&gt;
** external/opencore/codecs_v2/audio/aac/dec/src/fxp_mul32_arm_v5.h: lines {373}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_wb/dec/src/pvamrwbdecoder_basic_op_armv5.h: lines {222}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_wb/dec/src/pvamrwbdecoder_basic_op_gcc_armv5.h: lines {283}&lt;br /&gt;
** external/opencore/codecs_v2/audio/sbc/enc/src/sbcenc_filter.h: lines {33}&lt;br /&gt;
** frameworks/base/opengl/libagl/matrix.h: lines {161,201,242}&lt;br /&gt;
* smulwt =====================================&lt;br /&gt;
** external/opencore/codecs_v2/audio/aac/dec/src/fxp_mul32_arm_gcc.h: lines {202,240}&lt;br /&gt;
** external/opencore/codecs_v2/audio/aac/dec/src/fxp_mul32_arm_v5.h: lines {385,415}&lt;br /&gt;
* qadd =====================================&lt;br /&gt;
** external/opencore/codecs_v2/audio/aac/dec/src/fxp_mul32_arm_gcc.h: lines {64}&lt;br /&gt;
** external/opencore/codecs_v2/audio/aac/dec/src/fxp_mul32_arm_v5.h: lines {60}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/include/basic_op_arm_gcc_v5.h: lines {130,256}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/include/basic_op_arm_v5.h: lines {128,235}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/include/l_add.h: lines {122,137}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/include/l_mult.h: lines {123,145}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_wb/dec/src/pvamrwbdecoder_basic_op_armv5.h: lines {71,102,152,176,192}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_wb/dec/src/pvamrwbdecoder_basic_op_gcc_armv5.h: lines {91,115,148,202,234}&lt;br /&gt;
** external/openssl/crypto/bn/bn_prime.c: lines {454,455}&lt;br /&gt;
* qdadd =====================================&lt;br /&gt;
** external/opencore/codecs_v2/audio/aac/dec/src/calc_sbr_synfilterbank.cpp: lines {116,162}&lt;br /&gt;
** external/opencore/codecs_v2/audio/aac/dec/src/trans4m_freq_2_time_fxp.cpp: lines {472,494}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/include/basic_op_arm_gcc_v5.h: lines {212,356,370,385,435,449}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/include/basic_op_arm_v5.h: lines {200,315,321,331,368,371}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/include/l_mac.h: lines {122,142}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/include/mpy_32.h: lines {133,136,140,172,186,201}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/include/mpy_32_16.h: lines {128,131,158,172}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_wb/dec/src/pvamrwbdecoder_basic_op_armv5.h: lines {116}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_wb/dec/src/pvamrwbdecoder_basic_op_gcc_armv5.h: lines {184}&lt;br /&gt;
* qdsub =====================================&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/include/basic_op_arm_gcc_v5.h: lines {302}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/include/basic_op_arm_v5.h: lines {275}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/include/l_msu.h: lines {124,147}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_wb/dec/src/pvamrwbdecoder_basic_op_armv5.h: lines {140}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_wb/dec/src/pvamrwbdecoder_basic_op_gcc_armv5.h: lines {165}&lt;br /&gt;
* qsub =====================================&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/include/basic_op_arm_gcc_v5.h: lines {167}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/include/basic_op_arm_v5.h: lines {162}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/include/l_sub.h: lines {121,138}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_wb/dec/src/pvamrwbdecoder_basic_op_armv5.h: lines {88,127}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_wb/dec/src/pvamrwbdecoder_basic_op_gcc_armv5.h: lines {70,133}&lt;br /&gt;
* strd =====================================&lt;br /&gt;
** dalvik/vm/mterp/armv5/OP_APUT_WIDE.S: lines {31}&lt;br /&gt;
** dalvik/vm/mterp/armv5/OP_IPUT_WIDE.S: lines {39}&lt;br /&gt;
** dalvik/vm/mterp/armv5/OP_IPUT_WIDE_QUICK.S: lines {14}&lt;br /&gt;
** dalvik/vm/mterp/armv5/OP_SPUT_WIDE.S: lines {21}&lt;br /&gt;
** dalvik/vm/mterp/out/InterpAsm-armv5.S: lines {2834,7530,8331,8542}&lt;br /&gt;
** dalvik/vm/oo/Object.h: lines {589}&lt;br /&gt;
** external/opencore/fileformats/avi/parser/include/pv_avifile_streamlist.h: lines {179}&lt;br /&gt;
** external/opencore/fileformats/avi/parser/src/pv_avifile_streamlist.cpp: lines {153}&lt;br /&gt;
** system/core/libpixelflinger/rotate90CW_4x4_16v6.S: lines {47,52,56,60}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Discussion ===&lt;br /&gt;
=== Notes ===&lt;br /&gt;
The file&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
system/core/libpixelflinger/codeflinger/ARMAssembler.cpp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will need special attention. It's responsible for dynamic generation of DSP code.&lt;br /&gt;
&lt;br /&gt;
== Suggestions ==&lt;br /&gt;
* [[User:Cfriedt]] 20081024 I'm not sure how feasible this is, given that the [http://wiki.openmoko.org/wiki/Neo_FreeRunner_Hardware_Issues#SMedia_3362_Documentation_.26_OpenGL_ES_Drivers SMedia 3362 is heavily NDA'd]. However, since the arm920t lacks a floating-point unit / DSP core, is it possible to use the SMedia chip for general-purpose math? This would help in the Android platform, at least, for things like audio and video codecs. Aside from an OpenGL ES driver, OpenMoko documentation for the SMedia would be highly appreciated.&lt;br /&gt;
&lt;br /&gt;
= Important Links =&lt;br /&gt;
(Please Update Me)&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
* [http://source.android.com/documentation Android Documentation]&lt;br /&gt;
* [http://www.arm.com/documentation/ ARM Documentation], (keywords: armv4t, armv5t, armv5te, arm920t, arm926ej-s)&lt;br /&gt;
* [http://www.arm.com/miscPDFs/9658.pdf ARM Assembly Language Programming]&lt;br /&gt;
* [http://www.cse.unsw.edu.au/~cs3221/labs/assembler-intro.pdf An Introduction to the GNU Assembler]&lt;br /&gt;
* [http://www.heyrick.co.uk/assembler/apcsintro.html ARM Procedure Call Standard], [http://en.wikipedia.org/wiki/Calling_convention#ARM ARM Calling Conventions]&lt;br /&gt;
&lt;br /&gt;
== Instruction Set References ==&lt;br /&gt;
* [http://www.arm.com/miscPDFs/14128.pdf ARM Architecture Reference Manual], The definitive ISA documentation&lt;br /&gt;
* [http://www.simplemachines.it/doc/QRC0001H_rvct_v2.1_arm.pdf ARM Instruction Set Quick Reference Card]&lt;br /&gt;
* [http://infocenter.arm.com/help/topic/com.arm.doc.qrc0001l/QRC0001_UAL.pdf ARM and Thumb -2 Instruction Set Quick Reference Card]&lt;br /&gt;
* [http://infocenter.arm.com/help/topic/com.arm.doc.dvi0025b/DVI0025.pdf ARMv4T] (See section 1.4.13)&lt;br /&gt;
* [http://infocenter.arm.com/help/topic/com.arm.doc.dvi0014a/DVI0014A_ARM10T_PO.pdf ARMv5T] (See section 4.16)&lt;br /&gt;
* [http://www.arm.com/pdfs/ARM-DSP.pdf ARM DSP Enhanced Instruction Set]&lt;br /&gt;
* [http://infocenter.arm.com/help/topic/com.arm.doc.ihi0042c/IHI0042C_aapcs.pdf Procedure Call Standard for the ARM Architecture]&lt;br /&gt;
&lt;br /&gt;
== Hardware Reference ==&lt;br /&gt;
&lt;br /&gt;
* [[Neo1973 Hardware]]&lt;br /&gt;
* [[Neo FreeRunner GTA02 Hardware]]&lt;br /&gt;
&lt;br /&gt;
== Communities ==&lt;br /&gt;
* [http://source.android.com/discuss Android Public Mailing Lists]&lt;br /&gt;
** Specifically, [http://groups.google.com/group/android-porting android-porting]&lt;br /&gt;
* [http://lists.openmoko.org/mailman/listinfo OpenMoko Mailing Lists]&lt;br /&gt;
** Specifically, [http://lists.openmoko.org/mailman/listinfo/openmoko-kernel openmoko-kernel]&lt;br /&gt;
* [http://forum.koolu.org/viewforum.php?f=10 Android on FreeRunner] at KoolU.com&lt;br /&gt;
* [[Openmoko Local Groups]]&lt;br /&gt;
* [[Openmoko:Community_Portal]]&lt;br /&gt;
&lt;br /&gt;
= See also =&lt;br /&gt;
&lt;br /&gt;
* [[Debug_Board]]&lt;br /&gt;
&lt;br /&gt;
= External Links =&lt;br /&gt;
&lt;br /&gt;
[[Category:Distributions]]&lt;/div&gt;</summary>
		<author><name>Narmo</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Android</id>
		<title>Android</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Android"/>
				<updated>2008-11-06T18:29:48Z</updated>
		
		<summary type="html">&lt;p&gt;Narmo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|Main Page}}&lt;br /&gt;
{{Distributions|Android}}&lt;br /&gt;
&lt;br /&gt;
= Updates =&lt;br /&gt;
&lt;br /&gt;
* 20081104 The first Android-image has been successfully created by Sean McNeil! You can try on your own: [http://people.openmoko.org/sean_mcneil/ android image and kernel] - sms and calling works, wifi and bluetooth doesn't. [http://onlinedev.blogspot.com/2008/11/porting-android-phase-3-done.html ''news-source'']&lt;br /&gt;
* 20081029 [[User:Cfriedt]] [http://benno.id.au Benno] has modified Android's build system so that it will output a JFFS2 image instead of YAFFS . Unlike JFFS2, which [http://64.233.169.104/search?q=cache:e8czlAdKTn0J:gentoo-wiki.com/JFFS2/Mounting+gentoo+jffs2&amp;amp;hl=en&amp;amp;ct=clnk&amp;amp;cd=1&amp;amp;gl=ca&amp;amp;client=firefox-a can be mounted read-only from an image], mounting a YAFFS image is not possible unless it's already been written to flash (it complains about the block device being of type '1' and not 'NAND'). JFFS2 also has the benefit that it's a standard OpenMoko image format (See [[Flashing the Neo FreeRunner]] or [[Flashing the Neo 1973]])&lt;br /&gt;
* 20081023 [[User:Bricode]] To track the status of which parts of the Android source tree contain ARMv5 specific code, I've created a table of where it is contained, and the status of patches. It can be found at: http://spreadsheets.google.com/pub?key=pzDEXnU19gkeTjpD28t-7fw&lt;br /&gt;
* 20081022 [[User:Cfriedt]] I was able to 'trivially' compile all of the Android source code without error for the ARMv4T architecture by removing v5TE instructions. Although it will definitely not run anything predictably, at least now that I know the build system will work with a few simple substitutions in build/core/combo/arm-linux.mk. At this point I am able to go ahead and re-implement v5TE instructions as v4T instruction sequences instead (or re-implement entire sections of assembly with hand-optimized v4T instructions).&lt;br /&gt;
* 20081021 [[User:Cfriedt]] Android -&amp;gt; FreeRunner updates on my [http://perpetual-notion.blogspot.com/search/label/android blog]&lt;br /&gt;
* 20081021 Google released the majority [http://source.android.com/download source code] for the phone under Apache free and open-source [http://source.android.com/license license], with portions covered by other existing licenses, such as the Linux kernel under GPLv2.&lt;br /&gt;
* 200810?? [http://www.koolu.com Koolu.com] has announced that they will be '''selling the OpenMoko Freerunner with Android pre-installed''' beginning in November 2008, as well as offering '''free downloads of the Freerunner port of Android''' to existing Freerunner owners. Well-known open-source advocate [http://koolu.com/The-Koolu-Team/maddog.html Jon &amp;quot;maddog&amp;quot; Hall] is CTO and Ambassador for Koolu.&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
This page is dedicated to porting the [http://www.android.com Android OS] to the [[Neo 1973]] and [[Neo FreeRunner]] handsets. Since the Android OS was [http://source.android.com/posts/opensource  publically released] on 20081021, [http://benno.id.au/blog/2007/11/21/android-neo1973 work] [http://perpetual-notion.blogspot.com/search/label/android is] [http://groups.google.com/group/android-porting currently underway] to port Android to the [[Neo1973 Hardware|Neo 1973]] and [[Neo_FreeRunner_GTA02_Hardware|FreeRunner]] handsets.&lt;br /&gt;
&lt;br /&gt;
== Goals ==&lt;br /&gt;
# Systematically introduce patches for ARMv4T in the Android codebase&lt;br /&gt;
# Provide Neo1973 and Neo FreeRunner hardware-dependent patches in the Android codebase, leveraging the work already done by the Openmoko developers, without forcing Android-specific changes upstream&lt;br /&gt;
# Provide a useable Android filesystem and kernel on the [[Distributions]] page that conform to current Openmoko installation routines&lt;br /&gt;
&lt;br /&gt;
== Early Attempts ==&lt;br /&gt;
As [http://benno.id.au Ben Leslie] had pointed out on his [http://benno.id.au/blog/2007/11/21/android-neo1973 blog] far before the source code was released, [http://www.android.com Android] was originally designed to work with the ARMv5TE [http://en.wikipedia.org/wiki/Instruction_set_architecture instruction set architecture] (ISA), which allows for [http://en.wikipedia.org/wiki/ARM_architecture#DSP_Enhancement_Instructions DSP enhanced instructions]. Contrary to the ARMv5TE ISA, the Neo1973 and FreeRunner handsets both feature an arm920t core, which comply to the ARMv4T ISA.&lt;br /&gt;
&lt;br /&gt;
Before the source code was released, kernel trap handlers were implemented to 'emulate' the ARMv5TE ISA. Although the results worked in many cases, trapping is costly and performance suffered as a result. Moreover, without explicitly knowing which conditions were set by various instructions, such as Thumb Mode execution, the result became nondeterministic.&lt;br /&gt;
&lt;br /&gt;
== Current State ==&lt;br /&gt;
&lt;br /&gt;
With the release of the Android [http://source.android.com source code], the Open Source community is no longer limited to dealing with a binary-only product. The Open Handset Alliance (OHA) has let their source code become their product for everyone enrich and benefit from.&lt;br /&gt;
&lt;br /&gt;
Currently, porting efforts are underway in many circles. Patches should be submitted via the [http://source.android.com/submit-patches official Android channels].&lt;br /&gt;
&lt;br /&gt;
To track the status of which parts of the Android source tree contain ARMv5 specific code, I've created a table of where it is contained, and the status of patches. It can be found at: http://spreadsheets.google.com/pub?key=pzDEXnU19gkeTjpD28t-7fw [[User:Bricode]]&lt;br /&gt;
&lt;br /&gt;
[[User:Seanmcneil3|Sean McNeil]] said that he was able to get Androind running (including telephony) in his Freerunner [http://3v1n0.tuxfamily.org/tumblelog/post/368 source].&lt;br /&gt;
&lt;br /&gt;
Ben Leslie mentioned on the android-porting list that he was able to get the 'Android' logo to appear on his Neo 1973.&lt;br /&gt;
&lt;br /&gt;
= How to Help =&lt;br /&gt;
&lt;br /&gt;
== Getting Started ==&lt;br /&gt;
&lt;br /&gt;
You can start by following the instructions to download and build the Android source from scratch. Please see [http://source.android.com/download http://source.android.com/download] and follow the instructions for your architecture.&lt;br /&gt;
&lt;br /&gt;
== Publicize Your Efforts ==&lt;br /&gt;
&lt;br /&gt;
It's generally a good idea to make your efforts known via wiki systems, public mailing lists, forums, and publically open version control systems.&lt;br /&gt;
&lt;br /&gt;
Always take credit for your work but please don't do it in the form of comments. Some code is already hard enough to read without comments polluting the text. The best thing to do is to create a patch and put a header with your information at the top. Collaboration systems such as git might already do this for you (??).&lt;br /&gt;
&lt;br /&gt;
If you create something new and have the ability to designate the license for it, please consider license compatibility issues.&lt;br /&gt;
&lt;br /&gt;
== Porting Strategy ==&lt;br /&gt;
&lt;br /&gt;
* Analysis and leverage of the existing build system&lt;br /&gt;
** buid/core/combo/arm-linux.mk&lt;br /&gt;
*** -D__ARCH_ARM_4__ -D__ARCH_ARM_4T__&lt;br /&gt;
*** -march=armv4t -mcpu=arm920t&lt;br /&gt;
** fix various static references to 'armv5'&lt;br /&gt;
* Isolating ARMv5TE ISA dependent code&lt;br /&gt;
** e.g. grep -n -R -i &amp;quot;${armv5te_isa_pattern}&amp;quot; ~/android&lt;br /&gt;
* Abstracting&lt;br /&gt;
** ( C/C++ )&lt;br /&gt;
*** Use inlined functions / #ifdef statments to implement functions in a portable manner&lt;br /&gt;
*** For inlined assembler calls, it's acceptable for now to use generic C code instead, so long as later on we optimize it by hand.&lt;br /&gt;
** ( ASM )&lt;br /&gt;
*** Proprocessor statements based on ISA / architecture, e.g. #ifdef __ARCH_ARM_5__ ... #endif #ifdef __ARCH_ARM_4__ ... #endif&lt;br /&gt;
*** It's highly suggested that preprocessor statements should not be nested (i.e. make them mutually exclusive)&lt;br /&gt;
*** Some people have suggested that we should not do #ifdef's based on ARCH or ISA, but rather based on an AndroidConfig.h which would define macros like PLD(...) #ifdef HAVE_ARM_PLD pld #else ... #endif .&lt;br /&gt;
&lt;br /&gt;
For each ARMv5TE instruction, one could potentially&lt;br /&gt;
* Implement the instruction using general registers instead of DSP calls (i.e. eabi / softfloat)&lt;br /&gt;
* If that is a) nondeterministic, or b) slow, then sections of code need to be analyzed and hand-optimized for the ARMv4T isa&lt;br /&gt;
&lt;br /&gt;
== List of Unsupported Instructions ==&lt;br /&gt;
&lt;br /&gt;
This is a list of opcodes, extracted from the Android source, that are unsupported for ARMv4T compliant processors (specifically the arm920t). The opcodes represent instructions available for ARMv5, ARMv5T, and ARMv5TE architectures, which are not present in the ARMv4T ISA. The list was obtained by exhaustively editing the recompiling the Android source code until it compiled without error.&lt;br /&gt;
&lt;br /&gt;
Please keep in mind, that in some cases, translating these instructions into a sequence of ARMv4T instructions will be impossible and / or result in nondeterministic execution because of&lt;br /&gt;
* the requirement of additional context&lt;br /&gt;
* the tendencies of certain opcodes to change condition registers that may or may not be present in the arm920t core&lt;br /&gt;
&lt;br /&gt;
=== Opcodes ===&lt;br /&gt;
&lt;br /&gt;
{{scroll box|height=480px|text=&lt;br /&gt;
&amp;lt;TABLE BORDER=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TH&amp;gt;Opcode&amp;lt;/TH&amp;gt;&lt;br /&gt;
&amp;lt;TH&amp;gt;Desription&amp;lt;/TH&amp;gt;&lt;br /&gt;
&amp;lt;TH&amp;gt;[[http://www.arm.com/miscPDFs/14128.pdf PDF]] Page Number&amp;lt;/TH&amp;gt;&lt;br /&gt;
&amp;lt;TH&amp;gt;C&amp;lt;/TH&amp;gt;&lt;br /&gt;
&amp;lt;TH&amp;gt;ASM&amp;lt;/TH&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TH VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;BLX(1)&amp;lt;/TH&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;Branch, Link, and Exchange&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;166&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;N/A (Unused in Android)&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;N/A (Unused in Android)&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TH VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;BLX(2)&amp;lt;/TH&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;Branch, Link, and Exchange&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;168&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&lt;br /&gt;
[[User:Cfriedt]] 20081028&lt;br /&gt;
Remove from inline assembly with something like&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#ifdef HAVE_BLX&lt;br /&gt;
... (inline asm) ...&lt;br /&gt;
#else&lt;br /&gt;
... (inline asm with equivalent blx code, as shown to the right) ...&lt;br /&gt;
#endif&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&lt;br /&gt;
[[User:Cfriedt]] 20081028&lt;br /&gt;
Substitute with a macro reference such as&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#ifdef HAVE_BLX&lt;br /&gt;
#define BLX(a) \&lt;br /&gt;
blx a&lt;br /&gt;
#else&lt;br /&gt;
#define BLX(a) \&lt;br /&gt;
mov pc,lr \&lt;br /&gt;
bx a&lt;br /&gt;
#endif&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TH VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;CLZ&amp;lt;/TH&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;Count Leading Zeros&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;175&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&lt;br /&gt;
[[User:Cfriedt]] 20081028&lt;br /&gt;
Remove from inline assembly with something like&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#ifdef HAVE_CLZ&lt;br /&gt;
... (inline asm) ...&lt;br /&gt;
#else&lt;br /&gt;
... (inline asm with equivalent clz code, as shown to the right) ...&lt;br /&gt;
#endif&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&lt;br /&gt;
[[User:Cfriedt]] 20081029&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#ifdef HAVE_CLZ&lt;br /&gt;
#define CLZ(Rd,Rm) \&lt;br /&gt;
clz Rd,Rm&lt;br /&gt;
#else&lt;br /&gt;
#define CLZ(Rd,Rm) \&lt;br /&gt;
...&lt;br /&gt;
#endif&lt;br /&gt;
...&lt;br /&gt;
CLZ(Rd,Rm)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TH VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;LDRD&amp;lt;/TH&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;Load Registers Doubleword&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;200&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&lt;br /&gt;
[[User:Cfriedt]] 20081028&lt;br /&gt;
Substitute different inline assembly code with something like&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#ifdef HAVE_LDRD&lt;br /&gt;
... (inline asm) ...&lt;br /&gt;
#else&lt;br /&gt;
... (inline asm with ldrd substituted) ...&lt;br /&gt;
#endif&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&lt;br /&gt;
[[User:Cfriedt]] 20081028&lt;br /&gt;
Substitute with a macro reference such as&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#ifdef HAVE_LDRD&lt;br /&gt;
#define LDRD(a,b) \&lt;br /&gt;
ldrd a,b&lt;br /&gt;
#else&lt;br /&gt;
#define LDRD(a,b) \&lt;br /&gt;
...&lt;br /&gt;
#endif&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TH VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;PLD&amp;lt;/TH&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;Preload Data&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;240&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&lt;br /&gt;
[[User:Cfriedt]] 20081028&lt;br /&gt;
Remove from inline assembly with something like&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#ifdef HAVE_PLD&lt;br /&gt;
... (inline asm) ...&lt;br /&gt;
#else&lt;br /&gt;
... (inline asm with pld removed) ...&lt;br /&gt;
#endif&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&lt;br /&gt;
[[User:Cfriedt]] 20081028&lt;br /&gt;
Remove or substitute with a macro reference such as&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#ifdef HAVE_PLD&lt;br /&gt;
#define PLD(a,b) \&lt;br /&gt;
pld a,b&lt;br /&gt;
#else&lt;br /&gt;
#define PLD(a,b)&lt;br /&gt;
#endif&lt;br /&gt;
...&lt;br /&gt;
PLD(r0,#0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TH VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;SMLA&amp;amp;lt;x&amp;amp;gt;&amp;amp;lt;y&amp;amp;gt;&amp;lt;/TH&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;Signed Multiply-Accumulate&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;291&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TH VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;SMLAL&amp;amp;lt;x&amp;amp;gt;&amp;amp;lt;y&amp;amp;gt;&amp;lt;/TH&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;Signed Multiply Accumulate Long&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;298&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TH VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;SMLAW&amp;amp;lt;y&amp;amp;gt;&amp;lt;/TH&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;Signed Multiply-Accumulate Word&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;302&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TH VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;SMUL&amp;amp;lt;x&amp;amp;gt;&amp;amp;lt;y&amp;amp;gt;&amp;lt;/TH&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;Signed Multiply&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;316&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TH VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;SMULW&amp;amp;lt;y&amp;amp;gt;&amp;lt;/TH&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;Signed Multiply Word&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;320&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TH VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;QADD&amp;lt;/TH&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;Saturating Add&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;242&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TH VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;QDADD&amp;lt;/TH&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;Saturating Double and Add&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;249&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TH VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;QDSUB&amp;lt;/TH&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;Saturating Double and Subtract&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;251&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TH VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;QSUB&amp;lt;/TH&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;Saturating Subtract&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;253&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&lt;br /&gt;
&amp;lt;TH VALIGN=&amp;quot;TOP&amp;quot;&amp;gt;STRD&amp;lt;/TH&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;Store Registers Doubleword&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;349&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&lt;br /&gt;
[[User:Cfriedt]] 20081028&lt;br /&gt;
Substitute different inline assembly code with something like&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#ifdef HAVE_STRD&lt;br /&gt;
... (inline asm) ...&lt;br /&gt;
#else&lt;br /&gt;
... (inline asm without strd) ...&lt;br /&gt;
#endif&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;TD&amp;gt;&lt;br /&gt;
[[User:Cfriedt]] 20081028&lt;br /&gt;
Substitute with a macro reference such as&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#ifdef HAVE_STRD&lt;br /&gt;
#define STRD(a,b) \&lt;br /&gt;
strd a,b&lt;br /&gt;
#else&lt;br /&gt;
#define STRD(a,b) \&lt;br /&gt;
...&lt;br /&gt;
#endif&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/TD&amp;gt;&lt;br /&gt;
&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;/TABLE&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Scanning for Files That Use the ARMv5TE ISA ===&lt;br /&gt;
&lt;br /&gt;
Using the above list of opcodes, one can scan the Android source code for ARMv4T-incompatible instruction sequences.&lt;br /&gt;
&lt;br /&gt;
'''Code:'''&lt;br /&gt;
{{scroll box|height=240px|text=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
# $1 is the android directory&lt;br /&gt;
&lt;br /&gt;
if [ $# -ne 1 ]; then&lt;br /&gt;
exit -1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
cd &amp;quot;${1}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
opcodes=&amp;quot;blx clz ldrd pld smlabb smlabt smlatt&lt;br /&gt;
smlal smlawb smlawt smulbb smulbt smultt smulwb&lt;br /&gt;
smulwt qadd qdadd qdsub qsub strd&amp;quot;&lt;br /&gt;
&lt;br /&gt;
for op in ${opcodes}; do&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;* ${op} =====================================&amp;quot;&lt;br /&gt;
&lt;br /&gt;
if [ ! -e .files.${op} ]; then&lt;br /&gt;
&lt;br /&gt;
files=&amp;quot;$(grep -R -i &amp;quot;${op} &amp;quot; * 2&amp;gt;/dev/null)&amp;quot;&lt;br /&gt;
files=&amp;quot;$(echo $files | grep -v &amp;quot;^Binary file&amp;quot; | sed -e 's/:.*//')&amp;quot;&lt;br /&gt;
files=&amp;quot;$(echo $files| grep -v &amp;quot;CREDIT\|README\|^\(kernel/\|.git/\)\|\(\.txt\)$&amp;quot; | sort -u)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;${files}&amp;quot; &amp;gt; .files.${op}&lt;br /&gt;
&lt;br /&gt;
else&lt;br /&gt;
files=&amp;quot;$(cat .files.${op})&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
for fil in ${files}; do&lt;br /&gt;
lines=&amp;quot;$(grep -n -i &amp;quot;${op} &amp;quot; ${fil} | sed -e 's/:.*//g' )&amp;quot;&lt;br /&gt;
lines=&amp;quot;$(echo $lines | sed -e 's/ /,/g')&amp;quot;&lt;br /&gt;
echo &amp;quot;** ${fil}: lines {${lines}}&amp;quot;&lt;br /&gt;
done&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Source Files in Android that Use the ARMv5TE ISA ===&lt;br /&gt;
&lt;br /&gt;
The list of files below may or may not be complete. There might also be some assembly code that is generated with a python script (verification?).&lt;br /&gt;
&lt;br /&gt;
{{scroll box|height=150px|text=&lt;br /&gt;
* blx =====================================&lt;br /&gt;
** bionic/libc/tools/gensyscalls.py: lines {168,186}&lt;br /&gt;
** bootloader/legacy/nandwrite/init.S: lines {77}&lt;br /&gt;
** bootloader/legacy/usbloader/init.S: lines {95}&lt;br /&gt;
** dalvik/vm/arch/arm/CallEABI.S: lines {239}&lt;br /&gt;
** dalvik/vm/arch/arm/CallOldABI.S: lines {145}&lt;br /&gt;
** development/emulator/qtools/thumbdis.cpp: lines {187,265}&lt;br /&gt;
** external/qemu/target-arm/translate.c: lines {1151,1971,2444}&lt;br /&gt;
** external/qemu/trace.c: lines {774,1353,1358}&lt;br /&gt;
** system/core/libpixelflinger/codeflinger/disassem.c: lines {416}&lt;br /&gt;
* clz =====================================&lt;br /&gt;
** development/emulator/qtools/armdis.cpp: lines {654}&lt;br /&gt;
** external/opencore/codecs_v2/audio/aac/dec/src/pv_normalize.h: lines {67,84}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/include/norm_l.h: lines {137}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_wb/dec/src/normalize_amr_wb.h: lines {78,95}&lt;br /&gt;
** external/opencore/codecs_v2/audio/mp3/dec/src/pvmp3_normalize.h: lines {67,84}&lt;br /&gt;
** external/opencore/codecs_v2/video/avc_h264/dec/src/vlc.cpp: lines {23}&lt;br /&gt;
** external/opencore/codecs_v2/video/m4v_h263/enc/src/vlc_encode_inline.h: lines {125,162,168,204,218}&lt;br /&gt;
** external/qemu/target-arm/translate.c: lines {1247}&lt;br /&gt;
** external/skia/libcorecg/Sk64.cpp: lines {340,341,343}&lt;br /&gt;
** external/skia/libcorecg/SkMatrix.cpp: lines {500,501}&lt;br /&gt;
** external/skia/libsgl/effects/SkColorMatrixFilter.cpp: lines {135}&lt;br /&gt;
** external/skia/libsgl/sgl/SkBitmap.cpp: lines {945,946,947}&lt;br /&gt;
** external/skia/libsgl/sgl/SkBitmapShader.cpp: lines {32,33,34}&lt;br /&gt;
** external/skia/libsgl/sgl/SkGraphics.cpp: lines {429,437}&lt;br /&gt;
* ldrd =====================================&lt;br /&gt;
** dalvik/vm/mterp/armv5/OP_AGET_WIDE.S: lines {28}&lt;br /&gt;
** dalvik/vm/mterp/armv5/OP_IGET_WIDE.S: lines {37}&lt;br /&gt;
** dalvik/vm/mterp/armv5/OP_IGET_WIDE_QUICK.S: lines {10}&lt;br /&gt;
** dalvik/vm/mterp/armv5/OP_SGET_WIDE.S: lines {17}&lt;br /&gt;
** dalvik/vm/mterp/out/InterpAsm-armv5.S: lines {2653,7464,8318,8390}&lt;br /&gt;
** system/core/libpixelflinger/rotate90CW_4x4_16v6.S: lines {40,41,42,43}&lt;br /&gt;
* pld =====================================&lt;br /&gt;
** bionic/libc/arch-arm/bionic/memcmp.S: lines {37,44,45,56,57,107,108,195,196}&lt;br /&gt;
** bionic/libc/arch-arm/bionic/memcmp16.S: lines {37,44,45,67,68,116,117,198,199}&lt;br /&gt;
** bionic/libc/arch-arm/bionic/memcpy.S: lines {55,56,57,145,266,293,320}&lt;br /&gt;
** bionic/libc/arch-arm/bionic/strlen.c: lines {59,65}&lt;br /&gt;
** bionic/libc/kernel/arch-arm/asm/arch/irqs.h: lines {162}&lt;br /&gt;
** external/elfutils/src/Makefile: lines {243}&lt;br /&gt;
** external/elfutils/src/Makefile.am: lines {32}&lt;br /&gt;
** external/elfutils/src/Makefile.in: lines {243}&lt;br /&gt;
** external/jpeg/jidctfst.S: lines {69,235,247}&lt;br /&gt;
** external/qemu/target-arm/translate.c: lines {1149}&lt;br /&gt;
** system/core/libpixelflinger/codeflinger/ARMAssembler.cpp: lines {368}&lt;br /&gt;
** system/core/libpixelflinger/codeflinger/ARMAssemblerInterface.cpp: lines {104,108,117}&lt;br /&gt;
** system/core/libpixelflinger/t32cb16blend.S: lines {111,112,134,143}&lt;br /&gt;
* smlabb =====================================&lt;br /&gt;
** external/jpeg/jidctfst.S: lines {110,115,155,156}&lt;br /&gt;
** external/neven/Embedded/common/src/b_BasicEm/Math.c: lines {584,589}&lt;br /&gt;
** external/opencore/codecs_v2/audio/aac/dec/src/fxp_mul32_arm_gcc.h: lines {147,166}&lt;br /&gt;
** external/opencore/codecs_v2/audio/aac/dec/src/fxp_mul32_arm_v5.h: lines {120,129}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/include/basic_op_arm_gcc_v5.h: lines {514,533}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/include/basic_op_arm_v5.h: lines {418,429}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_wb/dec/src/pvamrwbdecoder_basic_op_armv5.h: lines {202}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_wb/dec/src/pvamrwbdecoder_basic_op_gcc_armv5.h: lines {250}&lt;br /&gt;
** external/opencore/codecs_v2/video/m4v_h263/enc/src/dct_inline.h: lines {119,155,167,278,326,341}&lt;br /&gt;
** external/opencore/codecs_v2/video/m4v_h263/enc/src/fastquant_inline.h: lines {178,225,437,517}&lt;br /&gt;
** frameworks/base/libs/audioflinger/AudioMixer.cpp: lines {405,436}&lt;br /&gt;
* smlabt =====================================&lt;br /&gt;
** external/opencore/codecs_v2/audio/aac/dec/src/fxp_mul32_arm_gcc.h: lines {184}&lt;br /&gt;
** external/opencore/codecs_v2/audio/aac/dec/src/fxp_mul32_arm_v5.h: lines {138}&lt;br /&gt;
** external/opencore/codecs_v2/video/m4v_h263/enc/src/dct_inline.h: lines {131,143,294,310}&lt;br /&gt;
* smlatt =====================================&lt;br /&gt;
** external/neven/Embedded/common/src/b_BasicEm/Math.c: lines {585,590}&lt;br /&gt;
** external/opencore/codecs_v2/audio/aac/dec/src/fxp_mul32_arm_v5.h: lines {157}&lt;br /&gt;
** frameworks/base/libs/audioflinger/AudioMixer.cpp: lines {441}&lt;br /&gt;
* smlal =====================================&lt;br /&gt;
** external/opencore/codecs_v2/audio/aac/dec/src/fxp_mul32_arm_v4.h: lines {179,223,236,257,267}&lt;br /&gt;
** external/opencore/codecs_v2/audio/aac/dec/src/fxp_mul32_arm_v4_gcc.h: lines {264,341}&lt;br /&gt;
** external/opencore/codecs_v2/audio/aac/dec/src/fxp_mul32_arm_v5.h: lines {178,188,198}&lt;br /&gt;
** external/opencore/codecs_v2/audio/mp3/dec/src/asm/pvmp3_dct_9.s: lines {84,90,96,101,109,114,116,118,121,132,138,150,163,165,167,174,176,178}&lt;br /&gt;
** external/opencore/codecs_v2/audio/mp3/dec/src/asm/pvmp3_dct_9_gcc.s: lines {73,79,86,90,98,103,105,107,110,121,127,139,152,154,156,163,165,167}&lt;br /&gt;
** external/opencore/codecs_v2/audio/mp3/dec/src/asm/pvmp3_mdct_18.asm: lines {143,162,178,188,192,199,207,217,225,231,237,241,244}&lt;br /&gt;
** external/opencore/codecs_v2/audio/mp3/dec/src/asm/pvmp3_mdct_18.s: lines {145,164,180,190,194,201,209,219,227,233,239,243,246}&lt;br /&gt;
** external/opencore/codecs_v2/audio/mp3/dec/src/asm/pvmp3_mdct_18_gcc.s: lines {143,162,178,188,192,199,207,217,225,231,237,241,244}&lt;br /&gt;
** external/opencore/codecs_v2/audio/mp3/dec/src/asm/pvmp3_polyphase_filter_window.asm: lines {62,63,66,72,76,77,81,82,85,90,94,97,99,100,103,108,113,114,118,119,122,129,136,137,176,179,183,187,190,193}&lt;br /&gt;
** external/opencore/codecs_v2/audio/mp3/dec/src/asm/pvmp3_polyphase_filter_window.s: lines {67,68,71,77,81,82,86,87,90,95,99,102,104,105,108,113,118,119,123,124,127,134,141,142,181,184,188,192,195,198}&lt;br /&gt;
** external/opencore/codecs_v2/audio/mp3/dec/src/asm/pvmp3_polyphase_filter_window_gcc.s: lines {65,66,69,75,79,80,84,85,88,93,97,100,102,103,106,111,116,117,121,122,125,132,139,140,179,182,186,190,193,196}&lt;br /&gt;
** external/opencore/codecs_v2/audio/mp3/dec/src/pv_mp3dec_fxd_op_arm.h: lines {148}&lt;br /&gt;
** external/qemu/trace.c: lines {813}&lt;br /&gt;
** frameworks/base/opengl/libagl/iterators.S: lines {66,67}&lt;br /&gt;
** frameworks/base/opengl/libagl/matrix.h: lines {67,68,96,126,127,282,283,314,315,316}&lt;br /&gt;
* smlawb =====================================&lt;br /&gt;
** external/opencore/codecs_v2/audio/aac/dec/src/fxp_mul32_arm_gcc.h: lines {203,259}&lt;br /&gt;
** external/opencore/codecs_v2/audio/aac/dec/src/fxp_mul32_arm_v5.h: lines {166,416}&lt;br /&gt;
** frameworks/base/libs/audioflinger/AudioResamplerSinc.cpp: lines {93,109}&lt;br /&gt;
** frameworks/base/opengl/libagl/matrix.h: lines {163,203}&lt;br /&gt;
* smlawt =====================================&lt;br /&gt;
** frameworks/base/libs/audioflinger/AudioResamplerSinc.cpp: lines {114}&lt;br /&gt;
** frameworks/base/opengl/libagl/matrix.h: lines {162,202,243,244}&lt;br /&gt;
* smulbb =====================================&lt;br /&gt;
** external/jpeg/jidctfst.S: lines {109,114,151,153}&lt;br /&gt;
** external/opencore/codecs_v2/audio/aac/dec/src/fxp_mul32_arm_gcc.h: lines {79}&lt;br /&gt;
** external/opencore/codecs_v2/audio/aac/dec/src/fxp_mul32_arm_v5.h: lines {71,81}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/include/basic_op_arm_gcc_v5.h: lines {207,251,297,348,361,375,427,440,487}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/include/basic_op_arm_v5.h: lines {199,234,274,314,316,326,367,369,404}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/include/l_mac.h: lines {121,137}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/include/l_msu.h: lines {123,142}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/include/l_mult.h: lines {122,140}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/include/mpy_32.h: lines {132,134,138,164,177,191}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/include/mpy_32_16.h: lines {127,129,150,163}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/include/mult.h: lines {121,141}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_wb/dec/src/pvamrwbdecoder_basic_op_armv5.h: lines {115,139,151,163,189,190,212}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_wb/dec/src/pvamrwbdecoder_basic_op_gcc_armv5.h: lines {112,113,164,183,201,218,265}&lt;br /&gt;
** external/opencore/codecs_v2/video/m4v_h263/enc/src/fastquant_inline.h: lines {250,457,531}&lt;br /&gt;
** external/skia/include/corecg/SkMath.h: lines {170}&lt;br /&gt;
** frameworks/base/libs/audioflinger/AudioMixer.cpp: lines {420,462}&lt;br /&gt;
** system/core/libpixelflinger/t32cb16blend.S: lines {39,66,74,82}&lt;br /&gt;
* smulbt =====================================&lt;br /&gt;
** external/opencore/codecs_v2/audio/aac/dec/src/fxp_mul32_arm_gcc.h: lines {115}&lt;br /&gt;
** external/opencore/codecs_v2/audio/aac/dec/src/fxp_mul32_arm_v5.h: lines {109}&lt;br /&gt;
** system/core/libpixelflinger/codeflinger/texturing.cpp: lines {1091}&lt;br /&gt;
** system/core/libpixelflinger/t32cb16blend.S: lines {47,55}&lt;br /&gt;
* smultt =====================================&lt;br /&gt;
** external/opencore/codecs_v2/audio/aac/dec/src/fxp_mul32_arm_gcc.h: lines {131}&lt;br /&gt;
** external/opencore/codecs_v2/audio/aac/dec/src/fxp_mul32_arm_v5.h: lines {100}&lt;br /&gt;
** frameworks/base/libs/audioflinger/AudioMixer.cpp: lines {467}&lt;br /&gt;
** frameworks/base/libs/audioflinger/AudioResamplerSinc.cpp: lines {73}&lt;br /&gt;
* smulwb =====================================&lt;br /&gt;
** external/opencore/codecs_v2/audio/aac/dec/src/fxp_mul32_arm_gcc.h: lines {221}&lt;br /&gt;
** external/opencore/codecs_v2/audio/aac/dec/src/fxp_mul32_arm_v5.h: lines {373}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_wb/dec/src/pvamrwbdecoder_basic_op_armv5.h: lines {222}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_wb/dec/src/pvamrwbdecoder_basic_op_gcc_armv5.h: lines {283}&lt;br /&gt;
** external/opencore/codecs_v2/audio/sbc/enc/src/sbcenc_filter.h: lines {33}&lt;br /&gt;
** frameworks/base/opengl/libagl/matrix.h: lines {161,201,242}&lt;br /&gt;
* smulwt =====================================&lt;br /&gt;
** external/opencore/codecs_v2/audio/aac/dec/src/fxp_mul32_arm_gcc.h: lines {202,240}&lt;br /&gt;
** external/opencore/codecs_v2/audio/aac/dec/src/fxp_mul32_arm_v5.h: lines {385,415}&lt;br /&gt;
* qadd =====================================&lt;br /&gt;
** external/opencore/codecs_v2/audio/aac/dec/src/fxp_mul32_arm_gcc.h: lines {64}&lt;br /&gt;
** external/opencore/codecs_v2/audio/aac/dec/src/fxp_mul32_arm_v5.h: lines {60}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/include/basic_op_arm_gcc_v5.h: lines {130,256}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/include/basic_op_arm_v5.h: lines {128,235}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/include/l_add.h: lines {122,137}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/include/l_mult.h: lines {123,145}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_wb/dec/src/pvamrwbdecoder_basic_op_armv5.h: lines {71,102,152,176,192}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_wb/dec/src/pvamrwbdecoder_basic_op_gcc_armv5.h: lines {91,115,148,202,234}&lt;br /&gt;
** external/openssl/crypto/bn/bn_prime.c: lines {454,455}&lt;br /&gt;
* qdadd =====================================&lt;br /&gt;
** external/opencore/codecs_v2/audio/aac/dec/src/calc_sbr_synfilterbank.cpp: lines {116,162}&lt;br /&gt;
** external/opencore/codecs_v2/audio/aac/dec/src/trans4m_freq_2_time_fxp.cpp: lines {472,494}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/include/basic_op_arm_gcc_v5.h: lines {212,356,370,385,435,449}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/include/basic_op_arm_v5.h: lines {200,315,321,331,368,371}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/include/l_mac.h: lines {122,142}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/include/mpy_32.h: lines {133,136,140,172,186,201}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/include/mpy_32_16.h: lines {128,131,158,172}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_wb/dec/src/pvamrwbdecoder_basic_op_armv5.h: lines {116}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_wb/dec/src/pvamrwbdecoder_basic_op_gcc_armv5.h: lines {184}&lt;br /&gt;
* qdsub =====================================&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/include/basic_op_arm_gcc_v5.h: lines {302}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/include/basic_op_arm_v5.h: lines {275}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/include/l_msu.h: lines {124,147}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_wb/dec/src/pvamrwbdecoder_basic_op_armv5.h: lines {140}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_wb/dec/src/pvamrwbdecoder_basic_op_gcc_armv5.h: lines {165}&lt;br /&gt;
* qsub =====================================&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/include/basic_op_arm_gcc_v5.h: lines {167}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/include/basic_op_arm_v5.h: lines {162}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/include/l_sub.h: lines {121,138}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_wb/dec/src/pvamrwbdecoder_basic_op_armv5.h: lines {88,127}&lt;br /&gt;
** external/opencore/codecs_v2/audio/gsm_amr/amr_wb/dec/src/pvamrwbdecoder_basic_op_gcc_armv5.h: lines {70,133}&lt;br /&gt;
* strd =====================================&lt;br /&gt;
** dalvik/vm/mterp/armv5/OP_APUT_WIDE.S: lines {31}&lt;br /&gt;
** dalvik/vm/mterp/armv5/OP_IPUT_WIDE.S: lines {39}&lt;br /&gt;
** dalvik/vm/mterp/armv5/OP_IPUT_WIDE_QUICK.S: lines {14}&lt;br /&gt;
** dalvik/vm/mterp/armv5/OP_SPUT_WIDE.S: lines {21}&lt;br /&gt;
** dalvik/vm/mterp/out/InterpAsm-armv5.S: lines {2834,7530,8331,8542}&lt;br /&gt;
** dalvik/vm/oo/Object.h: lines {589}&lt;br /&gt;
** external/opencore/fileformats/avi/parser/include/pv_avifile_streamlist.h: lines {179}&lt;br /&gt;
** external/opencore/fileformats/avi/parser/src/pv_avifile_streamlist.cpp: lines {153}&lt;br /&gt;
** system/core/libpixelflinger/rotate90CW_4x4_16v6.S: lines {47,52,56,60}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Discussion ===&lt;br /&gt;
=== Notes ===&lt;br /&gt;
The file&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
system/core/libpixelflinger/codeflinger/ARMAssembler.cpp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will need special attention. It's responsible for dynamic generation of DSP code.&lt;br /&gt;
&lt;br /&gt;
== Suggestions ==&lt;br /&gt;
* [[User:Cfriedt]] 20081024 I'm not sure how feasible this is, given that the [http://wiki.openmoko.org/wiki/Neo_FreeRunner_Hardware_Issues#SMedia_3362_Documentation_.26_OpenGL_ES_Drivers SMedia 3362 is heavily NDA'd]. However, since the arm920t lacks a floating-point unit / DSP core, is it possible to use the SMedia chip for general-purpose math? This would help in the Android platform, at least, for things like audio and video codecs. Aside from an OpenGL ES driver, OpenMoko documentation for the SMedia would be highly appreciated.&lt;br /&gt;
&lt;br /&gt;
= Important Links =&lt;br /&gt;
(Please Update Me)&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
* [http://source.android.com/documentation Android Documentation]&lt;br /&gt;
* [http://www.arm.com/documentation/ ARM Documentation], (keywords: armv4t, armv5t, armv5te, arm920t, arm926ej-s)&lt;br /&gt;
* [http://www.arm.com/miscPDFs/9658.pdf ARM Assembly Language Programming]&lt;br /&gt;
* [http://www.cse.unsw.edu.au/~cs3221/labs/assembler-intro.pdf An Introduction to the GNU Assembler]&lt;br /&gt;
* [http://www.heyrick.co.uk/assembler/apcsintro.html ARM Procedure Call Standard], [http://en.wikipedia.org/wiki/Calling_convention#ARM ARM Calling Conventions]&lt;br /&gt;
&lt;br /&gt;
== Instruction Set References ==&lt;br /&gt;
* [http://www.arm.com/miscPDFs/14128.pdf ARM Architecture Reference Manual], The definitive ISA documentation&lt;br /&gt;
* [http://www.simplemachines.it/doc/QRC0001H_rvct_v2.1_arm.pdf ARM Instruction Set Quick Reference Card]&lt;br /&gt;
* [http://infocenter.arm.com/help/topic/com.arm.doc.qrc0001l/QRC0001_UAL.pdf ARM and Thumb -2 Instruction Set Quick Reference Card]&lt;br /&gt;
* [http://infocenter.arm.com/help/topic/com.arm.doc.dvi0025b/DVI0025.pdf ARMv4T] (See section 1.4.13)&lt;br /&gt;
* [http://infocenter.arm.com/help/topic/com.arm.doc.dvi0014a/DVI0014A_ARM10T_PO.pdf ARMv5T] (See section 4.16)&lt;br /&gt;
* [http://www.arm.com/pdfs/ARM-DSP.pdf ARM DSP Enhanced Instruction Set]&lt;br /&gt;
* [http://infocenter.arm.com/help/topic/com.arm.doc.ihi0042c/IHI0042C_aapcs.pdf Procedure Call Standard for the ARM Architecture]&lt;br /&gt;
&lt;br /&gt;
== Hardware Reference ==&lt;br /&gt;
&lt;br /&gt;
* [[Neo1973 Hardware]]&lt;br /&gt;
* [[Neo FreeRunner GTA02 Hardware]]&lt;br /&gt;
&lt;br /&gt;
== Communities ==&lt;br /&gt;
* [http://source.android.com/discuss Android Public Mailing Lists]&lt;br /&gt;
** Specifically, [http://groups.google.com/group/android-porting android-porting]&lt;br /&gt;
* [http://lists.openmoko.org/mailman/listinfo OpenMoko Mailing Lists]&lt;br /&gt;
** Specifically, [http://lists.openmoko.org/mailman/listinfo/openmoko-kernel openmoko-kernel]&lt;br /&gt;
* [http://forum.koolu.org/viewforum.php?f=10 Android on FreeRunner] at KoolU.com&lt;br /&gt;
* [[Openmoko Local Groups]]&lt;br /&gt;
* [[Openmoko:Community_Portal]]&lt;br /&gt;
&lt;br /&gt;
= See also =&lt;br /&gt;
&lt;br /&gt;
* [[Debug_Board]]&lt;br /&gt;
&lt;br /&gt;
= External Links =&lt;br /&gt;
&lt;br /&gt;
[[Category:Distributions]]&lt;/div&gt;</summary>
		<author><name>Narmo</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Development_with_Eclipse/ru</id>
		<title>Development with Eclipse/ru</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Development_with_Eclipse/ru"/>
				<updated>2008-11-05T23:31:11Z</updated>
		
		<summary type="html">&lt;p&gt;Narmo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages| Development with Eclipse}}&lt;br /&gt;
Графические приложения Openmoko снованы на среде Gnome. Их легко создавать, запускать и отлаживать как программы для настольных ПК или загружать в мобильный телефон только на финальной стадии отладки. Используя мобильный телефон, можно использовать экран, клавиатуру и мышь настольного комьютера, и это работает. Данная статья предоставляет инструкции для Debian, но они подходят для любых (не сломанных) Linux-дистрибутивов.&lt;br /&gt;
&lt;br /&gt;
Eclipse включает в себя модуль для разработки на C/C++. Вам необходима последняя версия Eclipse, плагин для C/C++ и, возможно, обновление пакета разработчика GTK. Самый лёгкий способ заставить простое приложение выполняться - это создать проект C и добавить в флаги компилятора и линковщика флаги `pkg-config --cflags --libs gtk+-2.0`. После этого посетите страницу [http://library.gnome.org/devel/gtk-tutorial/stable/ GTK tutorial] и, следуя этим инструкциям, создайте простое приложение.&lt;br /&gt;
&lt;br /&gt;
Данное решение не только сокращает время разработки, но также позволяет использовать отладчик Eclipse для разработки на C.&lt;br /&gt;
&lt;br /&gt;
Исполняемый файл для мобильного телефона создаётся из тех же самых исходных кодов, используя средства разработки Openmoko. Так как процессы сборки под настольный компьютер и под Openmoko различиаются, самым лучшим вариантом является создание двух окружений разработки и создание символических ссылок для них.&lt;br /&gt;
&lt;br /&gt;
After producing the Openmoko executable, it may be reasonable to try it via X, using the keyboard, mouse and screen of the desktop computer. All you need is to use the  -X option in the ssh command when you log in into the connected mobile phone. After that, you should be able to run the application inside the phone but have its X window on a screen of the desktop machine. This way you can check the actual execution speed and have access to the mobile phone devices that are not present on PC.&lt;br /&gt;
&lt;br /&gt;
Eclipse allows to add the custom builder to the project. These builders can be either Ant scripts or the executable shell scripts. These possibilities can be used to force the Openmoko toolchain to produce the phone executable without leaving the Eclipse IDE.&lt;br /&gt;
&lt;br /&gt;
== Установка конфигурации создания Freerunner==&lt;br /&gt;
&lt;br /&gt;
# установите [[Toolchain]]&lt;br /&gt;
# откройте 'Properties' для вашего проекта C или C++&lt;br /&gt;
# выберите 'C/C++ Build'-&amp;gt;'Tool Settings'&lt;br /&gt;
# Кликните на 'Configuration'-&amp;gt;'Manage' и создайте новую конфигурацию например. Freerunner (скопируйте настройки с конфигурации 'Relase' )&lt;br /&gt;
# измените GCC C||C++||Assembler Compiler command на /usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/bin/gcc||g++||as&lt;br /&gt;
# измените GCC Linker Command на /usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/bin/gcc (g++ для проектов C++)&lt;br /&gt;
# идите 'Build Steps' и добавьте &amp;quot;. /usr/local/openmoko/arm/setup-env&amp;quot; к 'Pre-build step'&lt;br /&gt;
# щелкните на Ok и выберите 'Freerunner' в 'Active Build Configuration' для вашего проекта&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Поправки для Eclipse Ganymed (3.4)&lt;br /&gt;
&lt;br /&gt;
There are three places where you have to change settings as above in Project Properties -&amp;gt; C/C++ Build -&amp;gt; Settings -&amp;gt; Tool Settings&lt;br /&gt;
#GCC C Compiler -&amp;gt; Command: /usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/bin/gcc&lt;br /&gt;
#GCC C Linker -&amp;gt; Command: /usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/bin/gcc&lt;br /&gt;
#GCC Assembler -&amp;gt; Command: /usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/bin/gcc||g++||as&lt;br /&gt;
&lt;br /&gt;
--[[User:Perty|Perty]] 20:22, 18 September 2008 (UTC)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
вы можеет скопировать свои бинарники на Freerunner через добавление команды Post-Build в 'Build Steps' так.&lt;br /&gt;
&lt;br /&gt;
scp ${имя_проекта} root@neo:/home/root/dev_app/&lt;br /&gt;
&lt;br /&gt;
или вы можете запустить ваше приложение на Freerunner добавив в конфигурацию Run&lt;br /&gt;
&lt;br /&gt;
C/C++ Application: /usr/bin/ssh&lt;br /&gt;
Arguments: root@neo &amp;quot;cd dev_app &amp;amp;&amp;amp; DISPLAY=:0 ./${project_name}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
--[[User:PipBoy2000|PipBoy2000]] 22:30, 9 September 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
==Настройка Eclipse для разработки с Qt4==&lt;br /&gt;
&lt;br /&gt;
===Настройка Environment с Libraries===&lt;br /&gt;
&lt;br /&gt;
*Установите [[Toolchain]]&lt;br /&gt;
&lt;br /&gt;
*Установите Eclipse с C/C++ development plug-in&lt;br /&gt;
&lt;br /&gt;
*Добавьте Anstrom Repository в '''Host'''-toolchain и также '''FreeRunner'''&lt;br /&gt;
**Добавьте Anstrom Repository в '''Host'''-toolchain:&lt;br /&gt;
echo arch base 50 &amp;gt;&amp;gt; /usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/etc/opkg.conf&lt;br /&gt;
echo src/gz base http://www.angstrom-distribution.org/feeds/2008/ipk/glibc/armv4t/base &amp;gt;&amp;gt; /usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/etc/opkg.conf&lt;br /&gt;
&lt;br /&gt;
и тогда ..&lt;br /&gt;
opkg-target update&lt;br /&gt;
opkg-target install qt4-x11-free&lt;br /&gt;
opkg-target install qt4-x11-free-dev qt4-designer qt4-assistant&lt;br /&gt;
&lt;br /&gt;
**Add the [[Users Repositories|Anstrom Repository]] also to the '''FreeRunner''' and do:&lt;br /&gt;
opkg update&lt;br /&gt;
opkg install qt4-x11-free&lt;br /&gt;
&lt;br /&gt;
===Конфигурирование проекта Eclipse ===&lt;br /&gt;
Project - right click - Properties --&amp;gt; C/C++ Build -- Tab &amp;quot;Tool Settings&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====Конфигурация: Debug====&lt;br /&gt;
&lt;br /&gt;
*GCC c++ compiler -&amp;gt; Directories --- add&lt;br /&gt;
/usr/include/qt4&lt;br /&gt;
/usr/include/qt4/QtGui&lt;br /&gt;
&lt;br /&gt;
*GCC C++ Linker -&amp;gt; Libraries ---add&lt;br /&gt;
**Libraries (-l):    QtCore and QtGui&lt;br /&gt;
**Library search path (-L):    /usr/lib&lt;br /&gt;
&lt;br /&gt;
====Конфигурация: Freerunner====&lt;br /&gt;
&lt;br /&gt;
Project - right click - Properties --&amp;gt; C/C++ Build -- Tab &amp;quot;Tool Settings&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Создаем конфигурацию &amp;quot;Freerunner&amp;quot;:&lt;br /&gt;
кликнув 'Configuration'-&amp;gt;'Manage' и создав новую конфигурацию например Freerunner (скопируйте настройки из конфигурации 'Relase')&lt;br /&gt;
&lt;br /&gt;
*GCC C++ Compiler&lt;br /&gt;
**Command: /usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/bin/g++&lt;br /&gt;
*GCC C++ Compiler -&amp;gt; Directories&lt;br /&gt;
/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/usr/include/qt4/QtCore&lt;br /&gt;
/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/usr/include/qt4/QtGui&lt;br /&gt;
/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/usr/include/qt4&lt;br /&gt;
/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/usr/include/c++/4.1.2/arm-angstrom-linux-gnueabi&lt;br /&gt;
/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/usr/include/c++/4.1.2&lt;br /&gt;
/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/usr/include/c++/4.1.2/backward&lt;br /&gt;
&lt;br /&gt;
*GCC C++ Linker&lt;br /&gt;
**Command:    /usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/bin/g++&lt;br /&gt;
&lt;br /&gt;
*GCC C++ Linker -&amp;gt; Libraries --- add&lt;br /&gt;
**Libraries (-l): QtCore and QtGui&lt;br /&gt;
**Library search path (-L):    /usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/usr/lib&lt;br /&gt;
&lt;br /&gt;
* GCC Assembler&lt;br /&gt;
**Command: /usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/bin/as&lt;br /&gt;
&lt;br /&gt;
перейдем к закладке 'Build Steps' и добавим &amp;quot;. /usr/local/openmoko/arm/setup-env&amp;quot; к 'Pre-build step'&lt;br /&gt;
&lt;br /&gt;
====workaround to deal with .ui файлы с Qt-Designer====&lt;br /&gt;
&lt;br /&gt;
mayby somody has a better solution please correct!!&lt;br /&gt;
&lt;br /&gt;
Create a project with properties as mentioned above.&lt;br /&gt;
Для компилирования вашего проекта вызовите терминал в Project-Folder и введите там&lt;br /&gt;
qmake-qt4 -project&lt;br /&gt;
qmake-qt4&lt;br /&gt;
make&lt;br /&gt;
и теперь собирайте ваш проект с Eclipse Configuration &amp;quot;Freerunner&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[Category:Application Developer/ru]]&lt;/div&gt;</summary>
		<author><name>Narmo</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Main_Page/ru</id>
		<title>Main Page/ru</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Main_Page/ru"/>
				<updated>2008-11-01T19:00:10Z</updated>
		
		<summary type="html">&lt;p&gt;Narmo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{{Languages|Main_Page}}&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;DIV ALIGN=center&amp;gt;&amp;lt;big&amp;gt;'''Openmoko™ Открытый. Мобильный. Свободный.'''&amp;lt;/big&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/DIV&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
[http://www.linuxphone.ru Портал русскоязычных пользователей]&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
__NOEDITSECTION__ [[Image:Freerunner02.gif|thumb|150px|right|Neo FreeRunners]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=75d806&amp;gt;Введение в Openmoko&amp;lt;/font&amp;gt;==&lt;br /&gt;
[[Image:OpenmokoFramework08.png|250px|left|Программный стек Openmoko|thumb]]&lt;br /&gt;
Openmoko™ - рожден как проект с [http://ru.wikipedia.org/wiki/%D0%9E%D1%82%D0%BA%D1%80%D1%8B%D1%82%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D0%BE%D0%B5_%D0%BE%D0%B1%D0%B5%D1%81%D0%BF%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D0%B5 Открытым Исходным Кодом] под  [[License| лицензиями GPL и LGPL]], представляющий открытую программную архитектуру для мобильных платформ. Openmoko на данный момент продает смартфон [[Neo FreeRunner]] для продвинутых пользователей и начинает компанию по разработке программного обеспечения под него.&lt;br /&gt;
&lt;br /&gt;
[[NeoSoftwareStack|Архитектура Openmoko]] включает в себя [[Host-based development with Xoo and Xephyr|X сервер]] и позволяет пользователям и разработчикам превратить аппаратную платформу мобильных устройств в уникальные продукты. Наша лицензия дает свободу пользователям и разработчикам от &amp;quot;iron to the eyeballs,&amp;quot; свободу в поверхностной настройке устройства или радикальном его изменении;  сменить фоновый рисунок или пересобрать всю систему! Она дает свободу, например, превратить телефон в медицинское устройство, или устройство продаж, или просто свободно устанавливать ваши программы. Для полной свободы программного обеспечения для наших устройств, мы также опубликовали схему устройства в формате CAD под лицензией Creative Commons. Дав свободу программному обеспечению под лицензией GPL, мы позволили сообществу разработчиков FOSS &amp;quot;сделать ее новой&amp;quot;. Освободив схемы устройства в файлах [http://downloads.openmoko.org/CAD/ CAD], мы предоставляем промышленным дизайнерам и инженерам эту же возможность. И на LinuxWorld 2008, мы предоставили [http://downloads.openmoko.org/schematics/ принципиальные схемы].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;6&amp;quot; width=&amp;quot;100%&amp;quot; style=&amp;quot;color:white&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background:#ff6600; text-align:center; font-weight:bold&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;50%&amp;quot;&amp;gt;Новости и события&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;50%&amp;quot;&amp;gt;Новости Openmoko?&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr valign=&amp;quot;top&amp;quot; style=&amp;quot;background:#333333&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
* 9/10: [[Weekly Engineering News|Openmoko Weekly Engineering News]]&lt;br /&gt;
* 6/10: [[Community_Updates/October_3rd%2C_2008/ru|Community update]]&lt;br /&gt;
* 2/10: Nokia выпустила [http://qtextended.org/ Qt Extended 4.4.1] ([http://qtextended.org/modules/mydownloads/visit.php?lid=86 image], [http://qtextended.org/modules/mydownloads/visit.php?lid=85 SDK])&lt;br /&gt;
* 27/9: Вышел релиз [[FDOM]]&lt;br /&gt;
* 19/9: точка релиза [[Om_2008.9_Update|Om 2008.9]]&lt;br /&gt;
* 17/9: [[17th September, 2008 - Activity since launch|Community update]] - Activity since launch&lt;br /&gt;
* 11/9: Команда сделала  релиз [http://downloads.openmoko.org/framework/milestone3/ milestone 3] дистрибутива от FSO.&lt;br /&gt;
* 2/9: Trolltech [http://www.qtopia.net/modules/mydownloads/singlefile.php?lid=83 опубликовала] Qtopia 4.3.3-snapshot.&lt;br /&gt;
* 28/8: Trolltech [http://n2.nabble.com/qtopia-4.3.2-release-tp789148p789148.html опубликовала] Qtopia 4.3.2.&lt;br /&gt;
* 26/8: Openmoko [http://lists.openmoko.org/pipermail/community/2008-August/027997.html updates] [[Om 2008.8]] дистрибутив.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
* [[Weekly Engineering News|Openmoko Weekly Engineering News]]&lt;br /&gt;
* [[News Archive|(news archive)]]&amp;lt;!--Editors: copy removed news to News Archive! --&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;О Openmoko&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[Introduction/ru| Введение]]&lt;br /&gt;
* [[Why Openmoko| Почему Openmoko]]&lt;br /&gt;
* [[Neo FreeRunner|Neo FreeRunner phone]]&lt;br /&gt;
* [[Supported Hardware]]&lt;br /&gt;
* [[FAQ| ЧаВо]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Старт с Openmoko&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[Getting Openmoko]]&lt;br /&gt;
* [http://www.openmoko.com Openmoko Inc.]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background:#ff6600; text-align:center; font-weight:bold&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;50%&amp;quot;&amp;gt;Для пользователей&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;50%&amp;quot;&amp;gt;Для разработчиков&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr valign=&amp;quot;top&amp;quot; style=&amp;quot;background:#333333&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;C чего начать&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[Getting Started with your Neo FreeRunner/ru | Neo FreeRunner getting started guide]]&lt;br /&gt;
* [[Applications]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Дистрибутивы&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[Distributions|Features comparison table]]&lt;br /&gt;
* [[Om 2008.8|Om 2008.8 (ASU)]] - [[Om 2007.2|Om 2007.2 (old stable)]]&lt;br /&gt;
* [[OpenmokoFramework|FSO]] - [[Qtopia_on_FreeRunner|Qtopia]] - [[Debian|Debian]] - [[Gentoo|Gentoo]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Общение&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[Mailing List Duplicates| Mailing List Duplicates]]&lt;br /&gt;
* [[Discussion_Forums| Форум]]&lt;br /&gt;
* [[Community repository]]&lt;br /&gt;
* [[Development resources | Ресурсы для разработчиков]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Разработка приложений&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[Openmoko developer guide| Руководство разработчика ]]&lt;br /&gt;
* [[Toolchain|Средства разработки]]&lt;br /&gt;
&amp;lt;!-- * &amp;lt;font color=white&amp;gt;VMware&amp;lt;/font&amp;gt; --&amp;gt;&lt;br /&gt;
* [[Python|Введение в Python]]&lt;br /&gt;
* [http://projects.openmoko.org/ Projects hosted in our GForge]&lt;br /&gt;
* [[OpenmokoFramework|Openmoko dbus-based service level framework]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Интеграция и дистрибутивы&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[OpenEmbedded|The OpenEmbedded distribution building framework]]&lt;br /&gt;
* [[MokoMakefile|Сборка Openmoko с использованием MokoMakefile]]&lt;br /&gt;
* [[Opkg|Менеджер пакетов Opkg]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Эмуляция&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[Openmoko under QEMU| Openmoko в QEMU]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=75d806&amp;gt;Продукция Openmoko&amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Первый продукт Openmoko - Neo1973, продавался исключительно через интернет-магазин Openmoko. Продажи закончились в начале февраля 2008 года.&lt;br /&gt;
&lt;br /&gt;
С 26 июня 2008 года Openmoko поставляет Neo FreeRunner (GTA02) - второе поколение Neo. Если вы заинтересованны в покупке Neo FreeRunner, добавьте своё имя в Лист Заинтересованных в Покупке. Также посмотрите групповые покупки на [[GroupSales|Групповых Продажах]] с дополнительными скидками и услугами.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=75d806&amp;gt;Присоединяйтесь к развитию Openmoko&amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;6&amp;quot; width=100%&lt;br /&gt;
! width=50% style=&amp;quot;background:#ff6600;border-left:5px solid white;border-right:5px solid white;border-top:0px solid white; border:1px solid #ff6600; &amp;quot; | &amp;lt;font color=&amp;quot;white&amp;quot; &amp;gt;Руководство разработчика&amp;lt;/font&amp;gt;&lt;br /&gt;
! width=50% style=&amp;quot;background:#ff6600;border-left:5px solid white;border-right:5px solid white;border-top:0px solid white; border:1px solid #ff6600;&amp;quot; |&amp;lt;font color=&amp;quot;white&amp;quot; &amp;gt;Тестирование / Эмуляция и участие в проектах&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot; style=&amp;quot;background:#333333;border-left:5px solid white;border-right:5px solid white;border-bottom:0px solid white; border:1px solid #cccccc; &amp;quot; |&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Разработчику &amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[Toolchain|Использование инструментов разработчика]]&lt;br /&gt;
* &amp;lt;font color=white&amp;gt;VMware&amp;lt;/font&amp;gt;&lt;br /&gt;
* [[Python|Введение в python]]&lt;br /&gt;
* [[Openmoko_under_QEMU|Openmoko через QEMU]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Системная интеграция и настройка&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[OpenEmbedded|OE - Платформа построения приложений]]&lt;br /&gt;
* [[MokoMakefile|Сборка Openmoko с использованием MokoMakefile]]&lt;br /&gt;
* [[Opkg|Opkg]]&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Низкоуровневая / системная разработка&amp;lt;/font&amp;gt;===&lt;br /&gt;
* [[u-boot]]  &amp;lt;font color=white&amp;gt;- Загрузчик используемый нами, включая документацию для его модификации&amp;lt;/font&amp;gt;&lt;br /&gt;
* [[kernel]]  &amp;lt;font color=white&amp;gt;- Ядро Linux используемое нами, включая документацию для его модификации&amp;lt;/font&amp;gt;&lt;br /&gt;
* [[gsmd]] &amp;lt;font color=white&amp;gt; - GSM демон управления GSM Модемом&amp;lt;/font&amp;gt;&lt;br /&gt;
* [[agpsd]] &amp;lt;font color=white&amp;gt;- AGPS (Assisted GPS) демон&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|valign=&amp;quot;top&amp;quot; style=&amp;quot;background:#333333;border-left:5px solid white;border-right:5px solid white;border-bottom:0px solid white; border:1px solid #cccccc; &amp;quot; |&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Тестирование&amp;lt;/font&amp;gt;===&lt;br /&gt;
*[[Test Cases|Пройденные тесты]]&lt;br /&gt;
&amp;lt;font color=white&amp;gt; ※&amp;lt;/font&amp;gt; [[:Category: Test |  Узнать больше о Тестировании]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Эмуляция&amp;lt;/font&amp;gt;===&lt;br /&gt;
*[[Getting Openmoko working on host with Xephyr|Эмуляция Openmoko на ПК с использованием Xephyr]]&lt;br /&gt;
*[[Test_Openmoko Emulation with chroot image|Эмуляция Openmoko с готовым образом корневой файловой системы]]&lt;br /&gt;
===&amp;lt;font color=white&amp;gt;Публикация вашего проекта===&lt;br /&gt;
*[[Community Repository|Опубликовать Ваш Проект]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=75d806&amp;gt;Сообщество Openmoko&amp;lt;/font&amp;gt;==&lt;br /&gt;
Каждый может присоединиться к проекту Openmoko и сделать свой вклад в разработку открытых продуктов. Присоединяйтесь к нам и сотрудничайте в рамках любого [[Development resources | проекта]], в том числе и Энциклопедии по Openmoko. См. страницу помощи по редактированию информации или внесении/добавлении изменений в энциклопедии.&lt;br /&gt;
&lt;br /&gt;
Вы можете начать с [[introduction|вводной]] страницы , фотографий, видео и Оффициальной Страницы Openmoko Wiki. Как всегда, используйте [[FAQ | Часто Задаваемые Вопросы]] (ЧАВО),  [http://lists.openmoko.org/mailman/listinfo/| списки рассылки] и [[Discussion_Forums| Форумы]] для получения помощи.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; cellspacing=&amp;quot;4&amp;quot; cellpadding=&amp;quot;6&amp;quot; width=100%&lt;br /&gt;
! width=50% style=&amp;quot;background:#ff6600;border-left:5px solid white;border-right:5px solid white;border-top:0px solid white; border:1px solid #ff6600; &amp;quot; | &amp;lt;font color=&amp;quot;white&amp;quot; &amp;gt;В Новостях&amp;lt;/font&amp;gt;&lt;br /&gt;
! width=50% style=&amp;quot;background:#ff6600;border-left:5px solid white;border-right:5px solid white;border-top:0px solid white; border:1px solid #ff6600;&amp;quot; |&amp;lt;font color=&amp;quot;white&amp;quot; &amp;gt;Сообщество и События&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot; style=&amp;quot;background:#333333;border-left:5px solid white;border-right:5px solid white;border-bottom:0px solid white; border:1px solid #cccccc; &amp;quot; |&lt;br /&gt;
==&amp;lt;font color=white&amp;gt;В Новостях&amp;lt;/font&amp;gt;==&lt;br /&gt;
*[[Getting Started with your Neo FreeRunner|Neo FreeRunner - с чего начать]]&lt;br /&gt;
*[[ASU Feature Plan|План реализации АОП(Апрельское обновление ПО)]]&lt;br /&gt;
*[[Community Repository|Публикация вашего проекта]]&lt;br /&gt;
*[[GroupSales|Групповые продажи]]&lt;br /&gt;
*[[WhyOpenmoko|Почему Openmoko лучше: Сравнительный Взгляд]]&lt;br /&gt;
==&amp;lt;font color=white&amp;gt;Ежедневные Сборки&amp;lt;/font&amp;gt;==&lt;br /&gt;
*&amp;lt;font color=white&amp;gt;Здесь вы всегда можете загрузить последнюю сборку.&amp;lt;/font&amp;gt;&lt;br /&gt;
** &amp;lt;font color=white&amp;gt;Для FreeRunner &amp;lt;/font&amp;gt;[http://downloads.openmoko.org/daily/ http://downloads.openmoko.org/daily/]&lt;br /&gt;
** &amp;lt;font color=white&amp;gt;Для Neo 1973 &amp;lt;/font&amp;gt; [http://downloads.openmoko.org/daily/ http://downloads.openmoko.org/daily/]&lt;br /&gt;
*&amp;lt;font color=white&amp;gt;Обзоры ежденевных сборок [[Snapshot_review|здесь]], рекомендуемое ядро и корневой образ с обзором будут всегда доступны [http://downloads.openmoko.org/releases/ здесь].&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;font color=white&amp;gt;Заметим, что рекомендованные сборки, не всегда являются последними, но они самые стабильные, надежные и функциональные.&amp;lt;/font&amp;gt;&lt;br /&gt;
|valign=&amp;quot;top&amp;quot; style=&amp;quot;background:#333333;border-left:5px solid white;border-right:5px solid white;border-bottom:0px solid white; border:1px solid #cccccc; &amp;quot; |&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=white&amp;gt; Обновления Сообщества&amp;lt;/font&amp;gt;==&lt;br /&gt;
&amp;lt;font color=white&amp;gt;Просмотр текущего статуса [[Community_Updates|Обновлений Сообщества]]&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=ffffff&amp;gt; ※&amp;lt;/font&amp;gt;[[:Category:Community|  Узнать больше о Сообществе...]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=white&amp;gt;Обзор Вики&amp;lt;/font&amp;gt;==&lt;br /&gt;
*&amp;lt;font color=white&amp;gt;Для получения обзора Openmoko Вики, смотрите [[Openmoko Wiki Official Index Page|Оффициальную Страницу Openmoko Wiki]].&amp;lt;/font&amp;gt;&lt;br /&gt;
==&amp;lt;font color=white&amp;gt;События&amp;lt;/font&amp;gt;==&lt;br /&gt;
*[[Summer of Code 2008]]&lt;br /&gt;
*[[Openmoko Education/zh tw]]&lt;br /&gt;
*[[Events:FOSDEM 2008]]&lt;br /&gt;
*[[OpenLab]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=ffffff&amp;gt; ※&amp;lt;/font&amp;gt;[[:Category:Event|  Узнать больше о Событиях...]]&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=75d806&amp;gt;Openmoko Wiki - с чего начать&amp;lt;/font&amp;gt;==&lt;br /&gt;
Энциклопедия Openmoko открытая. Каждый может присоединиться. Вы сможете найти любую информацию, в том числе: аппаратную и программную документацию, списки ошибок, новости сообщества Openmoko и другое. Присоединяйтесь к энциклопедии, редактируйте ее, наполняйте материалами и помогайте другим. Для полного обзора Openmoko Wiki, пожалуйста посетите [[Openmoko Wiki Official Index Page|Оффициальную Страницу Openmoko Wiki]].&lt;br /&gt;
&lt;br /&gt;
* Пожалуйста прочтите наше [[Openmoko Wiki Editing Guidelines|Руководство по Редактированию Openmoko Wiki]]&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Help:Configuration_settings Настройка параметров списка]&lt;br /&gt;
* [http://meta.wikimedia.org/wiki/Help:Wikitext_reference Руководство по MediaWiki и Wikitext]&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Help:FAQ MediaWiki ЧАВО]&lt;/div&gt;</summary>
		<author><name>Narmo</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/User:Narmo</id>
		<title>User:Narmo</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/User:Narmo"/>
				<updated>2008-11-01T18:52:17Z</updated>
		
		<summary type="html">&lt;p&gt;Narmo: /* Narmo */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I've bought OpenMoko Neo FreeRunner on 1st, November, 2008.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
[http://werewolf.weho.ru My private blog]&lt;br /&gt;
&lt;br /&gt;
[http://weho.ru Developers' blog]&lt;/div&gt;</summary>
		<author><name>Narmo</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/User:Narmo</id>
		<title>User:Narmo</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/User:Narmo"/>
				<updated>2008-11-01T18:50:51Z</updated>
		
		<summary type="html">&lt;p&gt;Narmo: New page: = Narmo =  I've bought OpenMoko Neo FreeRunner on 1st, November, 2008.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Narmo =&lt;br /&gt;
&lt;br /&gt;
I've bought OpenMoko Neo FreeRunner on 1st, November, 2008.&lt;/div&gt;</summary>
		<author><name>Narmo</name></author>	</entry>

	</feed>