<?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=Clort</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=Clort"/>
	<link rel="alternate" type="text/html" href="https://leste.maemo.org/Special:Contributions/Clort"/>
	<updated>2026-06-05T08:43:04Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Wishlist&amp;diff=1149</id>
		<title>Wishlist</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Wishlist&amp;diff=1149"/>
		<updated>2021-08-09T14:18:08Z</updated>

		<summary type="html">&lt;p&gt;Clort: /* Applications */ Flite is in devuan repo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If there is an application from Maemo Fremantle or even from a standard Linux distribution that you wish to see in Maemo Leste, please add it on this page.&lt;br /&gt;
&lt;br /&gt;
We do not promise that we can port it right away, but we will try, as far as our resources allow.&lt;br /&gt;
&lt;br /&gt;
To make our this easy for our developers, please include links to descriptions of the application, sources, and other useful information. &lt;br /&gt;
&lt;br /&gt;
== Applications ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;http://maemo.org/packages/view/orecchiette/&lt;br /&gt;
! Package name&lt;br /&gt;
! Done&lt;br /&gt;
! Reason&lt;br /&gt;
! User&lt;br /&gt;
! URL&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| osso-notes || Yes (quicknote) || a notes application || [[User:Wizzup]] || http://maemo.org/packages/view/osso-notes/ ; http://wiki.maemo.org/Quicknote || Quicknote currently packaged. Usage notes - http://wiki.maemo.org/Quicknote&lt;br /&gt;
|-&lt;br /&gt;
| pinball || No || fun || Sicelo || https://packages.debian.org/buster/pinball or  http://linball.sourceforge.net/|| any implementation.&lt;br /&gt;
|-&lt;br /&gt;
| scummvm || https://github.com/maemo-leste/bugtracker/issues/269 || fun || [[User:Wizzup]] || http://maemo.org/packages/view/scummvm/ || latest version please&lt;br /&gt;
|-&lt;br /&gt;
| [[Games/Brainparty|brainparty]] || Yes || for fun || [[User:Wizzup]] || http://maemo.org/downloads/product/Maemo5/brainparty/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Picodrive || No || Sega emulator, fun || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/p/picodrive/ || http://maemo.org/packages/view/orecchiette/(has also Psycho Pinball installable)&lt;br /&gt;
|-&lt;br /&gt;
| Internet radio: mSoma || No || media || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/m/msoma/ ||http://maemo.org/packages/view/orecchiette/&lt;br /&gt;
|-&lt;br /&gt;
| Cutetube2 || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cutetube2/0.5.2/ || could change cutetube into a youtube-dl frontend&lt;br /&gt;
|-&lt;br /&gt;
| PDF reader || Yes || reading || [[User:Wizzup]] || https://github.com/community-ssu/osso-pdf-viewer/ || libhildonfm has bugs regarding file opening dialogs that need to be fixed&lt;br /&gt;
|-&lt;br /&gt;
| Calendar app || Yes || orga || [[User:Maemish]] || https://wiki.maemo.org/Qalendar || Probably Qalendar and not fremantle closed. Requires Qt5 port.&lt;br /&gt;
|-&lt;br /&gt;
| Alarm clock || Yes || orga || [[User:Maemish]] || ? || alarmd and alarm UI already works, there might be a FOSS UI&lt;br /&gt;
|-&lt;br /&gt;
| Word processor / Abiword || Might already be in debian || orga || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/abiword/2.8.1-2maemo4/&lt;br /&gt;
|-&lt;br /&gt;
| Simple Brightness Applet || Yes, see https://github.com/maemo-leste/simple-brightness-applet || ? || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/simple-brightness-applet/1.1-1maemo0/ || This is not latest build from extras-devel&lt;br /&gt;
|-&lt;br /&gt;
|Status bar: Load Applet || No || CPU and RAM usage, screenshot and screen record. || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/load-applet/0.4.6-5/ || Needs to be ported to gst1.0&lt;br /&gt;
|-&lt;br /&gt;
| Camera App: BlessN900|| No ||  || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_non-free_armel/blessn900/0.49-3/ || &lt;br /&gt;
|-&lt;br /&gt;
| Image viewer/editor || Yes ||  || [[User:Maemish]] || https://github.com/maemo-leste-extras/mihphoto || &lt;br /&gt;
|-&lt;br /&gt;
| Mail with imap support || No ||  || [[User:Maemish]] ||  || &lt;br /&gt;
|-&lt;br /&gt;
| RSS Feed Reader: Who knows a good one? || No || Reading/Media  || [[User:Maemish]] ||  ||&lt;br /&gt;
|-&lt;br /&gt;
| Browser: Dooble || No || internet  || [[User:Maemish]] || New homepage: https://textbrowser.github.io/dooble/ Not sure if the old package helps porting http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dooble/1.52-maemo1/  || &lt;br /&gt;
|-&lt;br /&gt;
| OpenMediaPlayer  || ? || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/openmediaplayer/20161108-1/ Homepage: http://gitorious.org/qt-mediaplayer || &lt;br /&gt;
|-&lt;br /&gt;
| SMPlayer || No || media || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/smplayer/0.6.9-1maemo7/ Homepage: http://smplayer.sourceforge.net || &lt;br /&gt;
|-&lt;br /&gt;
| Unzip addon for filemanager || No || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/diablo_extras-devel_free_armel/unzip-fm/0.1.3-3/ || &lt;br /&gt;
|-&lt;br /&gt;
|  D-Theme SimpleBlackGreen  || No || fashion || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle/free/d/d-theme-simple-blackgreen/ || &lt;br /&gt;
|-&lt;br /&gt;
|  Bootscreen: Don&#039;t Panic! || No || fun (but neccessity) || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/dontpanic/1.0/  || &lt;br /&gt;
|-&lt;br /&gt;
| MMS: fMMS || No || media || [[User:Maemish]] || https://garage.maemo.org/projects/fmms || &lt;br /&gt;
|-&lt;br /&gt;
| Homescreen Dockbar Widget|| No || fashion/utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/homescreen-dockbar/0.0.6/  || &lt;br /&gt;
|-&lt;br /&gt;
| Hotspot: MobileHotspot || No. || utility/accessory || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/mobilehotspot/0.3.5/ || Either this or something else. This has only wep encryption which should be changed. &lt;br /&gt;
|-&lt;br /&gt;
| Firewall || No ||  || [[User:Maemish]] ||  || Something with easy configuration.&lt;br /&gt;
|-&lt;br /&gt;
| Swappolube || No ||  || [[User:Maemish]] || http://repository.maemo.org/extras/pool/fremantle-1.3/free/s/swappolube/ ||&lt;br /&gt;
|-&lt;br /&gt;
|bnf- Battery information at glance || No ||  || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/bnf/1.2/ || &lt;br /&gt;
|-&lt;br /&gt;
| cardioalert || No ||  || [[User:Maemish]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cardioalert/0.1/ || &lt;br /&gt;
|-&lt;br /&gt;
| gnumeric || No || Office || [[User:ric9k]] || http://maemo.org/packages/view/gnumeric/ || &lt;br /&gt;
|-|-&lt;br /&gt;
| hamsterfiler || WIP [https://github.com/maemo-leste/bugtracker/issues/499] || utilities/files || [[User:ric9k]] || http://maemo.org/packages/view/hamsterfiler/ || &lt;br /&gt;
|-|-&lt;br /&gt;
| alarmed (or cron?) || No || utilities || [[User:ric9k]] || http://maemo.org/packages/view/alarmed/ || &lt;br /&gt;
|-|-&lt;br /&gt;
| user friendly tracker || No || utilities? || [[User:ric9k]] || n/a :-) || &lt;br /&gt;
|-|-&lt;br /&gt;
| Maps (offline) || Yes || Navigation || [[User:Sicelo]] ||  || (maep, modrana, cloudgps are all packaged). Ideally something like https://f-droid.org/en/packages/com.github.axet.maps/ from Android, but Modrana, https://github.com/M4rtinK/modrana may be easier as a start. [FoxtrotGPS https://www.foxtrotgps.org] might be the easiest to adapt, it is already packaged in Devuan. &lt;br /&gt;
|-&lt;br /&gt;
| Orecchiette || No || calls recording || [[User:capitannemo]] || http://maemo.org/packages/view/orecchiette/ || &lt;br /&gt;
|-&lt;br /&gt;
| Panucci || No || audiobook || [[User:capitannemo]] || http://maemo.org/packages/view/panucci/ || &lt;br /&gt;
|-&lt;br /&gt;
| gPodder || No || podcast || [[User:capitannemo]] || http://maemo.org/packages/view/gpodder/ || &lt;br /&gt;
|-&lt;br /&gt;
| Symfonie || No || directory-based audioplayer || [[User:capitannemo]] || http://maemo.org/packages/view/symfonie/ || &lt;br /&gt;
|-&lt;br /&gt;
| osso-clock || Yes (clock-ui) || clock and alarms application || pavel ||  || &lt;br /&gt;
|-&lt;br /&gt;
| freecell4maemo || No || freecell game || pavel ||  || &lt;br /&gt;
|-&lt;br /&gt;
| [http://festvox.org/index.html CMU Flite] || In Repo || Accessibility (TTS) || [[User:Buffer|Buffer]] ([[User talk:Buffer|talk]]) 21:48, 2 March 2020 (UTC) || https://github.com/festvox/flite ||&lt;br /&gt;
|-&lt;br /&gt;
| Cooktimer || No || feature-rich timers || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/cooktimer/0.0.4-24/ || latest from extras-devel&lt;br /&gt;
|-&lt;br /&gt;
| OpenSSH Status Widget || No || openSSH monitor and config. || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-testing_free_armel/openssh-status-widget/2.2-12/ || Installing this package is the only step required on a fresh n900 to have openssh working&lt;br /&gt;
|-&lt;br /&gt;
| Recaller || No || record with one tap || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras_free_armel/recaller/2.1.0-5/ ||&lt;br /&gt;
|-&lt;br /&gt;
| NecroPlayer2 || No || directory-based audioplayer, easy playlist edit, multiple directories, very useful with recaller widget || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-devel_free_armel/necroplayer2/0.2.3/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Simpler Brightness Applet || Yes || simple brightness applet with single tap for backlight and long tap for settings || [[User:Rasmarc]] || http://maemo.org/packages/package_instance/view/fremantle_extras-testing_free_armel/simpler-brightness-applet/1.0/ ||&lt;br /&gt;
|)&lt;br /&gt;
|-&lt;br /&gt;
| telepathy-signal || No || The best open source alternative to WhatsApp should be ready for use with Maemo Leste || [[User:Derby]] || https://github.com/signalapp/Signal-Desktop ; https://github.com/AsamK/signal-cli || This is a suggestion to create a Telepathy connection manager for Signal.  Although the Signal [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=842943 Desktop] and [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=926807 CLI] can be installed, they are not yet available in Debian.  In any case, it would be great to have a Telepathy connection manager for Signal to provide seamless integration with Maemo.&lt;/div&gt;</summary>
		<author><name>Clort</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Motorola_Droid_4&amp;diff=1148</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=1148"/>
		<updated>2021-07-28T11:30:51Z</updated>

		<summary type="html">&lt;p&gt;Clort: /* Notes */&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;
&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;
== 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>Clort</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Motorola_Droid_4&amp;diff=1147</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=1147"/>
		<updated>2021-07-28T11:30:11Z</updated>

		<summary type="html">&lt;p&gt;Clort: /* Notes */&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;
&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|aemo-leste droid4 keyboard]]&lt;br /&gt;
Key mapping can be tested with the &#039;xev&#039; program.&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>Clort</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Motorola_Droid_4&amp;diff=1146</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=1146"/>
		<updated>2021-07-28T11:29:18Z</updated>

		<summary type="html">&lt;p&gt;Clort: /* Notes */&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;
