<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://leste.maemo.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=BuZz</id>
	<title>Maemo Leste Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://leste.maemo.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=BuZz"/>
	<link rel="alternate" type="text/html" href="https://leste.maemo.org/Special:Contributions/BuZz"/>
	<updated>2026-04-30T06:55:01Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Propaganda&amp;diff=1416</id>
		<title>Propaganda</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Propaganda&amp;diff=1416"/>
		<updated>2022-10-10T16:40:02Z</updated>

		<summary type="html">&lt;p&gt;BuZz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Place all memes of Maemo Leste you find here.&lt;br /&gt;
&lt;br /&gt;
== Propaganda ==&lt;br /&gt;
[[File:Dont-slave.jpg|200px]]&lt;br /&gt;
[[File:Great-war.jpg|200px]]&lt;br /&gt;
[[File:Join-leste.jpg|200px]]&lt;br /&gt;
[[File:Privacy-and-more.png|200px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Refuse-duopoly.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
== Memes ==&lt;br /&gt;
[[File:Os-addicts.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
== Various ==&lt;br /&gt;
[[File:MaemoSealeste.jpg|200px]]&lt;br /&gt;
[[File:Advertizing-in-nurdspace.jpg|200px]]&lt;br /&gt;
[[File:Maemo-raised-bar.png|200px]]&lt;/div&gt;</summary>
		<author><name>BuZz</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Propaganda&amp;diff=1415</id>
		<title>Propaganda</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Propaganda&amp;diff=1415"/>
		<updated>2022-10-10T16:39:47Z</updated>

		<summary type="html">&lt;p&gt;BuZz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Place all memes of Maemo Leste you find here.&lt;br /&gt;
&lt;br /&gt;
== Propaganda ==&lt;br /&gt;
[[File:Dont-slave.jpg|200px]]&lt;br /&gt;
[[File:Great-war.jpg|200px]]&lt;br /&gt;
[[File:Join-leste.jpg|200px]]&lt;br /&gt;
[[File:Privacy-and-more.png|200px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Refuse-duopoly.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
== Memes ==&lt;br /&gt;
[[File:Os-addicts.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
== Various ==&lt;br /&gt;
[[File:MaemoSealeste.jpg|200px]]&lt;br /&gt;
[[File:Advertizing-in-nurdspace.jpg|200px]]&lt;br /&gt;
[[Maemo-raised-bar.png]]&lt;/div&gt;</summary>
		<author><name>BuZz</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=File:Maemo-raised-bar.png&amp;diff=1414</id>
		<title>File:Maemo-raised-bar.png</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=File:Maemo-raised-bar.png&amp;diff=1414"/>
		<updated>2022-10-10T16:39:28Z</updated>

		<summary type="html">&lt;p&gt;BuZz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>BuZz</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Propaganda&amp;diff=1413</id>
		<title>Propaganda</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Propaganda&amp;diff=1413"/>
		<updated>2022-10-10T12:00:31Z</updated>

		<summary type="html">&lt;p&gt;BuZz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Place all memes of Maemo Leste you find here.&lt;br /&gt;
&lt;br /&gt;
== Propaganda ==&lt;br /&gt;
[[File:Dont-slave.jpg|200px]]&lt;br /&gt;
[[File:Great-war.jpg|200px]]&lt;br /&gt;
[[File:Join-leste.jpg|200px]]&lt;br /&gt;
[[File:Privacy-and-more.png|200px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Refuse-duopoly.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
== Memes ==&lt;br /&gt;
[[File:Os-addicts.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
== Various ==&lt;br /&gt;
[[File:MaemoSealeste.jpg|200px]]&lt;br /&gt;
[[File:Advertizing-in-nurdspace.jpg|200px]]&lt;/div&gt;</summary>
		<author><name>BuZz</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=File:Advertizing-in-nurdspace.jpg&amp;diff=1412</id>
		<title>File:Advertizing-in-nurdspace.jpg</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=File:Advertizing-in-nurdspace.jpg&amp;diff=1412"/>
		<updated>2022-10-10T11:52:21Z</updated>

		<summary type="html">&lt;p&gt;BuZz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>BuZz</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Sync&amp;diff=1401</id>
		<title>Sync</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Sync&amp;diff=1401"/>
		<updated>2022-10-10T00:34:59Z</updated>

		<summary type="html">&lt;p&gt;BuZz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page explains and suggests various ways of synchronizing contacts, calendars and files.&lt;br /&gt;
&lt;br /&gt;
= Calendar, Notes, Tasks and Contacts =&lt;br /&gt;
&lt;br /&gt;
Synchronizing calendar, notes and tasks (using CalDav) and contacts (using CardDav) can be done using syncevolution (other [https://syncevolution.org/documentation/backends/ backends are available], but not currently documented here). A frontend to running synchronization tasks is available in the repository (Syncevolution Frontend).&lt;br /&gt;
&lt;br /&gt;
== Synchronizing with syncevolution CalDav + CardDav ==&lt;br /&gt;
&lt;br /&gt;
If you get stuck in an odd state setting this up, you could consider running the following to get to a clean state, at least with regards to syncevolution configuration:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -rf /home/user/.config/syncevolution&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== NextCloud synchronizing ===&lt;br /&gt;
&lt;br /&gt;
We will be synchronizing the calendar and such using local &#039;&#039;&#039;maemo-events&#039;&#039;&#039;, &#039;&#039;&#039;maemo-notes&#039;&#039;&#039; and &#039;&#039;&#039;maemo-tasks&#039;&#039;&#039; backends using the &#039;&#039;&#039;caldav&#039;&#039;&#039; backend. &lt;br /&gt;
For contacts, we will synchronize &#039;&#039;&#039;evolution-contacts&#039;&#039;&#039; using &#039;&#039;&#039;carddav&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
A few URLs are required, first, the &#039;&#039;&#039;main Nextcloud DAV url&#039;&#039;&#039;, this will appear like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;https://my.nextcloud.org/remote.php/dav&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
then there is the &#039;&#039;&#039;url for a specific calendar&#039;&#039;&#039;, this is called the &amp;quot;Private Link&amp;quot; and you can get it by clicking &amp;quot;Copy Private Link&amp;quot; for a given calendar in Nextcloud, this might look like so:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
https://my.nextcloud.org/remote.php/dav/calendars/userhere/calendarnamehere/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, for your address book (contacts) synchronization, the &#039;&#039;&#039;contacts URL&#039;&#039;&#039; is needed (in Nextcloud, go to contacts, settings, &amp;quot;Copy Link&amp;quot; for your contacts):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
https://my.nextcloud.org/remote.php/dav/addressbooks/users/userhere/contacts/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Given the above, a setup to synchronize calendar, tasks, notes and contacts could look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
syncevolution --configure \&lt;br /&gt;
              --template webdav \&lt;br /&gt;
             username=NEXTCLOUD-USER-HERE \&lt;br /&gt;
             password=NEXTCLOUD-PASS-HERE \&lt;br /&gt;
             syncURL=MAIN-DAV-URL-HERE \&lt;br /&gt;
             target-config@nextcloud&lt;br /&gt;
&lt;br /&gt;
syncevolution --configure \&lt;br /&gt;
              --template webdav \&lt;br /&gt;
             database=CALENDAR-URL-HERE \&lt;br /&gt;
             backend=caldavtodo \&lt;br /&gt;
             target-config@nextcloud nextcloudtodo&lt;br /&gt;
&lt;br /&gt;
syncevolution --configure \&lt;br /&gt;
              --template webdav \&lt;br /&gt;
             database=CALENDAR-URL-HERE \&lt;br /&gt;
             backend=caldavjournal \&lt;br /&gt;
             target-config@nextcloud nextcloudjournal&lt;br /&gt;
&lt;br /&gt;
syncevolution --configure \&lt;br /&gt;
              --template webdav \&lt;br /&gt;
             database=CALENDAR-URL-HERE \&lt;br /&gt;
             backend=caldav \&lt;br /&gt;
             target-config@nextcloud nextcloudcal&lt;br /&gt;
&lt;br /&gt;
syncevolution --configure \&lt;br /&gt;
              --template webdav \&lt;br /&gt;
             database=CONTACTS-URL-HERE \&lt;br /&gt;
             backend=carddav \&lt;br /&gt;
             target-config@nextcloud contacts&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
syncevolution --configure \&lt;br /&gt;
             --template SyncEvolution_Client \&lt;br /&gt;
             sync=none \&lt;br /&gt;
             syncURL=local://@nextcloud \&lt;br /&gt;
             username= \&lt;br /&gt;
             password= \&lt;br /&gt;
             nextcloud&lt;br /&gt;
&lt;br /&gt;
syncevolution --configure \&lt;br /&gt;
             sync=two-way \&lt;br /&gt;
             backend=maemo-tasks \&lt;br /&gt;
             database= \&lt;br /&gt;
             nextcloud nextcloudtodo&lt;br /&gt;
&lt;br /&gt;
syncevolution --configure \&lt;br /&gt;
             sync=two-way \&lt;br /&gt;
             backend=maemo-notes\&lt;br /&gt;
             database= \&lt;br /&gt;
             nextcloud nextcloudjournal&lt;br /&gt;
&lt;br /&gt;
syncevolution --configure \&lt;br /&gt;
             sync=two-way \&lt;br /&gt;
             backend=maemo-events \&lt;br /&gt;
             database= \&lt;br /&gt;
             nextcloud nextcloudcal&lt;br /&gt;
&lt;br /&gt;
syncevolution --configure \&lt;br /&gt;
             sync=two-way \&lt;br /&gt;
             backend=evolution-contacts \&lt;br /&gt;
             nextcloud contacts&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All of the above is configuration that only needs to be done once.&lt;br /&gt;
&lt;br /&gt;
Depending on your exact situation, your initial synchronisation could only use only values from your phone, from your nextcloud, or both. If you want to merge both, my understanding is that the &#039;&#039;&#039;slow&#039;&#039;&#039;  method achieves this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
syncevolution --sync slow nextcloud nextcloudjournal&lt;br /&gt;
syncevolution --sync slow nextcloud nextcloudtodo&lt;br /&gt;
syncevolution --sync slow nextcloud nextcloudcal&lt;br /&gt;
syncevolution --sync slow nextcloud contacts&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use the &#039;&#039;&#039;two-way&#039;&#039;&#039; synchronization method for &#039;&#039;&#039;normal synchronization&#039;&#039;&#039; (daily, hourly, etc synchronizations), like so: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
syncevolution --sync two-way nextcloud nextcloudjournal&lt;br /&gt;
syncevolution --sync two-way nextcloud nextcloudtodo&lt;br /&gt;
syncevolution --sync two-way nextcloud nextcloudcal&lt;br /&gt;
syncevolution --sync two-way nextcloud contacts&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Warning: TLS Chain validation issues ====&lt;br /&gt;
&lt;br /&gt;
If you run into problems with TLS Chain validation, first try to figure out if the problem is on your end. Syncevolution did have a problem for me validation the chain of my next cloud instance, so for testing purposes I set &#039;&#039;&#039;SSLVerifyServer = 0&#039;&#039;&#039; in &#039;&#039;&#039;/home/user/.config/syncevolution/nextcloud/peers/target-config/config.ini&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Radicale synchronising ==&lt;br /&gt;
&lt;br /&gt;
Radicale is a simple CardDAV and CalDAV server, and is set up similarly to nextcloud. Just browse to the Radicale web URL, and use the following URLs:&lt;br /&gt;
&lt;br /&gt;
# The main DAV url is simple the URL to your radicale server (without the .web part)&lt;br /&gt;
# The calendar URL is simply the http(s) URL to the calendar that you want to synchronize&lt;br /&gt;
# The contacts URL is simple the http(s) URL of the addressbook that you want to synchronize&lt;br /&gt;
&lt;br /&gt;
The username (and optional password) are the radicale credentials.&lt;br /&gt;
&lt;br /&gt;
=== Radicale Testing Server ===&lt;br /&gt;
&lt;br /&gt;
For testing purposes, here is how to quickly run a radicale server, this assumed it&#039;s installed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p ~/radicale&lt;br /&gt;
cd ~/radicale&lt;br /&gt;
python3  -m radicale --config &amp;quot;&amp;quot; --storage-filesystem-folder `pwd` -H localhost:5223 --logging-level info&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now browse to http://localhost:5223, create an account (password is optional), and you should be able to synchronize, assuming the devices can reach your radicale server (don&#039;t have it listen on localhost only, perhaps use 0.0.0.0:5223 for LAN testing)&lt;br /&gt;
&lt;br /&gt;
= Files synchronization =&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
= Known Issues =&lt;br /&gt;
&lt;br /&gt;
* Synchronizing calendar to radicale gives errors if there are unnamed calendar events.&lt;br /&gt;
* Synchronizing contacts to radicale gives errors if there are contacts without Firstname or Lastname.&lt;/div&gt;</summary>
		<author><name>BuZz</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Sync&amp;diff=1400</id>
		<title>Sync</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Sync&amp;diff=1400"/>
		<updated>2022-10-10T00:34:10Z</updated>

		<summary type="html">&lt;p&gt;BuZz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Synchronization =&lt;br /&gt;
&lt;br /&gt;
This page explains and suggests various ways of synchronizing contacts, calendars and files.&lt;br /&gt;
&lt;br /&gt;
== Calendar, Notes, Tasks and Contacts ==&lt;br /&gt;
&lt;br /&gt;
Synchronizing calendar, notes and tasks (using CalDav) and contacts (using CardDav) can be done using syncevolution (other [https://syncevolution.org/documentation/backends/ backends are available], but not currently documented here). A frontend to running synchronization tasks is available in the repository (Syncevolution Frontend).&lt;br /&gt;
&lt;br /&gt;
=== Synchronizing with syncevolution CalDav + CardDav ===&lt;br /&gt;
&lt;br /&gt;
If you get stuck in an odd state setting this up, you could consider running the following to get to a clean state, at least with regards to syncevolution configuration:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -rf /home/user/.config/syncevolution&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== NextCloud synchronizing ====&lt;br /&gt;
&lt;br /&gt;
We will be synchronizing the calendar and such using local &#039;&#039;&#039;maemo-events&#039;&#039;&#039;, &#039;&#039;&#039;maemo-notes&#039;&#039;&#039; and &#039;&#039;&#039;maemo-tasks&#039;&#039;&#039; backends using the &#039;&#039;&#039;caldav&#039;&#039;&#039; backend. &lt;br /&gt;
For contacts, we will synchronize &#039;&#039;&#039;evolution-contacts&#039;&#039;&#039; using &#039;&#039;&#039;carddav&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
A few URLs are required, first, the &#039;&#039;&#039;main Nextcloud DAV url&#039;&#039;&#039;, this will appear like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;https://my.nextcloud.org/remote.php/dav&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
then there is the &#039;&#039;&#039;url for a specific calendar&#039;&#039;&#039;, this is called the &amp;quot;Private Link&amp;quot; and you can get it by clicking &amp;quot;Copy Private Link&amp;quot; for a given calendar in Nextcloud, this might look like so:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
https://my.nextcloud.org/remote.php/dav/calendars/userhere/calendarnamehere/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, for your address book (contacts) synchronization, the &#039;&#039;&#039;contacts URL&#039;&#039;&#039; is needed (in Nextcloud, go to contacts, settings, &amp;quot;Copy Link&amp;quot; for your contacts):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
https://my.nextcloud.org/remote.php/dav/addressbooks/users/userhere/contacts/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Given the above, a setup to synchronize calendar, tasks, notes and contacts could look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
syncevolution --configure \&lt;br /&gt;
              --template webdav \&lt;br /&gt;
             username=NEXTCLOUD-USER-HERE \&lt;br /&gt;
             password=NEXTCLOUD-PASS-HERE \&lt;br /&gt;
             syncURL=MAIN-DAV-URL-HERE \&lt;br /&gt;
             target-config@nextcloud&lt;br /&gt;
&lt;br /&gt;
syncevolution --configure \&lt;br /&gt;
              --template webdav \&lt;br /&gt;
             database=CALENDAR-URL-HERE \&lt;br /&gt;
             backend=caldavtodo \&lt;br /&gt;
             target-config@nextcloud nextcloudtodo&lt;br /&gt;
&lt;br /&gt;
syncevolution --configure \&lt;br /&gt;
              --template webdav \&lt;br /&gt;
             database=CALENDAR-URL-HERE \&lt;br /&gt;
             backend=caldavjournal \&lt;br /&gt;
             target-config@nextcloud nextcloudjournal&lt;br /&gt;
&lt;br /&gt;
syncevolution --configure \&lt;br /&gt;
              --template webdav \&lt;br /&gt;
             database=CALENDAR-URL-HERE \&lt;br /&gt;
             backend=caldav \&lt;br /&gt;
             target-config@nextcloud nextcloudcal&lt;br /&gt;
&lt;br /&gt;
syncevolution --configure \&lt;br /&gt;
              --template webdav \&lt;br /&gt;
             database=CONTACTS-URL-HERE \&lt;br /&gt;
             backend=carddav \&lt;br /&gt;
             target-config@nextcloud contacts&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
syncevolution --configure \&lt;br /&gt;
             --template SyncEvolution_Client \&lt;br /&gt;
             sync=none \&lt;br /&gt;
             syncURL=local://@nextcloud \&lt;br /&gt;
             username= \&lt;br /&gt;
             password= \&lt;br /&gt;
             nextcloud&lt;br /&gt;
&lt;br /&gt;
syncevolution --configure \&lt;br /&gt;
             sync=two-way \&lt;br /&gt;
             backend=maemo-tasks \&lt;br /&gt;
             database= \&lt;br /&gt;
             nextcloud nextcloudtodo&lt;br /&gt;
&lt;br /&gt;
syncevolution --configure \&lt;br /&gt;
             sync=two-way \&lt;br /&gt;
             backend=maemo-notes\&lt;br /&gt;
             database= \&lt;br /&gt;
             nextcloud nextcloudjournal&lt;br /&gt;
&lt;br /&gt;
syncevolution --configure \&lt;br /&gt;
             sync=two-way \&lt;br /&gt;
             backend=maemo-events \&lt;br /&gt;
             database= \&lt;br /&gt;
             nextcloud nextcloudcal&lt;br /&gt;
&lt;br /&gt;
syncevolution --configure \&lt;br /&gt;
             sync=two-way \&lt;br /&gt;
             backend=evolution-contacts \&lt;br /&gt;
             nextcloud contacts&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All of the above is configuration that only needs to be done once.&lt;br /&gt;
&lt;br /&gt;
Depending on your exact situation, your initial synchronisation could only use only values from your phone, from your nextcloud, or both. If you want to merge both, my understanding is that the &#039;&#039;&#039;slow&#039;&#039;&#039;  method achieves this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
syncevolution --sync slow nextcloud nextcloudjournal&lt;br /&gt;
syncevolution --sync slow nextcloud nextcloudtodo&lt;br /&gt;
syncevolution --sync slow nextcloud nextcloudcal&lt;br /&gt;
syncevolution --sync slow nextcloud contacts&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use the &#039;&#039;&#039;two-way&#039;&#039;&#039; synchronization method for &#039;&#039;&#039;normal synchronization&#039;&#039;&#039; (daily, hourly, etc synchronizations), like so: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
syncevolution --sync two-way nextcloud nextcloudjournal&lt;br /&gt;
syncevolution --sync two-way nextcloud nextcloudtodo&lt;br /&gt;
syncevolution --sync two-way nextcloud nextcloudcal&lt;br /&gt;
syncevolution --sync two-way nextcloud contacts&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Warning: TLS Chain validation issues =====&lt;br /&gt;
&lt;br /&gt;
If you run into problems with TLS Chain validation, first try to figure out if the problem is on your end. Syncevolution did have a problem for me validation the chain of my next cloud instance, so for testing purposes I set &#039;&#039;&#039;SSLVerifyServer = 0&#039;&#039;&#039; in &#039;&#039;&#039;/home/user/.config/syncevolution/nextcloud/peers/target-config/config.ini&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Radicale synchronising ===&lt;br /&gt;
&lt;br /&gt;
Radicale is a simple CardDAV and CalDAV server, and is set up similarly to nextcloud. Just browse to the Radicale web URL, and use the following URLs:&lt;br /&gt;
&lt;br /&gt;
# The main DAV url is simple the URL to your radicale server (without the .web part)&lt;br /&gt;
# The calendar URL is simply the http(s) URL to the calendar that you want to synchronize&lt;br /&gt;
# The contacts URL is simple the http(s) URL of the addressbook that you want to synchronize&lt;br /&gt;
&lt;br /&gt;
The username (and optional password) are the radicale credentials.&lt;br /&gt;
&lt;br /&gt;
==== Radicale Testing Server ====&lt;br /&gt;
&lt;br /&gt;
For testing purposes, here is how to quickly run a radicale server, this assumed it&#039;s installed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p ~/radicale&lt;br /&gt;
cd ~/radicale&lt;br /&gt;
python3  -m radicale --config &amp;quot;&amp;quot; --storage-filesystem-folder `pwd` -H localhost:5223 --logging-level info&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now browse to http://localhost:5223, create an account (password is optional), and you should be able to synchronize, assuming the devices can reach your radicale server (don&#039;t have it listen on localhost only, perhaps use 0.0.0.0:5223 for LAN testing)&lt;br /&gt;
&lt;br /&gt;
== Files synchronization ==&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
== Known Issues ==&lt;br /&gt;
&lt;br /&gt;
* Synchronizing calendar to radicale gives errors if there are unnamed calendar events.&lt;br /&gt;
* Synchronizing contacts to radicale gives errors if there are contacts without Firstname or Lastname.&lt;/div&gt;</summary>
		<author><name>BuZz</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Sync&amp;diff=1399</id>
		<title>Sync</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Sync&amp;diff=1399"/>
		<updated>2022-10-10T00:26:34Z</updated>

		<summary type="html">&lt;p&gt;BuZz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Synchronization =&lt;br /&gt;
&lt;br /&gt;
This page explains and suggests various ways of synchronizing contacts, calendars and files.&lt;br /&gt;
&lt;br /&gt;
== Calendar, Notes, Tasks and Contacts ==&lt;br /&gt;
&lt;br /&gt;
Synchronizing calendar, notes and tasks (using CalDav) and contacts (using CardDav) can be done using syncevolution (other [https://syncevolution.org/documentation/backends/ backends are available], but not currently documented here). A frontend to running synchronization tasks is available in the repository (Syncevolution Frontend).&lt;br /&gt;
&lt;br /&gt;
=== Synchronizing with syncevolution CalDav + CardDav ===&lt;br /&gt;
&lt;br /&gt;
If you get stuck in an odd state setting this up, you could consider running the following to get to a clean state, at least with regards to syncevolution configuration:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -rf /home/user/.config/syncevolution&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== NextCloud synchronizing ====&lt;br /&gt;
&lt;br /&gt;
We will be synchronizing the calendar and such using local &#039;&#039;&#039;maemo-events&#039;&#039;&#039;, &#039;&#039;&#039;maemo-notes&#039;&#039;&#039; and &#039;&#039;&#039;maemo-tasks&#039;&#039;&#039; backends using the &#039;&#039;&#039;caldav&#039;&#039;&#039; backend. &lt;br /&gt;
For contacts, we will synchronize &#039;&#039;&#039;evolution-contacts&#039;&#039;&#039; using &#039;&#039;&#039;carddav&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
A few URLs are required, first, the &#039;&#039;&#039;main Nextcloud DAV url&#039;&#039;&#039;, this will appear like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;https://my.nextcloud.org/remote.php/dav&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
then there is the &#039;&#039;&#039;url for a specific calendar&#039;&#039;&#039;, this is called the &amp;quot;Private Link&amp;quot; and you can get it by clicking &amp;quot;Copy Private Link&amp;quot; for a given calendar in Nextcloud, this might look like so:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
https://my.nextcloud.org/remote.php/dav/calendars/userhere/calendarnamehere/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, for your address book (contacts) synchronization, the &#039;&#039;&#039;contacts URL&#039;&#039;&#039; is needed (in Nextcloud, go to contacts, settings, &amp;quot;Copy Link&amp;quot; for your contacts):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
https://my.nextcloud.org/remote.php/dav/addressbooks/users/userhere/contacts/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Given the above, a setup to synchronize calendar, tasks, notes and contacts could look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
syncevolution --configure \&lt;br /&gt;
              --template webdav \&lt;br /&gt;
             username=NEXTCLOUD-USER-HERE \&lt;br /&gt;
             password=NEXTCLOUD-PASS-HERE \&lt;br /&gt;
             syncURL=MAIN-DAV-URL-HERE \&lt;br /&gt;
             target-config@nextcloud&lt;br /&gt;
&lt;br /&gt;
syncevolution --configure \&lt;br /&gt;
              --template webdav \&lt;br /&gt;
             database=CALENDAR-URL-HERE \&lt;br /&gt;
             backend=caldavtodo \&lt;br /&gt;
             target-config@nextcloud nextcloudtodo&lt;br /&gt;
&lt;br /&gt;
syncevolution --configure \&lt;br /&gt;
              --template webdav \&lt;br /&gt;
             database=CALENDAR-URL-HERE \&lt;br /&gt;
             backend=caldavjournal \&lt;br /&gt;
             target-config@nextcloud nextcloudjournal&lt;br /&gt;
&lt;br /&gt;
syncevolution --configure \&lt;br /&gt;
              --template webdav \&lt;br /&gt;
             database=CALENDAR-URL-HERE \&lt;br /&gt;
             backend=caldav \&lt;br /&gt;
             target-config@nextcloud nextcloudcal&lt;br /&gt;
&lt;br /&gt;
syncevolution --configure \&lt;br /&gt;
              --template webdav \&lt;br /&gt;
             database=CONTACTS-URL-HERE \&lt;br /&gt;
             backend=carddav \&lt;br /&gt;
             target-config@nextcloud contacts&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
syncevolution --configure \&lt;br /&gt;
             --template SyncEvolution_Client \&lt;br /&gt;
             sync=none \&lt;br /&gt;
             syncURL=local://@nextcloud \&lt;br /&gt;
             username= \&lt;br /&gt;
             password= \&lt;br /&gt;
             nextcloud&lt;br /&gt;
&lt;br /&gt;
syncevolution --configure \&lt;br /&gt;
             sync=two-way \&lt;br /&gt;
             backend=maemo-tasks \&lt;br /&gt;
             database= \&lt;br /&gt;
             nextcloud nextcloudtodo&lt;br /&gt;
&lt;br /&gt;
syncevolution --configure \&lt;br /&gt;
             sync=two-way \&lt;br /&gt;
             backend=maemo-notes\&lt;br /&gt;
             database= \&lt;br /&gt;
             nextcloud nextcloudjournal&lt;br /&gt;
&lt;br /&gt;
syncevolution --configure \&lt;br /&gt;
             sync=two-way \&lt;br /&gt;
             backend=maemo-events \&lt;br /&gt;
             database= \&lt;br /&gt;
             nextcloud nextcloudcal&lt;br /&gt;
&lt;br /&gt;
syncevolution --configure \&lt;br /&gt;
             sync=two-way \&lt;br /&gt;
             backend=evolution-contacts \&lt;br /&gt;
             nextcloud contacts&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All of the above is configuration that only needs to be done once.&lt;br /&gt;
&lt;br /&gt;
Depending on your exact situation, your initial synchronisation could only use only values from your phone, from your nextcloud, or both. If you want to merge both, my understanding is that the &#039;&#039;&#039;slow&#039;&#039;&#039;  method achieves this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
syncevolution --sync slow nextcloud nextcloudjournal&lt;br /&gt;
syncevolution --sync slow nextcloud nextcloudtodo&lt;br /&gt;
syncevolution --sync slow nextcloud nextcloudcal&lt;br /&gt;
syncevolution --sync slow nextcloud contacts&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use the &#039;&#039;&#039;two-way&#039;&#039;&#039; synchronization method for &#039;&#039;&#039;normal synchronization&#039;&#039;&#039; (daily, hourly, etc synchronizations), like so: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
syncevolution --sync two-way nextcloud nextcloudjournal&lt;br /&gt;
syncevolution --sync two-way nextcloud nextcloudtodo&lt;br /&gt;
syncevolution --sync two-way nextcloud nextcloudcal&lt;br /&gt;
syncevolution --sync two-way nextcloud contacts&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Warning: TLS Chain validation issues =====&lt;br /&gt;
&lt;br /&gt;
If you run into problems with TLS Chain validation, first try to figure out if the problem is on your end. Syncevolution did have a problem for me validation the chain of my next cloud instance, so for testing purposes I set &#039;&#039;&#039;SSLVerifyServer = 0&#039;&#039;&#039; in &#039;&#039;&#039;/home/user/.config/syncevolution/nextcloud/peers/target-config/config.ini&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Radicale synchronising ====&lt;br /&gt;
&lt;br /&gt;
Radicale is a simple CardDAV and CalDAV server, and is set up similarly to nextcloud. Just browse to the Radicale web URL, and use the following URLs:&lt;br /&gt;
&lt;br /&gt;
# The main DAV url is simple the URL to your radicale server (without the .web part)&lt;br /&gt;
# The calendar URL is simply the http(s) URL to the calendar that you want to synchronize&lt;br /&gt;
# The contacts URL is simple the http(s) URL of the addressbook that you want to synchronize&lt;br /&gt;
&lt;br /&gt;
The username (and optional password) are the radicale credentials.&lt;br /&gt;
&lt;br /&gt;
===== Radicale Testing Server =====&lt;br /&gt;
&lt;br /&gt;
For testing purposes, here is how to quickly run a radicale server, this assumed it&#039;s installed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p ~/radicale&lt;br /&gt;
cd ~/radicale&lt;br /&gt;
python3  -m radicale --config &amp;quot;&amp;quot; --storage-filesystem-folder `pwd` -H localhost:5223 --logging-level info&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now browse to http://localhost:5223, create an account (password is optional), and you should be able to synchronize, assuming the devices can reach your radicale server (don&#039;t have it listen on localhost only, perhaps use 0.0.0.0:5223 for LAN testing)&lt;br /&gt;
&lt;br /&gt;
== Files synchronization ==&lt;br /&gt;
&lt;br /&gt;
TODO&lt;/div&gt;</summary>
		<author><name>BuZz</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Sync&amp;diff=1398</id>
		<title>Sync</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Sync&amp;diff=1398"/>
		<updated>2022-10-10T00:24:21Z</updated>

		<summary type="html">&lt;p&gt;BuZz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Synchronisation =&lt;br /&gt;
&lt;br /&gt;
This page explains and suggests various ways of synchronising contacts, calendars and files.&lt;br /&gt;
&lt;br /&gt;
== Calendar, Notes, Tasks and Contacts ==&lt;br /&gt;
&lt;br /&gt;
Synchronising calendar, notes and tasks (using CalDav) and contacts (using CardDav) can be done using syncevolution (other [https://syncevolution.org/documentation/backends/ backends are available], but not currently documented here). A frontend to running synchronisation tasks is available in the repository (Syncevolution Frontend).&lt;br /&gt;
&lt;br /&gt;
=== Synchronising with syncevolution CalDav + CardDav ===&lt;br /&gt;
&lt;br /&gt;
If you get stuck in an odd state setting this up, you could consider running the following to get to a clean state, at least with regards to syncevolution configuration:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -rf /home/user/.config/syncevolution&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== NextCloud synchronizing ====&lt;br /&gt;
&lt;br /&gt;
We will be synchronising the calendar and such using local &#039;&#039;&#039;maemo-events&#039;&#039;&#039;, &#039;&#039;&#039;maemo-notes&#039;&#039;&#039; and &#039;&#039;&#039;maemo-tasks&#039;&#039;&#039; backends using the &#039;&#039;&#039;caldav&#039;&#039;&#039; backend. For contacts, we will synchronise &#039;&#039;&#039;evolution-contacts&#039;&#039;&#039; using &#039;&#039;&#039;carddav&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
A few URLs are required, first, the &#039;&#039;&#039;main Nextcloud DAV url&#039;&#039;&#039;, this seems to be of the form:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;https://my.nextcloud.org/remote.php/dav&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
then there is the &#039;&#039;&#039;url for a specific calendar&#039;&#039;&#039;, this is called the &amp;quot;Private Link&amp;quot; and you can get it by clicking &amp;quot;Copy Private Link&amp;quot; for a given calendar in Nextcloud, this might look like so:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
https://my.nextcloud.org/remote.php/dav/calendars/userhere/calendarnamehere/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, for your address book (contacts) synchronization, the &#039;&#039;&#039;contacts URL&#039;&#039;&#039; is needed (in Nextcloud, go to contacts, settings, &amp;quot;Copy Link&amp;quot; for your contacts):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
https://my.nextcloud.org/remote.php/dav/addressbooks/users/userhere/contacts/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Given the above, a setup to synchronize calendar, tasks, notes and contacts could look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
syncevolution --configure \&lt;br /&gt;
              --template webdav \&lt;br /&gt;
             username=NEXTCLOUD-USER-HERE \&lt;br /&gt;
             password=NEXTCLOUD-PASS-HERE \&lt;br /&gt;
             syncURL=MAIN-DAV-URL-HERE \&lt;br /&gt;
             target-config@nextcloud&lt;br /&gt;
&lt;br /&gt;
syncevolution --configure \&lt;br /&gt;
              --template webdav \&lt;br /&gt;
             database=CALENDAR-URL-HERE \&lt;br /&gt;
             backend=caldavtodo \&lt;br /&gt;
             target-config@nextcloud nextcloudtodo&lt;br /&gt;
&lt;br /&gt;
syncevolution --configure \&lt;br /&gt;
              --template webdav \&lt;br /&gt;
             database=CALENDAR-URL-HERE \&lt;br /&gt;
             backend=caldavjournal \&lt;br /&gt;
             target-config@nextcloud nextcloudjournal&lt;br /&gt;
&lt;br /&gt;
syncevolution --configure \&lt;br /&gt;
              --template webdav \&lt;br /&gt;
             database=CALENDAR-URL-HERE \&lt;br /&gt;
             backend=caldav \&lt;br /&gt;
             target-config@nextcloud nextcloudcal&lt;br /&gt;
&lt;br /&gt;
syncevolution --configure \&lt;br /&gt;
              --template webdav \&lt;br /&gt;
             database=CONTACTS-URL-HERE \&lt;br /&gt;
             backend=carddav \&lt;br /&gt;
             target-config@nextcloud contacts&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
syncevolution --configure \&lt;br /&gt;
             --template SyncEvolution_Client \&lt;br /&gt;
             sync=none \&lt;br /&gt;
             syncURL=local://@nextcloud \&lt;br /&gt;
             username= \&lt;br /&gt;
             password= \&lt;br /&gt;
             nextcloud&lt;br /&gt;
&lt;br /&gt;
syncevolution --configure \&lt;br /&gt;
             sync=two-way \&lt;br /&gt;
             backend=maemo-tasks \&lt;br /&gt;
             database= \&lt;br /&gt;
             nextcloud nextcloudtodo&lt;br /&gt;
&lt;br /&gt;
syncevolution --configure \&lt;br /&gt;
             sync=two-way \&lt;br /&gt;
             backend=maemo-notes\&lt;br /&gt;
             database= \&lt;br /&gt;
             nextcloud nextcloudjournal&lt;br /&gt;
&lt;br /&gt;
syncevolution --configure \&lt;br /&gt;
             sync=two-way \&lt;br /&gt;
             backend=maemo-events \&lt;br /&gt;
             database= \&lt;br /&gt;
             nextcloud nextcloudcal&lt;br /&gt;
&lt;br /&gt;
syncevolution --configure \&lt;br /&gt;
             sync=two-way \&lt;br /&gt;
             backend=evolution-contacts \&lt;br /&gt;
             nextcloud contacts&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All of the above is configuration that only needs to be done once.&lt;br /&gt;
&lt;br /&gt;
Depending on your exact situation, your initial synchronisation could only use only values from your phone, from your nextcloud, or both. If you want to merge both, my understanding is that the &#039;&#039;&#039;slow&#039;&#039;&#039;  method achieves this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
syncevolution --sync slow nextcloud nextcloudjournal&lt;br /&gt;
syncevolution --sync slow nextcloud nextcloudtodo&lt;br /&gt;
syncevolution --sync slow nextcloud nextcloudcal&lt;br /&gt;
syncevolution --sync slow nextcloud contacts&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use the &#039;&#039;&#039;two-way&#039;&#039;&#039; synchronization method for &#039;&#039;&#039;normal synchronization&#039;&#039;&#039; (daily, hourly, etc synchronizations), like so: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
syncevolution --sync two-way nextcloud nextcloudjournal&lt;br /&gt;
syncevolution --sync two-way nextcloud nextcloudtodo&lt;br /&gt;
syncevolution --sync two-way nextcloud nextcloudcal&lt;br /&gt;
syncevolution --sync two-way nextcloud contacts&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Warning: TLS Chain validation issues =====&lt;br /&gt;
&lt;br /&gt;
If you run into problems with TLS Chain validation, first try to figure out if the problem is on your end. Syncevolution did have a problem for me validation the chain of my next cloud instance, so for testing purposes I set &#039;&#039;&#039;SSLVerifyServer = 0&#039;&#039;&#039; in &#039;&#039;&#039;/home/user/.config/syncevolution/nextcloud/peers/target-config/config.ini&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Radicale synchronising ====&lt;br /&gt;
&lt;br /&gt;
Radicale is a simple CardDAV and CalDAV server, and is set up similarly to nextcloud. Just browse to the Radicale web URL, and use the following URLs:&lt;br /&gt;
&lt;br /&gt;
# The main DAV url is simple the URL to your radicale server (without the .web part)&lt;br /&gt;
# The calendar URL is simply the http(s) URL to the calendar that you want to synchronize&lt;br /&gt;
# The contacts URL is simple the http(s) URL of the addressbook that you want to synchronize&lt;br /&gt;
&lt;br /&gt;
The username (and optional password) are the radicale credentials.&lt;br /&gt;
&lt;br /&gt;
===== Radicale Testing Server =====&lt;br /&gt;
&lt;br /&gt;
For testing purposes, here is how to quickly run a radicale server, this assumed it&#039;s installed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p ~/radicale&lt;br /&gt;
cd ~/radicale&lt;br /&gt;
python3  -m radicale --config &amp;quot;&amp;quot; --storage-filesystem-folder `pwd` -H localhost:5223 --logging-level info&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now browse to http://localhost:5223, create an account (password is optional), and you should be able to synchronize, assuming the devices can reach your radicale server (don&#039;t have it listen on localhost only, perhaps use 0.0.0.0:5223 for LAN testing)&lt;br /&gt;
&lt;br /&gt;
== Files synchronization ==&lt;br /&gt;
&lt;br /&gt;
TODO&lt;/div&gt;</summary>
		<author><name>BuZz</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Packaging&amp;diff=1397</id>
		<title>Packaging</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Packaging&amp;diff=1397"/>
		<updated>2022-10-09T23:33:07Z</updated>

		<summary type="html">&lt;p&gt;BuZz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The packages we build for Maemo Leste are hosted on Github: https://github.com/maemo-leste&lt;br /&gt;
&lt;br /&gt;
We use the Jenkins CI https://phoenix.maemo.org along with helper scripts that can be found at https://github.com/maemo-leste/jenkins-integration&lt;br /&gt;
The base logic of buildng Debian packages in Jenkins comes from https://jenkins-debian-glue.org&lt;br /&gt;
&lt;br /&gt;
= Workflow =&lt;br /&gt;
&lt;br /&gt;
Our workflow consists of having the packages in Git, along with respective branches.&lt;br /&gt;
The master branch in git should represent the latest development. When the sources are ready, we create a new branch called &amp;quot;maemo/ascii&amp;quot;, which represents the Devuan suite we base it on.&lt;br /&gt;
&lt;br /&gt;
Being git-based, our packages require the gbp.conf file inside the debian directory.&lt;br /&gt;
&lt;br /&gt;
All of our packages contain the exact same gbp.conf, which is the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[DEFAULT]&lt;br /&gt;
upstream-tag=%(version)s&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This file is used by gbp, which in turn is used by jenkins-debian-glue.&lt;br /&gt;
&lt;br /&gt;
The rest is standard Debian packaging.&lt;br /&gt;
&lt;br /&gt;
= Initial packaging =&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
= Updating a package =&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
= Links =&lt;br /&gt;
&lt;br /&gt;
* https://wiki.maemo.org/Packaging&lt;br /&gt;
* https://wiki.maemo.org/Extras-testing/Command_line_applications&lt;br /&gt;
* https://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide/Application_Development/Writing_a_new_maemo_application#Adding_application_to_menu&lt;/div&gt;</summary>
		<author><name>BuZz</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Promotion&amp;diff=1389</id>
		<title>Promotion</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Promotion&amp;diff=1389"/>
		<updated>2022-10-05T13:41:12Z</updated>

		<summary type="html">&lt;p&gt;BuZz: /* Ideas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== What ==&lt;br /&gt;
&lt;br /&gt;
For the upcoming openfest, i had the idea of recording a bunch of videodemos of Leste currentstate on Droid 4, with some show-off stuff.&lt;br /&gt;
&lt;br /&gt;
== HW == &lt;br /&gt;
&lt;br /&gt;
I&#039;m using a simple mjpeg HDMI capture unit.&lt;br /&gt;
&lt;br /&gt;
* just search &#039;hdmi capture usb&#039; on ali express, one of the units with two HDMI ports, so i can loop it through to a monitor&lt;br /&gt;
* https://www.allekabels.nl/computerkabels/4566/1097219/hdmi-naar-hdmi-mini-kabel.html  &lt;br /&gt;
&lt;br /&gt;
There&#039;s some confusion about how to setup xrandr, so i&#039;ll be looking into that aswell.&lt;br /&gt;
&lt;br /&gt;
== Ideas ==&lt;br /&gt;
&lt;br /&gt;
* tasknav view of a youtube video playing + a 3D game&lt;br /&gt;
* youtube background playback&lt;br /&gt;
* true multitasking&lt;br /&gt;
* how well chromium/chrome works!&lt;br /&gt;
* sfone frontends&lt;br /&gt;
* conversations&lt;br /&gt;
* app manager&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* openlara , devilutionX , GZdoom , pcsx-rearmed , dethrace&lt;br /&gt;
* install some devuan/debian upstream program&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* blender?&lt;br /&gt;
* gimp&lt;br /&gt;
* puredata with GEM (and gl4es?)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* please add your ideas of stuff that people should see!&lt;/div&gt;</summary>
		<author><name>BuZz</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Promotion&amp;diff=1388</id>
		<title>Promotion</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Promotion&amp;diff=1388"/>
		<updated>2022-10-05T13:39:38Z</updated>

		<summary type="html">&lt;p&gt;BuZz: Created page with &amp;quot;== What ==  For the upcoming openfest, i had the idea of recording a bunch of videodemos of Leste currentstate on Droid 4, with some show-off stuff.  == HW ==   I&amp;#039;m using a si...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== What ==&lt;br /&gt;
&lt;br /&gt;
For the upcoming openfest, i had the idea of recording a bunch of videodemos of Leste currentstate on Droid 4, with some show-off stuff.&lt;br /&gt;
&lt;br /&gt;
== HW == &lt;br /&gt;
&lt;br /&gt;
I&#039;m using a simple mjpeg HDMI capture unit.&lt;br /&gt;
&lt;br /&gt;
* just search &#039;hdmi capture usb&#039; on ali express, one of the units with two HDMI ports, so i can loop it through to a monitor&lt;br /&gt;
* https://www.allekabels.nl/computerkabels/4566/1097219/hdmi-naar-hdmi-mini-kabel.html  &lt;br /&gt;
&lt;br /&gt;
There&#039;s some confusion about how to setup xrandr, so i&#039;ll be looking into that aswell.&lt;br /&gt;
&lt;br /&gt;
== Ideas ==&lt;br /&gt;
&lt;br /&gt;
* tasknav view of a youtube video playing + a 3D game&lt;br /&gt;
* youtube background playback&lt;br /&gt;
* true multitasking&lt;br /&gt;
* install some devuan/debian upstream program&lt;br /&gt;
* openlara , devilutionX , GZdoom , pcsx-rearmed , dethrace&lt;br /&gt;
* how well chromium/chrome works!&lt;br /&gt;
* sfone frontends&lt;br /&gt;
* conversations&lt;br /&gt;
* app manager&lt;br /&gt;
&lt;br /&gt;
* please add your ideas of stuff that people should see!&lt;/div&gt;</summary>
		<author><name>BuZz</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Extras/MStarDict&amp;diff=1387</id>
		<title>Extras/MStarDict</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Extras/MStarDict&amp;diff=1387"/>
		<updated>2022-09-29T11:28:13Z</updated>

		<summary type="html">&lt;p&gt;BuZz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Package&lt;br /&gt;
|image=[[Image:MStarDict_SelectDictionary.png|250px]]&lt;br /&gt;
|status=Working&lt;br /&gt;
|date_in_repo=2022-09-16&lt;br /&gt;
|maemo_leste_repo=https://github.com/maemo-leste-extras/mstardict&lt;br /&gt;
|category=Utilities&lt;br /&gt;
|packager=[[User:Norayr]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== What is this. ==&lt;br /&gt;
&lt;br /&gt;
MStarDict is a simple offline dictionary based on code of StarDict written in C++ using Gtk2. It allows you to use stardict compatible dictionaries and reference books, of which many can be found.&lt;br /&gt;
&lt;br /&gt;
The original announce thread from 2010 is on https://talk.maemo.org/showthread.php?t=44979&lt;br /&gt;
&lt;br /&gt;
== How to obtain dictionaries ==&lt;br /&gt;
&lt;br /&gt;
For usage, you can grab any stardict dictionary and unpack them in MyDocs/mstardict/.&lt;br /&gt;
There are many sources to grab such dictionaries from, buZz setup a mirror thats linked below for a big pile of free dictionaries.&lt;br /&gt;
&lt;br /&gt;
== How to use it ==&lt;br /&gt;
&lt;br /&gt;
Launch the program, make sure to enable a dictionary and just type a query.&lt;br /&gt;
&lt;br /&gt;
For text to speech, the program has two options. The first uses plain espeak built-in TTS and a gender selection for reading out the entrynames. The second is called &#039;Real People&#039; in the program and requires &lt;br /&gt;
WyabdcRealPeopleTTS.tar.bz2 and/or OtdRealPeopleTTS.tar.bz2. I&#039;m not sure how the second option is supposed to work. For the espeak one no added files are needed.&lt;br /&gt;
&lt;br /&gt;
== Some pictures ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
MStarDict_SelectDictionary.png&lt;br /&gt;
MStarDict_Itemview.png&lt;br /&gt;
MStarDict_Preferences.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Other links ==&lt;br /&gt;
&lt;br /&gt;
* https://stardict-4.sourceforge.net/index_en.php&lt;br /&gt;
* http://space.nurdspace.nl/~buzz/maemo/stardict-dic/&lt;br /&gt;
* https://web.archive.org/web/20170620212527/http://www.stardict.org/&lt;br /&gt;
&lt;br /&gt;
== Also ==&lt;br /&gt;
&lt;br /&gt;
Devuan has &#039;qstardict&#039;, &#039;goldendict&#039; and &#039;sdcv&#039; in its repos which all support the same dictionary files as input. Also there is &#039;dictconv&#039; to convert em back and forth. And there&#039;s even some dictionaries! &#039;stardict-english-czech&#039; and &#039;stardict-german-czech&#039;. You&#039;ll have to copy those dictionaries after installing to MyDocs/mstardict/ yourself.&lt;/div&gt;</summary>
		<author><name>BuZz</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Extras/MStarDict&amp;diff=1386</id>
		<title>Extras/MStarDict</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Extras/MStarDict&amp;diff=1386"/>
		<updated>2022-09-29T11:25:27Z</updated>

		<summary type="html">&lt;p&gt;BuZz: /* How to use it */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Package&lt;br /&gt;
|image=[[Image:MStarDict_SelectDictionary.png|250px]]&lt;br /&gt;
|status=Working&lt;br /&gt;
|date_in_repo=2022-09-16&lt;br /&gt;
|website=https://github.com/norayr/mstardict&lt;br /&gt;
|maemo_leste_repo=https://github.com/maemo-leste-extras/mstardict&lt;br /&gt;
|category=Utilities&lt;br /&gt;
|packager=[[User:Norayr]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== What is this. ==&lt;br /&gt;
&lt;br /&gt;
MStarDict is a simple offline dictionary based on code of StarDict written in C++ using Gtk2. It allows you to use stardict compatible dictionaries and reference books, of which many can be found.&lt;br /&gt;
&lt;br /&gt;
The original announce thread from 2010 is on https://talk.maemo.org/showthread.php?t=44979&lt;br /&gt;
&lt;br /&gt;
== How to obtain dictionaries ==&lt;br /&gt;
&lt;br /&gt;
For usage, you can grab any stardict dictionary and unpack them in MyDocs/mstardict/.&lt;br /&gt;
There are many sources to grab such dictionaries from, buZz setup a mirror thats linked below for a big pile of free dictionaries.&lt;br /&gt;
&lt;br /&gt;
== How to use it ==&lt;br /&gt;
&lt;br /&gt;
Launch the program, make sure to enable a dictionary and just type a query.&lt;br /&gt;
&lt;br /&gt;
For text to speech, the program has two options. The first uses plain espeak built-in TTS and a gender selection for reading out the entrynames. The second is called &#039;Real People&#039; in the program and requires &lt;br /&gt;
WyabdcRealPeopleTTS.tar.bz2 and/or OtdRealPeopleTTS.tar.bz2. I&#039;m not sure how the second option is supposed to work. For the espeak one no added files are needed.&lt;br /&gt;
&lt;br /&gt;
== Some pictures ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
MStarDict_SelectDictionary.png&lt;br /&gt;
MStarDict_Itemview.png&lt;br /&gt;
MStarDict_Preferences.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Other links ==&lt;br /&gt;
&lt;br /&gt;
* https://stardict-4.sourceforge.net/index_en.php&lt;br /&gt;
* http://space.nurdspace.nl/~buzz/maemo/stardict-dic/&lt;br /&gt;
* https://web.archive.org/web/20170620212527/http://www.stardict.org/&lt;br /&gt;
&lt;br /&gt;
== Also ==&lt;br /&gt;
&lt;br /&gt;
Devuan has &#039;qstardict&#039;, &#039;goldendict&#039; and &#039;sdcv&#039; in its repos which all support the same dictionary files as input. Also there is &#039;dictconv&#039; to convert em back and forth. And there&#039;s even some dictionaries! &#039;stardict-english-czech&#039; and &#039;stardict-german-czech&#039;. You&#039;ll have to copy those dictionaries after installing to MyDocs/mstardict/ yourself.&lt;/div&gt;</summary>
		<author><name>BuZz</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Extras/MStarDict&amp;diff=1385</id>
		<title>Extras/MStarDict</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Extras/MStarDict&amp;diff=1385"/>
		<updated>2022-09-29T11:10:09Z</updated>

		<summary type="html">&lt;p&gt;BuZz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Package&lt;br /&gt;
|image=[[Image:MStarDict_SelectDictionary.png|250px]]&lt;br /&gt;
|status=Working&lt;br /&gt;
|date_in_repo=2022-09-16&lt;br /&gt;
|website=https://github.com/norayr/mstardict&lt;br /&gt;
|maemo_leste_repo=https://github.com/maemo-leste-extras/mstardict&lt;br /&gt;
|category=Utilities&lt;br /&gt;
|packager=[[User:Norayr]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== What is this. ==&lt;br /&gt;
&lt;br /&gt;
MStarDict is a simple offline dictionary based on code of StarDict written in C++ using Gtk2. It allows you to use stardict compatible dictionaries and reference books, of which many can be found.&lt;br /&gt;
&lt;br /&gt;
The original announce thread from 2010 is on https://talk.maemo.org/showthread.php?t=44979&lt;br /&gt;
&lt;br /&gt;
== How to obtain dictionaries ==&lt;br /&gt;
&lt;br /&gt;
For usage, you can grab any stardict dictionary and unpack them in MyDocs/mstardict/.&lt;br /&gt;
There are many sources to grab such dictionaries from, buZz setup a mirror thats linked below for a big pile of free dictionaries.&lt;br /&gt;
&lt;br /&gt;
== How to use it ==&lt;br /&gt;
&lt;br /&gt;
Launch the program, make sure to enable a dictionary and just type a query.&lt;br /&gt;
&lt;br /&gt;
For text to speech, the program has two options. The first uses plain espeak TTS and a gender selection for reading out the entrynames. The second is called &#039;Real People&#039; in the program and requires &lt;br /&gt;
WyabdcRealPeopleTTS.tar.bz2 and/or OtdRealPeopleTTS.tar.bz2. I&#039;m not sure how the second option is supposed to work.&lt;br /&gt;
&lt;br /&gt;
== Some pictures ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
MStarDict_SelectDictionary.png&lt;br /&gt;
MStarDict_Itemview.png&lt;br /&gt;
MStarDict_Preferences.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Other links ==&lt;br /&gt;
&lt;br /&gt;
* https://stardict-4.sourceforge.net/index_en.php&lt;br /&gt;
* http://space.nurdspace.nl/~buzz/maemo/stardict-dic/&lt;br /&gt;
* https://web.archive.org/web/20170620212527/http://www.stardict.org/&lt;br /&gt;
&lt;br /&gt;
== Also ==&lt;br /&gt;
&lt;br /&gt;
Devuan has &#039;qstardict&#039;, &#039;goldendict&#039; and &#039;sdcv&#039; in its repos which all support the same dictionary files as input. Also there is &#039;dictconv&#039; to convert em back and forth. And there&#039;s even some dictionaries! &#039;stardict-english-czech&#039; and &#039;stardict-german-czech&#039;. You&#039;ll have to copy those dictionaries after installing to MyDocs/mstardict/ yourself.&lt;/div&gt;</summary>
		<author><name>BuZz</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=File:MStarDict_Preferences.png&amp;diff=1384</id>
		<title>File:MStarDict Preferences.png</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=File:MStarDict_Preferences.png&amp;diff=1384"/>
		<updated>2022-09-29T11:07:26Z</updated>

		<summary type="html">&lt;p&gt;BuZz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>BuZz</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Extras/MStarDict&amp;diff=1383</id>
		<title>Extras/MStarDict</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Extras/MStarDict&amp;diff=1383"/>
		<updated>2022-09-29T11:03:41Z</updated>

		<summary type="html">&lt;p&gt;BuZz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Package&lt;br /&gt;
|image=[[Image:MStarDict_SelectDictionary.png|250px]]&lt;br /&gt;
|status=Working&lt;br /&gt;
|date_in_repo=2022-09-16&lt;br /&gt;
|website=https://github.com/norayr/mstardict&lt;br /&gt;
|maemo_leste_repo=https://github.com/maemo-leste-extras/mstardict&lt;br /&gt;
|category=Utilities&lt;br /&gt;
|packager=[[User:Norayr]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== What is this. ==&lt;br /&gt;
&lt;br /&gt;
MStarDict is a simple offline dictionary based on code of StarDict written in C++ using Gtk2. It allows you to use stardict compatible dictionaries and reference books, of which many can be found.&lt;br /&gt;
&lt;br /&gt;
The original announce thread from 2010 is on https://talk.maemo.org/showthread.php?t=44979&lt;br /&gt;
&lt;br /&gt;
== How to obtain dictionaries ==&lt;br /&gt;
&lt;br /&gt;
For usage, you can grab any stardict dictionary and unpack them in MyDocs/mstardict/.&lt;br /&gt;
There are many sources to grab such dictionaries from, buZz setup a mirror thats linked below for a big pile of free dictionaries.&lt;br /&gt;
&lt;br /&gt;
== How to use it ==&lt;br /&gt;
&lt;br /&gt;
Launch the program, make sure to enable a dictionary and just type a query.&lt;br /&gt;
&lt;br /&gt;
There&#039;s also espeak (and a different one thats just &amp;gt;20000 .wav files??) TTS for reading out the entrynames.&lt;br /&gt;
&lt;br /&gt;
== Some pictures ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
MStarDict_SelectDictionary.png&lt;br /&gt;
MStarDict_Itemview.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Other links ==&lt;br /&gt;
&lt;br /&gt;
* https://stardict-4.sourceforge.net/index_en.php&lt;br /&gt;
* http://space.nurdspace.nl/~buzz/maemo/stardict-dic/&lt;br /&gt;
* https://web.archive.org/web/20170620212527/http://www.stardict.org/&lt;br /&gt;
&lt;br /&gt;
== Also ==&lt;br /&gt;
&lt;br /&gt;
Devuan has &#039;qstardict&#039;, &#039;goldendict&#039; and &#039;sdcv&#039; in its repos which all support the same dictionary files as input. Also there is &#039;dictconv&#039; to convert em back and forth. And there&#039;s even some dictionaries! &#039;stardict-english-czech&#039; and &#039;stardict-german-czech&#039;. You&#039;ll have to copy those dictionaries after installing to MyDocs/mstardict/ yourself.&lt;/div&gt;</summary>
		<author><name>BuZz</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Extras/MStarDict&amp;diff=1381</id>
		<title>Extras/MStarDict</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Extras/MStarDict&amp;diff=1381"/>
		<updated>2022-09-29T10:59:56Z</updated>

		<summary type="html">&lt;p&gt;BuZz: /* How to obtain dictionaries */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Package&lt;br /&gt;
|image=[[Image:MStarDict_SelectDictionary.png|250px]]&lt;br /&gt;
|status=Working&lt;br /&gt;
|date_in_repo=2022-09-16&lt;br /&gt;
|website=https://github.com/norayr/mstardict&lt;br /&gt;
|maemo_leste_repo=https://github.com/maemo-leste-extras/mstardict&lt;br /&gt;
|category=Utilities&lt;br /&gt;
|packager=[[User:Norayr]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== What is this. ==&lt;br /&gt;
&lt;br /&gt;
MStarDict is a simple dictionary based on code of StarDict written in C++ using Gtk2. It allows you to use stardict compatible dictionaries and reference books, of which many can be found.&lt;br /&gt;
&lt;br /&gt;
The original announce thread from 2010 is on https://talk.maemo.org/showthread.php?t=44979&lt;br /&gt;
&lt;br /&gt;
== How to obtain dictionaries ==&lt;br /&gt;
&lt;br /&gt;
For usage, you can grab any stardict dictionary and unpack them in MyDocs/mstardict/.&lt;br /&gt;
There are many sources to grab such dictionaries from, buZz setup a mirror thats linked below for a big pile of free dictionaries.&lt;br /&gt;
&lt;br /&gt;
== How to use it ==&lt;br /&gt;
&lt;br /&gt;
Launch the program, make sure to enable a dictionary and just type a query.&lt;br /&gt;
&lt;br /&gt;
There&#039;s also espeak (and a different one thats just &amp;gt;20000 .wav files??) TTS for reading out the entrynames.&lt;br /&gt;
&lt;br /&gt;
== Some pictures ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
MStarDict_SelectDictionary.png&lt;br /&gt;
MStarDict_Itemview.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Other links ==&lt;br /&gt;
&lt;br /&gt;
* https://stardict-4.sourceforge.net/index_en.php&lt;br /&gt;
* http://space.nurdspace.nl/~buzz/maemo/stardict-dic/&lt;br /&gt;
* https://web.archive.org/web/20170620212527/http://www.stardict.org/&lt;br /&gt;
&lt;br /&gt;
== Also ==&lt;br /&gt;
&lt;br /&gt;
Devuan has &#039;qstardict&#039;, &#039;goldendict&#039; and &#039;sdcv&#039; in its repos which all support the same dictionary files as input. Also there is &#039;distconv&#039; to convert em back and forth.&lt;/div&gt;</summary>
		<author><name>BuZz</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Extras/MStarDict&amp;diff=1379</id>
		<title>Extras/MStarDict</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Extras/MStarDict&amp;diff=1379"/>
		<updated>2022-09-29T10:57:35Z</updated>

		<summary type="html">&lt;p&gt;BuZz: /* How do i use it */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Package&lt;br /&gt;
|image=[[Image:MStarDict_SelectDictionary.png|250px]]&lt;br /&gt;
|status=Working&lt;br /&gt;
|date_in_repo=2022-09-16&lt;br /&gt;
|website=https://github.com/norayr/mstardict&lt;br /&gt;
|maemo_leste_repo=https://github.com/maemo-leste-extras/mstardict&lt;br /&gt;
|category=Utilities&lt;br /&gt;
|packager=[[User:Norayr]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== What is this. ==&lt;br /&gt;
&lt;br /&gt;
MStarDict is a simple dictionary based on code of StarDict written in C++ using Gtk2. It allows you to use stardict compatible dictionaries and reference books, of which many can be found.&lt;br /&gt;
&lt;br /&gt;
The original announce thread from 2010 is on https://talk.maemo.org/showthread.php?t=44979&lt;br /&gt;
&lt;br /&gt;
== How do i use it ==&lt;br /&gt;
&lt;br /&gt;
For usage, you can grab any stardict dictionary and place them in MyDocs/mstardict/.&lt;br /&gt;
There are many sources to grab dictionaries from, buZz setup a mirror thats linked below for a big pile of free dictionaries. &lt;br /&gt;
&lt;br /&gt;
Then launch the program, make sure to enable the dictionary you just copied and type a query.&lt;br /&gt;
&lt;br /&gt;
There&#039;s also espeak (and a different one thats just &amp;gt;20000 .wav files??) TTS for reading out the entrynames.&lt;br /&gt;
&lt;br /&gt;
== Some pictures ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
MStarDict_SelectDictionary.png&lt;br /&gt;
MStarDict_Itemview.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Other links ==&lt;br /&gt;
&lt;br /&gt;
* https://stardict-4.sourceforge.net/index_en.php&lt;br /&gt;
* http://space.nurdspace.nl/~buzz/maemo/stardict-dic/&lt;br /&gt;
* https://web.archive.org/web/20170620212527/http://www.stardict.org/&lt;br /&gt;
&lt;br /&gt;
== Also ==&lt;br /&gt;
&lt;br /&gt;
Devuan has &#039;qstardict&#039;, &#039;goldendict&#039; and &#039;sdcv&#039; in its repos which all support the same dictionary files as input. Also there is &#039;distconv&#039; to convert em back and forth.&lt;/div&gt;</summary>
		<author><name>BuZz</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Extras/MStarDict&amp;diff=1378</id>
		<title>Extras/MStarDict</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Extras/MStarDict&amp;diff=1378"/>
		<updated>2022-09-29T10:55:29Z</updated>

		<summary type="html">&lt;p&gt;BuZz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Package&lt;br /&gt;
|image=[[Image:MStarDict_SelectDictionary.png|250px]]&lt;br /&gt;
|status=Working&lt;br /&gt;
|date_in_repo=2022-09-16&lt;br /&gt;
|website=https://github.com/norayr/mstardict&lt;br /&gt;
|maemo_leste_repo=https://github.com/maemo-leste-extras/mstardict&lt;br /&gt;
|category=Utilities&lt;br /&gt;
|packager=[[User:Norayr]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== What is this. ==&lt;br /&gt;
&lt;br /&gt;
MStarDict is a simple dictionary based on code of StarDict written in C++ using Gtk2. It allows you to use stardict compatible dictionaries and reference books, of which many can be found.&lt;br /&gt;
&lt;br /&gt;
The original announce thread from 2010 is on https://talk.maemo.org/showthread.php?t=44979&lt;br /&gt;
&lt;br /&gt;
== How do i use it ==&lt;br /&gt;
&lt;br /&gt;
For usage, you can grab any stardict dictionary and place them in MyDocs/mstardict/&lt;br /&gt;
&lt;br /&gt;
Then launch the program, make sure to enable the dictionary you just copied and type a query.&lt;br /&gt;
&lt;br /&gt;
There&#039;s also espeak (and a different one thats just &amp;gt;20000 .wav files??) TTS for reading out the entrynames.&lt;br /&gt;
&lt;br /&gt;
== Some pictures ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
MStarDict_SelectDictionary.png&lt;br /&gt;
MStarDict_Itemview.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Other links ==&lt;br /&gt;
&lt;br /&gt;
* https://stardict-4.sourceforge.net/index_en.php&lt;br /&gt;
* http://space.nurdspace.nl/~buzz/maemo/stardict-dic/&lt;br /&gt;
* https://web.archive.org/web/20170620212527/http://www.stardict.org/&lt;br /&gt;
&lt;br /&gt;
== Also ==&lt;br /&gt;
&lt;br /&gt;
Devuan has &#039;qstardict&#039;, &#039;goldendict&#039; and &#039;sdcv&#039; in its repos which all support the same dictionary files as input. Also there is &#039;distconv&#039; to convert em back and forth.&lt;/div&gt;</summary>
		<author><name>BuZz</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Extras/MStarDict&amp;diff=1377</id>
		<title>Extras/MStarDict</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Extras/MStarDict&amp;diff=1377"/>
		<updated>2022-09-29T06:45:23Z</updated>

		<summary type="html">&lt;p&gt;BuZz: /* How do i use it */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Package&lt;br /&gt;
|image=[[Image:MStarDict_SelectDictionary.png|250px]]&lt;br /&gt;
|status=Working&lt;br /&gt;
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]&lt;br /&gt;
|date_in_repo=2022-09-16&lt;br /&gt;
|website=https://github.com/norayr/mstardict&lt;br /&gt;
|maemo_leste_repo=https://github.com/maemo-leste-extras/mstardict&lt;br /&gt;
|category=Utilities&lt;br /&gt;
|packager=[[User:Norayr]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== What is this. ==&lt;br /&gt;
&lt;br /&gt;
MStarDict is a simple dictionary based on code of StarDict written in C++ using Gtk2. It allows you to use stardict compatible dictionaries and reference books, of which many can be found.&lt;br /&gt;
&lt;br /&gt;
The original announce thread from 2010 is on https://talk.maemo.org/showthread.php?t=44979&lt;br /&gt;
&lt;br /&gt;
== How do i use it ==&lt;br /&gt;
&lt;br /&gt;
For usage, you can grab any stardict dictionary and place them in MyDocs/mstardict/&lt;br /&gt;
&lt;br /&gt;
Then launch the program, make sure to enable the dictionary you just copied and type a query.&lt;br /&gt;
&lt;br /&gt;
There&#039;s also espeak (and a different one thats just &amp;gt;20000 .wav files??) TTS for reading out the entrynames.&lt;br /&gt;
&lt;br /&gt;
== Some pictures ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
MStarDict_SelectDictionary.png&lt;br /&gt;
MStarDict_Itemview.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Other links ==&lt;br /&gt;
&lt;br /&gt;
* https://stardict-4.sourceforge.net/index_en.php&lt;br /&gt;
* http://space.nurdspace.nl/~buzz/maemo/stardict-dic/&lt;br /&gt;
* https://web.archive.org/web/20170620212527/http://www.stardict.org/&lt;br /&gt;
&lt;br /&gt;
== Also ==&lt;br /&gt;
&lt;br /&gt;
Devuan has &#039;qstardict&#039;, &#039;goldendict&#039; and &#039;sdcv&#039; in its repos which all support the same dictionary files as input. Also there is &#039;distconv&#039; to convert em back and forth.&lt;/div&gt;</summary>
		<author><name>BuZz</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Extras/MStarDict&amp;diff=1376</id>
		<title>Extras/MStarDict</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Extras/MStarDict&amp;diff=1376"/>
		<updated>2022-09-29T06:22:49Z</updated>

		<summary type="html">&lt;p&gt;BuZz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Package&lt;br /&gt;
|image=[[Image:MStarDict_SelectDictionary.png|250px]]&lt;br /&gt;
|status=Working&lt;br /&gt;
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]&lt;br /&gt;
|date_in_repo=2022-09-16&lt;br /&gt;
|website=https://github.com/norayr/mstardict&lt;br /&gt;
|maemo_leste_repo=https://github.com/maemo-leste-extras/mstardict&lt;br /&gt;
|category=Utilities&lt;br /&gt;
|packager=[[User:Norayr]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== What is this. ==&lt;br /&gt;
&lt;br /&gt;
MStarDict is a simple dictionary based on code of StarDict written in C++ using Gtk2. It allows you to use stardict compatible dictionaries and reference books, of which many can be found.&lt;br /&gt;
&lt;br /&gt;
The original announce thread from 2010 is on https://talk.maemo.org/showthread.php?t=44979&lt;br /&gt;
&lt;br /&gt;
== How do i use it ==&lt;br /&gt;
&lt;br /&gt;
For usage, you can grab any stardict dictionary and place them in MyDocs/mstardict/&lt;br /&gt;
&lt;br /&gt;
Then launch the program, and type a query.&lt;br /&gt;
&lt;br /&gt;
There&#039;s also espeak (and a different one thats just &amp;gt;20000 .wav files??) TTS for reading out the entrynames.&lt;br /&gt;
&lt;br /&gt;
== Some pictures ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
MStarDict_SelectDictionary.png&lt;br /&gt;
MStarDict_Itemview.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Other links ==&lt;br /&gt;
&lt;br /&gt;
* https://stardict-4.sourceforge.net/index_en.php&lt;br /&gt;
* http://space.nurdspace.nl/~buzz/maemo/stardict-dic/&lt;br /&gt;
* https://web.archive.org/web/20170620212527/http://www.stardict.org/&lt;br /&gt;
&lt;br /&gt;
== Also ==&lt;br /&gt;
&lt;br /&gt;
Devuan has &#039;qstardict&#039;, &#039;goldendict&#039; and &#039;sdcv&#039; in its repos which all support the same dictionary files as input. Also there is &#039;distconv&#039; to convert em back and forth.&lt;/div&gt;</summary>
		<author><name>BuZz</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Extras/MStarDict&amp;diff=1375</id>
		<title>Extras/MStarDict</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Extras/MStarDict&amp;diff=1375"/>
		<updated>2022-09-29T06:13:10Z</updated>

		<summary type="html">&lt;p&gt;BuZz: Created page with &amp;quot;{{Infobox Package |image=250px |status=Working |devices=Nokia_N900,Motorola_Droid_4 |date_in_repo=2022-09-16 |website=https://...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Package&lt;br /&gt;
|image=[[Image:MStarDict_SelectDictionary.png|250px]]&lt;br /&gt;
|status=Working&lt;br /&gt;
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]&lt;br /&gt;
|date_in_repo=2022-09-16&lt;br /&gt;
|website=https://github.com/norayr/mstardict&lt;br /&gt;
|maemo_leste_repo=https://github.com/maemo-leste-extras/mstardict&lt;br /&gt;
|category=Utilities&lt;br /&gt;
|packager=[[User:Norayr]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
MStarDict is a simple dictionary based on code of StarDict written in C++ using Gtk2.&lt;br /&gt;
&lt;br /&gt;
Original announce thread from 2010 is on https://talk.maemo.org/showthread.php?t=44979&lt;br /&gt;
&lt;br /&gt;
For usage, you can grab any stardict dictionary and place them in MyDocs/mstardict/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
MStarDict_SelectDictionary.png&lt;br /&gt;
MStarDict_Itemview.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;/div&gt;</summary>
		<author><name>BuZz</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=File:MStarDict_Itemview.png&amp;diff=1374</id>
		<title>File:MStarDict Itemview.png</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=File:MStarDict_Itemview.png&amp;diff=1374"/>
		<updated>2022-09-29T06:12:27Z</updated>

		<summary type="html">&lt;p&gt;BuZz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>BuZz</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=File:MStarDict_SelectDictionary.png&amp;diff=1373</id>
		<title>File:MStarDict SelectDictionary.png</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=File:MStarDict_SelectDictionary.png&amp;diff=1373"/>
		<updated>2022-09-29T06:11:22Z</updated>

		<summary type="html">&lt;p&gt;BuZz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>BuZz</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=User:BuZz/Opinions&amp;diff=1293</id>
		<title>User:BuZz/Opinions</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=User:BuZz/Opinions&amp;diff=1293"/>
		<updated>2022-05-19T13:54:57Z</updated>

		<summary type="html">&lt;p&gt;BuZz: /* My dataconnection issues */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== virtual keyboard ==&lt;br /&gt;
&lt;br /&gt;
(while using a pinephone) Why do we have to blur the rest of screen in portrait? Maybe we can keep it unblurred there, resize main window and keep keyboard window open while using? &lt;br /&gt;
&lt;br /&gt;
== QTWebBrowser ==&lt;br /&gt;
&lt;br /&gt;
I reaaaally want to be able to zoom -out- from 100% , not just in. &lt;br /&gt;
* https://github.com/qtproject/qt-apps-qtwebbrowser&lt;br /&gt;
&lt;br /&gt;
== My dataconnection issues ==&lt;br /&gt;
&lt;br /&gt;
(on a droid4 running latest -devel) &lt;br /&gt;
&lt;br /&gt;
Every time i restart icd2 , i see my datasim connection once. I can tap it, and it will connect but not according to UI , i need to press &#039;No&#039; on the popup for retry, and execute udhcpc -i wwan3 myself. Then its stable for -ages-. &lt;br /&gt;
&lt;br /&gt;
Opening application manager breaks the connection.&lt;br /&gt;
&lt;br /&gt;
Also reopening icd2 &#039;internet connections&#039; breaks the connection. (from statusbar, not from settings app)&lt;/div&gt;</summary>
		<author><name>BuZz</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=User:BuZz&amp;diff=1292</id>
		<title>User:BuZz</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=User:BuZz&amp;diff=1292"/>
		<updated>2022-05-19T13:50:53Z</updated>

		<summary type="html">&lt;p&gt;BuZz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;hi, i&#039;m a founding [https://nurdspace.nl NURDspace] member.&lt;br /&gt;
&lt;br /&gt;
Been messing with maemo a bit on my collection of OMAP devices (770,n800,n810,n900) never really used it as daily driver. Also been using devuan since inception.&lt;br /&gt;
&lt;br /&gt;
Also bunch of other stuff, i guess.&lt;br /&gt;
&lt;br /&gt;
Since leste exists i&#039;ve been messing around with it on a droid4 , been carrying it as daily driver since early 2022 now.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Careful, i got [[User:BuZz/Opinions|opinions]]&lt;/div&gt;</summary>
		<author><name>BuZz</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=User:BuZz/Opinions&amp;diff=1291</id>
		<title>User:BuZz/Opinions</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=User:BuZz/Opinions&amp;diff=1291"/>
		<updated>2022-05-19T13:50:18Z</updated>

		<summary type="html">&lt;p&gt;BuZz: Created page with &amp;quot;== virtual keyboard ==  (while using a pinephone) Why do we have to blur the rest of screen in portrait? Maybe we can keep it unblurred there, resize main window and keep keyb...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== virtual keyboard ==&lt;br /&gt;
&lt;br /&gt;
(while using a pinephone) Why do we have to blur the rest of screen in portrait? Maybe we can keep it unblurred there, resize main window and keep keyboard window open while using? &lt;br /&gt;
&lt;br /&gt;
== QTWebBrowser ==&lt;br /&gt;
&lt;br /&gt;
I reaaaally want to be able to zoom -out- from 100% , not just in. &lt;br /&gt;
* https://github.com/qtproject/qt-apps-qtwebbrowser&lt;br /&gt;
&lt;br /&gt;
== My dataconnection issues ==&lt;br /&gt;
&lt;br /&gt;
Every time i restart icd2 , i see my datasim connection once. I can tap it, and it will connect but not according to UI , i need to press &#039;No&#039; on the popup for retry, and execute udhcpc -i wwan3 myself. Then its stable for -ages-. &lt;br /&gt;
&lt;br /&gt;
Opening application manager breaks the connection.&lt;br /&gt;
&lt;br /&gt;
Also reopening icd2 &#039;internet connections&#039; breaks the connection. (from statusbar, not from settings app)&lt;/div&gt;</summary>
		<author><name>BuZz</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=User:BuZz&amp;diff=1290</id>
		<title>User:BuZz</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=User:BuZz&amp;diff=1290"/>
		<updated>2022-05-19T13:45:56Z</updated>

		<summary type="html">&lt;p&gt;BuZz: Created page with &amp;quot;hi, i&amp;#039;m a founding [https://nurdspace.nl NURDspace] member.  Been messing with maemo a bit on my collection of OMAP devices (770,n800,n810,n900) never really used it as daily...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;hi, i&#039;m a founding [https://nurdspace.nl NURDspace] member.&lt;br /&gt;
&lt;br /&gt;
Been messing with maemo a bit on my collection of OMAP devices (770,n800,n810,n900) never really used it as daily driver. Also been using devuan since inception.&lt;br /&gt;
&lt;br /&gt;
Also bunch of other stuff, i guess.&lt;br /&gt;
&lt;br /&gt;
Since leste exists i&#039;ve been messing around with it on a droid4 , been carrying it as daily driver since early 2022 now.&lt;/div&gt;</summary>
		<author><name>BuZz</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Motorola_Droid_4&amp;diff=1286</id>
		<title>Motorola Droid 4</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Motorola_Droid_4&amp;diff=1286"/>
		<updated>2022-05-04T21:20:20Z</updated>

		<summary type="html">&lt;p&gt;BuZz: /* Torch */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Device&lt;br /&gt;
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]&lt;br /&gt;
|manufacturer=Motorola&lt;br /&gt;
|codename=Maserati XT894&lt;br /&gt;
|dimensions=127x67.3x12.7mm&lt;br /&gt;
|release_date=2012-02-10&lt;br /&gt;
|soc=TI OMAP4430&lt;br /&gt;
|dram=1024MB DDR2&lt;br /&gt;
|power=&lt;br /&gt;
|lcd=960x540 4&amp;quot;&lt;br /&gt;
|video=PowerVR SGX540 &lt;br /&gt;
|audio=&lt;br /&gt;
|network=&lt;br /&gt;
|storage=16GB flash&lt;br /&gt;
|usb=&lt;br /&gt;
|camera=&lt;br /&gt;
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor&lt;br /&gt;
|other=&lt;br /&gt;
|category=Supported&lt;br /&gt;
|sw_kernel=5.15.0&lt;br /&gt;
|sw_serial=Yes, [[#Serial Cable|special cable]]&lt;br /&gt;
|sw_charging=Yes&lt;br /&gt;
|sw_usb_slave=Yes&lt;br /&gt;
|sw_usb_host=Yes&lt;br /&gt;
|sw_touchscreen=Yes&lt;br /&gt;
|sw_keyboard=Yes&lt;br /&gt;
|sw_screen=Yes&lt;br /&gt;
|sw_hdmi=Yes&lt;br /&gt;
|sw_tv=&lt;br /&gt;
|sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed)&lt;br /&gt;
|sw_vibration=Yes&lt;br /&gt;
|sw_audio=Yes&lt;br /&gt;
|sw_calls=WIP&lt;br /&gt;
|sw_sms=Yes, no UI&lt;br /&gt;
|sw_wifi=Yes&lt;br /&gt;
|sw_ethernet=&lt;br /&gt;
|sw_irda=&lt;br /&gt;
|sw_2g3gdata=Yes&lt;br /&gt;
|sw_4g=No&lt;br /&gt;
|sw_bluetooth=Yes,  [[#Bluetooth|see notes]] &lt;br /&gt;
|sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers&lt;br /&gt;
|sw_fmrx=&lt;br /&gt;
|sw_nfc=&lt;br /&gt;
|sw_accelerometer=Yes&lt;br /&gt;
|sw_compass=Yes, no integration&lt;br /&gt;
|sw_gyro=&lt;br /&gt;
|sw_proximity=Yes&lt;br /&gt;
|sw_als=Yes&lt;br /&gt;
|sw_gps=Yes&lt;br /&gt;
|sw_agps=No&lt;br /&gt;
|sw_frontcam=No&lt;br /&gt;
|sw_backcam=No&lt;br /&gt;
|sw_idlepower=120mW&lt;br /&gt;
|sw_standbytime=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Hardware requirements:&lt;br /&gt;
&lt;br /&gt;
* Droid4 with fully charged battery&lt;br /&gt;
* MicroUSB cable&lt;br /&gt;
* MicroSD card&lt;br /&gt;
&lt;br /&gt;
Software requirements:&lt;br /&gt;
* Host Linux or Windows system&lt;br /&gt;
* Android Tools: fastboot&lt;br /&gt;
* Flashing tools:&lt;br /&gt;
** XZ Utils and coreutils for Linux&lt;br /&gt;
** Etcher[https://github.com/balena-io/etcher] for Windows&lt;br /&gt;
&lt;br /&gt;
Download from https://maedevu.maemo.org/images/droid4/&lt;br /&gt;
&lt;br /&gt;
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip&lt;br /&gt;
# flash-droid-4-fw.sh&lt;br /&gt;
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz&lt;br /&gt;
&lt;br /&gt;
Download from https://github.com/tmlind/droid4-kexecboot.git&lt;br /&gt;
&lt;br /&gt;
# utags-mmcblk1p13.bin&lt;br /&gt;
# droid4-kexecboot.img&lt;br /&gt;
&lt;br /&gt;
Check what kernel version your Android OS runs.&lt;br /&gt;
For this go to Settings -&amp;gt; About phone. Slide to the bottom, where you can see &amp;quot;Kernel version&amp;quot;.&lt;br /&gt;
If you have at least 3.0.8, you may skip &amp;quot;Updating Android&amp;quot; step below.&lt;br /&gt;
&lt;br /&gt;
Installation:&lt;br /&gt;
&lt;br /&gt;
# Create a working directory with above mentioned files in it&lt;br /&gt;
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip&lt;br /&gt;
# Power off Droid4 and connect it to the host machine with MicroUSB cable&lt;br /&gt;
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.&lt;br /&gt;
&lt;br /&gt;
=== Updating Android ===&lt;br /&gt;
&lt;br /&gt;
This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml&lt;br /&gt;
sudo bash ../flash-droid-4-fw.sh&lt;br /&gt;
popd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Setting up kexecboot ===&lt;br /&gt;
&lt;br /&gt;
Now, assuming you are in the working directory, install kexecboot:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin&lt;br /&gt;
sudo fastboot reboot-bootloader&lt;br /&gt;
sudo fastboot flash bpsw droid4-kexecboot.img&lt;br /&gt;
sudo fastboot flash utags utags-mmcblk1p13.bin&lt;br /&gt;
sudo fastboot reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you did &amp;quot;Updating Android&amp;quot; the device should run the firstboot steps.&lt;br /&gt;
If you didn&#039;t, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.&lt;br /&gt;
&lt;br /&gt;
=== Install Maemo Leste to the sdcard ===&lt;br /&gt;
&lt;br /&gt;
Now, flash the Maemo Leste image to your sdcard:&lt;br /&gt;
&lt;br /&gt;
On Linux:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE&lt;br /&gt;
sync&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Windows: Use Etcher&lt;br /&gt;
&lt;br /&gt;
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.&lt;br /&gt;
&lt;br /&gt;
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.&lt;br /&gt;
&lt;br /&gt;
== Updating ==&lt;br /&gt;
&lt;br /&gt;
Normally you can just apt update &amp;amp;&amp;amp; apt dist-upgrade to update to the latest version. If for some reason this fails:&lt;br /&gt;
&lt;br /&gt;
* Poweroff device, grab the SD card&lt;br /&gt;
* Backup any important files&lt;br /&gt;
* Grab the latest image from https://phoenix.maemo.org/view/Images/&lt;br /&gt;
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.&lt;br /&gt;
&lt;br /&gt;
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.&lt;br /&gt;
&lt;br /&gt;
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.&lt;br /&gt;
Blacklisting the module may help if you have such problems:&lt;br /&gt;
 echo &amp;quot;blacklist hci_uart&amp;quot; &amp;gt;&amp;gt; /etc/modprobe.d/blacklist.conf&lt;br /&gt;
&lt;br /&gt;
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]&lt;br /&gt;
&lt;br /&gt;
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The keyboard layout is extended to provide more standard keys.&lt;br /&gt;
[[File:Maemo-leste-droid4-kbd-2021-07.png|center|620px|thumb|maemo-leste droid4 keyboard]]&lt;br /&gt;
Key mapping can be tested with the &#039;xev&#039; program.&lt;br /&gt;
&lt;br /&gt;
It may be necessary to run the follow commands as root in order to get the OK key to function correctly (see [https://github.com/maemo-leste/bugtracker/issues/510#issuecomment-815618591 here]):&lt;br /&gt;
 udevadm hwdb --update&lt;br /&gt;
 udevadm trigger&lt;br /&gt;
&lt;br /&gt;
== Serial Cable ==&lt;br /&gt;
&lt;br /&gt;
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/&lt;br /&gt;
&lt;br /&gt;
While using the serial cable, if you lose the connection, the following may help:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
18:43 &amp;lt; tmlind&amp;gt; sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with &lt;br /&gt;
                the console login propt later&lt;br /&gt;
18:45 &amp;lt; tmlind&amp;gt; try plugging in a pc usb cable then back to uart cable in case that might help&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Bluetooth ==&lt;br /&gt;
&lt;br /&gt;
Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Stuff to try ==&lt;br /&gt;
&lt;br /&gt;
==== Using a battery without temperature sensor ====&lt;br /&gt;
&lt;br /&gt;
Modprobe the pmic driver as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cpcap-battery ignore_temperature_probe=1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Flashing the boot logo ====&lt;br /&gt;
&lt;br /&gt;
More info: https://github.com/xsetiadi/droid4-kexecboot/blob/master/LOGO&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
15:04 &amp;lt; tmlind&amp;gt; Wizzup: i think the logo on droid4 can be flashed with fastboot flash logo logo.bin or something, can also be just written to logo partition from m-l&lt;br /&gt;
[snip]&lt;br /&gt;
09:24 &amp;lt; xsetiadi&amp;gt; https://github.com/xsetiadi/droid4-kexecboot/blob/master/logo.bin&lt;br /&gt;
09:25 &amp;lt; xsetiadi&amp;gt; becarefull, you can bootloop droid4 if you wrong flash partition&lt;br /&gt;
09:26 &amp;lt; xsetiadi&amp;gt; like i do last year&lt;br /&gt;
09:26 &amp;lt; xsetiadi&amp;gt; instead of flashing using command: fastboot flash logo.bin logo.bin i just flash it with command: fastboot flash logo logo.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Blinkenlights ====&lt;br /&gt;
Adding this in rc.local above the &#039;&#039;exit 0&#039;&#039; gets you some blinkenlights to watschen und relaxen.&lt;br /&gt;
 echo cpu &amp;gt; /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight&lt;br /&gt;
 echo mmc0 &amp;gt; /sys/class/leds/shift-key-light/trigger      # gets you a &#039;hdd led&#039; of the SD card on the capslock light&lt;br /&gt;
&lt;br /&gt;
==== USSD ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
22:45 &amp;lt; tmlind&amp;gt; fyi, here&#039;s how to send USSD to query balance for example: printf &amp;quot;AT+CUSD=1,#999#,0\r&amp;quot; &amp;gt; /dev/motmdm1&lt;br /&gt;
22:47 &amp;lt; tmlind&amp;gt; fyi, for parsing incoming USSD, this web interface works if set to utf-8: &lt;br /&gt;
                https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== HDMI ====&lt;br /&gt;
Move output to external 1080p monitor.  Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Return to internal touchscreen display.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Keyboard / Mouse sharing with PC ====&lt;br /&gt;
To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[https://github.com/debauchee/barrier Barrier software-KVM switch]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Developers and testers may wish to disable the googley bits before compiling.&lt;br /&gt;
&lt;br /&gt;
==== BT Audio headset ====&lt;br /&gt;
&lt;br /&gt;
 sudo apt install pulseaudio-module-bluetooth blueman bluez&lt;br /&gt;
 sudo modprobe hci_uart&lt;br /&gt;
 pactl load-module module-bluetooth-discover&lt;br /&gt;
 blueman-manager&lt;br /&gt;
&lt;br /&gt;
Pair &amp;amp; trust your device in blueman, connect audiosink. You can close blueman now. The quality seems a bit better in &#039;offline mode&#039;.&lt;br /&gt;
&lt;br /&gt;
==== Torch ====&lt;br /&gt;
&lt;br /&gt;
The Droid 4 has a TI LM3559 flash torch controller. This provides flash functionality when taking pictures, usage as a torch, and provides privacy indication (in this mode, the LED flashes in a fast heartbeat pattern). A driver for it exists in mainline, but it requires some DTS work, since it is tied to a camera device. &lt;br /&gt;
&lt;br /&gt;
If you want to use it in the meantime, direct i2c access can be used as follows (since this is direct access, be careful about each of the commands below):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
##Install the prerequisites&lt;br /&gt;
$ sudo apt install i2c-tools&lt;br /&gt;
&lt;br /&gt;
## Turn LED on in torch mode&lt;br /&gt;
$ sudo i2cset -y 2 0x53 0x10 0x1a&lt;br /&gt;
&lt;br /&gt;
## Turn LED on in privacy indication mode&lt;br /&gt;
$ sudo i2cset -y 2 0x53 0x10 0x19&lt;br /&gt;
&lt;br /&gt;
## Turn LED off (in any mode)&lt;br /&gt;
$ sudo i2cset -y 2 0x53 0x10 0x18&lt;br /&gt;
&lt;br /&gt;
## Use LED for doing a hella bright flash for some time once and then turn off&lt;br /&gt;
$ sudo i2cset -y 2 0x53 0x10 0x1b&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Using a configured Leste sdcard in a different Droid4 ==&lt;br /&gt;
&lt;br /&gt;
A configured Droid4 Leste installation is unique to the device that it was calibrated on.  Particularly the wlan firmware calibration will be incorrect if an existing Leste installation is transferred to a different device.  &lt;br /&gt;
&lt;br /&gt;
The wifi calibration script requires a system set to stock settings to calibrate-from.  It cannot just be re-run on an already calibrated system.&lt;br /&gt;
&lt;br /&gt;
To recalibrate the wifi firmware on a different Droid4, you must reset the FEM parameters to stock settings on the new device, then recalibrate.  &lt;br /&gt;
If you can get the device online (usb networking or moving close to the WLAN AP) this can be done with.&lt;br /&gt;
 apt reinstall firmware-ti-connectivity &lt;br /&gt;
If not, you can download the firmware-ti-connectivity_[version]_all.deb on another Leste device&lt;br /&gt;
 apt download firmware-ti-connectivity&lt;br /&gt;
Then copy the .deb to your new device and install that (as root) with&lt;br /&gt;
 dpkg -i firmware-ti-connectivity_[version]_all.deb &lt;br /&gt;
Then (as root) re-calibrate the wifi chip by running&lt;br /&gt;
 /usr/bin/maserati-calibrate&lt;br /&gt;
Then reboot.&lt;br /&gt;
&lt;br /&gt;
== Gallery ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Motorola-Droid4-20200125.jpeg&lt;br /&gt;
Droid4-neofetch.JPG&lt;br /&gt;
Droid4_htop.jpg&lt;br /&gt;
Droid4_leste_logo.jpg&lt;br /&gt;
Cant_have_2_much_leste.jpg&lt;br /&gt;
Leste-neverball.jpg&lt;br /&gt;
Statsfun.jpg&lt;br /&gt;
Leste-glmatrix.png&lt;br /&gt;
Droid4-leste-utox2.jpg&lt;br /&gt;
Droid4-leste-pcsx.jpg&lt;br /&gt;
Droid4-leste-surf_master.jpg&lt;br /&gt;
Droid4_Daimonin_Hdmi.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Old status overview ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Feature&lt;br /&gt;
! Leste supported&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux&lt;br /&gt;
|-&lt;br /&gt;
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]&lt;br /&gt;
|-&lt;br /&gt;
| Charging || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Wireless || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Ethernet || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| Micro USB || Yes || OTG and USB network&lt;br /&gt;
|-&lt;br /&gt;
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)&lt;br /&gt;
|-&lt;br /&gt;
| Screen || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/&lt;br /&gt;
|-&lt;br /&gt;
| Touchscreen || Yes || Capacitive&lt;br /&gt;
|-&lt;br /&gt;
| Audio || Yes || Implemented with Pulseaudio and UCM files&lt;br /&gt;
|-&lt;br /&gt;
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/&lt;br /&gt;
|-&lt;br /&gt;
| 4G data || No || Needs kernel work&lt;br /&gt;
|-&lt;br /&gt;
| SMS || Yes || Works with ofono. Needs Leste UI&lt;br /&gt;
|-&lt;br /&gt;
| Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI&lt;br /&gt;
|-&lt;br /&gt;
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded&lt;br /&gt;
|-&lt;br /&gt;
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers&lt;br /&gt;
|-&lt;br /&gt;
| FM Receiver || Not yet ||&lt;br /&gt;
|-&lt;br /&gt;
| Accelerometer || Yes || Available in /sys, and as input device via iio-uinput&lt;br /&gt;
|-&lt;br /&gt;
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet)&lt;br /&gt;
|-&lt;br /&gt;
| Gyro || N/A || &lt;br /&gt;
|-&lt;br /&gt;
| Proximity sensor || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Ambient Light Sensor || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Vibration Motor || Yes || &lt;br /&gt;
|-&lt;br /&gt;
| HDMI-out || Yes || No UI integration&lt;br /&gt;
|-&lt;br /&gt;
| TV-out || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]&lt;br /&gt;
|-&lt;br /&gt;
| Infrared || N/A || Missing in hardware&lt;br /&gt;
|-&lt;br /&gt;
| Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/&lt;br /&gt;
|-&lt;br /&gt;
| Idle power consumption || ~120mW || Needs sim inserted&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Device]]&lt;/div&gt;</summary>
		<author><name>BuZz</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Development&amp;diff=1284</id>
		<title>Development</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Development&amp;diff=1284"/>
		<updated>2022-04-28T19:35:13Z</updated>

		<summary type="html">&lt;p&gt;BuZz: /* Developing on a device */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Maemo Leste development is split up in a few different places.&lt;br /&gt;
&lt;br /&gt;
== Communication and organising ==&lt;br /&gt;
&lt;br /&gt;
* Our https://maemo-leste.github.io website is where we post (news) updates, as well as on talk.maemo.org (see this subforum https://talk.maemo.org/forumdisplay.php?f=66 and this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192)&lt;br /&gt;
* There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker&lt;br /&gt;
* The day-to-day development and user chatter mostly takes place in the [[IRC channel]]&lt;br /&gt;
* We also have a mailing list, at [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html]&lt;br /&gt;
* This wiki: for documenting the status of various long-running projects, status per device, etc.&lt;br /&gt;
&lt;br /&gt;
== Task Summary ==&lt;br /&gt;
&lt;br /&gt;
For current (semi) impactful tasks, see&lt;br /&gt;
&lt;br /&gt;
[[Development/Tasks]]&lt;br /&gt;
&lt;br /&gt;
== Codename ==&lt;br /&gt;
&lt;br /&gt;
* Maemo Leste is currently based on Devuan Beowulf, which is based on Debian Buster.&lt;br /&gt;
&lt;br /&gt;
== Guides ==&lt;br /&gt;
&lt;br /&gt;
* [[Development/Porting Packages]]&lt;br /&gt;
* [[Development/Building Packages]]&lt;br /&gt;
* [[Development/Modified Software]]&lt;br /&gt;
* [[Development/Device Bringup]]&lt;br /&gt;
* https://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide&lt;br /&gt;
&lt;br /&gt;
== Technical ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All our git repositories can be found here: https://github.com/maemo-leste&lt;br /&gt;
&lt;br /&gt;
=== Jenkins ===&lt;br /&gt;
&lt;br /&gt;
To aid development and provide &amp;quot;continous integration&amp;quot; we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/&lt;br /&gt;
&lt;br /&gt;
=== Developing on a device ===&lt;br /&gt;
&lt;br /&gt;
All development software and tests end up in &#039;beowulf-devel&#039; apt source. For enabling this edit &#039;/etc/apt/sources.list&#039; and add this line: &lt;br /&gt;
 deb https://maedevu.maemo.org/leste beowulf-devel main contrib non-free droid4&lt;br /&gt;
&lt;br /&gt;
Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle developers, this might sound weird, but there is essentially no need for a &#039;scratchbox&#039; type VM)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]].&lt;br /&gt;
&lt;br /&gt;
=== Building a Maemo Leste image ===&lt;br /&gt;
&lt;br /&gt;
See https://leste.maemo.org/Image_Builder&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== List of Programs/Daemon specific to Maemo ===&lt;br /&gt;
&lt;br /&gt;
https://leste.maemo.org/Development/Daemons&lt;br /&gt;
&lt;br /&gt;
=== Crossbuilding ===&lt;br /&gt;
&lt;br /&gt;
Multiarch is an ability present on modern Debian systems that allows you to build native packages for different architectures. This is nice because you can build packages for an ARM based phone using the full power of your x86 based PC/Mac/Notebook or a server.&lt;br /&gt;
&lt;br /&gt;
Here we show how you can easily setup a multiarch environment and build a native package for Maemo Leste running on Nokia N900. We are going to make a container (chroot) for this job. It&#039;s because we don&#039;t want to pollute our main system.&lt;br /&gt;
&lt;br /&gt;
 # Make a container for our development system&lt;br /&gt;
 DIR=/var/lib/container/stretch&lt;br /&gt;
 sudo apt-get install qemu-user-static debootstrap systemd-container &amp;amp;&amp;amp;&lt;br /&gt;
 sudo debootstrap --arch=armhf stretch $DIR http://deb.debian.org/debian &amp;amp;&amp;amp;&lt;br /&gt;
 echo &amp;quot;strech_cross&amp;quot; | sudo tee $DIR/etc/debian_chroot &amp;amp;&amp;amp;&lt;br /&gt;
 sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR&lt;br /&gt;
 &lt;br /&gt;
 # Setup build environment inside the container&lt;br /&gt;
 cat &amp;gt;&amp;gt; ~/.bashrc &amp;lt;&amp;lt; EOF &amp;amp;&amp;amp;&lt;br /&gt;
 export PKG_CONFIG_PATH=/usr/lib/pkgconfig&lt;br /&gt;
 export CC=arm-linux-gnueabihf-gcc&lt;br /&gt;
 export JOBS=$(grep processor /proc/cpuinfo | wc -l)&lt;br /&gt;
 EOF&lt;br /&gt;
 dpkg --add-architecture armhf &amp;amp;&amp;amp;&lt;br /&gt;
 apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates &amp;amp;&amp;amp;&lt;br /&gt;
 cat &amp;gt;&amp;gt; /etc/apt/sources.list &amp;lt;&amp;lt; &amp;quot;EOF&amp;quot; &amp;amp;&amp;amp;&lt;br /&gt;
 deb http://maedevu.maemo.org/leste ascii main contrib non-free n900&lt;br /&gt;
 deb http://maedevu.maemo.org/leste ascii-devel main contrib non-free n900&lt;br /&gt;
 &lt;br /&gt;
 deb-src http://deb.debian.org/debian stretch main&lt;br /&gt;
 deb-src http://maedevu.maemo.org/leste ascii main contrib non-free n900&lt;br /&gt;
 deb-src http://maedevu.maemo.org/leste ascii-devel main contrib non-free n900&lt;br /&gt;
 EOF&lt;br /&gt;
 wget --no-check-certificate https://maedevu.maemo.org/testing-key.asc &amp;amp;&amp;amp;&lt;br /&gt;
 apt-key add testing-key.asc &amp;amp;&amp;amp;&lt;br /&gt;
 rm -f testing-key.asc &amp;amp;&amp;amp;&lt;br /&gt;
 rm -f /var/cache/apt/archives/*.deb &amp;amp;&amp;amp;&lt;br /&gt;
 apt-get update &amp;amp;&amp;amp;&lt;br /&gt;
 exec bash&lt;br /&gt;
 &lt;br /&gt;
 # Build Xorg for Nokia N900&lt;br /&gt;
 apt-get source xserver-xorg-core &amp;amp;&amp;amp;&lt;br /&gt;
 cd xorg-server-1.19.2 &amp;amp;&amp;amp;&lt;br /&gt;
 wget https://raw.githubusercontent.com/buildroot/buildroot/88e0f214dcb7c2a99a4425a70673d2aa5f48d720/package/x11r7/xserver_xorg-server/1.20.4/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch &amp;amp;&amp;amp;&lt;br /&gt;
 mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches &amp;amp;&amp;amp;&lt;br /&gt;
 echo -e &amp;quot;# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch&amp;quot; &amp;gt;&amp;gt; debian/patches/series &amp;amp;&amp;amp;&lt;br /&gt;
 apt-get -y build-dep -a armhf . &amp;amp;&amp;amp;&lt;br /&gt;
 time dpkg-buildpackage -aarmhf -j$JOBS -b &amp;amp;&amp;amp;&lt;br /&gt;
 echo OK || echo FAIL&lt;br /&gt;
&lt;br /&gt;
To login the container later:&lt;br /&gt;
 sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch&lt;br /&gt;
&lt;br /&gt;
To remove the container:&lt;br /&gt;
 sudo rm -fr /var/lib/container/stretch&lt;br /&gt;
&lt;br /&gt;
=== Cross-distro solution for development inside an ARM/ARM64 chroot on a PC ===&lt;br /&gt;
&lt;br /&gt;
It&#039;s possible to set up an emulated chroot development environment for ARM on x86/amd64 that will work on almost any Linux distro with just a few simple steps.  This will work for systemd-less distros including Devuan and even Maemo Leste on x86/amd64.  This guide provides an example for how to set up a generic ARM64 development chroot on a Debian-based distro.  This method can similarly be used with images (tarballs) for other devices.&lt;br /&gt;
&lt;br /&gt;
1. Install the QEMU full system emulation static binaries and [http://binfmt-support.nongnu.org/ support for foreign binaries]:&lt;br /&gt;
&lt;br /&gt;
 $ sudo apt-get install qemu-user-static binfmt-support&lt;br /&gt;
&lt;br /&gt;
The installation should register ARM binaries for automatic execution via QEMU.  You can verify this with &#039;&#039;&#039;update-binfmts&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 $ sudo update-binfmts --display qemu-arm&lt;br /&gt;
 qemu-arm (enabled):&lt;br /&gt;
      package = qemu-user-static&lt;br /&gt;
         type = magic&lt;br /&gt;
       offset = 0&lt;br /&gt;
        magic = \x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00&lt;br /&gt;
         mask = \xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff&lt;br /&gt;
  interpreter = /usr/bin/qemu-arm-static&lt;br /&gt;
     detector =&lt;br /&gt;
&lt;br /&gt;
2. Find the [http://maedevu.maemo.org/images/arm64-generic/ latest] Maemo Leste ARM64 tarball and download and extract it:&lt;br /&gt;
&lt;br /&gt;
 $ mkdir leste-arm64&lt;br /&gt;
 $ cd leste-arm64&lt;br /&gt;
 $ curl http://maedevu.maemo.org/images/arm64-generic/20190226/maemo-leste-1.0-arm64-generic-20190226.tar.gz | gunzip -c | sudo tar xvf -&lt;br /&gt;
&lt;br /&gt;
3. From the same directory, configure the chroot with a few resources from your host system:&lt;br /&gt;
&lt;br /&gt;
 $ sudo mount -t proc proc proc&lt;br /&gt;
 $ sudo mount -o bind /dev dev&lt;br /&gt;
 $ sudo mount -o bind /dev/pts dev/pts&lt;br /&gt;
&lt;br /&gt;
4. From the same directory, create a symlink for the mount table:&lt;br /&gt;
&lt;br /&gt;
 $ sudo ln -s /proc/mounts etc/mtab&lt;br /&gt;
&lt;br /&gt;
5. From the same directory, set the locale, enter the chroot and switch to the unprivileged user:&lt;br /&gt;
&lt;br /&gt;
 $ sudo LC_ALL=C chroot . /bin/su - user&lt;br /&gt;
&lt;br /&gt;
You&#039;ll now be ready to use your Maemo Leste ARM64 development environment:&lt;br /&gt;
&lt;br /&gt;
 $ uname -m&lt;br /&gt;
 aarch64&lt;br /&gt;
&lt;br /&gt;
Once you have finished with it, you can exit and unmount the resources you previously mounted:&lt;br /&gt;
&lt;br /&gt;
 $ exit&lt;br /&gt;
 $ sudo umount dev/pts dev proc&lt;br /&gt;
&lt;br /&gt;
=== Localization ===&lt;br /&gt;
&lt;br /&gt;
See [[Localization]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== TODO ===&lt;br /&gt;
&lt;br /&gt;
* Discuss where people look to pick up issues (clear answer is the bugtracker, but still)&lt;br /&gt;
* How people can make changes and how to send them in&lt;/div&gt;</summary>
		<author><name>BuZz</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Development&amp;diff=1283</id>
		<title>Development</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Development&amp;diff=1283"/>
		<updated>2022-04-28T15:44:14Z</updated>

		<summary type="html">&lt;p&gt;BuZz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Maemo Leste development is split up in a few different places.&lt;br /&gt;
&lt;br /&gt;
== Communication and organising ==&lt;br /&gt;
&lt;br /&gt;
* Our https://maemo-leste.github.io website is where we post (news) updates, as well as on talk.maemo.org (see this subforum https://talk.maemo.org/forumdisplay.php?f=66 and this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192)&lt;br /&gt;
* There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker&lt;br /&gt;
* The day-to-day development and user chatter mostly takes place in the [[IRC channel]]&lt;br /&gt;
* We also have a mailing list, at [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html]&lt;br /&gt;
* This wiki: for documenting the status of various long-running projects, status per device, etc.&lt;br /&gt;
&lt;br /&gt;
== Task Summary ==&lt;br /&gt;
&lt;br /&gt;
For current (semi) impactful tasks, see&lt;br /&gt;
&lt;br /&gt;
[[Development/Tasks]]&lt;br /&gt;
&lt;br /&gt;
== Codename ==&lt;br /&gt;
&lt;br /&gt;
* Maemo Leste is currently based on Devuan Beowulf, which is based on Debian Buster.&lt;br /&gt;
&lt;br /&gt;
== Guides ==&lt;br /&gt;
&lt;br /&gt;
* [[Development/Porting Packages]]&lt;br /&gt;
* [[Development/Building Packages]]&lt;br /&gt;
* [[Development/Modified Software]]&lt;br /&gt;
* [[Development/Device Bringup]]&lt;br /&gt;
* https://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide&lt;br /&gt;
&lt;br /&gt;
== Technical ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All our git repositories can be found here: https://github.com/maemo-leste&lt;br /&gt;
&lt;br /&gt;
=== Jenkins ===&lt;br /&gt;
&lt;br /&gt;
To aid development and provide &amp;quot;continous integration&amp;quot; we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/&lt;br /&gt;
&lt;br /&gt;
=== Developing on a device ===&lt;br /&gt;
&lt;br /&gt;
All development software and tests end up in &#039;beowulf-devel&#039; apt source. For enabling this edit &#039;/etc/apt/sources.list&#039; and change the last line to: &lt;br /&gt;
 deb https://maedevu.maemo.org/leste beowulf-devel main contrib non-free droid4&lt;br /&gt;
&lt;br /&gt;
Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle developers, this might sound weird, but there is essentially no need for a &#039;scratchbox&#039; type VM)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]].&lt;br /&gt;
&lt;br /&gt;
=== Building a Maemo Leste image ===&lt;br /&gt;
&lt;br /&gt;
See https://leste.maemo.org/Image_Builder&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== List of Programs/Daemon specific to Maemo ===&lt;br /&gt;
&lt;br /&gt;
https://leste.maemo.org/Development/Daemons&lt;br /&gt;
&lt;br /&gt;
=== Crossbuilding ===&lt;br /&gt;
&lt;br /&gt;
Multiarch is an ability present on modern Debian systems that allows you to build native packages for different architectures. This is nice because you can build packages for an ARM based phone using the full power of your x86 based PC/Mac/Notebook or a server.&lt;br /&gt;
&lt;br /&gt;
Here we show how you can easily setup a multiarch environment and build a native package for Maemo Leste running on Nokia N900. We are going to make a container (chroot) for this job. It&#039;s because we don&#039;t want to pollute our main system.&lt;br /&gt;
&lt;br /&gt;
 # Make a container for our development system&lt;br /&gt;
 DIR=/var/lib/container/stretch&lt;br /&gt;
 sudo apt-get install qemu-user-static debootstrap systemd-container &amp;amp;&amp;amp;&lt;br /&gt;
 sudo debootstrap --arch=armhf stretch $DIR http://deb.debian.org/debian &amp;amp;&amp;amp;&lt;br /&gt;
 echo &amp;quot;strech_cross&amp;quot; | sudo tee $DIR/etc/debian_chroot &amp;amp;&amp;amp;&lt;br /&gt;
 sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR&lt;br /&gt;
 &lt;br /&gt;
 # Setup build environment inside the container&lt;br /&gt;
 cat &amp;gt;&amp;gt; ~/.bashrc &amp;lt;&amp;lt; EOF &amp;amp;&amp;amp;&lt;br /&gt;
 export PKG_CONFIG_PATH=/usr/lib/pkgconfig&lt;br /&gt;
 export CC=arm-linux-gnueabihf-gcc&lt;br /&gt;
 export JOBS=$(grep processor /proc/cpuinfo | wc -l)&lt;br /&gt;
 EOF&lt;br /&gt;
 dpkg --add-architecture armhf &amp;amp;&amp;amp;&lt;br /&gt;
 apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates &amp;amp;&amp;amp;&lt;br /&gt;
 cat &amp;gt;&amp;gt; /etc/apt/sources.list &amp;lt;&amp;lt; &amp;quot;EOF&amp;quot; &amp;amp;&amp;amp;&lt;br /&gt;
 deb http://maedevu.maemo.org/leste ascii main contrib non-free n900&lt;br /&gt;
 deb http://maedevu.maemo.org/leste ascii-devel main contrib non-free n900&lt;br /&gt;
 &lt;br /&gt;
 deb-src http://deb.debian.org/debian stretch main&lt;br /&gt;
 deb-src http://maedevu.maemo.org/leste ascii main contrib non-free n900&lt;br /&gt;
 deb-src http://maedevu.maemo.org/leste ascii-devel main contrib non-free n900&lt;br /&gt;
 EOF&lt;br /&gt;
 wget --no-check-certificate https://maedevu.maemo.org/testing-key.asc &amp;amp;&amp;amp;&lt;br /&gt;
 apt-key add testing-key.asc &amp;amp;&amp;amp;&lt;br /&gt;
 rm -f testing-key.asc &amp;amp;&amp;amp;&lt;br /&gt;
 rm -f /var/cache/apt/archives/*.deb &amp;amp;&amp;amp;&lt;br /&gt;
 apt-get update &amp;amp;&amp;amp;&lt;br /&gt;
 exec bash&lt;br /&gt;
 &lt;br /&gt;
 # Build Xorg for Nokia N900&lt;br /&gt;
 apt-get source xserver-xorg-core &amp;amp;&amp;amp;&lt;br /&gt;
 cd xorg-server-1.19.2 &amp;amp;&amp;amp;&lt;br /&gt;
 wget https://raw.githubusercontent.com/buildroot/buildroot/88e0f214dcb7c2a99a4425a70673d2aa5f48d720/package/x11r7/xserver_xorg-server/1.20.4/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch &amp;amp;&amp;amp;&lt;br /&gt;
 mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches &amp;amp;&amp;amp;&lt;br /&gt;
 echo -e &amp;quot;# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch&amp;quot; &amp;gt;&amp;gt; debian/patches/series &amp;amp;&amp;amp;&lt;br /&gt;
 apt-get -y build-dep -a armhf . &amp;amp;&amp;amp;&lt;br /&gt;
 time dpkg-buildpackage -aarmhf -j$JOBS -b &amp;amp;&amp;amp;&lt;br /&gt;
 echo OK || echo FAIL&lt;br /&gt;
&lt;br /&gt;
To login the container later:&lt;br /&gt;
 sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch&lt;br /&gt;
&lt;br /&gt;
To remove the container:&lt;br /&gt;
 sudo rm -fr /var/lib/container/stretch&lt;br /&gt;
&lt;br /&gt;
=== Cross-distro solution for development inside an ARM/ARM64 chroot on a PC ===&lt;br /&gt;
&lt;br /&gt;
It&#039;s possible to set up an emulated chroot development environment for ARM on x86/amd64 that will work on almost any Linux distro with just a few simple steps.  This will work for systemd-less distros including Devuan and even Maemo Leste on x86/amd64.  This guide provides an example for how to set up a generic ARM64 development chroot on a Debian-based distro.  This method can similarly be used with images (tarballs) for other devices.&lt;br /&gt;
&lt;br /&gt;
1. Install the QEMU full system emulation static binaries and [http://binfmt-support.nongnu.org/ support for foreign binaries]:&lt;br /&gt;
&lt;br /&gt;
 $ sudo apt-get install qemu-user-static binfmt-support&lt;br /&gt;
&lt;br /&gt;
The installation should register ARM binaries for automatic execution via QEMU.  You can verify this with &#039;&#039;&#039;update-binfmts&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 $ sudo update-binfmts --display qemu-arm&lt;br /&gt;
 qemu-arm (enabled):&lt;br /&gt;
      package = qemu-user-static&lt;br /&gt;
         type = magic&lt;br /&gt;
       offset = 0&lt;br /&gt;
        magic = \x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00&lt;br /&gt;
         mask = \xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff&lt;br /&gt;
  interpreter = /usr/bin/qemu-arm-static&lt;br /&gt;
     detector =&lt;br /&gt;
&lt;br /&gt;
2. Find the [http://maedevu.maemo.org/images/arm64-generic/ latest] Maemo Leste ARM64 tarball and download and extract it:&lt;br /&gt;
&lt;br /&gt;
 $ mkdir leste-arm64&lt;br /&gt;
 $ cd leste-arm64&lt;br /&gt;
 $ curl http://maedevu.maemo.org/images/arm64-generic/20190226/maemo-leste-1.0-arm64-generic-20190226.tar.gz | gunzip -c | sudo tar xvf -&lt;br /&gt;
&lt;br /&gt;
3. From the same directory, configure the chroot with a few resources from your host system:&lt;br /&gt;
&lt;br /&gt;
 $ sudo mount -t proc proc proc&lt;br /&gt;
 $ sudo mount -o bind /dev dev&lt;br /&gt;
 $ sudo mount -o bind /dev/pts dev/pts&lt;br /&gt;
&lt;br /&gt;
4. From the same directory, create a symlink for the mount table:&lt;br /&gt;
&lt;br /&gt;
 $ sudo ln -s /proc/mounts etc/mtab&lt;br /&gt;
&lt;br /&gt;
5. From the same directory, set the locale, enter the chroot and switch to the unprivileged user:&lt;br /&gt;
&lt;br /&gt;
 $ sudo LC_ALL=C chroot . /bin/su - user&lt;br /&gt;
&lt;br /&gt;
You&#039;ll now be ready to use your Maemo Leste ARM64 development environment:&lt;br /&gt;
&lt;br /&gt;
 $ uname -m&lt;br /&gt;
 aarch64&lt;br /&gt;
&lt;br /&gt;
Once you have finished with it, you can exit and unmount the resources you previously mounted:&lt;br /&gt;
&lt;br /&gt;
 $ exit&lt;br /&gt;
 $ sudo umount dev/pts dev proc&lt;br /&gt;
&lt;br /&gt;
=== Localization ===&lt;br /&gt;
&lt;br /&gt;
See [[Localization]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== TODO ===&lt;br /&gt;
&lt;br /&gt;
* Discuss where people look to pick up issues (clear answer is the bugtracker, but still)&lt;br /&gt;
* How people can make changes and how to send them in&lt;/div&gt;</summary>
		<author><name>BuZz</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Motorola_Droid_Bionic&amp;diff=1138</id>
		<title>Motorola Droid Bionic</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Motorola_Droid_Bionic&amp;diff=1138"/>
		<updated>2021-07-24T11:48:30Z</updated>

		<summary type="html">&lt;p&gt;BuZz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Device&lt;br /&gt;
|image=[[File:Bionic.jpg|250px]]&lt;br /&gt;
|manufacturer=Motorola&lt;br /&gt;
|codename=Targa XT875&lt;br /&gt;
|dimensions=127x67.3x12.7mm&lt;br /&gt;
|release_date=2011-09-8&lt;br /&gt;
|soc=TI OMAP4430&lt;br /&gt;
|dram=1024MB DDR2&lt;br /&gt;
|power=&lt;br /&gt;
|lcd=960x540 4.3&amp;quot;&lt;br /&gt;
|video=PowerVR SGX540 &lt;br /&gt;
|audio=&lt;br /&gt;
|network=&lt;br /&gt;
|storage=16GB flash&lt;br /&gt;
|usb=&lt;br /&gt;
|camera=&lt;br /&gt;
|sensors=AK8975 compass, Kionix KXTf9 accelerometer, St L3GD20H Gyro, ISL29030 proximity and illuminance, TMP105 temperature sensor&lt;br /&gt;
|other=&lt;br /&gt;
|category=Supported&lt;br /&gt;
|sw_kernel=5.10.4&lt;br /&gt;
|sw_serial=Yes, [[#Serial Cable|special cable]]&lt;br /&gt;
|sw_charging=Yes&lt;br /&gt;
|sw_usb_slave=Gadgets only&lt;br /&gt;
|sw_usb_host=No&lt;br /&gt;
|sw_touchscreen=Yes&lt;br /&gt;
|sw_keyboard=&lt;br /&gt;
|sw_screen=Yes&lt;br /&gt;
|sw_hdmi=Yes&lt;br /&gt;
|sw_tv=&lt;br /&gt;
|sw_3daccel=Yes, [[https://github.com/maemo-leste/pvr-omap4/|SGX540, closed driver|]]&lt;br /&gt;
|sw_vibration=Yes&lt;br /&gt;
|sw_audio=Yes&lt;br /&gt;
|sw_calls=untested&lt;br /&gt;
|sw_sms=Yes, no UI&lt;br /&gt;
|sw_wifi=Yes&lt;br /&gt;
|sw_ethernet=&lt;br /&gt;
|sw_irda=&lt;br /&gt;
|sw_2g3gdata=Yes&lt;br /&gt;
|sw_4g=No&lt;br /&gt;
|sw_bluetooth=Yes,  [[#Bluetooth|see notes]] &lt;br /&gt;
|sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers&lt;br /&gt;
|sw_fmrx=&lt;br /&gt;
|sw_nfc=&lt;br /&gt;
|sw_accelerometer=Yes&lt;br /&gt;
|sw_compass=Yes, no integration&lt;br /&gt;
|sw_gyro=No, needs kernel work&lt;br /&gt;
|sw_proximity=Yes&lt;br /&gt;
|sw_als=Yes&lt;br /&gt;
|sw_gps=Yes&lt;br /&gt;
|sw_agps=No, needs kernel/userspace work&lt;br /&gt;
|sw_frontcam=No&lt;br /&gt;
|sw_backcam=No&lt;br /&gt;
|sw_idlepower=70mW, needs sim inserted&lt;br /&gt;
|sw_standbytime=91.8h (with HW4X)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Hardware requirements:&lt;br /&gt;
&lt;br /&gt;
* Droid Bionic with fully charged battery&lt;br /&gt;
* MicroUSB cable&lt;br /&gt;
* MicroSD card&lt;br /&gt;
&lt;br /&gt;
Software requirements:&lt;br /&gt;
* Host Linux system&lt;br /&gt;
* Android Tools: fastboot adb&lt;br /&gt;
* Flashing tools:&lt;br /&gt;
** XZ Utils and coreutils for Linux&lt;br /&gt;
** Etcher[https://github.com/balena-io/etcher] for Windows&lt;br /&gt;
&lt;br /&gt;
Download from https://phoenix.maemo.org/view/Images/job/leste-image-bionic/&lt;br /&gt;
&lt;br /&gt;
# Latest maemo-leste-1.0-armhf-bionic-*.img.xz&lt;br /&gt;
&lt;br /&gt;
Download from https://github.com/tmlind/droid4-kexecboot.git&lt;br /&gt;
&lt;br /&gt;
# droid4-kexecboot.img&lt;br /&gt;
&lt;br /&gt;
Download or clone https://github.com/IMbackK/bionic-clown-boot&lt;br /&gt;
&lt;br /&gt;
Follow the instructions in bionic-clown-boot&#039;s readme to install kexecboot on your device.&lt;br /&gt;
&lt;br /&gt;
Now, flash the Maemo Leste image to your sdcard:&lt;br /&gt;
&lt;br /&gt;
On Linux:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE&lt;br /&gt;
sync&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wait for sync to complete and insert MicroSD card into The Bionic. Reboot the device and select Maemo Leste from the kexecboot menu.&lt;br /&gt;
&lt;br /&gt;
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.&lt;br /&gt;
Blacklisting the module may help if you have such problems:&lt;br /&gt;
 echo &amp;quot;blacklist hci_uart&amp;quot; &amp;gt;&amp;gt; /etc/modprobe.d/blacklist.conf&lt;br /&gt;
&lt;br /&gt;
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]&lt;br /&gt;
&lt;br /&gt;
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/&lt;br /&gt;
&lt;br /&gt;
== Serial Cable ==&lt;br /&gt;
&lt;br /&gt;
As explained at http://muru.com/linux/d4 , the Droid 4 and Bionic both expose a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Bionic, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/&lt;br /&gt;
&lt;br /&gt;
== Bluetooth ==&lt;br /&gt;
&lt;br /&gt;
Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded&lt;br /&gt;
&lt;br /&gt;
== Unlocking the modem for usage in Europe ==&lt;br /&gt;
&lt;br /&gt;
Tony suggested these values, Wizzup confirmed it to work on his Bionic in Europe/Amsterdam.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install build-essential&lt;br /&gt;
git clone https://github.com/tmlind/tcmdrw&lt;br /&gt;
cd tcmdrw&lt;br /&gt;
make&lt;br /&gt;
./tcmdrw 1877=8703E80400000200&lt;br /&gt;
./tcmdrw 6850=05&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tony also writes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
22:34 &amp;lt; tmlind&amp;gt; hmm so i had to do this for 3g gain: tcmdrw 1143=aaff0000, got that value from xt910 firmware i think, otherwise 3g signal was weak&lt;br /&gt;
22:43 &amp;lt; tmlind&amp;gt; Wizzup: great, the 1143 setting is for 1900 frequency only to get decent signal on t-mo in the us&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
22:37 &amp;lt; tmlind&amp;gt; i also had to do tcmdrw 6850=05 for 3g voice to work properly&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Stuff to try ==&lt;br /&gt;
&lt;br /&gt;
==== 3G Internet ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
22:12 &amp;lt; pave1&amp;gt; qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz&lt;br /&gt;
22:12 &amp;lt; pave1&amp;gt; route del default&lt;br /&gt;
22:12 &amp;lt; pave1&amp;gt; sudo ifconfig wwan0 up&lt;br /&gt;
22:12 &amp;lt; pave1&amp;gt; dhclient wwan0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== GPS ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
modprobe gnss-motmdm and point gpsd to use /dev/gnss0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
22:30 &amp;lt; tmlind&amp;gt; hmm there&#039;s a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)&lt;br /&gt;
&lt;br /&gt;
Can try to &amp;lt;pre&amp;gt;&lt;br /&gt;
mkfifo /tmp/gps&lt;br /&gt;
cat /dev/gnss0 &amp;gt; /tmp/gps&lt;br /&gt;
Then point gpsd to use /tmp/gps&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== USSD ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
22:45 &amp;lt; tmlind&amp;gt; fyi, here&#039;s how to send USSD to query balance for example: printf &amp;quot;AT+CUSD=1,#999#,0\r&amp;quot; &amp;gt; /dev/motmdm1&lt;br /&gt;
22:47 &amp;lt; tmlind&amp;gt; fyi, for parsing incoming USSD, this web interface works if set to utf-8: &lt;br /&gt;
                https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Old status table ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Feature&lt;br /&gt;
! Leste supported&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Kernel version || 5.10.4 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux&lt;br /&gt;
|-&lt;br /&gt;
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]&lt;br /&gt;
|-&lt;br /&gt;
| Charging || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| USB slave || Yes || &lt;br /&gt;
|-&lt;br /&gt;
| USB host (OTG) || No || &lt;br /&gt;
|-&lt;br /&gt;
| Touchscreen || Yes || Capacitive&lt;br /&gt;
|-&lt;br /&gt;
| Keyboard || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| Screen || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| HDMI-out || Yes || No UI integration&lt;br /&gt;
|-&lt;br /&gt;
| TV-out || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/&lt;br /&gt;
|-&lt;br /&gt;
| Vibration Motor || Yes || &lt;br /&gt;
|-&lt;br /&gt;
| Audio || Yes || Switch around in alsamixer to get the right outputs working (&#039;Speaker Right&#039; set to &#039;HiFi&#039; and &#039;HiFi&#039; set to above 0 gets you output)&lt;br /&gt;
|-&lt;br /&gt;
| Phone calls || WIP || Untested&lt;br /&gt;
|-&lt;br /&gt;
| SMS || Yes || Works with ofono. Needs Leste UI&lt;br /&gt;
|-&lt;br /&gt;
| Wifi || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Ethernet || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| IrDA || N/A || Missing in hardware&lt;br /&gt;
|-&lt;br /&gt;
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/&lt;br /&gt;
|-&lt;br /&gt;
| 4G data || No || Needs kernel work&lt;br /&gt;
|-&lt;br /&gt;
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded&lt;br /&gt;
|-&lt;br /&gt;
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers&lt;br /&gt;
|-&lt;br /&gt;
| FM Receiver || No ||&lt;br /&gt;
|-&lt;br /&gt;
| Nfc || No || no hardware&lt;br /&gt;
|-&lt;br /&gt;
| Accelerometer || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration)&lt;br /&gt;
|-&lt;br /&gt;
| Gyro || No || needs kernel work&lt;br /&gt;
|-&lt;br /&gt;
| Proximity sensor || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Ambient Light Sensor || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]&lt;br /&gt;
|-&lt;br /&gt;
| AGPS || No ||&lt;br /&gt;
|-&lt;br /&gt;
| Front Camera || No || &lt;br /&gt;
|-&lt;br /&gt;
| Back Camera(s) || No || &lt;br /&gt;
|-&lt;br /&gt;
| Idle power consumption || ~70 mW || Needs sim inserted&lt;br /&gt;
|-&lt;br /&gt;
| Idle Battery life on new battery || 91.8 h || With HW4X&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Device]]&lt;/div&gt;</summary>
		<author><name>BuZz</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Motorola_Droid_4&amp;diff=1137</id>
		<title>Motorola Droid 4</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Motorola_Droid_4&amp;diff=1137"/>
		<updated>2021-07-24T11:46:47Z</updated>

		<summary type="html">&lt;p&gt;BuZz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Device&lt;br /&gt;
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]&lt;br /&gt;
|manufacturer=Motorola&lt;br /&gt;
|codename=Maserati XT894&lt;br /&gt;
|dimensions=127x67.3x12.7mm&lt;br /&gt;
|release_date=2012-02-10&lt;br /&gt;
|soc=TI OMAP4430&lt;br /&gt;
|dram=1024MB DDR2&lt;br /&gt;
|power=&lt;br /&gt;
|lcd=960x540 4&amp;quot;&lt;br /&gt;
|video=PowerVR SGX540 &lt;br /&gt;
|audio=&lt;br /&gt;
|network=&lt;br /&gt;
|storage=16GB flash&lt;br /&gt;
|usb=&lt;br /&gt;
|camera=&lt;br /&gt;
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor&lt;br /&gt;
|other=&lt;br /&gt;
|category=Supported&lt;br /&gt;
|sw_kernel=5.11.0&lt;br /&gt;
|sw_serial=Yes, [[#Serial Cable|special cable]]&lt;br /&gt;
|sw_charging=Yes&lt;br /&gt;
|sw_usb_slave=Yes&lt;br /&gt;
|sw_usb_host=Yes&lt;br /&gt;
|sw_touchscreen=Yes&lt;br /&gt;
|sw_keyboard=Yes&lt;br /&gt;
|sw_screen=Yes&lt;br /&gt;
|sw_hdmi=Yes&lt;br /&gt;
|sw_tv=&lt;br /&gt;
|sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed)&lt;br /&gt;
|sw_vibration=Yes&lt;br /&gt;
|sw_audio=Yes&lt;br /&gt;
|sw_calls=WIP&lt;br /&gt;
|sw_sms=Yes, no UI&lt;br /&gt;
|sw_wifi=Yes&lt;br /&gt;
|sw_ethernet=&lt;br /&gt;
|sw_irda=&lt;br /&gt;
|sw_2g3gdata=Yes&lt;br /&gt;
|sw_4g=No&lt;br /&gt;
|sw_bluetooth=Yes,  [[#Bluetooth|see notes]] &lt;br /&gt;
|sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers&lt;br /&gt;
|sw_fmrx=&lt;br /&gt;
|sw_nfc=&lt;br /&gt;
|sw_accelerometer=Yes&lt;br /&gt;
|sw_compass=Yes, no integration&lt;br /&gt;
|sw_gyro=&lt;br /&gt;
|sw_proximity=Yes&lt;br /&gt;
|sw_als=Yes&lt;br /&gt;
|sw_gps=Yes&lt;br /&gt;
|sw_agps=No&lt;br /&gt;
|sw_frontcam=No&lt;br /&gt;
|sw_backcam=No&lt;br /&gt;
|sw_idlepower=120mW&lt;br /&gt;
|sw_standbytime=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Hardware requirements:&lt;br /&gt;
&lt;br /&gt;
* Droid4 with fully charged battery&lt;br /&gt;
* MicroUSB cable&lt;br /&gt;
* MicroSD card&lt;br /&gt;
&lt;br /&gt;
Software requirements:&lt;br /&gt;
* Host Linux or Windows system&lt;br /&gt;
* Android Tools: fastboot&lt;br /&gt;
* Flashing tools:&lt;br /&gt;
** XZ Utils and coreutils for Linux&lt;br /&gt;
** Etcher[https://github.com/balena-io/etcher] for Windows&lt;br /&gt;
&lt;br /&gt;
Download from https://maedevu.maemo.org/images/droid4/&lt;br /&gt;
&lt;br /&gt;
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip&lt;br /&gt;
# flash-droid-4-fw.sh&lt;br /&gt;
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz&lt;br /&gt;
&lt;br /&gt;
Download from https://github.com/tmlind/droid4-kexecboot.git&lt;br /&gt;
&lt;br /&gt;
# utags-mmcblk1p13.bin&lt;br /&gt;
# droid4-kexecboot.img&lt;br /&gt;
&lt;br /&gt;
Check what kernel version your Android OS runs.&lt;br /&gt;
For this go to Settings -&amp;gt; About phone. Slide to the bottom, where you can see &amp;quot;Kernel version&amp;quot;.&lt;br /&gt;
If you have at least 3.0.8, you may skip &amp;quot;Updating Android&amp;quot; step below.&lt;br /&gt;
&lt;br /&gt;
Installation:&lt;br /&gt;
&lt;br /&gt;
# Create a working directory with above mentioned files in it&lt;br /&gt;
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip&lt;br /&gt;
# Power off Droid4 and connect it to the host machine with MicroUSB cable&lt;br /&gt;
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.&lt;br /&gt;
&lt;br /&gt;
=== Updating Android ===&lt;br /&gt;
&lt;br /&gt;
This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml&lt;br /&gt;
sudo bash ../flash-droid-4-fw.sh&lt;br /&gt;
popd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Setting up kexecboot ===&lt;br /&gt;
&lt;br /&gt;
Now, assuming you are in the working directory, install kexecboot:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin&lt;br /&gt;
sudo fastboot reboot-bootloader&lt;br /&gt;
sudo fastboot flash bpsw droid4-kexecboot.img&lt;br /&gt;
sudo fastboot flash utags utags-mmcblk1p13.bin&lt;br /&gt;
sudo fastboot reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you did &amp;quot;Updating Android&amp;quot; the device should run the firstboot steps.&lt;br /&gt;
If you didn&#039;t, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.&lt;br /&gt;
&lt;br /&gt;
=== Install Maemo Leste to the sdcard ===&lt;br /&gt;
&lt;br /&gt;
Now, flash the Maemo Leste image to your sdcard:&lt;br /&gt;
&lt;br /&gt;
On Linux:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE&lt;br /&gt;
sync&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Windows: Use Etcher&lt;br /&gt;
&lt;br /&gt;
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.&lt;br /&gt;
&lt;br /&gt;
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.&lt;br /&gt;
&lt;br /&gt;
== Updating ==&lt;br /&gt;
&lt;br /&gt;
Normally you can just apt update &amp;amp;&amp;amp; apt dist-upgrade to update to the latest version. If for some reason this fails:&lt;br /&gt;
&lt;br /&gt;
* Poweroff device, grab the SD card&lt;br /&gt;
* Backup any important files&lt;br /&gt;
* Grab the latest image from https://phoenix.maemo.org/view/Images/&lt;br /&gt;
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.&lt;br /&gt;
&lt;br /&gt;
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.&lt;br /&gt;
&lt;br /&gt;
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.&lt;br /&gt;
Blacklisting the module may help if you have such problems:&lt;br /&gt;
 echo &amp;quot;blacklist hci_uart&amp;quot; &amp;gt;&amp;gt; /etc/modprobe.d/blacklist.conf&lt;br /&gt;
&lt;br /&gt;
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]&lt;br /&gt;
&lt;br /&gt;
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/&lt;br /&gt;
&lt;br /&gt;
== Serial Cable ==&lt;br /&gt;
&lt;br /&gt;
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/&lt;br /&gt;
&lt;br /&gt;
While using the serial cable, if you lose the connection, the following may help:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
18:43 &amp;lt; tmlind&amp;gt; sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with &lt;br /&gt;
                the console login propt later&lt;br /&gt;
18:45 &amp;lt; tmlind&amp;gt; try plugging in a pc usb cable then back to uart cable in case that might help&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Bluetooth ==&lt;br /&gt;
&lt;br /&gt;
Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Stuff to try ==&lt;br /&gt;
&lt;br /&gt;
==== Blinkenlights ====&lt;br /&gt;
Adding this in rc.local above the &#039;&#039;exit 0&#039;&#039; gets you some blinkenlights to watschen und relaxen.&lt;br /&gt;
 echo cpu &amp;gt; /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight&lt;br /&gt;
 echo mmc0 &amp;gt; /sys/class/leds/shift-key-light/trigger      # gets you a &#039;hdd led&#039; of the SD card on the capslock light&lt;br /&gt;
&lt;br /&gt;
==== Wifi ====&lt;br /&gt;
&lt;br /&gt;
The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.&lt;br /&gt;
&lt;br /&gt;
Install necessary tools: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install ti-utils-wilink6 droid4-wlanconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Run calibration:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo maserati-calibrate&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Phone Call ====&lt;br /&gt;
&lt;br /&gt;
Make sure there is a SIM in the phone.&lt;br /&gt;
&lt;br /&gt;
Run this:&lt;br /&gt;
&lt;br /&gt;
Read modem output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat /dev/motmdm1 &amp;amp;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Online modem:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
printf &amp;quot;AT+CFUN=1\r&amp;quot; &amp;gt; /dev/motmdm1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Connect to network:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
printf &amp;quot;AT+COPS=1\r&amp;quot; &amp;gt; /dev/motmdm1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Print connected network:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
printf &amp;quot;AT+COPS?\r&amp;quot; &amp;gt; /dev/motmdm1&lt;br /&gt;
&lt;br /&gt;
Turn off signal reporting:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# printf &amp;quot;AT+SCRN=0\r&amp;quot; &amp;gt; /dev/motmdm1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dial a number:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
printf &amp;quot;ATD+1234567890\r&amp;quot; &amp;gt; /dev/motmdm1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hang up:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
printf &amp;quot;ATH\r&amp;quot; &amp;gt; /dev/motmdm1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Answer incoming call:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
printf &amp;quot;ATA\r&amp;quot; &amp;gt; /dev/motmdm1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Audio wise, in a pulsaudio of you choice switch to the make a phone call profile, and set the output device as desired.&lt;br /&gt;
&lt;br /&gt;
==== 3G Internet ====&lt;br /&gt;
&lt;br /&gt;
Using qmicli:&lt;br /&gt;
&lt;br /&gt;
 qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz&lt;br /&gt;
 route del default&lt;br /&gt;
 sudo ifconfig wwan0 up&lt;br /&gt;
 dhclient wwan0&lt;br /&gt;
&lt;br /&gt;
Alternatively if updated to devel icd2 and the maemo gui should allow 3g data connection, if the sim is unlocked and the relevant packages are installed.&lt;br /&gt;
&lt;br /&gt;
==== GPS ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
modprobe gnss-motmdm and point gpsd to use /dev/gnss0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
22:30 &amp;lt; tmlind&amp;gt; hmm there&#039;s a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)&lt;br /&gt;
&lt;br /&gt;
Can try to &amp;lt;pre&amp;gt;&lt;br /&gt;
mkfifo /tmp/gps&lt;br /&gt;
cat /dev/gnss0 &amp;gt; /tmp/gps&lt;br /&gt;
Then point gpsd to use /tmp/gps&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== USSD ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
22:45 &amp;lt; tmlind&amp;gt; fyi, here&#039;s how to send USSD to query balance for example: printf &amp;quot;AT+CUSD=1,#999#,0\r&amp;quot; &amp;gt; /dev/motmdm1&lt;br /&gt;
22:47 &amp;lt; tmlind&amp;gt; fyi, for parsing incoming USSD, this web interface works if set to utf-8: &lt;br /&gt;
                https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== HDMI ====&lt;br /&gt;
Move output to external 1080p monitor.  Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Return to internal touchscreen display.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Keyboard / Mouse sharing with PC ====&lt;br /&gt;
To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[https://github.com/debauchee/barrier Barrier software-KVM switch]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Developers and testers may wish to disable the googley bits before compiling.&lt;br /&gt;
&lt;br /&gt;
==== BT Audio headset ====&lt;br /&gt;
&lt;br /&gt;
 sudo apt install pulseaudio-module-bluetooth blueman bluez&lt;br /&gt;
 sudo modprobe hci_uart&lt;br /&gt;
 pactl load-module module-bluetooth-discover&lt;br /&gt;
 blueman-manager&lt;br /&gt;
&lt;br /&gt;
Pair &amp;amp; trust your device in blueman, connect audiosink. You can close blueman now. The quality seems a bit better in &#039;offline mode&#039;.&lt;br /&gt;
&lt;br /&gt;
== Using a configured Leste sdcard in a different Droid4 ==&lt;br /&gt;
&lt;br /&gt;
A configured Droid4 Leste installation is unique to the device that it was calibrated on.  Particularly the wlan firmware calibration will be incorrect if an existing Leste installation is transferred to a different device.  &lt;br /&gt;
&lt;br /&gt;
The wifi calibration script requires a system set to stock settings to calibrate-from.  It cannot just be re-run on an already calibrated system.&lt;br /&gt;
&lt;br /&gt;
To recalibrate the wifi firmware on a different Droid4, you must reset the FEM parameters to stock settings on the new device, then recalibrate.  &lt;br /&gt;
If you can get the device online (usb networking or moving close to the WLAN AP) this can be done with.&lt;br /&gt;
 apt reinstall firmware-ti-connectivity &lt;br /&gt;
If not, you can download the firmware-ti-connectivity_[version]_all.deb on another Leste device&lt;br /&gt;
 apt download firmware-ti-connectivity&lt;br /&gt;
Then copy the .deb to your new device and install that (as root) with&lt;br /&gt;
 dpkg -i firmware-ti-connectivity_[version]_all.deb &lt;br /&gt;
Then (as root) re-calibrate the wifi chip by running&lt;br /&gt;
 /usr/bin/maserati-calibrate&lt;br /&gt;
Then reboot.&lt;br /&gt;
&lt;br /&gt;
== Gallery ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Motorola-Droid4-20200125.jpeg&lt;br /&gt;
Droid4-neofetch.JPG&lt;br /&gt;
Droid4_htop.jpg&lt;br /&gt;
Droid4_leste_logo.jpg&lt;br /&gt;
Cant_have_2_much_leste.jpg&lt;br /&gt;
Leste-neverball.jpg&lt;br /&gt;
Statsfun.jpg&lt;br /&gt;
Leste-glmatrix.png&lt;br /&gt;
Droid4-leste-utox2.jpg&lt;br /&gt;
Droid4-leste-pcsx.jpg&lt;br /&gt;
Droid4-leste-surf_master.jpg&lt;br /&gt;
Droid4_Daimonin_Hdmi.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Old status overview ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Feature&lt;br /&gt;
! Leste supported&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux&lt;br /&gt;
|-&lt;br /&gt;
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]&lt;br /&gt;
|-&lt;br /&gt;
| Charging || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Wireless || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Ethernet || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| Micro USB || Yes || OTG and USB network&lt;br /&gt;
|-&lt;br /&gt;
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)&lt;br /&gt;
|-&lt;br /&gt;
| Screen || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/&lt;br /&gt;
|-&lt;br /&gt;
| Touchscreen || Yes || Capacitive&lt;br /&gt;
|-&lt;br /&gt;
| Audio || Yes || Implemented with Pulseaudio and UCM files&lt;br /&gt;
|-&lt;br /&gt;
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/&lt;br /&gt;
|-&lt;br /&gt;
| 4G data || No || Needs kernel work&lt;br /&gt;
|-&lt;br /&gt;
| SMS || Yes || Works with ofono. Needs Leste UI&lt;br /&gt;
|-&lt;br /&gt;
| Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI&lt;br /&gt;
|-&lt;br /&gt;
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded&lt;br /&gt;
|-&lt;br /&gt;
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers&lt;br /&gt;
|-&lt;br /&gt;
| FM Receiver || Not yet ||&lt;br /&gt;
|-&lt;br /&gt;
| Accelerometer || Yes || Available in /sys, and as input device via iio-uinput&lt;br /&gt;
|-&lt;br /&gt;
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet)&lt;br /&gt;
|-&lt;br /&gt;
| Gyro || N/A || &lt;br /&gt;
|-&lt;br /&gt;
| Proximity sensor || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Ambient Light Sensor || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Vibration Motor || Yes || &lt;br /&gt;
|-&lt;br /&gt;
| HDMI-out || Yes || No UI integration&lt;br /&gt;
|-&lt;br /&gt;
| TV-out || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]&lt;br /&gt;
|-&lt;br /&gt;
| Infrared || N/A || Missing in hardware&lt;br /&gt;
|-&lt;br /&gt;
| Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/&lt;br /&gt;
|-&lt;br /&gt;
| Idle power consumption || ~120mW || Needs sim inserted&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Device]]&lt;/div&gt;</summary>
		<author><name>BuZz</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Motorola_Droid_4&amp;diff=1115</id>
		<title>Motorola Droid 4</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Motorola_Droid_4&amp;diff=1115"/>
		<updated>2021-06-03T17:07:56Z</updated>

		<summary type="html">&lt;p&gt;BuZz: /* BT Audio headset */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Device&lt;br /&gt;
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]&lt;br /&gt;
|manufacturer=Motorola&lt;br /&gt;
|codename=Maserati&lt;br /&gt;
|dimensions=127x67.3x12.7mm&lt;br /&gt;
|release_date=2012-02-10&lt;br /&gt;
|soc=TI OMAP4430&lt;br /&gt;
|dram=1024MB DDR2&lt;br /&gt;
|power=&lt;br /&gt;
|lcd=960x540 4&amp;quot;&lt;br /&gt;
|video=PowerVR SGX540 &lt;br /&gt;
|audio=&lt;br /&gt;
|network=&lt;br /&gt;
|storage=16GB flash&lt;br /&gt;
|usb=&lt;br /&gt;
|camera=&lt;br /&gt;
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor&lt;br /&gt;
|other=&lt;br /&gt;
|category=Supported&lt;br /&gt;
|sw_kernel=5.11.0&lt;br /&gt;
|sw_serial=Yes, [[#Serial Cable|special cable]]&lt;br /&gt;
|sw_charging=Yes&lt;br /&gt;
|sw_usb_slave=Yes&lt;br /&gt;
|sw_usb_host=Yes&lt;br /&gt;
|sw_touchscreen=Yes&lt;br /&gt;
|sw_keyboard=Yes&lt;br /&gt;
|sw_screen=Yes&lt;br /&gt;
|sw_hdmi=Yes&lt;br /&gt;
|sw_tv=&lt;br /&gt;
|sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed)&lt;br /&gt;
|sw_vibration=Yes&lt;br /&gt;
|sw_audio=Yes&lt;br /&gt;
|sw_calls=WIP&lt;br /&gt;
|sw_sms=Yes, no UI&lt;br /&gt;
|sw_wifi=Yes&lt;br /&gt;
|sw_ethernet=&lt;br /&gt;
|sw_irda=&lt;br /&gt;
|sw_2g3gdata=Yes&lt;br /&gt;
|sw_4g=No&lt;br /&gt;
|sw_bluetooth=Yes,  [[#Bluetooth|see notes]] &lt;br /&gt;
|sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers&lt;br /&gt;
|sw_fmrx=&lt;br /&gt;
|sw_nfc=&lt;br /&gt;
|sw_accelerometer=Yes&lt;br /&gt;
|sw_compass=Yes, no integration&lt;br /&gt;
|sw_gyro=&lt;br /&gt;
|sw_proximity=Yes&lt;br /&gt;
|sw_als=Yes&lt;br /&gt;
|sw_gps=Yes&lt;br /&gt;
|sw_agps=No&lt;br /&gt;
|sw_frontcam=No&lt;br /&gt;
|sw_backcam=No&lt;br /&gt;
|sw_idlepower=120mW&lt;br /&gt;
|sw_standbytime=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Hardware requirements:&lt;br /&gt;
&lt;br /&gt;
* Droid4 with fully charged battery&lt;br /&gt;
* MicroUSB cable&lt;br /&gt;
* MicroSD card&lt;br /&gt;
&lt;br /&gt;
Software requirements:&lt;br /&gt;
* Host Linux or Windows system&lt;br /&gt;
* Android Tools: fastboot&lt;br /&gt;
* Flashing tools:&lt;br /&gt;
** XZ Utils and coreutils for Linux&lt;br /&gt;
** Etcher[https://github.com/balena-io/etcher] for Windows&lt;br /&gt;
&lt;br /&gt;
Download from https://maedevu.maemo.org/images/droid4/&lt;br /&gt;
&lt;br /&gt;
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip&lt;br /&gt;
# flash-droid-4-fw.sh&lt;br /&gt;
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz&lt;br /&gt;
&lt;br /&gt;
Download from https://github.com/tmlind/droid4-kexecboot.git&lt;br /&gt;
&lt;br /&gt;
# utags-mmcblk1p13.bin&lt;br /&gt;
# droid4-kexecboot.img&lt;br /&gt;
&lt;br /&gt;
Check what kernel version your Android OS runs.&lt;br /&gt;
For this go to Settings -&amp;gt; About phone. Slide to the bottom, where you can see &amp;quot;Kernel version&amp;quot;.&lt;br /&gt;
If you have at least 3.0.8, you may skip &amp;quot;Updating Android&amp;quot; step below.&lt;br /&gt;
&lt;br /&gt;
Installation:&lt;br /&gt;
&lt;br /&gt;
# Create a working directory with above mentioned files in it&lt;br /&gt;
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip&lt;br /&gt;
# Power off Droid4 and connect it to the host machine with MicroUSB cable&lt;br /&gt;
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.&lt;br /&gt;
&lt;br /&gt;
=== Updating Android ===&lt;br /&gt;
&lt;br /&gt;
This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml&lt;br /&gt;
sudo bash ../flash-droid-4-fw.sh&lt;br /&gt;
popd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Setting up kexecboot ===&lt;br /&gt;
&lt;br /&gt;
Now, assuming you are in the working directory, install kexecboot:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin&lt;br /&gt;
sudo fastboot reboot-bootloader&lt;br /&gt;
sudo fastboot flash bpsw droid4-kexecboot.img&lt;br /&gt;
sudo fastboot flash utags utags-mmcblk1p13.bin&lt;br /&gt;
sudo fastboot reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you did &amp;quot;Updating Android&amp;quot; the device should run the firstboot steps.&lt;br /&gt;
If you didn&#039;t, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.&lt;br /&gt;
&lt;br /&gt;
=== Install Maemo Leste to the sdcard ===&lt;br /&gt;
&lt;br /&gt;
Now, flash the Maemo Leste image to your sdcard:&lt;br /&gt;
&lt;br /&gt;
On Linux:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE&lt;br /&gt;
sync&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Windows: Use Etcher&lt;br /&gt;
&lt;br /&gt;
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.&lt;br /&gt;
&lt;br /&gt;
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.&lt;br /&gt;
&lt;br /&gt;
== Updating ==&lt;br /&gt;
&lt;br /&gt;
Normally you can just apt update &amp;amp;&amp;amp; apt dist-upgrade to update to the latest version. If for some reason this fails:&lt;br /&gt;
&lt;br /&gt;
* Poweroff device, grab the SD card&lt;br /&gt;
* Backup any important files&lt;br /&gt;
* Grab the latest image from https://phoenix.maemo.org/view/Images/&lt;br /&gt;
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.&lt;br /&gt;
&lt;br /&gt;
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.&lt;br /&gt;
&lt;br /&gt;
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.&lt;br /&gt;
Blacklisting the module may help if you have such problems:&lt;br /&gt;
 echo &amp;quot;blacklist hci_uart&amp;quot; &amp;gt;&amp;gt; /etc/modprobe.d/blacklist.conf&lt;br /&gt;
&lt;br /&gt;
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]&lt;br /&gt;
&lt;br /&gt;
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/&lt;br /&gt;
&lt;br /&gt;
== Serial Cable ==&lt;br /&gt;
&lt;br /&gt;
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/&lt;br /&gt;
&lt;br /&gt;
While using the serial cable, if you lose the connection, the following may help:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
18:43 &amp;lt; tmlind&amp;gt; sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with &lt;br /&gt;
                the console login propt later&lt;br /&gt;
18:45 &amp;lt; tmlind&amp;gt; try plugging in a pc usb cable then back to uart cable in case that might help&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Bluetooth ==&lt;br /&gt;
&lt;br /&gt;
Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Stuff to try ==&lt;br /&gt;
&lt;br /&gt;
==== Blinkenlights ====&lt;br /&gt;
Adding this in rc.local above the &#039;&#039;exit 0&#039;&#039; gets you some blinkenlights to watschen und relaxen.&lt;br /&gt;
 echo cpu &amp;gt; /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight&lt;br /&gt;
 echo mmc0 &amp;gt; /sys/class/leds/shift-key-light/trigger      # gets you a &#039;hdd led&#039; of the SD card on the capslock light&lt;br /&gt;
&lt;br /&gt;
==== Wifi ====&lt;br /&gt;
&lt;br /&gt;
The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.&lt;br /&gt;
&lt;br /&gt;
Install necessary tools: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install ti-utils-wilink6 droid4-wlanconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Run calibration:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo maserati-calibrate&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Phone Call ====&lt;br /&gt;
&lt;br /&gt;
Make sure there is a SIM in the phone.&lt;br /&gt;
&lt;br /&gt;
Run this:&lt;br /&gt;
&lt;br /&gt;
Read modem output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat /dev/motmdm1 &amp;amp;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Online modem:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
printf &amp;quot;AT+CFUN=1\r&amp;quot; &amp;gt; /dev/motmdm1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Connect to network:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
printf &amp;quot;AT+COPS=1\r&amp;quot; &amp;gt; /dev/motmdm1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Print connected network:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
printf &amp;quot;AT+COPS?\r&amp;quot; &amp;gt; /dev/motmdm1&lt;br /&gt;
&lt;br /&gt;
Turn off signal reporting:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# printf &amp;quot;AT+SCRN=0\r&amp;quot; &amp;gt; /dev/motmdm1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dial a number:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
printf &amp;quot;ATD+1234567890\r&amp;quot; &amp;gt; /dev/motmdm1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hang up:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
printf &amp;quot;ATH\r&amp;quot; &amp;gt; /dev/motmdm1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Answer incoming call:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
printf &amp;quot;ATA\r&amp;quot; &amp;gt; /dev/motmdm1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Audio wise, in a pulsaudio of you choice switch to the make a phone call profile, and set the output device as desired.&lt;br /&gt;
&lt;br /&gt;
==== 3G Internet ====&lt;br /&gt;
&lt;br /&gt;
Using qmicli:&lt;br /&gt;
&lt;br /&gt;
 qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz&lt;br /&gt;
 route del default&lt;br /&gt;
 sudo ifconfig wwan0 up&lt;br /&gt;
 dhclient wwan0&lt;br /&gt;
&lt;br /&gt;
Alternatively if updated to devel icd2 and the maemo gui should allow 3g data connection, if the sim is unlocked and the relevant packages are installed.&lt;br /&gt;
&lt;br /&gt;
==== GPS ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
modprobe gnss-motmdm and point gpsd to use /dev/gnss0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
22:30 &amp;lt; tmlind&amp;gt; hmm there&#039;s a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)&lt;br /&gt;
&lt;br /&gt;
Can try to &amp;lt;pre&amp;gt;&lt;br /&gt;
mkfifo /tmp/gps&lt;br /&gt;
cat /dev/gnss0 &amp;gt; /tmp/gps&lt;br /&gt;
Then point gpsd to use /tmp/gps&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== USSD ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
22:45 &amp;lt; tmlind&amp;gt; fyi, here&#039;s how to send USSD to query balance for example: printf &amp;quot;AT+CUSD=1,#999#,0\r&amp;quot; &amp;gt; /dev/motmdm1&lt;br /&gt;
22:47 &amp;lt; tmlind&amp;gt; fyi, for parsing incoming USSD, this web interface works if set to utf-8: &lt;br /&gt;
                https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== HDMI ====&lt;br /&gt;
Move output to external 1080p monitor.  Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Return to internal touchscreen display.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Keyboard / Mouse sharing with PC ====&lt;br /&gt;
To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[https://github.com/debauchee/barrier Barrier software-KVM switch]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Developers and testers may wish to disable the googley bits before compiling.&lt;br /&gt;
&lt;br /&gt;
==== BT Audio headset ====&lt;br /&gt;
&lt;br /&gt;
 sudo apt install pulseaudio-module-bluetooth blueman bluez&lt;br /&gt;
 sudo modprobe hci_uart&lt;br /&gt;
 pactl load-module module-bluetooth-discover&lt;br /&gt;
 blueman-manager&lt;br /&gt;
&lt;br /&gt;
Pair &amp;amp; trust your device in blueman, connect audiosink. You can close blueman now. The quality seems a bit better in &#039;offline mode&#039;.&lt;br /&gt;
&lt;br /&gt;
== Gallery ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Motorola-Droid4-20200125.jpeg&lt;br /&gt;
Droid4-neofetch.JPG&lt;br /&gt;
Droid4_htop.jpg&lt;br /&gt;
Droid4_leste_logo.jpg&lt;br /&gt;
Cant_have_2_much_leste.jpg&lt;br /&gt;
Leste-neverball.jpg&lt;br /&gt;
Statsfun.jpg&lt;br /&gt;
Leste-glmatrix.png&lt;br /&gt;
Droid4-leste-utox2.jpg&lt;br /&gt;
Droid4-leste-pcsx.jpg&lt;br /&gt;
Droid4-leste-surf_master.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Old status overview ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Feature&lt;br /&gt;
! Leste supported&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux&lt;br /&gt;
|-&lt;br /&gt;
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]&lt;br /&gt;
|-&lt;br /&gt;
| Charging || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Wireless || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Ethernet || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| Micro USB || Yes || OTG and USB network&lt;br /&gt;
|-&lt;br /&gt;
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)&lt;br /&gt;
|-&lt;br /&gt;
| Screen || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/&lt;br /&gt;
|-&lt;br /&gt;
| Touchscreen || Yes || Capacitive&lt;br /&gt;
|-&lt;br /&gt;
| Audio || Yes || Implemented with Pulseaudio and UCM files&lt;br /&gt;
|-&lt;br /&gt;
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/&lt;br /&gt;
|-&lt;br /&gt;
| 4G data || No || Needs kernel work&lt;br /&gt;
|-&lt;br /&gt;
| SMS || Yes || Works with ofono. Needs Leste UI&lt;br /&gt;
|-&lt;br /&gt;
| Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI&lt;br /&gt;
|-&lt;br /&gt;
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded&lt;br /&gt;
|-&lt;br /&gt;
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers&lt;br /&gt;
|-&lt;br /&gt;
| FM Receiver || Not yet ||&lt;br /&gt;
|-&lt;br /&gt;
| Accelerometer || Yes || Available in /sys, and as input device via iio-uinput&lt;br /&gt;
|-&lt;br /&gt;
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet)&lt;br /&gt;
|-&lt;br /&gt;
| Gyro || N/A || &lt;br /&gt;
|-&lt;br /&gt;
| Proximity sensor || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Ambient Light Sensor || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Vibration Motor || Yes || &lt;br /&gt;
|-&lt;br /&gt;
| HDMI-out || Yes || No UI integration&lt;br /&gt;
|-&lt;br /&gt;
| TV-out || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]&lt;br /&gt;
|-&lt;br /&gt;
| Infrared || N/A || Missing in hardware&lt;br /&gt;
|-&lt;br /&gt;
| Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/&lt;br /&gt;
|-&lt;br /&gt;
| Idle power consumption || ~120mW || Needs sim inserted&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Device]]&lt;/div&gt;</summary>
		<author><name>BuZz</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Motorola_Droid_4&amp;diff=1114</id>
		<title>Motorola Droid 4</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Motorola_Droid_4&amp;diff=1114"/>
		<updated>2021-06-03T02:28:02Z</updated>

		<summary type="html">&lt;p&gt;BuZz: /* 3G Internet */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Device&lt;br /&gt;
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]&lt;br /&gt;
|manufacturer=Motorola&lt;br /&gt;
|codename=Maserati&lt;br /&gt;
|dimensions=127x67.3x12.7mm&lt;br /&gt;
|release_date=2012-02-10&lt;br /&gt;
|soc=TI OMAP4430&lt;br /&gt;
|dram=1024MB DDR2&lt;br /&gt;
|power=&lt;br /&gt;
|lcd=960x540 4&amp;quot;&lt;br /&gt;
|video=PowerVR SGX540 &lt;br /&gt;
|audio=&lt;br /&gt;
|network=&lt;br /&gt;
|storage=16GB flash&lt;br /&gt;
|usb=&lt;br /&gt;
|camera=&lt;br /&gt;
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor&lt;br /&gt;
|other=&lt;br /&gt;
|category=Supported&lt;br /&gt;
|sw_kernel=5.11.0&lt;br /&gt;
|sw_serial=Yes, [[#Serial Cable|special cable]]&lt;br /&gt;
|sw_charging=Yes&lt;br /&gt;
|sw_usb_slave=Yes&lt;br /&gt;
|sw_usb_host=Yes&lt;br /&gt;
|sw_touchscreen=Yes&lt;br /&gt;
|sw_keyboard=Yes&lt;br /&gt;
|sw_screen=Yes&lt;br /&gt;
|sw_hdmi=Yes&lt;br /&gt;
|sw_tv=&lt;br /&gt;
|sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed)&lt;br /&gt;
|sw_vibration=Yes&lt;br /&gt;
|sw_audio=Yes&lt;br /&gt;
|sw_calls=WIP&lt;br /&gt;
|sw_sms=Yes, no UI&lt;br /&gt;
|sw_wifi=Yes&lt;br /&gt;
|sw_ethernet=&lt;br /&gt;
|sw_irda=&lt;br /&gt;
|sw_2g3gdata=Yes&lt;br /&gt;
|sw_4g=No&lt;br /&gt;
|sw_bluetooth=Yes,  [[#Bluetooth|see notes]] &lt;br /&gt;
|sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers&lt;br /&gt;
|sw_fmrx=&lt;br /&gt;
|sw_nfc=&lt;br /&gt;
|sw_accelerometer=Yes&lt;br /&gt;
|sw_compass=Yes, no integration&lt;br /&gt;
|sw_gyro=&lt;br /&gt;
|sw_proximity=Yes&lt;br /&gt;
|sw_als=Yes&lt;br /&gt;
|sw_gps=Yes&lt;br /&gt;
|sw_agps=No&lt;br /&gt;
|sw_frontcam=No&lt;br /&gt;
|sw_backcam=No&lt;br /&gt;
|sw_idlepower=120mW&lt;br /&gt;
|sw_standbytime=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Hardware requirements:&lt;br /&gt;
&lt;br /&gt;
* Droid4 with fully charged battery&lt;br /&gt;
* MicroUSB cable&lt;br /&gt;
* MicroSD card&lt;br /&gt;
&lt;br /&gt;
Software requirements:&lt;br /&gt;
* Host Linux or Windows system&lt;br /&gt;
* Android Tools: fastboot&lt;br /&gt;
* Flashing tools:&lt;br /&gt;
** XZ Utils and coreutils for Linux&lt;br /&gt;
** Etcher[https://github.com/balena-io/etcher] for Windows&lt;br /&gt;
&lt;br /&gt;
Download from https://maedevu.maemo.org/images/droid4/&lt;br /&gt;
&lt;br /&gt;
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip&lt;br /&gt;
# flash-droid-4-fw.sh&lt;br /&gt;
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz&lt;br /&gt;
&lt;br /&gt;
Download from https://github.com/tmlind/droid4-kexecboot.git&lt;br /&gt;
&lt;br /&gt;
# utags-mmcblk1p13.bin&lt;br /&gt;
# droid4-kexecboot.img&lt;br /&gt;
&lt;br /&gt;
Check what kernel version your Android OS runs.&lt;br /&gt;
For this go to Settings -&amp;gt; About phone. Slide to the bottom, where you can see &amp;quot;Kernel version&amp;quot;.&lt;br /&gt;
If you have at least 3.0.8, you may skip &amp;quot;Updating Android&amp;quot; step below.&lt;br /&gt;
&lt;br /&gt;
Installation:&lt;br /&gt;
&lt;br /&gt;
# Create a working directory with above mentioned files in it&lt;br /&gt;
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip&lt;br /&gt;
# Power off Droid4 and connect it to the host machine with MicroUSB cable&lt;br /&gt;
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.&lt;br /&gt;
&lt;br /&gt;
=== Updating Android ===&lt;br /&gt;
&lt;br /&gt;
This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml&lt;br /&gt;
sudo bash ../flash-droid-4-fw.sh&lt;br /&gt;
popd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Setting up kexecboot ===&lt;br /&gt;
&lt;br /&gt;
Now, assuming you are in the working directory, install kexecboot:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin&lt;br /&gt;
sudo fastboot reboot-bootloader&lt;br /&gt;
sudo fastboot flash bpsw droid4-kexecboot.img&lt;br /&gt;
sudo fastboot flash utags utags-mmcblk1p13.bin&lt;br /&gt;
sudo fastboot reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you did &amp;quot;Updating Android&amp;quot; the device should run the firstboot steps.&lt;br /&gt;
If you didn&#039;t, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.&lt;br /&gt;
&lt;br /&gt;
=== Install Maemo Leste to the sdcard ===&lt;br /&gt;
&lt;br /&gt;
Now, flash the Maemo Leste image to your sdcard:&lt;br /&gt;
&lt;br /&gt;
On Linux:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE&lt;br /&gt;
sync&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Windows: Use Etcher&lt;br /&gt;
&lt;br /&gt;
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.&lt;br /&gt;
&lt;br /&gt;
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.&lt;br /&gt;
&lt;br /&gt;
== Updating ==&lt;br /&gt;
&lt;br /&gt;
Normally you can just apt update &amp;amp;&amp;amp; apt dist-upgrade to update to the latest version. If for some reason this fails:&lt;br /&gt;
&lt;br /&gt;
* Poweroff device, grab the SD card&lt;br /&gt;
* Backup any important files&lt;br /&gt;
* Grab the latest image from https://phoenix.maemo.org/view/Images/&lt;br /&gt;
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.&lt;br /&gt;
&lt;br /&gt;
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.&lt;br /&gt;
&lt;br /&gt;
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.&lt;br /&gt;
Blacklisting the module may help if you have such problems:&lt;br /&gt;
 echo &amp;quot;blacklist hci_uart&amp;quot; &amp;gt;&amp;gt; /etc/modprobe.d/blacklist.conf&lt;br /&gt;
&lt;br /&gt;
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]&lt;br /&gt;
&lt;br /&gt;
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/&lt;br /&gt;
&lt;br /&gt;
== Serial Cable ==&lt;br /&gt;
&lt;br /&gt;
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/&lt;br /&gt;
&lt;br /&gt;
While using the serial cable, if you lose the connection, the following may help:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
18:43 &amp;lt; tmlind&amp;gt; sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with &lt;br /&gt;
                the console login propt later&lt;br /&gt;
18:45 &amp;lt; tmlind&amp;gt; try plugging in a pc usb cable then back to uart cable in case that might help&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Bluetooth ==&lt;br /&gt;
&lt;br /&gt;
Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Stuff to try ==&lt;br /&gt;
&lt;br /&gt;
==== Blinkenlights ====&lt;br /&gt;
Adding this in rc.local above the &#039;&#039;exit 0&#039;&#039; gets you some blinkenlights to watschen und relaxen.&lt;br /&gt;
 echo cpu &amp;gt; /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight&lt;br /&gt;
 echo mmc0 &amp;gt; /sys/class/leds/shift-key-light/trigger      # gets you a &#039;hdd led&#039; of the SD card on the capslock light&lt;br /&gt;
&lt;br /&gt;
==== Wifi ====&lt;br /&gt;
&lt;br /&gt;
The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.&lt;br /&gt;
&lt;br /&gt;
Install necessary tools: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install ti-utils-wilink6 droid4-wlanconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Run calibration:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo maserati-calibrate&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Phone Call ====&lt;br /&gt;
&lt;br /&gt;
Make sure there is a SIM in the phone.&lt;br /&gt;
&lt;br /&gt;
Run this:&lt;br /&gt;
&lt;br /&gt;
Read modem output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat /dev/motmdm1 &amp;amp;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Online modem:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
printf &amp;quot;AT+CFUN=1\r&amp;quot; &amp;gt; /dev/motmdm1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Connect to network:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
printf &amp;quot;AT+COPS=1\r&amp;quot; &amp;gt; /dev/motmdm1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Print connected network:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
printf &amp;quot;AT+COPS?\r&amp;quot; &amp;gt; /dev/motmdm1&lt;br /&gt;
&lt;br /&gt;
Turn off signal reporting:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# printf &amp;quot;AT+SCRN=0\r&amp;quot; &amp;gt; /dev/motmdm1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dial a number:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
printf &amp;quot;ATD+1234567890\r&amp;quot; &amp;gt; /dev/motmdm1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hang up:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
printf &amp;quot;ATH\r&amp;quot; &amp;gt; /dev/motmdm1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Answer incoming call:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
printf &amp;quot;ATA\r&amp;quot; &amp;gt; /dev/motmdm1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Audio wise, in a pulsaudio of you choice switch to the make a phone call profile, and set the output device as desired.&lt;br /&gt;
&lt;br /&gt;
==== 3G Internet ====&lt;br /&gt;
&lt;br /&gt;
Using qmicli:&lt;br /&gt;
&lt;br /&gt;
 qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz&lt;br /&gt;
 route del default&lt;br /&gt;
 sudo ifconfig wwan0 up&lt;br /&gt;
 dhclient wwan0&lt;br /&gt;
&lt;br /&gt;
Alternatively if updated to devel icd2 and the maemo gui should allow 3g data connection, if the sim is unlocked and the relevant packages are installed.&lt;br /&gt;
&lt;br /&gt;
==== GPS ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
modprobe gnss-motmdm and point gpsd to use /dev/gnss0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
22:30 &amp;lt; tmlind&amp;gt; hmm there&#039;s a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)&lt;br /&gt;
&lt;br /&gt;
Can try to &amp;lt;pre&amp;gt;&lt;br /&gt;
mkfifo /tmp/gps&lt;br /&gt;
cat /dev/gnss0 &amp;gt; /tmp/gps&lt;br /&gt;
Then point gpsd to use /tmp/gps&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== USSD ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
22:45 &amp;lt; tmlind&amp;gt; fyi, here&#039;s how to send USSD to query balance for example: printf &amp;quot;AT+CUSD=1,#999#,0\r&amp;quot; &amp;gt; /dev/motmdm1&lt;br /&gt;
22:47 &amp;lt; tmlind&amp;gt; fyi, for parsing incoming USSD, this web interface works if set to utf-8: &lt;br /&gt;
                https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== HDMI ====&lt;br /&gt;
Move output to external 1080p monitor.  Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Return to internal touchscreen display.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Keyboard / Mouse sharing with PC ====&lt;br /&gt;
To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[https://github.com/debauchee/barrier Barrier software-KVM switch]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Developers and testers may wish to disable the googley bits before compiling.&lt;br /&gt;
&lt;br /&gt;
==== BT Audio headset ====&lt;br /&gt;
&lt;br /&gt;
 sudo apt install pulseaudio-module-bluetooth blueman bluez&lt;br /&gt;
 sudo modprobe hci_uart&lt;br /&gt;
 pactl load-module module-bluetooth-discover&lt;br /&gt;
 blueman&lt;br /&gt;
&lt;br /&gt;
Pair &amp;amp; trust your device, connect audiosink. You can close blueman now. The quality seems a bit better in &#039;offline mode&#039;.&lt;br /&gt;
&lt;br /&gt;
== Gallery ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Motorola-Droid4-20200125.jpeg&lt;br /&gt;
Droid4-neofetch.JPG&lt;br /&gt;
Droid4_htop.jpg&lt;br /&gt;
Droid4_leste_logo.jpg&lt;br /&gt;
Cant_have_2_much_leste.jpg&lt;br /&gt;
Leste-neverball.jpg&lt;br /&gt;
Statsfun.jpg&lt;br /&gt;
Leste-glmatrix.png&lt;br /&gt;
Droid4-leste-utox2.jpg&lt;br /&gt;
Droid4-leste-pcsx.jpg&lt;br /&gt;
Droid4-leste-surf_master.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Old status overview ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Feature&lt;br /&gt;
! Leste supported&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux&lt;br /&gt;
|-&lt;br /&gt;
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]&lt;br /&gt;
|-&lt;br /&gt;
| Charging || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Wireless || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Ethernet || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| Micro USB || Yes || OTG and USB network&lt;br /&gt;
|-&lt;br /&gt;
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)&lt;br /&gt;
|-&lt;br /&gt;
| Screen || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/&lt;br /&gt;
|-&lt;br /&gt;
| Touchscreen || Yes || Capacitive&lt;br /&gt;
|-&lt;br /&gt;
| Audio || Yes || Implemented with Pulseaudio and UCM files&lt;br /&gt;
|-&lt;br /&gt;
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/&lt;br /&gt;
|-&lt;br /&gt;
| 4G data || No || Needs kernel work&lt;br /&gt;
|-&lt;br /&gt;
| SMS || Yes || Works with ofono. Needs Leste UI&lt;br /&gt;
|-&lt;br /&gt;
| Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI&lt;br /&gt;
|-&lt;br /&gt;
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded&lt;br /&gt;
|-&lt;br /&gt;
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers&lt;br /&gt;
|-&lt;br /&gt;
| FM Receiver || Not yet ||&lt;br /&gt;
|-&lt;br /&gt;
| Accelerometer || Yes || Available in /sys, and as input device via iio-uinput&lt;br /&gt;
|-&lt;br /&gt;
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet)&lt;br /&gt;
|-&lt;br /&gt;
| Gyro || N/A || &lt;br /&gt;
|-&lt;br /&gt;
| Proximity sensor || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Ambient Light Sensor || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Vibration Motor || Yes || &lt;br /&gt;
|-&lt;br /&gt;
| HDMI-out || Yes || No UI integration&lt;br /&gt;
|-&lt;br /&gt;
| TV-out || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]&lt;br /&gt;
|-&lt;br /&gt;
| Infrared || N/A || Missing in hardware&lt;br /&gt;
|-&lt;br /&gt;
| Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/&lt;br /&gt;
|-&lt;br /&gt;
| Idle power consumption || ~120mW || Needs sim inserted&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Device]]&lt;/div&gt;</summary>
		<author><name>BuZz</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Motorola_Droid_4&amp;diff=1113</id>
		<title>Motorola Droid 4</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Motorola_Droid_4&amp;diff=1113"/>
		<updated>2021-06-03T02:27:27Z</updated>

		<summary type="html">&lt;p&gt;BuZz: /* BT Audio headset */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Device&lt;br /&gt;
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]&lt;br /&gt;
|manufacturer=Motorola&lt;br /&gt;
|codename=Maserati&lt;br /&gt;
|dimensions=127x67.3x12.7mm&lt;br /&gt;
|release_date=2012-02-10&lt;br /&gt;
|soc=TI OMAP4430&lt;br /&gt;
|dram=1024MB DDR2&lt;br /&gt;
|power=&lt;br /&gt;
|lcd=960x540 4&amp;quot;&lt;br /&gt;
|video=PowerVR SGX540 &lt;br /&gt;
|audio=&lt;br /&gt;
|network=&lt;br /&gt;
|storage=16GB flash&lt;br /&gt;
|usb=&lt;br /&gt;
|camera=&lt;br /&gt;
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor&lt;br /&gt;
|other=&lt;br /&gt;
|category=Supported&lt;br /&gt;
|sw_kernel=5.11.0&lt;br /&gt;
|sw_serial=Yes, [[#Serial Cable|special cable]]&lt;br /&gt;
|sw_charging=Yes&lt;br /&gt;
|sw_usb_slave=Yes&lt;br /&gt;
|sw_usb_host=Yes&lt;br /&gt;
|sw_touchscreen=Yes&lt;br /&gt;
|sw_keyboard=Yes&lt;br /&gt;
|sw_screen=Yes&lt;br /&gt;
|sw_hdmi=Yes&lt;br /&gt;
|sw_tv=&lt;br /&gt;
|sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed)&lt;br /&gt;
|sw_vibration=Yes&lt;br /&gt;
|sw_audio=Yes&lt;br /&gt;
|sw_calls=WIP&lt;br /&gt;
|sw_sms=Yes, no UI&lt;br /&gt;
|sw_wifi=Yes&lt;br /&gt;
|sw_ethernet=&lt;br /&gt;
|sw_irda=&lt;br /&gt;
|sw_2g3gdata=Yes&lt;br /&gt;
|sw_4g=No&lt;br /&gt;
|sw_bluetooth=Yes,  [[#Bluetooth|see notes]] &lt;br /&gt;
|sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers&lt;br /&gt;
|sw_fmrx=&lt;br /&gt;
|sw_nfc=&lt;br /&gt;
|sw_accelerometer=Yes&lt;br /&gt;
|sw_compass=Yes, no integration&lt;br /&gt;
|sw_gyro=&lt;br /&gt;
|sw_proximity=Yes&lt;br /&gt;
|sw_als=Yes&lt;br /&gt;
|sw_gps=Yes&lt;br /&gt;
|sw_agps=No&lt;br /&gt;
|sw_frontcam=No&lt;br /&gt;
|sw_backcam=No&lt;br /&gt;
|sw_idlepower=120mW&lt;br /&gt;
|sw_standbytime=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Hardware requirements:&lt;br /&gt;
&lt;br /&gt;
* Droid4 with fully charged battery&lt;br /&gt;
* MicroUSB cable&lt;br /&gt;
* MicroSD card&lt;br /&gt;
&lt;br /&gt;
Software requirements:&lt;br /&gt;
* Host Linux or Windows system&lt;br /&gt;
* Android Tools: fastboot&lt;br /&gt;
* Flashing tools:&lt;br /&gt;
** XZ Utils and coreutils for Linux&lt;br /&gt;
** Etcher[https://github.com/balena-io/etcher] for Windows&lt;br /&gt;
&lt;br /&gt;
Download from https://maedevu.maemo.org/images/droid4/&lt;br /&gt;
&lt;br /&gt;
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip&lt;br /&gt;
# flash-droid-4-fw.sh&lt;br /&gt;
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz&lt;br /&gt;
&lt;br /&gt;
Download from https://github.com/tmlind/droid4-kexecboot.git&lt;br /&gt;
&lt;br /&gt;
# utags-mmcblk1p13.bin&lt;br /&gt;
# droid4-kexecboot.img&lt;br /&gt;
&lt;br /&gt;
Check what kernel version your Android OS runs.&lt;br /&gt;
For this go to Settings -&amp;gt; About phone. Slide to the bottom, where you can see &amp;quot;Kernel version&amp;quot;.&lt;br /&gt;
If you have at least 3.0.8, you may skip &amp;quot;Updating Android&amp;quot; step below.&lt;br /&gt;
&lt;br /&gt;
Installation:&lt;br /&gt;
&lt;br /&gt;
# Create a working directory with above mentioned files in it&lt;br /&gt;
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip&lt;br /&gt;
# Power off Droid4 and connect it to the host machine with MicroUSB cable&lt;br /&gt;
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.&lt;br /&gt;
&lt;br /&gt;
=== Updating Android ===&lt;br /&gt;
&lt;br /&gt;
This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml&lt;br /&gt;
sudo bash ../flash-droid-4-fw.sh&lt;br /&gt;
popd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Setting up kexecboot ===&lt;br /&gt;
&lt;br /&gt;
Now, assuming you are in the working directory, install kexecboot:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin&lt;br /&gt;
sudo fastboot reboot-bootloader&lt;br /&gt;
sudo fastboot flash bpsw droid4-kexecboot.img&lt;br /&gt;
sudo fastboot flash utags utags-mmcblk1p13.bin&lt;br /&gt;
sudo fastboot reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you did &amp;quot;Updating Android&amp;quot; the device should run the firstboot steps.&lt;br /&gt;
If you didn&#039;t, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.&lt;br /&gt;
&lt;br /&gt;
=== Install Maemo Leste to the sdcard ===&lt;br /&gt;
&lt;br /&gt;
Now, flash the Maemo Leste image to your sdcard:&lt;br /&gt;
&lt;br /&gt;
On Linux:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE&lt;br /&gt;
sync&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Windows: Use Etcher&lt;br /&gt;
&lt;br /&gt;
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.&lt;br /&gt;
&lt;br /&gt;
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.&lt;br /&gt;
&lt;br /&gt;
== Updating ==&lt;br /&gt;
&lt;br /&gt;
Normally you can just apt update &amp;amp;&amp;amp; apt dist-upgrade to update to the latest version. If for some reason this fails:&lt;br /&gt;
&lt;br /&gt;
* Poweroff device, grab the SD card&lt;br /&gt;
* Backup any important files&lt;br /&gt;
* Grab the latest image from https://phoenix.maemo.org/view/Images/&lt;br /&gt;
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.&lt;br /&gt;
&lt;br /&gt;
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.&lt;br /&gt;
&lt;br /&gt;
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.&lt;br /&gt;
Blacklisting the module may help if you have such problems:&lt;br /&gt;
 echo &amp;quot;blacklist hci_uart&amp;quot; &amp;gt;&amp;gt; /etc/modprobe.d/blacklist.conf&lt;br /&gt;
&lt;br /&gt;
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]&lt;br /&gt;
&lt;br /&gt;
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/&lt;br /&gt;
&lt;br /&gt;
== Serial Cable ==&lt;br /&gt;
&lt;br /&gt;
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/&lt;br /&gt;
&lt;br /&gt;
While using the serial cable, if you lose the connection, the following may help:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
18:43 &amp;lt; tmlind&amp;gt; sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with &lt;br /&gt;
                the console login propt later&lt;br /&gt;
18:45 &amp;lt; tmlind&amp;gt; try plugging in a pc usb cable then back to uart cable in case that might help&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Bluetooth ==&lt;br /&gt;
&lt;br /&gt;
Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Stuff to try ==&lt;br /&gt;
&lt;br /&gt;
==== Blinkenlights ====&lt;br /&gt;
Adding this in rc.local above the &#039;&#039;exit 0&#039;&#039; gets you some blinkenlights to watschen und relaxen.&lt;br /&gt;
 echo cpu &amp;gt; /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight&lt;br /&gt;
 echo mmc0 &amp;gt; /sys/class/leds/shift-key-light/trigger      # gets you a &#039;hdd led&#039; of the SD card on the capslock light&lt;br /&gt;
&lt;br /&gt;
==== Wifi ====&lt;br /&gt;
&lt;br /&gt;
The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.&lt;br /&gt;
&lt;br /&gt;
Install necessary tools: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install ti-utils-wilink6 droid4-wlanconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Run calibration:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo maserati-calibrate&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Phone Call ====&lt;br /&gt;
&lt;br /&gt;
Make sure there is a SIM in the phone.&lt;br /&gt;
&lt;br /&gt;
Run this:&lt;br /&gt;
&lt;br /&gt;
Read modem output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat /dev/motmdm1 &amp;amp;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Online modem:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
printf &amp;quot;AT+CFUN=1\r&amp;quot; &amp;gt; /dev/motmdm1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Connect to network:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
printf &amp;quot;AT+COPS=1\r&amp;quot; &amp;gt; /dev/motmdm1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Print connected network:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
printf &amp;quot;AT+COPS?\r&amp;quot; &amp;gt; /dev/motmdm1&lt;br /&gt;
&lt;br /&gt;
Turn off signal reporting:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# printf &amp;quot;AT+SCRN=0\r&amp;quot; &amp;gt; /dev/motmdm1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dial a number:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
printf &amp;quot;ATD+1234567890\r&amp;quot; &amp;gt; /dev/motmdm1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hang up:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
printf &amp;quot;ATH\r&amp;quot; &amp;gt; /dev/motmdm1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Answer incoming call:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
printf &amp;quot;ATA\r&amp;quot; &amp;gt; /dev/motmdm1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Audio wise, in a pulsaudio of you choice switch to the make a phone call profile, and set the output device as desired.&lt;br /&gt;
&lt;br /&gt;
==== 3G Internet ====&lt;br /&gt;
&lt;br /&gt;
Using qmicli:&lt;br /&gt;
# qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz&lt;br /&gt;
# route del default&lt;br /&gt;
# sudo ifconfig wwan0 up&lt;br /&gt;
# dhclient wwan0&lt;br /&gt;
&lt;br /&gt;
Alternatively if updated to devel icd2 and the maemo gui should allow 3g data connection, if the sim is unlocked and the relevant packages are installed.&lt;br /&gt;
&lt;br /&gt;
==== GPS ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
modprobe gnss-motmdm and point gpsd to use /dev/gnss0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
22:30 &amp;lt; tmlind&amp;gt; hmm there&#039;s a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)&lt;br /&gt;
&lt;br /&gt;
Can try to &amp;lt;pre&amp;gt;&lt;br /&gt;
mkfifo /tmp/gps&lt;br /&gt;
cat /dev/gnss0 &amp;gt; /tmp/gps&lt;br /&gt;
Then point gpsd to use /tmp/gps&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== USSD ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
22:45 &amp;lt; tmlind&amp;gt; fyi, here&#039;s how to send USSD to query balance for example: printf &amp;quot;AT+CUSD=1,#999#,0\r&amp;quot; &amp;gt; /dev/motmdm1&lt;br /&gt;
22:47 &amp;lt; tmlind&amp;gt; fyi, for parsing incoming USSD, this web interface works if set to utf-8: &lt;br /&gt;
                https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== HDMI ====&lt;br /&gt;
Move output to external 1080p monitor.  Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Return to internal touchscreen display.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Keyboard / Mouse sharing with PC ====&lt;br /&gt;
To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[https://github.com/debauchee/barrier Barrier software-KVM switch]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Developers and testers may wish to disable the googley bits before compiling.&lt;br /&gt;
&lt;br /&gt;
==== BT Audio headset ====&lt;br /&gt;
&lt;br /&gt;
 sudo apt install pulseaudio-module-bluetooth blueman bluez&lt;br /&gt;
 sudo modprobe hci_uart&lt;br /&gt;
 pactl load-module module-bluetooth-discover&lt;br /&gt;
 blueman&lt;br /&gt;
&lt;br /&gt;
Pair &amp;amp; trust your device, connect audiosink. You can close blueman now. The quality seems a bit better in &#039;offline mode&#039;.&lt;br /&gt;
&lt;br /&gt;
== Gallery ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Motorola-Droid4-20200125.jpeg&lt;br /&gt;
Droid4-neofetch.JPG&lt;br /&gt;
Droid4_htop.jpg&lt;br /&gt;
Droid4_leste_logo.jpg&lt;br /&gt;
Cant_have_2_much_leste.jpg&lt;br /&gt;
Leste-neverball.jpg&lt;br /&gt;
Statsfun.jpg&lt;br /&gt;
Leste-glmatrix.png&lt;br /&gt;
Droid4-leste-utox2.jpg&lt;br /&gt;
Droid4-leste-pcsx.jpg&lt;br /&gt;
Droid4-leste-surf_master.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Old status overview ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Feature&lt;br /&gt;
! Leste supported&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux&lt;br /&gt;
|-&lt;br /&gt;
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]&lt;br /&gt;
|-&lt;br /&gt;
| Charging || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Wireless || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Ethernet || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| Micro USB || Yes || OTG and USB network&lt;br /&gt;
|-&lt;br /&gt;
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)&lt;br /&gt;
|-&lt;br /&gt;
| Screen || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/&lt;br /&gt;
|-&lt;br /&gt;
| Touchscreen || Yes || Capacitive&lt;br /&gt;
|-&lt;br /&gt;
| Audio || Yes || Implemented with Pulseaudio and UCM files&lt;br /&gt;
|-&lt;br /&gt;
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/&lt;br /&gt;
|-&lt;br /&gt;
| 4G data || No || Needs kernel work&lt;br /&gt;
|-&lt;br /&gt;
| SMS || Yes || Works with ofono. Needs Leste UI&lt;br /&gt;
|-&lt;br /&gt;
| Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI&lt;br /&gt;
|-&lt;br /&gt;
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded&lt;br /&gt;
|-&lt;br /&gt;
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers&lt;br /&gt;
|-&lt;br /&gt;
| FM Receiver || Not yet ||&lt;br /&gt;
|-&lt;br /&gt;
| Accelerometer || Yes || Available in /sys, and as input device via iio-uinput&lt;br /&gt;
|-&lt;br /&gt;
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet)&lt;br /&gt;
|-&lt;br /&gt;
| Gyro || N/A || &lt;br /&gt;
|-&lt;br /&gt;
| Proximity sensor || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Ambient Light Sensor || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Vibration Motor || Yes || &lt;br /&gt;
|-&lt;br /&gt;
| HDMI-out || Yes || No UI integration&lt;br /&gt;
|-&lt;br /&gt;
| TV-out || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]&lt;br /&gt;
|-&lt;br /&gt;
| Infrared || N/A || Missing in hardware&lt;br /&gt;
|-&lt;br /&gt;
| Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/&lt;br /&gt;
|-&lt;br /&gt;
| Idle power consumption || ~120mW || Needs sim inserted&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Device]]&lt;/div&gt;</summary>
		<author><name>BuZz</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Motorola_Droid_4&amp;diff=1112</id>
		<title>Motorola Droid 4</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Motorola_Droid_4&amp;diff=1112"/>
		<updated>2021-06-03T02:15:18Z</updated>

		<summary type="html">&lt;p&gt;BuZz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Device&lt;br /&gt;
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]&lt;br /&gt;
|manufacturer=Motorola&lt;br /&gt;
|codename=Maserati&lt;br /&gt;
|dimensions=127x67.3x12.7mm&lt;br /&gt;
|release_date=2012-02-10&lt;br /&gt;
|soc=TI OMAP4430&lt;br /&gt;
|dram=1024MB DDR2&lt;br /&gt;
|power=&lt;br /&gt;
|lcd=960x540 4&amp;quot;&lt;br /&gt;
|video=PowerVR SGX540 &lt;br /&gt;
|audio=&lt;br /&gt;
|network=&lt;br /&gt;
|storage=16GB flash&lt;br /&gt;
|usb=&lt;br /&gt;
|camera=&lt;br /&gt;
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor&lt;br /&gt;
|other=&lt;br /&gt;
|category=Supported&lt;br /&gt;
|sw_kernel=5.11.0&lt;br /&gt;
|sw_serial=Yes, [[#Serial Cable|special cable]]&lt;br /&gt;
|sw_charging=Yes&lt;br /&gt;
|sw_usb_slave=Yes&lt;br /&gt;
|sw_usb_host=Yes&lt;br /&gt;
|sw_touchscreen=Yes&lt;br /&gt;
|sw_keyboard=Yes&lt;br /&gt;
|sw_screen=Yes&lt;br /&gt;
|sw_hdmi=Yes&lt;br /&gt;
|sw_tv=&lt;br /&gt;
|sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed)&lt;br /&gt;
|sw_vibration=Yes&lt;br /&gt;
|sw_audio=Yes&lt;br /&gt;
|sw_calls=WIP&lt;br /&gt;
|sw_sms=Yes, no UI&lt;br /&gt;
|sw_wifi=Yes&lt;br /&gt;
|sw_ethernet=&lt;br /&gt;
|sw_irda=&lt;br /&gt;
|sw_2g3gdata=Yes&lt;br /&gt;
|sw_4g=No&lt;br /&gt;
|sw_bluetooth=Yes,  [[#Bluetooth|see notes]] &lt;br /&gt;
|sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers&lt;br /&gt;
|sw_fmrx=&lt;br /&gt;
|sw_nfc=&lt;br /&gt;
|sw_accelerometer=Yes&lt;br /&gt;
|sw_compass=Yes, no integration&lt;br /&gt;
|sw_gyro=&lt;br /&gt;
|sw_proximity=Yes&lt;br /&gt;
|sw_als=Yes&lt;br /&gt;
|sw_gps=Yes&lt;br /&gt;
|sw_agps=No&lt;br /&gt;
|sw_frontcam=No&lt;br /&gt;
|sw_backcam=No&lt;br /&gt;
|sw_idlepower=120mW&lt;br /&gt;
|sw_standbytime=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Hardware requirements:&lt;br /&gt;
&lt;br /&gt;
* Droid4 with fully charged battery&lt;br /&gt;
* MicroUSB cable&lt;br /&gt;
* MicroSD card&lt;br /&gt;
&lt;br /&gt;
Software requirements:&lt;br /&gt;
* Host Linux or Windows system&lt;br /&gt;
* Android Tools: fastboot&lt;br /&gt;
* Flashing tools:&lt;br /&gt;
** XZ Utils and coreutils for Linux&lt;br /&gt;
** Etcher[https://github.com/balena-io/etcher] for Windows&lt;br /&gt;
&lt;br /&gt;
Download from https://maedevu.maemo.org/images/droid4/&lt;br /&gt;
&lt;br /&gt;
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip&lt;br /&gt;
# flash-droid-4-fw.sh&lt;br /&gt;
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz&lt;br /&gt;
&lt;br /&gt;
Download from https://github.com/tmlind/droid4-kexecboot.git&lt;br /&gt;
&lt;br /&gt;
# utags-mmcblk1p13.bin&lt;br /&gt;
# droid4-kexecboot.img&lt;br /&gt;
&lt;br /&gt;
Check what kernel version your Android OS runs.&lt;br /&gt;
For this go to Settings -&amp;gt; About phone. Slide to the bottom, where you can see &amp;quot;Kernel version&amp;quot;.&lt;br /&gt;
If you have at least 3.0.8, you may skip &amp;quot;Updating Android&amp;quot; step below.&lt;br /&gt;
&lt;br /&gt;
Installation:&lt;br /&gt;
&lt;br /&gt;
# Create a working directory with above mentioned files in it&lt;br /&gt;
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip&lt;br /&gt;
# Power off Droid4 and connect it to the host machine with MicroUSB cable&lt;br /&gt;
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.&lt;br /&gt;
&lt;br /&gt;
=== Updating Android ===&lt;br /&gt;
&lt;br /&gt;
This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml&lt;br /&gt;
sudo bash ../flash-droid-4-fw.sh&lt;br /&gt;
popd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Setting up kexecboot ===&lt;br /&gt;
&lt;br /&gt;
Now, assuming you are in the working directory, install kexecboot:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin&lt;br /&gt;
sudo fastboot reboot-bootloader&lt;br /&gt;
sudo fastboot flash bpsw droid4-kexecboot.img&lt;br /&gt;
sudo fastboot flash utags utags-mmcblk1p13.bin&lt;br /&gt;
sudo fastboot reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you did &amp;quot;Updating Android&amp;quot; the device should run the firstboot steps.&lt;br /&gt;
If you didn&#039;t, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.&lt;br /&gt;
&lt;br /&gt;
=== Install Maemo Leste to the sdcard ===&lt;br /&gt;
&lt;br /&gt;
Now, flash the Maemo Leste image to your sdcard:&lt;br /&gt;
&lt;br /&gt;
On Linux:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE&lt;br /&gt;
sync&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Windows: Use Etcher&lt;br /&gt;
&lt;br /&gt;
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.&lt;br /&gt;
&lt;br /&gt;
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.&lt;br /&gt;
&lt;br /&gt;
== Updating ==&lt;br /&gt;
&lt;br /&gt;
Normally you can just apt update &amp;amp;&amp;amp; apt dist-upgrade to update to the latest version. If for some reason this fails:&lt;br /&gt;
&lt;br /&gt;
* Poweroff device, grab the SD card&lt;br /&gt;
* Backup any important files&lt;br /&gt;
* Grab the latest image from https://phoenix.maemo.org/view/Images/&lt;br /&gt;
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.&lt;br /&gt;
&lt;br /&gt;
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.&lt;br /&gt;
&lt;br /&gt;
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.&lt;br /&gt;
Blacklisting the module may help if you have such problems:&lt;br /&gt;
 echo &amp;quot;blacklist hci_uart&amp;quot; &amp;gt;&amp;gt; /etc/modprobe.d/blacklist.conf&lt;br /&gt;
&lt;br /&gt;
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]&lt;br /&gt;
&lt;br /&gt;
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/&lt;br /&gt;
&lt;br /&gt;
== Serial Cable ==&lt;br /&gt;
&lt;br /&gt;
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/&lt;br /&gt;
&lt;br /&gt;
While using the serial cable, if you lose the connection, the following may help:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
18:43 &amp;lt; tmlind&amp;gt; sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with &lt;br /&gt;
                the console login propt later&lt;br /&gt;
18:45 &amp;lt; tmlind&amp;gt; try plugging in a pc usb cable then back to uart cable in case that might help&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Bluetooth ==&lt;br /&gt;
&lt;br /&gt;
Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Stuff to try ==&lt;br /&gt;
&lt;br /&gt;
==== Blinkenlights ====&lt;br /&gt;
Adding this in rc.local above the &#039;&#039;exit 0&#039;&#039; gets you some blinkenlights to watschen und relaxen.&lt;br /&gt;
 echo cpu &amp;gt; /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight&lt;br /&gt;
 echo mmc0 &amp;gt; /sys/class/leds/shift-key-light/trigger      # gets you a &#039;hdd led&#039; of the SD card on the capslock light&lt;br /&gt;
&lt;br /&gt;
==== Wifi ====&lt;br /&gt;
&lt;br /&gt;
The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.&lt;br /&gt;
&lt;br /&gt;
Install necessary tools: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install ti-utils-wilink6 droid4-wlanconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Run calibration:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo maserati-calibrate&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Phone Call ====&lt;br /&gt;
&lt;br /&gt;
Make sure there is a SIM in the phone.&lt;br /&gt;
&lt;br /&gt;
Run this:&lt;br /&gt;
&lt;br /&gt;
Read modem output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat /dev/motmdm1 &amp;amp;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Online modem:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
printf &amp;quot;AT+CFUN=1\r&amp;quot; &amp;gt; /dev/motmdm1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Connect to network:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
printf &amp;quot;AT+COPS=1\r&amp;quot; &amp;gt; /dev/motmdm1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Print connected network:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
printf &amp;quot;AT+COPS?\r&amp;quot; &amp;gt; /dev/motmdm1&lt;br /&gt;
&lt;br /&gt;
Turn off signal reporting:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# printf &amp;quot;AT+SCRN=0\r&amp;quot; &amp;gt; /dev/motmdm1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dial a number:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
printf &amp;quot;ATD+1234567890\r&amp;quot; &amp;gt; /dev/motmdm1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hang up:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
printf &amp;quot;ATH\r&amp;quot; &amp;gt; /dev/motmdm1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Answer incoming call:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
printf &amp;quot;ATA\r&amp;quot; &amp;gt; /dev/motmdm1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Audio wise, in a pulsaudio of you choice switch to the make a phone call profile, and set the output device as desired.&lt;br /&gt;
&lt;br /&gt;
==== 3G Internet ====&lt;br /&gt;
&lt;br /&gt;
Using qmicli:&lt;br /&gt;
# qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz&lt;br /&gt;
# route del default&lt;br /&gt;
# sudo ifconfig wwan0 up&lt;br /&gt;
# dhclient wwan0&lt;br /&gt;
&lt;br /&gt;
Alternatively if updated to devel icd2 and the maemo gui should allow 3g data connection, if the sim is unlocked and the relevant packages are installed.&lt;br /&gt;
&lt;br /&gt;
==== GPS ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
modprobe gnss-motmdm and point gpsd to use /dev/gnss0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
22:30 &amp;lt; tmlind&amp;gt; hmm there&#039;s a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)&lt;br /&gt;
&lt;br /&gt;
Can try to &amp;lt;pre&amp;gt;&lt;br /&gt;
mkfifo /tmp/gps&lt;br /&gt;
cat /dev/gnss0 &amp;gt; /tmp/gps&lt;br /&gt;
Then point gpsd to use /tmp/gps&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== USSD ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
22:45 &amp;lt; tmlind&amp;gt; fyi, here&#039;s how to send USSD to query balance for example: printf &amp;quot;AT+CUSD=1,#999#,0\r&amp;quot; &amp;gt; /dev/motmdm1&lt;br /&gt;
22:47 &amp;lt; tmlind&amp;gt; fyi, for parsing incoming USSD, this web interface works if set to utf-8: &lt;br /&gt;
                https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== HDMI ====&lt;br /&gt;
Move output to external 1080p monitor.  Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Return to internal touchscreen display.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Keyboard / Mouse sharing with PC ====&lt;br /&gt;
To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[https://github.com/debauchee/barrier Barrier software-KVM switch]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Developers and testers may wish to disable the googley bits before compiling.&lt;br /&gt;
&lt;br /&gt;
==== BT Audio headset ====&lt;br /&gt;
&lt;br /&gt;
* sudo apt install pulseaudio-module-bluetooth blueman bluez&lt;br /&gt;
* sudo modprobe hci_uart&lt;br /&gt;
* pactl load-module module-bluetooth-discover&lt;br /&gt;
* blueman&lt;br /&gt;
* pair &amp;amp; trust your device, connect audiosink&lt;br /&gt;
&lt;br /&gt;
Quality seems a bit better in &#039;offline mode&#039;.&lt;br /&gt;
&lt;br /&gt;
== Gallery ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Motorola-Droid4-20200125.jpeg&lt;br /&gt;
Droid4-neofetch.JPG&lt;br /&gt;
Droid4_htop.jpg&lt;br /&gt;
Droid4_leste_logo.jpg&lt;br /&gt;
Cant_have_2_much_leste.jpg&lt;br /&gt;
Leste-neverball.jpg&lt;br /&gt;
Statsfun.jpg&lt;br /&gt;
Leste-glmatrix.png&lt;br /&gt;
Droid4-leste-utox2.jpg&lt;br /&gt;
Droid4-leste-pcsx.jpg&lt;br /&gt;
Droid4-leste-surf_master.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Old status overview ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Feature&lt;br /&gt;
! Leste supported&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux&lt;br /&gt;
|-&lt;br /&gt;
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]&lt;br /&gt;
|-&lt;br /&gt;
| Charging || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Wireless || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Ethernet || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| Micro USB || Yes || OTG and USB network&lt;br /&gt;
|-&lt;br /&gt;
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)&lt;br /&gt;
|-&lt;br /&gt;
| Screen || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/&lt;br /&gt;
|-&lt;br /&gt;
| Touchscreen || Yes || Capacitive&lt;br /&gt;
|-&lt;br /&gt;
| Audio || Yes || Implemented with Pulseaudio and UCM files&lt;br /&gt;
|-&lt;br /&gt;
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/&lt;br /&gt;
|-&lt;br /&gt;
| 4G data || No || Needs kernel work&lt;br /&gt;
|-&lt;br /&gt;
| SMS || Yes || Works with ofono. Needs Leste UI&lt;br /&gt;
|-&lt;br /&gt;
| Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI&lt;br /&gt;
|-&lt;br /&gt;
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded&lt;br /&gt;
|-&lt;br /&gt;
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers&lt;br /&gt;
|-&lt;br /&gt;
| FM Receiver || Not yet ||&lt;br /&gt;
|-&lt;br /&gt;
| Accelerometer || Yes || Available in /sys, and as input device via iio-uinput&lt;br /&gt;
|-&lt;br /&gt;
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet)&lt;br /&gt;
|-&lt;br /&gt;
| Gyro || N/A || &lt;br /&gt;
|-&lt;br /&gt;
| Proximity sensor || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Ambient Light Sensor || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Vibration Motor || Yes || &lt;br /&gt;
|-&lt;br /&gt;
| HDMI-out || Yes || No UI integration&lt;br /&gt;
|-&lt;br /&gt;
| TV-out || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]&lt;br /&gt;
|-&lt;br /&gt;
| Infrared || N/A || Missing in hardware&lt;br /&gt;
|-&lt;br /&gt;
| Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/&lt;br /&gt;
|-&lt;br /&gt;
| Idle power consumption || ~120mW || Needs sim inserted&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Device]]&lt;/div&gt;</summary>
		<author><name>BuZz</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Motorola_Droid_4&amp;diff=1111</id>
		<title>Motorola Droid 4</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Motorola_Droid_4&amp;diff=1111"/>
		<updated>2021-06-03T02:13:45Z</updated>

		<summary type="html">&lt;p&gt;BuZz: /* Bluetooth */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Device&lt;br /&gt;
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]&lt;br /&gt;
|manufacturer=Motorola&lt;br /&gt;
|codename=Maserati&lt;br /&gt;
|dimensions=127x67.3x12.7mm&lt;br /&gt;
|release_date=2012-02-10&lt;br /&gt;
|soc=TI OMAP4430&lt;br /&gt;
|dram=1024MB DDR2&lt;br /&gt;
|power=&lt;br /&gt;
|lcd=960x540 4&amp;quot;&lt;br /&gt;
|video=PowerVR SGX540 &lt;br /&gt;
|audio=&lt;br /&gt;
|network=&lt;br /&gt;
|storage=16GB flash&lt;br /&gt;
|usb=&lt;br /&gt;
|camera=&lt;br /&gt;
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor&lt;br /&gt;
|other=&lt;br /&gt;
|category=Supported&lt;br /&gt;
|sw_kernel=5.11.0&lt;br /&gt;
|sw_serial=Yes, [[#Serial Cable|special cable]]&lt;br /&gt;
|sw_charging=Yes&lt;br /&gt;
|sw_usb_slave=Yes&lt;br /&gt;
|sw_usb_host=Yes&lt;br /&gt;
|sw_touchscreen=Yes&lt;br /&gt;
|sw_keyboard=Yes&lt;br /&gt;
|sw_screen=Yes&lt;br /&gt;
|sw_hdmi=Yes&lt;br /&gt;
|sw_tv=&lt;br /&gt;
|sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed)&lt;br /&gt;
|sw_vibration=Yes&lt;br /&gt;
|sw_audio=Yes&lt;br /&gt;
|sw_calls=WIP&lt;br /&gt;
|sw_sms=Yes, no UI&lt;br /&gt;
|sw_wifi=Yes&lt;br /&gt;
|sw_ethernet=&lt;br /&gt;
|sw_irda=&lt;br /&gt;
|sw_2g3gdata=Yes&lt;br /&gt;
|sw_4g=No&lt;br /&gt;
|sw_bluetooth=Yes,  [[#Bluetooth|see notes]] &lt;br /&gt;
|sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers&lt;br /&gt;
|sw_fmrx=&lt;br /&gt;
|sw_nfc=&lt;br /&gt;
|sw_accelerometer=Yes&lt;br /&gt;
|sw_compass=Yes, no integration&lt;br /&gt;
|sw_gyro=&lt;br /&gt;
|sw_proximity=Yes&lt;br /&gt;
|sw_als=Yes&lt;br /&gt;
|sw_gps=Yes&lt;br /&gt;
|sw_agps=No&lt;br /&gt;
|sw_frontcam=No&lt;br /&gt;
|sw_backcam=No&lt;br /&gt;
|sw_idlepower=120mW&lt;br /&gt;
|sw_standbytime=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Hardware requirements:&lt;br /&gt;
&lt;br /&gt;
* Droid4 with fully charged battery&lt;br /&gt;
* MicroUSB cable&lt;br /&gt;
* MicroSD card&lt;br /&gt;
&lt;br /&gt;
Software requirements:&lt;br /&gt;
* Host Linux or Windows system&lt;br /&gt;
* Android Tools: fastboot&lt;br /&gt;
* Flashing tools:&lt;br /&gt;
** XZ Utils and coreutils for Linux&lt;br /&gt;
** Etcher[https://github.com/balena-io/etcher] for Windows&lt;br /&gt;
&lt;br /&gt;
Download from https://maedevu.maemo.org/images/droid4/&lt;br /&gt;
&lt;br /&gt;
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip&lt;br /&gt;
# flash-droid-4-fw.sh&lt;br /&gt;
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz&lt;br /&gt;
&lt;br /&gt;
Download from https://github.com/tmlind/droid4-kexecboot.git&lt;br /&gt;
&lt;br /&gt;
# utags-mmcblk1p13.bin&lt;br /&gt;
# droid4-kexecboot.img&lt;br /&gt;
&lt;br /&gt;
Check what kernel version your Android OS runs.&lt;br /&gt;
For this go to Settings -&amp;gt; About phone. Slide to the bottom, where you can see &amp;quot;Kernel version&amp;quot;.&lt;br /&gt;
If you have at least 3.0.8, you may skip &amp;quot;Updating Android&amp;quot; step below.&lt;br /&gt;
&lt;br /&gt;
Installation:&lt;br /&gt;
&lt;br /&gt;
# Create a working directory with above mentioned files in it&lt;br /&gt;
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip&lt;br /&gt;
# Power off Droid4 and connect it to the host machine with MicroUSB cable&lt;br /&gt;
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.&lt;br /&gt;
&lt;br /&gt;
=== Updating Android ===&lt;br /&gt;
&lt;br /&gt;
This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml&lt;br /&gt;
sudo bash ../flash-droid-4-fw.sh&lt;br /&gt;
popd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Setting up kexecboot ===&lt;br /&gt;
&lt;br /&gt;
Now, assuming you are in the working directory, install kexecboot:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin&lt;br /&gt;
sudo fastboot reboot-bootloader&lt;br /&gt;
sudo fastboot flash bpsw droid4-kexecboot.img&lt;br /&gt;
sudo fastboot flash utags utags-mmcblk1p13.bin&lt;br /&gt;
sudo fastboot reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you did &amp;quot;Updating Android&amp;quot; the device should run the firstboot steps.&lt;br /&gt;
If you didn&#039;t, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.&lt;br /&gt;
&lt;br /&gt;
=== Install Maemo Leste to the sdcard ===&lt;br /&gt;
&lt;br /&gt;
Now, flash the Maemo Leste image to your sdcard:&lt;br /&gt;
&lt;br /&gt;
On Linux:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE&lt;br /&gt;
sync&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Windows: Use Etcher&lt;br /&gt;
&lt;br /&gt;
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.&lt;br /&gt;
&lt;br /&gt;
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.&lt;br /&gt;
&lt;br /&gt;
== Updating ==&lt;br /&gt;
&lt;br /&gt;
Normally you can just apt update &amp;amp;&amp;amp; apt dist-upgrade to update to the latest version. If for some reason this fails:&lt;br /&gt;
&lt;br /&gt;
* Poweroff device, grab the SD card&lt;br /&gt;
* Backup any important files&lt;br /&gt;
* Grab the latest image from https://phoenix.maemo.org/view/Images/&lt;br /&gt;
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.&lt;br /&gt;
&lt;br /&gt;
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.&lt;br /&gt;
&lt;br /&gt;
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.&lt;br /&gt;
Blacklisting the module may help if you have such problems:&lt;br /&gt;
 echo &amp;quot;blacklist hci_uart&amp;quot; &amp;gt;&amp;gt; /etc/modprobe.d/blacklist.conf&lt;br /&gt;
&lt;br /&gt;
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]&lt;br /&gt;
&lt;br /&gt;
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/&lt;br /&gt;
&lt;br /&gt;
== Serial Cable ==&lt;br /&gt;
&lt;br /&gt;
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/&lt;br /&gt;
&lt;br /&gt;
While using the serial cable, if you lose the connection, the following may help:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
18:43 &amp;lt; tmlind&amp;gt; sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with &lt;br /&gt;
                the console login propt later&lt;br /&gt;
18:45 &amp;lt; tmlind&amp;gt; try plugging in a pc usb cable then back to uart cable in case that might help&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Bluetooth ==&lt;br /&gt;
&lt;br /&gt;
Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== BT Audio headset ==&lt;br /&gt;
&lt;br /&gt;
* sudo apt install pulseaudio-module-bluetooth blueman bluez&lt;br /&gt;
* sudo modprobe hci_uart&lt;br /&gt;
* pactl load-module module-bluetooth-discover&lt;br /&gt;
* blueman&lt;br /&gt;
* pair &amp;amp; trust your device, connect audiosink&lt;br /&gt;
&lt;br /&gt;
Quality seems a bit better in &#039;offline mode&#039;.&lt;br /&gt;
&lt;br /&gt;
== Stuff to try ==&lt;br /&gt;
&lt;br /&gt;
==== Blinkenlights ====&lt;br /&gt;
Adding this in rc.local above the &#039;&#039;exit 0&#039;&#039; gets you some blinkenlights to watschen und relaxen.&lt;br /&gt;
 echo cpu &amp;gt; /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight&lt;br /&gt;
 echo mmc0 &amp;gt; /sys/class/leds/shift-key-light/trigger      # gets you a &#039;hdd led&#039; of the SD card on the capslock light&lt;br /&gt;
&lt;br /&gt;
==== Wifi ====&lt;br /&gt;
&lt;br /&gt;
The WL1285C Wifi chip in the droid 4 has no onboard nvmem to save its calibration parameters or its MAC address. Instead it gets these parameters from a configuration file provided by the kernel. By default a generic file is provided but for optimal range and a correct persistent MAC address a calibration procedure must be performed.&lt;br /&gt;
&lt;br /&gt;
Install necessary tools: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install ti-utils-wilink6 droid4-wlanconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Run calibration:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo maserati-calibrate&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Phone Call ====&lt;br /&gt;
&lt;br /&gt;
Make sure there is a SIM in the phone.&lt;br /&gt;
&lt;br /&gt;
Run this:&lt;br /&gt;
&lt;br /&gt;
Read modem output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat /dev/motmdm1 &amp;amp;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Online modem:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
printf &amp;quot;AT+CFUN=1\r&amp;quot; &amp;gt; /dev/motmdm1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Connect to network:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
printf &amp;quot;AT+COPS=1\r&amp;quot; &amp;gt; /dev/motmdm1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Print connected network:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
printf &amp;quot;AT+COPS?\r&amp;quot; &amp;gt; /dev/motmdm1&lt;br /&gt;
&lt;br /&gt;
Turn off signal reporting:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# printf &amp;quot;AT+SCRN=0\r&amp;quot; &amp;gt; /dev/motmdm1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dial a number:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
printf &amp;quot;ATD+1234567890\r&amp;quot; &amp;gt; /dev/motmdm1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hang up:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
printf &amp;quot;ATH\r&amp;quot; &amp;gt; /dev/motmdm1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Answer incoming call:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
printf &amp;quot;ATA\r&amp;quot; &amp;gt; /dev/motmdm1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Audio wise, in a pulsaudio of you choice switch to the make a phone call profile, and set the output device as desired.&lt;br /&gt;
&lt;br /&gt;
==== 3G Internet ====&lt;br /&gt;
&lt;br /&gt;
Using qmicli:&lt;br /&gt;
# qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz&lt;br /&gt;
# route del default&lt;br /&gt;
# sudo ifconfig wwan0 up&lt;br /&gt;
# dhclient wwan0&lt;br /&gt;
&lt;br /&gt;
Alternatively if updated to devel icd2 and the maemo gui should allow 3g data connection, if the sim is unlocked and the relevant packages are installed.&lt;br /&gt;
&lt;br /&gt;
==== GPS ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
modprobe gnss-motmdm and point gpsd to use /dev/gnss0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
22:30 &amp;lt; tmlind&amp;gt; hmm there&#039;s a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)&lt;br /&gt;
&lt;br /&gt;
Can try to &amp;lt;pre&amp;gt;&lt;br /&gt;
mkfifo /tmp/gps&lt;br /&gt;
cat /dev/gnss0 &amp;gt; /tmp/gps&lt;br /&gt;
Then point gpsd to use /tmp/gps&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== USSD ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
22:45 &amp;lt; tmlind&amp;gt; fyi, here&#039;s how to send USSD to query balance for example: printf &amp;quot;AT+CUSD=1,#999#,0\r&amp;quot; &amp;gt; /dev/motmdm1&lt;br /&gt;
22:47 &amp;lt; tmlind&amp;gt; fyi, for parsing incoming USSD, this web interface works if set to utf-8: &lt;br /&gt;
                https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== HDMI ====&lt;br /&gt;
Move output to external 1080p monitor.  Disabling DSI-1 output gets xorg pointer displayed on HDMI, for use with a mouse or barrier.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Return to internal touchscreen display.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xrandr --output DSI-1 --auto --rotate right --output HDMI-1 --off&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Keyboard / Mouse sharing with PC ====&lt;br /&gt;
To use droid4 while working at desktop it can be convenient to share mouse and keyboard of the host pc with droid4.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[https://github.com/debauchee/barrier Barrier software-KVM switch]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Developers and testers may wish to disable the googley bits before compiling.&lt;br /&gt;
&lt;br /&gt;
== Gallery ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Motorola-Droid4-20200125.jpeg&lt;br /&gt;
Droid4-neofetch.JPG&lt;br /&gt;
Droid4_htop.jpg&lt;br /&gt;
Droid4_leste_logo.jpg&lt;br /&gt;
Cant_have_2_much_leste.jpg&lt;br /&gt;
Leste-neverball.jpg&lt;br /&gt;
Statsfun.jpg&lt;br /&gt;
Leste-glmatrix.png&lt;br /&gt;
Droid4-leste-utox2.jpg&lt;br /&gt;
Droid4-leste-pcsx.jpg&lt;br /&gt;
Droid4-leste-surf_master.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Old status overview ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Feature&lt;br /&gt;
! Leste supported&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Kernel version || 5.9.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux&lt;br /&gt;
|-&lt;br /&gt;
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]&lt;br /&gt;
|-&lt;br /&gt;
| Charging || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Wireless || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Ethernet || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| Micro USB || Yes || OTG and USB network&lt;br /&gt;
|-&lt;br /&gt;
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)&lt;br /&gt;
|-&lt;br /&gt;
| Screen || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/&lt;br /&gt;
|-&lt;br /&gt;
| Touchscreen || Yes || Capacitive&lt;br /&gt;
|-&lt;br /&gt;
| Audio || Yes || Implemented with Pulseaudio and UCM files&lt;br /&gt;
|-&lt;br /&gt;
| 2G/3G data || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/&lt;br /&gt;
|-&lt;br /&gt;
| 4G data || No || Needs kernel work&lt;br /&gt;
|-&lt;br /&gt;
| SMS || Yes || Works with ofono. Needs Leste UI&lt;br /&gt;
|-&lt;br /&gt;
| Phone calls || Yes || Works with ofono (good call quality, too), needs Leste UI&lt;br /&gt;
|-&lt;br /&gt;
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290. Due to interference with WiFi, load driver manually, AFTER wifi module loaded&lt;br /&gt;
|-&lt;br /&gt;
| FM Transmitter || No || Apparently exists, and will need serdev kernel modules/drivers&lt;br /&gt;
|-&lt;br /&gt;
| FM Receiver || Not yet ||&lt;br /&gt;
|-&lt;br /&gt;
| Accelerometer || Yes || Available in /sys, and as input device via iio-uinput&lt;br /&gt;
|-&lt;br /&gt;
| Compass || Yes || Available in /sys (after loading ak8975 module. No Leste integration applications using it yet)&lt;br /&gt;
|-&lt;br /&gt;
| Gyro || N/A || &lt;br /&gt;
|-&lt;br /&gt;
| Proximity sensor || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Ambient Light Sensor || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Vibration Motor || Yes || &lt;br /&gt;
|-&lt;br /&gt;
| HDMI-out || Yes || No UI integration&lt;br /&gt;
|-&lt;br /&gt;
| TV-out || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| GPS || Yes || Works with gpsd but is not integrated yet, see [[#GPS|GPS]]&lt;br /&gt;
|-&lt;br /&gt;
| Infrared || N/A || Missing in hardware&lt;br /&gt;
|-&lt;br /&gt;
| Camera || No || See https://elektranox.org/2018/02/0025-droid-camera/&lt;br /&gt;
|-&lt;br /&gt;
| Idle power consumption || ~120mW || Needs sim inserted&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Device]]&lt;/div&gt;</summary>
		<author><name>BuZz</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Main_Page&amp;diff=899</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Main_Page&amp;diff=899"/>
		<updated>2020-12-31T11:29:15Z</updated>

		<summary type="html">&lt;p&gt;BuZz: /* Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Description =&lt;br /&gt;
&lt;br /&gt;
Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo Fremantle. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, Allwinner Tablets and more.&lt;br /&gt;
&lt;br /&gt;
You can find us on &#039;&#039;&#039;freenode&#039;&#039;&#039;, channel &#039;&#039;&#039;#maemo-leste&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
For an overview of the current status, you might want to check out: [[Status]]&lt;br /&gt;
&lt;br /&gt;
Maemo Leste is based on Devuan Beowulf (Debian Buster) and all the &amp;quot;supported&amp;quot; devices ship with recent Linux (mainline-based) kernels.&lt;br /&gt;
&lt;br /&gt;
The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers.&lt;br /&gt;
&lt;br /&gt;
For some devices, we have development images available, such as the N900. So far we have set up Devuan/Debian repositories for our packages, with builds for armhf, arm64 and amd64. We have FOSS replacements for some closed Maemo packages, further building on the Maemo community efforts to replace all closed bits by open software.&lt;br /&gt;
&lt;br /&gt;
If you have not used Maemo before, you might want to check out some of the tips on the [[HowTo]] page.&lt;br /&gt;
&lt;br /&gt;
== Frequently Asked Questions ==&lt;br /&gt;
&lt;br /&gt;
See [[Leste_FAQ|FAQ]]&lt;br /&gt;
&lt;br /&gt;
== Supported Devices ==&lt;br /&gt;
&lt;br /&gt;
See [[:Category:Device]]&lt;br /&gt;
&lt;br /&gt;
== Latest Images ==&lt;br /&gt;
&lt;br /&gt;
https://phoenix.maemo.org/view/Images/&lt;br /&gt;
&lt;br /&gt;
== Development ==&lt;br /&gt;
&lt;br /&gt;
See [[Development]]&lt;br /&gt;
&lt;br /&gt;
== Roadmap ==&lt;br /&gt;
&lt;br /&gt;
=== Project milestones ===&lt;br /&gt;
https://github.com/maemo-leste/bugtracker/milestones&lt;br /&gt;
&lt;br /&gt;
=== Wishlist ===&lt;br /&gt;
&lt;br /&gt;
You have an application you want to see in Leste? Please let us know [[Wishlist|here]].&lt;br /&gt;
&lt;br /&gt;
== Talks ==&lt;br /&gt;
&lt;br /&gt;
See [[Talks]]&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
The central point of meeting and talking is IRC (irc.freenode.net in #maemo-leste) and this thread: https://talk.maemo.org/showthread.php?t=100192.&lt;br /&gt;
&lt;br /&gt;
*Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io]&lt;br /&gt;
&lt;br /&gt;
*Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues]&lt;br /&gt;
&lt;br /&gt;
*Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/]&lt;br /&gt;
&lt;br /&gt;
*Our Extras Github: [https://github.com/maemo-leste-extras/ https://github.com/maemo-leste-extras/]&lt;br /&gt;
&lt;br /&gt;
*Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/] and https://phoenix.maemo.org/view/Images/&lt;br /&gt;
&lt;br /&gt;
*Our Jenkins build server: [https://phoenix.maemo.org/ https://phoenix.maemo.org/]&lt;br /&gt;
&lt;br /&gt;
*Our IRC history: [http://maedevu.maemo.org/irc.txt http://maedevu.maemo.org/irc.txt]&lt;br /&gt;
&lt;br /&gt;
*Our YouTube channel: [https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w] (via [https://www.invidio.us/channel/UCgAWiHvWSuJAg5hjk7JYn1w Invidious] )&lt;br /&gt;
&lt;br /&gt;
*Our Package index: [https://maedevu.maemo.org/pkgweb/ https://maedevu.maemo.org/pkgweb/] which runs [https://github.com/maemo-leste/mpi https://github.com/maemo-leste/mpi]&lt;br /&gt;
&lt;br /&gt;
*Mailing List: [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html]&lt;br /&gt;
&lt;br /&gt;
*RSS feed: [https://maemo-leste.github.io/feeds/all.atom.xml https://maemo-leste.github.io/feeds/all.atom.xml]&lt;br /&gt;
&lt;br /&gt;
*[https://distrowatch.com/dwres.php?resource=submit Maemo Leste on Distrowatch (voting)]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>BuZz</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Motorola_Droid_4&amp;diff=730</id>
		<title>Motorola Droid 4</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Motorola_Droid_4&amp;diff=730"/>
		<updated>2020-05-11T22:19:46Z</updated>

		<summary type="html">&lt;p&gt;BuZz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Device&lt;br /&gt;
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]&lt;br /&gt;
|manufacturer=Motorola&lt;br /&gt;
|codename=Maserati&lt;br /&gt;
|dimensions=127x67.3x12.7mm&lt;br /&gt;
|release_date=2012-02-10&lt;br /&gt;
|soc=TI OMAP4430&lt;br /&gt;
|dram=1024MB DDR2&lt;br /&gt;
|power=&lt;br /&gt;
|lcd=960x540 4&amp;quot;&lt;br /&gt;
|video=PowerVR SGX540 &lt;br /&gt;
|audio=&lt;br /&gt;
|network=&lt;br /&gt;
|storage=16GB flash&lt;br /&gt;
|usb=&lt;br /&gt;
|camera=&lt;br /&gt;
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor&lt;br /&gt;
|other=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Feature&lt;br /&gt;
! Leste supported&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Kernel version || 5.6.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux&lt;br /&gt;
|-&lt;br /&gt;
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]&lt;br /&gt;
|-&lt;br /&gt;
| Charging || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Wireless || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Ethernet || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| Micro USB || Yes || OTG&lt;br /&gt;
|-&lt;br /&gt;
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)&lt;br /&gt;
|-&lt;br /&gt;
| Screen || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/&lt;br /&gt;
|-&lt;br /&gt;
| Touchscreen || Yes || Capacitive&lt;br /&gt;
|-&lt;br /&gt;
| Audio || Yes || Switch around in alsamixer to get the right outputs working (&#039;Speaker Right&#039; set to &#039;HiFi&#039; and &#039;HiFi&#039; set to above 0 gets you output)&lt;br /&gt;
|-&lt;br /&gt;
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/&lt;br /&gt;
|-&lt;br /&gt;
| SMS || WIP || Work with AT commands, needs ofono porting work, and then Leste UI&lt;br /&gt;
|-&lt;br /&gt;
| Phone calls || WIP || Work with AT commands (good call quality, too), needs ofono porting work, and then Leste UI&lt;br /&gt;
|-&lt;br /&gt;
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290.&lt;br /&gt;
|-&lt;br /&gt;
| FM Transmitter || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| FM Receiver || Not yet ||&lt;br /&gt;
|-&lt;br /&gt;
| Accelerometer || ? || Available in /sys, but not yet as input device, needs kernel and MCE work https://github.com/maemo-leste/bugtracker/issues/294&lt;br /&gt;
|-&lt;br /&gt;
| Compass || ? || Available in /sys (after loading ak8975 module. No applications using it yet&lt;br /&gt;
|-&lt;br /&gt;
| Proximity sensor || WIP || Sensor works, not yet exposed as evdev device&lt;br /&gt;
|-&lt;br /&gt;
| Ambient Light Sensor || Yes || https://github.com/maemo-leste/mce/pull/8&lt;br /&gt;
|-&lt;br /&gt;
| HDMI-out || WIP || works, but not with hildon-desktop&lt;br /&gt;
|-&lt;br /&gt;
| TV-out || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| Vibration Motor || Yes || No userspace yet (should be in mce)&lt;br /&gt;
|-&lt;br /&gt;
| Compass || No || Mainline supports it, so Leste needs to add config - see https://github.com/maemo-leste/bugtracker/issues/294&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Hardware requirements:&lt;br /&gt;
&lt;br /&gt;
* Droid4 with fully charged battery&lt;br /&gt;
* MicroUSB cable&lt;br /&gt;
* MicroSD card&lt;br /&gt;
&lt;br /&gt;
Software requirements:&lt;br /&gt;
* Host Linux or Windows system&lt;br /&gt;
* Android Tools: fastboot&lt;br /&gt;
* Flashing tools:&lt;br /&gt;
** XZ Utils and coreutils for Linux&lt;br /&gt;
** Etcher[https://github.com/balena-io/etcher] for Windows&lt;br /&gt;
&lt;br /&gt;
Download from https://maedevu.maemo.org/images/droid4/&lt;br /&gt;
&lt;br /&gt;
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip&lt;br /&gt;
# flash-droid-4-fw.sh&lt;br /&gt;
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi)&lt;br /&gt;
&lt;br /&gt;
Download from https://github.com/tmlind/droid4-kexecboot.git&lt;br /&gt;
&lt;br /&gt;
# utags-mmcblk1p13.bin&lt;br /&gt;
# droid4-kexecboot.img&lt;br /&gt;
&lt;br /&gt;
Check what kernel version your Android OS runs.&lt;br /&gt;
For this go to Settings -&amp;gt; About phone. Slide to the bottom, where you can see &amp;quot;Kernel version&amp;quot;.&lt;br /&gt;
If you have at least 3.0.8, you may skip &amp;quot;Updating Android&amp;quot; step below.&lt;br /&gt;
&lt;br /&gt;
Installation:&lt;br /&gt;
&lt;br /&gt;
# Create a working directory with above mentioned files in it&lt;br /&gt;
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip&lt;br /&gt;
# Power off Droid4 and connect it to the host machine with MicroUSB cable&lt;br /&gt;
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.&lt;br /&gt;
&lt;br /&gt;
Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml&lt;br /&gt;
sudo bash ../flash-droid-4-fw.sh&lt;br /&gt;
popd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now, assuming you are in the working directory, install kexecboot:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin&lt;br /&gt;
sudo fastboot reboot-bootloader&lt;br /&gt;
sudo fastboot flash bpsw droid4-kexecboot.img&lt;br /&gt;
sudo fastboot flash utags utags-mmcblk1p13.bin&lt;br /&gt;
sudo fastboot reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you did &amp;quot;Updating Android&amp;quot; the device should run the firstboot steps.&lt;br /&gt;
If you didn&#039;t, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.&lt;br /&gt;
&lt;br /&gt;
Now, flash the Maemo Leste image to your sdcard:&lt;br /&gt;
&lt;br /&gt;
On Linux:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE&lt;br /&gt;
sync&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Windows: Use Etcher&lt;br /&gt;
&lt;br /&gt;
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.&lt;br /&gt;
&lt;br /&gt;
You should now see Maemo Leste booting up, and it will show you hildon-desktop after a minute.&lt;br /&gt;
&lt;br /&gt;
== Updating ==&lt;br /&gt;
&lt;br /&gt;
* Poweroff device, grab the SD card&lt;br /&gt;
* Backup any important files&lt;br /&gt;
* Grab latest image from https://maedevu.maemo.org/images/droid4/&lt;br /&gt;
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.&lt;br /&gt;
&lt;br /&gt;
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.&lt;br /&gt;
&lt;br /&gt;
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.&lt;br /&gt;
Blacklisting the module may help if you have such problems:&lt;br /&gt;
 echo &amp;quot;blacklist hci_uart&amp;quot; &amp;gt;&amp;gt; /etc/modprobe.d/blacklist.conf&lt;br /&gt;
&lt;br /&gt;
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]&lt;br /&gt;
&lt;br /&gt;
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/&lt;br /&gt;
&lt;br /&gt;
== Serial Cable ==&lt;br /&gt;
&lt;br /&gt;
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/&lt;br /&gt;
&lt;br /&gt;
While using the serial cable, if you lose the connection, the following may help:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
18:43 &amp;lt; tmlind&amp;gt; sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with &lt;br /&gt;
                the console login propt later&lt;br /&gt;
18:45 &amp;lt; tmlind&amp;gt; try plugging in a pc usb cable then back to uart cable in case that might help&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Stuff to try ==&lt;br /&gt;
&lt;br /&gt;
==== Blinkenlights ====&lt;br /&gt;
Adding this in rc.local above the &#039;&#039;exit 0&#039;&#039; gets you some blinkenlights to watschen und relaxen.&lt;br /&gt;
 echo cpu &amp;gt; /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight&lt;br /&gt;
 echo mmc0 &amp;gt; /sys/class/leds/shift-key-light/trigger      # gets you a &#039;hdd led&#039; of the SD card on the capslock light&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Phone Call ====&lt;br /&gt;
&lt;br /&gt;
Make sure there is a SIM in the phone.&lt;br /&gt;
&lt;br /&gt;
Run this over SSH:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Read modem output: &lt;br /&gt;
# cat /dev/motmdm1 &amp;amp;&lt;br /&gt;
&lt;br /&gt;
Online modem:&lt;br /&gt;
# printf &amp;quot;AT+CFUN=1\r&amp;quot; &amp;gt; /dev/motmdm1&lt;br /&gt;
&lt;br /&gt;
Connect to network:&lt;br /&gt;
&lt;br /&gt;
# printf &amp;quot;AT+COPS=1\r&amp;quot; &amp;gt; /dev/motmdm1&lt;br /&gt;
&lt;br /&gt;
Print connected network:&lt;br /&gt;
&lt;br /&gt;
# printf &amp;quot;AT+COPS?\r&amp;quot; &amp;gt; /dev/motmdm1&lt;br /&gt;
&lt;br /&gt;
Not sure, do it anyway:&lt;br /&gt;
&lt;br /&gt;
# printf &amp;quot;AT+SCRN=0\r&amp;quot; &amp;gt; /dev/motmdm1&lt;br /&gt;
&lt;br /&gt;
Dial a number:&lt;br /&gt;
&lt;br /&gt;
# printf &amp;quot;ATD+1234567890\r&amp;quot; &amp;gt; /dev/motmdm1&lt;br /&gt;
&lt;br /&gt;
Hang up:&lt;br /&gt;
&lt;br /&gt;
# printf &amp;quot;ATH\r&amp;quot; &amp;gt; /dev/motmdm1&lt;br /&gt;
&lt;br /&gt;
Answer incoming call:&lt;br /&gt;
&lt;br /&gt;
# printf &amp;quot;ATA\r&amp;quot; &amp;gt; /dev/motmdm1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to &amp;quot;speakerphone&amp;quot; and set the right speaker to &amp;quot;voice&amp;quot; codec, and set volume for both call and voice to something non-zero.&lt;br /&gt;
&lt;br /&gt;
==== 3G Internet ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
22:12 &amp;lt; pave1&amp;gt; qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz&lt;br /&gt;
22:12 &amp;lt; pave1&amp;gt; route del default&lt;br /&gt;
22:12 &amp;lt; pave1&amp;gt; sudo ifconfig wwan0 up&lt;br /&gt;
22:12 &amp;lt; pave1&amp;gt; dhclient wwan0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== GPS ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
modprobe gnss-motmdm and point gpsd to use /dev/gnss0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
22:30 &amp;lt; tmlind&amp;gt; hmm there&#039;s a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)&lt;br /&gt;
&lt;br /&gt;
Can try to &amp;lt;pre&amp;gt;&lt;br /&gt;
mkfifo /tmp/gps&lt;br /&gt;
cat /dev/gnss0 &amp;gt; /tmp/gps&lt;br /&gt;
Then point gpsd to use /tmp/gps&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== USSD ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
22:45 &amp;lt; tmlind&amp;gt; fyi, here&#039;s how to send USSD to query balance for example: printf &amp;quot;AT+CUSD=1,#999#,0\r&amp;quot; &amp;gt; /dev/motmdm1&lt;br /&gt;
22:47 &amp;lt; tmlind&amp;gt; fyi, for parsing incoming USSD, this web interface works if set to utf-8: &lt;br /&gt;
                https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Gallery ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Motorola-Droid4-20200125.jpeg&lt;br /&gt;
Droid4-neofetch.JPG&lt;br /&gt;
Droid4_htop.jpg&lt;br /&gt;
Droid4_leste_logo.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Device]]&lt;/div&gt;</summary>
		<author><name>BuZz</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Motorola_Droid_4&amp;diff=727</id>
		<title>Motorola Droid 4</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Motorola_Droid_4&amp;diff=727"/>
		<updated>2020-05-06T03:14:07Z</updated>

		<summary type="html">&lt;p&gt;BuZz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Device&lt;br /&gt;
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]&lt;br /&gt;
|manufacturer=Motorola&lt;br /&gt;
|codename=Maserati&lt;br /&gt;
|dimensions=127x67.3x12.7mm&lt;br /&gt;
|release_date=2012-02-10&lt;br /&gt;
|soc=TI OMAP4430&lt;br /&gt;
|dram=1024MB DDR2&lt;br /&gt;
|power=&lt;br /&gt;
|lcd=960x540 4&amp;quot;&lt;br /&gt;
|video=PowerVR SGX540 &lt;br /&gt;
|audio=&lt;br /&gt;
|network=&lt;br /&gt;
|storage=16GB flash&lt;br /&gt;
|usb=&lt;br /&gt;
|camera=&lt;br /&gt;
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor&lt;br /&gt;
|other=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Feature&lt;br /&gt;
! Leste supported&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Kernel version || 5.6.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux&lt;br /&gt;
|-&lt;br /&gt;
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]&lt;br /&gt;
|-&lt;br /&gt;
| Charging || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Wireless || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Ethernet || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| Micro USB || Yes || OTG&lt;br /&gt;
|-&lt;br /&gt;
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)&lt;br /&gt;
|-&lt;br /&gt;
| Screen || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/&lt;br /&gt;
|-&lt;br /&gt;
| Touchscreen || Yes || Capacitive&lt;br /&gt;
|-&lt;br /&gt;
| Audio || Yes || Switch around in alsamixer to get the right outputs working (&#039;Speaker Right&#039; set to &#039;HiFi&#039; and &#039;HiFi&#039; set to above 0 gets you output)&lt;br /&gt;
|-&lt;br /&gt;
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/&lt;br /&gt;
|-&lt;br /&gt;
| SMS || WIP || Work with AT commands, needs ofono porting work, and then Leste UI&lt;br /&gt;
|-&lt;br /&gt;
| Phone calls || WIP || Work with AT commands (good call quality, too), needs ofono porting work, and then Leste UI&lt;br /&gt;
|-&lt;br /&gt;
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290.&lt;br /&gt;
|-&lt;br /&gt;
| FM Transmitter || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| FM Receiver || Not yet ||&lt;br /&gt;
|-&lt;br /&gt;
| Accelerometer || ? || Available in /sys, but not yet as input device, needs kernel and MCE work https://github.com/maemo-leste/bugtracker/issues/294&lt;br /&gt;
|-&lt;br /&gt;
| Compass || ? || Available in /sys (after loading ak8975 module. No applications using it yet&lt;br /&gt;
|-&lt;br /&gt;
| Proximity sensor || WIP || Sensor works, not yet exposed as evdev device&lt;br /&gt;
|-&lt;br /&gt;
| Ambient Light Sensor || Yes || https://github.com/maemo-leste/mce/pull/8&lt;br /&gt;
|-&lt;br /&gt;
| HDMI-out || WIP || works, but not with hildon-desktop&lt;br /&gt;
|-&lt;br /&gt;
| TV-out || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| Vibration Motor || Yes || No userspace yet (should be in mce)&lt;br /&gt;
|-&lt;br /&gt;
| Compass || No || Mainline supports it, so Leste needs to add config - see https://github.com/maemo-leste/bugtracker/issues/294&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Hardware requirements:&lt;br /&gt;
&lt;br /&gt;
* Droid4 with fully charged battery&lt;br /&gt;
* MicroUSB cable&lt;br /&gt;
* MicroSD card&lt;br /&gt;
&lt;br /&gt;
Software requirements:&lt;br /&gt;
* Host Linux or Windows system&lt;br /&gt;
* Android Tools: fastboot&lt;br /&gt;
* Flashing tools:&lt;br /&gt;
** XZ Utils and coreutils for Linux&lt;br /&gt;
** Etcher[https://github.com/balena-io/etcher] for Windows&lt;br /&gt;
&lt;br /&gt;
Download from https://maedevu.maemo.org/images/droid4/&lt;br /&gt;
&lt;br /&gt;
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip&lt;br /&gt;
# flash-droid-4-fw.sh&lt;br /&gt;
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi)&lt;br /&gt;
&lt;br /&gt;
Download from https://github.com/tmlind/droid4-kexecboot.git&lt;br /&gt;
&lt;br /&gt;
# utags-mmcblk1p13.bin&lt;br /&gt;
# droid4-kexecboot.img&lt;br /&gt;
&lt;br /&gt;
Check what kernel version your Android OS runs.&lt;br /&gt;
For this go to Settings -&amp;gt; About phone. Slide to the bottom, where you can see &amp;quot;Kernel version&amp;quot;.&lt;br /&gt;
If you have at least 3.0.8, you may skip &amp;quot;Updating Android&amp;quot; step below.&lt;br /&gt;
&lt;br /&gt;
Installation:&lt;br /&gt;
&lt;br /&gt;
# Create a working directory with above mentioned files in it&lt;br /&gt;
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip&lt;br /&gt;
# Power off Droid4 and connect it to the host machine with MicroUSB cable&lt;br /&gt;
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.&lt;br /&gt;
&lt;br /&gt;
Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml&lt;br /&gt;
sudo bash ../flash-droid-4-fw.sh&lt;br /&gt;
popd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now, assuming you are in the working directory, install kexecboot:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin&lt;br /&gt;
sudo fastboot reboot-bootloader&lt;br /&gt;
sudo fastboot flash bpsw droid4-kexecboot.img&lt;br /&gt;
sudo fastboot flash utags utags-mmcblk1p13.bin&lt;br /&gt;
sudo fastboot reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you did &amp;quot;Updating Android&amp;quot; the device should run the firstboot steps.&lt;br /&gt;
If you didn&#039;t, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.&lt;br /&gt;
&lt;br /&gt;
Now, flash the Maemo Leste image to your sdcard:&lt;br /&gt;
&lt;br /&gt;
On Linux:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE&lt;br /&gt;
sync&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Windows: Use Etcher&lt;br /&gt;
&lt;br /&gt;
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.&lt;br /&gt;
&lt;br /&gt;
You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute.&lt;br /&gt;
&lt;br /&gt;
== Updating ==&lt;br /&gt;
&lt;br /&gt;
* Poweroff device, grab the SD card&lt;br /&gt;
* Backup any important files&lt;br /&gt;
* Grab latest image from https://maedevu.maemo.org/images/droid4/&lt;br /&gt;
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.&lt;br /&gt;
&lt;br /&gt;
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.&lt;br /&gt;
&lt;br /&gt;
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.&lt;br /&gt;
Blacklisting the module may help if you have such problems:&lt;br /&gt;
 echo &amp;quot;blacklist hci_uart&amp;quot; &amp;gt;&amp;gt; /etc/modprobe.d/blacklist.conf&lt;br /&gt;
&lt;br /&gt;
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]&lt;br /&gt;
&lt;br /&gt;
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/&lt;br /&gt;
&lt;br /&gt;
== Serial Cable ==&lt;br /&gt;
&lt;br /&gt;
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/&lt;br /&gt;
&lt;br /&gt;
While using the serial cable, if you lose the connection, the following may help:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
18:43 &amp;lt; tmlind&amp;gt; sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with &lt;br /&gt;
                the console login propt later&lt;br /&gt;
18:45 &amp;lt; tmlind&amp;gt; try plugging in a pc usb cable then back to uart cable in case that might help&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Stuff to try ==&lt;br /&gt;
&lt;br /&gt;
==== Blinkenlights ====&lt;br /&gt;
Adding this in rc.local above the &#039;&#039;exit 0&#039;&#039; gets you some blinkenlights to watschen und relaxen.&lt;br /&gt;
 echo cpu &amp;gt; /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight&lt;br /&gt;
 echo mmc0 &amp;gt; /sys/class/leds/shift-key-light/trigger      # gets you a &#039;hdd led&#039; of the SD card on the capslock light&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Phone Call ====&lt;br /&gt;
&lt;br /&gt;
Make sure there is a SIM in the phone.&lt;br /&gt;
&lt;br /&gt;
Run this over SSH:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Read modem output: &lt;br /&gt;
# cat /dev/motmdm1 &amp;amp;&lt;br /&gt;
&lt;br /&gt;
Online modem:&lt;br /&gt;
# printf &amp;quot;AT+CFUN=1\r&amp;quot; &amp;gt; /dev/motmdm1&lt;br /&gt;
&lt;br /&gt;
Connect to network:&lt;br /&gt;
&lt;br /&gt;
# printf &amp;quot;AT+COPS=1\r&amp;quot; &amp;gt; /dev/motmdm1&lt;br /&gt;
&lt;br /&gt;
Print connected network:&lt;br /&gt;
&lt;br /&gt;
# printf &amp;quot;AT+COPS?\r&amp;quot; &amp;gt; /dev/motmdm1&lt;br /&gt;
&lt;br /&gt;
Not sure, do it anyway:&lt;br /&gt;
&lt;br /&gt;
# printf &amp;quot;AT+SCRN=0\r&amp;quot; &amp;gt; /dev/motmdm1&lt;br /&gt;
&lt;br /&gt;
Dial a number:&lt;br /&gt;
&lt;br /&gt;
# printf &amp;quot;ATD+1234567890\r&amp;quot; &amp;gt; /dev/motmdm1&lt;br /&gt;
&lt;br /&gt;
Hang up:&lt;br /&gt;
&lt;br /&gt;
# printf &amp;quot;ATH\r&amp;quot; &amp;gt; /dev/motmdm1&lt;br /&gt;
&lt;br /&gt;
Answer incoming call:&lt;br /&gt;
&lt;br /&gt;
# printf &amp;quot;ATA\r&amp;quot; &amp;gt; /dev/motmdm1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to &amp;quot;speakerphone&amp;quot; and set the right speaker to &amp;quot;voice&amp;quot; codec, and set volume for both call and voice to something non-zero.&lt;br /&gt;
&lt;br /&gt;
==== 3G Internet ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
22:12 &amp;lt; pave1&amp;gt; qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz&lt;br /&gt;
22:12 &amp;lt; pave1&amp;gt; route del default&lt;br /&gt;
22:12 &amp;lt; pave1&amp;gt; sudo ifconfig wwan0 up&lt;br /&gt;
22:12 &amp;lt; pave1&amp;gt; dhclient wwan0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== GPS ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
modprobe gnss-motmdm and point gpsd to use /dev/gnss0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
22:30 &amp;lt; tmlind&amp;gt; hmm there&#039;s a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)&lt;br /&gt;
&lt;br /&gt;
Can try to &amp;lt;pre&amp;gt;&lt;br /&gt;
mkfifo /tmp/gps&lt;br /&gt;
cat /dev/gnss0 &amp;gt; /tmp/gps&lt;br /&gt;
Then point gpsd to use /tmp/gps&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== USSD ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
22:45 &amp;lt; tmlind&amp;gt; fyi, here&#039;s how to send USSD to query balance for example: printf &amp;quot;AT+CUSD=1,#999#,0\r&amp;quot; &amp;gt; /dev/motmdm1&lt;br /&gt;
22:47 &amp;lt; tmlind&amp;gt; fyi, for parsing incoming USSD, this web interface works if set to utf-8: &lt;br /&gt;
                https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Gallery ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Motorola-Droid4-20200125.jpeg&lt;br /&gt;
Droid4-neofetch.JPG&lt;br /&gt;
Droid4_htop.jpg&lt;br /&gt;
Droid4_leste_logo.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Device]]&lt;/div&gt;</summary>
		<author><name>BuZz</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Motorola_Droid_4&amp;diff=726</id>
		<title>Motorola Droid 4</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Motorola_Droid_4&amp;diff=726"/>
		<updated>2020-05-06T03:01:55Z</updated>

		<summary type="html">&lt;p&gt;BuZz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Device&lt;br /&gt;
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]&lt;br /&gt;
|manufacturer=Motorola&lt;br /&gt;
|codename=Maserati&lt;br /&gt;
|dimensions=127x67.3x12.7mm&lt;br /&gt;
|release_date=2012-02-10&lt;br /&gt;
|soc=OMAP4430&lt;br /&gt;
|dram=1024MB DDR2&lt;br /&gt;
|power=&lt;br /&gt;
|lcd=960x540 4&amp;quot;&lt;br /&gt;
|video=&lt;br /&gt;
|audio=&lt;br /&gt;
|network=&lt;br /&gt;
|storage=8GB flash&lt;br /&gt;
|usb=&lt;br /&gt;
|camera=&lt;br /&gt;
|sensors=AK8975 compass, LIS3DH accelerometer, ISL29030 proximity and illuminance, TMP105 temperature sensor&lt;br /&gt;
|other=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Feature&lt;br /&gt;
! Leste supported&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Kernel version || 5.6.0 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux&lt;br /&gt;
|-&lt;br /&gt;
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]&lt;br /&gt;
|-&lt;br /&gt;
| Charging || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Wireless || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Ethernet || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| Micro USB || Yes || OTG&lt;br /&gt;
|-&lt;br /&gt;
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)&lt;br /&gt;
|-&lt;br /&gt;
| Screen || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/&lt;br /&gt;
|-&lt;br /&gt;
| Touchscreen || Yes || Capacitive&lt;br /&gt;
|-&lt;br /&gt;
| Audio || Yes || Switch around in alsamixer to get the right outputs working (&#039;Speaker Right&#039; set to &#039;HiFi&#039; and &#039;HiFi&#039; set to above 0 gets you output)&lt;br /&gt;
|-&lt;br /&gt;
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/&lt;br /&gt;
|-&lt;br /&gt;
| SMS || WIP || Work with AT commands, needs ofono porting work, and then Leste UI&lt;br /&gt;
|-&lt;br /&gt;
| Phone calls || WIP || Work with AT commands (good call quality, too), needs ofono porting work, and then Leste UI&lt;br /&gt;
|-&lt;br /&gt;
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290.&lt;br /&gt;
|-&lt;br /&gt;
| FM Transmitter || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| FM Receiver || Not yet ||&lt;br /&gt;
|-&lt;br /&gt;
| Accelerometer || ? || Available in /sys, but not yet as input device, needs kernel and MCE work https://github.com/maemo-leste/bugtracker/issues/294&lt;br /&gt;
|-&lt;br /&gt;
| Compass || ? || Available in /sys (after loading ak8975 module. No applications using it yet&lt;br /&gt;
|-&lt;br /&gt;
| Proximity sensor || WIP || Sensor works, not yet exposed as evdev device&lt;br /&gt;
|-&lt;br /&gt;
| Ambient Light Sensor || Yes || https://github.com/maemo-leste/mce/pull/8&lt;br /&gt;
|-&lt;br /&gt;
| HDMI-out || WIP || works, but not with hildon-desktop&lt;br /&gt;
|-&lt;br /&gt;
| TV-out || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| Vibration Motor || Yes || No userspace yet (should be in mce)&lt;br /&gt;
|-&lt;br /&gt;
| Compass || No || Mainline supports it, so Leste needs to add config - see https://github.com/maemo-leste/bugtracker/issues/294&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Hardware requirements:&lt;br /&gt;
&lt;br /&gt;
* Droid4 with fully charged battery&lt;br /&gt;
* MicroUSB cable&lt;br /&gt;
* MicroSD card&lt;br /&gt;
&lt;br /&gt;
Software requirements:&lt;br /&gt;
* Host Linux or Windows system&lt;br /&gt;
* Android Tools: fastboot&lt;br /&gt;
* Flashing tools:&lt;br /&gt;
** XZ Utils and coreutils for Linux&lt;br /&gt;
** Etcher[https://github.com/balena-io/etcher] for Windows&lt;br /&gt;
&lt;br /&gt;
Download from https://maedevu.maemo.org/images/droid4/&lt;br /&gt;
&lt;br /&gt;
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip&lt;br /&gt;
# flash-droid-4-fw.sh&lt;br /&gt;
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi)&lt;br /&gt;
&lt;br /&gt;
Download from https://github.com/tmlind/droid4-kexecboot.git&lt;br /&gt;
&lt;br /&gt;
# utags-mmcblk1p13.bin&lt;br /&gt;
# droid4-kexecboot.img&lt;br /&gt;
&lt;br /&gt;
Check what kernel version your Android OS runs.&lt;br /&gt;
For this go to Settings -&amp;gt; About phone. Slide to the bottom, where you can see &amp;quot;Kernel version&amp;quot;.&lt;br /&gt;
If you have at least 3.0.8, you may skip &amp;quot;Updating Android&amp;quot; step below.&lt;br /&gt;
&lt;br /&gt;
Installation:&lt;br /&gt;
&lt;br /&gt;
# Create a working directory with above mentioned files in it&lt;br /&gt;
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip&lt;br /&gt;
# Power off Droid4 and connect it to the host machine with MicroUSB cable&lt;br /&gt;
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.&lt;br /&gt;
&lt;br /&gt;
Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml&lt;br /&gt;
sudo bash ../flash-droid-4-fw.sh&lt;br /&gt;
popd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now, assuming you are in the working directory, install kexecboot:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin&lt;br /&gt;
sudo fastboot reboot-bootloader&lt;br /&gt;
sudo fastboot flash bpsw droid4-kexecboot.img&lt;br /&gt;
sudo fastboot flash utags utags-mmcblk1p13.bin&lt;br /&gt;
sudo fastboot reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you did &amp;quot;Updating Android&amp;quot; the device should run the firstboot steps.&lt;br /&gt;
If you didn&#039;t, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.&lt;br /&gt;
&lt;br /&gt;
Now, flash the Maemo Leste image to your sdcard:&lt;br /&gt;
&lt;br /&gt;
On Linux:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE&lt;br /&gt;
sync&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Windows: Use Etcher&lt;br /&gt;
&lt;br /&gt;
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.&lt;br /&gt;
&lt;br /&gt;
You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute.&lt;br /&gt;
&lt;br /&gt;
== Updating ==&lt;br /&gt;
&lt;br /&gt;
* Poweroff device, grab the SD card&lt;br /&gt;
* Backup any important files&lt;br /&gt;
* Grab latest image from https://maedevu.maemo.org/images/droid4/&lt;br /&gt;
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.&lt;br /&gt;
&lt;br /&gt;
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.&lt;br /&gt;
&lt;br /&gt;
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.&lt;br /&gt;
Blacklisting the module may help if you have such problems:&lt;br /&gt;
 echo &amp;quot;blacklist hci_uart&amp;quot; &amp;gt;&amp;gt; /etc/modprobe.d/blacklist.conf&lt;br /&gt;
&lt;br /&gt;
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]&lt;br /&gt;
&lt;br /&gt;
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/&lt;br /&gt;
&lt;br /&gt;
== Serial Cable ==&lt;br /&gt;
&lt;br /&gt;
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/&lt;br /&gt;
&lt;br /&gt;
While using the serial cable, if you lose the connection, the following may help:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
18:43 &amp;lt; tmlind&amp;gt; sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with &lt;br /&gt;
                the console login propt later&lt;br /&gt;
18:45 &amp;lt; tmlind&amp;gt; try plugging in a pc usb cable then back to uart cable in case that might help&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Stuff to try ==&lt;br /&gt;
&lt;br /&gt;
==== Blinkenlights ====&lt;br /&gt;
Adding this in rc.local above the &#039;&#039;exit 0&#039;&#039; gets you some blinkenlights to watschen und relaxen.&lt;br /&gt;
 echo cpu &amp;gt; /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight&lt;br /&gt;
 echo mmc0 &amp;gt; /sys/class/leds/shift-key-light/trigger      # gets you a &#039;hdd led&#039; of the SD card on the capslock light&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Phone Call ====&lt;br /&gt;
&lt;br /&gt;
Make sure there is a SIM in the phone.&lt;br /&gt;
&lt;br /&gt;
Run this over SSH:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Read modem output: &lt;br /&gt;
# cat /dev/motmdm1 &amp;amp;&lt;br /&gt;
&lt;br /&gt;
Online modem:&lt;br /&gt;
# printf &amp;quot;AT+CFUN=1\r&amp;quot; &amp;gt; /dev/motmdm1&lt;br /&gt;
&lt;br /&gt;
Connect to network:&lt;br /&gt;
&lt;br /&gt;
# printf &amp;quot;AT+COPS=1\r&amp;quot; &amp;gt; /dev/motmdm1&lt;br /&gt;
&lt;br /&gt;
Print connected network:&lt;br /&gt;
&lt;br /&gt;
# printf &amp;quot;AT+COPS?\r&amp;quot; &amp;gt; /dev/motmdm1&lt;br /&gt;
&lt;br /&gt;
Not sure, do it anyway:&lt;br /&gt;
&lt;br /&gt;
# printf &amp;quot;AT+SCRN=0\r&amp;quot; &amp;gt; /dev/motmdm1&lt;br /&gt;
&lt;br /&gt;
Dial a number:&lt;br /&gt;
&lt;br /&gt;
# printf &amp;quot;ATD+1234567890\r&amp;quot; &amp;gt; /dev/motmdm1&lt;br /&gt;
&lt;br /&gt;
Hang up:&lt;br /&gt;
&lt;br /&gt;
# printf &amp;quot;ATH\r&amp;quot; &amp;gt; /dev/motmdm1&lt;br /&gt;
&lt;br /&gt;
Answer incoming call:&lt;br /&gt;
&lt;br /&gt;
# printf &amp;quot;ATA\r&amp;quot; &amp;gt; /dev/motmdm1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Audio wise, in alsamixer, make sure echo cancellation is turned on. I had to set Call out to &amp;quot;speakerphone&amp;quot; and set the right speaker to &amp;quot;voice&amp;quot; codec, and set volume for both call and voice to something non-zero.&lt;br /&gt;
&lt;br /&gt;
==== 3G Internet ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
22:12 &amp;lt; pave1&amp;gt; qmicli -d /dev/cdc-wdm0 --wds-follow-network --wds-start-network=apn=internet.t-mobile.cz&lt;br /&gt;
22:12 &amp;lt; pave1&amp;gt; route del default&lt;br /&gt;
22:12 &amp;lt; pave1&amp;gt; sudo ifconfig wwan0 up&lt;br /&gt;
22:12 &amp;lt; pave1&amp;gt; dhclient wwan0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== GPS ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
modprobe gnss-motmdm and point gpsd to use /dev/gnss0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
22:30 &amp;lt; tmlind&amp;gt; hmm there&#039;s a probably kernel gnss bug for gsp access fyi, you can currently only open one connection before you have to restart gpsd :)&lt;br /&gt;
&lt;br /&gt;
Can try to &amp;lt;pre&amp;gt;&lt;br /&gt;
mkfifo /tmp/gps&lt;br /&gt;
cat /dev/gnss0 &amp;gt; /tmp/gps&lt;br /&gt;
Then point gpsd to use /tmp/gps&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== USSD ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
22:45 &amp;lt; tmlind&amp;gt; fyi, here&#039;s how to send USSD to query balance for example: printf &amp;quot;AT+CUSD=1,#999#,0\r&amp;quot; &amp;gt; /dev/motmdm1&lt;br /&gt;
22:47 &amp;lt; tmlind&amp;gt; fyi, for parsing incoming USSD, this web interface works if set to utf-8: &lt;br /&gt;
                https://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Gallery ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Motorola-Droid4-20200125.jpeg&lt;br /&gt;
Droid4-neofetch.JPG&lt;br /&gt;
Droid4_htop.jpg&lt;br /&gt;
Droid4_leste_logo.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Device]]&lt;/div&gt;</summary>
		<author><name>BuZz</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Motorola_Droid_4&amp;diff=704</id>
		<title>Motorola Droid 4</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Motorola_Droid_4&amp;diff=704"/>
		<updated>2020-03-26T02:14:07Z</updated>

		<summary type="html">&lt;p&gt;BuZz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Device&lt;br /&gt;
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]&lt;br /&gt;
|manufacturer=Motorola&lt;br /&gt;
|codename=Maserati&lt;br /&gt;
|dimensions=127x67.3x12.7mm&lt;br /&gt;
|release_date=2012-02-10&lt;br /&gt;
|soc=OMAP4430&lt;br /&gt;
|dram=1024MB DDR2&lt;br /&gt;
|power=&lt;br /&gt;
|lcd=960x540 4&amp;quot;&lt;br /&gt;
|video=&lt;br /&gt;
|audio=&lt;br /&gt;
|network=&lt;br /&gt;
|storage=8GB flash&lt;br /&gt;
|usb=&lt;br /&gt;
|camera=&lt;br /&gt;
|sensors=&lt;br /&gt;
|other=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Feature&lt;br /&gt;
! Leste supported&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Kernel version || 5.6.0-rc5 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux&lt;br /&gt;
|-&lt;br /&gt;
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]&lt;br /&gt;
|-&lt;br /&gt;
| Charging || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Wireless || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Ethernet || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| Micro USB || Yes || OTG&lt;br /&gt;
|-&lt;br /&gt;
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)&lt;br /&gt;
|-&lt;br /&gt;
| Screen || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/&lt;br /&gt;
|-&lt;br /&gt;
| Touchscreen || Yes || Capacitive&lt;br /&gt;
|-&lt;br /&gt;
| Audio || Yes || Switch around in alsamixer to get the right outputs working (&#039;Speaker Right&#039; set to &#039;HiFi&#039; and &#039;HiFi&#039; set to above 0 gets you output)&lt;br /&gt;
|-&lt;br /&gt;
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/&lt;br /&gt;
|-&lt;br /&gt;
| SMS || WIP || Reported to work, no UI yet&lt;br /&gt;
|-&lt;br /&gt;
| Phone calls || WIP || Reported to work, no UI yet&lt;br /&gt;
|-&lt;br /&gt;
| Bluetooth || Yes || Needs firmware - install latest firmware-ti-connectivity - See also https://github.com/maemo-leste/bugtracker/issues/290.&lt;br /&gt;
|-&lt;br /&gt;
| FM Transmitter || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| FM Receiver || Not yet ||&lt;br /&gt;
|-&lt;br /&gt;
| Accelerometer || ? || Available as input device, needs MCE work&lt;br /&gt;
|-&lt;br /&gt;
| Proximity sensor || WIP || &lt;br /&gt;
|-&lt;br /&gt;
| HDMI-out || WIP || works, but not with hildon-desktop&lt;br /&gt;
|-&lt;br /&gt;
| TV-out || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| Vibration Motor || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Compass || No || Mainline supports it, so Leste needs to add config - see https://github.com/maemo-leste/bugtracker/issues/294&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Hardware requirements:&lt;br /&gt;
&lt;br /&gt;
* Droid4 with fully charged battery&lt;br /&gt;
* MicroUSB cable&lt;br /&gt;
* MicroSD card&lt;br /&gt;
&lt;br /&gt;
Software requirements:&lt;br /&gt;
* Host Linux or Windows system&lt;br /&gt;
* Android Tools: fastboot&lt;br /&gt;
* Flashing tools:&lt;br /&gt;
** XZ Utils and coreutils for Linux&lt;br /&gt;
** Etcher[https://github.com/balena-io/etcher] for Windows&lt;br /&gt;
&lt;br /&gt;
Download from https://maedevu.maemo.org/images/droid4/&lt;br /&gt;
&lt;br /&gt;
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip&lt;br /&gt;
# flash-droid-4-fw.sh&lt;br /&gt;
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi)&lt;br /&gt;
&lt;br /&gt;
Download from https://github.com/tmlind/droid4-kexecboot.git&lt;br /&gt;
&lt;br /&gt;
# utags-mmcblk1p13.bin&lt;br /&gt;
# droid4-kexecboot.img&lt;br /&gt;
&lt;br /&gt;
Check what kernel version your Android OS runs.&lt;br /&gt;
For this go to Settings -&amp;gt; About phone. Slide to the bottom, where you can see &amp;quot;Kernel version&amp;quot;.&lt;br /&gt;
If you have at least 3.0.8, you may skip &amp;quot;Updating Android&amp;quot; step below.&lt;br /&gt;
&lt;br /&gt;
Installation:&lt;br /&gt;
&lt;br /&gt;
# Create a working directory with above mentioned files in it&lt;br /&gt;
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip&lt;br /&gt;
# Power off Droid4 and connect it to the host machine with MicroUSB cable&lt;br /&gt;
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.&lt;br /&gt;
&lt;br /&gt;
Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml&lt;br /&gt;
sudo bash ../flash-droid-4-fw.sh&lt;br /&gt;
popd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now, assuming you are in the working directory, install kexecboot:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin&lt;br /&gt;
sudo fastboot reboot-bootloader&lt;br /&gt;
sudo fastboot flash bpsw droid4-kexecboot.img&lt;br /&gt;
sudo fastboot flash utags utags-mmcblk1p13.bin&lt;br /&gt;
sudo fastboot reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you did &amp;quot;Updating Android&amp;quot; the device should run the firstboot steps.&lt;br /&gt;
If you didn&#039;t, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.&lt;br /&gt;
&lt;br /&gt;
Now, flash the Maemo Leste image to your sdcard:&lt;br /&gt;
&lt;br /&gt;
On Linux:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE&lt;br /&gt;
sync&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Windows: Use Etcher&lt;br /&gt;
&lt;br /&gt;
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.&lt;br /&gt;
&lt;br /&gt;
You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute.&lt;br /&gt;
&lt;br /&gt;
== Updating ==&lt;br /&gt;
&lt;br /&gt;
* Poweroff device, grab the SD card&lt;br /&gt;
* Backup any important files&lt;br /&gt;
* Grab latest image from https://maedevu.maemo.org/images/droid4/&lt;br /&gt;
* Write it as before : xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.&lt;br /&gt;
&lt;br /&gt;
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.&lt;br /&gt;
&lt;br /&gt;
Some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.&lt;br /&gt;
Blacklisting the module may help if you have such problems:&lt;br /&gt;
 echo &amp;quot;blacklist hci_uart&amp;quot; &amp;gt;&amp;gt; /etc/modprobe.d/blacklist.conf&lt;br /&gt;
&lt;br /&gt;
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]&lt;br /&gt;
&lt;br /&gt;
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/&lt;br /&gt;
&lt;br /&gt;
== Serial Cable ==&lt;br /&gt;
&lt;br /&gt;
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/&lt;br /&gt;
&lt;br /&gt;
While using the serial cable, if you lose the connection, the following may help:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
18:43 &amp;lt; tmlind&amp;gt; sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with &lt;br /&gt;
                the console login propt later&lt;br /&gt;
18:45 &amp;lt; tmlind&amp;gt; try plugging in a pc usb cable then back to uart cable in case that might help&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Stuff to try ==&lt;br /&gt;
&lt;br /&gt;
==== Blinkenlights ====&lt;br /&gt;
Adding this in rc.local above the &#039;&#039;exit 0&#039;&#039; gets you some blinkenlights to watschen und relaxen.&lt;br /&gt;
 echo cpu &amp;gt; /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight&lt;br /&gt;
 echo mmc0 &amp;gt; /sys/class/leds/shift-key-light/trigger      # gets you a &#039;hdd led&#039; of the SD card on the capslock light&lt;br /&gt;
&lt;br /&gt;
== Gallery ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Motorola-Droid4-20200125.jpeg&lt;br /&gt;
Droid4-neofetch.JPG&lt;br /&gt;
Droid4_htop.jpg&lt;br /&gt;
Droid4_leste_logo.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Device]]&lt;/div&gt;</summary>
		<author><name>BuZz</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Motorola_Droid_4&amp;diff=699</id>
		<title>Motorola Droid 4</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Motorola_Droid_4&amp;diff=699"/>
		<updated>2020-03-25T00:32:11Z</updated>

		<summary type="html">&lt;p&gt;BuZz: /* Blinkenlights */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Device&lt;br /&gt;
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]&lt;br /&gt;
|manufacturer=Motorola&lt;br /&gt;
|codename=Maserati&lt;br /&gt;
|dimensions=&lt;br /&gt;
|release_date=&lt;br /&gt;
|soc=&lt;br /&gt;
|dram=&lt;br /&gt;
|power=&lt;br /&gt;
|lcd=&lt;br /&gt;
|video=&lt;br /&gt;
|audio=&lt;br /&gt;
|network=&lt;br /&gt;
|storage=&lt;br /&gt;
|usb=&lt;br /&gt;
|camera=&lt;br /&gt;
|sensors=&lt;br /&gt;
|other=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Feature&lt;br /&gt;
! Leste supported&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Kernel version || 5.6.0-rc5 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux&lt;br /&gt;
|-&lt;br /&gt;
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]&lt;br /&gt;
|-&lt;br /&gt;
| Charging || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Wireless || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Ethernet || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| Micro USB || Yes || OTG&lt;br /&gt;
|-&lt;br /&gt;
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)&lt;br /&gt;
|-&lt;br /&gt;
| Screen || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/&lt;br /&gt;
|-&lt;br /&gt;
| Touchscreen || Yes || Capacitive&lt;br /&gt;
|-&lt;br /&gt;
| Audio || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/&lt;br /&gt;
|-&lt;br /&gt;
| SMS || WIP || Reported to work, no UI yet&lt;br /&gt;
|-&lt;br /&gt;
| Phone calls || WIP || Reported to work, no UI yet&lt;br /&gt;
|-&lt;br /&gt;
| Bluetooth || Yes || Needs firmware - see [[#Bluetooth|below]].  See also https://github.com/maemo-leste/bugtracker/issues/290.&lt;br /&gt;
|-&lt;br /&gt;
| FM Transmitter || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| FM Receiver || Not yet ||&lt;br /&gt;
|-&lt;br /&gt;
| Accelerometer || ? || Available as input device, needs MCE work&lt;br /&gt;
|-&lt;br /&gt;
| Proximity sensor || WIP || &lt;br /&gt;
|-&lt;br /&gt;
| HDMI-out || WIP || works, but not with hildon-desktop&lt;br /&gt;
|-&lt;br /&gt;
| TV-out || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| Vibration Motor || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
|Compass || No || Mainline supports it, so Leste needs to add config - see https://github.com/maemo-leste/bugtracker/issues/294&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Hardware requirements:&lt;br /&gt;
&lt;br /&gt;
* Droid4 with fully charged battery&lt;br /&gt;
* MicroUSB cable&lt;br /&gt;
* MicroSD card&lt;br /&gt;
&lt;br /&gt;
Software requirements:&lt;br /&gt;
* Host Linux or Windows system&lt;br /&gt;
* Android Tools: fastboot&lt;br /&gt;
* Flashing tools:&lt;br /&gt;
** XZ Utils and coreutils for Linux&lt;br /&gt;
** Etcher[https://github.com/balena-io/etcher] for Windows&lt;br /&gt;
&lt;br /&gt;
Download from https://maedevu.maemo.org/images/droid4/&lt;br /&gt;
&lt;br /&gt;
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip&lt;br /&gt;
# flash-droid-4-fw.sh&lt;br /&gt;
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi)&lt;br /&gt;
&lt;br /&gt;
Download from https://github.com/tmlind/droid4-kexecboot.git&lt;br /&gt;
&lt;br /&gt;
# utags-mmcblk1p13.bin&lt;br /&gt;
# droid4-kexecboot.img&lt;br /&gt;
&lt;br /&gt;
Check what kernel version your Android OS runs.&lt;br /&gt;
For this go to Settings -&amp;gt; About phone. Slide to the bottom, where you can see &amp;quot;Kernel version&amp;quot;.&lt;br /&gt;
If you have at least 3.0.8, you may skip &amp;quot;Updating Android&amp;quot; step below.&lt;br /&gt;
&lt;br /&gt;
Installation:&lt;br /&gt;
&lt;br /&gt;
# Create a working directory with above mentioned files in it&lt;br /&gt;
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip&lt;br /&gt;
# Power off Droid4 and connect it to the host machine with MicroUSB cable&lt;br /&gt;
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.&lt;br /&gt;
&lt;br /&gt;
Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml&lt;br /&gt;
sudo bash ../flash-droid-4-fw.sh&lt;br /&gt;
popd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now, assuming you are in the working directory, install kexecboot:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin&lt;br /&gt;
sudo fastboot reboot-bootloader&lt;br /&gt;
sudo fastboot flash bpsw droid4-kexecboot.img&lt;br /&gt;
sudo fastboot flash utags utags-mmcblk1p13.bin&lt;br /&gt;
sudo fastboot reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you did &amp;quot;Updating Android&amp;quot; the device should run the firstboot steps.&lt;br /&gt;
If you didn&#039;t, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.&lt;br /&gt;
&lt;br /&gt;
Now, flash the Maemo Leste image to your sdcard:&lt;br /&gt;
&lt;br /&gt;
On Linux:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE&lt;br /&gt;
sync&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Windows: Use Etcher&lt;br /&gt;
&lt;br /&gt;
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.&lt;br /&gt;
&lt;br /&gt;
You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute.&lt;br /&gt;
&lt;br /&gt;
== Postinstall notes for 20200112 image ==&lt;br /&gt;
&lt;br /&gt;
Current image has some erratas which can be fixed by following the instructions found in this post:&lt;br /&gt;
https://github.com/maemo-leste/bugtracker/issues/302#issuecomment-576277674&lt;br /&gt;
&lt;br /&gt;
=== Wifi ===&lt;br /&gt;
&lt;br /&gt;
Requires wpasupplicant and firmware-ti-connectivity from ascii-backports (needs to get added to sources.list)&lt;br /&gt;
&lt;br /&gt;
 deb http://pkgmaster.devuan.org/merged ascii-backports main contrib non-free&lt;br /&gt;
&lt;br /&gt;
 apt install -t ascii-backports wpasupplicant&lt;br /&gt;
 apt install -t ascii-backports firmware-ti-connectivity&lt;br /&gt;
&lt;br /&gt;
=== Bluetooth ===&lt;br /&gt;
&lt;br /&gt;
Requires https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts to go in /lib/firmware/ti-connectivity/&lt;br /&gt;
&lt;br /&gt;
 $ sha256sum TIInit_10.6.15.bts &lt;br /&gt;
 85dc6539436319fa1301277c171f9fd65b716279900bc686a76578ab24cc7793  TIInit_10.6.15.bts&lt;br /&gt;
&lt;br /&gt;
Note: some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.&lt;br /&gt;
Blacklisting the module may help if you have such problems:&lt;br /&gt;
 echo &amp;quot;blacklist hci_uart&amp;quot; &amp;gt;&amp;gt; /etc/modprobe.d/blacklist.conf&lt;br /&gt;
&lt;br /&gt;
=== Sound ===&lt;br /&gt;
&lt;br /&gt;
This needs to be executed to enable the sound:&lt;br /&gt;
&lt;br /&gt;
 modprobe snd-soc-cpcap&lt;br /&gt;
 modprobe snd-soc-motmdm&lt;br /&gt;
 modprobe snd-soc-audio-graph-card&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.&lt;br /&gt;
&lt;br /&gt;
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.&lt;br /&gt;
&lt;br /&gt;
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]&lt;br /&gt;
&lt;br /&gt;
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/&lt;br /&gt;
&lt;br /&gt;
== Serial Cable ==&lt;br /&gt;
&lt;br /&gt;
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/&lt;br /&gt;
&lt;br /&gt;
While using the serial cable, if you lose the connection, the following may help:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
18:43 &amp;lt; tmlind&amp;gt; sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with &lt;br /&gt;
                the console login propt later&lt;br /&gt;
18:45 &amp;lt; tmlind&amp;gt; try plugging in a pc usb cable then back to uart cable in case that might help&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Stuff to try ==&lt;br /&gt;
&lt;br /&gt;
==== Blinkenlights ====&lt;br /&gt;
Adding this in rc.local above the &#039;&#039;exit 0&#039;&#039; gets you some blinkenlights to watschen und relaxen.&lt;br /&gt;
 echo cpu &amp;gt; /sys/class/leds/lm3532::kbd_backlight/trigger # gets you a cpu activity monitor on the keyboard backlight&lt;br /&gt;
 echo mmc0 &amp;gt; /sys/class/leds/shift-key-light/trigger      # gets you a &#039;hdd led&#039; of the SD card on the capslock light&lt;br /&gt;
&lt;br /&gt;
== Gallery ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Motorola-Droid4-20200125.jpeg&lt;br /&gt;
Droid4-neofetch.JPG&lt;br /&gt;
Droid4_htop.jpg&lt;br /&gt;
Droid4_leste_logo.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Device]]&lt;/div&gt;</summary>
		<author><name>BuZz</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Motorola_Droid_4&amp;diff=698</id>
		<title>Motorola Droid 4</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Motorola_Droid_4&amp;diff=698"/>
		<updated>2020-03-25T00:31:53Z</updated>

		<summary type="html">&lt;p&gt;BuZz: /* Blinkenlights */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Device&lt;br /&gt;
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]&lt;br /&gt;
|manufacturer=Motorola&lt;br /&gt;
|codename=Maserati&lt;br /&gt;
|dimensions=&lt;br /&gt;
|release_date=&lt;br /&gt;
|soc=&lt;br /&gt;
|dram=&lt;br /&gt;
|power=&lt;br /&gt;
|lcd=&lt;br /&gt;
|video=&lt;br /&gt;
|audio=&lt;br /&gt;
|network=&lt;br /&gt;
|storage=&lt;br /&gt;
|usb=&lt;br /&gt;
|camera=&lt;br /&gt;
|sensors=&lt;br /&gt;
|other=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Feature&lt;br /&gt;
! Leste supported&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Kernel version || 5.6.0-rc5 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux&lt;br /&gt;
|-&lt;br /&gt;
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]&lt;br /&gt;
|-&lt;br /&gt;
| Charging || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Wireless || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Ethernet || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| Micro USB || Yes || OTG&lt;br /&gt;
|-&lt;br /&gt;
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)&lt;br /&gt;
|-&lt;br /&gt;
| Screen || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/&lt;br /&gt;
|-&lt;br /&gt;
| Touchscreen || Yes || Capacitive&lt;br /&gt;
|-&lt;br /&gt;
| Audio || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/&lt;br /&gt;
|-&lt;br /&gt;
| SMS || WIP || Reported to work, no UI yet&lt;br /&gt;
|-&lt;br /&gt;
| Phone calls || WIP || Reported to work, no UI yet&lt;br /&gt;
|-&lt;br /&gt;
| Bluetooth || Yes || Needs firmware - see [[#Bluetooth|below]].  See also https://github.com/maemo-leste/bugtracker/issues/290.&lt;br /&gt;
|-&lt;br /&gt;
| FM Transmitter || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| FM Receiver || Not yet ||&lt;br /&gt;
|-&lt;br /&gt;
| Accelerometer || ? || Available as input device, needs MCE work&lt;br /&gt;
|-&lt;br /&gt;
| Proximity sensor || WIP || &lt;br /&gt;
|-&lt;br /&gt;
| HDMI-out || WIP || works, but not with hildon-desktop&lt;br /&gt;
|-&lt;br /&gt;
| TV-out || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| Vibration Motor || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
|Compass || No || Mainline supports it, so Leste needs to add config - see https://github.com/maemo-leste/bugtracker/issues/294&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Hardware requirements:&lt;br /&gt;
&lt;br /&gt;
* Droid4 with fully charged battery&lt;br /&gt;
* MicroUSB cable&lt;br /&gt;
* MicroSD card&lt;br /&gt;
&lt;br /&gt;
Software requirements:&lt;br /&gt;
* Host Linux or Windows system&lt;br /&gt;
* Android Tools: fastboot&lt;br /&gt;
* Flashing tools:&lt;br /&gt;
** XZ Utils and coreutils for Linux&lt;br /&gt;
** Etcher[https://github.com/balena-io/etcher] for Windows&lt;br /&gt;
&lt;br /&gt;
Download from https://maedevu.maemo.org/images/droid4/&lt;br /&gt;
&lt;br /&gt;
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip&lt;br /&gt;
# flash-droid-4-fw.sh&lt;br /&gt;
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi)&lt;br /&gt;
&lt;br /&gt;
Download from https://github.com/tmlind/droid4-kexecboot.git&lt;br /&gt;
&lt;br /&gt;
# utags-mmcblk1p13.bin&lt;br /&gt;
# droid4-kexecboot.img&lt;br /&gt;
&lt;br /&gt;
Check what kernel version your Android OS runs.&lt;br /&gt;
For this go to Settings -&amp;gt; About phone. Slide to the bottom, where you can see &amp;quot;Kernel version&amp;quot;.&lt;br /&gt;
If you have at least 3.0.8, you may skip &amp;quot;Updating Android&amp;quot; step below.&lt;br /&gt;
&lt;br /&gt;
Installation:&lt;br /&gt;
&lt;br /&gt;
# Create a working directory with above mentioned files in it&lt;br /&gt;
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip&lt;br /&gt;
# Power off Droid4 and connect it to the host machine with MicroUSB cable&lt;br /&gt;
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.&lt;br /&gt;
&lt;br /&gt;
Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml&lt;br /&gt;
sudo bash ../flash-droid-4-fw.sh&lt;br /&gt;
popd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now, assuming you are in the working directory, install kexecboot:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin&lt;br /&gt;
sudo fastboot reboot-bootloader&lt;br /&gt;
sudo fastboot flash bpsw droid4-kexecboot.img&lt;br /&gt;
sudo fastboot flash utags utags-mmcblk1p13.bin&lt;br /&gt;
sudo fastboot reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you did &amp;quot;Updating Android&amp;quot; the device should run the firstboot steps.&lt;br /&gt;
If you didn&#039;t, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.&lt;br /&gt;
&lt;br /&gt;
Now, flash the Maemo Leste image to your sdcard:&lt;br /&gt;
&lt;br /&gt;
On Linux:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE&lt;br /&gt;
sync&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Windows: Use Etcher&lt;br /&gt;
&lt;br /&gt;
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.&lt;br /&gt;
&lt;br /&gt;
You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute.&lt;br /&gt;
&lt;br /&gt;
== Postinstall notes for 20200112 image ==&lt;br /&gt;
&lt;br /&gt;
Current image has some erratas which can be fixed by following the instructions found in this post:&lt;br /&gt;
https://github.com/maemo-leste/bugtracker/issues/302#issuecomment-576277674&lt;br /&gt;
&lt;br /&gt;
=== Wifi ===&lt;br /&gt;
&lt;br /&gt;
Requires wpasupplicant and firmware-ti-connectivity from ascii-backports (needs to get added to sources.list)&lt;br /&gt;
&lt;br /&gt;
 deb http://pkgmaster.devuan.org/merged ascii-backports main contrib non-free&lt;br /&gt;
&lt;br /&gt;
 apt install -t ascii-backports wpasupplicant&lt;br /&gt;
 apt install -t ascii-backports firmware-ti-connectivity&lt;br /&gt;
&lt;br /&gt;
=== Bluetooth ===&lt;br /&gt;
&lt;br /&gt;
Requires https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts to go in /lib/firmware/ti-connectivity/&lt;br /&gt;
&lt;br /&gt;
 $ sha256sum TIInit_10.6.15.bts &lt;br /&gt;
 85dc6539436319fa1301277c171f9fd65b716279900bc686a76578ab24cc7793  TIInit_10.6.15.bts&lt;br /&gt;
&lt;br /&gt;
Note: some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.&lt;br /&gt;
Blacklisting the module may help if you have such problems:&lt;br /&gt;
 echo &amp;quot;blacklist hci_uart&amp;quot; &amp;gt;&amp;gt; /etc/modprobe.d/blacklist.conf&lt;br /&gt;
&lt;br /&gt;
=== Sound ===&lt;br /&gt;
&lt;br /&gt;
This needs to be executed to enable the sound:&lt;br /&gt;
&lt;br /&gt;
 modprobe snd-soc-cpcap&lt;br /&gt;
 modprobe snd-soc-motmdm&lt;br /&gt;
 modprobe snd-soc-audio-graph-card&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.&lt;br /&gt;
&lt;br /&gt;
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.&lt;br /&gt;
&lt;br /&gt;
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]&lt;br /&gt;
&lt;br /&gt;
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/&lt;br /&gt;
&lt;br /&gt;
== Serial Cable ==&lt;br /&gt;
&lt;br /&gt;
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/&lt;br /&gt;
&lt;br /&gt;
While using the serial cable, if you lose the connection, the following may help:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
18:43 &amp;lt; tmlind&amp;gt; sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with &lt;br /&gt;
                the console login propt later&lt;br /&gt;
18:45 &amp;lt; tmlind&amp;gt; try plugging in a pc usb cable then back to uart cable in case that might help&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Stuff to try ==&lt;br /&gt;
&lt;br /&gt;
==== Blinkenlights ====&lt;br /&gt;
Adding this in rc.local above the &#039;&#039;exit 0&#039;&#039; gets you some blinkenlights to watschen und relaxen.&lt;br /&gt;
 echo cpu &amp;gt; /sys/class/leds/lm3532::kbd_backlight/trigger        # gets you a cpu activity monitor on the keyboard backlight&lt;br /&gt;
 echo mmc0 &amp;gt; /sys/class/leds/shift-key-light/trigger # gets you a &#039;hdd led&#039; of the SD card on the capslock light&lt;br /&gt;
&lt;br /&gt;
== Gallery ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Motorola-Droid4-20200125.jpeg&lt;br /&gt;
Droid4-neofetch.JPG&lt;br /&gt;
Droid4_htop.jpg&lt;br /&gt;
Droid4_leste_logo.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Device]]&lt;/div&gt;</summary>
		<author><name>BuZz</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Motorola_Droid_4&amp;diff=697</id>
		<title>Motorola Droid 4</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Motorola_Droid_4&amp;diff=697"/>
		<updated>2020-03-25T00:26:10Z</updated>

		<summary type="html">&lt;p&gt;BuZz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Device&lt;br /&gt;
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]&lt;br /&gt;
|manufacturer=Motorola&lt;br /&gt;
|codename=Maserati&lt;br /&gt;
|dimensions=&lt;br /&gt;
|release_date=&lt;br /&gt;
|soc=&lt;br /&gt;
|dram=&lt;br /&gt;
|power=&lt;br /&gt;
|lcd=&lt;br /&gt;
|video=&lt;br /&gt;
|audio=&lt;br /&gt;
|network=&lt;br /&gt;
|storage=&lt;br /&gt;
|usb=&lt;br /&gt;
|camera=&lt;br /&gt;
|sensors=&lt;br /&gt;
|other=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Feature&lt;br /&gt;
! Leste supported&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Kernel version || 5.6.0-rc5 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux&lt;br /&gt;
|-&lt;br /&gt;
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]&lt;br /&gt;
|-&lt;br /&gt;
| Charging || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Wireless || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Ethernet || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| Micro USB || Yes || OTG&lt;br /&gt;
|-&lt;br /&gt;
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)&lt;br /&gt;
|-&lt;br /&gt;
| Screen || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| 3D Acceleration || Yes || PowerVR SGX540 (closed driver) - https://github.com/maemo-leste/pvr-omap4/&lt;br /&gt;
|-&lt;br /&gt;
| Touchscreen || Yes || Capacitive&lt;br /&gt;
|-&lt;br /&gt;
| Audio || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/&lt;br /&gt;
|-&lt;br /&gt;
| SMS || WIP || Reported to work, no UI yet&lt;br /&gt;
|-&lt;br /&gt;
| Phone calls || WIP || Reported to work, no UI yet&lt;br /&gt;
|-&lt;br /&gt;
| Bluetooth || Yes || Needs firmware - see [[#Bluetooth|below]].  See also https://github.com/maemo-leste/bugtracker/issues/290.&lt;br /&gt;
|-&lt;br /&gt;
| FM Transmitter || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| FM Receiver || Not yet ||&lt;br /&gt;
|-&lt;br /&gt;
| Accelerometer || ? || Available as input device, needs MCE work&lt;br /&gt;
|-&lt;br /&gt;
| Proximity sensor || WIP || &lt;br /&gt;
|-&lt;br /&gt;
| HDMI-out || WIP || works, but not with hildon-desktop&lt;br /&gt;
|-&lt;br /&gt;
| TV-out || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| Vibration Motor || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
|Compass || No || Mainline supports it, so Leste needs to add config - see https://github.com/maemo-leste/bugtracker/issues/294&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Hardware requirements:&lt;br /&gt;
&lt;br /&gt;
* Droid4 with fully charged battery&lt;br /&gt;
* MicroUSB cable&lt;br /&gt;
* MicroSD card&lt;br /&gt;
&lt;br /&gt;
Software requirements:&lt;br /&gt;
* Host Linux or Windows system&lt;br /&gt;
* Android Tools: fastboot&lt;br /&gt;
* Flashing tools:&lt;br /&gt;
** XZ Utils and coreutils for Linux&lt;br /&gt;
** Etcher[https://github.com/balena-io/etcher] for Windows&lt;br /&gt;
&lt;br /&gt;
Download from https://maedevu.maemo.org/images/droid4/&lt;br /&gt;
&lt;br /&gt;
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip&lt;br /&gt;
# flash-droid-4-fw.sh&lt;br /&gt;
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi)&lt;br /&gt;
&lt;br /&gt;
Download from https://github.com/tmlind/droid4-kexecboot.git&lt;br /&gt;
&lt;br /&gt;
# utags-mmcblk1p13.bin&lt;br /&gt;
# droid4-kexecboot.img&lt;br /&gt;
&lt;br /&gt;
Check what kernel version your Android OS runs.&lt;br /&gt;
For this go to Settings -&amp;gt; About phone. Slide to the bottom, where you can see &amp;quot;Kernel version&amp;quot;.&lt;br /&gt;
If you have at least 3.0.8, you may skip &amp;quot;Updating Android&amp;quot; step below.&lt;br /&gt;
&lt;br /&gt;
Installation:&lt;br /&gt;
&lt;br /&gt;
# Create a working directory with above mentioned files in it&lt;br /&gt;
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip&lt;br /&gt;
# Power off Droid4 and connect it to the host machine with MicroUSB cable&lt;br /&gt;
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.&lt;br /&gt;
&lt;br /&gt;
Updating Android. This will reinstall the Android OS on your device, deleting all user data. Do a backup, if you want to save something. When everything is ready, go to the working directory mentioned above and run:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pushd VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml&lt;br /&gt;
sudo bash ../flash-droid-4-fw.sh&lt;br /&gt;
popd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now, assuming you are in the working directory, install kexecboot:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin&lt;br /&gt;
sudo fastboot reboot-bootloader&lt;br /&gt;
sudo fastboot flash bpsw droid4-kexecboot.img&lt;br /&gt;
sudo fastboot flash utags utags-mmcblk1p13.bin&lt;br /&gt;
sudo fastboot reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you did &amp;quot;Updating Android&amp;quot; the device should run the firstboot steps.&lt;br /&gt;
If you didn&#039;t, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.&lt;br /&gt;
&lt;br /&gt;
Now, flash the Maemo Leste image to your sdcard:&lt;br /&gt;
&lt;br /&gt;
On Linux:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE&lt;br /&gt;
sync&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Windows: Use Etcher&lt;br /&gt;
&lt;br /&gt;
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.&lt;br /&gt;
&lt;br /&gt;
You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute.&lt;br /&gt;
&lt;br /&gt;
== Postinstall notes for 20200112 image ==&lt;br /&gt;
&lt;br /&gt;
Current image has some erratas which can be fixed by following the instructions found in this post:&lt;br /&gt;
https://github.com/maemo-leste/bugtracker/issues/302#issuecomment-576277674&lt;br /&gt;
&lt;br /&gt;
=== Wifi ===&lt;br /&gt;
&lt;br /&gt;
Requires wpasupplicant and firmware-ti-connectivity from ascii-backports (needs to get added to sources.list)&lt;br /&gt;
&lt;br /&gt;
 deb http://pkgmaster.devuan.org/merged ascii-backports main contrib non-free&lt;br /&gt;
&lt;br /&gt;
 apt install -t ascii-backports wpasupplicant&lt;br /&gt;
 apt install -t ascii-backports firmware-ti-connectivity&lt;br /&gt;
&lt;br /&gt;
=== Bluetooth ===&lt;br /&gt;
&lt;br /&gt;
Requires https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts to go in /lib/firmware/ti-connectivity/&lt;br /&gt;
&lt;br /&gt;
 $ sha256sum TIInit_10.6.15.bts &lt;br /&gt;
 85dc6539436319fa1301277c171f9fd65b716279900bc686a76578ab24cc7793  TIInit_10.6.15.bts&lt;br /&gt;
&lt;br /&gt;
Note: some users reported that Bluetooth kernel module interfere badly with the WiFi driver on their devices.&lt;br /&gt;
Blacklisting the module may help if you have such problems:&lt;br /&gt;
 echo &amp;quot;blacklist hci_uart&amp;quot; &amp;gt;&amp;gt; /etc/modprobe.d/blacklist.conf&lt;br /&gt;
&lt;br /&gt;
=== Sound ===&lt;br /&gt;
&lt;br /&gt;
This needs to be executed to enable the sound:&lt;br /&gt;
&lt;br /&gt;
 modprobe snd-soc-cpcap&lt;br /&gt;
 modprobe snd-soc-motmdm&lt;br /&gt;
 modprobe snd-soc-audio-graph-card&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.&lt;br /&gt;
&lt;br /&gt;
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.&lt;br /&gt;
&lt;br /&gt;
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]&lt;br /&gt;
&lt;br /&gt;
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/&lt;br /&gt;
&lt;br /&gt;
== Serial Cable ==&lt;br /&gt;
&lt;br /&gt;
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/&lt;br /&gt;
&lt;br /&gt;
While using the serial cable, if you lose the connection, the following may help:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
18:43 &amp;lt; tmlind&amp;gt; sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with &lt;br /&gt;
                the console login propt later&lt;br /&gt;
18:45 &amp;lt; tmlind&amp;gt; try plugging in a pc usb cable then back to uart cable in case that might help&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Stuff to try ==&lt;br /&gt;
&lt;br /&gt;
==== Blinkenlights ====&lt;br /&gt;
Adding this in rc.local above the &#039;&#039;exit 0&#039;&#039; gets you some blinkenlights to watschen und relaxen.&lt;br /&gt;
 echo cpu &amp;gt; /sys/class/leds/lm3532::kbd_backlight/trigger        # gets you a cpu activity monitor on the keyboard backlight&lt;br /&gt;
 echo mmc0 &amp;gt; echo mmc0 &amp;gt; /sys/class/leds/shift-key-light/trigger # gets you a &#039;hdd led&#039; of the SD card on the capslock light&lt;br /&gt;
&lt;br /&gt;
== Gallery ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Motorola-Droid4-20200125.jpeg&lt;br /&gt;
Droid4-neofetch.JPG&lt;br /&gt;
Droid4_htop.jpg&lt;br /&gt;
Droid4_leste_logo.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Device]]&lt;/div&gt;</summary>
		<author><name>BuZz</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Motorola_Droid_4&amp;diff=619</id>
		<title>Motorola Droid 4</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Motorola_Droid_4&amp;diff=619"/>
		<updated>2020-02-05T17:31:28Z</updated>

		<summary type="html">&lt;p&gt;BuZz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Device&lt;br /&gt;
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]&lt;br /&gt;
|manufacturer=Motorola&lt;br /&gt;
|codename=Maserati&lt;br /&gt;
|dimensions=&lt;br /&gt;
|release_date=&lt;br /&gt;
|soc=&lt;br /&gt;
|dram=&lt;br /&gt;
|power=&lt;br /&gt;
|lcd=&lt;br /&gt;
|video=&lt;br /&gt;
|audio=&lt;br /&gt;
|network=&lt;br /&gt;
|storage=&lt;br /&gt;
|usb=&lt;br /&gt;
|camera=&lt;br /&gt;
|sensors=&lt;br /&gt;
|other=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Feature&lt;br /&gt;
! Leste supported&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Kernel version || 5.4 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux/tree/maemo-5.4&lt;br /&gt;
|-&lt;br /&gt;
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]&lt;br /&gt;
|-&lt;br /&gt;
| Charging || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Wireless || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Ethernet || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| Micro USB || Yes || OTG&lt;br /&gt;
|-&lt;br /&gt;
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)&lt;br /&gt;
|-&lt;br /&gt;
| Screen || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| 3D Acceleration || Not yet || PowerVR SGX540 (closed driver) - see [[Motorola Droid 4/PowerVR]]&lt;br /&gt;
|-&lt;br /&gt;
| Touchscreen || Yes || Capacitive&lt;br /&gt;
|-&lt;br /&gt;
| Audio || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/&lt;br /&gt;
|-&lt;br /&gt;
| SMS || WIP || Reported to work, no UI yet&lt;br /&gt;
|-&lt;br /&gt;
| Phone calls || WIP || Reported to work, no UI yet&lt;br /&gt;
|-&lt;br /&gt;
| Bluetooth || Yes || Needs firmware - see [[#Bluetooth|below]].  See also https://github.com/maemo-leste/bugtracker/issues/290.&lt;br /&gt;
|-&lt;br /&gt;
| FM Transmitter || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| FM Receiver || Not yet ||&lt;br /&gt;
|-&lt;br /&gt;
| Accelerometer || ? || Available as input device, needs MCE work&lt;br /&gt;
|-&lt;br /&gt;
| Proximity sensor || ? || &lt;br /&gt;
|-&lt;br /&gt;
| HDMI-out || WIP || works, but not with hildon-desktop&lt;br /&gt;
|-&lt;br /&gt;
| TV-out || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| Vibration Motor || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
|Compass || No || Mainline supports it, so Leste needs to add config - see https://github.com/maemo-leste/bugtracker/issues/294&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Hardware requirements:&lt;br /&gt;
&lt;br /&gt;
* Droid4 with fully charged battery&lt;br /&gt;
* MicroUSB cable&lt;br /&gt;
* MicroSD card&lt;br /&gt;
&lt;br /&gt;
Software requirements:&lt;br /&gt;
* Host Linux or Windows system&lt;br /&gt;
* Android Tools: fastboot&lt;br /&gt;
* Flashing tools:&lt;br /&gt;
** XZ Utils and coreutils for Linux&lt;br /&gt;
** Etcher[https://github.com/balena-io/etcher] for Windows&lt;br /&gt;
&lt;br /&gt;
Download from https://maedevu.maemo.org/images/droid4/&lt;br /&gt;
&lt;br /&gt;
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip&lt;br /&gt;
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi)&lt;br /&gt;
&lt;br /&gt;
Download from https://github.com/tmlind/droid4-kexecboot.git&lt;br /&gt;
&lt;br /&gt;
# utags-mmcblk1p13.bin&lt;br /&gt;
# droid4-kexecboot.img&lt;br /&gt;
&lt;br /&gt;
Installation:&lt;br /&gt;
&lt;br /&gt;
# Create a working directory with above mentioned files in it&lt;br /&gt;
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip&lt;br /&gt;
# Power off Droid4 and connect it to the host machine with MicroUSB cable&lt;br /&gt;
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.&lt;br /&gt;
&lt;br /&gt;
Now go to the working directory and run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin&lt;br /&gt;
sudo fastboot reboot-bootloader&lt;br /&gt;
sudo fastboot flash bpsw droid4-kexecboot.img&lt;br /&gt;
sudo fastboot flash utags utags-mmcblk1p13.bin&lt;br /&gt;
sudo fastboot reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The device should reboot and show kexecboot menu for a few seconds before it boots to Android.&lt;br /&gt;
&lt;br /&gt;
Now, flash the Maemo Leste image to your sdcard:&lt;br /&gt;
&lt;br /&gt;
On Linux:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE&lt;br /&gt;
sync&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Windows: Use Etcher&lt;br /&gt;
&lt;br /&gt;
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.&lt;br /&gt;
&lt;br /&gt;
You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute.&lt;br /&gt;
&lt;br /&gt;
== Postinstall notes for 20200112 image ==&lt;br /&gt;
&lt;br /&gt;
=== Wifi ===&lt;br /&gt;
&lt;br /&gt;
Requires wpasupplicant and firmware-ti-connectivity from ascii-backports (needs to get added to sources.list)&lt;br /&gt;
&lt;br /&gt;
 deb http://pkgmaster.devuan.org/merged ascii-backports main contrib non-free&lt;br /&gt;
&lt;br /&gt;
 apt install -t ascii-backports wpasupplicant&lt;br /&gt;
 apt install -t ascii-backports firmware-ti-connectivity&lt;br /&gt;
&lt;br /&gt;
Installing Bluetooth firmware in order to have working Wi-Fi is also required.&lt;br /&gt;
&lt;br /&gt;
=== Bluetooth ===&lt;br /&gt;
&lt;br /&gt;
Requires https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts to go in /lib/firmware/ti-connectivity/&lt;br /&gt;
&lt;br /&gt;
 $ sha256sum TIInit_10.6.15.bts &lt;br /&gt;
 85dc6539436319fa1301277c171f9fd65b716279900bc686a76578ab24cc7793  TIInit_10.6.15.bts&lt;br /&gt;
&lt;br /&gt;
=== Sound ===&lt;br /&gt;
&lt;br /&gt;
This needs to be executed after each boot by hand ; &lt;br /&gt;
&lt;br /&gt;
 modprobe snd-soc-cpcap&lt;br /&gt;
 modprobe snd-soc-motmdm&lt;br /&gt;
 modprobe snd-soc-audio-graph-card&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.&lt;br /&gt;
&lt;br /&gt;
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.&lt;br /&gt;
&lt;br /&gt;
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]&lt;br /&gt;
&lt;br /&gt;
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/&lt;br /&gt;
&lt;br /&gt;
== Serial Cable ==&lt;br /&gt;
&lt;br /&gt;
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/&lt;br /&gt;
&lt;br /&gt;
While using the serial cable, if you lose the connection, the following may help:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
18:43 &amp;lt; tmlind&amp;gt; sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with &lt;br /&gt;
                the console login propt later&lt;br /&gt;
18:45 &amp;lt; tmlind&amp;gt; try plugging in a pc usb cable then back to uart cable in case that might help&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gallery ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Motorola-Droid4-20200125.jpeg&lt;br /&gt;
Droid4-neofetch.JPG&lt;br /&gt;
Droid4_htop.jpg&lt;br /&gt;
Droid4_leste_logo.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Device]]&lt;/div&gt;</summary>
		<author><name>BuZz</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Motorola_Droid_4&amp;diff=572</id>
		<title>Motorola Droid 4</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Motorola_Droid_4&amp;diff=572"/>
		<updated>2020-01-26T16:34:46Z</updated>

		<summary type="html">&lt;p&gt;BuZz: /* Gallery */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Device&lt;br /&gt;
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]&lt;br /&gt;
|manufacturer=Motorola&lt;br /&gt;
|codename=Maserati&lt;br /&gt;
|dimensions=&lt;br /&gt;
|release_date=&lt;br /&gt;
|soc=&lt;br /&gt;
|dram=&lt;br /&gt;
|power=&lt;br /&gt;
|lcd=&lt;br /&gt;
|video=&lt;br /&gt;
|audio=&lt;br /&gt;
|network=&lt;br /&gt;
|storage=&lt;br /&gt;
|usb=&lt;br /&gt;
|camera=&lt;br /&gt;
|sensors=&lt;br /&gt;
|other=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Feature&lt;br /&gt;
! Leste supported&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Kernel version || 5.4 || Mainline + some patches not yet in mainline - see https://github.com/maemo-leste/droid4-linux/tree/maemo-5.4&lt;br /&gt;
|-&lt;br /&gt;
| Serial || Yes || On MicroUSB port, requires [[#Serial Cable|special cable]]&lt;br /&gt;
|-&lt;br /&gt;
| Charging || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Wireless || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Ethernet || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| Micro USB || Yes || OTG&lt;br /&gt;
|-&lt;br /&gt;
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)&lt;br /&gt;
|-&lt;br /&gt;
| Screen || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| 3D Acceleration || Not yet || PowerVR SGX540 (closed driver) - see [[Motorola Droid 4/PowerVR]]&lt;br /&gt;
|-&lt;br /&gt;
| Touchscreen || Yes || Capacitive&lt;br /&gt;
|-&lt;br /&gt;
| Audio || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/&lt;br /&gt;
|-&lt;br /&gt;
| SMS || WIP || Reported to work, no UI yet&lt;br /&gt;
|-&lt;br /&gt;
| Phone calls || WIP || Reported to work, no UI yet&lt;br /&gt;
|-&lt;br /&gt;
| Bluetooth || Yes || Needs firmware - see [[#Bluetooth|below]].  See also https://github.com/maemo-leste/bugtracker/issues/290.&lt;br /&gt;
|-&lt;br /&gt;
| FM Transmitter || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| FM Receiver || Not yet ||&lt;br /&gt;
|-&lt;br /&gt;
| Accelerometer || ? || Available as input device, needs MCE work&lt;br /&gt;
|-&lt;br /&gt;
| Proximity sensor || ? || &lt;br /&gt;
|-&lt;br /&gt;
| HDMI-out || WIP || works, but not with hildon-desktop&lt;br /&gt;
|-&lt;br /&gt;
| TV-out || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| Vibration Motor || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
|Compass || No || Mainline supports it, so Leste needs to add config - see https://github.com/maemo-leste/bugtracker/issues/294&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Hardware requirements:&lt;br /&gt;
&lt;br /&gt;
* Droid4 with fully charged battery&lt;br /&gt;
* MicroUSB cable&lt;br /&gt;
* MicroSD card&lt;br /&gt;
&lt;br /&gt;
Software requirements:&lt;br /&gt;
* Host Linux or Windows system&lt;br /&gt;
* Android Tools: fastboot&lt;br /&gt;
* Flashing tools:&lt;br /&gt;
** XZ Utils and coreutils for Linux&lt;br /&gt;
** Etcher[https://github.com/balena-io/etcher] for Windows&lt;br /&gt;
&lt;br /&gt;
Download from https://maedevu.maemo.org/images/droid4/&lt;br /&gt;
&lt;br /&gt;
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip&lt;br /&gt;
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz (NOTE: 20200112 image may have issues with WiFi)&lt;br /&gt;
&lt;br /&gt;
Download from https://github.com/tmlind/droid4-kexecboot.git&lt;br /&gt;
&lt;br /&gt;
# utags-mmcblk1p13.bin&lt;br /&gt;
# droid4-kexecboot.img&lt;br /&gt;
&lt;br /&gt;
Installation:&lt;br /&gt;
&lt;br /&gt;
# Create a working directory with above mentioned files in it&lt;br /&gt;
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip&lt;br /&gt;
# Power off Droid4 and connect it to the host machine with MicroUSB cable&lt;br /&gt;
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.&lt;br /&gt;
&lt;br /&gt;
Now go to the working directory and run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin&lt;br /&gt;
sudo fastboot reboot-bootloader&lt;br /&gt;
sudo fastboot flash bpsw droid4-kexecboot.img&lt;br /&gt;
sudo fastboot flash utags utags-mmcblk1p13.bin&lt;br /&gt;
sudo fastboot reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The device should reboot and show kexecboot menu for a few seconds before it boots to Android.&lt;br /&gt;
&lt;br /&gt;
Now, flash the Maemo Leste image to your sdcard:&lt;br /&gt;
&lt;br /&gt;
On Linux:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE&lt;br /&gt;
sync&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Windows: Use Etcher&lt;br /&gt;
&lt;br /&gt;
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.&lt;br /&gt;
&lt;br /&gt;
You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute.&lt;br /&gt;
&lt;br /&gt;
== Postinstall notes for 20200112 image ==&lt;br /&gt;
&lt;br /&gt;
=== Wifi ===&lt;br /&gt;
&lt;br /&gt;
Requires wpasupplicant and firmware-ti-connectivity from ascii-backports (needs to get added to sources.list)&lt;br /&gt;
&lt;br /&gt;
 deb http://pkgmaster.devuan.org/merged ascii-backports main contrib non-free&lt;br /&gt;
&lt;br /&gt;
 apt install -t ascii-backports wpasupplicant&lt;br /&gt;
 apt install -t ascii-backports firmware-ti-connectivity&lt;br /&gt;
&lt;br /&gt;
=== Bluetooth ===&lt;br /&gt;
&lt;br /&gt;
Requires https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts to go in /lib/firmware/ti-connectivity/&lt;br /&gt;
&lt;br /&gt;
=== Sound ===&lt;br /&gt;
&lt;br /&gt;
This needs to be executed after each boot by hand ; &lt;br /&gt;
&lt;br /&gt;
 modprobe snd-soc-cpcap&lt;br /&gt;
 modprobe snd-soc-motmdm&lt;br /&gt;
 modprobe snd-soc-audio-graph-card&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
The battery in Droid4 is not easily removable. If you got the device stuck, use this combo: power button + bottom volume key. You should hold them for about 7 seconds. Droid4 will then reboot.&lt;br /&gt;
&lt;br /&gt;
If Maemo is still running, you can also hold just the power button for ~10 seconds, and the device will run poweroff.&lt;br /&gt;
&lt;br /&gt;
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]&lt;br /&gt;
&lt;br /&gt;
Also see: http://elektranox.org/droid4/ and http://muru.com/linux/d4/&lt;br /&gt;
&lt;br /&gt;
== Serial Cable ==&lt;br /&gt;
&lt;br /&gt;
As explained at http://muru.com/linux/d4 , the Droid 4 exposes a serial console on the USB port. You can construct the required cable easily by following the instructions there. If you have old Nokia CA-42 or DKU-5 cables, then you can use them with the Droid 4, using instructions at https://jethomson.wordpress.com/2010/02/21/diy-usb-to-serial-cable-for-3usd/&lt;br /&gt;
&lt;br /&gt;
While using the serial cable, if you lose the connection, the following may help:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
18:43 &amp;lt; tmlind&amp;gt; sicelo: hmm the uart debug cable multiplexing still has issues, if the uart disappears during boot it should come back with &lt;br /&gt;
                the console login propt later&lt;br /&gt;
18:45 &amp;lt; tmlind&amp;gt; try plugging in a pc usb cable then back to uart cable in case that might help&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gallery ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Motorola-Droid4-20200125.jpeg&lt;br /&gt;
Droid4-neofetch.JPG&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Device]]&lt;/div&gt;</summary>
		<author><name>BuZz</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=File:Droid4-neofetch.JPG&amp;diff=571</id>
		<title>File:Droid4-neofetch.JPG</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=File:Droid4-neofetch.JPG&amp;diff=571"/>
		<updated>2020-01-26T16:23:18Z</updated>

		<summary type="html">&lt;p&gt;BuZz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>BuZz</name></author>
	</entry>
</feed>