<?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=Spinal</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=Spinal"/>
	<link rel="alternate" type="text/html" href="https://leste.maemo.org/Special:Contributions/Spinal"/>
	<updated>2026-04-30T14:42:49Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Development&amp;diff=687</id>
		<title>Development</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Development&amp;diff=687"/>
		<updated>2020-03-06T17:08:29Z</updated>

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

		<summary type="html">&lt;p&gt;Spinal: Add &amp;quot;Battery calibration&amp;quot; section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Device&lt;br /&gt;
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]&lt;br /&gt;
|manufacturer=Nokia&lt;br /&gt;
|codename=&lt;br /&gt;
|dimensions=&lt;br /&gt;
|release_date=&lt;br /&gt;
|soc=&lt;br /&gt;
|dram=&lt;br /&gt;
|power=&lt;br /&gt;
|lcd=&lt;br /&gt;
|video=&lt;br /&gt;
|audio=&lt;br /&gt;
|network=&lt;br /&gt;
|storage=&lt;br /&gt;
|usb=Micro USB 2.0 Slave&lt;br /&gt;
|camera=&lt;br /&gt;
|sensors=&lt;br /&gt;
|other=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The original Nokia N900.&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
* If your battery is not calibrated, the battery applet will not give you any data. Charge the battery fully, and then let it discharge (almost) completely.&lt;br /&gt;
* Speakers are enabled by default, but don&#039;t overuse them, as you might fry them if you are not careful.&lt;br /&gt;
&lt;br /&gt;
Also see: https://elinux.org/N900&lt;br /&gt;
&lt;br /&gt;
Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this 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;
== Status ==&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.0 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip-5.0.y&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 || Involves installing non-free firmware&lt;br /&gt;
|-&lt;br /&gt;
| Ethernet || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| Bluetooth || Not yet || Driver problems in mainline&lt;br /&gt;
|-&lt;br /&gt;
| Infrared || Yes || TX only (hardware limitation). &lt;br /&gt;
|-&lt;br /&gt;
| (Micro USB) || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested&lt;br /&gt;
|-&lt;br /&gt;
| Keyboard || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Screen || Yes || Uses omapfb, not omapdrmfb yet&lt;br /&gt;
|-&lt;br /&gt;
| 3D Acceleration || Yes || Works fast(!)&lt;br /&gt;
|-&lt;br /&gt;
| Touchscreen || Yes || Resistive&lt;br /&gt;
|-&lt;br /&gt;
| Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration&lt;br /&gt;
|-&lt;br /&gt;
| 2G/3G data || WIP || Works with ofono; UI underway: https://github.com/maemo-leste/connui-cellular ; see https://github.com/maemo-leste/bugtracker/issues/76&lt;br /&gt;
|-&lt;br /&gt;
| SMS || WIP || Works with ofono, will using telepathy-ring, no UI yet, not enabled by default&lt;br /&gt;
|-&lt;br /&gt;
| Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters)&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 || Depends on Bluetooth.  [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/staging?id=757c2bf597a8e9f859f8efceda9c5108607fd98d Removed in Linux 5.4-rc1.]&lt;br /&gt;
|-&lt;br /&gt;
| Accelerometer || Not yet || Available as input device, needs MCE work&lt;br /&gt;
|-&lt;br /&gt;
| Proximity sensor || Not yet || &lt;br /&gt;
|-&lt;br /&gt;
| Vibration Motor || Yes || No integration yet&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 || WIP || Works using gps3 and gpsd, needs integration still&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Images: http://maedevu.maemo.org/images/n900/&lt;br /&gt;
&lt;br /&gt;
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] &#039;&#039;&#039;NB:&#039;&#039;&#039; Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to&lt;br /&gt;
&lt;br /&gt;
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613&lt;br /&gt;
&lt;br /&gt;
=== U-Boot setup ===&lt;br /&gt;
&lt;br /&gt;
==== If you don&#039;t want to use/install Fremantle, or want to install quickly ====&lt;br /&gt;
&lt;br /&gt;
1. Download 0xFFFF and u-boot from https://maedevu.maemo.org/images/n900/tools/&lt;br /&gt;
&lt;br /&gt;
2. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: &#039;&#039;&#039;sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
3. Open the keyboard slider on the N900, and then issue following command on PC to test boot: &#039;&#039;&#039;./0xFFFF -b&#039;&#039;&#039;&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 &#039;&#039;&#039;run sdboot&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
To flash u-boot permanently, you can issue the following command &#039;&#039;&#039;(BE CAREFUL THOUGH, AS THIS WILL REPLACE THE EXISTING FREMANTLE KERNEL, ONLY DO THIS IF YOU DO NOT CARE ABOUT THE EXISTING MAEMO INSTALLATION)&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Existing Fremantle ====&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;
=== Increase filesystem size ===&lt;br /&gt;
As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough.&lt;br /&gt;
Perform the following steps on a Linux machine with none of the SD card&#039;s partitions mounted:&lt;br /&gt;
* assumption: /dev/sda2 is Leste root partition&lt;br /&gt;
* e2fsck -f /dev/sda2&lt;br /&gt;
* use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size&lt;br /&gt;
* resize2fs -p /dev/sda2&lt;br /&gt;
* e2fsck -f /dev/sda2&lt;br /&gt;
&lt;br /&gt;
The latest images have a script, &amp;lt;code&amp;gt;/etc/expandcard.sh&amp;lt;/code&amp;gt; from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh&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;
== Power Management ==&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;
== 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;
== 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 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 attach the charger.&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;
&lt;br /&gt;
[[Category:Device]]&lt;/div&gt;</summary>
		<author><name>Spinal</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Development/Building_Packages&amp;diff=667</id>
		<title>Development/Building Packages</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Development/Building_Packages&amp;diff=667"/>
		<updated>2020-03-04T04:08:42Z</updated>

		<summary type="html">&lt;p&gt;Spinal: /* How packages are built using Jenkins */ Fix maemo/ascii-devel branch description&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Maintenance workflow =&lt;br /&gt;
&lt;br /&gt;
Each package in Maemo Leste uses a specific git-based workflow which makes it easy to track history and maintain in an easy way.&lt;br /&gt;
&lt;br /&gt;
Taking the https://github.com/maemo-leste/libcal/ package as an example - a valid repository contains at least two git branches:&lt;br /&gt;
&lt;br /&gt;
# master&lt;br /&gt;
# maemo/ascii&lt;br /&gt;
&lt;br /&gt;
Ideally, the branches should have no difference, but sometimes this may vary.&lt;br /&gt;
Your git repository should contain your code, and a &#039;&#039;&#039;debian&#039;&#039;&#039; directory - which contains the debian package build logic.&lt;br /&gt;
The &amp;lt;i&amp;gt;compat&amp;lt;/i&amp;gt; level of the package should be no less than &#039;&#039;&#039;9&#039;&#039;&#039; and preferably it should use &#039;&#039;&#039;debhelper&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Once you have your package ready and it builds locally on your Maemo Leste VM/device, there are just a couple more things to&lt;br /&gt;
do to make it ready for building on Jenkins:&lt;br /&gt;
&lt;br /&gt;
== The git tag ==&lt;br /&gt;
&lt;br /&gt;
In &#039;&#039;&#039;debian/changelog&#039;&#039;&#039; you should have your package version. It is very important to have a git tag that reflects this version&lt;br /&gt;
so Jenkins and jenkins-debian-glue can figure out which revision to build.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that the git tag should &#039;&#039;&#039;only&#039;&#039;&#039; contain the upstream version and no package revisions or epochs, for example if we have:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;libcal (0.3-2) unstable; urgency=medium&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Our git tag would be &amp;lt;i&amp;gt;0.3&amp;lt;/i&amp;gt;, and &#039;&#039;&#039;not&#039;&#039;&#039; &amp;lt;i&amp;gt;0.3-2&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once tagged, push the tag to git origin.&lt;br /&gt;
&lt;br /&gt;
== gbp.conf ==&lt;br /&gt;
&lt;br /&gt;
Your &#039;&#039;&#039;debian&#039;&#039;&#039; directory should contain a file called &#039;&#039;&#039;gbp.conf&#039;&#039;&#039; with the following contents:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[DEFAULT]&lt;br /&gt;
&lt;br /&gt;
upstream-tag=%(version)s&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once all this is in place, make sure that you have a &#039;&#039;&#039;maemo/$codename&#039;&#039;&#039; branch containing all this ready and pushed.&lt;br /&gt;
&lt;br /&gt;
= How you can build packages =&lt;br /&gt;
&lt;br /&gt;
Building a packages is easier than one might think, it requires roughly the following steps:&lt;br /&gt;
&lt;br /&gt;
#. Access to a Devuan/Debian system (you can use a [[Virtual_Machine|VM running Maemo Leste]] or a [[:Category:Device|Device running Maemo Leste]].&lt;br /&gt;
#. Source code of a package, obtain either via &#039;&#039;&#039;git&#039;&#039;&#039; or &#039;&#039;&#039;apt source &amp;lt;packagename&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
#. Install build dependencies (run from source directory): &#039;&#039;&#039;sudo apt-get build-dep .&#039;&#039;&#039;&lt;br /&gt;
#. Build a package using &#039;&#039;&#039;dpkg-buildpackage -uc -b&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You can now install the package you have just built with &#039;&#039;&#039;dpkg -i somename.deb&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Also see: https://wiki.debian.org/HowToPackageForDebian&lt;br /&gt;
&lt;br /&gt;
== Submitting changes ==&lt;br /&gt;
&lt;br /&gt;
If you make changes to a package, please submit a pull request for the repository of that package, likely: https://github.com/maemo-leste/PACKAGENAME&lt;br /&gt;
&lt;br /&gt;
For now, we will take care of updating tags and branches.&lt;br /&gt;
&lt;br /&gt;
= How packages end up in the repository =&lt;br /&gt;
&lt;br /&gt;
There are currently two repositories:&lt;br /&gt;
&lt;br /&gt;
* The main repository: https://maedevu.maemo.org/leste&lt;br /&gt;
* The extras repository: https://maedevu.maemo.org/extras&lt;br /&gt;
&lt;br /&gt;
The packages in the extras repository are not core, but useful applications nonetheless.&lt;br /&gt;
&lt;br /&gt;
The codenames and an /etc/apt/sources.list file entry would look like the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
deb https://maedevu.maemo.org/leste ascii main contrib non-free&lt;br /&gt;
&lt;br /&gt;
deb https://maedevu.maemo.org/extras ascii main contrib non-free&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Packages in this repository get build by Jenkins, to which a select group of people has access. (Parazyd, Wizzup, Spinal84)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How packages are built using Jenkins ==&lt;br /&gt;
&lt;br /&gt;
Read only access to the http frontend: https://phoenix.maemo.org/ (write-access can be granted)&lt;br /&gt;
&lt;br /&gt;
All packages are hosted on https://github.com/maemo-leste and a current list of all the packages in Jenkins can be found here:&lt;br /&gt;
&lt;br /&gt;
https://github.com/maemo-leste/jenkins-integration/blob/master/config.py&lt;br /&gt;
&lt;br /&gt;
Every repository has a branch for each release, for example:&lt;br /&gt;
&lt;br /&gt;
# maemo/ascii - main branch for Devuan Ascii target&lt;br /&gt;
# maemo/ascii-devel - optional branch for Devuan Ascii with unstable/testing version&lt;br /&gt;
# maemo/beowulf - main branch for Devuan Beowulf version of the package&lt;br /&gt;
&lt;br /&gt;
See [[Development/Branches]] for more information on the usual branches flow.&lt;br /&gt;
&lt;br /&gt;
= Maemo Leste Extras =&lt;br /&gt;
&lt;br /&gt;
If you wish to maintain your own package in Maemo Leste, you can apply a package at https://github.com/maemo-leste-extras/bugtracker&lt;br /&gt;
Have a look at the README in that repository and open a ticket.&lt;/div&gt;</summary>
		<author><name>Spinal</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Development/Building_Packages&amp;diff=666</id>
		<title>Development/Building Packages</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Development/Building_Packages&amp;diff=666"/>
		<updated>2020-03-04T04:02:34Z</updated>

		<summary type="html">&lt;p&gt;Spinal: /* The git tag */ Minor fix&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Maintenance workflow =&lt;br /&gt;
&lt;br /&gt;
Each package in Maemo Leste uses a specific git-based workflow which makes it easy to track history and maintain in an easy way.&lt;br /&gt;
&lt;br /&gt;
Taking the https://github.com/maemo-leste/libcal/ package as an example - a valid repository contains at least two git branches:&lt;br /&gt;
&lt;br /&gt;
# master&lt;br /&gt;
# maemo/ascii&lt;br /&gt;
&lt;br /&gt;
Ideally, the branches should have no difference, but sometimes this may vary.&lt;br /&gt;
Your git repository should contain your code, and a &#039;&#039;&#039;debian&#039;&#039;&#039; directory - which contains the debian package build logic.&lt;br /&gt;
The &amp;lt;i&amp;gt;compat&amp;lt;/i&amp;gt; level of the package should be no less than &#039;&#039;&#039;9&#039;&#039;&#039; and preferably it should use &#039;&#039;&#039;debhelper&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Once you have your package ready and it builds locally on your Maemo Leste VM/device, there are just a couple more things to&lt;br /&gt;
do to make it ready for building on Jenkins:&lt;br /&gt;
&lt;br /&gt;
== The git tag ==&lt;br /&gt;
&lt;br /&gt;
In &#039;&#039;&#039;debian/changelog&#039;&#039;&#039; you should have your package version. It is very important to have a git tag that reflects this version&lt;br /&gt;
so Jenkins and jenkins-debian-glue can figure out which revision to build.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that the git tag should &#039;&#039;&#039;only&#039;&#039;&#039; contain the upstream version and no package revisions or epochs, for example if we have:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;libcal (0.3-2) unstable; urgency=medium&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Our git tag would be &amp;lt;i&amp;gt;0.3&amp;lt;/i&amp;gt;, and &#039;&#039;&#039;not&#039;&#039;&#039; &amp;lt;i&amp;gt;0.3-2&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once tagged, push the tag to git origin.&lt;br /&gt;
&lt;br /&gt;
== gbp.conf ==&lt;br /&gt;
&lt;br /&gt;
Your &#039;&#039;&#039;debian&#039;&#039;&#039; directory should contain a file called &#039;&#039;&#039;gbp.conf&#039;&#039;&#039; with the following contents:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[DEFAULT]&lt;br /&gt;
&lt;br /&gt;
upstream-tag=%(version)s&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once all this is in place, make sure that you have a &#039;&#039;&#039;maemo/$codename&#039;&#039;&#039; branch containing all this ready and pushed.&lt;br /&gt;
&lt;br /&gt;
= How you can build packages =&lt;br /&gt;
&lt;br /&gt;
Building a packages is easier than one might think, it requires roughly the following steps:&lt;br /&gt;
&lt;br /&gt;
#. Access to a Devuan/Debian system (you can use a [[Virtual_Machine|VM running Maemo Leste]] or a [[:Category:Device|Device running Maemo Leste]].&lt;br /&gt;
#. Source code of a package, obtain either via &#039;&#039;&#039;git&#039;&#039;&#039; or &#039;&#039;&#039;apt source &amp;lt;packagename&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
#. Install build dependencies (run from source directory): &#039;&#039;&#039;sudo apt-get build-dep .&#039;&#039;&#039;&lt;br /&gt;
#. Build a package using &#039;&#039;&#039;dpkg-buildpackage -uc -b&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You can now install the package you have just built with &#039;&#039;&#039;dpkg -i somename.deb&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Also see: https://wiki.debian.org/HowToPackageForDebian&lt;br /&gt;
&lt;br /&gt;
== Submitting changes ==&lt;br /&gt;
&lt;br /&gt;
If you make changes to a package, please submit a pull request for the repository of that package, likely: https://github.com/maemo-leste/PACKAGENAME&lt;br /&gt;
&lt;br /&gt;
For now, we will take care of updating tags and branches.&lt;br /&gt;
&lt;br /&gt;
= How packages end up in the repository =&lt;br /&gt;
&lt;br /&gt;
There are currently two repositories:&lt;br /&gt;
&lt;br /&gt;
* The main repository: https://maedevu.maemo.org/leste&lt;br /&gt;
* The extras repository: https://maedevu.maemo.org/extras&lt;br /&gt;
&lt;br /&gt;
The packages in the extras repository are not core, but useful applications nonetheless.&lt;br /&gt;
&lt;br /&gt;
The codenames and an /etc/apt/sources.list file entry would look like the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
deb https://maedevu.maemo.org/leste ascii main contrib non-free&lt;br /&gt;
&lt;br /&gt;
deb https://maedevu.maemo.org/extras ascii main contrib non-free&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Packages in this repository get build by Jenkins, to which a select group of people has access. (Parazyd, Wizzup, Spinal84)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How packages are built using Jenkins ==&lt;br /&gt;
&lt;br /&gt;
Read only access to the http frontend: https://phoenix.maemo.org/ (write-access can be granted)&lt;br /&gt;
&lt;br /&gt;
All packages are hosted on https://github.com/maemo-leste and a current list of all the packages in Jenkins can be found here:&lt;br /&gt;
&lt;br /&gt;
https://github.com/maemo-leste/jenkins-integration/blob/master/config.py&lt;br /&gt;
&lt;br /&gt;
Every repository has a branch for each release, for example:&lt;br /&gt;
&lt;br /&gt;
# maemo/ascii - main branch for Devuan Ascii target&lt;br /&gt;
# maemo/ascii-devel - main branch for Devuan Ascii, but possibly with unstable version&lt;br /&gt;
# maemo/beowulf - main branch for Devuan Beowulf version of the package&lt;br /&gt;
&lt;br /&gt;
See [[Development/Branches]] for more information on the usual branches flow.&lt;br /&gt;
&lt;br /&gt;
= Maemo Leste Extras =&lt;br /&gt;
&lt;br /&gt;
If you wish to maintain your own package in Maemo Leste, you can apply a package at https://github.com/maemo-leste-extras/bugtracker&lt;br /&gt;
Have a look at the README in that repository and open a ticket.&lt;/div&gt;</summary>
		<author><name>Spinal</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Development/Building_Packages&amp;diff=665</id>
		<title>Development/Building Packages</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Development/Building_Packages&amp;diff=665"/>
		<updated>2020-03-04T04:01:58Z</updated>

		<summary type="html">&lt;p&gt;Spinal: /* The git tag */ Package epoch should be omitted too&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Maintenance workflow =&lt;br /&gt;
&lt;br /&gt;
Each package in Maemo Leste uses a specific git-based workflow which makes it easy to track history and maintain in an easy way.&lt;br /&gt;
&lt;br /&gt;
Taking the https://github.com/maemo-leste/libcal/ package as an example - a valid repository contains at least two git branches:&lt;br /&gt;
&lt;br /&gt;
# master&lt;br /&gt;
# maemo/ascii&lt;br /&gt;
&lt;br /&gt;
Ideally, the branches should have no difference, but sometimes this may vary.&lt;br /&gt;
Your git repository should contain your code, and a &#039;&#039;&#039;debian&#039;&#039;&#039; directory - which contains the debian package build logic.&lt;br /&gt;
The &amp;lt;i&amp;gt;compat&amp;lt;/i&amp;gt; level of the package should be no less than &#039;&#039;&#039;9&#039;&#039;&#039; and preferably it should use &#039;&#039;&#039;debhelper&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Once you have your package ready and it builds locally on your Maemo Leste VM/device, there are just a couple more things to&lt;br /&gt;
do to make it ready for building on Jenkins:&lt;br /&gt;
&lt;br /&gt;
== The git tag ==&lt;br /&gt;
&lt;br /&gt;
In &#039;&#039;&#039;debian/changelog&#039;&#039;&#039; you should have your package version. It is very important to have a git tag that reflects this version&lt;br /&gt;
so Jenkins and jenkins-debian-glue can figure out which revision to build.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that the git tag should &#039;&#039;&#039;only&#039;&#039;&#039; contain the upstream version and no package revisions or epochs, for example if we have:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;libcal (0.3-2) unstable; urgency=medium&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Our git tag would be &amp;lt;i&amp;gt;0.3&amp;lt;/i&amp;gt;, and &#039;&#039;&#039;not&#039;&#039;&#039; &amp;lt;i&amp;gt;0.3-1&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once tagged, push the tag to git origin.&lt;br /&gt;
&lt;br /&gt;
== gbp.conf ==&lt;br /&gt;
&lt;br /&gt;
Your &#039;&#039;&#039;debian&#039;&#039;&#039; directory should contain a file called &#039;&#039;&#039;gbp.conf&#039;&#039;&#039; with the following contents:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[DEFAULT]&lt;br /&gt;
&lt;br /&gt;
upstream-tag=%(version)s&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once all this is in place, make sure that you have a &#039;&#039;&#039;maemo/$codename&#039;&#039;&#039; branch containing all this ready and pushed.&lt;br /&gt;
&lt;br /&gt;
= How you can build packages =&lt;br /&gt;
&lt;br /&gt;
Building a packages is easier than one might think, it requires roughly the following steps:&lt;br /&gt;
&lt;br /&gt;
#. Access to a Devuan/Debian system (you can use a [[Virtual_Machine|VM running Maemo Leste]] or a [[:Category:Device|Device running Maemo Leste]].&lt;br /&gt;
#. Source code of a package, obtain either via &#039;&#039;&#039;git&#039;&#039;&#039; or &#039;&#039;&#039;apt source &amp;lt;packagename&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
#. Install build dependencies (run from source directory): &#039;&#039;&#039;sudo apt-get build-dep .&#039;&#039;&#039;&lt;br /&gt;
#. Build a package using &#039;&#039;&#039;dpkg-buildpackage -uc -b&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You can now install the package you have just built with &#039;&#039;&#039;dpkg -i somename.deb&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Also see: https://wiki.debian.org/HowToPackageForDebian&lt;br /&gt;
&lt;br /&gt;
== Submitting changes ==&lt;br /&gt;
&lt;br /&gt;
If you make changes to a package, please submit a pull request for the repository of that package, likely: https://github.com/maemo-leste/PACKAGENAME&lt;br /&gt;
&lt;br /&gt;
For now, we will take care of updating tags and branches.&lt;br /&gt;
&lt;br /&gt;
= How packages end up in the repository =&lt;br /&gt;
&lt;br /&gt;
There are currently two repositories:&lt;br /&gt;
&lt;br /&gt;
* The main repository: https://maedevu.maemo.org/leste&lt;br /&gt;
* The extras repository: https://maedevu.maemo.org/extras&lt;br /&gt;
&lt;br /&gt;
The packages in the extras repository are not core, but useful applications nonetheless.&lt;br /&gt;
&lt;br /&gt;
The codenames and an /etc/apt/sources.list file entry would look like the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
deb https://maedevu.maemo.org/leste ascii main contrib non-free&lt;br /&gt;
&lt;br /&gt;
deb https://maedevu.maemo.org/extras ascii main contrib non-free&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Packages in this repository get build by Jenkins, to which a select group of people has access. (Parazyd, Wizzup, Spinal84)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How packages are built using Jenkins ==&lt;br /&gt;
&lt;br /&gt;
Read only access to the http frontend: https://phoenix.maemo.org/ (write-access can be granted)&lt;br /&gt;
&lt;br /&gt;
All packages are hosted on https://github.com/maemo-leste and a current list of all the packages in Jenkins can be found here:&lt;br /&gt;
&lt;br /&gt;
https://github.com/maemo-leste/jenkins-integration/blob/master/config.py&lt;br /&gt;
&lt;br /&gt;
Every repository has a branch for each release, for example:&lt;br /&gt;
&lt;br /&gt;
# maemo/ascii - main branch for Devuan Ascii target&lt;br /&gt;
# maemo/ascii-devel - main branch for Devuan Ascii, but possibly with unstable version&lt;br /&gt;
# maemo/beowulf - main branch for Devuan Beowulf version of the package&lt;br /&gt;
&lt;br /&gt;
See [[Development/Branches]] for more information on the usual branches flow.&lt;br /&gt;
&lt;br /&gt;
= Maemo Leste Extras =&lt;br /&gt;
&lt;br /&gt;
If you wish to maintain your own package in Maemo Leste, you can apply a package at https://github.com/maemo-leste-extras/bugtracker&lt;br /&gt;
Have a look at the README in that repository and open a ticket.&lt;/div&gt;</summary>
		<author><name>Spinal</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Development/Building_Packages&amp;diff=664</id>
		<title>Development/Building Packages</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Development/Building_Packages&amp;diff=664"/>
		<updated>2020-03-04T03:57:44Z</updated>

		<summary type="html">&lt;p&gt;Spinal: /* How you can build packages */ Fix formatting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Maintenance workflow =&lt;br /&gt;