&lt;br /&gt;
The keyboard layout is extended to provide more standard keys.&lt;br /&gt;
[[File:Maemo-leste-droid4-kbd-2021-07.png|620px|thumb|aemo-leste droid4 keyboard]]&lt;br /&gt;
Key mapping can be tested with the &#039;xev&#039; program.&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>Clort</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Motorola_Droid_4&amp;diff=1145</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=1145"/>
		<updated>2021-07-28T11:28:52Z</updated>

		<summary type="html">&lt;p&gt;Clort: /* Notes */&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;
&lt;br /&gt;
The keyboard layout is extended to provide more standard keys.&lt;br /&gt;
[[File:Maemo-leste-droid4-kbd-2021-07.png|620px|thumb|left|maemo-leste droid4 keyboard]]&lt;br /&gt;
Key mapping can be tested with the &#039;xev&#039; program.&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>Clort</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=File:Maemo-leste-droid4-kbd-2021-07.png&amp;diff=1144</id>
		<title>File:Maemo-leste-droid4-kbd-2021-07.png</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=File:Maemo-leste-droid4-kbd-2021-07.png&amp;diff=1144"/>
		<updated>2021-07-28T11:25:07Z</updated>

		<summary type="html">&lt;p&gt;Clort: Clort uploaded a new version of File:Maemo-leste-droid4-kbd-2021-07.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
View of Droid4 Keyboard layout with &#039;OK&#039; special keys.&lt;/div&gt;</summary>
		<author><name>Clort</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Motorola_Droid_4&amp;diff=1143</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=1143"/>
		<updated>2021-07-28T11:17:26Z</updated>

		<summary type="html">&lt;p&gt;Clort: Added graphic of droid4 keyboard layout&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;
&lt;br /&gt;
The keyboard layout is extended to provide more standard keys.&lt;br /&gt;
[[File:Maemo-leste-droid4-kbd-2021-07.png|620px|thumb|left|maemo-leste droid4 keyboard]]&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>Clort</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=File:Maemo-leste-droid4-kbd-2021-07.png&amp;diff=1142</id>
		<title>File:Maemo-leste-droid4-kbd-2021-07.png</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=File:Maemo-leste-droid4-kbd-2021-07.png&amp;diff=1142"/>
		<updated>2021-07-28T11:09:52Z</updated>

		<summary type="html">&lt;p&gt;Clort: View of Droid4 Keyboard layout with &amp;#039;OK&amp;#039; special keys.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
View of Droid4 Keyboard layout with &#039;OK&#039; special keys.&lt;/div&gt;</summary>
		<author><name>Clort</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Nokia_N900&amp;diff=1135</id>
		<title>Nokia N900</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Nokia_N900&amp;diff=1135"/>
		<updated>2021-07-14T09:41:41Z</updated>

		<summary type="html">&lt;p&gt;Clort: /* Added source repository for 0xFFFF */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Device&lt;br /&gt;
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]&lt;br /&gt;
|manufacturer=Nokia&lt;br /&gt;
|codename=Rover, RX-51&lt;br /&gt;
|dimensions=110.9mm x 59.8mm x 18mm&lt;br /&gt;
|release_date=2009-11-11&lt;br /&gt;
|category=Supported&lt;br /&gt;
|soc=TI OMAP 3430 @600MHz&lt;br /&gt;
|dram=256 MB Mobile DDR&lt;br /&gt;
|power=&lt;br /&gt;
|lcd=800x480 3.5&amp;quot; Resistive TFT&lt;br /&gt;
|video=PowerVR SGX530&lt;br /&gt;
|audio=&lt;br /&gt;
|network=WL1251&lt;br /&gt;
|storage=32GB&lt;br /&gt;
|usb=Micro USB 2.0 Slave&lt;br /&gt;
|camera=&lt;br /&gt;
|sensors=&lt;br /&gt;
|other=&lt;br /&gt;
|headers=&lt;br /&gt;
|battery=1320mAh&lt;br /&gt;
|sw_kernel=5.1&lt;br /&gt;
|sw_serial=Yes, UART under battery, 2.7V max!&lt;br /&gt;
|sw_charging=Yes&lt;br /&gt;
|sw_usb_slave=Gadgets only&lt;br /&gt;
|sw_usb_host=With hacks&lt;br /&gt;
|sw_touchscreen=Yes, single-touch&lt;br /&gt;
|sw_keyboard=Yes&lt;br /&gt;
|sw_screen=Yes&lt;br /&gt;
|sw_hdmi=&lt;br /&gt;
|sw_tv=Yes&lt;br /&gt;
|sw_3daccel=Yes, closed driver&lt;br /&gt;
|sw_vibration=Yes&lt;br /&gt;
|sw_audio=Yes (complex, no ucm, no speaker protection)&lt;br /&gt;
|sw_calls=WIP&lt;br /&gt;
|sw_sms=Yes, no UI&lt;br /&gt;
|sw_wifi=Yes, firmware required&lt;br /&gt;
|sw_ethernet=&lt;br /&gt;
|sw_irda=Yes, actually CIR, not  IrDA&lt;br /&gt;
|sw_2g3gdata=Yes&lt;br /&gt;
|sw_4gdata=&lt;br /&gt;
|sw_bluetooth=No&lt;br /&gt;
|sw_fmtx=Yes&lt;br /&gt;
|sw_fmrx=No&lt;br /&gt;
|sw_nfc=&lt;br /&gt;
|sw_accelerometer=Yes&lt;br /&gt;
|sw_compass=&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=&lt;br /&gt;
|sw_backcam=&lt;br /&gt;
|sw_idlepower=300mW (needs kernel work)&lt;br /&gt;
|sw_standbytime=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.&lt;br /&gt;
&lt;br /&gt;
=== Image installation ===&lt;br /&gt;
&lt;br /&gt;
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/&lt;br /&gt;
* Image archive: https://maedevu.maemo.org/images/n900/&lt;br /&gt;
&lt;br /&gt;
dd the image to an sd card.&lt;br /&gt;
&lt;br /&gt;
If using a Windows machine, you can use [https://etcher.io/ Etcher]&lt;br /&gt;
&lt;br /&gt;
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)&lt;br /&gt;
&lt;br /&gt;
=== Bootloader (U-Boot) setup ===&lt;br /&gt;
&lt;br /&gt;
==== Quick ====&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:&lt;br /&gt;
&lt;br /&gt;
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/&lt;br /&gt;
&lt;br /&gt;
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/&lt;br /&gt;
&lt;br /&gt;
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: &amp;lt;code&amp;gt;sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: &amp;lt;code&amp;gt;./0xFFFF -b&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type &amp;lt;code&amp;gt;run sdboot&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
To flash u-boot permanently, you can issue the following command&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Existing Fremantle ====&lt;br /&gt;
&lt;br /&gt;
If you have a functional Fremantle installation, you can follow these steps instead:&lt;br /&gt;
&lt;br /&gt;
1. Install &amp;quot;U-Boot with kernel 2.6.28-omap1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2. Install &amp;quot;Linux kernel for power user (boot image for U-Boot)&amp;quot;. This is optional, but recommended.&lt;br /&gt;
&lt;br /&gt;
3. Add Maemo Leste menu item (run as root):&lt;br /&gt;
 cat &amp;gt; /etc/bootmenu.d/30-maemo-leste.item &amp;lt;&amp;lt; &amp;quot;EOF&amp;quot; &amp;amp;&amp;amp;&lt;br /&gt;
 ITEM_NAME=&amp;quot;Maemo Leste&amp;quot;&lt;br /&gt;
 ITEM_KERNEL=&amp;quot;uImage&amp;quot;&lt;br /&gt;
 ITEM_DEVICE=&amp;quot;${EXT_CARD}p1&amp;quot;&lt;br /&gt;
 ITEM_FSTYPE=&amp;quot;ext2&amp;quot;&lt;br /&gt;
 EOF&lt;br /&gt;
 u-boot-update-bootmenu&lt;br /&gt;
&lt;br /&gt;
4. Reboot the device&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Increase filesystem size ===&lt;br /&gt;
&lt;br /&gt;
Run the following script: &amp;lt;code&amp;gt;/etc/expandcard.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Serial ==&lt;br /&gt;
&lt;br /&gt;
http://n900.elektranox.org/serial-adapter.html&lt;br /&gt;
&lt;br /&gt;
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them&lt;br /&gt;
&lt;br /&gt;
Also see: https://elinux.org/N900&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Power Management ==&lt;br /&gt;
&lt;br /&gt;
Power usage right now is reported to be about 80mA, which is quite a lot. On a good battery this will last for about 15 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170&lt;br /&gt;
&lt;br /&gt;
* https://wiki.maemo.org/N900_Hardware_Power_management&lt;br /&gt;
* https://wiki.maemo.org/N900_Hardware_Power_Consumption&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Run:&lt;br /&gt;
&lt;br /&gt;
 modprobe ledtrig-default-on&lt;br /&gt;
&lt;br /&gt;
And:&lt;br /&gt;
&lt;br /&gt;
 echo default-on &amp;gt; /sys/class/leds/debug::sleep/trigger&lt;br /&gt;
&lt;br /&gt;
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.&lt;br /&gt;
&lt;br /&gt;
Currently it does not yet reliably reach any sleep modes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This script can be used to decode idle states when this patch is applied: https://github.com/maemo-leste/n9xx-linux/blob/maemo/beowulf/debian/patches/0001_deeper_idle.patch&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat idlest.py&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
00001fff 48005020 (584be965) cm_idlest_per blocking bits: 0007e000&lt;br /&gt;
f7df3fb9 48004a20 (b32988a8) cm_idlest1_core blocking bits: 0020c046&lt;br /&gt;
0000000d 48004a28 (f7aa95e6) cm_idlest3_core&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# 31 to 0&lt;br /&gt;
cm_idlest1_core_bits = [&lt;br /&gt;
&#039;RESERVED&#039;,&lt;br /&gt;
&#039;ST_MMC3&#039;,&lt;br /&gt;
&#039;ST_ICR&#039;,&lt;br /&gt;
&#039;RESERVED&#039;,&lt;br /&gt;
&#039;RESERVED&#039;,&lt;br /&gt;
&#039;RESERVED&#039;,&lt;br /&gt;
&#039;ST_MMC2&#039;,&lt;br /&gt;
&#039;ST_MMC1&#039;,&lt;br /&gt;
&#039;RESERVED&#039;,&lt;br /&gt;
&#039;ST_HDQ&#039;,&lt;br /&gt;
&#039;ST_MCSPI4&#039;,&lt;br /&gt;
&#039;ST_MCSPI3&#039;,&lt;br /&gt;
&#039;ST_MCSPI2&#039;,&lt;br /&gt;
&#039;ST_MCSPI1&#039;,&lt;br /&gt;
&#039;ST_I2C3&#039;,&lt;br /&gt;
&#039;ST_I2C2&#039;,&lt;br /&gt;
&#039;ST_I2C1&#039;,&lt;br /&gt;
&#039;ST_UART2&#039;,&lt;br /&gt;
&#039;ST_UART1&#039;,&lt;br /&gt;
&#039;ST_GPT11&#039;,&lt;br /&gt;
&#039;ST_GPT10&#039;,&lt;br /&gt;
&#039;ST_MCBSP5&#039;,&lt;br /&gt;
&#039;ST_MCBSP1&#039;,&lt;br /&gt;
&#039;RESERVED&#039;,&lt;br /&gt;
&#039;ST_MAILBOXES&#039;,&lt;br /&gt;
&#039;ST_OMAPCTRL&#039;,&lt;br /&gt;
&#039;ST_HSOTGUSB_IDLE&#039;,&lt;br /&gt;
&#039;ST_HSOTGUSB_STDBY&#039;,&lt;br /&gt;
&#039;RESERVED&#039;,&lt;br /&gt;
&#039;ST_SDMA&#039;,&lt;br /&gt;
&#039;ST_SDRC&#039;,&lt;br /&gt;
&#039;RESERVED&#039;,&lt;br /&gt;
]&lt;br /&gt;
&lt;br /&gt;
cm_idlest1_core_bits = list(reversed(cm_idlest1_core_bits))&lt;br /&gt;
&lt;br /&gt;
#inp = &#039;0020c046&#039;&lt;br /&gt;
inp = &#039;00208042&#039; # after rmmod hci_nokia and hci_uart&lt;br /&gt;
&lt;br /&gt;
v = int(inp, 16)&lt;br /&gt;
&lt;br /&gt;
#print(v)&lt;br /&gt;
b= &amp;quot;{0:b}&amp;quot;.format(v)&lt;br /&gt;
print((32-len(b))*&#039;0&#039; + b)&lt;br /&gt;
&lt;br /&gt;
for i in range(0, 32):&lt;br /&gt;
    is_set = (v &amp;amp; (1 &amp;lt;&amp;lt; i)) &amp;gt;&amp;gt; i&lt;br /&gt;
    if is_set:&lt;br /&gt;
        print(cm_idlest1_core_bits[i])&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Battery calibration ==&lt;br /&gt;
&lt;br /&gt;
Nokia N900 has bq27200 integrated circuit for monitoring battery state. The datasheet can be found here: http://www.ti.com/lit/ds/symlink/bq27200.pdf. If you are curious, check the section called &amp;quot;Gas Gauge Operation&amp;quot; for how the battery calibration is done in a low level.&lt;br /&gt;
&lt;br /&gt;
Here are described the steps necessary to calibrate your battery. This should help if you see &amp;quot;Battery not calibrated&amp;quot; message in the status applet.&lt;br /&gt;
&lt;br /&gt;
* Fully charge Nokia N900. Don&#039;t detach the charger immediately, give it some time after you see &amp;quot;Fully charged&amp;quot; message (10 minutes should be enough).&lt;br /&gt;
* Detach the charger and don&#039;t attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).&lt;br /&gt;
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don&#039;t connect the device to a charger or a PC using the USB cable.&lt;br /&gt;
* When your Nokia N900 has battery depleted, it will alarm you with the &amp;quot;battery low&amp;quot; sound.&lt;br /&gt;
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it&#039;s fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.&lt;br /&gt;
* If you still see &amp;quot;Battery not calibrated&amp;quot; message, reboot the device.&lt;br /&gt;
&lt;br /&gt;
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It&#039;s how the battery calibration works in low level: it can&#039;t change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it&#039;s needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.&lt;br /&gt;
&lt;br /&gt;
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.&lt;br /&gt;
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.&lt;br /&gt;
&lt;br /&gt;
== Accessing MTD ==&lt;br /&gt;
&lt;br /&gt;
List devices:&lt;br /&gt;
 cat /proc/mtd&lt;br /&gt;
&lt;br /&gt;
Mount:&lt;br /&gt;
 apt install mtd-utils&lt;br /&gt;
 mkdir -vp /mnt/fremantle&lt;br /&gt;
 ubiattach -p /dev/mtd5&lt;br /&gt;
 mount -t ubifs ubi:rootfs /mnt/fremantle&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Old status table ==&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.1 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux&lt;br /&gt;
|-&lt;br /&gt;
| Serial || Yes || Requires special hardware&lt;br /&gt;
|-&lt;br /&gt;
| Charging || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Wireless || Yes || Firmware is non-free&lt;br /&gt;
|-&lt;br /&gt;
| Ethernet || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible&lt;br /&gt;
|-&lt;br /&gt;
| Keyboard || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Screen || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| 3D Acceleration || Yes || closed driver&lt;br /&gt;
|-&lt;br /&gt;
| Touchscreen || Yes || Resistive&lt;br /&gt;
|-&lt;br /&gt;
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support&lt;br /&gt;
|-&lt;br /&gt;
| 2G/3G data || Yes || Works with ofono - UI is WIP, see https://github.com/maemo-leste/connui-cellular/&lt;br /&gt;
|-&lt;br /&gt;
| 4G data || N/A || no hardware&lt;br /&gt;
|-&lt;br /&gt;
| SMS || Yes || Works with ofono. Needs Leste UI&lt;br /&gt;
|-&lt;br /&gt;
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters&lt;br /&gt;
|-&lt;br /&gt;
| Bluetooth || No || Driver needs some work&lt;br /&gt;
|-&lt;br /&gt;
| FM Transmitter || Yes || Install &amp;lt;code&amp;gt;v4l-utils&amp;lt;/code&amp;gt;, then enable chip and set frequency using: &amp;lt;code&amp;gt;v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f &amp;lt;freq&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| FM Receiver || No ||&lt;br /&gt;
|-&lt;br /&gt;
| Accelerometer || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Compass || N/A || No hardware&lt;br /&gt;
|-&lt;br /&gt;
| Gyro || N/A|| No hardware&lt;br /&gt;
|-&lt;br /&gt;
| Proximity sensor || Yes || evdev interface not supported in mce&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 || N/A || No hardware&lt;br /&gt;
|-&lt;br /&gt;
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with &amp;lt;code&amp;gt;xrandr --output TV --mode 800x480 --same-as LCD&amp;lt;/code&amp;gt;. Set PAL/NTSC with &amp;lt;code&amp;gt;xrandr --output TV --set SignalProperties PAL&amp;lt;/code&amp;gt;, and scale with &amp;lt;code&amp;gt;xrandr --output TV --set TVScale 90&amp;lt;/code&amp;gt;.&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 || Yes || TX only (hardware limitation). &lt;br /&gt;
|-&lt;br /&gt;
| Camera || No || Needs complex v4l work, no leste integration&lt;br /&gt;
|-&lt;br /&gt;
| Idle power consumption || ~300mW || Device does not enter RET or OFF mode&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Device]]&lt;/div&gt;</summary>
		<author><name>Clort</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Extras/ScummVM&amp;diff=1134</id>
		<title>Extras/ScummVM</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Extras/ScummVM&amp;diff=1134"/>
		<updated>2021-07-09T01:15:58Z</updated>

		<summary type="html">&lt;p&gt;Clort: /* TODO */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Package&lt;br /&gt;
|image=[[File:ScummVM_Logo.png|250px]]&lt;br /&gt;
|status=Working&lt;br /&gt;
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]&lt;br /&gt;
|date_in_repo=2021-05-21&lt;br /&gt;
|website=https://www.scummvm.org/&lt;br /&gt;
|maemo_leste_repo=https://github.com/maemo-leste-extras/scummvm&lt;br /&gt;
|category=Games&lt;br /&gt;
|packager=[[User:Wizzup]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ScummVM is a program which allows you to run certain classic graphical adventure and role-playing games, provided you already have their data files. The clever part about this: ScummVM just replaces the executables shipped with the games, allowing you to play them on systems for which they were never designed! ScummVM is a complete rewrite of these games&#039; executables and is not an emulator. (From ScummVM website)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Relevant issue: https://github.com/maemo-leste/bugtracker/issues/269&lt;br /&gt;
&lt;br /&gt;
Also see this page for more info: https://wiki.scummvm.org/index.php/Maemo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
* Games seems to be playable, with sound and input&lt;br /&gt;
&lt;br /&gt;
* GUI with default theme is too small to be clickable/visable.  WIth theme scummvm-remastered (scummremastered.zip) it is possible to set GUI scale to &#039;Large&#039; and get a readable GUI:&lt;br /&gt;
&lt;br /&gt;
[[File:Leste-scummvm-bigtheme.jpg|500px]]&lt;br /&gt;
&lt;br /&gt;
To get large readable GUI:&lt;br /&gt;
&amp;lt;code&amp;gt;edit ~/.config/scummvm.ini&lt;br /&gt;
change gui_base=0 to gui_base=240&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tested games ===&lt;br /&gt;
Neverhood, Ultima 4, Ultima 6, Grim Fandango, Broken Sword 1&lt;br /&gt;
&lt;br /&gt;
==== The Neverhood ====&lt;br /&gt;
&lt;br /&gt;
Change keymap as appropriate, works well.&lt;br /&gt;
&lt;br /&gt;
[[File:ScummVMNeverhood.png|500px]]&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
&lt;br /&gt;
* Implement sane default keys for the devices (there is rudimentary detection for the N900, but we support more devices)&lt;br /&gt;
* Use libsdl2 build, didn&#039;t compile when [[User:Wizzup]] tried.&lt;br /&gt;
* Revise Maemo-Leste configure backend/target to remove &#039;optification&#039;&lt;br /&gt;
* Create Widescreen readable theme&lt;br /&gt;
* Fix touchscreen to pointer position de-synchronization.  (Starts okay, goes bad).&lt;br /&gt;
* Find rendering and build options for low battery use (adventure game sessions can be long)&lt;br /&gt;
* Get Maemo-Leste target into upstream SCUMMVM&lt;br /&gt;
&lt;br /&gt;
[[Category:Extras]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Games]]&lt;/div&gt;</summary>
		<author><name>Clort</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Extras/ScummVM&amp;diff=1133</id>
		<title>Extras/ScummVM</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Extras/ScummVM&amp;diff=1133"/>
		<updated>2021-07-08T22:00:10Z</updated>

		<summary type="html">&lt;p&gt;Clort: /* TODO */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Package&lt;br /&gt;