&lt;br /&gt;
Each package in Maemo Leste uses a specific git-based workflow which makes it easy to track history and maintain in an easy way.&lt;br /&gt;
&lt;br /&gt;
Taking the https://github.com/maemo-leste/libcal/ package as an example - a valid repository contains at least two git branches:&lt;br /&gt;
&lt;br /&gt;
# master&lt;br /&gt;
# maemo/ascii&lt;br /&gt;
&lt;br /&gt;
Ideally, the branches should have no difference, but sometimes this may vary.&lt;br /&gt;
Your git repository should contain your code, and a &#039;&#039;&#039;debian&#039;&#039;&#039; directory - which contains the debian package build logic.&lt;br /&gt;
The &amp;lt;i&amp;gt;compat&amp;lt;/i&amp;gt; level of the package should be no less than &#039;&#039;&#039;9&#039;&#039;&#039; and preferably it should use &#039;&#039;&#039;debhelper&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Once you have your package ready and it builds locally on your Maemo Leste VM/device, there are just a couple more things to&lt;br /&gt;
do to make it ready for building on Jenkins:&lt;br /&gt;
&lt;br /&gt;
== The git tag ==&lt;br /&gt;
&lt;br /&gt;
In &#039;&#039;&#039;debian/changelog&#039;&#039;&#039; you should have your package version. It is very important to have a git tag that reflects this version&lt;br /&gt;
so Jenkins and jenkins-debian-glue can figure out which revision to build.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that the git tag should &#039;&#039;&#039;only&#039;&#039;&#039; contain the upstream version and no package revisions, for example if we have:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;libcal (0.3-2) unstable; urgency=medium&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Our git tag would be &amp;lt;i&amp;gt;0.3&amp;lt;/i&amp;gt;, and &#039;&#039;&#039;not&#039;&#039;&#039; &amp;lt;i&amp;gt;0.3-1&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once tagged, push the tag to git origin.&lt;br /&gt;
&lt;br /&gt;
== gbp.conf ==&lt;br /&gt;
&lt;br /&gt;
Your &#039;&#039;&#039;debian&#039;&#039;&#039; directory should contain a file called &#039;&#039;&#039;gbp.conf&#039;&#039;&#039; with the following contents:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[DEFAULT]&lt;br /&gt;
&lt;br /&gt;
upstream-tag=%(version)s&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once all this is in place, make sure that you have a &#039;&#039;&#039;maemo/$codename&#039;&#039;&#039; branch containing all this ready and pushed.&lt;br /&gt;
&lt;br /&gt;
= How you can build packages =&lt;br /&gt;
&lt;br /&gt;
Building a packages is easier than one might think, it requires roughly the following steps:&lt;br /&gt;
&lt;br /&gt;
#. Access to a Devuan/Debian system (you can use a [[Virtual_Machine|VM running Maemo Leste]] or a [[:Category:Device|Device running Maemo Leste]].&lt;br /&gt;
#. Source code of a package, obtain either via &#039;&#039;&#039;git&#039;&#039;&#039; or &#039;&#039;&#039;apt source &amp;lt;packagename&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
#. Install build dependencies (run from source directory): &#039;&#039;&#039;sudo apt-get build-dep .&#039;&#039;&#039;&lt;br /&gt;
#. Build a package using &#039;&#039;&#039;dpkg-buildpackage -uc -b&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You can now install the package you have just built with &#039;&#039;&#039;dpkg -i somename.deb&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Also see: https://wiki.debian.org/HowToPackageForDebian&lt;br /&gt;
&lt;br /&gt;
== Submitting changes ==&lt;br /&gt;
&lt;br /&gt;
If you make changes to a package, please submit a pull request for the repository of that package, likely: https://github.com/maemo-leste/PACKAGENAME&lt;br /&gt;
&lt;br /&gt;
For now, we will take care of updating tags and branches.&lt;br /&gt;
&lt;br /&gt;
= How packages end up in the repository =&lt;br /&gt;
&lt;br /&gt;
There are currently two repositories:&lt;br /&gt;
&lt;br /&gt;
* The main repository: https://maedevu.maemo.org/leste&lt;br /&gt;
* The extras repository: https://maedevu.maemo.org/extras&lt;br /&gt;
&lt;br /&gt;
The packages in the extras repository are not core, but useful applications nonetheless.&lt;br /&gt;
&lt;br /&gt;
The codenames and an /etc/apt/sources.list file entry would look like the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
deb https://maedevu.maemo.org/leste ascii main contrib non-free&lt;br /&gt;
&lt;br /&gt;
deb https://maedevu.maemo.org/extras ascii main contrib non-free&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Packages in this repository get build by Jenkins, to which a select group of people has access. (Parazyd, Wizzup, Spinal84)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How packages are built using Jenkins ==&lt;br /&gt;
&lt;br /&gt;
Read only access to the http frontend: https://phoenix.maemo.org/ (write-access can be granted)&lt;br /&gt;
&lt;br /&gt;
All packages are hosted on https://github.com/maemo-leste and a current list of all the packages in Jenkins can be found here:&lt;br /&gt;
&lt;br /&gt;
https://github.com/maemo-leste/jenkins-integration/blob/master/config.py&lt;br /&gt;
&lt;br /&gt;
Every repository has a branch for each release, for example:&lt;br /&gt;
&lt;br /&gt;
# maemo/ascii - main branch for Devuan Ascii target&lt;br /&gt;
# maemo/ascii-devel - main branch for Devuan Ascii, but possibly with unstable version&lt;br /&gt;
# maemo/beowulf - main branch for Devuan Beowulf version of the package&lt;br /&gt;
&lt;br /&gt;
See [[Development/Branches]] for more information on the usual branches flow.&lt;br /&gt;
&lt;br /&gt;
= Maemo Leste Extras =&lt;br /&gt;
&lt;br /&gt;
If you wish to maintain your own package in Maemo Leste, you can apply a package at https://github.com/maemo-leste-extras/bugtracker&lt;br /&gt;
Have a look at the README in that repository and open a ticket.&lt;/div&gt;</summary>
		<author><name>Spinal</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Development/Building_Packages&amp;diff=663</id>
		<title>Development/Building Packages</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Development/Building_Packages&amp;diff=663"/>
		<updated>2020-03-04T03:56:33Z</updated>

		<summary type="html">&lt;p&gt;Spinal: /* How you can build packages */ Change order: first install build deps, then build the package&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Maintenance workflow =&lt;br /&gt;
&lt;br /&gt;
Each package in Maemo Leste uses a specific git-based workflow which makes it easy to track history and maintain in an easy way.&lt;br /&gt;
&lt;br /&gt;
Taking the https://github.com/maemo-leste/libcal/ package as an example - a valid repository contains at least two git branches:&lt;br /&gt;
&lt;br /&gt;
# master&lt;br /&gt;
# maemo/ascii&lt;br /&gt;
&lt;br /&gt;
Ideally, the branches should have no difference, but sometimes this may vary.&lt;br /&gt;
Your git repository should contain your code, and a &#039;&#039;&#039;debian&#039;&#039;&#039; directory - which contains the debian package build logic.&lt;br /&gt;
The &amp;lt;i&amp;gt;compat&amp;lt;/i&amp;gt; level of the package should be no less than &#039;&#039;&#039;9&#039;&#039;&#039; and preferably it should use &#039;&#039;&#039;debhelper&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Once you have your package ready and it builds locally on your Maemo Leste VM/device, there are just a couple more things to&lt;br /&gt;
do to make it ready for building on Jenkins:&lt;br /&gt;
&lt;br /&gt;
== The git tag ==&lt;br /&gt;
&lt;br /&gt;
In &#039;&#039;&#039;debian/changelog&#039;&#039;&#039; you should have your package version. It is very important to have a git tag that reflects this version&lt;br /&gt;
so Jenkins and jenkins-debian-glue can figure out which revision to build.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that the git tag should &#039;&#039;&#039;only&#039;&#039;&#039; contain the upstream version and no package revisions, for example if we have:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;libcal (0.3-2) unstable; urgency=medium&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Our git tag would be &amp;lt;i&amp;gt;0.3&amp;lt;/i&amp;gt;, and &#039;&#039;&#039;not&#039;&#039;&#039; &amp;lt;i&amp;gt;0.3-1&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once tagged, push the tag to git origin.&lt;br /&gt;
&lt;br /&gt;
== gbp.conf ==&lt;br /&gt;
&lt;br /&gt;
Your &#039;&#039;&#039;debian&#039;&#039;&#039; directory should contain a file called &#039;&#039;&#039;gbp.conf&#039;&#039;&#039; with the following contents:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[DEFAULT]&lt;br /&gt;
&lt;br /&gt;
upstream-tag=%(version)s&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once all this is in place, make sure that you have a &#039;&#039;&#039;maemo/$codename&#039;&#039;&#039; branch containing all this ready and pushed.&lt;br /&gt;
&lt;br /&gt;
= How you can build packages =&lt;br /&gt;
&lt;br /&gt;
Building a packages is easier than one might think, it requires roughly the following steps:&lt;br /&gt;
&lt;br /&gt;
#. Access to a Devuan/Debian system (you can use a [[Virtual_Machine|VM running Maemo Leste]] or a [[:Category:Device|Device running Maemo Leste]].&lt;br /&gt;
#. Source code of a package, obtain either via &#039;&#039;&#039;git&#039;&#039;&#039; or &#039;&#039;&#039;apt source &amp;lt;packagename&amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
#. Install build dependencies (run from source directory):&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get build-dep .&amp;lt;/code&amp;gt;&lt;br /&gt;
#. Build a package using &#039;&#039;&#039;dpkg-buildpackage -uc -b&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You can now install the package you have just built with &#039;&#039;&#039;dpkg -i somename.deb&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Also see: https://wiki.debian.org/HowToPackageForDebian&lt;br /&gt;
&lt;br /&gt;
== Submitting changes ==&lt;br /&gt;
&lt;br /&gt;
If you make changes to a package, please submit a pull request for the repository of that package, likely: https://github.com/maemo-leste/PACKAGENAME&lt;br /&gt;
&lt;br /&gt;
For now, we will take care of updating tags and branches.&lt;br /&gt;
&lt;br /&gt;
= How packages end up in the repository =&lt;br /&gt;
&lt;br /&gt;
There are currently two repositories:&lt;br /&gt;
&lt;br /&gt;
* The main repository: https://maedevu.maemo.org/leste&lt;br /&gt;
* The extras repository: https://maedevu.maemo.org/extras&lt;br /&gt;
&lt;br /&gt;
The packages in the extras repository are not core, but useful applications nonetheless.&lt;br /&gt;
&lt;br /&gt;
The codenames and an /etc/apt/sources.list file entry would look like the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
deb https://maedevu.maemo.org/leste ascii main contrib non-free&lt;br /&gt;
&lt;br /&gt;
deb https://maedevu.maemo.org/extras ascii main contrib non-free&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Packages in this repository get build by Jenkins, to which a select group of people has access. (Parazyd, Wizzup, Spinal84)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How packages are built using Jenkins ==&lt;br /&gt;
&lt;br /&gt;
Read only access to the http frontend: https://phoenix.maemo.org/ (write-access can be granted)&lt;br /&gt;
&lt;br /&gt;
All packages are hosted on https://github.com/maemo-leste and a current list of all the packages in Jenkins can be found here:&lt;br /&gt;
&lt;br /&gt;
https://github.com/maemo-leste/jenkins-integration/blob/master/config.py&lt;br /&gt;
&lt;br /&gt;
Every repository has a branch for each release, for example:&lt;br /&gt;
&lt;br /&gt;
# maemo/ascii - main branch for Devuan Ascii target&lt;br /&gt;
# maemo/ascii-devel - main branch for Devuan Ascii, but possibly with unstable version&lt;br /&gt;
# maemo/beowulf - main branch for Devuan Beowulf version of the package&lt;br /&gt;
&lt;br /&gt;
See [[Development/Branches]] for more information on the usual branches flow.&lt;br /&gt;
&lt;br /&gt;
= Maemo Leste Extras =&lt;br /&gt;
&lt;br /&gt;
If you wish to maintain your own package in Maemo Leste, you can apply a package at https://github.com/maemo-leste-extras/bugtracker&lt;br /&gt;
Have a look at the README in that repository and open a ticket.&lt;/div&gt;</summary>
		<author><name>Spinal</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Development/Building_Packages&amp;diff=662</id>
		<title>Development/Building Packages</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Development/Building_Packages&amp;diff=662"/>
		<updated>2020-03-04T03:54:43Z</updated>

		<summary type="html">&lt;p&gt;Spinal: /* How you can build packages */ Add instruction to help installing build deps automatically&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Maintenance workflow =&lt;br /&gt;