|image=[[File:ScummVM_Logo.png|250px]]&lt;br /&gt;
|status=Working&lt;br /&gt;
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]&lt;br /&gt;
|date_in_repo=2021-05-21&lt;br /&gt;
|website=https://www.scummvm.org/&lt;br /&gt;
|maemo_leste_repo=https://github.com/maemo-leste-extras/scummvm&lt;br /&gt;
|category=Games&lt;br /&gt;
|packager=[[User:Wizzup]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ScummVM is a program which allows you to run certain classic graphical adventure and role-playing games, provided you already have their data files. The clever part about this: ScummVM just replaces the executables shipped with the games, allowing you to play them on systems for which they were never designed! ScummVM is a complete rewrite of these games&#039; executables and is not an emulator. (From ScummVM website)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Relevant issue: https://github.com/maemo-leste/bugtracker/issues/269&lt;br /&gt;
&lt;br /&gt;
Also see this page for more info: https://wiki.scummvm.org/index.php/Maemo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
* Games seems to be playable, with sound and input&lt;br /&gt;
&lt;br /&gt;
* GUI with default theme is too small to be clickable/visable.  WIth theme scummvm-remastered (scummremastered.zip) it is possible to set GUI scale to &#039;Large&#039; and get a readable GUI:&lt;br /&gt;
&lt;br /&gt;
[[File:Leste-scummvm-bigtheme.jpg|500px]]&lt;br /&gt;
&lt;br /&gt;
To get large readable GUI:&lt;br /&gt;
&amp;lt;code&amp;gt;edit ~/.config/scummvm.ini&lt;br /&gt;
change gui_base=0 to gui_base=240&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tested games ===&lt;br /&gt;
Neverhood, Ultima 4, Ultima 6, Grim Fandango, Broken Sword 1&lt;br /&gt;
&lt;br /&gt;
==== The Neverhood ====&lt;br /&gt;
&lt;br /&gt;
Change keymap as appropriate, works well.&lt;br /&gt;
&lt;br /&gt;
[[File:ScummVMNeverhood.png|500px]]&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
&lt;br /&gt;
* Implement sane default keys for the devices (there is rudimentary detection for the N900, but we support more devices)&lt;br /&gt;
* Use libsdl2 build, didn&#039;t compile when [[User:Wizzup]] tried.&lt;br /&gt;
* Revise Maemo-Leste configure backend/target to remove &#039;optification&#039;&lt;br /&gt;
* Create Widescreen readable theme&lt;br /&gt;
* Find rendering and build options for low battery use (adventure game sessions can be long)&lt;br /&gt;
* Get Maemo-Leste target into upstream SCUMMVM&lt;br /&gt;
&lt;br /&gt;
[[Category:Extras]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Games]]&lt;/div&gt;</summary>
		<author><name>Clort</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Motorola_Droid_4&amp;diff=1132</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=1132"/>
		<updated>2021-07-08T21:13:22Z</updated>

		<summary type="html">&lt;p&gt;Clort: /* Using a configured Leste sdcard in a different Droid4 */&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;
== 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>Clort</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Extras/ScummVM&amp;diff=1131</id>
		<title>Extras/ScummVM</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Extras/ScummVM&amp;diff=1131"/>
		<updated>2021-07-08T20:12:20Z</updated>

		<summary type="html">&lt;p&gt;Clort: /* TODO */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Package&lt;br /&gt;
|image=[[File:ScummVM_Logo.png|250px]]&lt;br /&gt;
|status=Working&lt;br /&gt;
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]&lt;br /&gt;
|date_in_repo=2021-05-21&lt;br /&gt;
|website=https://www.scummvm.org/&lt;br /&gt;
|maemo_leste_repo=https://github.com/maemo-leste-extras/scummvm&lt;br /&gt;
|category=Games&lt;br /&gt;
|packager=[[User:Wizzup]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ScummVM is a program which allows you to run certain classic graphical adventure and role-playing games, provided you already have their data files. The clever part about this: ScummVM just replaces the executables shipped with the games, allowing you to play them on systems for which they were never designed! ScummVM is a complete rewrite of these games&#039; executables and is not an emulator. (From ScummVM website)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Relevant issue: https://github.com/maemo-leste/bugtracker/issues/269&lt;br /&gt;
&lt;br /&gt;
Also see this page for more info: https://wiki.scummvm.org/index.php/Maemo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
* Games seems to be playable, with sound and input&lt;br /&gt;
&lt;br /&gt;
* GUI with default theme is too small to be clickable/visable.  WIth theme scummvm-remastered (scummremastered.zip) it is possible to set GUI scale to &#039;Large&#039; and get a readable GUI:&lt;br /&gt;
&lt;br /&gt;
[[File:Leste-scummvm-bigtheme.jpg|500px]]&lt;br /&gt;
&lt;br /&gt;
To get large readable GUI:&lt;br /&gt;
&amp;lt;code&amp;gt;edit ~/.config/scummvm.ini&lt;br /&gt;
change gui_base=0 to gui_base=240&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tested games ===&lt;br /&gt;
Neverhood, Ultima 4, Ultima 6, Grim Fandango, Broken Sword 1&lt;br /&gt;
&lt;br /&gt;
==== The Neverhood ====&lt;br /&gt;
&lt;br /&gt;
Change keymap as appropriate, works well.&lt;br /&gt;
&lt;br /&gt;
[[File:ScummVMNeverhood.png|500px]]&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
&lt;br /&gt;
* Implement sane default keys for the devices (there is rudimentary detection for the N900, but we support more devices)&lt;br /&gt;
* Use libsdl2 build, didn&#039;t compile when [[User:Wizzup]] tried.&lt;br /&gt;
* Revise Maemo-Leste configure backend/target to remove &#039;optification&#039;&lt;br /&gt;
* Create Widescreen readable theme&lt;br /&gt;
* Fix mouse cursor tracking for touchscreen&lt;br /&gt;
* Find rendering and build options for low battery use (adventure game sessions can be long)&lt;br /&gt;
* Get Maemo-Leste target into upstream SCUMMVM&lt;br /&gt;
&lt;br /&gt;
[[Category:Extras]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Games]]&lt;/div&gt;</summary>
		<author><name>Clort</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Extras/ScummVM&amp;diff=1130</id>
		<title>Extras/ScummVM</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Extras/ScummVM&amp;diff=1130"/>
		<updated>2021-07-08T20:11:24Z</updated>

		<summary type="html">&lt;p&gt;Clort: /* Status */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Package&lt;br /&gt;
|image=[[File:ScummVM_Logo.png|250px]]&lt;br /&gt;
|status=Working&lt;br /&gt;
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]&lt;br /&gt;
|date_in_repo=2021-05-21&lt;br /&gt;
|website=https://www.scummvm.org/&lt;br /&gt;
|maemo_leste_repo=https://github.com/maemo-leste-extras/scummvm&lt;br /&gt;
|category=Games&lt;br /&gt;
|packager=[[User:Wizzup]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ScummVM is a program which allows you to run certain classic graphical adventure and role-playing games, provided you already have their data files. The clever part about this: ScummVM just replaces the executables shipped with the games, allowing you to play them on systems for which they were never designed! ScummVM is a complete rewrite of these games&#039; executables and is not an emulator. (From ScummVM website)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Relevant issue: https://github.com/maemo-leste/bugtracker/issues/269&lt;br /&gt;
&lt;br /&gt;
Also see this page for more info: https://wiki.scummvm.org/index.php/Maemo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
* Games seems to be playable, with sound and input&lt;br /&gt;
&lt;br /&gt;
* GUI with default theme is too small to be clickable/visable.  WIth theme scummvm-remastered (scummremastered.zip) it is possible to set GUI scale to &#039;Large&#039; and get a readable GUI:&lt;br /&gt;
&lt;br /&gt;
[[File:Leste-scummvm-bigtheme.jpg|500px]]&lt;br /&gt;
&lt;br /&gt;
To get large readable GUI:&lt;br /&gt;
&amp;lt;code&amp;gt;edit ~/.config/scummvm.ini&lt;br /&gt;
change gui_base=0 to gui_base=240&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tested games ===&lt;br /&gt;
Neverhood, Ultima 4, Ultima 6, Grim Fandango, Broken Sword 1&lt;br /&gt;
&lt;br /&gt;
==== The Neverhood ====&lt;br /&gt;
&lt;br /&gt;
Change keymap as appropriate, works well.&lt;br /&gt;
&lt;br /&gt;
[[File:ScummVMNeverhood.png|500px]]&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
&lt;br /&gt;
* Implement sane default keys for the devices (there is rudimentary detection for the N900, but we support more devices)&lt;br /&gt;
* Use libsdl2 build, didn&#039;t compile when [[User:Wizzup]] tried.&lt;br /&gt;
&lt;br /&gt;
[[Category:Extras]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Games]]&lt;/div&gt;</summary>
		<author><name>Clort</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Extras/ScummVM&amp;diff=1129</id>
		<title>Extras/ScummVM</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Extras/ScummVM&amp;diff=1129"/>
		<updated>2021-07-08T20:10:24Z</updated>

		<summary type="html">&lt;p&gt;Clort: /* Status */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Package&lt;br /&gt;
|image=[[File:ScummVM_Logo.png|250px]]&lt;br /&gt;
|status=Working&lt;br /&gt;
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]&lt;br /&gt;
|date_in_repo=2021-05-21&lt;br /&gt;
|website=https://www.scummvm.org/&lt;br /&gt;
|maemo_leste_repo=https://github.com/maemo-leste-extras/scummvm&lt;br /&gt;
|category=Games&lt;br /&gt;
|packager=[[User:Wizzup]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ScummVM is a program which allows you to run certain classic graphical adventure and role-playing games, provided you already have their data files. The clever part about this: ScummVM just replaces the executables shipped with the games, allowing you to play them on systems for which they were never designed! ScummVM is a complete rewrite of these games&#039; executables and is not an emulator. (From ScummVM website)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Relevant issue: https://github.com/maemo-leste/bugtracker/issues/269&lt;br /&gt;
&lt;br /&gt;
Also see this page for more info: https://wiki.scummvm.org/index.php/Maemo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
* Games seems to be playable, with sound and input&lt;br /&gt;
&lt;br /&gt;
* GUI with default theme is too small to be clickable/visable.  WIth theme scummvm-remastered (scummremastered.zip) it is possible to set GUI scale to &#039;Large&#039; and get a readable GUI:&lt;br /&gt;
&lt;br /&gt;
[[File:Leste-scummvm-bigtheme.jpg|500px]]&lt;br /&gt;
&lt;br /&gt;
To get large readable GUI:&lt;br /&gt;
&amp;lt;code&amp;gt;edit ~/.config/scummvm.ini&lt;br /&gt;
change gui_base=0 to gui_base=240&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tested games ===&lt;br /&gt;
Neverhood, Ultima 4, Ultima 6, Grim Fandango, Broken Sword 1&lt;br /&gt;
&lt;br /&gt;
==== The Neverhood ====&lt;br /&gt;
&lt;br /&gt;
Change keymap as appropriate, works well.&lt;br /&gt;
&lt;br /&gt;
[[File:ScummVMNeverhood.png|500px]]&lt;br /&gt;
&lt;br /&gt;
==== TODO ====&lt;br /&gt;
* Revise Maemo-Leste configure backend/target to remove &#039;optification&#039;&lt;br /&gt;
* Create Widescreen readable theme&lt;br /&gt;
* Fix mouse cursor tracking for touchscreen&lt;br /&gt;
* Find rendering and build options for low battery use (adventure game sessions can be long)&lt;br /&gt;
* Get Maemo-Leste target into upstream SCUMMVM&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
&lt;br /&gt;
* Implement sane default keys for the devices (there is rudimentary detection for the N900, but we support more devices)&lt;br /&gt;
* Use libsdl2 build, didn&#039;t compile when [[User:Wizzup]] tried.&lt;br /&gt;
&lt;br /&gt;
[[Category:Extras]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Games]]&lt;/div&gt;</summary>
		<author><name>Clort</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=File:Leste-scummvm-bigtheme.jpg&amp;diff=1128</id>
		<title>File:Leste-scummvm-bigtheme.jpg</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=File:Leste-scummvm-bigtheme.jpg&amp;diff=1128"/>
		<updated>2021-07-08T19:39:49Z</updated>

		<summary type="html">&lt;p&gt;Clort: Scummvm large theme (before widescreen mod) on Droid4&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Scummvm large theme (before widescreen mod) on Droid4&lt;/div&gt;</summary>
		<author><name>Clort</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Motorola_Droid_4&amp;diff=1123</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=1123"/>
		<updated>2021-07-07T01:38:20Z</updated>

		<summary type="html">&lt;p&gt;Clort: /* Gallery */&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;
== 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 ti-firmware-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>Clort</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=File:Droid4_Daimonin_Hdmi.jpg&amp;diff=1122</id>
		<title>File:Droid4 Daimonin Hdmi.jpg</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=File:Droid4_Daimonin_Hdmi.jpg&amp;diff=1122"/>
		<updated>2021-07-07T01:37:12Z</updated>

		<summary type="html">&lt;p&gt;Clort: Example of droid4 with hdmi out enabled:
xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Example of droid4 with hdmi out enabled:&lt;br /&gt;
xrandr --output HDMI-1 --mode 1920x1080 --output DSI-1 --off&lt;/div&gt;</summary>
		<author><name>Clort</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Motorola_Droid_4&amp;diff=1120</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=1120"/>
		<updated>2021-06-29T10:02:49Z</updated>

		<summary type="html">&lt;p&gt;Clort: /* Using a configured Leste sdcard in a different Droid4 */&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;
== 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 ti-firmware-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;
&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;
[[Category:Device]]&lt;/div&gt;</summary>
		<author><name>Clort</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Motorola_Droid_4&amp;diff=1119</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=1119"/>
		<updated>2021-06-29T10:01:32Z</updated>

		<summary type="html">&lt;p&gt;Clort: /* Using a configured Leste sdcard in a different Droid4 */&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;
== 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;
To recalibrate the wifi firmware on a different Droid4, you must reset the FEM parameters to stock settings on the new device, then recalibrate.  The calibration script requires stock settings to calibrate-from.  It cannot just be re-run on an already calibrated system.&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 ti-firmware-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;
&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;
[[Category:Device]]&lt;/div&gt;</summary>
		<author><name>Clort</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Motorola_Droid_4&amp;diff=1118</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=1118"/>
		<updated>2021-06-29T09:55:00Z</updated>

		<summary type="html">&lt;p&gt;Clort: added instructions for recalibrating wifi&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;
== 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;
To recalibrate the wifi firmware on a different Droid4, you must reset the FEM parameters to stock settings on the new device:&lt;br /&gt;
 apt reinstall ti-firmware-connectivity &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;
&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;
[[Category:Device]]&lt;/div&gt;</summary>
		<author><name>Clort</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Tweaking&amp;diff=986</id>
		<title>Tweaking</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Tweaking&amp;diff=986"/>
		<updated>2021-04-10T11:43:28Z</updated>

		<summary type="html">&lt;p&gt;Clort: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Maemo Leste is very tweakable/hackable/versatile, this page lists some of the things you could change, hopefully grouped in a meaningful manner.&lt;br /&gt;
&lt;br /&gt;
==== Prevent autoremoval of downloaded .deb files ====&lt;br /&gt;
The tool &#039;apt&#039; as an alternative to apt-get uses different configuration.&lt;br /&gt;
To prevent apt from auto-deleting downloaded .deb packages do this:&lt;br /&gt;
&amp;lt;pre&amp;gt;echo &#039;Binary::apt::APT::Keep-Downloaded-Packages &amp;quot;true&amp;quot;;&#039; \ &amp;gt; /etc/apt/apt.conf.d/01keep-debs&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== GConf Settings =====&lt;br /&gt;
&lt;br /&gt;
==== Show current gconf settings ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;gconftool-2 -R / |less&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;gconftool -S \* |less&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Battery icon ====&lt;br /&gt;
&lt;br /&gt;
You can change the animation of the charging icon to show the current charge capacity:&lt;br /&gt;
&amp;lt;pre&amp;gt;gconftool-2 -s /apps/osso/status-area-applet-battery/show_charge_charging -t bool true&amp;lt;/pre&amp;gt; [edit] &#039;&#039;This doesn&#039;t do anything for me - clort&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Disable screen rotate ====&lt;br /&gt;
&lt;br /&gt;
You can lock screen orientation to the current (disabling screen rotation) with&lt;br /&gt;
&amp;lt;pre&amp;gt;gconftool-2 -s  /apps/osso/hildon-desktop/orientation_lock -t bool true&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Switch clock display to 24h ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;gconftool-2 -s /apps/clock/time-format -t bool true&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Prevent user rearranging of app menu ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;gconftool-2 -s /apps/osso/hildon-desktop/key-actions/disable_edit -t bool true&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Hide toolbar at bottom of osso-xterm (to get more lines) ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;gconftool-2 -s  /apps/osso/xterm/toolbar -t bool false&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Clort</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Tweaking&amp;diff=985</id>
		<title>Tweaking</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Tweaking&amp;diff=985"/>
		<updated>2021-04-10T11:38:39Z</updated>

		<summary type="html">&lt;p&gt;Clort: added preventing apt from autoremoving downloaded .deb packages&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Maemo Leste is very tweakable/hackable/versatile, this page lists some of the things you could change, hopefully grouped in a meaningful manner.&lt;br /&gt;
&lt;br /&gt;
==== Show current gconf settings ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;gconftool-2 -R / |less&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;gconftool -S \* |less&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Battery icon ====&lt;br /&gt;
&lt;br /&gt;
You can change the animation of the charging icon to show the current charge capacity:&lt;br /&gt;
&amp;lt;pre&amp;gt;gconftool-2 -s /apps/osso/status-area-applet-battery/show_charge_charging -t bool true&amp;lt;/pre&amp;gt; [edit] &#039;&#039;This doesn&#039;t do anything for me - clort&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Prevent autoremoval of downloaded .deb files ====&lt;br /&gt;
The tool &#039;apt&#039; as an alternative to apt-get uses different configuration.&lt;br /&gt;
To prevent apt from auto-deleting downloaded .deb packages do this:&lt;br /&gt;
&amp;lt;pre&amp;gt;echo &#039;Binary::apt::APT::Keep-Downloaded-Packages &amp;quot;true&amp;quot;;&#039; \ &amp;gt; /etc/apt/apt.conf.d/01keep-debs&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Disable screen rotate ====&lt;br /&gt;
&lt;br /&gt;
You can lock screen orientation to the current (disabling screen rotation) with&lt;br /&gt;
&amp;lt;pre&amp;gt;gconftool-2 -s  /apps/osso/hildon-desktop/orientation_lock -t bool true&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Switch clock display to 24h ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;gconftool-2 -s /apps/clock/time-format -t bool true&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Prevent user rearranging of app menu ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;gconftool-2 -s /apps/osso/hildon-desktop/key-actions/disable_edit -t bool true&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Hide toolbar at bottom of osso-xterm (to get more lines) ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;gconftool-2 -s  /apps/osso/xterm/toolbar -t bool false&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Clort</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Getting_Started&amp;diff=984</id>
		<title>Getting Started</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Getting_Started&amp;diff=984"/>
		<updated>2021-04-10T05:01:22Z</updated>

		<summary type="html">&lt;p&gt;Clort: /* Expand the root partition to fill SD card */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Installation to SD Card =&lt;br /&gt;