&lt;br /&gt;
Each package in Maemo Leste uses a specific git-based workflow which makes it easy to track history and maintain in an easy way.&lt;br /&gt;
&lt;br /&gt;
Taking the https://github.com/maemo-leste/libcal/ package as an example - a valid repository contains at least two git branches:&lt;br /&gt;
&lt;br /&gt;
# master&lt;br /&gt;
# maemo/ascii&lt;br /&gt;
&lt;br /&gt;
Ideally, the branches should have no difference, but sometimes this may vary.&lt;br /&gt;
Your git repository should contain your code, and a &#039;&#039;&#039;debian&#039;&#039;&#039; directory - which contains the debian package build logic.&lt;br /&gt;
The &amp;lt;i&amp;gt;compat&amp;lt;/i&amp;gt; level of the package should be no less than &#039;&#039;&#039;9&#039;&#039;&#039; and preferably it should use &#039;&#039;&#039;debhelper&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Once you have your package ready and it builds locally on your Maemo Leste VM/device, there are just a couple more things to&lt;br /&gt;
do to make it ready for building on Jenkins:&lt;br /&gt;
&lt;br /&gt;
== The git tag ==&lt;br /&gt;
&lt;br /&gt;
In &#039;&#039;&#039;debian/changelog&#039;&#039;&#039; you should have your package version. It is very important to have a git tag that reflects this version&lt;br /&gt;
so Jenkins and jenkins-debian-glue can figure out which revision to build.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that the git tag should &#039;&#039;&#039;only&#039;&#039;&#039; contain the upstream version and no package revisions, for example if we have:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;libcal (0.3-2) unstable; urgency=medium&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Our git tag would be &amp;lt;i&amp;gt;0.3&amp;lt;/i&amp;gt;, and &#039;&#039;&#039;not&#039;&#039;&#039; &amp;lt;i&amp;gt;0.3-1&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once tagged, push the tag to git origin.&lt;br /&gt;
&lt;br /&gt;
== gbp.conf ==&lt;br /&gt;
&lt;br /&gt;
Your &#039;&#039;&#039;debian&#039;&#039;&#039; directory should contain a file called &#039;&#039;&#039;gbp.conf&#039;&#039;&#039; with the following contents:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[DEFAULT]&lt;br /&gt;
&lt;br /&gt;
upstream-tag=%(version)s&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once all this is in place, make sure that you have a &#039;&#039;&#039;maemo/$codename&#039;&#039;&#039; branch containing all this ready and pushed.&lt;br /&gt;
&lt;br /&gt;
= How you can build packages =&lt;br /&gt;
&lt;br /&gt;
Building a packages is easier than one might think, it requires roughly the following steps:&lt;br /&gt;
&lt;br /&gt;
#. Access to a Devuan/Debian system (you can use a [[Virtual_Machine|VM running Maemo Leste]] or a [[:Category:Device|Device running Maemo Leste]].&lt;br /&gt;
#. Source code of a package, obtain either via &#039;&#039;&#039;git&#039;&#039;&#039; or &#039;&#039;&#039;apt source &amp;lt;packagename&amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
#. Build a package using &#039;&#039;&#039;dpkg-buildpackage -uc -b&#039;&#039;&#039; (run from source directory)&lt;br /&gt;
#. Optionally install build dependencies with &#039;&#039;&#039;apt&#039;&#039;&#039; (dpkg-buildpackage will tell you). To install build deps automatically:&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get build-dep &amp;lt;PACKAGE_DIR&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can now install the package you have just built with &#039;&#039;&#039;dpkg -i somename.deb&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Also see: https://wiki.debian.org/HowToPackageForDebian&lt;br /&gt;
&lt;br /&gt;
== Submitting changes ==&lt;br /&gt;
&lt;br /&gt;
If you make changes to a package, please submit a pull request for the repository of that package, likely: https://github.com/maemo-leste/PACKAGENAME&lt;br /&gt;
&lt;br /&gt;
For now, we will take care of updating tags and branches.&lt;br /&gt;
&lt;br /&gt;
= How packages end up in the repository =&lt;br /&gt;
&lt;br /&gt;
There are currently two repositories:&lt;br /&gt;
&lt;br /&gt;
* The main repository: https://maedevu.maemo.org/leste&lt;br /&gt;
* The extras repository: https://maedevu.maemo.org/extras&lt;br /&gt;
&lt;br /&gt;
The packages in the extras repository are not core, but useful applications nonetheless.&lt;br /&gt;
&lt;br /&gt;
The codenames and an /etc/apt/sources.list file entry would look like the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
deb https://maedevu.maemo.org/leste ascii main contrib non-free&lt;br /&gt;
&lt;br /&gt;
deb https://maedevu.maemo.org/extras ascii main contrib non-free&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Packages in this repository get build by Jenkins, to which a select group of people has access. (Parazyd, Wizzup, Spinal84)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How packages are built using Jenkins ==&lt;br /&gt;
&lt;br /&gt;
Read only access to the http frontend: https://phoenix.maemo.org/ (write-access can be granted)&lt;br /&gt;
&lt;br /&gt;
All packages are hosted on https://github.com/maemo-leste and a current list of all the packages in Jenkins can be found here:&lt;br /&gt;
&lt;br /&gt;
https://github.com/maemo-leste/jenkins-integration/blob/master/config.py&lt;br /&gt;
&lt;br /&gt;
Every repository has a branch for each release, for example:&lt;br /&gt;
&lt;br /&gt;
# maemo/ascii - main branch for Devuan Ascii target&lt;br /&gt;
# maemo/ascii-devel - main branch for Devuan Ascii, but possibly with unstable version&lt;br /&gt;
# maemo/beowulf - main branch for Devuan Beowulf version of the package&lt;br /&gt;
&lt;br /&gt;
See [[Development/Branches]] for more information on the usual branches flow.&lt;br /&gt;
&lt;br /&gt;
= Maemo Leste Extras =&lt;br /&gt;
&lt;br /&gt;
If you wish to maintain your own package in Maemo Leste, you can apply a package at https://github.com/maemo-leste-extras/bugtracker&lt;br /&gt;
Have a look at the README in that repository and open a ticket.&lt;/div&gt;</summary>
		<author><name>Spinal</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Development&amp;diff=654</id>
		<title>Development</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Development&amp;diff=654"/>
		<updated>2020-03-03T00:52:13Z</updated>

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

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

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

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

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

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

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

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

		<summary type="html">&lt;p&gt;Spinal: /* Installation */ Don&amp;#039;t recommend to use 20200112 image (broken wifi)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Device&lt;br /&gt;
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]&lt;br /&gt;
|manufacturer=Motorola&lt;br /&gt;
|codename=Maserati&lt;br /&gt;
|dimensions=&lt;br /&gt;
|release_date=&lt;br /&gt;
|soc=&lt;br /&gt;
|dram=&lt;br /&gt;
|power=&lt;br /&gt;
|lcd=&lt;br /&gt;
|video=&lt;br /&gt;
|audio=&lt;br /&gt;
|network=&lt;br /&gt;
|storage=&lt;br /&gt;
|usb=&lt;br /&gt;
|camera=&lt;br /&gt;
|sensors=&lt;br /&gt;
|other=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&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;
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]&lt;br /&gt;
&lt;br /&gt;
Also see: http://elektranox.org/droid4/&lt;br /&gt;
While using a 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;
== 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.0 || Mainline + some patches not yet in mainline&lt;br /&gt;
|-&lt;br /&gt;
| Serial || Yes || On MicroUSB port, requires special cable&lt;br /&gt;
|-&lt;br /&gt;
| Charging || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Wireless || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Ethernet || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| Micro USB || Yes || OTG&lt;br /&gt;
|-&lt;br /&gt;
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)&lt;br /&gt;
|-&lt;br /&gt;
| Screen || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]]&lt;br /&gt;
|-&lt;br /&gt;
| Touchscreen || Yes || Capacitive&lt;br /&gt;
|-&lt;br /&gt;
| Audio || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/&lt;br /&gt;
|-&lt;br /&gt;
| SMS || WIP || Reported to work, no UI yet&lt;br /&gt;
|-&lt;br /&gt;
| Phone calls || WIP || Reported to work, no UI yet&lt;br /&gt;
|-&lt;br /&gt;
| Bluetooth || Not yet || Needs firmware. Download https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts and save it in &amp;lt;code&amp;gt;/lib/firmware/ti-connectivity/&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| FM Transmitter || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| FM Receiver || Not yet ||&lt;br /&gt;
|-&lt;br /&gt;
| Accelerometer || ? || Available as input device, needs MCE work&lt;br /&gt;
|-&lt;br /&gt;
| Proximity sensor || ? || &lt;br /&gt;
|-&lt;br /&gt;
| HDMI-out || WIP || works, but not with hildon-desktop&lt;br /&gt;
|-&lt;br /&gt;
| TV-out || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| Vibration Motor || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
|Compass || No || Mainline supports it, so Leste needs to add config&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Hardware requirements:&lt;br /&gt;
&lt;br /&gt;
* Droid4 with fully charged battery&lt;br /&gt;
* MicroUSB cable&lt;br /&gt;
* MicroSD card&lt;br /&gt;
&lt;br /&gt;
Software requirements:&lt;br /&gt;
* Host Linux or Windows system&lt;br /&gt;
* Android Tools: fastboot&lt;br /&gt;
* Flashing tools:&lt;br /&gt;
** XZ Utils and coreutils for Linux&lt;br /&gt;
** Etcher[https://github.com/balena-io/etcher] for Windows&lt;br /&gt;
&lt;br /&gt;
Download from https://maedevu.maemo.org/images/droid4/&lt;br /&gt;
&lt;br /&gt;
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip&lt;br /&gt;
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz (FIXME: 20200112 image has broken wifi support, don&#039;t use it)&lt;br /&gt;
&lt;br /&gt;
Download from https://github.com/tmlind/droid4-kexecboot.git&lt;br /&gt;
&lt;br /&gt;
# utags-mmcblk1p13.bin&lt;br /&gt;
# droid4-kexecboot.img&lt;br /&gt;
&lt;br /&gt;
Installation:&lt;br /&gt;
&lt;br /&gt;
# Create a working directory with above mentioned files in it&lt;br /&gt;
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip&lt;br /&gt;
# Power off Droid4 and connect it to the host machine with MicroUSB cable&lt;br /&gt;
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.&lt;br /&gt;
&lt;br /&gt;
Now go to the working directory and run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin&lt;br /&gt;
sudo fastboot reboot-bootloader&lt;br /&gt;
sudo fastboot flash bpsw droid4-kexecboot.img&lt;br /&gt;
sudo fastboot flash utags utags-mmcblk1p13.bin&lt;br /&gt;
sudo fastboot reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The device should reboot and show kexecboot menu for a few seconds before it boots to Android.&lt;br /&gt;
&lt;br /&gt;
Now, flash the Maemo Leste image to your sdcard:&lt;br /&gt;
&lt;br /&gt;
On Linux:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE&lt;br /&gt;
sync&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Windows: Use Etcher&lt;br /&gt;
&lt;br /&gt;
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.&lt;br /&gt;
&lt;br /&gt;
You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute.&lt;br /&gt;
&lt;br /&gt;
== Kernel development (old and outdated) ==&lt;br /&gt;
&lt;br /&gt;
Linux 4.14 plus patches&lt;br /&gt;
&lt;br /&gt;
Status: http://elektranox.org/droid4/&lt;br /&gt;
&lt;br /&gt;
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Device]]&lt;/div&gt;</summary>
		<author><name>Spinal</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Motorola_Droid_4&amp;diff=553</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=553"/>
		<updated>2020-01-17T13:21:17Z</updated>

		<summary type="html">&lt;p&gt;Spinal: /* Installation */ Fall back to working 20190227 image. Latest image has broken wifi.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Device&lt;br /&gt;
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]&lt;br /&gt;
|manufacturer=Motorola&lt;br /&gt;
|codename=Maserati&lt;br /&gt;
|dimensions=&lt;br /&gt;
|release_date=&lt;br /&gt;
|soc=&lt;br /&gt;
|dram=&lt;br /&gt;
|power=&lt;br /&gt;
|lcd=&lt;br /&gt;
|video=&lt;br /&gt;
|audio=&lt;br /&gt;
|network=&lt;br /&gt;
|storage=&lt;br /&gt;
|usb=&lt;br /&gt;
|camera=&lt;br /&gt;
|sensors=&lt;br /&gt;
|other=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&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;
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]&lt;br /&gt;
&lt;br /&gt;
Also see: http://elektranox.org/droid4/&lt;br /&gt;
While using a 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;
== 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.0 || Mainline + some patches not yet in mainline&lt;br /&gt;
|-&lt;br /&gt;
| Serial || Yes || On MicroUSB port, requires special cable&lt;br /&gt;
|-&lt;br /&gt;
| Charging || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Wireless || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Ethernet || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| Micro USB || Yes || OTG&lt;br /&gt;
|-&lt;br /&gt;
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)&lt;br /&gt;
|-&lt;br /&gt;
| Screen || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]]&lt;br /&gt;
|-&lt;br /&gt;
| Touchscreen || Yes || Capacitive&lt;br /&gt;
|-&lt;br /&gt;
| Audio || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/&lt;br /&gt;
|-&lt;br /&gt;
| SMS || WIP || Reported to work, no UI yet&lt;br /&gt;
|-&lt;br /&gt;
| Phone calls || WIP || Reported to work, no UI yet&lt;br /&gt;
|-&lt;br /&gt;
| Bluetooth || Not yet || Needs firmware. Download https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts and save it in &amp;lt;code&amp;gt;/lib/firmware/ti-connectivity/&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| FM Transmitter || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| FM Receiver || Not yet ||&lt;br /&gt;
|-&lt;br /&gt;
| Accelerometer || ? || Available as input device, needs MCE work&lt;br /&gt;
|-&lt;br /&gt;
| Proximity sensor || ? || &lt;br /&gt;
|-&lt;br /&gt;
| HDMI-out || WIP || works, but not with hildon-desktop&lt;br /&gt;
|-&lt;br /&gt;
| TV-out || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| Vibration Motor || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
|Compass || No || Mainline supports it, so Leste needs to add config&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Hardware requirements:&lt;br /&gt;
&lt;br /&gt;
* Droid4 with fully charged battery&lt;br /&gt;
* MicroUSB cable&lt;br /&gt;
* MicroSD card&lt;br /&gt;
&lt;br /&gt;
Software requirements:&lt;br /&gt;
* Host Linux or Windows system&lt;br /&gt;
* Android Tools: fastboot&lt;br /&gt;
* Flashing tools:&lt;br /&gt;
** XZ Utils and coreutils for Linux&lt;br /&gt;
** Etcher[https://github.com/balena-io/etcher] for Windows&lt;br /&gt;
&lt;br /&gt;
Download from https://maedevu.maemo.org/images/droid4/&lt;br /&gt;
&lt;br /&gt;
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip&lt;br /&gt;
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz&lt;br /&gt;
&lt;br /&gt;
Download from https://github.com/tmlind/droid4-kexecboot.git&lt;br /&gt;
&lt;br /&gt;
# utags-mmcblk1p13.bin&lt;br /&gt;
# droid4-kexecboot.img&lt;br /&gt;
&lt;br /&gt;
Installation:&lt;br /&gt;
&lt;br /&gt;
# Create a working directory with above mentioned files in it&lt;br /&gt;
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip&lt;br /&gt;
# Power off Droid4 and connect it to the host machine with MicroUSB cable&lt;br /&gt;
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.&lt;br /&gt;
&lt;br /&gt;
Now go to the working directory and run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin&lt;br /&gt;
sudo fastboot reboot-bootloader&lt;br /&gt;
sudo fastboot flash bpsw droid4-kexecboot.img&lt;br /&gt;
sudo fastboot flash utags utags-mmcblk1p13.bin&lt;br /&gt;
sudo fastboot reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The device should reboot and show kexecboot menu for a few seconds before it boots to Android.&lt;br /&gt;
&lt;br /&gt;
Now, flash the Maemo Leste image to your sdcard:&lt;br /&gt;
&lt;br /&gt;
On Linux:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE&lt;br /&gt;
sync&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Windows: Use Etcher&lt;br /&gt;
&lt;br /&gt;
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.&lt;br /&gt;
&lt;br /&gt;
You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute.&lt;br /&gt;
&lt;br /&gt;
== Kernel development (old and outdated) ==&lt;br /&gt;
&lt;br /&gt;
Linux 4.14 plus patches&lt;br /&gt;
&lt;br /&gt;
Status: http://elektranox.org/droid4/&lt;br /&gt;
&lt;br /&gt;
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Device]]&lt;/div&gt;</summary>
		<author><name>Spinal</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Motorola_Droid_4&amp;diff=552</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=552"/>
		<updated>2020-01-17T05:03:02Z</updated>

		<summary type="html">&lt;p&gt;Spinal: Rename section &amp;quot;Installation using kexecboot&amp;quot; =&amp;gt; &amp;quot;Installation&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Device&lt;br /&gt;
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]&lt;br /&gt;
|manufacturer=Motorola&lt;br /&gt;
|codename=Maserati&lt;br /&gt;
|dimensions=&lt;br /&gt;
|release_date=&lt;br /&gt;
|soc=&lt;br /&gt;
|dram=&lt;br /&gt;
|power=&lt;br /&gt;
|lcd=&lt;br /&gt;
|video=&lt;br /&gt;
|audio=&lt;br /&gt;
|network=&lt;br /&gt;
|storage=&lt;br /&gt;
|usb=&lt;br /&gt;
|camera=&lt;br /&gt;
|sensors=&lt;br /&gt;
|other=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&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;
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]&lt;br /&gt;
&lt;br /&gt;
Also see: http://elektranox.org/droid4/&lt;br /&gt;
While using a 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;
== 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.0 || Mainline + some patches not yet in mainline&lt;br /&gt;
|-&lt;br /&gt;
| Serial || Yes || On MicroUSB port, requires special cable&lt;br /&gt;
|-&lt;br /&gt;
| Charging || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Wireless || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Ethernet || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| Micro USB || Yes || OTG&lt;br /&gt;
|-&lt;br /&gt;
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)&lt;br /&gt;
|-&lt;br /&gt;
| Screen || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]]&lt;br /&gt;
|-&lt;br /&gt;
| Touchscreen || Yes || Capacitive&lt;br /&gt;
|-&lt;br /&gt;
| Audio || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/&lt;br /&gt;
|-&lt;br /&gt;
| SMS || WIP || Reported to work, no UI yet&lt;br /&gt;
|-&lt;br /&gt;
| Phone calls || WIP || Reported to work, no UI yet&lt;br /&gt;
|-&lt;br /&gt;
| Bluetooth || Not yet || Needs firmware. Download https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts and save it in &amp;lt;code&amp;gt;/lib/firmware/ti-connectivity/&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| FM Transmitter || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| FM Receiver || Not yet ||&lt;br /&gt;
|-&lt;br /&gt;
| Accelerometer || ? || Available as input device, needs MCE work&lt;br /&gt;
|-&lt;br /&gt;
| Proximity sensor || ? || &lt;br /&gt;
|-&lt;br /&gt;
| HDMI-out || WIP || works, but not with hildon-desktop&lt;br /&gt;
|-&lt;br /&gt;
| TV-out || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| Vibration Motor || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
|Compass || No || Mainline supports it, so Leste needs to add config&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Hardware requirements:&lt;br /&gt;
&lt;br /&gt;
* Droid4 with fully charged battery&lt;br /&gt;
* MicroUSB cable&lt;br /&gt;
* MicroSD card&lt;br /&gt;
&lt;br /&gt;
Software requirements:&lt;br /&gt;
* Host Linux or Windows system&lt;br /&gt;
* Android Tools: fastboot&lt;br /&gt;
* Flashing tools:&lt;br /&gt;
** XZ Utils and coreutils for Linux&lt;br /&gt;
** Etcher[https://github.com/balena-io/etcher] for Windows&lt;br /&gt;
&lt;br /&gt;
Download from https://maedevu.maemo.org/images/droid4/&lt;br /&gt;
&lt;br /&gt;
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip&lt;br /&gt;
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz&lt;br /&gt;
&lt;br /&gt;
Download from https://github.com/tmlind/droid4-kexecboot.git&lt;br /&gt;
&lt;br /&gt;
# utags-mmcblk1p13.bin&lt;br /&gt;
# droid4-kexecboot.img&lt;br /&gt;
&lt;br /&gt;
Installation:&lt;br /&gt;
&lt;br /&gt;
# Create a working directory with above mentioned files in it&lt;br /&gt;
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip&lt;br /&gt;
# Power off Droid4 and connect it to the host machine with MicroUSB cable&lt;br /&gt;
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.&lt;br /&gt;
&lt;br /&gt;
Now go to the working directory and run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin&lt;br /&gt;
sudo fastboot reboot-bootloader&lt;br /&gt;
sudo fastboot flash bpsw droid4-kexecboot.img&lt;br /&gt;
sudo fastboot flash utags utags-mmcblk1p13.bin&lt;br /&gt;
sudo fastboot reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The device should reboot and show kexecboot menu for a few seconds before it boots to Android.&lt;br /&gt;
&lt;br /&gt;
Now, flash the Maemo Leste image to your sdcard:&lt;br /&gt;
&lt;br /&gt;
On Linux:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xzcat maemo-leste-1.0-armhf-droid4-20200112.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE&lt;br /&gt;
sync&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Windows: Use Etcher&lt;br /&gt;
&lt;br /&gt;
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.&lt;br /&gt;
&lt;br /&gt;
You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute.&lt;br /&gt;
&lt;br /&gt;
== Kernel development (old and outdated) ==&lt;br /&gt;
&lt;br /&gt;
Linux 4.14 plus patches&lt;br /&gt;
&lt;br /&gt;
Status: http://elektranox.org/droid4/&lt;br /&gt;
&lt;br /&gt;
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Device]]&lt;/div&gt;</summary>
		<author><name>Spinal</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Motorola_Droid_4&amp;diff=551</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=551"/>
		<updated>2020-01-17T05:01:36Z</updated>

		<summary type="html">&lt;p&gt;Spinal: /* Notes */ Minor fix&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Device&lt;br /&gt;
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]&lt;br /&gt;
|manufacturer=Motorola&lt;br /&gt;
|codename=Maserati&lt;br /&gt;
|dimensions=&lt;br /&gt;
|release_date=&lt;br /&gt;
|soc=&lt;br /&gt;
|dram=&lt;br /&gt;
|power=&lt;br /&gt;
|lcd=&lt;br /&gt;
|video=&lt;br /&gt;
|audio=&lt;br /&gt;
|network=&lt;br /&gt;
|storage=&lt;br /&gt;
|usb=&lt;br /&gt;
|camera=&lt;br /&gt;
|sensors=&lt;br /&gt;
|other=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&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;
Also see [[Motorola_Droid_4/Modem]] [[Motorola_Droid_4/PowerVR]]&lt;br /&gt;
&lt;br /&gt;
Also see: http://elektranox.org/droid4/&lt;br /&gt;
While using a 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;
== 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.0 || Mainline + some patches not yet in mainline&lt;br /&gt;
|-&lt;br /&gt;
| Serial || Yes || On MicroUSB port, requires special cable&lt;br /&gt;
|-&lt;br /&gt;
| Charging || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Wireless || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Ethernet || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| Micro USB || Yes || OTG&lt;br /&gt;
|-&lt;br /&gt;
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)&lt;br /&gt;
|-&lt;br /&gt;
| Screen || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]]&lt;br /&gt;
|-&lt;br /&gt;
| Touchscreen || Yes || Capacitive&lt;br /&gt;
|-&lt;br /&gt;
| Audio || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/&lt;br /&gt;
|-&lt;br /&gt;
| SMS || WIP || Reported to work, no UI yet&lt;br /&gt;
|-&lt;br /&gt;
| Phone calls || WIP || Reported to work, no UI yet&lt;br /&gt;
|-&lt;br /&gt;
| Bluetooth || Not yet || Needs firmware. Download https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts and save it in &amp;lt;code&amp;gt;/lib/firmware/ti-connectivity/&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| FM Transmitter || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| FM Receiver || Not yet ||&lt;br /&gt;
|-&lt;br /&gt;
| Accelerometer || ? || Available as input device, needs MCE work&lt;br /&gt;
|-&lt;br /&gt;
| Proximity sensor || ? || &lt;br /&gt;
|-&lt;br /&gt;
| HDMI-out || WIP || works, but not with hildon-desktop&lt;br /&gt;
|-&lt;br /&gt;
| TV-out || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| Vibration Motor || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
|Compass || No || Mainline supports it, so Leste needs to add config&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Installation using kexecboot ==&lt;br /&gt;
&lt;br /&gt;
Hardware requirements:&lt;br /&gt;
&lt;br /&gt;
* Droid4 with fully charged battery&lt;br /&gt;
* MicroUSB cable&lt;br /&gt;
* MicroSD card&lt;br /&gt;
&lt;br /&gt;
Software requirements:&lt;br /&gt;
* Host Linux or Windows system&lt;br /&gt;
* Android Tools: fastboot&lt;br /&gt;
* Flashing tools:&lt;br /&gt;
** XZ Utils and coreutils for Linux&lt;br /&gt;
** Etcher[https://github.com/balena-io/etcher] for Windows&lt;br /&gt;
&lt;br /&gt;
Download from https://maedevu.maemo.org/images/droid4/&lt;br /&gt;
&lt;br /&gt;
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip&lt;br /&gt;
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz&lt;br /&gt;
&lt;br /&gt;
Download from https://github.com/tmlind/droid4-kexecboot.git&lt;br /&gt;
&lt;br /&gt;
# utags-mmcblk1p13.bin&lt;br /&gt;
# droid4-kexecboot.img&lt;br /&gt;
&lt;br /&gt;
Installation:&lt;br /&gt;
&lt;br /&gt;
# Create a working directory with above mentioned files in it&lt;br /&gt;
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip&lt;br /&gt;
# Power off Droid4 and connect it to the host machine with MicroUSB cable&lt;br /&gt;
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.&lt;br /&gt;
&lt;br /&gt;
Now go to the working directory and run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin&lt;br /&gt;
sudo fastboot reboot-bootloader&lt;br /&gt;
sudo fastboot flash bpsw droid4-kexecboot.img&lt;br /&gt;
sudo fastboot flash utags utags-mmcblk1p13.bin&lt;br /&gt;
sudo fastboot reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The device should reboot and show kexecboot menu for a few seconds before it boots to Android.&lt;br /&gt;
&lt;br /&gt;
Now, flash the Maemo Leste image to your sdcard:&lt;br /&gt;
&lt;br /&gt;
On Linux:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xzcat maemo-leste-1.0-armhf-droid4-20200112.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE&lt;br /&gt;
sync&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Windows: Use Etcher&lt;br /&gt;
&lt;br /&gt;
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.&lt;br /&gt;
&lt;br /&gt;
You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute.&lt;br /&gt;
&lt;br /&gt;
== Kernel development (old and outdated) ==&lt;br /&gt;
&lt;br /&gt;
Linux 4.14 plus patches&lt;br /&gt;
&lt;br /&gt;
Status: http://elektranox.org/droid4/&lt;br /&gt;
&lt;br /&gt;
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Device]]&lt;/div&gt;</summary>
		<author><name>Spinal</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Motorola_Droid_4&amp;diff=550</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=550"/>
		<updated>2020-01-17T05:00:44Z</updated>

		<summary type="html">&lt;p&gt;Spinal: /* Notes */ Minor fixes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Device&lt;br /&gt;
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]&lt;br /&gt;
|manufacturer=Motorola&lt;br /&gt;
|codename=Maserati&lt;br /&gt;
|dimensions=&lt;br /&gt;
|release_date=&lt;br /&gt;
|soc=&lt;br /&gt;
|dram=&lt;br /&gt;
|power=&lt;br /&gt;
|lcd=&lt;br /&gt;
|video=&lt;br /&gt;
|audio=&lt;br /&gt;
|network=&lt;br /&gt;
|storage=&lt;br /&gt;
|usb=&lt;br /&gt;
|camera=&lt;br /&gt;
|sensors=&lt;br /&gt;
|other=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&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 button. You should hold them for about 7 seconds. Droid4 will then reboot.&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/&lt;br /&gt;
While using a 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;
== 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.0 || Mainline + some patches not yet in mainline&lt;br /&gt;
|-&lt;br /&gt;
| Serial || Yes || On MicroUSB port, requires special cable&lt;br /&gt;
|-&lt;br /&gt;
| Charging || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Wireless || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Ethernet || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| Micro USB || Yes || OTG&lt;br /&gt;
|-&lt;br /&gt;
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)&lt;br /&gt;
|-&lt;br /&gt;
| Screen || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]]&lt;br /&gt;
|-&lt;br /&gt;
| Touchscreen || Yes || Capacitive&lt;br /&gt;
|-&lt;br /&gt;
| Audio || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/&lt;br /&gt;
|-&lt;br /&gt;
| SMS || WIP || Reported to work, no UI yet&lt;br /&gt;
|-&lt;br /&gt;
| Phone calls || WIP || Reported to work, no UI yet&lt;br /&gt;
|-&lt;br /&gt;
| Bluetooth || Not yet || Needs firmware. Download https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts and save it in &amp;lt;code&amp;gt;/lib/firmware/ti-connectivity/&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| FM Transmitter || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| FM Receiver || Not yet ||&lt;br /&gt;
|-&lt;br /&gt;
| Accelerometer || ? || Available as input device, needs MCE work&lt;br /&gt;
|-&lt;br /&gt;
| Proximity sensor || ? || &lt;br /&gt;
|-&lt;br /&gt;
| HDMI-out || WIP || works, but not with hildon-desktop&lt;br /&gt;
|-&lt;br /&gt;
| TV-out || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| Vibration Motor || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
|Compass || No || Mainline supports it, so Leste needs to add config&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Installation using kexecboot ==&lt;br /&gt;
&lt;br /&gt;
Hardware requirements:&lt;br /&gt;
&lt;br /&gt;
* Droid4 with fully charged battery&lt;br /&gt;
* MicroUSB cable&lt;br /&gt;
* MicroSD card&lt;br /&gt;
&lt;br /&gt;
Software requirements:&lt;br /&gt;
* Host Linux or Windows system&lt;br /&gt;
* Android Tools: fastboot&lt;br /&gt;
* Flashing tools:&lt;br /&gt;
** XZ Utils and coreutils for Linux&lt;br /&gt;
** Etcher[https://github.com/balena-io/etcher] for Windows&lt;br /&gt;
&lt;br /&gt;
Download from https://maedevu.maemo.org/images/droid4/&lt;br /&gt;
&lt;br /&gt;
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip&lt;br /&gt;
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz&lt;br /&gt;
&lt;br /&gt;
Download from https://github.com/tmlind/droid4-kexecboot.git&lt;br /&gt;
&lt;br /&gt;
# utags-mmcblk1p13.bin&lt;br /&gt;
# droid4-kexecboot.img&lt;br /&gt;
&lt;br /&gt;
Installation:&lt;br /&gt;
&lt;br /&gt;
# Create a working directory with above mentioned files in it&lt;br /&gt;
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip&lt;br /&gt;
# Power off Droid4 and connect it to the host machine with MicroUSB cable&lt;br /&gt;
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.&lt;br /&gt;
&lt;br /&gt;
Now go to the working directory and run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin&lt;br /&gt;
sudo fastboot reboot-bootloader&lt;br /&gt;
sudo fastboot flash bpsw droid4-kexecboot.img&lt;br /&gt;
sudo fastboot flash utags utags-mmcblk1p13.bin&lt;br /&gt;
sudo fastboot reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The device should reboot and show kexecboot menu for a few seconds before it boots to Android.&lt;br /&gt;
&lt;br /&gt;
Now, flash the Maemo Leste image to your sdcard:&lt;br /&gt;
&lt;br /&gt;
On Linux:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xzcat maemo-leste-1.0-armhf-droid4-20200112.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE&lt;br /&gt;
sync&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Windows: Use Etcher&lt;br /&gt;
&lt;br /&gt;
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.&lt;br /&gt;
&lt;br /&gt;
You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute.&lt;br /&gt;
&lt;br /&gt;
== Kernel development (old and outdated) ==&lt;br /&gt;
&lt;br /&gt;
Linux 4.14 plus patches&lt;br /&gt;
&lt;br /&gt;
Status: http://elektranox.org/droid4/&lt;br /&gt;
&lt;br /&gt;
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Device]]&lt;/div&gt;</summary>
		<author><name>Spinal</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Motorola_Droid_4&amp;diff=549</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=549"/>
		<updated>2020-01-17T04:56:42Z</updated>

		<summary type="html">&lt;p&gt;Spinal: /* Notes */ Add instructions for device freezes case&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Device&lt;br /&gt;
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]&lt;br /&gt;
|manufacturer=Motorola&lt;br /&gt;
|codename=Maserati&lt;br /&gt;
|dimensions=&lt;br /&gt;
|release_date=&lt;br /&gt;
|soc=&lt;br /&gt;
|dram=&lt;br /&gt;
|power=&lt;br /&gt;
|lcd=&lt;br /&gt;
|video=&lt;br /&gt;
|audio=&lt;br /&gt;
|network=&lt;br /&gt;
|storage=&lt;br /&gt;
|usb=&lt;br /&gt;
|camera=&lt;br /&gt;
|sensors=&lt;br /&gt;
|other=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&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 button. Your should hold it for about 7 seconds. The device should reboot.&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/&lt;br /&gt;
While using a 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;
== 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.0 || Mainline + some patches not yet in mainline&lt;br /&gt;
|-&lt;br /&gt;
| Serial || Yes || On MicroUSB port, requires special cable&lt;br /&gt;
|-&lt;br /&gt;
| Charging || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Wireless || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Ethernet || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| Micro USB || Yes || OTG&lt;br /&gt;
|-&lt;br /&gt;
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)&lt;br /&gt;
|-&lt;br /&gt;
| Screen || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]]&lt;br /&gt;
|-&lt;br /&gt;
| Touchscreen || Yes || Capacitive&lt;br /&gt;
|-&lt;br /&gt;
| Audio || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/&lt;br /&gt;
|-&lt;br /&gt;
| SMS || WIP || Reported to work, no UI yet&lt;br /&gt;
|-&lt;br /&gt;
| Phone calls || WIP || Reported to work, no UI yet&lt;br /&gt;
|-&lt;br /&gt;
| Bluetooth || Not yet || Needs firmware. Download https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts and save it in &amp;lt;code&amp;gt;/lib/firmware/ti-connectivity/&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| FM Transmitter || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| FM Receiver || Not yet ||&lt;br /&gt;
|-&lt;br /&gt;
| Accelerometer || ? || Available as input device, needs MCE work&lt;br /&gt;
|-&lt;br /&gt;
| Proximity sensor || ? || &lt;br /&gt;
|-&lt;br /&gt;
| HDMI-out || WIP || works, but not with hildon-desktop&lt;br /&gt;
|-&lt;br /&gt;
| TV-out || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| Vibration Motor || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
|Compass || No || Mainline supports it, so Leste needs to add config&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Installation using kexecboot ==&lt;br /&gt;
&lt;br /&gt;
Hardware requirements:&lt;br /&gt;
&lt;br /&gt;
* Droid4 with fully charged battery&lt;br /&gt;
* MicroUSB cable&lt;br /&gt;
* MicroSD card&lt;br /&gt;
&lt;br /&gt;
Software requirements:&lt;br /&gt;
* Host Linux or Windows system&lt;br /&gt;
* Android Tools: fastboot&lt;br /&gt;
* Flashing tools:&lt;br /&gt;
** XZ Utils and coreutils for Linux&lt;br /&gt;
** Etcher[https://github.com/balena-io/etcher] for Windows&lt;br /&gt;
&lt;br /&gt;
Download from https://maedevu.maemo.org/images/droid4/&lt;br /&gt;
&lt;br /&gt;
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip&lt;br /&gt;
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz&lt;br /&gt;
&lt;br /&gt;
Download from https://github.com/tmlind/droid4-kexecboot.git&lt;br /&gt;
&lt;br /&gt;
# utags-mmcblk1p13.bin&lt;br /&gt;
# droid4-kexecboot.img&lt;br /&gt;
&lt;br /&gt;
Installation:&lt;br /&gt;
&lt;br /&gt;
# Create a working directory with above mentioned files in it&lt;br /&gt;
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip&lt;br /&gt;
# Power off Droid4 and connect it to the host machine with MicroUSB cable&lt;br /&gt;
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.&lt;br /&gt;
&lt;br /&gt;
Now go to the working directory and run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin&lt;br /&gt;
sudo fastboot reboot-bootloader&lt;br /&gt;
sudo fastboot flash bpsw droid4-kexecboot.img&lt;br /&gt;
sudo fastboot flash utags utags-mmcblk1p13.bin&lt;br /&gt;
sudo fastboot reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The device should reboot and show kexecboot menu for a few seconds before it boots to Android.&lt;br /&gt;
&lt;br /&gt;
Now, flash the Maemo Leste image to your sdcard:&lt;br /&gt;
&lt;br /&gt;
On Linux:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xzcat maemo-leste-1.0-armhf-droid4-20200112.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE&lt;br /&gt;
sync&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Windows: Use Etcher&lt;br /&gt;
&lt;br /&gt;
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.&lt;br /&gt;
&lt;br /&gt;
You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute.&lt;br /&gt;
&lt;br /&gt;
== Kernel development (old and outdated) ==&lt;br /&gt;
&lt;br /&gt;
Linux 4.14 plus patches&lt;br /&gt;
&lt;br /&gt;
Status: http://elektranox.org/droid4/&lt;br /&gt;
&lt;br /&gt;
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Device]]&lt;/div&gt;</summary>
		<author><name>Spinal</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Motorola_Droid_4&amp;diff=548</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=548"/>
		<updated>2020-01-17T04:48:33Z</updated>

		<summary type="html">&lt;p&gt;Spinal: /* Installation using kexecboot */ Minor fixes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Device&lt;br /&gt;
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]&lt;br /&gt;
|manufacturer=Motorola&lt;br /&gt;
|codename=Maserati&lt;br /&gt;
|dimensions=&lt;br /&gt;
|release_date=&lt;br /&gt;
|soc=&lt;br /&gt;
|dram=&lt;br /&gt;
|power=&lt;br /&gt;
|lcd=&lt;br /&gt;
|video=&lt;br /&gt;
|audio=&lt;br /&gt;
|network=&lt;br /&gt;
|storage=&lt;br /&gt;
|usb=&lt;br /&gt;
|camera=&lt;br /&gt;
|sensors=&lt;br /&gt;
|other=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Notes ==&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/&lt;br /&gt;
While using a 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;
== 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.0 || Mainline + some patches not yet in mainline&lt;br /&gt;
|-&lt;br /&gt;
| Serial || Yes || On MicroUSB port, requires special cable&lt;br /&gt;
|-&lt;br /&gt;
| Charging || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Wireless || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Ethernet || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| Micro USB || Yes || OTG&lt;br /&gt;
|-&lt;br /&gt;
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)&lt;br /&gt;
|-&lt;br /&gt;
| Screen || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]]&lt;br /&gt;
|-&lt;br /&gt;
| Touchscreen || Yes || Capacitive&lt;br /&gt;
|-&lt;br /&gt;
| Audio || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/&lt;br /&gt;
|-&lt;br /&gt;
| SMS || WIP || Reported to work, no UI yet&lt;br /&gt;
|-&lt;br /&gt;
| Phone calls || WIP || Reported to work, no UI yet&lt;br /&gt;
|-&lt;br /&gt;
| Bluetooth || Not yet || Needs firmware. Download https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts and save it in &amp;lt;code&amp;gt;/lib/firmware/ti-connectivity/&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| FM Transmitter || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| FM Receiver || Not yet ||&lt;br /&gt;
|-&lt;br /&gt;
| Accelerometer || ? || Available as input device, needs MCE work&lt;br /&gt;
|-&lt;br /&gt;
| Proximity sensor || ? || &lt;br /&gt;
|-&lt;br /&gt;
| HDMI-out || WIP || works, but not with hildon-desktop&lt;br /&gt;
|-&lt;br /&gt;
| TV-out || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| Vibration Motor || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
|Compass || No || Mainline supports it, so Leste needs to add config&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Installation using kexecboot ==&lt;br /&gt;
&lt;br /&gt;
Hardware requirements:&lt;br /&gt;
&lt;br /&gt;
* Droid4 with fully charged battery&lt;br /&gt;
* MicroUSB cable&lt;br /&gt;
* MicroSD card&lt;br /&gt;
&lt;br /&gt;
Software requirements:&lt;br /&gt;
* Host Linux or Windows system&lt;br /&gt;
* Android Tools: fastboot&lt;br /&gt;
* Flashing tools:&lt;br /&gt;
** XZ Utils and coreutils for Linux&lt;br /&gt;
** Etcher[https://github.com/balena-io/etcher] for Windows&lt;br /&gt;
&lt;br /&gt;
Download from https://maedevu.maemo.org/images/droid4/&lt;br /&gt;
&lt;br /&gt;
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip&lt;br /&gt;
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz&lt;br /&gt;
&lt;br /&gt;
Download from https://github.com/tmlind/droid4-kexecboot.git&lt;br /&gt;
&lt;br /&gt;
# utags-mmcblk1p13.bin&lt;br /&gt;
# droid4-kexecboot.img&lt;br /&gt;
&lt;br /&gt;
Installation:&lt;br /&gt;
&lt;br /&gt;
# Create a working directory with above mentioned files in it&lt;br /&gt;
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip&lt;br /&gt;
# Power off Droid4 and connect it to the host machine with MicroUSB cable&lt;br /&gt;
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.&lt;br /&gt;
&lt;br /&gt;
Now go to the working directory and run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin&lt;br /&gt;
sudo fastboot reboot-bootloader&lt;br /&gt;
sudo fastboot flash bpsw droid4-kexecboot.img&lt;br /&gt;
sudo fastboot flash utags utags-mmcblk1p13.bin&lt;br /&gt;
sudo fastboot reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The device should reboot and show kexecboot menu for a few seconds before it boots to Android.&lt;br /&gt;
&lt;br /&gt;
Now, flash the Maemo Leste image to your sdcard:&lt;br /&gt;
&lt;br /&gt;
On Linux:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xzcat maemo-leste-1.0-armhf-droid4-20200112.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE&lt;br /&gt;
sync&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Windows: Use Etcher&lt;br /&gt;
&lt;br /&gt;
Wait for sync to complete and insert MicroSD card into Droid4. Reboot the device and select Maemo Leste from the kexecboot menu.&lt;br /&gt;
&lt;br /&gt;
You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute.&lt;br /&gt;
&lt;br /&gt;
== Kernel development (old and outdated) ==&lt;br /&gt;
&lt;br /&gt;
Linux 4.14 plus patches&lt;br /&gt;
&lt;br /&gt;
Status: http://elektranox.org/droid4/&lt;br /&gt;
&lt;br /&gt;
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Device]]&lt;/div&gt;</summary>
		<author><name>Spinal</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Motorola_Droid_4&amp;diff=547</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=547"/>
		<updated>2020-01-17T04:46:10Z</updated>

		<summary type="html">&lt;p&gt;Spinal: /* Installation using kexecboot */ Minor fixes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Device&lt;br /&gt;
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]&lt;br /&gt;
|manufacturer=Motorola&lt;br /&gt;
|codename=Maserati&lt;br /&gt;
|dimensions=&lt;br /&gt;
|release_date=&lt;br /&gt;
|soc=&lt;br /&gt;
|dram=&lt;br /&gt;
|power=&lt;br /&gt;
|lcd=&lt;br /&gt;
|video=&lt;br /&gt;
|audio=&lt;br /&gt;
|network=&lt;br /&gt;
|storage=&lt;br /&gt;
|usb=&lt;br /&gt;
|camera=&lt;br /&gt;
|sensors=&lt;br /&gt;
|other=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Notes ==&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/&lt;br /&gt;
While using a 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;
== 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.0 || Mainline + some patches not yet in mainline&lt;br /&gt;
|-&lt;br /&gt;
| Serial || Yes || On MicroUSB port, requires special cable&lt;br /&gt;
|-&lt;br /&gt;
| Charging || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Wireless || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Ethernet || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| Micro USB || Yes || OTG&lt;br /&gt;
|-&lt;br /&gt;
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)&lt;br /&gt;
|-&lt;br /&gt;
| Screen || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]]&lt;br /&gt;
|-&lt;br /&gt;
| Touchscreen || Yes || Capacitive&lt;br /&gt;
|-&lt;br /&gt;
| Audio || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/&lt;br /&gt;
|-&lt;br /&gt;
| SMS || WIP || Reported to work, no UI yet&lt;br /&gt;
|-&lt;br /&gt;
| Phone calls || WIP || Reported to work, no UI yet&lt;br /&gt;
|-&lt;br /&gt;
| Bluetooth || Not yet || Needs firmware. Download https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts and save it in &amp;lt;code&amp;gt;/lib/firmware/ti-connectivity/&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| FM Transmitter || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| FM Receiver || Not yet ||&lt;br /&gt;
|-&lt;br /&gt;
| Accelerometer || ? || Available as input device, needs MCE work&lt;br /&gt;
|-&lt;br /&gt;
| Proximity sensor || ? || &lt;br /&gt;
|-&lt;br /&gt;
| HDMI-out || WIP || works, but not with hildon-desktop&lt;br /&gt;
|-&lt;br /&gt;
| TV-out || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| Vibration Motor || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
|Compass || No || Mainline supports it, so Leste needs to add config&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Installation using kexecboot ==&lt;br /&gt;
&lt;br /&gt;
Hardware requirements:&lt;br /&gt;
&lt;br /&gt;
* Droid4 with fully charged battery&lt;br /&gt;
* MicroUSB cable&lt;br /&gt;
* MicroSD card&lt;br /&gt;
&lt;br /&gt;
Software requirements:&lt;br /&gt;
* Host Linux or Windows system&lt;br /&gt;
* Android Tools: fastboot&lt;br /&gt;
* Flashing tools:&lt;br /&gt;
** XZ Utils and coreutils for Linux&lt;br /&gt;
** Etcher[https://github.com/balena-io/etcher] for Windows&lt;br /&gt;
&lt;br /&gt;
Download from https://maedevu.maemo.org/images/droid4/&lt;br /&gt;
&lt;br /&gt;
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip&lt;br /&gt;
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz&lt;br /&gt;
&lt;br /&gt;
Download from https://github.com/tmlind/droid4-kexecboot.git&lt;br /&gt;
&lt;br /&gt;
# utags-mmcblk1p13.bin&lt;br /&gt;
# droid4-kexecboot.img&lt;br /&gt;
&lt;br /&gt;
Installation:&lt;br /&gt;
&lt;br /&gt;
# Create a working directory with above mentioned files in it&lt;br /&gt;
# unzip VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip&lt;br /&gt;
# Power off Droid4 and connect it to the host machine with MicroUSB cable&lt;br /&gt;
# Start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.&lt;br /&gt;
&lt;br /&gt;
Now go to the working directory and run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo fastboot flash mbm VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml/allow-mbmloader-flashing-mbm.bin&lt;br /&gt;
sudo fastboot reboot-bootloader&lt;br /&gt;
sudo fastboot flash bpsw droid4-kexecboot.img&lt;br /&gt;
sudo fastboot flash utags utags-mmcblk1p13.bin&lt;br /&gt;
sudo fastboot reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The device should reboot and show kexecboot menu for a few seconds before it boots to Android.&lt;br /&gt;
&lt;br /&gt;
Now, flash the Maemo Leste image to your sdcard:&lt;br /&gt;
&lt;br /&gt;
On Linux:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xzcat maemo-leste-1.0-armhf-droid4-20200112.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE&lt;br /&gt;
sync&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Windows: Use Etcher&lt;br /&gt;
&lt;br /&gt;
Wait for the sync to complete and and insert the SD card into the Droid 4. Reboot the device and select Maemo Leste from the kexecboot menu.&lt;br /&gt;
&lt;br /&gt;
You should now see Maemo Leste booting up, and it will show you unaccelerated hildon-desktop after a minute.&lt;br /&gt;
&lt;br /&gt;
== Kernel development (old and outdated) ==&lt;br /&gt;
&lt;br /&gt;
Linux 4.14 plus patches&lt;br /&gt;
&lt;br /&gt;
Status: http://elektranox.org/droid4/&lt;br /&gt;
&lt;br /&gt;
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Device]]&lt;/div&gt;</summary>
		<author><name>Spinal</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Motorola_Droid_4&amp;diff=546</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=546"/>
		<updated>2020-01-17T04:38:03Z</updated>

		<summary type="html">&lt;p&gt;Spinal: /* Installation using kexecboot */ No need to erase existing Android&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Device&lt;br /&gt;
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]&lt;br /&gt;
|manufacturer=Motorola&lt;br /&gt;
|codename=Maserati&lt;br /&gt;
|dimensions=&lt;br /&gt;
|release_date=&lt;br /&gt;
|soc=&lt;br /&gt;
|dram=&lt;br /&gt;
|power=&lt;br /&gt;
|lcd=&lt;br /&gt;
|video=&lt;br /&gt;
|audio=&lt;br /&gt;
|network=&lt;br /&gt;
|storage=&lt;br /&gt;
|usb=&lt;br /&gt;
|camera=&lt;br /&gt;
|sensors=&lt;br /&gt;
|other=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Notes ==&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/&lt;br /&gt;
While using a 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;
== 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.0 || Mainline + some patches not yet in mainline&lt;br /&gt;
|-&lt;br /&gt;
| Serial || Yes || On MicroUSB port, requires special cable&lt;br /&gt;
|-&lt;br /&gt;
| Charging || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Wireless || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Ethernet || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| Micro USB || Yes || OTG&lt;br /&gt;
|-&lt;br /&gt;
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)&lt;br /&gt;
|-&lt;br /&gt;
| Screen || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]]&lt;br /&gt;
|-&lt;br /&gt;
| Touchscreen || Yes || Capacitive&lt;br /&gt;
|-&lt;br /&gt;
| Audio || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/&lt;br /&gt;
|-&lt;br /&gt;
| SMS || WIP || Reported to work, no UI yet&lt;br /&gt;
|-&lt;br /&gt;
| Phone calls || WIP || Reported to work, no UI yet&lt;br /&gt;
|-&lt;br /&gt;
| Bluetooth || Not yet || Needs firmware. Download https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts and save it in &amp;lt;code&amp;gt;/lib/firmware/ti-connectivity/&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| FM Transmitter || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| FM Receiver || Not yet ||&lt;br /&gt;
|-&lt;br /&gt;
| Accelerometer || ? || Available as input device, needs MCE work&lt;br /&gt;
|-&lt;br /&gt;
| Proximity sensor || ? || &lt;br /&gt;
|-&lt;br /&gt;
| HDMI-out || WIP || works, but not with hildon-desktop&lt;br /&gt;
|-&lt;br /&gt;
| TV-out || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| Vibration Motor || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
|Compass || No || Mainline supports it, so Leste needs to add config&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Installation using kexecboot ==&lt;br /&gt;
&lt;br /&gt;
Hardware requirements:&lt;br /&gt;
&lt;br /&gt;
* Droid4 with fully charged battery&lt;br /&gt;
* MicroUSB cable&lt;br /&gt;
* MicroSD card&lt;br /&gt;
&lt;br /&gt;
Software requirements:&lt;br /&gt;
* Host Linux or Windows system&lt;br /&gt;
* Android Tools: fastboot&lt;br /&gt;
* Flashing tools:&lt;br /&gt;
** XZ Utils and coreutils for Linux&lt;br /&gt;
** Etcher[https://github.com/balena-io/etcher] for Windows&lt;br /&gt;
&lt;br /&gt;
Download from https://maedevu.maemo.org/images/droid4/&lt;br /&gt;
&lt;br /&gt;
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip&lt;br /&gt;
# Latest &#039;&#039;&#039;maemo-leste-1.0-armhf-droid4-*.img.xz&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Download from https://github.com/tmlind/droid4-kexecboot.git&lt;br /&gt;
&lt;br /&gt;
# utags-mmcblk1p13.bin&lt;br /&gt;
# droid4-kexecboot.img&lt;br /&gt;
&lt;br /&gt;
Installation:&lt;br /&gt;
&lt;br /&gt;
# Create a working directory with above mentioned files in it&lt;br /&gt;
# unzip &#039;&#039;&#039;VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip&#039;&#039;&#039;&lt;br /&gt;
# Power off Droid4 and connect the device to the host machine with MicroUSB cable&lt;br /&gt;
# Now start the device in fastboot mode. For this press power button and bottom volume key simultaneously and release them after a second.&lt;br /&gt;
&lt;br /&gt;
Now go to the working directory and run:&lt;br /&gt;
&lt;br /&gt;
# 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;
&lt;br /&gt;
The device should reboot and show kexecboot 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;
# &#039;&#039;&#039;xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE&#039;&#039;&#039;&lt;br /&gt;
# &#039;&#039;&#039;sync&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
On Windows: Use Etcher&lt;br /&gt;
&lt;br /&gt;
Wait for the sync to complete and and insert the SD card into the Droid 4. Reboot the device and select Maemo Leste from the kexecboot menu.&lt;br /&gt;
&lt;br /&gt;
You will now have see Maemo Leste boot up, and show you an unaccelerated hildon-desktop after about one minute.&lt;br /&gt;
&lt;br /&gt;
== Kernel development (old and outdated) ==&lt;br /&gt;
&lt;br /&gt;
Linux 4.14 plus patches&lt;br /&gt;
&lt;br /&gt;
Status: http://elektranox.org/droid4/&lt;br /&gt;
&lt;br /&gt;
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Device]]&lt;/div&gt;</summary>
		<author><name>Spinal</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Motorola_Droid_4&amp;diff=545</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=545"/>
		<updated>2020-01-17T04:28:54Z</updated>

		<summary type="html">&lt;p&gt;Spinal: /* Installation using kexecboot */ No need in git&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Device&lt;br /&gt;
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]&lt;br /&gt;
|manufacturer=Motorola&lt;br /&gt;
|codename=Maserati&lt;br /&gt;
|dimensions=&lt;br /&gt;
|release_date=&lt;br /&gt;
|soc=&lt;br /&gt;
|dram=&lt;br /&gt;
|power=&lt;br /&gt;
|lcd=&lt;br /&gt;
|video=&lt;br /&gt;
|audio=&lt;br /&gt;
|network=&lt;br /&gt;
|storage=&lt;br /&gt;
|usb=&lt;br /&gt;
|camera=&lt;br /&gt;
|sensors=&lt;br /&gt;
|other=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Notes ==&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/&lt;br /&gt;
While using a 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;
== 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.0 || Mainline + some patches not yet in mainline&lt;br /&gt;
|-&lt;br /&gt;
| Serial || Yes || On MicroUSB port, requires special cable&lt;br /&gt;
|-&lt;br /&gt;
| Charging || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Wireless || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Ethernet || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| Micro USB || Yes || OTG&lt;br /&gt;
|-&lt;br /&gt;
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)&lt;br /&gt;
|-&lt;br /&gt;
| Screen || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]]&lt;br /&gt;
|-&lt;br /&gt;
| Touchscreen || Yes || Capacitive&lt;br /&gt;
|-&lt;br /&gt;
| Audio || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/&lt;br /&gt;
|-&lt;br /&gt;
| SMS || WIP || Reported to work, no UI yet&lt;br /&gt;
|-&lt;br /&gt;
| Phone calls || WIP || Reported to work, no UI yet&lt;br /&gt;
|-&lt;br /&gt;
| Bluetooth || Not yet || Needs firmware. Download https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts and save it in &amp;lt;code&amp;gt;/lib/firmware/ti-connectivity/&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| FM Transmitter || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| FM Receiver || Not yet ||&lt;br /&gt;
|-&lt;br /&gt;
| Accelerometer || ? || Available as input device, needs MCE work&lt;br /&gt;
|-&lt;br /&gt;
| Proximity sensor || ? || &lt;br /&gt;
|-&lt;br /&gt;
| HDMI-out || WIP || works, but not with hildon-desktop&lt;br /&gt;
|-&lt;br /&gt;
| TV-out || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| Vibration Motor || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
|Compass || No || Mainline supports it, so Leste needs to add config&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Installation using kexecboot ==&lt;br /&gt;
&lt;br /&gt;
This procedure will erase existing android and/or safestrap.&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 (Linux) or flash-droid-4-fs.bat (Windows)&lt;br /&gt;
# Latest &#039;&#039;&#039;maemo-leste-1.0-armhf-droid4-*.img.xz&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Download from https://github.com/tmlind/droid4-kexecboot.git&lt;br /&gt;
&lt;br /&gt;
# utags-mmcblk1p13.bin&lt;br /&gt;
# droid4-kexecboot.img&lt;br /&gt;
&lt;br /&gt;
Installation:&lt;br /&gt;
&lt;br /&gt;
# Create a working directory with above mentioned files in it&lt;br /&gt;
# unzip &#039;&#039;&#039;VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip&#039;&#039;&#039;&lt;br /&gt;
# Power off Droid4 and connect the device to the host machine with MicroUSB cable&lt;br /&gt;
# Now 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;
# Run the &#039;&#039;&#039;flash-droid-4-fw&#039;&#039;&#039; script from the extracted android directory (&#039;&#039;&#039;VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml&#039;&#039;&#039;). Run it as admin/root if it does not find the device&lt;br /&gt;
# If you get errors while writing the image files, try a better MicroUSB cable.&lt;br /&gt;
# Wait for the flashing script to complete. This can take a few minutes. The droid will reboot a couple of times to the bootloader.&lt;br /&gt;
&lt;br /&gt;
Then go to the &#039;&#039;&#039;droid4-kexecboot&#039;&#039;&#039; directory and run (possibly as sudo):&lt;br /&gt;
&lt;br /&gt;
# fastboot flash mbm path/to/android/zip/allow-mbmloader-flashing-mbm.bin&lt;br /&gt;
# fastboot reboot-bootloader&lt;br /&gt;
# fastboot flash bpsw current/droid4-kexecboot.img&lt;br /&gt;
# fastboot flash utags utags-mmcblk1p13.bin&lt;br /&gt;
&lt;br /&gt;
Then reboot the device (hold the power button for one or two seconds) and &#039;&#039;&#039;wait for it to get through the first boot&#039;&#039;&#039;. It will show a green android with something moving in it&#039;s stomach, as well as a progress bar. Then the device should show kexecboot 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;
# &#039;&#039;&#039;xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE&#039;&#039;&#039;&lt;br /&gt;
# &#039;&#039;&#039;sync&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
On Windows: Use Etcher&lt;br /&gt;
&lt;br /&gt;
Wait for the sync to complete and and insert the SD card into the Droid 4. Reboot the device and select Maemo Leste from the kexecboot menu.&lt;br /&gt;
&lt;br /&gt;
You will now have see Maemo Leste boot up, and show you an unaccelerated hildon-desktop after about one minute.&lt;br /&gt;
&lt;br /&gt;
== Kernel development (old and outdated) ==&lt;br /&gt;
&lt;br /&gt;
Linux 4.14 plus patches&lt;br /&gt;
&lt;br /&gt;
Status: http://elektranox.org/droid4/&lt;br /&gt;
&lt;br /&gt;
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Device]]&lt;/div&gt;</summary>
		<author><name>Spinal</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Motorola_Droid_4&amp;diff=544</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=544"/>
		<updated>2020-01-17T04:24:08Z</updated>

		<summary type="html">&lt;p&gt;Spinal: /* Installation using kexecboot */ There&amp;#039;s no need in adb tool&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Device&lt;br /&gt;
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]&lt;br /&gt;
|manufacturer=Motorola&lt;br /&gt;
|codename=Maserati&lt;br /&gt;
|dimensions=&lt;br /&gt;
|release_date=&lt;br /&gt;
|soc=&lt;br /&gt;
|dram=&lt;br /&gt;
|power=&lt;br /&gt;
|lcd=&lt;br /&gt;
|video=&lt;br /&gt;
|audio=&lt;br /&gt;
|network=&lt;br /&gt;
|storage=&lt;br /&gt;
|usb=&lt;br /&gt;
|camera=&lt;br /&gt;
|sensors=&lt;br /&gt;
|other=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Notes ==&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/&lt;br /&gt;
While using a 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;
== 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.0 || Mainline + some patches not yet in mainline&lt;br /&gt;
|-&lt;br /&gt;
| Serial || Yes || On MicroUSB port, requires special cable&lt;br /&gt;
|-&lt;br /&gt;
| Charging || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Wireless || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Ethernet || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| Micro USB || Yes || OTG&lt;br /&gt;
|-&lt;br /&gt;
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)&lt;br /&gt;
|-&lt;br /&gt;
| Screen || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]]&lt;br /&gt;
|-&lt;br /&gt;
| Touchscreen || Yes || Capacitive&lt;br /&gt;
|-&lt;br /&gt;
| Audio || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/&lt;br /&gt;
|-&lt;br /&gt;
| SMS || WIP || Reported to work, no UI yet&lt;br /&gt;
|-&lt;br /&gt;
| Phone calls || WIP || Reported to work, no UI yet&lt;br /&gt;
|-&lt;br /&gt;
| Bluetooth || Not yet || Needs firmware. Download https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts and save it in &amp;lt;code&amp;gt;/lib/firmware/ti-connectivity/&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| FM Transmitter || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| FM Receiver || Not yet ||&lt;br /&gt;
|-&lt;br /&gt;
| Accelerometer || ? || Available as input device, needs MCE work&lt;br /&gt;
|-&lt;br /&gt;
| Proximity sensor || ? || &lt;br /&gt;
|-&lt;br /&gt;
| HDMI-out || WIP || works, but not with hildon-desktop&lt;br /&gt;
|-&lt;br /&gt;
| TV-out || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| Vibration Motor || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
|Compass || No || Mainline supports it, so Leste needs to add config&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Installation using kexecboot ==&lt;br /&gt;
&lt;br /&gt;
This procedure will erase existing android and/or safestrap.&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;
* git (optional)&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 (Linux) or flash-droid-4-fs.bat (Windows)&lt;br /&gt;
# Latest &#039;&#039;&#039;maemo-leste-1.0-armhf-droid4-*.img.xz&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
And clone (or download the zip for):&lt;br /&gt;
&lt;br /&gt;
* https://github.com/tmlind/droid4-kexecboot.git&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 &#039;&#039;&#039;VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip&#039;&#039;&#039;&lt;br /&gt;
# Power off Droid4 and connect the device to the host machine with MicroUSB cable&lt;br /&gt;
# Now 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;
# Run the &#039;&#039;&#039;flash-droid-4-fw&#039;&#039;&#039; script from the extracted android directory (&#039;&#039;&#039;VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml&#039;&#039;&#039;). Run it as admin/root if it does not find the device&lt;br /&gt;
# If you get errors while writing the image files, try a better MicroUSB cable.&lt;br /&gt;
# Wait for the flashing script to complete. This can take a few minutes. The droid will reboot a couple of times to the bootloader.&lt;br /&gt;
&lt;br /&gt;
Then go to the &#039;&#039;&#039;droid4-kexecboot&#039;&#039;&#039; directory and run (possibly as sudo):&lt;br /&gt;
&lt;br /&gt;
# fastboot flash mbm path/to/android/zip/allow-mbmloader-flashing-mbm.bin&lt;br /&gt;
# fastboot reboot-bootloader&lt;br /&gt;
# fastboot flash bpsw current/droid4-kexecboot.img&lt;br /&gt;
# fastboot flash utags utags-mmcblk1p13.bin&lt;br /&gt;
&lt;br /&gt;
Then reboot the device (hold the power button for one or two seconds) and &#039;&#039;&#039;wait for it to get through the first boot&#039;&#039;&#039;. It will show a green android with something moving in it&#039;s stomach, as well as a progress bar. Then the device should show kexecboot 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;
# &#039;&#039;&#039;xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE&#039;&#039;&#039;&lt;br /&gt;
# &#039;&#039;&#039;sync&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
On Windows: Use Etcher&lt;br /&gt;
&lt;br /&gt;
Wait for the sync to complete and and insert the SD card into the Droid 4. Reboot the device and select Maemo Leste from the kexecboot menu.&lt;br /&gt;
&lt;br /&gt;
You will now have see Maemo Leste boot up, and show you an unaccelerated hildon-desktop after about one minute.&lt;br /&gt;
&lt;br /&gt;
== Kernel development (old and outdated) ==&lt;br /&gt;
&lt;br /&gt;
Linux 4.14 plus patches&lt;br /&gt;
&lt;br /&gt;
Status: http://elektranox.org/droid4/&lt;br /&gt;
&lt;br /&gt;
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Device]]&lt;/div&gt;</summary>
		<author><name>Spinal</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Motorola_Droid_4&amp;diff=543</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=543"/>
		<updated>2020-01-17T04:11:14Z</updated>

		<summary type="html">&lt;p&gt;Spinal: Remove not recommended and outdated section &amp;quot;Safestrap+ddroid Installation&amp;quot;.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Device&lt;br /&gt;
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]&lt;br /&gt;
|manufacturer=Motorola&lt;br /&gt;
|codename=Maserati&lt;br /&gt;
|dimensions=&lt;br /&gt;
|release_date=&lt;br /&gt;
|soc=&lt;br /&gt;
|dram=&lt;br /&gt;
|power=&lt;br /&gt;
|lcd=&lt;br /&gt;
|video=&lt;br /&gt;
|audio=&lt;br /&gt;
|network=&lt;br /&gt;
|storage=&lt;br /&gt;
|usb=&lt;br /&gt;
|camera=&lt;br /&gt;
|sensors=&lt;br /&gt;
|other=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Notes ==&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/&lt;br /&gt;
While using a 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;
== 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.0 || Mainline + some patches not yet in mainline&lt;br /&gt;
|-&lt;br /&gt;
| Serial || Yes || On MicroUSB port, requires special cable&lt;br /&gt;
|-&lt;br /&gt;
| Charging || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Wireless || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Ethernet || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| Micro USB || Yes || OTG&lt;br /&gt;
|-&lt;br /&gt;
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)&lt;br /&gt;
|-&lt;br /&gt;
| Screen || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]]&lt;br /&gt;
|-&lt;br /&gt;
| Touchscreen || Yes || Capacitive&lt;br /&gt;
|-&lt;br /&gt;
| Audio || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/&lt;br /&gt;
|-&lt;br /&gt;
| SMS || WIP || Reported to work, no UI yet&lt;br /&gt;
|-&lt;br /&gt;
| Phone calls || WIP || Reported to work, no UI yet&lt;br /&gt;
|-&lt;br /&gt;
| Bluetooth || Not yet || Needs firmware. Download https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts and save it in &amp;lt;code&amp;gt;/lib/firmware/ti-connectivity/&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| FM Transmitter || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| FM Receiver || Not yet ||&lt;br /&gt;
|-&lt;br /&gt;
| Accelerometer || ? || Available as input device, needs MCE work&lt;br /&gt;
|-&lt;br /&gt;
| Proximity sensor || ? || &lt;br /&gt;
|-&lt;br /&gt;
| HDMI-out || WIP || works, but not with hildon-desktop&lt;br /&gt;
|-&lt;br /&gt;
| TV-out || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| Vibration Motor || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
|Compass || No || Mainline supports it, so Leste needs to add config&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Installation using kexecboot ==&lt;br /&gt;
&lt;br /&gt;
This procedure will erase existing android and/or safestrap.&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 and adb&lt;br /&gt;
* git (optional)&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 (Linux) or flash-droid-4-fs.bat (Windows)&lt;br /&gt;
# Latest &#039;&#039;&#039;maemo-leste-1.0-armhf-droid4-*.img.xz&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
And clone (or download the zip for):&lt;br /&gt;
&lt;br /&gt;
* https://github.com/tmlind/droid4-kexecboot.git&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 &#039;&#039;&#039;VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip&#039;&#039;&#039;&lt;br /&gt;
# With the Droid4 booted into Android, go to &amp;quot;Developer options&amp;quot; in Settings, and enable &amp;quot;USB debugging&amp;quot;.&lt;br /&gt;
# Connect the device to the host machine with MicroUSB cable&lt;br /&gt;
#* If you have safestrap installed on the device, go to safestrap, reboot, reboot to bootloader&lt;br /&gt;
#* If you do not have safestrap, issue on the host: &#039;&#039;&#039;adb reboot bootloader&#039;&#039;&#039;&lt;br /&gt;
# Run the &#039;&#039;&#039;flash-droid-4-fw&#039;&#039;&#039; script from the extracted android directory (&#039;&#039;&#039;VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml&#039;&#039;&#039;). Run it as admin/root if it does not find the device&lt;br /&gt;
# If you get errors while writing the image files, try a better MicroUSB cable.&lt;br /&gt;
# Wait for the flashing script to complete. This can take a few minutes. The droid will reboot a couple of times to the bootloader.&lt;br /&gt;
&lt;br /&gt;
Then go to the &#039;&#039;&#039;droid4-kexecboot&#039;&#039;&#039; directory and run (possibly as sudo):&lt;br /&gt;
&lt;br /&gt;
# fastboot flash mbm path/to/android/zip/allow-mbmloader-flashing-mbm.bin&lt;br /&gt;
# fastboot reboot-bootloader&lt;br /&gt;
# fastboot flash bpsw current/droid4-kexecboot.img&lt;br /&gt;
# fastboot flash utags utags-mmcblk1p13.bin&lt;br /&gt;
&lt;br /&gt;
Then reboot the device (hold the power button for one or two seconds) and &#039;&#039;&#039;wait for it to get through the first boot&#039;&#039;&#039;. It will show a green android with something moving in it&#039;s stomach, as well as a progress bar. Then the device should show kexecboot 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;
# &#039;&#039;&#039;xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE&#039;&#039;&#039;&lt;br /&gt;
# &#039;&#039;&#039;sync&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
On Windows: Use Etcher&lt;br /&gt;
&lt;br /&gt;
Wait for the sync to complete and and insert the SD card into the Droid 4. Reboot the device and select Maemo Leste from the kexecboot menu.&lt;br /&gt;
&lt;br /&gt;
You will now have see Maemo Leste boot up, and show you an unaccelerated hildon-desktop after about one minute.&lt;br /&gt;
&lt;br /&gt;
== Kernel development (old and outdated) ==&lt;br /&gt;
&lt;br /&gt;
Linux 4.14 plus patches&lt;br /&gt;
&lt;br /&gt;
Status: http://elektranox.org/droid4/&lt;br /&gt;
&lt;br /&gt;
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Device]]&lt;/div&gt;</summary>
		<author><name>Spinal</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Motorola_Droid_4&amp;diff=542</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=542"/>
		<updated>2020-01-17T01:37:38Z</updated>

		<summary type="html">&lt;p&gt;Spinal: /* Installation using kexecboot */ There&amp;#039;s no need to poweroff+poweron the device after enabling &amp;quot;USB debugging&amp;quot;. Minor fixes.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Device&lt;br /&gt;
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]&lt;br /&gt;
|manufacturer=Motorola&lt;br /&gt;
|codename=Maserati&lt;br /&gt;
|dimensions=&lt;br /&gt;
|release_date=&lt;br /&gt;
|soc=&lt;br /&gt;
|dram=&lt;br /&gt;
|power=&lt;br /&gt;
|lcd=&lt;br /&gt;
|video=&lt;br /&gt;
|audio=&lt;br /&gt;
|network=&lt;br /&gt;
|storage=&lt;br /&gt;
|usb=&lt;br /&gt;
|camera=&lt;br /&gt;
|sensors=&lt;br /&gt;
|other=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Notes ==&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/&lt;br /&gt;
While using a 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;
== 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.0 || Mainline + some patches not yet in mainline&lt;br /&gt;
|-&lt;br /&gt;
| Serial || Yes || On MicroUSB port, requires special cable&lt;br /&gt;
|-&lt;br /&gt;
| Charging || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Wireless || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Ethernet || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| Micro USB || Yes || OTG&lt;br /&gt;
|-&lt;br /&gt;
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)&lt;br /&gt;
|-&lt;br /&gt;
| Screen || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]]&lt;br /&gt;
|-&lt;br /&gt;
| Touchscreen || Yes || Capacitive&lt;br /&gt;
|-&lt;br /&gt;
| Audio || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/&lt;br /&gt;
|-&lt;br /&gt;
| SMS || WIP || Reported to work, no UI yet&lt;br /&gt;
|-&lt;br /&gt;
| Phone calls || WIP || Reported to work, no UI yet&lt;br /&gt;
|-&lt;br /&gt;
| Bluetooth || Not yet || Needs firmware. Download https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts and save it in &amp;lt;code&amp;gt;/lib/firmware/ti-connectivity/&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| FM Transmitter || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| FM Receiver || Not yet ||&lt;br /&gt;
|-&lt;br /&gt;
| Accelerometer || ? || Available as input device, needs MCE work&lt;br /&gt;
|-&lt;br /&gt;
| Proximity sensor || ? || &lt;br /&gt;
|-&lt;br /&gt;
| HDMI-out || WIP || works, but not with hildon-desktop&lt;br /&gt;
|-&lt;br /&gt;
| TV-out || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| Vibration Motor || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
|Compass || No || Mainline supports it, so Leste needs to add config&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Installation using kexecboot ==&lt;br /&gt;
&lt;br /&gt;
This procedure will erase existing android and/or safestrap.&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 and adb&lt;br /&gt;
* git (optional)&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 (Linux) or flash-droid-4-fs.bat (Windows)&lt;br /&gt;
# Latest &#039;&#039;&#039;maemo-leste-1.0-armhf-droid4-*.img.xz&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
And clone (or download the zip for):&lt;br /&gt;
&lt;br /&gt;
* https://github.com/tmlind/droid4-kexecboot.git&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 &#039;&#039;&#039;VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip&#039;&#039;&#039;&lt;br /&gt;
# With the Droid4 booted into Android, go to &amp;quot;Developer options&amp;quot; in Settings, and enable &amp;quot;USB debugging&amp;quot;.&lt;br /&gt;
# Connect the device to the host machine with MicroUSB cable&lt;br /&gt;
#* If you have safestrap installed on the device, go to safestrap, reboot, reboot to bootloader&lt;br /&gt;
#* If you do not have safestrap, issue on the host: &#039;&#039;&#039;adb reboot bootloader&#039;&#039;&#039;&lt;br /&gt;
# Run the &#039;&#039;&#039;flash-droid-4-fw&#039;&#039;&#039; script from the extracted android directory (&#039;&#039;&#039;VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml&#039;&#039;&#039;). Run it as admin/root if it does not find the device&lt;br /&gt;
# If you get errors while writing the image files, try a better MicroUSB cable.&lt;br /&gt;
# Wait for the flashing script to complete. This can take a few minutes. The droid will reboot a couple of times to the bootloader.&lt;br /&gt;
&lt;br /&gt;
Then go to the &#039;&#039;&#039;droid4-kexecboot&#039;&#039;&#039; directory and run (possibly as sudo):&lt;br /&gt;
&lt;br /&gt;
# fastboot flash mbm path/to/android/zip/allow-mbmloader-flashing-mbm.bin&lt;br /&gt;
# fastboot reboot-bootloader&lt;br /&gt;
# fastboot flash bpsw current/droid4-kexecboot.img&lt;br /&gt;
# fastboot flash utags utags-mmcblk1p13.bin&lt;br /&gt;
&lt;br /&gt;
Then reboot the device (hold the power button for one or two seconds) and &#039;&#039;&#039;wait for it to get through the first boot&#039;&#039;&#039;. It will show a green android with something moving in it&#039;s stomach, as well as a progress bar. Then the device should show kexecboot 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;
# &#039;&#039;&#039;xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE&#039;&#039;&#039;&lt;br /&gt;
# &#039;&#039;&#039;sync&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
On Windows: Use Etcher&lt;br /&gt;
&lt;br /&gt;
Wait for the sync to complete and and insert the SD card into the Droid 4. Reboot the device and select Maemo Leste from the kexecboot menu.&lt;br /&gt;
&lt;br /&gt;
You will now have see Maemo Leste boot up, and show you an unaccelerated hildon-desktop after about one minute.&lt;br /&gt;
&lt;br /&gt;
== Safestrap+ddroid Installation (no longer recommended and outdated) ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; [https://github.com/stargo/android_packages_apps_Safestrap/releases/tag/v3.75 SafeStrap] + [https://github.com/tmlind/ddroid ddroid] from eMMC or SD card &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
PostmarketOS has some information how to install safestrap: [https://wiki.postmarketos.org/wiki/Motorola_Droid_4_(motorola-maserati) in wiki]&lt;br /&gt;
&lt;br /&gt;
Flashing the zip file is quite confusing / tricky:&lt;br /&gt;
&lt;br /&gt;
Boot options, select slot with Leste, Activate.&lt;br /&gt;
&lt;br /&gt;
In main menu: Install, scroll down to select ddroid-....zip file, swipe to confirm flash. You will get error, including &amp;quot;ApplyParsePerms, set_metadata_recursive, Error executing updater binary, Unable to mount.&amp;quot; Red &amp;quot;failed&amp;quot; will appear. These are normal. Proceed by selecting &amp;quot;Reboot System&amp;quot;, you&#039;ll get one more warning that system is not installed, swipe to confirm reboot.&lt;br /&gt;
&lt;br /&gt;
Red motorola logo will appear, press search button to continue boot, phone vibrates, then vibrates again, then green led comes on. After about a minute, console appears, then disappears and X comes to life.&lt;br /&gt;
&lt;br /&gt;
== Kernel development (old and outdated) ==&lt;br /&gt;
&lt;br /&gt;
Linux 4.14 plus patches&lt;br /&gt;
&lt;br /&gt;
Status: http://elektranox.org/droid4/&lt;br /&gt;
&lt;br /&gt;
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Device]]&lt;/div&gt;</summary>
		<author><name>Spinal</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Motorola_Droid_4&amp;diff=541</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=541"/>
		<updated>2020-01-17T00:54:56Z</updated>

		<summary type="html">&lt;p&gt;Spinal: /* Installation using kexecboot */ Minor changes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Device&lt;br /&gt;
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]&lt;br /&gt;
|manufacturer=Motorola&lt;br /&gt;
|codename=Maserati&lt;br /&gt;
|dimensions=&lt;br /&gt;
|release_date=&lt;br /&gt;
|soc=&lt;br /&gt;
|dram=&lt;br /&gt;
|power=&lt;br /&gt;
|lcd=&lt;br /&gt;
|video=&lt;br /&gt;
|audio=&lt;br /&gt;
|network=&lt;br /&gt;
|storage=&lt;br /&gt;
|usb=&lt;br /&gt;
|camera=&lt;br /&gt;
|sensors=&lt;br /&gt;
|other=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Notes ==&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/&lt;br /&gt;
While using a 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;
== 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.0 || Mainline + some patches not yet in mainline&lt;br /&gt;
|-&lt;br /&gt;
| Serial || Yes || On MicroUSB port, requires special cable&lt;br /&gt;
|-&lt;br /&gt;
| Charging || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Wireless || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Ethernet || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| Micro USB || Yes || OTG&lt;br /&gt;
|-&lt;br /&gt;
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)&lt;br /&gt;
|-&lt;br /&gt;
| Screen || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]]&lt;br /&gt;
|-&lt;br /&gt;
| Touchscreen || Yes || Capacitive&lt;br /&gt;
|-&lt;br /&gt;
| Audio || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/&lt;br /&gt;
|-&lt;br /&gt;
| SMS || WIP || Reported to work, no UI yet&lt;br /&gt;
|-&lt;br /&gt;
| Phone calls || WIP || Reported to work, no UI yet&lt;br /&gt;
|-&lt;br /&gt;
| Bluetooth || Not yet || Needs firmware. Download https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts and save it in &amp;lt;code&amp;gt;/lib/firmware/ti-connectivity/&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| FM Transmitter || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| FM Receiver || Not yet ||&lt;br /&gt;
|-&lt;br /&gt;
| Accelerometer || ? || Available as input device, needs MCE work&lt;br /&gt;
|-&lt;br /&gt;
| Proximity sensor || ? || &lt;br /&gt;
|-&lt;br /&gt;
| HDMI-out || WIP || works, but not with hildon-desktop&lt;br /&gt;
|-&lt;br /&gt;
| TV-out || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| Vibration Motor || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
|Compass || No || Mainline supports it, so Leste needs to add config&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Installation using kexecboot ==&lt;br /&gt;
&lt;br /&gt;
This procedure will erase existing android and/or safestrap.&lt;br /&gt;
&lt;br /&gt;
Hardware requirements:&lt;br /&gt;
&lt;br /&gt;
* Charged Droid4&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 and adb&lt;br /&gt;
* git (optional)&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 (Linux) or flash-droid-4-fs.bat (Windows)&lt;br /&gt;
# Latest &#039;&#039;&#039;maemo-leste-1.0-armhf-droid4-*.img.xz&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
And clone (or download the zip for):&lt;br /&gt;
&lt;br /&gt;
* https://github.com/tmlind/droid4-kexecboot.git&lt;br /&gt;
&lt;br /&gt;
Installation:&lt;br /&gt;
&lt;br /&gt;
# With the Droid4 booted into Android, go to &amp;quot;Developer options&amp;quot; in Settings, and enable &amp;quot;USB debugging&amp;quot;.&lt;br /&gt;
# Power off Droid4&lt;br /&gt;
# Create a working directory with above mentioned files in it&lt;br /&gt;
# unzip &#039;&#039;&#039;VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip&#039;&#039;&#039;&lt;br /&gt;
#* If you have safestrap on the device, turn on the droid4, go to safestrap, reboot, reboot to bootloader&lt;br /&gt;
#* If you do not have safestrap, turn on the device, and issue on the host: &#039;&#039;&#039;adb reboot bootloader&#039;&#039;&#039;&lt;br /&gt;
# Run the &#039;&#039;&#039;flash-droid-4-fw&#039;&#039;&#039; script from the extracted android directory (&#039;&#039;&#039;VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml&#039;&#039;&#039;), run as admin/root if it does not find the device&lt;br /&gt;
# If you get errors while writing the image files, try a better MicroUSB cable.&lt;br /&gt;
# Wait for the flashing script to complete. This can take a few minutes. The droid will reboot a couple of times to the bootloader.&lt;br /&gt;
&lt;br /&gt;
Then go to the &#039;&#039;&#039;droid4-kexecboot&#039;&#039;&#039; directory and run (possibly as sudo):&lt;br /&gt;
&lt;br /&gt;
# fastboot flash mbm path/to/android/zip/allow-mbmloader-flashing-mbm.bin&lt;br /&gt;
# fastboot reboot-bootloader&lt;br /&gt;
# fastboot flash bpsw current/droid4-kexecboot.img&lt;br /&gt;
# fastboot flash utags utags-mmcblk1p13.bin&lt;br /&gt;
&lt;br /&gt;
Then reboot the device (hold the power button for one or two seconds) and &#039;&#039;&#039;wait for it to get through the first boot&#039;&#039;&#039;. It will show a green android with something moving in it&#039;s stomach, as well as a progress bar. Then the device should show kexecboot 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;
# &#039;&#039;&#039;xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE&#039;&#039;&#039;&lt;br /&gt;
# &#039;&#039;&#039;sync&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
On Windows: Use Etcher&lt;br /&gt;
&lt;br /&gt;
Wait for the sync to complete and and insert the SD card into the Droid 4. Reboot the device and select Maemo Leste from the kexecboot menu.&lt;br /&gt;
&lt;br /&gt;
You will now have see Maemo Leste boot up, and show you an unaccelerated hildon-desktop after about one minute.&lt;br /&gt;
&lt;br /&gt;
== Safestrap+ddroid Installation (no longer recommended and outdated) ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; [https://github.com/stargo/android_packages_apps_Safestrap/releases/tag/v3.75 SafeStrap] + [https://github.com/tmlind/ddroid ddroid] from eMMC or SD card &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
PostmarketOS has some information how to install safestrap: [https://wiki.postmarketos.org/wiki/Motorola_Droid_4_(motorola-maserati) in wiki]&lt;br /&gt;
&lt;br /&gt;
Flashing the zip file is quite confusing / tricky:&lt;br /&gt;
&lt;br /&gt;
Boot options, select slot with Leste, Activate.&lt;br /&gt;
&lt;br /&gt;
In main menu: Install, scroll down to select ddroid-....zip file, swipe to confirm flash. You will get error, including &amp;quot;ApplyParsePerms, set_metadata_recursive, Error executing updater binary, Unable to mount.&amp;quot; Red &amp;quot;failed&amp;quot; will appear. These are normal. Proceed by selecting &amp;quot;Reboot System&amp;quot;, you&#039;ll get one more warning that system is not installed, swipe to confirm reboot.&lt;br /&gt;
&lt;br /&gt;
Red motorola logo will appear, press search button to continue boot, phone vibrates, then vibrates again, then green led comes on. After about a minute, console appears, then disappears and X comes to life.&lt;br /&gt;
&lt;br /&gt;
== Kernel development (old and outdated) ==&lt;br /&gt;
&lt;br /&gt;
Linux 4.14 plus patches&lt;br /&gt;
&lt;br /&gt;
Status: http://elektranox.org/droid4/&lt;br /&gt;
&lt;br /&gt;
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Device]]&lt;/div&gt;</summary>
		<author><name>Spinal</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Motorola_Droid_4&amp;diff=540</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=540"/>
		<updated>2020-01-17T00:39:00Z</updated>

		<summary type="html">&lt;p&gt;Spinal: /* Installation using kexecboot */ Minor fixes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Device&lt;br /&gt;
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]&lt;br /&gt;
|manufacturer=Motorola&lt;br /&gt;
|codename=Maserati&lt;br /&gt;
|dimensions=&lt;br /&gt;
|release_date=&lt;br /&gt;
|soc=&lt;br /&gt;
|dram=&lt;br /&gt;
|power=&lt;br /&gt;
|lcd=&lt;br /&gt;
|video=&lt;br /&gt;
|audio=&lt;br /&gt;
|network=&lt;br /&gt;
|storage=&lt;br /&gt;
|usb=&lt;br /&gt;
|camera=&lt;br /&gt;
|sensors=&lt;br /&gt;
|other=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Notes ==&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/&lt;br /&gt;
While using a 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;
== 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.0 || Mainline + some patches not yet in mainline&lt;br /&gt;
|-&lt;br /&gt;
| Serial || Yes || On MicroUSB port, requires special cable&lt;br /&gt;
|-&lt;br /&gt;
| Charging || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Wireless || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Ethernet || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| Micro USB || Yes || OTG&lt;br /&gt;
|-&lt;br /&gt;
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)&lt;br /&gt;
|-&lt;br /&gt;
| Screen || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]]&lt;br /&gt;
|-&lt;br /&gt;
| Touchscreen || Yes || Capacitive&lt;br /&gt;
|-&lt;br /&gt;
| Audio || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/&lt;br /&gt;
|-&lt;br /&gt;
| SMS || WIP || Reported to work, no UI yet&lt;br /&gt;
|-&lt;br /&gt;
| Phone calls || WIP || Reported to work, no UI yet&lt;br /&gt;
|-&lt;br /&gt;
| Bluetooth || Not yet || Needs firmware. Download https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts and save it in &amp;lt;code&amp;gt;/lib/firmware/ti-connectivity/&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| FM Transmitter || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| FM Receiver || Not yet ||&lt;br /&gt;
|-&lt;br /&gt;
| Accelerometer || ? || Available as input device, needs MCE work&lt;br /&gt;
|-&lt;br /&gt;
| Proximity sensor || ? || &lt;br /&gt;
|-&lt;br /&gt;
| HDMI-out || WIP || works, but not with hildon-desktop&lt;br /&gt;
|-&lt;br /&gt;
| TV-out || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| Vibration Motor || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
|Compass || No || Mainline supports it, so Leste needs to add config&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Installation using kexecboot ==&lt;br /&gt;
&lt;br /&gt;
This procedure will erase existing android and/or safestrap.&lt;br /&gt;
&lt;br /&gt;
Hardware requirements:&lt;br /&gt;
&lt;br /&gt;
* Charged Droid4&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 and adb&lt;br /&gt;
* git (optional)&lt;br /&gt;
* flashing tools:&lt;br /&gt;
** xzcat and dd 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 (Linux) or flash-droid-4-fs.bat (Windows)&lt;br /&gt;
# Latest &#039;&#039;&#039;maemo-leste-1.0-armhf-droid4-*.img.xz&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
And clone (or download the zip for):&lt;br /&gt;
&lt;br /&gt;
* https://github.com/tmlind/droid4-kexecboot.git&lt;br /&gt;
&lt;br /&gt;
Installation:&lt;br /&gt;
&lt;br /&gt;
# With the Droid4 booted into Android, go to &amp;quot;Developer options&amp;quot; in Settings, and enable &amp;quot;USB debugging&amp;quot;.&lt;br /&gt;
# Power off Droid4&lt;br /&gt;
# Create a working directory with above mentioned files in it&lt;br /&gt;
# unzip &#039;&#039;&#039;VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip&#039;&#039;&#039;&lt;br /&gt;
#* If you have safestrap on the device, turn on the droid4, go to safestrap, reboot, reboot to bootloader&lt;br /&gt;
#* If you do not have safestrap, turn on the device, and issue on the host: &#039;&#039;&#039;adb reboot bootloader&#039;&#039;&#039;&lt;br /&gt;
# Run the &#039;&#039;&#039;flash-droid-4-fw&#039;&#039;&#039; script from the extracted android directory (&#039;&#039;&#039;VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml&#039;&#039;&#039;), run as admin/root if it does not find the device&lt;br /&gt;
# If you get errors while writing the image files, try a better MicroUSB cable.&lt;br /&gt;
# Wait for the flashing script to complete. This can take a few minutes. The droid will reboot a couple of times to the bootloader.&lt;br /&gt;
&lt;br /&gt;
Then go to the &#039;&#039;&#039;droid4-kexecboot&#039;&#039;&#039; directory and run (possibly as sudo):&lt;br /&gt;
&lt;br /&gt;
# fastboot flash mbm path/to/android/zip/allow-mbmloader-flashing-mbm.bin&lt;br /&gt;
# fastboot reboot-bootloader&lt;br /&gt;
# fastboot flash bpsw current/droid4-kexecboot.img&lt;br /&gt;
# fastboot flash utags utags-mmcblk1p13.bin&lt;br /&gt;
&lt;br /&gt;
Then reboot the device (hold the power button for one or two seconds) and &#039;&#039;&#039;wait for it to get through the first boot&#039;&#039;&#039;. It will show a green android with something moving in it&#039;s stomach, as well as a progress bar. Then the device should show kexecboot 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;
# &#039;&#039;&#039;xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE&#039;&#039;&#039;&lt;br /&gt;
# &#039;&#039;&#039;sync&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
On Windows: Use Etcher&lt;br /&gt;
&lt;br /&gt;
Wait for the sync to complete and and insert the SD card into the Droid 4. Reboot the device and select Maemo Leste from the kexecboot menu.&lt;br /&gt;
&lt;br /&gt;
You will now have see Maemo Leste boot up, and show you an unaccelerated hildon-desktop after about one minute.&lt;br /&gt;
&lt;br /&gt;
== Safestrap+ddroid Installation (no longer recommended and outdated) ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; [https://github.com/stargo/android_packages_apps_Safestrap/releases/tag/v3.75 SafeStrap] + [https://github.com/tmlind/ddroid ddroid] from eMMC or SD card &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
PostmarketOS has some information how to install safestrap: [https://wiki.postmarketos.org/wiki/Motorola_Droid_4_(motorola-maserati) in wiki]&lt;br /&gt;
&lt;br /&gt;
Flashing the zip file is quite confusing / tricky:&lt;br /&gt;
&lt;br /&gt;
Boot options, select slot with Leste, Activate.&lt;br /&gt;
&lt;br /&gt;
In main menu: Install, scroll down to select ddroid-....zip file, swipe to confirm flash. You will get error, including &amp;quot;ApplyParsePerms, set_metadata_recursive, Error executing updater binary, Unable to mount.&amp;quot; Red &amp;quot;failed&amp;quot; will appear. These are normal. Proceed by selecting &amp;quot;Reboot System&amp;quot;, you&#039;ll get one more warning that system is not installed, swipe to confirm reboot.&lt;br /&gt;
&lt;br /&gt;
Red motorola logo will appear, press search button to continue boot, phone vibrates, then vibrates again, then green led comes on. After about a minute, console appears, then disappears and X comes to life.&lt;br /&gt;
&lt;br /&gt;
== Kernel development (old and outdated) ==&lt;br /&gt;
&lt;br /&gt;
Linux 4.14 plus patches&lt;br /&gt;
&lt;br /&gt;
Status: http://elektranox.org/droid4/&lt;br /&gt;
&lt;br /&gt;
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Device]]&lt;/div&gt;</summary>
		<author><name>Spinal</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Motorola_Droid_4&amp;diff=539</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=539"/>
		<updated>2020-01-17T00:22:44Z</updated>

		<summary type="html">&lt;p&gt;Spinal: /* Installation using kexecboot */ Rewrite requirements section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Device&lt;br /&gt;
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]&lt;br /&gt;
|manufacturer=Motorola&lt;br /&gt;
|codename=Maserati&lt;br /&gt;
|dimensions=&lt;br /&gt;
|release_date=&lt;br /&gt;
|soc=&lt;br /&gt;
|dram=&lt;br /&gt;
|power=&lt;br /&gt;
|lcd=&lt;br /&gt;
|video=&lt;br /&gt;
|audio=&lt;br /&gt;
|network=&lt;br /&gt;
|storage=&lt;br /&gt;
|usb=&lt;br /&gt;
|camera=&lt;br /&gt;
|sensors=&lt;br /&gt;
|other=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Notes ==&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/&lt;br /&gt;
While using a 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;
== 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.0 || Mainline + some patches not yet in mainline&lt;br /&gt;
|-&lt;br /&gt;
| Serial || Yes || On MicroUSB port, requires special cable&lt;br /&gt;
|-&lt;br /&gt;
| Charging || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Wireless || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Ethernet || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| Micro USB || Yes || OTG&lt;br /&gt;
|-&lt;br /&gt;
| Keyboard || Yes || Slightly modified keyboard layout, see https://www.spinics.net/lists/linux-omap/msg135137.html (TLDR; Shift key produces CTRL, SYM produces ALT, and Caps lock produces SHIFT)&lt;br /&gt;
|-&lt;br /&gt;
| Screen || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]]&lt;br /&gt;
|-&lt;br /&gt;
| Touchscreen || Yes || Capacitive&lt;br /&gt;
|-&lt;br /&gt;
| Audio || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| 2G/3G data || WIP || Reported to work, no UI yet - see https://github.com/maemo-leste/connui-cellular/&lt;br /&gt;
|-&lt;br /&gt;
| SMS || WIP || Reported to work, no UI yet&lt;br /&gt;
|-&lt;br /&gt;
| Phone calls || WIP || Reported to work, no UI yet&lt;br /&gt;
|-&lt;br /&gt;
| Bluetooth || Not yet || Needs firmware. Download https://github.com/TI-ECS/bt-firmware/blob/master/TIInit_10.6.15.bts and save it in &amp;lt;code&amp;gt;/lib/firmware/ti-connectivity/&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| FM Transmitter || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| FM Receiver || Not yet ||&lt;br /&gt;
|-&lt;br /&gt;
| Accelerometer || ? || Available as input device, needs MCE work&lt;br /&gt;
|-&lt;br /&gt;
| Proximity sensor || ? || &lt;br /&gt;
|-&lt;br /&gt;
| HDMI-out || WIP || works, but not with hildon-desktop&lt;br /&gt;
|-&lt;br /&gt;
| TV-out || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| Vibration Motor || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
|Compass || No || Mainline supports it, so Leste needs to add config&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Installation using kexecboot ==&lt;br /&gt;
&lt;br /&gt;
This procedure will erase existing android and/or safestrap.&lt;br /&gt;
&lt;br /&gt;
Hardware requirements:&lt;br /&gt;
&lt;br /&gt;
* Charged Droid4&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 and adb&lt;br /&gt;
* git (optional)&lt;br /&gt;
* flashing tools:&lt;br /&gt;
** xzcat and dd 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 (Linux) or flash-droid-4-fs.bat (Windows)&lt;br /&gt;
# Latest &#039;&#039;&#039;maemo-leste-1.0-armhf-droid4-*.img.xz&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
And clone (or download the zip for):&lt;br /&gt;
&lt;br /&gt;
* https://github.com/tmlind/droid4-kexecboot.git&lt;br /&gt;
&lt;br /&gt;
Installation:&lt;br /&gt;
&lt;br /&gt;
# With the Droid4 booted into Android, go to &amp;quot;Developer Options&amp;quot; in Settings, and enable debugging over USB.&lt;br /&gt;
# Power off Droid4&lt;br /&gt;
# Create a working directory with above mentioned files in it&lt;br /&gt;
# unzip &#039;&#039;&#039;VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip&#039;&#039;&#039;&lt;br /&gt;
#* If you have safestrap on the device, turn on the droid4, go to safestrap, reboot, reboot to bootloader&lt;br /&gt;
#* If you do not have safestrap, turn on the device, and issue on the host: &#039;&#039;&#039;adb reboot bootloader&#039;&#039;&#039;&lt;br /&gt;
# Run the &#039;&#039;&#039;flash-droid-4-fw&#039;&#039;&#039; script from the extracted android directory (&#039;&#039;&#039;VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml&#039;&#039;&#039;), run as admin/root if it does not find the device&lt;br /&gt;
# If you get errors while writing the image files, try a better MicroUSB cable.&lt;br /&gt;
# Wait for the flashing script to complete. This can take a few minutes. The droid will reboot a couple of times to the bootloader.&lt;br /&gt;
&lt;br /&gt;
Then go to the &#039;&#039;&#039;droid4-kexecboot&#039;&#039;&#039; directory and run (possibly as sudo):&lt;br /&gt;
&lt;br /&gt;
# fastboot flash mbm path/to/android/zip/allow-mbmloader-flashing-mbm.bin&lt;br /&gt;
# fastboot reboot-bootloader&lt;br /&gt;
# fastboot flash bpsw current/droid4-kexecboot.img&lt;br /&gt;
# fastboot flash utags utags-mmcblk1p13.bin&lt;br /&gt;
&lt;br /&gt;
Then reboot the device (hold the power button for one or two seconds) and &#039;&#039;&#039;wait for it to get through the first boot&#039;&#039;&#039;. It will show a green android with something moving in it&#039;s stomach, as well as a progress bar. Then the device should show kexecboot 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;
# &#039;&#039;&#039;xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE&#039;&#039;&#039;&lt;br /&gt;
# &#039;&#039;&#039;sync&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
On Windows: Use Etcher&lt;br /&gt;
&lt;br /&gt;
Wait for the sync to complete and and insert the SD card into the Droid 4. Reboot the device and select Maemo Leste from the kexecboot menu.&lt;br /&gt;
&lt;br /&gt;
You will now have see Maemo Leste boot up, and show you an unaccelerated hildon-desktop after about one minute.&lt;br /&gt;
&lt;br /&gt;
== Safestrap+ddroid Installation (no longer recommended and outdated) ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; [https://github.com/stargo/android_packages_apps_Safestrap/releases/tag/v3.75 SafeStrap] + [https://github.com/tmlind/ddroid ddroid] from eMMC or SD card &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
PostmarketOS has some information how to install safestrap: [https://wiki.postmarketos.org/wiki/Motorola_Droid_4_(motorola-maserati) in wiki]&lt;br /&gt;
&lt;br /&gt;
Flashing the zip file is quite confusing / tricky:&lt;br /&gt;
&lt;br /&gt;
Boot options, select slot with Leste, Activate.&lt;br /&gt;
&lt;br /&gt;
In main menu: Install, scroll down to select ddroid-....zip file, swipe to confirm flash. You will get error, including &amp;quot;ApplyParsePerms, set_metadata_recursive, Error executing updater binary, Unable to mount.&amp;quot; Red &amp;quot;failed&amp;quot; will appear. These are normal. Proceed by selecting &amp;quot;Reboot System&amp;quot;, you&#039;ll get one more warning that system is not installed, swipe to confirm reboot.&lt;br /&gt;
&lt;br /&gt;
Red motorola logo will appear, press search button to continue boot, phone vibrates, then vibrates again, then green led comes on. After about a minute, console appears, then disappears and X comes to life.&lt;br /&gt;
&lt;br /&gt;
== Kernel development (old and outdated) ==&lt;br /&gt;
&lt;br /&gt;
Linux 4.14 plus patches&lt;br /&gt;
&lt;br /&gt;
Status: http://elektranox.org/droid4/&lt;br /&gt;
&lt;br /&gt;
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Device]]&lt;/div&gt;</summary>
		<author><name>Spinal</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Development&amp;diff=538</id>
		<title>Development</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Development&amp;diff=538"/>
		<updated>2020-01-16T00:08:58Z</updated>

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

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

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

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

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

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

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

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

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

		<summary type="html">&lt;p&gt;Spinal: /* Multiarch */ Fix link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Maemo Leste development is split up in a few different places.&lt;br /&gt;