&lt;br /&gt;
After updating device firmware with included script (eg. flash-droid-4-fw.sh):&lt;br /&gt;
&lt;br /&gt;
Download an image appropriate for your device from [http://maedevu.maemo.org/images/]&lt;br /&gt;
&lt;br /&gt;
Insert a microsd card into your computer and find the device with cat /proc/partitions&lt;br /&gt;
&lt;br /&gt;
Decompress and write the image to your microsd card device:&lt;br /&gt;
&lt;br /&gt;
xzcat maemo-leste-VERSION.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE&lt;br /&gt;
&lt;br /&gt;
= Expand the root partition to fill SD card =&lt;br /&gt;
&lt;br /&gt;
A helpful script is included to expand the root partition to fill the microSD card.&lt;br /&gt;
After booting and logging in to root, execute/etc/expandcard.sh&lt;br /&gt;
&lt;br /&gt;
This will expand the root partition to fill the microSD card using resize2fs.&lt;br /&gt;
&lt;br /&gt;
= (SSH) Login =&lt;br /&gt;
&lt;br /&gt;
User credentials are: &#039;&#039;&#039;user:user&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Root credentials are: &#039;&#039;&#039;root:toor&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You should prefer logging in as user and then escalating to root with sudo as necessary.&lt;br /&gt;
&lt;br /&gt;
In images newer than 17 January 2021, root SSH is disabled by default.&lt;br /&gt;
&lt;br /&gt;
= Useful Bits = &lt;br /&gt;
&lt;br /&gt;
* Default lockcode is &amp;quot;12345&amp;quot;&lt;br /&gt;
* Lockcode can only be changed if your hardware has CAL. QEMU does not have CAL. Droid 4 also not.&lt;br /&gt;
&lt;br /&gt;
= More RAM =&lt;br /&gt;
&lt;br /&gt;
You can install &#039;&#039;&#039;zram-tools&#039;&#039;&#039; from the repo, and edit &#039;&#039;&#039;/etc/default/zramswap&#039;&#039;&#039; as necessary. It&#039;s probably convenient to set allocation to 1024.&lt;br /&gt;
hildon-base (and it&#039;s hildon-env-setup initscript) are aware if zramswap in installed and will activate zram.&lt;br /&gt;
If you have an image older than 17 January 2021, you should remove the existing zram initscript and install zram-tools to utilize this functionality.&lt;br /&gt;
&lt;br /&gt;
Remove it with:&lt;br /&gt;
&lt;br /&gt;
 rc-update del zram&lt;br /&gt;
 rm /etc/init.d/zram&lt;br /&gt;
&lt;br /&gt;
= Tweaking =&lt;br /&gt;
&lt;br /&gt;
See [[Tweaking]]&lt;/div&gt;</summary>
		<author><name>Clort</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Getting_Started&amp;diff=983</id>
		<title>Getting Started</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Getting_Started&amp;diff=983"/>
		<updated>2021-04-10T00:43:45Z</updated>

		<summary type="html">&lt;p&gt;Clort: /* Expand the root partition to fill SD card */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Installation to SD Card =&lt;br /&gt;
&lt;br /&gt;
After updating device firmware with included script (eg. flash-droid-4-fw.sh):&lt;br /&gt;
&lt;br /&gt;
Download an image appropriate for your device from [http://maedevu.maemo.org/images/]&lt;br /&gt;
&lt;br /&gt;
Insert a microsd card into your computer and find the device with cat /proc/partitions&lt;br /&gt;
&lt;br /&gt;
Decompress and write the image to your microsd card device:&lt;br /&gt;
&lt;br /&gt;
xzcat maemo-leste-VERSION.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE&lt;br /&gt;
&lt;br /&gt;
= Expand the root partition to fill SD card =&lt;br /&gt;
&lt;br /&gt;
A helpful script is included to expand the root partition to fill the microSD card.&lt;br /&gt;
After booting and logging in to root.  execute&lt;br /&gt;
/etc/expandcard.sh&lt;br /&gt;
&lt;br /&gt;
This will expand the root partition to fill the microSD card using resize2fs.&lt;br /&gt;
&lt;br /&gt;
= (SSH) Login =&lt;br /&gt;
&lt;br /&gt;
User credentials are: &#039;&#039;&#039;user:user&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Root credentials are: &#039;&#039;&#039;root:toor&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You should prefer logging in as user and then escalating to root with sudo as necessary.&lt;br /&gt;
&lt;br /&gt;
In images newer than 17 January 2021, root SSH is disabled by default.&lt;br /&gt;
&lt;br /&gt;
= Useful Bits = &lt;br /&gt;
&lt;br /&gt;
* Default lockcode is &amp;quot;12345&amp;quot;&lt;br /&gt;
* Lockcode can only be changed if your hardware has CAL. QEMU does not have CAL. Droid 4 also not.&lt;br /&gt;
&lt;br /&gt;
= More RAM =&lt;br /&gt;
&lt;br /&gt;
You can install &#039;&#039;&#039;zram-tools&#039;&#039;&#039; from the repo, and edit &#039;&#039;&#039;/etc/default/zramswap&#039;&#039;&#039; as necessary. It&#039;s probably convenient to set allocation to 1024.&lt;br /&gt;
hildon-base (and it&#039;s hildon-env-setup initscript) are aware if zramswap in installed and will activate zram.&lt;br /&gt;
If you have an image older than 17 January 2021, you should remove the existing zram initscript and install zram-tools to utilize this functionality.&lt;br /&gt;
&lt;br /&gt;
Remove it with:&lt;br /&gt;
&lt;br /&gt;
 rc-update del zram&lt;br /&gt;
 rm /etc/init.d/zram&lt;br /&gt;
&lt;br /&gt;
= Tweaking =&lt;br /&gt;
&lt;br /&gt;
See [[Tweaking]]&lt;/div&gt;</summary>
		<author><name>Clort</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Getting_Started&amp;diff=982</id>
		<title>Getting Started</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Getting_Started&amp;diff=982"/>
		<updated>2021-04-10T00:43:02Z</updated>

		<summary type="html">&lt;p&gt;Clort: /* Expand the root partition to fill SD card */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Installation to SD Card =&lt;br /&gt;
&lt;br /&gt;
After updating device firmware with included script (eg. flash-droid-4-fw.sh):&lt;br /&gt;
&lt;br /&gt;
Download an image appropriate for your device from [http://maedevu.maemo.org/images/]&lt;br /&gt;
&lt;br /&gt;
Insert a microsd card into your computer and find the device with cat /proc/partitions&lt;br /&gt;
&lt;br /&gt;
Decompress and write the image to your microsd card device:&lt;br /&gt;
&lt;br /&gt;
xzcat maemo-leste-VERSION.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE&lt;br /&gt;
&lt;br /&gt;
= Expand the root partition to fill SD card =&lt;br /&gt;
&lt;br /&gt;
A helpful script is included to expand the root partition to fill the microSD card.&lt;br /&gt;
After booting and logging in to root.  execute&lt;br /&gt;
/etc/expandcard.sh&lt;br /&gt;
&lt;br /&gt;
This will expand the root partition to fill the microSD card using resize2fs&lt;br /&gt;
&lt;br /&gt;
= (SSH) Login =&lt;br /&gt;
&lt;br /&gt;
User credentials are: &#039;&#039;&#039;user:user&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Root credentials are: &#039;&#039;&#039;root:toor&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You should prefer logging in as user and then escalating to root with sudo as necessary.&lt;br /&gt;
&lt;br /&gt;
In images newer than 17 January 2021, root SSH is disabled by default.&lt;br /&gt;
&lt;br /&gt;
= Useful Bits = &lt;br /&gt;
&lt;br /&gt;
* Default lockcode is &amp;quot;12345&amp;quot;&lt;br /&gt;
* Lockcode can only be changed if your hardware has CAL. QEMU does not have CAL. Droid 4 also not.&lt;br /&gt;
&lt;br /&gt;
= More RAM =&lt;br /&gt;
&lt;br /&gt;
You can install &#039;&#039;&#039;zram-tools&#039;&#039;&#039; from the repo, and edit &#039;&#039;&#039;/etc/default/zramswap&#039;&#039;&#039; as necessary. It&#039;s probably convenient to set allocation to 1024.&lt;br /&gt;
hildon-base (and it&#039;s hildon-env-setup initscript) are aware if zramswap in installed and will activate zram.&lt;br /&gt;
If you have an image older than 17 January 2021, you should remove the existing zram initscript and install zram-tools to utilize this functionality.&lt;br /&gt;
&lt;br /&gt;
Remove it with:&lt;br /&gt;
&lt;br /&gt;
 rc-update del zram&lt;br /&gt;
 rm /etc/init.d/zram&lt;br /&gt;
&lt;br /&gt;
= Tweaking =&lt;br /&gt;
&lt;br /&gt;
See [[Tweaking]]&lt;/div&gt;</summary>
		<author><name>Clort</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Getting_Started&amp;diff=981</id>
		<title>Getting Started</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Getting_Started&amp;diff=981"/>
		<updated>2021-04-10T00:42:36Z</updated>

		<summary type="html">&lt;p&gt;Clort: added instruction for expanding root partition&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Installation to SD Card =&lt;br /&gt;
&lt;br /&gt;
After updating device firmware with included script (eg. flash-droid-4-fw.sh):&lt;br /&gt;
&lt;br /&gt;
Download an image appropriate for your device from [http://maedevu.maemo.org/images/]&lt;br /&gt;
&lt;br /&gt;
Insert a microsd card into your computer and find the device with cat /proc/partitions&lt;br /&gt;
&lt;br /&gt;
Decompress and write the image to your microsd card device:&lt;br /&gt;
&lt;br /&gt;
xzcat maemo-leste-VERSION.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE&lt;br /&gt;
&lt;br /&gt;
= Expand the root partition to fill SD card =&lt;br /&gt;
&lt;br /&gt;
A helpful script is included to expand the root partition to fill the microSD card.&lt;br /&gt;
After booting and logging in to root.  execute&lt;br /&gt;
/ex/expandcard.sh&lt;br /&gt;
&lt;br /&gt;
This will expand the root partition to fill the microSD card using resize2fs&lt;br /&gt;
&lt;br /&gt;
= (SSH) Login =&lt;br /&gt;
&lt;br /&gt;
User credentials are: &#039;&#039;&#039;user:user&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Root credentials are: &#039;&#039;&#039;root:toor&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You should prefer logging in as user and then escalating to root with sudo as necessary.&lt;br /&gt;
&lt;br /&gt;
In images newer than 17 January 2021, root SSH is disabled by default.&lt;br /&gt;
&lt;br /&gt;
= Useful Bits = &lt;br /&gt;
&lt;br /&gt;
* Default lockcode is &amp;quot;12345&amp;quot;&lt;br /&gt;
* Lockcode can only be changed if your hardware has CAL. QEMU does not have CAL. Droid 4 also not.&lt;br /&gt;
&lt;br /&gt;
= More RAM =&lt;br /&gt;
&lt;br /&gt;
You can install &#039;&#039;&#039;zram-tools&#039;&#039;&#039; from the repo, and edit &#039;&#039;&#039;/etc/default/zramswap&#039;&#039;&#039; as necessary. It&#039;s probably convenient to set allocation to 1024.&lt;br /&gt;
hildon-base (and it&#039;s hildon-env-setup initscript) are aware if zramswap in installed and will activate zram.&lt;br /&gt;
If you have an image older than 17 January 2021, you should remove the existing zram initscript and install zram-tools to utilize this functionality.&lt;br /&gt;
&lt;br /&gt;
Remove it with:&lt;br /&gt;
&lt;br /&gt;
 rc-update del zram&lt;br /&gt;
 rm /etc/init.d/zram&lt;br /&gt;
&lt;br /&gt;
= Tweaking =&lt;br /&gt;
&lt;br /&gt;
See [[Tweaking]]&lt;/div&gt;</summary>
		<author><name>Clort</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Hacks&amp;diff=980</id>
		<title>Hacks</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Hacks&amp;diff=980"/>
		<updated>2021-04-06T23:52:10Z</updated>

		<summary type="html">&lt;p&gt;Clort: /* Fun Hacks for maemo-leste */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== Fun Hacks for maemo-leste ====&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
apt install -y uxterm imagemagick-6.q16&lt;br /&gt;
&lt;br /&gt;
Add to ~/.bashrc:&lt;br /&gt;
&lt;br /&gt;
alias uxt=&amp;quot;uxterm -ti vt340 -fa &#039;Monospace&#039; -fs 16 -fullscreen&amp;quot;&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;convert \$@ -geometry 950x484 sixel:-&amp;quot; &amp;gt; /usr/local/bin/imgterm&lt;br /&gt;
&lt;br /&gt;
chmod uog+x /usr/local/bin/termimg&lt;br /&gt;
&lt;br /&gt;
display pictures as sixel graphics in your terminal with:&lt;br /&gt;
&lt;br /&gt;
imgterm avatar-yinlee.png &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;Sixel.png&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also get thumbnails of directories with images with imagemagick and the shellscript [https://github.com/hackerb9/lsix/archive/master.zip lsix sixel thumbnailer]&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Clort</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Hacks&amp;diff=979</id>
		<title>Hacks</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Hacks&amp;diff=979"/>
		<updated>2021-04-06T23:51:29Z</updated>

		<summary type="html">&lt;p&gt;Clort: Created page with &amp;quot;==== Fun Hacks for maemo-leste ====  ----  apt install -y uxterm imagemagick-6.q16  Add to ~/.bashrc:  alias uxt=&amp;quot;uxterm -ti vt340 -fa &amp;#039;Monospace&amp;#039; -fs 16 -fullscreen&amp;quot;  echo &amp;quot;c...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== Fun Hacks for maemo-leste ====&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
apt install -y uxterm imagemagick-6.q16&lt;br /&gt;
&lt;br /&gt;
Add to ~/.bashrc:&lt;br /&gt;
&lt;br /&gt;
alias uxt=&amp;quot;uxterm -ti vt340 -fa &#039;Monospace&#039; -fs 16 -fullscreen&amp;quot;&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;convert \$@ -geometry 950x484 sixel:-&amp;quot; &amp;gt; /usr/local/bin/imgterm&lt;br /&gt;
&lt;br /&gt;
chmod uog+x /usr/local/bin/termimg&lt;br /&gt;
&lt;br /&gt;
display pictures as sixel graphics in your terminal with:&lt;br /&gt;
&lt;br /&gt;
termimg mypic.png &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;Sixel.png&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also get thumbnails of directories with images with imagemagick and the shellscript [https://github.com/hackerb9/lsix/archive/master.zip lsix sixel thumbnailer]&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Clort</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=File:Sixel.png&amp;diff=978</id>
		<title>File:Sixel.png</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=File:Sixel.png&amp;diff=978"/>
		<updated>2021-04-06T23:44:04Z</updated>

		<summary type="html">&lt;p&gt;Clort: Sixel Graphics in uxterm on Maemo-Leste&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sixel Graphics in uxterm on Maemo-Leste&lt;/div&gt;</summary>
		<author><name>Clort</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Development/Modified_Software&amp;diff=977</id>
		<title>Development/Modified Software</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Development/Modified_Software&amp;diff=977"/>
		<updated>2021-04-06T23:30:35Z</updated>

		<summary type="html">&lt;p&gt;Clort: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;TODO, expand on this, why they are patched, etc:&lt;br /&gt;
&lt;br /&gt;
* gtk2: extra widgets are added, menu patches, integration with virtual keyboard for (any) text field, theming&lt;br /&gt;
* SDL: full screen patches, other window manager patches&lt;br /&gt;
- SDL1.2 and SDL2 have different issues.  Lacking keyboard input in fullscreen is top prio.&lt;br /&gt;
* qt5 (?): TBD&lt;br /&gt;
* gtk3 (?): Same as gtk2, currently not patched, though.&lt;br /&gt;
* xorg-server: Patched modesetting for rotation.&lt;/div&gt;</summary>
		<author><name>Clort</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Tweaking&amp;diff=976</id>
		<title>Tweaking</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Tweaking&amp;diff=976"/>
		<updated>2021-04-06T23:25:50Z</updated>

		<summary type="html">&lt;p&gt;Clort: /* Switch clock display to 24h */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Maemo Leste is very tweakable/hackable/versatile, this page lists some of the things you could change, hopefully grouped in a meaningful manner.&lt;br /&gt;
&lt;br /&gt;
==== Show current gconf settings ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;gconftool-2 -R / |less&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;gconftool -S \* |less&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Battery icon ====&lt;br /&gt;
&lt;br /&gt;
You can change the animation of the charging icon to show the current charge capacity:&lt;br /&gt;
&amp;lt;pre&amp;gt;gconftool-2 -s /apps/osso/status-area-applet-battery/show_charge_charging -t bool true&amp;lt;/pre&amp;gt; [edit] &#039;&#039;This doesn&#039;t do anything for me - clort&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Disable screen rotate ====&lt;br /&gt;
&lt;br /&gt;
You can lock screen orientation to the current (disabling screen rotation) with&lt;br /&gt;
&amp;lt;pre&amp;gt;gconftool-2 -s  /apps/osso/hildon-desktop/orientation_lock -t bool true&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Switch clock display to 24h ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;gconftool-2 -s /apps/clock/time-format -t bool true&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Prevent user rearranging of app menu ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;gconftool-2 -s /apps/osso/hildon-desktop/key-actions/disable_edit -t bool true&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Hide toolbar at bottom of osso-xterm (to get more lines) ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;gconftool-2 -s  /apps/osso/xterm/toolbar -t bool false&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Clort</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Tweaking&amp;diff=975</id>
		<title>Tweaking</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Tweaking&amp;diff=975"/>
		<updated>2021-04-05T22:55:47Z</updated>

		<summary type="html">&lt;p&gt;Clort: more gconftool things to do&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Maemo Leste is very tweakable/hackable/versatile, this page lists some of the things you could change, hopefully grouped in a meaningful manner.&lt;br /&gt;
&lt;br /&gt;
==== Show current gconf settings ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;gconftool-2 -R / |less&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;gconftool -S \* |less&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Battery icon ====&lt;br /&gt;
&lt;br /&gt;
You can change the animation of the charging icon to show the current charge capacity:&lt;br /&gt;
&amp;lt;pre&amp;gt;gconftool-2 -s /apps/osso/status-area-applet-battery/show_charge_charging -t bool true&amp;lt;/pre&amp;gt; [edit] &#039;&#039;This doesn&#039;t do anything for me - clort&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Disable screen rotate ====&lt;br /&gt;
&lt;br /&gt;
You can lock screen orientation to the current (disabling screen rotation) with&lt;br /&gt;
&amp;lt;pre&amp;gt;gconftool-2 -s  /apps/osso/hildon-desktop/orientation_lock -t bool true&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Switch clock display to 24h ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;gconftool-2 -s -t bool /apps/clock/time-format true&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Prevent user rearranging of app menu ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;gconftool-2 -s /apps/osso/hildon-desktop/key-actions/disable_edit -t bool true&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Hide toolbar at bottom of osso-xterm (to get more lines) ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;gconftool-2 -s  /apps/osso/xterm/toolbar -t bool false&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Clort</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Tweaking&amp;diff=974</id>
		<title>Tweaking</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Tweaking&amp;diff=974"/>
		<updated>2021-04-05T22:37:02Z</updated>

		<summary type="html">&lt;p&gt;Clort: added disable screen rotate setting and settings list entry&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Maemo Leste is very tweakable/hackable/versatile, this page lists some of the things you could change, hopefully grouped in a meaningful manner.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Show current gconf settings ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;gconftool -S \* |less&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Battery icon ====&lt;br /&gt;
&lt;br /&gt;
You can change the animation of the charging icon to show the current charge capacity:&lt;br /&gt;
&amp;lt;pre&amp;gt;gconftool-2 -s /apps/osso/status-area-applet-battery/show_charge_charging -t bool true&amp;lt;/pre&amp;gt; [edit] &#039;&#039;This doesn&#039;t do anything for me - clort&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Disable screen rotate ====&lt;br /&gt;
&lt;br /&gt;
You can lock screen orientation to the current (disabling screen rotation) with&lt;br /&gt;
&amp;lt;pre&amp;gt;gconftool-2 -s  /apps/osso/hildon-desktop/orientation_lock -t bool true&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Clort</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Getting_Started&amp;diff=973</id>
		<title>Getting Started</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Getting_Started&amp;diff=973"/>
		<updated>2021-04-05T18:57:53Z</updated>

		<summary type="html">&lt;p&gt;Clort: added some info for copying / installing image to microsd&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Installation to SD Card =&lt;br /&gt;
&lt;br /&gt;
After updating device firmware with included script (eg. flash-droid-4-fw.sh):&lt;br /&gt;
&lt;br /&gt;
Download an image appropriate for your device from [http://maedevu.maemo.org/images/]&lt;br /&gt;
&lt;br /&gt;
Insert a microsd card into your computer and find the device with cat /proc/partitions&lt;br /&gt;
&lt;br /&gt;
Decompress and write the image to your microsd card device:&lt;br /&gt;
&lt;br /&gt;
xzcat maemo-leste-VERSION.img.xz | sudo dd status=progress bs=1M of=/dev/MICROSDCARD-DEVICE&lt;br /&gt;
&lt;br /&gt;
= (SSH) Login =&lt;br /&gt;
&lt;br /&gt;
User credentials are: &#039;&#039;&#039;user:user&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Root credentials are: &#039;&#039;&#039;root:toor&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You should prefer logging in as user and then escalating to root with sudo as necessary.&lt;br /&gt;
&lt;br /&gt;
In images newer than 17 January 2021, root SSH is disabled by default.&lt;br /&gt;
&lt;br /&gt;
= Useful Bits = &lt;br /&gt;
&lt;br /&gt;
* Default lockcode is &amp;quot;12345&amp;quot;&lt;br /&gt;
* Lockcode can only be changed if your hardware has CAL. QEMU does not have CAL. Droid 4 also not.&lt;br /&gt;
&lt;br /&gt;
= More RAM =&lt;br /&gt;
&lt;br /&gt;
You can install &#039;&#039;&#039;zram-tools&#039;&#039;&#039; from the repo, and edit &#039;&#039;&#039;/etc/default/zramswap&#039;&#039;&#039; as necessary. It&#039;s probably convenient to set allocation to 1024.&lt;br /&gt;
hildon-base (and it&#039;s hildon-env-setup initscript) are aware if zramswap in installed and will activate zram.&lt;br /&gt;
If you have an image older than 17 January 2021, you should remove the existing zram initscript and install zram-tools to utilize this functionality.&lt;br /&gt;
&lt;br /&gt;
Remove it with:&lt;br /&gt;
&lt;br /&gt;
 rc-update del zram&lt;br /&gt;
 rm /etc/init.d/zram&lt;br /&gt;
&lt;br /&gt;
= Tweaking =&lt;br /&gt;
&lt;br /&gt;
See [[Tweaking]]&lt;/div&gt;</summary>
		<author><name>Clort</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Tricks&amp;diff=884</id>
		<title>Tricks</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Tricks&amp;diff=884"/>
		<updated>2020-12-24T05:00:59Z</updated>

		<summary type="html">&lt;p&gt;Clort: Added Macchanger Trick, Moved barrier trick from droid4 hints.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;List of tricks:&lt;br /&gt;
&lt;br /&gt;
==== Randomize MAC Address ====&lt;br /&gt;
Some users may wish to change the MAC address of an interface, for e.g. to prevent wifi networks associating their MAC address with their network usage pattern.&lt;br /&gt;
&lt;br /&gt;
The macchanger package addresses this by either automatically or manually changing the MAC address of enabled interfaces.  &lt;br /&gt;
&amp;lt;pre&amp;gt;apt install -y macchanger&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
During installation, the package configuration allows user to select automatic change of MAC address when interface is brought up.  This may interfere with USB networking.  As an alternative, user can manually change the wlan0 MAC.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
macchanger wlan0 -e -a&lt;br /&gt;
ifconfig wlan0 up&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Keyboard / Mouse sharing with PC ====&lt;br /&gt;
To use a leste device while working at desktop it can be convenient to share mouse and keyboard of the host pc with the leste device.  The &#039;barrier&#039; client/server program, forked from &#039;synergy&#039;, allows this. &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;
A hildonized maemo-leste binary of the client is not available at time of this writing. Developers and testers may wish to disable undesired modules included with the barrier source, before compiling.&lt;/div&gt;</summary>
		<author><name>Clort</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Motorola_Droid_4&amp;diff=882</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=882"/>
		<updated>2020-12-22T01:16:48Z</updated>

		<summary type="html">&lt;p&gt;Clort: /* Stuff to try */  additions by Clort.&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.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 || 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 || 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 || &lt;br /&gt;
|-&lt;br /&gt;
| Idle power consumption || ~120mW || Needs sim inserted&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. 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;
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;
== 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;
==== Make Audio Automaticaly set up (Temporary Solution) ====&lt;br /&gt;
Adding this in /etc/rc.local above the &#039;&#039;exit 0&#039;&#039; to make audio work from boot.&lt;br /&gt;
 amixer cset numid=22 HiFi      #set left speaker to HiFi&lt;br /&gt;
 amixer cset numid=21 HiFi      #set right speaker to HiFi&lt;br /&gt;
 amixer cset numid=26 HiFi      #set left headset to HiFi&lt;br /&gt;
 amixer cset numid=25 HiFi      #set right headset to HiFi&lt;br /&gt;
 amixer cset numid=1  50%       #set HiFi volumes to 50%&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 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;
==== 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;
[[Category:Device]]&lt;/div&gt;</summary>
		<author><name>Clort</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Motorola_Droid_4&amp;diff=863</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=863"/>
		<updated>2020-11-21T14:29:10Z</updated>

		<summary type="html">&lt;p&gt;Clort: /* Gallery */&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.8.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 || 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 || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/&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;
| Proximity sensor || WIP || needs mce work&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 || &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. 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;
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;
== 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;
==== Make Audio Automaticaly set up (Temporary Solution) ====&lt;br /&gt;
Adding this in /etc/rc.local above the &#039;&#039;exit 0&#039;&#039; to make audio work from boot.&lt;br /&gt;
 amixer cset numid=22 HiFi      #set left speaker to HiFi&lt;br /&gt;
 amixer cset numid=21 HiFi      #set right speaker to HiFi&lt;br /&gt;
 amixer cset numid=26 HiFi      #set left headset to HiFi&lt;br /&gt;
 amixer cset numid=25 HiFi      #set right headset to HiFi&lt;br /&gt;
 amixer cset numid=1  50%       #set HiFi volumes to 50%&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 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;
== 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;
[[Category:Device]]&lt;/div&gt;</summary>
		<author><name>Clort</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=File:Droid4-leste-surf_master.jpg&amp;diff=862</id>
		<title>File:Droid4-leste-surf master.jpg</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=File:Droid4-leste-surf_master.jpg&amp;diff=862"/>
		<updated>2020-11-21T14:28:40Z</updated>

		<summary type="html">&lt;p&gt;Clort: suckless &amp;#039;surf&amp;#039; browser - not from debian repo - doesn&amp;#039;t have url bar. 

default.css in ~/.surf/styles/default.css is:
pre,textarea,body,input,td,tr,p {
 background-color: black !important;
 background-image: none !important;
 color: #e0e0e0 !important...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;suckless &#039;surf&#039; browser - not from debian repo - doesn&#039;t have url bar. &lt;br /&gt;
&lt;br /&gt;
default.css in ~/.surf/styles/default.css is:&lt;br /&gt;
pre,textarea,body,input,td,tr,p {&lt;br /&gt;
 background-color: black !important;&lt;br /&gt;
 background-image: none !important;&lt;br /&gt;
 color: #e0e0e0 !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div {&lt;br /&gt;
 background-color: #101010 !important;&lt;br /&gt;
 background-image: none !important;&lt;br /&gt;
 color: #e0e0e0 !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
h1,h2,h3,h4 {&lt;br /&gt;
 background-color: black !important;&lt;br /&gt;
 color: #e02020 !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
a {&lt;br /&gt;
 color: #5050f0 !important;&lt;br /&gt;
}&lt;br /&gt;
 a:link {color: #20D0FF !important}&lt;br /&gt;
 a:visited {color: #DF46C0 !important}&lt;br /&gt;
 a:hover {color: #FFCC00 !important}&lt;br /&gt;
 a:active {color: #FF00CC !important}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 #bottom-result-container #spon_links { display: none !important; }&lt;br /&gt;
 #bottom-result-container #sponsored_csa1 { display: none !important; }&lt;br /&gt;
 #bottom-result-container #sponsored_csa2 { display: none !important; }&lt;/div&gt;</summary>
		<author><name>Clort</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Motorola_Droid_4&amp;diff=861</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=861"/>
		<updated>2020-11-19T17:27:10Z</updated>

		<summary type="html">&lt;p&gt;Clort: /* Gallery */&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.8.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 || 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 || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/&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;
| Proximity sensor || WIP || needs mce work&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 || &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. 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;
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;
== 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;
==== Make Audio Automaticaly set up (Temporary Solution) ====&lt;br /&gt;
Adding this in /etc/rc.local above the &#039;&#039;exit 0&#039;&#039; to make audio work from boot.&lt;br /&gt;
 amixer cset numid=22 HiFi      #set left speaker to HiFi&lt;br /&gt;
 amixer cset numid=21 HiFi      #set right speaker to HiFi&lt;br /&gt;
 amixer cset numid=26 HiFi      #set left headset to HiFi&lt;br /&gt;
 amixer cset numid=25 HiFi      #set right headset to HiFi&lt;br /&gt;
 amixer cset numid=1  50%       #set HiFi volumes to 50%&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 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;
== 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;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Device]]&lt;/div&gt;</summary>
		<author><name>Clort</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=File:Droid4-leste-pcsx.jpg&amp;diff=860</id>
		<title>File:Droid4-leste-pcsx.jpg</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=File:Droid4-leste-pcsx.jpg&amp;diff=860"/>
		<updated>2020-11-19T17:26:31Z</updated>

		<summary type="html">&lt;p&gt;Clort: PCSX-ReArmed runs at under 40% cpu use of one core of Omap4&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;PCSX-ReArmed runs at under 40% cpu use of one core of Omap4&lt;/div&gt;</summary>
		<author><name>Clort</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Motorola_Droid_4&amp;diff=859</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=859"/>
		<updated>2020-11-19T14:21:19Z</updated>

		<summary type="html">&lt;p&gt;Clort: /* Gallery */&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.8.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 || 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 || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/&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;
| Proximity sensor || WIP || needs mce work&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 || &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. 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;
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;
== 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;
==== Make Audio Automaticaly set up (Temporary Solution) ====&lt;br /&gt;
Adding this in /etc/rc.local above the &#039;&#039;exit 0&#039;&#039; to make audio work from boot.&lt;br /&gt;
 amixer cset numid=22 HiFi      #set left speaker to HiFi&lt;br /&gt;
 amixer cset numid=21 HiFi      #set right speaker to HiFi&lt;br /&gt;
 amixer cset numid=26 HiFi      #set left headset to HiFi&lt;br /&gt;
 amixer cset numid=25 HiFi      #set right headset to HiFi&lt;br /&gt;
 amixer cset numid=1  50%       #set HiFi volumes to 50%&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 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;
== 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;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Device]]&lt;/div&gt;</summary>
		<author><name>Clort</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=File:Droid4-leste-utox2.jpg&amp;diff=858</id>
		<title>File:Droid4-leste-utox2.jpg</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=File:Droid4-leste-utox2.jpg&amp;diff=858"/>
		<updated>2020-11-19T14:20:51Z</updated>

		<summary type="html">&lt;p&gt;Clort: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Clort</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Motorola_Droid_4&amp;diff=857</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=857"/>
		<updated>2020-11-19T13:12:02Z</updated>

		<summary type="html">&lt;p&gt;Clort: /* Gallery */&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.8.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 || 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 || Yes || Works with ofono, no UI yet - see https://github.com/maemo-leste/connui-cellular/&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;
| Proximity sensor || WIP || needs mce work&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 || &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. 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;
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;
== 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;
==== Make Audio Automaticaly set up (Temporary Solution) ====&lt;br /&gt;
Adding this in /etc/rc.local above the &#039;&#039;exit 0&#039;&#039; to make audio work from boot.&lt;br /&gt;
 amixer cset numid=22 HiFi      #set left speaker to HiFi&lt;br /&gt;
 amixer cset numid=21 HiFi      #set right speaker to HiFi&lt;br /&gt;
 amixer cset numid=26 HiFi      #set left headset to HiFi&lt;br /&gt;
 amixer cset numid=25 HiFi      #set right headset to HiFi&lt;br /&gt;
 amixer cset numid=1  50%       #set HiFi volumes to 50%&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 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;
== 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;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Device]]&lt;/div&gt;</summary>
		<author><name>Clort</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=File:Leste-glmatrix.png&amp;diff=856</id>
		<title>File:Leste-glmatrix.png</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=File:Leste-glmatrix.png&amp;diff=856"/>
		<updated>2020-11-19T13:11:38Z</updated>

		<summary type="html">&lt;p&gt;Clort: Droid 4 and Leste running JWZ&amp;#039;s glmatrix screensaver (without hildon compositing)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Droid 4 and Leste running JWZ&#039;s glmatrix screensaver (without hildon compositing)&lt;/div&gt;</summary>
		<author><name>Clort</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=File:Statsfun.jpg&amp;diff=855</id>
		<title>File:Statsfun.jpg</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=File:Statsfun.jpg&amp;diff=855"/>
		<updated>2020-11-19T13:09:54Z</updated>

		<summary type="html">&lt;p&gt;Clort: Droid 4 Maemo Leste running stats script&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Droid 4 Maemo Leste running stats script&lt;/div&gt;</summary>
		<author><name>Clort</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=File:Leste-neverball.jpg&amp;diff=854</id>
		<title>File:Leste-neverball.jpg</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=File:Leste-neverball.jpg&amp;diff=854"/>
		<updated>2020-11-19T13:07:52Z</updated>

		<summary type="html">&lt;p&gt;Clort: Droid 4 running Neverball with gl4es shim.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Droid 4 running Neverball with gl4es shim.&lt;/div&gt;</summary>
		<author><name>Clort</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=File:Cant_have_2_much_leste.jpg&amp;diff=853</id>
		<title>File:Cant have 2 much leste.jpg</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=File:Cant_have_2_much_leste.jpg&amp;diff=853"/>
		<updated>2020-11-19T13:04:17Z</updated>

		<summary type="html">&lt;p&gt;Clort: Droid4&amp;#039;s running Maemo-Leste&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Droid4&#039;s running Maemo-Leste&lt;/div&gt;</summary>
		<author><name>Clort</name></author>
	</entry>
</feed>