&lt;br /&gt;
== Communication and organising ==&lt;br /&gt;
&lt;br /&gt;
* Our https://maemo-leste.github.io website is where we post (news) updates, as well as on this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192&lt;br /&gt;
* There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker&lt;br /&gt;
* The day-to-day development and user chatter mostly takes place in the [[IRC channel]] (We might eventually want to switch some discussion to a mailing list, but that has not happened so far. Please raise your voice if this is important to you.)&lt;br /&gt;
* This wiki: for documenting the status of various long-running projects, status per device, etc.&lt;br /&gt;
&lt;br /&gt;
== Technical ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All our git repositories can be found here: https://github.com/maemo-leste&lt;br /&gt;
&lt;br /&gt;
=== Jenkins ===&lt;br /&gt;
&lt;br /&gt;
To aid development and provide &amp;quot;continous integration&amp;quot; we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/&lt;br /&gt;
&lt;br /&gt;
=== Developing on a device ===&lt;br /&gt;
&lt;br /&gt;
Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle users, this might sound weird, but there is essentially no need for a &#039;scratchbox&#039; type VM)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]].&lt;br /&gt;
&lt;br /&gt;
=== Multiarch ===&lt;br /&gt;
&lt;br /&gt;
Multiarch is ability present on modern Debian systems that allows you to develop for Maemo Leste using your PC/Mac/Notebook etc.&lt;br /&gt;
&lt;br /&gt;
Here we show how you can easily setup multiarch environment and build some packages on a Debian system.&lt;br /&gt;
This can be adapted to develop on other systems as well. If you have such experience, please feel free to expand this section to help more people be involved in Maemo Leste development.&lt;br /&gt;
&lt;br /&gt;
 # Make a container for our development system&lt;br /&gt;
 DIR=/var/lib/container/stretch&lt;br /&gt;
 sudo apt-get install qemu-user-static debootstrap &amp;amp;&amp;amp;&lt;br /&gt;
 sudo debootstrap stretch $DIR http://deb.debian.org/debian &amp;amp;&amp;amp;&lt;br /&gt;
 echo &amp;quot;strech_cross&amp;quot; | sudo tee $DIR/etc/debian_chroot &amp;amp;&amp;amp;&lt;br /&gt;
 sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR&lt;br /&gt;
 &lt;br /&gt;
 # Setup build environment inside the container&lt;br /&gt;
 cat &amp;gt;&amp;gt; ~/.bashrc &amp;lt;&amp;lt; EOF &amp;amp;&amp;amp;&lt;br /&gt;
 export PKG_CONFIG_PATH=/usr/lib/pkgconfig&lt;br /&gt;
 export CC=arm-linux-gnueabihf-gcc&lt;br /&gt;
 EOF&lt;br /&gt;
 dpkg --add-architecture armhf &amp;amp;&amp;amp;&lt;br /&gt;
 apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates &amp;amp;&amp;amp;&lt;br /&gt;
 cat &amp;gt;&amp;gt; /etc/apt/sources.list &amp;lt;&amp;lt; &amp;quot;EOF&amp;quot; &amp;amp;&amp;amp;&lt;br /&gt;
 deb http://maedevu.maemo.org/leste leste main contrib non-free n900&lt;br /&gt;
 deb http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900&lt;br /&gt;
 &lt;br /&gt;
 deb-src http://deb.debian.org/debian stretch main&lt;br /&gt;
 deb-src http://maedevu.maemo.org/leste leste main contrib non-free n900&lt;br /&gt;
 deb-src http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900&lt;br /&gt;
 EOF&lt;br /&gt;
 wget https://maedevu.maemo.org/testing-key.asc &amp;amp;&amp;amp;&lt;br /&gt;
 apt-key add testing-key.asc &amp;amp;&amp;amp;&lt;br /&gt;
 rm -f testing-key.asc &amp;amp;&amp;amp;&lt;br /&gt;
 rm -f /var/cache/apt/archives/*.deb &amp;amp;&amp;amp;&lt;br /&gt;
 apt-get update &amp;amp;&amp;amp;&lt;br /&gt;
 exec bash&lt;br /&gt;
 &lt;br /&gt;
 # Build Xorg for Nokia N900&lt;br /&gt;
 apt-get source xserver-xorg-core &amp;amp;&amp;amp;&lt;br /&gt;
 cd xorg-server-1.19.2 &amp;amp;&amp;amp;&lt;br /&gt;
 wget https://raw.githubusercontent.com/buildroot/buildroot/88e0f214dcb7c2a99a4425a70673d2aa5f48d720/package/x11r7/xserver_xorg-server/1.20.4/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch &amp;amp;&amp;amp;&lt;br /&gt;
 mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches &amp;amp;&amp;amp;&lt;br /&gt;
 echo -e &amp;quot;# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch&amp;quot; &amp;gt;&amp;gt; debian/patches/series &amp;amp;&amp;amp;&lt;br /&gt;
 apt-get -y build-dep -a armhf . &amp;amp;&amp;amp;&lt;br /&gt;
 time dpkg-buildpackage -aarmhf -j4 -b &amp;amp;&amp;amp;&lt;br /&gt;
 echo OK || echo FAIL&lt;br /&gt;
&lt;br /&gt;
To login the container later, issue the command:&lt;br /&gt;
 sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch&lt;br /&gt;
If you wish to remove the container, just delete the directory we created:&lt;br /&gt;
 sudo rm -fr /var/lib/container/stretch&lt;br /&gt;
&lt;br /&gt;
=== TODO ===&lt;br /&gt;
&lt;br /&gt;
* Discuss where people look to pick up issues (clear answer is the bugtracker, but still)&lt;br /&gt;
* How people can make changes and how to send them in&lt;/div&gt;</summary>
		<author><name>Spinal</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Motorola_Droid_4&amp;diff=331</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=331"/>
		<updated>2019-03-11T16:13:58Z</updated>

		<summary type="html">&lt;p&gt;Spinal: /* Installation using kexecboot */ Optimize flashing image to sdcard command sequence&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Device&lt;br /&gt;
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]&lt;br /&gt;
|manufacturer=Motorola&lt;br /&gt;
|codename=Maserati&lt;br /&gt;
|dimensions=&lt;br /&gt;
|release_date=&lt;br /&gt;
|soc=&lt;br /&gt;
|dram=&lt;br /&gt;
|power=&lt;br /&gt;
|lcd=&lt;br /&gt;
|video=&lt;br /&gt;
|audio=&lt;br /&gt;
|network=&lt;br /&gt;
|storage=&lt;br /&gt;
|usb=&lt;br /&gt;
|camera=&lt;br /&gt;
|sensors=&lt;br /&gt;
|other=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
Also see: http://elektranox.org/droid4/&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.0 || Mainline + some patches not yet in mainline&lt;br /&gt;
|-&lt;br /&gt;
| Serial || Yes || On MicroUSB port, requires special cable&lt;br /&gt;
|-&lt;br /&gt;
| Charging || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Wireless || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Ethernet || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| Micro USB || Yes || OTG&lt;br /&gt;
|-&lt;br /&gt;
| Keyboard || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Screen || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| 3D Acceleration || Not yet || Also PowerVR - see [[Motorola Droid 4/PowerVR]]&lt;br /&gt;
|-&lt;br /&gt;
| Touchscreen || Yes || Capacitive&lt;br /&gt;
|-&lt;br /&gt;
| Audio || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| 2G/3G data || WIP || Reported to work, no UI, requires extra software, ofono patches, kernel patches&lt;br /&gt;
|-&lt;br /&gt;
| SMS || WIP || Reported to work, no UI, requires extra software, ofono patches, kernel patches&lt;br /&gt;
|-&lt;br /&gt;
| Phone calls || WIP || Reported to work, no UI, requires extra software, ofono patches, kernel patches&lt;br /&gt;
|-&lt;br /&gt;
| FM Transmitter || N/A? ||&lt;br /&gt;
|-&lt;br /&gt;
| FM Receiver || ? ||&lt;br /&gt;
|-&lt;br /&gt;
| Accelerometer || ? || Available as input device, needs MCE work&lt;br /&gt;
|-&lt;br /&gt;
| Proximity sensor || ? || &lt;br /&gt;
|-&lt;br /&gt;
| HDMI-out || WIP || works, but not with hildon-desktop&lt;br /&gt;
|-&lt;br /&gt;
| TV-out || N/A ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Installation using kexecboot ==&lt;br /&gt;
&lt;br /&gt;
This procedure will erase existing android and/or safestrap.&lt;br /&gt;
&lt;br /&gt;
Requirements:&lt;br /&gt;
&lt;br /&gt;
* MicroSD card, MicroUSB cable and Droid4&lt;br /&gt;
* Charged Droid4&lt;br /&gt;
* fastboot, adb and git, xzcat, dd&lt;br /&gt;
* Host Linux system&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 &#039;&#039;&#039;maemo-leste-1.0-armhf-droid4-*.img.xz&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
And clone:&lt;br /&gt;
&lt;br /&gt;
* https://github.com/tmlind/droid4-kexecboot.git&lt;br /&gt;
briefly show kexecboot.&lt;br /&gt;
Installation:&lt;br /&gt;
&lt;br /&gt;
# Power off Droid4&lt;br /&gt;
# Create a working directory with above mentioned files in it&lt;br /&gt;
# unzip &#039;&#039;&#039;VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip&#039;&#039;&#039;&lt;br /&gt;
#* If you have safestrap on the device, turn on the droid4, go to safestrap, reboot, reboot to bootloader&lt;br /&gt;
#* If you do not have safestrap, turn on the device, and issue on the host: &#039;&#039;&#039;adb reboot bootloader&#039;&#039;&#039;&lt;br /&gt;
# Run the &#039;&#039;&#039;flash-droid-4-fw.sh&#039;&#039;&#039; script from the extracted android directory (&#039;&#039;&#039;VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml&#039;&#039;&#039;), run as sudo if it does not find the device&lt;br /&gt;
# Wait for the flashing script to complete. This can take a few minutes. The droid will reboot a couple of times to the bootloader.&lt;br /&gt;
&lt;br /&gt;
Then go to the &#039;&#039;&#039;droid4-kexecboot&#039;&#039;&#039; directory and run (possibly as sudo):&lt;br /&gt;
&lt;br /&gt;
# fastboot flash mbm path/to/android/zip/allow-mbmloader-flashing-mbm.bin&lt;br /&gt;
# fastboot reboot-bootloader&lt;br /&gt;
# fastboot flash bpsw current/droid4-kexecboot.img&lt;br /&gt;
# fastboot flash utags utags-mmcblk1p13.bin&lt;br /&gt;
&lt;br /&gt;
Then reboot the device (hold the power button for one or two seconds) and &#039;&#039;&#039;wait for it to get through the first boot&#039;&#039;&#039;. It will show a green android with something moving in it&#039;s stomach, as well as a progress bar. Then the device should show kexecboot for a few seconds before it boots to Android.&lt;br /&gt;
&lt;br /&gt;
Now, flash the Maemo Leste image to your sdcard, this is how I did it:&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;xzcat maemo-leste-1.0-armhf-droid4-20190227.img.xz | sudo dd of=/dev/MICROSDCARD-DEVICE&#039;&#039;&#039;&lt;br /&gt;
# &#039;&#039;&#039;sync&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wait for the sync to complete and and insert the SD card into the Droid 4. Reboot the device and select Maemo Leste from the kexecboot menu.&lt;br /&gt;
&lt;br /&gt;
You will now have see Maemo Leste boot up, and show you an unaccelerated hildon-desktop after about one minute.&lt;br /&gt;
&lt;br /&gt;
== Safestrap+ddroid Installation (no longer recommended and outdated) ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; [https://github.com/stargo/android_packages_apps_Safestrap/releases/tag/v3.75 SafeStrap] + [https://github.com/tmlind/ddroid ddroid] from eMMC or SD card &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
PostmarketOS has some information how to install safestrap: [https://wiki.postmarketos.org/wiki/Motorola_Droid_4_(motorola-maserati) in wiki]&lt;br /&gt;
&lt;br /&gt;
(This is the boot method currently being used but we&#039;ll probably replace this with [https://github.com/tmlind/droid4-kexecboot droid4-kexecboot] to aid kernel updates via deb package)&lt;br /&gt;
&lt;br /&gt;
Flashing the zip file is quite confusing / tricky:&lt;br /&gt;
&lt;br /&gt;
Boot options, select slot with Leste, Activate.&lt;br /&gt;
&lt;br /&gt;
In main menu: Install, scroll down to select ddroid-....zip file, swipe to confirm flash. You will get error, including &amp;quot;ApplyParsePerms, set_metadata_recursive, Error executing updater binary, Unable to mount.&amp;quot; Red &amp;quot;failed&amp;quot; will appear. These are normal. Proceed by selecting &amp;quot;Reboot System&amp;quot;, you&#039;ll get one more warning that system is not installed, swipe to confirm reboot.&lt;br /&gt;
&lt;br /&gt;
Red motorola logo will appear, press search button to continue boot, phone vibrates, then vibrates again, then green led comes on. After about a minute, console appears, then disappears and X comes to life.&lt;br /&gt;
&lt;br /&gt;
== Kernel development (old and outdated) ==&lt;br /&gt;
&lt;br /&gt;
Linux 4.14 plus patches&lt;br /&gt;
&lt;br /&gt;
Status: http://elektranox.org/droid4/&lt;br /&gt;
&lt;br /&gt;
Sources: [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y linux-stable 4.14.y], [https://github.com/parazyd/arm-sdk/tree/master/extra/patches/linux-droid4-patches patches]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Device]]&lt;/div&gt;</summary>
		<author><name>Spinal</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Development&amp;diff=326</id>
		<title>Development</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Development&amp;diff=326"/>
		<updated>2019-03-05T16:40:44Z</updated>

		<summary type="html">&lt;p&gt;Spinal: /* Multiarch */ Add sudo to rm command&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Maemo Leste development is split up in a few different places.&lt;br /&gt;
&lt;br /&gt;
== Communication and organising ==&lt;br /&gt;
&lt;br /&gt;
* Our https://maemo-leste.github.io website is where we post (news) updates, as well as on this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192&lt;br /&gt;
* There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker&lt;br /&gt;
* The day-to-day development and user chatter mostly takes place in the [[IRC channel]] (We might eventually want to switch some discussion to a mailing list, but that has not happened so far. Please raise your voice if this is important to you.)&lt;br /&gt;
* This wiki: for documenting the status of various long-running projects, status per device, etc.&lt;br /&gt;
&lt;br /&gt;
== Technical ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All our git repositories can be found here: https://github.com/maemo-leste&lt;br /&gt;
&lt;br /&gt;
=== Jenkins ===&lt;br /&gt;
&lt;br /&gt;
To aid development and provide &amp;quot;continous integration&amp;quot; we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/&lt;br /&gt;
&lt;br /&gt;
=== Developing on a device ===&lt;br /&gt;
&lt;br /&gt;
Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle users, this might sound weird, but there is essentially no need for a &#039;scratchbox&#039; type VM)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]].&lt;br /&gt;
&lt;br /&gt;
=== Multiarch ===&lt;br /&gt;
&lt;br /&gt;
Multiarch is ability present on modern Debian systems that allows you to develop for Maemo Leste using your PC/Mac/Notebook etc.&lt;br /&gt;
&lt;br /&gt;
Here we show how you can easily setup multiarch environment and build some packages on a Debian system.&lt;br /&gt;
This can be adapted to develop on other systems as well. If you have such experience, please feel free to expand this section to help more people be involved in Maemo Leste development.&lt;br /&gt;
&lt;br /&gt;
 # Make a container for our development system&lt;br /&gt;
 DIR=/var/lib/container/stretch&lt;br /&gt;
 sudo apt-get install qemu-user-static debootstrap &amp;amp;&amp;amp;&lt;br /&gt;
 sudo debootstrap stretch $DIR http://deb.debian.org/debian &amp;amp;&amp;amp;&lt;br /&gt;
 echo &amp;quot;strech_cross&amp;quot; | sudo tee $DIR/etc/debian_chroot &amp;amp;&amp;amp;&lt;br /&gt;
 sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR&lt;br /&gt;
 &lt;br /&gt;
 # Setup build environment inside the container&lt;br /&gt;
 cat &amp;gt;&amp;gt; ~/.bashrc &amp;lt;&amp;lt; EOF &amp;amp;&amp;amp;&lt;br /&gt;
 export PKG_CONFIG_PATH=/usr/lib/pkgconfig&lt;br /&gt;
 export CC=arm-linux-gnueabihf-gcc&lt;br /&gt;
 EOF&lt;br /&gt;
 dpkg --add-architecture armhf &amp;amp;&amp;amp;&lt;br /&gt;
 apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates &amp;amp;&amp;amp;&lt;br /&gt;
 cat &amp;gt;&amp;gt; /etc/apt/sources.list &amp;lt;&amp;lt; &amp;quot;EOF&amp;quot; &amp;amp;&amp;amp;&lt;br /&gt;
 deb http://maedevu.maemo.org/leste leste main contrib non-free n900&lt;br /&gt;
 deb http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900&lt;br /&gt;
 &lt;br /&gt;
 deb-src http://deb.debian.org/debian stretch main&lt;br /&gt;
 deb-src http://maedevu.maemo.org/leste leste main contrib non-free n900&lt;br /&gt;
 deb-src http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900&lt;br /&gt;
 EOF&lt;br /&gt;
 wget https://maedevu.maemo.org/testing-key.asc &amp;amp;&amp;amp;&lt;br /&gt;
 apt-key add testing-key.asc &amp;amp;&amp;amp;&lt;br /&gt;
 rm -f testing-key.asc &amp;amp;&amp;amp;&lt;br /&gt;
 rm -f /var/cache/apt/archives/*.deb &amp;amp;&amp;amp;&lt;br /&gt;
 apt-get update &amp;amp;&amp;amp;&lt;br /&gt;
 exec bash&lt;br /&gt;
 &lt;br /&gt;
 # Build Xorg for Nokia N900&lt;br /&gt;
 apt-get source xserver-xorg-core &amp;amp;&amp;amp;&lt;br /&gt;
 cd xorg-server-1.19.2 &amp;amp;&amp;amp;&lt;br /&gt;
 wget https://raw.githubusercontent.com/buildroot/buildroot/master/package/x11r7/xserver_xorg-server/1.20.3/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch &amp;amp;&amp;amp;&lt;br /&gt;
 mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches &amp;amp;&amp;amp;&lt;br /&gt;
 echo -e &amp;quot;# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch&amp;quot; &amp;gt;&amp;gt; debian/patches/series &amp;amp;&amp;amp;&lt;br /&gt;
 apt-get -y build-dep -a armhf . &amp;amp;&amp;amp;&lt;br /&gt;
 time dpkg-buildpackage -aarmhf -j4 -b &amp;amp;&amp;amp;&lt;br /&gt;
 echo OK || echo FAIL&lt;br /&gt;
&lt;br /&gt;
To login the container later, issue the command:&lt;br /&gt;
 sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch&lt;br /&gt;
If you wish to remove the container, just delete the directory we created:&lt;br /&gt;
 sudo rm -fr /var/lib/container/stretch&lt;br /&gt;
&lt;br /&gt;
=== TODO ===&lt;br /&gt;
&lt;br /&gt;
* Discuss where people look to pick up issues (clear answer is the bugtracker, but still)&lt;br /&gt;
* How people can make changes and how to send them in&lt;/div&gt;</summary>
		<author><name>Spinal</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Development&amp;diff=325</id>
		<title>Development</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Development&amp;diff=325"/>
		<updated>2019-03-05T16:38:56Z</updated>

		<summary type="html">&lt;p&gt;Spinal: /* Multiarch */ Minor fix&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Maemo Leste development is split up in a few different places.&lt;br /&gt;
&lt;br /&gt;
== Communication and organising ==&lt;br /&gt;
&lt;br /&gt;
* Our https://maemo-leste.github.io website is where we post (news) updates, as well as on this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192&lt;br /&gt;
* There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker&lt;br /&gt;
* The day-to-day development and user chatter mostly takes place in the [[IRC channel]] (We might eventually want to switch some discussion to a mailing list, but that has not happened so far. Please raise your voice if this is important to you.)&lt;br /&gt;
* This wiki: for documenting the status of various long-running projects, status per device, etc.&lt;br /&gt;
&lt;br /&gt;
== Technical ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All our git repositories can be found here: https://github.com/maemo-leste&lt;br /&gt;
&lt;br /&gt;
=== Jenkins ===&lt;br /&gt;
&lt;br /&gt;
To aid development and provide &amp;quot;continous integration&amp;quot; we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/&lt;br /&gt;
&lt;br /&gt;
=== Developing on a device ===&lt;br /&gt;
&lt;br /&gt;
Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle users, this might sound weird, but there is essentially no need for a &#039;scratchbox&#039; type VM)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]].&lt;br /&gt;
&lt;br /&gt;
=== Multiarch ===&lt;br /&gt;
&lt;br /&gt;
Multiarch is ability present on modern Debian systems that allows you to develop for Maemo Leste using your PC/Mac/Notebook etc.&lt;br /&gt;
&lt;br /&gt;
Here we show how you can easily setup multiarch environment and build some packages on a Debian system.&lt;br /&gt;
This can be adapted to develop on other systems as well. If you have such experience, please feel free to expand this section to help more people be involved in Maemo Leste development.&lt;br /&gt;
&lt;br /&gt;
 # Make a container for our development system&lt;br /&gt;
 DIR=/var/lib/container/stretch&lt;br /&gt;
 sudo apt-get install qemu-user-static debootstrap &amp;amp;&amp;amp;&lt;br /&gt;
 sudo debootstrap stretch $DIR http://deb.debian.org/debian &amp;amp;&amp;amp;&lt;br /&gt;
 echo &amp;quot;strech_cross&amp;quot; | sudo tee $DIR/etc/debian_chroot &amp;amp;&amp;amp;&lt;br /&gt;
 sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR&lt;br /&gt;
 &lt;br /&gt;
 # Setup build environment inside the container&lt;br /&gt;
 cat &amp;gt;&amp;gt; ~/.bashrc &amp;lt;&amp;lt; EOF &amp;amp;&amp;amp;&lt;br /&gt;
 export PKG_CONFIG_PATH=/usr/lib/pkgconfig&lt;br /&gt;
 export CC=arm-linux-gnueabihf-gcc&lt;br /&gt;
 EOF&lt;br /&gt;
 dpkg --add-architecture armhf &amp;amp;&amp;amp;&lt;br /&gt;
 apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates &amp;amp;&amp;amp;&lt;br /&gt;
 cat &amp;gt;&amp;gt; /etc/apt/sources.list &amp;lt;&amp;lt; &amp;quot;EOF&amp;quot; &amp;amp;&amp;amp;&lt;br /&gt;
 deb http://maedevu.maemo.org/leste leste main contrib non-free n900&lt;br /&gt;
 deb http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900&lt;br /&gt;
 &lt;br /&gt;
 deb-src http://deb.debian.org/debian stretch main&lt;br /&gt;
 deb-src http://maedevu.maemo.org/leste leste main contrib non-free n900&lt;br /&gt;
 deb-src http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900&lt;br /&gt;
 EOF&lt;br /&gt;
 wget https://maedevu.maemo.org/testing-key.asc &amp;amp;&amp;amp;&lt;br /&gt;
 apt-key add testing-key.asc &amp;amp;&amp;amp;&lt;br /&gt;
 rm -f testing-key.asc &amp;amp;&amp;amp;&lt;br /&gt;
 rm -f /var/cache/apt/archives/*.deb &amp;amp;&amp;amp;&lt;br /&gt;
 apt-get update &amp;amp;&amp;amp;&lt;br /&gt;
 exec bash&lt;br /&gt;
 &lt;br /&gt;
 # Build Xorg for Nokia N900&lt;br /&gt;
 apt-get source xserver-xorg-core &amp;amp;&amp;amp;&lt;br /&gt;
 cd xorg-server-1.19.2 &amp;amp;&amp;amp;&lt;br /&gt;
 wget https://raw.githubusercontent.com/buildroot/buildroot/master/package/x11r7/xserver_xorg-server/1.20.3/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch &amp;amp;&amp;amp;&lt;br /&gt;
 mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches &amp;amp;&amp;amp;&lt;br /&gt;
 echo -e &amp;quot;# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch&amp;quot; &amp;gt;&amp;gt; debian/patches/series &amp;amp;&amp;amp;&lt;br /&gt;
 apt-get -y build-dep -a armhf . &amp;amp;&amp;amp;&lt;br /&gt;
 time dpkg-buildpackage -aarmhf -j4 -b &amp;amp;&amp;amp;&lt;br /&gt;
 echo OK || echo FAIL&lt;br /&gt;
&lt;br /&gt;
To login the container later, issue the command:&lt;br /&gt;
 sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch&lt;br /&gt;
If you wish to remove the container, just delete the directory we created:&lt;br /&gt;
 rm -fr /var/lib/container/stretch&lt;br /&gt;
&lt;br /&gt;
=== TODO ===&lt;br /&gt;
&lt;br /&gt;
* Discuss where people look to pick up issues (clear answer is the bugtracker, but still)&lt;br /&gt;
* How people can make changes and how to send them in&lt;/div&gt;</summary>
		<author><name>Spinal</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Development&amp;diff=324</id>
		<title>Development</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Development&amp;diff=324"/>
		<updated>2019-03-05T16:37:03Z</updated>

		<summary type="html">&lt;p&gt;Spinal: Add &amp;quot;Multiarch&amp;quot; section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Maemo Leste development is split up in a few different places.&lt;br /&gt;
&lt;br /&gt;
== Communication and organising ==&lt;br /&gt;
&lt;br /&gt;
* Our https://maemo-leste.github.io website is where we post (news) updates, as well as on this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192&lt;br /&gt;
* There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker&lt;br /&gt;
* The day-to-day development and user chatter mostly takes place in the [[IRC channel]] (We might eventually want to switch some discussion to a mailing list, but that has not happened so far. Please raise your voice if this is important to you.)&lt;br /&gt;
* This wiki: for documenting the status of various long-running projects, status per device, etc.&lt;br /&gt;
&lt;br /&gt;
== Technical ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All our git repositories can be found here: https://github.com/maemo-leste&lt;br /&gt;
&lt;br /&gt;
=== Jenkins ===&lt;br /&gt;
&lt;br /&gt;
To aid development and provide &amp;quot;continous integration&amp;quot; we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/&lt;br /&gt;
&lt;br /&gt;
=== Developing on a device ===&lt;br /&gt;
&lt;br /&gt;
Actual development is mostly done from within Maemo Leste itself. (For Maemo Fremantle users, this might sound weird, but there is essentially no need for a &#039;scratchbox&#039; type VM)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]].&lt;br /&gt;
&lt;br /&gt;
=== Multiarch ===&lt;br /&gt;
&lt;br /&gt;
Multiarch is ability present on modern Debian systems that allows you to develop for Maemo Leste using your PC/Mac/Notebook etc.&lt;br /&gt;
&lt;br /&gt;
Here we show how you can easily setup multiarch environment and build some packages on a Debian system.&lt;br /&gt;
This can be adapted to develop on other systems as well. If you have such experience, please feel free to expand this section to help more people be involved in Maemo Leste development.&lt;br /&gt;
&lt;br /&gt;
 # Make a container for our development system&lt;br /&gt;
 DIR=/var/lib/container/stretch&lt;br /&gt;
 sudo apt-get install qemu-user-static debootstrap &amp;amp;&amp;amp;&lt;br /&gt;
 sudo debootstrap stretch $DIR http://deb.debian.org/debian &amp;amp;&amp;amp;&lt;br /&gt;
 echo &amp;quot;strech_cross&amp;quot; | sudo tee $DIR/etc/debian_chroot &amp;amp;&amp;amp;&lt;br /&gt;
 sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR&lt;br /&gt;
 &lt;br /&gt;
 # Setup build environment inside the container&lt;br /&gt;
 cat &amp;gt;&amp;gt; ~/.bashrc &amp;lt;&amp;lt; EOF &amp;amp;&amp;amp;&lt;br /&gt;
 export PKG_CONFIG_PATH=/usr/lib/pkgconfig&lt;br /&gt;
 export CC=arm-linux-gnueabihf-gcc&lt;br /&gt;
 EOF&lt;br /&gt;
 dpkg --add-architecture armhf &amp;amp;&amp;amp;&lt;br /&gt;
 apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates &amp;amp;&amp;amp;&lt;br /&gt;
 cat &amp;gt;&amp;gt; /etc/apt/sources.list &amp;lt;&amp;lt; &amp;quot;EOF&amp;quot; &amp;amp;&amp;amp;&lt;br /&gt;
 deb http://maedevu.maemo.org/leste leste main contrib non-free n900&lt;br /&gt;
 deb http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900&lt;br /&gt;
 &lt;br /&gt;
 deb-src http://deb.debian.org/debian stretch main&lt;br /&gt;
 deb-src http://maedevu.maemo.org/leste leste main contrib non-free n900&lt;br /&gt;
 deb-src http://maedevu.maemo.org/leste-devel leste-devel main contrib non-free n900&lt;br /&gt;
 EOF&lt;br /&gt;
 wget https://maedevu.maemo.org/testing-key.asc &amp;amp;&amp;amp;&lt;br /&gt;
 apt-key add testing-key.asc &amp;amp;&amp;amp;&lt;br /&gt;
 rm -f testing-key.asc &amp;amp;&amp;amp;&lt;br /&gt;
 rm -f /var/cache/apt/archives/*.deb &amp;amp;&amp;amp;&lt;br /&gt;
 apt-get update &amp;amp;&amp;amp;&lt;br /&gt;
 exec bash&lt;br /&gt;
 &lt;br /&gt;
 # Build Xorg for Nokia N900&lt;br /&gt;
 apt-get source xserver-xorg-core &amp;amp;&amp;amp;&lt;br /&gt;
 cd xorg-server-1.19.2 &amp;amp;&amp;amp;&lt;br /&gt;
 wget https://raw.githubusercontent.com/buildroot/buildroot/master/package/x11r7/xserver_xorg-server/1.20.3/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch &amp;amp;&amp;amp;&lt;br /&gt;
 mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches &amp;amp;&amp;amp;&lt;br /&gt;
 echo -e &amp;quot;# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch&amp;quot; &amp;gt;&amp;gt; debian/patches/series &amp;amp;&amp;amp;&lt;br /&gt;
 apt-get -y build-dep -a armhf . &amp;amp;&amp;amp;&lt;br /&gt;
 time dpkg-buildpackage -aarmhf -j4 -b &amp;amp;&amp;amp;&lt;br /&gt;
 echo OK || echo FAIL&lt;br /&gt;
&lt;br /&gt;
To login the container later just issue the command:&lt;br /&gt;
 sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch&lt;br /&gt;
If you wish to remove the container, just delete the directory we created:&lt;br /&gt;
 rm -fr /var/lib/container/stretch&lt;br /&gt;
&lt;br /&gt;
=== TODO ===&lt;br /&gt;
&lt;br /&gt;
* Discuss where people look to pick up issues (clear answer is the bugtracker, but still)&lt;br /&gt;
* How people can make changes and how to send them in&lt;/div&gt;</summary>
		<author><name>Spinal</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Nokia_N900&amp;diff=316</id>
		<title>Nokia N900</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Nokia_N900&amp;diff=316"/>
		<updated>2019-01-05T06:07:37Z</updated>

		<summary type="html">&lt;p&gt;Spinal: Add &amp;quot;Accessing MTD&amp;quot; section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Device&lt;br /&gt;
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]&lt;br /&gt;
|manufacturer=Nokia&lt;br /&gt;
|codename=&lt;br /&gt;
|dimensions=&lt;br /&gt;
|release_date=&lt;br /&gt;
|soc=&lt;br /&gt;
|dram=&lt;br /&gt;
|power=&lt;br /&gt;
|lcd=&lt;br /&gt;
|video=&lt;br /&gt;
|audio=&lt;br /&gt;
|network=&lt;br /&gt;
|storage=&lt;br /&gt;
|usb=Micro USB 2.0 Slave&lt;br /&gt;
|camera=&lt;br /&gt;
|sensors=&lt;br /&gt;
|other=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The original Nokia N900.&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
* Screen will be black for a few minutes while starting X - this is a known PowerVR issue. Just wait it out - it might freeze once more for a few minutes, but then will function OKayish&lt;br /&gt;
* If your battery is not calibrated, the battery applet will not give you accurate/good data. Charge the battery fully, and then let it discharge (almost) completely.&lt;br /&gt;
* Speakers are enabled by default, but don&#039;t overuse them, as you might fry them if you are not careful.&lt;br /&gt;
&lt;br /&gt;
Also see: https://elinux.org/N900&lt;br /&gt;
&lt;br /&gt;
Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this 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;
== Status ==&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 || 4.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip&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 ||&lt;br /&gt;
|-&lt;br /&gt;
| Ethernet || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| Bluetooth || Not yet || Driver problems in mainline&lt;br /&gt;
|-&lt;br /&gt;
| (Micro USB) || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested&lt;br /&gt;
|-&lt;br /&gt;
| Keyboard || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Screen || Yes || Uses omapfb, not omapdrmfb yet&lt;br /&gt;
|-&lt;br /&gt;
| 3D Acceleration || WIP || Works, but could be faster/better, https://github.com/maemo-leste/n9xx-xf86-video-fbdev-sgx&lt;br /&gt;
|-&lt;br /&gt;
| Touchscreen || Yes || Resistive&lt;br /&gt;
|-&lt;br /&gt;
| Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration&lt;br /&gt;
|-&lt;br /&gt;
| 2G/3G data || WIP || Works with ofono; but no work has been done on any integration; see https://github.com/maemo-leste/bugtracker/issues/61 and https://github.com/maemo-leste/bugtracker/issues/76&lt;br /&gt;
|-&lt;br /&gt;
| SMS || WIP || Works with ofono, no UI, not enabled by default&lt;br /&gt;
|-&lt;br /&gt;
| Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters)&lt;br /&gt;
|-&lt;br /&gt;
| FM Transmitter || Not yet ||&lt;br /&gt;
|-&lt;br /&gt;
| FM Receiver || Not yet || Depends on Bluetooth&lt;br /&gt;
|-&lt;br /&gt;
| Accelerometer || Not yet || Available as input device, needs MCE work&lt;br /&gt;
|-&lt;br /&gt;
| Proximity sensor || Not yet || &lt;br /&gt;
|-&lt;br /&gt;
| HDMI-out || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| TV-out || Not yet || Should work in kernel, didn&#039;t get it to work yet&lt;br /&gt;
|-&lt;br /&gt;
| GPS || WIP || Works using gps3 and gpsd&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Images: http://maedevu.maemo.org/images/n900/&lt;br /&gt;
&lt;br /&gt;
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] &#039;&#039;&#039;NB:&#039;&#039;&#039; Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to&lt;br /&gt;
&lt;br /&gt;
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613&lt;br /&gt;
&lt;br /&gt;
=== U-Boot setup ===&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;vfat&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;
=== Increase filesystem size ===&lt;br /&gt;
As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough.&lt;br /&gt;
Perform the following steps on a Linux machine with none of the SD card&#039;s partitions mounted:&lt;br /&gt;
* assumption: /dev/sda2 is Leste root partition&lt;br /&gt;
* e2fsck -f /dev/sda2&lt;br /&gt;
* use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size&lt;br /&gt;
* resize2fs -p /dev/sda2&lt;br /&gt;
* e2fsck -f /dev/sda2&lt;br /&gt;
&lt;br /&gt;
The latest images have a script, &amp;lt;code&amp;gt;/etc/expandcard.sh&amp;lt;/code&amp;gt; from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh&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;
== 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;
[[Category:Device]]&lt;/div&gt;</summary>
		<author><name>Spinal</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Nokia_N900&amp;diff=315</id>
		<title>Nokia N900</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Nokia_N900&amp;diff=315"/>
		<updated>2019-01-04T00:02:45Z</updated>

		<summary type="html">&lt;p&gt;Spinal: Change sections format back&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Device&lt;br /&gt;
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]&lt;br /&gt;
|manufacturer=Nokia&lt;br /&gt;
|codename=&lt;br /&gt;
|dimensions=&lt;br /&gt;
|release_date=&lt;br /&gt;
|soc=&lt;br /&gt;
|dram=&lt;br /&gt;
|power=&lt;br /&gt;
|lcd=&lt;br /&gt;
|video=&lt;br /&gt;
|audio=&lt;br /&gt;
|network=&lt;br /&gt;
|storage=&lt;br /&gt;
|usb=Micro USB 2.0 Slave&lt;br /&gt;
|camera=&lt;br /&gt;
|sensors=&lt;br /&gt;
|other=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The original Nokia N900.&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
* Screen will be black for a few minutes while starting X - this is a known PowerVR issue. Just wait it out - it might freeze once more for a few minutes, but then will function OKayish&lt;br /&gt;
* If your battery is not calibrated, the battery applet will not give you accurate/good data. Charge the battery fully, and then let it discharge (almost) completely.&lt;br /&gt;
* Speakers are enabled by default, but don&#039;t overuse them, as you might fry them if you are not careful.&lt;br /&gt;
&lt;br /&gt;
Also see: https://elinux.org/N900&lt;br /&gt;
&lt;br /&gt;
Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this 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;
== Status ==&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 || 4.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip&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 ||&lt;br /&gt;
|-&lt;br /&gt;
| Ethernet || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| Bluetooth || Not yet || Driver problems in mainline&lt;br /&gt;
|-&lt;br /&gt;
| (Micro USB) || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested&lt;br /&gt;
|-&lt;br /&gt;
| Keyboard || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Screen || Yes || Uses omapfb, not omapdrmfb yet&lt;br /&gt;
|-&lt;br /&gt;
| 3D Acceleration || WIP || Works, but could be faster/better, https://github.com/maemo-leste/n9xx-xf86-video-fbdev-sgx&lt;br /&gt;
|-&lt;br /&gt;
| Touchscreen || Yes || Resistive&lt;br /&gt;
|-&lt;br /&gt;
| Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration&lt;br /&gt;
|-&lt;br /&gt;
| 2G/3G data || WIP || Works with ofono; but no work has been done on any integration; see https://github.com/maemo-leste/bugtracker/issues/61 and https://github.com/maemo-leste/bugtracker/issues/76&lt;br /&gt;
|-&lt;br /&gt;
| SMS || WIP || Works with ofono, no UI, not enabled by default&lt;br /&gt;
|-&lt;br /&gt;
| Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters)&lt;br /&gt;
|-&lt;br /&gt;
| FM Transmitter || Not yet ||&lt;br /&gt;
|-&lt;br /&gt;
| FM Receiver || Not yet || Depends on Bluetooth&lt;br /&gt;
|-&lt;br /&gt;
| Accelerometer || Not yet || Available as input device, needs MCE work&lt;br /&gt;
|-&lt;br /&gt;
| Proximity sensor || Not yet || &lt;br /&gt;
|-&lt;br /&gt;
| HDMI-out || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| TV-out || Not yet || Should work in kernel, didn&#039;t get it to work yet&lt;br /&gt;
|-&lt;br /&gt;
| GPS || WIP || Works using gps3 and gpsd&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Images: http://maedevu.maemo.org/images/n900/&lt;br /&gt;
&lt;br /&gt;
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] &#039;&#039;&#039;NB:&#039;&#039;&#039; Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to&lt;br /&gt;
&lt;br /&gt;
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613&lt;br /&gt;
&lt;br /&gt;
=== U-Boot setup ===&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;vfat&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;
=== Increase filesystem size ===&lt;br /&gt;
As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough.&lt;br /&gt;
Perform the following steps on a Linux machine with none of the SD card&#039;s partitions mounted:&lt;br /&gt;
* assumption: /dev/sda2 is Leste root partition&lt;br /&gt;
* e2fsck -f /dev/sda2&lt;br /&gt;
* use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size&lt;br /&gt;
* resize2fs -p /dev/sda2&lt;br /&gt;
* e2fsck -f /dev/sda2&lt;br /&gt;
&lt;br /&gt;
The latest images have a script, &amp;lt;code&amp;gt;/etc/expandcard.sh&amp;lt;/code&amp;gt; from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh&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;
&lt;br /&gt;
[[Category:Device]]&lt;/div&gt;</summary>
		<author><name>Spinal</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Nokia_N900&amp;diff=314</id>
		<title>Nokia N900</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Nokia_N900&amp;diff=314"/>
		<updated>2019-01-04T00:00:08Z</updated>

		<summary type="html">&lt;p&gt;Spinal: /* Installation */ add u-boot section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Device&lt;br /&gt;
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]&lt;br /&gt;
|manufacturer=Nokia&lt;br /&gt;
|codename=&lt;br /&gt;
|dimensions=&lt;br /&gt;
|release_date=&lt;br /&gt;
|soc=&lt;br /&gt;
|dram=&lt;br /&gt;
|power=&lt;br /&gt;
|lcd=&lt;br /&gt;
|video=&lt;br /&gt;
|audio=&lt;br /&gt;
|network=&lt;br /&gt;
|storage=&lt;br /&gt;
|usb=Micro USB 2.0 Slave&lt;br /&gt;
|camera=&lt;br /&gt;
|sensors=&lt;br /&gt;
|other=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The original Nokia N900.&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
* Screen will be black for a few minutes while starting X - this is a known PowerVR issue. Just wait it out - it might freeze once more for a few minutes, but then will function OKayish&lt;br /&gt;
* If your battery is not calibrated, the battery applet will not give you accurate/good data. Charge the battery fully, and then let it discharge (almost) completely.&lt;br /&gt;
* Speakers are enabled by default, but don&#039;t overuse them, as you might fry them if you are not careful.&lt;br /&gt;
&lt;br /&gt;
Also see: https://elinux.org/N900&lt;br /&gt;
&lt;br /&gt;
Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this 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;
== Status ==&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 || 4.15 || Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip&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 ||&lt;br /&gt;
|-&lt;br /&gt;
| Ethernet || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| Bluetooth || Not yet || Driver problems in mainline&lt;br /&gt;
|-&lt;br /&gt;
| (Micro USB) || Yes || Peripheral/slave only, exposes network gadget by default. Host Untested&lt;br /&gt;
|-&lt;br /&gt;
| Keyboard || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Screen || Yes || Uses omapfb, not omapdrmfb yet&lt;br /&gt;
|-&lt;br /&gt;
| 3D Acceleration || WIP || Works, but could be faster/better, https://github.com/maemo-leste/n9xx-xf86-video-fbdev-sgx&lt;br /&gt;
|-&lt;br /&gt;
| Touchscreen || Yes || Resistive&lt;br /&gt;
|-&lt;br /&gt;
| Audio || Yes || Everything should work (minus speaker protection), but requires complex alsa configuration&lt;br /&gt;
|-&lt;br /&gt;
| 2G/3G data || WIP || Works with ofono; but no work has been done on any integration; see https://github.com/maemo-leste/bugtracker/issues/61 and https://github.com/maemo-leste/bugtracker/issues/76&lt;br /&gt;
|-&lt;br /&gt;
| SMS || WIP || Works with ofono, no UI, not enabled by default&lt;br /&gt;
|-&lt;br /&gt;
| Phone calls || WIP || Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters)&lt;br /&gt;
|-&lt;br /&gt;
| FM Transmitter || Not yet ||&lt;br /&gt;
|-&lt;br /&gt;
| FM Receiver || Not yet || Depends on Bluetooth&lt;br /&gt;
|-&lt;br /&gt;
| Accelerometer || Not yet || Available as input device, needs MCE work&lt;br /&gt;
|-&lt;br /&gt;
| Proximity sensor || Not yet || &lt;br /&gt;
|-&lt;br /&gt;
| HDMI-out || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| TV-out || Not yet || Should work in kernel, didn&#039;t get it to work yet&lt;br /&gt;
|-&lt;br /&gt;
| GPS || WIP || Works using gps3 and gpsd&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Images: http://maedevu.maemo.org/images/n900/&lt;br /&gt;
&lt;br /&gt;
dd the image to an sd card. If using a Windows machine, you can use [https://etcher.io/ Etcher] &#039;&#039;&#039;NB:&#039;&#039;&#039; Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to&lt;br /&gt;
&lt;br /&gt;
Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613&lt;br /&gt;
&lt;br /&gt;
== U-Boot setup ==&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;vfat&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;
== Increase filesystem size ==&lt;br /&gt;
As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough.&lt;br /&gt;
Perform the following steps on a Linux machine with none of the SD card&#039;s partitions mounted:&lt;br /&gt;
* assumption: /dev/sda2 is Leste root partition&lt;br /&gt;
* e2fsck -f /dev/sda2&lt;br /&gt;
* use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size&lt;br /&gt;
* resize2fs -p /dev/sda2&lt;br /&gt;
* e2fsck -f /dev/sda2&lt;br /&gt;
&lt;br /&gt;
The latest images have a script, &amp;lt;code&amp;gt;/etc/expandcard.sh&amp;lt;/code&amp;gt; from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh&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;
&lt;br /&gt;
[[Category:Device]]&lt;/div&gt;</summary>
		<author><name>Spinal</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Virtual_Machine&amp;diff=294</id>
		<title>Virtual Machine</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Virtual_Machine&amp;diff=294"/>
		<updated>2018-11-19T23:43:43Z</updated>

		<summary type="html">&lt;p&gt;Spinal: /* VirtualBox */ Update instructions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Device&lt;br /&gt;
|image=&lt;br /&gt;
|manufacturer=Generic&lt;br /&gt;
|codename=&lt;br /&gt;
|dimensions=&lt;br /&gt;
|release_date=&lt;br /&gt;
|soc=&lt;br /&gt;
|dram=&lt;br /&gt;
|power=&lt;br /&gt;
|lcd=&lt;br /&gt;
|video=&lt;br /&gt;
|audio=&lt;br /&gt;
|network=&lt;br /&gt;
|storage=&lt;br /&gt;
|usb=&lt;br /&gt;
|camera=&lt;br /&gt;
|sensors=&lt;br /&gt;
|other=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Generic virtual machine target. This is particularly useful when doing development and testing.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
https://maedevu.maemo.org/images/virtual-machines/&lt;br /&gt;
&lt;br /&gt;
There are three different types of images: VirtualBox (.box), QEMU (.qcow2, .vdi) and Vagrant. The VirtualBox image may be converted to a VMware VMDK image which has been reported to perform better and have good hardware acceleration.&lt;br /&gt;
Converting the qcow2 image to raw allows it to be used on real hardware.&lt;br /&gt;
&lt;br /&gt;
=== VirtualBox ===&lt;br /&gt;
&lt;br /&gt;
Download latest .vdi.xz image, unpack it with &amp;quot;xz -d&amp;quot; command.&lt;br /&gt;
Create new Virtual Machine, select &amp;quot;Debian (64-bit)&amp;quot; and 1024MB RAM. Use the downloaded file as virtual hard disk.&lt;br /&gt;
You are done!&lt;br /&gt;
&lt;br /&gt;
=== QEMU ===&lt;br /&gt;
&lt;br /&gt;
Not all QEMU versions might work, see this issue for a known working version, as well as a working qemu command line: https://github.com/maemo-leste/bugtracker/issues/198&lt;br /&gt;
&lt;br /&gt;
=== Real hardware ===&lt;br /&gt;
&lt;br /&gt;
xz -d maemo-leste-1.0-amd64-virtual-20180425.qcow2.xz&lt;br /&gt;
qemu-img convert -f qcow2 -O raw maemo-leste-1.0-amd64-virtual-20180425.qcow2 delme.img&lt;br /&gt;
&lt;br /&gt;
Now you can copy delme.img ... to a spare harddrive? I tried with USB stick and could not get that to work.&lt;br /&gt;
&lt;br /&gt;
== Initial configuration ==&lt;br /&gt;
&lt;br /&gt;
On the first run you may want to generate ssh host keys and set the timezone. To do so open the &amp;quot;X Terminal&amp;quot; application and run:&lt;br /&gt;
 sudo su -&lt;br /&gt;
 dpkg-reconfigure openssh-server&lt;br /&gt;
 dpkg-reconfigure tzdata&lt;br /&gt;
&lt;br /&gt;
Make the system up-to-date:&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get upgrade&lt;br /&gt;
 apt-get install linux-image-amd64&lt;br /&gt;
 reboot&lt;br /&gt;
&lt;br /&gt;
To get networking to work (at least in virtualbox), launch a shell and do &lt;br /&gt;
 sudo ifconfig eth0 up&lt;br /&gt;
 sudo dhclient eth0&lt;br /&gt;
&lt;br /&gt;
[[Category:Device]]&lt;/div&gt;</summary>
		<author><name>Spinal</name></author>
	</entry>
</feed>