<?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=Wizzup</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=Wizzup"/>
	<link rel="alternate" type="text/html" href="https://leste.maemo.org/Special:Contributions/Wizzup"/>
	<updated>2026-04-22T18:54:26Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.36.0</generator>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Nokia_N900&amp;diff=1777</id>
		<title>Nokia N900</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Nokia_N900&amp;diff=1777"/>
		<updated>2025-12-05T23:49:09Z</updated>

		<summary type="html">&lt;p&gt;Wizzup: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Device&lt;br /&gt;
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]&lt;br /&gt;
|manufacturer=Nokia&lt;br /&gt;
|codename=Rover, RX-51&lt;br /&gt;
|dimensions=110.9mm x 59.8mm x 18mm&lt;br /&gt;
|release_date=2009-11-11&lt;br /&gt;
|category=Supported&lt;br /&gt;
|soc=TI OMAP 3430 @600MHz &amp;lt;br&amp;gt;overclock @805MHz &amp;lt;br&amp;gt;Cortex-A8 &amp;lt;br&amp;gt;Armv7‑A&lt;br /&gt;
|dram=256 MB Mobile DDR&lt;br /&gt;
|power=&lt;br /&gt;
|lcd=800x480 3.5&amp;quot; Resistive TFT&lt;br /&gt;
|video=PowerVR SGX530&lt;br /&gt;
|audio=&lt;br /&gt;
|network=WL1251&lt;br /&gt;
|storage=32GB&lt;br /&gt;
|usb=Micro USB 2.0 Slave&lt;br /&gt;
|camera=&lt;br /&gt;
|sensors=&lt;br /&gt;
|other=&lt;br /&gt;
|headers=&lt;br /&gt;
|battery=1320mAh&lt;br /&gt;
|sw_kernel=6.6&lt;br /&gt;
|sw_serial=Yes, UART under battery, 2.7V max!&lt;br /&gt;
|sw_charging=Yes&lt;br /&gt;
|sw_usb_slave=Gadgets only&lt;br /&gt;
|sw_usb_host=With hacks&lt;br /&gt;
|sw_touchscreen=Yes, single-touch&lt;br /&gt;
|sw_keyboard=Yes&lt;br /&gt;
|sw_screen=Yes&lt;br /&gt;
|sw_hdmi=&lt;br /&gt;
|sw_tv=Yes&lt;br /&gt;
|sw_3daccel=Yes, closed driver&lt;br /&gt;
|sw_vibration=Yes&lt;br /&gt;
|sw_audio=Yes (complex, ucm, no speaker protection)&lt;br /&gt;
|sw_calls=Yes&lt;br /&gt;
|sw_sms=Yes&lt;br /&gt;
|sw_wifi=Yes, firmware required&lt;br /&gt;
|sw_ethernet=&lt;br /&gt;
|sw_irda=Yes, actually CIR, not  IrDA&lt;br /&gt;
|sw_2g3gdata=Yes&lt;br /&gt;
|sw_4gdata=&lt;br /&gt;
|sw_bluetooth=No&lt;br /&gt;
|sw_fmtx=Yes&lt;br /&gt;
|sw_fmrx=No&lt;br /&gt;
|sw_nfc=&lt;br /&gt;
|sw_accelerometer=Yes&lt;br /&gt;
|sw_compass=&lt;br /&gt;
|sw_gyro=&lt;br /&gt;
|sw_proximity=Yes&lt;br /&gt;
|sw_als=Yes&lt;br /&gt;
|sw_gps=Yes&lt;br /&gt;
|sw_agps=No&lt;br /&gt;
|sw_frontcam=&lt;br /&gt;
|sw_backcam=&lt;br /&gt;
|sw_idlepower=160mW (WIP)&lt;br /&gt;
|sw_standbytime=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.&lt;br /&gt;
&lt;br /&gt;
=== Image installation ===&lt;br /&gt;
&lt;br /&gt;
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/&lt;br /&gt;
* Image archive: https://maedevu.maemo.org/images/n900/&lt;br /&gt;
&lt;br /&gt;
dd the image to an sd card.&lt;br /&gt;
&lt;br /&gt;
If using a Windows machine, you can use [https://etcher.io/ Etcher]&lt;br /&gt;
&lt;br /&gt;
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)&lt;br /&gt;
&lt;br /&gt;
=== Bootloader (U-Boot) setup ===&lt;br /&gt;
&lt;br /&gt;
==== Quick ====&lt;br /&gt;
&lt;br /&gt;
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly (dual boot mode):&lt;br /&gt;
&lt;br /&gt;
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ on *nix systems make sure to $ chmod a+x 0xFFFF&lt;br /&gt;
&lt;br /&gt;
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ save it in a subfolder called test.&lt;br /&gt;
&lt;br /&gt;
3. Turn off Nokia N900, issue the following command on PC  &amp;lt;code&amp;gt;sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l&amp;lt;/code&amp;gt;  you will get a message similar to the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
0xFFFF v0.8  // Open Free Fiasco Firmware Flasher&lt;br /&gt;
Not a local device&lt;br /&gt;
Waiting for USB device...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and the connect Nokia N900 to the PC. you will then get a message like so:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 Found USB device: RX-51/RM-680/RM-696 (0x421:0x106) in Cold flashing mode&lt;br /&gt;
 USB device product string: Nokia USB ROM&lt;br /&gt;
 USB device serial number string: (not detected)&lt;br /&gt;
 Detected USB device: (not detected)   &lt;br /&gt;
 Waiting for ASIC ID...&lt;br /&gt;
 Detected OMAP3430 chip (revision 87)&lt;br /&gt;
 Device: (not detected)&lt;br /&gt;
 HW revision: (not detected)&lt;br /&gt;
 NOLO version: (not detected)&lt;br /&gt;
 Kernel version: (not detected)&lt;br /&gt;
 Initfs version: (not detected)&lt;br /&gt;
 Software release version: (not detected)&lt;br /&gt;
 Content eMMC version: (not detected)&lt;br /&gt;
 Root device: (not detected)&lt;br /&gt;
 USB host mode: (not detected)&lt;br /&gt;
 R&amp;amp;D mode: (not detected)&lt;br /&gt;
 Switching to NOLO mode...&lt;br /&gt;
 Sending OMAP memory boot message...&lt;br /&gt;
 Waiting for USB device...  &lt;br /&gt;
 Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode&lt;br /&gt;
 USB device product string: Nokia N900 (Update mode)&lt;br /&gt;
 USB device serial number string: MUN233033&lt;br /&gt;
 Detected USB device: RX-51            &lt;br /&gt;
 Initializing NOLO...&lt;br /&gt;
 Device: RX-51&lt;br /&gt;
 HW revision: 2204&lt;br /&gt;
 NOLO version: 1.4.14&lt;br /&gt;
 Kernel version: 2.6.28-20101501+0m5&lt;br /&gt;
 Initfs version: (not detected)&lt;br /&gt;
 Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203&lt;br /&gt;
 Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND&lt;br /&gt;
 Root device: flash&lt;br /&gt;
 USB host mode: disabled&lt;br /&gt;
 R&amp;amp;D mode: disabled&lt;br /&gt;
 Load image:&lt;br /&gt;
 File: test/u-boot-2013.04-2.bin&lt;br /&gt;
 Image type: kernel&lt;br /&gt;
 Image size: 212864 bytes&lt;br /&gt;
 Sending image header...&lt;br /&gt;
 Sending image...&lt;br /&gt;
 100% [#################################################################]&lt;br /&gt;
 Done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: &amp;lt;code&amp;gt;./0xFFFF -b&amp;lt;/code&amp;gt; you will get an output such as:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 0xFFFF v0.8  // Open Free Fiasco Firmware Flasher&lt;br /&gt;
 Not a local device&lt;br /&gt;
 Waiting for USB device...  &lt;br /&gt;
 Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode&lt;br /&gt;
 USB device product string: Nokia N900 (Update mode)&lt;br /&gt;
 USB device serial number string: MUN233033&lt;br /&gt;
 Detected USB device: RX-51            &lt;br /&gt;
 Initializing NOLO...&lt;br /&gt;
 Device: RX-51&lt;br /&gt;
 HW revision: 2204&lt;br /&gt;
 NOLO version: 1.4.14&lt;br /&gt;
 Kernel version: 2.6.28-20101501+0m5&lt;br /&gt;
 Initfs version: (not detected)&lt;br /&gt;
 Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203&lt;br /&gt;
 Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND&lt;br /&gt;
 Root device: flash&lt;br /&gt;
 USB host mode: disabled&lt;br /&gt;
 R&amp;amp;D mode: disabled&lt;br /&gt;
 Booting kernel with default cmdline...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This should present u-boot from which you can select external SD card and boot to Maemo Leste. The screen might not be backlit so it will be difficult to read. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type &amp;lt;code&amp;gt;run sdboot&amp;lt;/code&amp;gt;. The screen might be very dim and look off. So it might be difficult to see. Boot up the first time will take a long time full 2 min on test. Some text will show and will then go back to black screen but eventually you will see the splash screen and later the icons will show. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To flash u-boot permanently, you can issue the following command:&lt;br /&gt;
&lt;br /&gt;
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Existing Fremantle ====&lt;br /&gt;
&lt;br /&gt;
If you have a functional Fremantle installation, you can follow these steps instead:&lt;br /&gt;
&lt;br /&gt;
1. Install &amp;quot;U-Boot with kernel 2.6.28-omap1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2. Install &amp;quot;Linux kernel for power user (boot image for U-Boot)&amp;quot;. This is optional, but recommended.&lt;br /&gt;
&lt;br /&gt;
3. Add Maemo Leste menu item (run as root):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat &amp;gt; /etc/bootmenu.d/30-maemo-leste.item &amp;lt;&amp;lt; __EOF__&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;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(press enter at the end if necessary)&lt;br /&gt;
&lt;br /&gt;
And then run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
u-boot-update-bootmenu&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)&lt;br /&gt;
&lt;br /&gt;
=== Increase filesystem size ===&lt;br /&gt;
&lt;br /&gt;
Run the following script: &amp;lt;code&amp;gt;/etc/expandcard.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Serial ==&lt;br /&gt;
&lt;br /&gt;
http://n900.elektranox.org/serial-adapter.html&lt;br /&gt;
&lt;br /&gt;
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports&lt;br /&gt;
&lt;br /&gt;
Use this command line (specifically the part after &amp;lt;code&amp;gt;rootwait&amp;lt;/code&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
=== Speakers ===&lt;br /&gt;
&lt;br /&gt;
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.&lt;br /&gt;
=== Torch ===&lt;br /&gt;
&lt;br /&gt;
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.&lt;br /&gt;
&lt;br /&gt;
In the meantime, the LEDs can be used as a torch manually using &amp;lt;code&amp;gt;i2cset&amp;lt;/code&amp;gt;. &lt;br /&gt;
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;shell-session&amp;quot;&amp;gt;&lt;br /&gt;
# Install the prerequisites&lt;br /&gt;
$ sudo apk add i2c-tools&lt;br /&gt;
&lt;br /&gt;
# Unload the driver in case it is already loaded. We will use i2c manually&lt;br /&gt;
$ sudo modprobe -r adp1653&lt;br /&gt;
&lt;br /&gt;
# Enable the chip&lt;br /&gt;
$ echo 88 | sudo tee /sys/class/gpio/export&lt;br /&gt;
$ echo &amp;quot;out&amp;quot; | sudo tee /sys/class/gpio/gpio88/direction&lt;br /&gt;
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value&lt;br /&gt;
&lt;br /&gt;
# Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED&lt;br /&gt;
# Values between 1 and 7 enable the red privacy/recording led, with different intensity&lt;br /&gt;
# 0x8 is the lowest torch intensity, and we do not recommend going above it&lt;br /&gt;
$ sudo i2cset -y 2 0x30 0x0 0x8&lt;br /&gt;
&lt;br /&gt;
# Turn the torch off&lt;br /&gt;
$ sudo i2cset -y 2 0x30 0x0 0x0&lt;br /&gt;
&lt;br /&gt;
# Disable the chip&lt;br /&gt;
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value&lt;br /&gt;
$ echo 88 | sudo tee /sys/class/gpio/unexport&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Power Management ==&lt;br /&gt;
&lt;br /&gt;
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545&lt;br /&gt;
&lt;br /&gt;
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170&lt;br /&gt;
&lt;br /&gt;
* https://wiki.maemo.org/N900_Hardware_Power_management&lt;br /&gt;
* https://wiki.maemo.org/N900_Hardware_Power_Consumption&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Run:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 modprobe ledtrig-default-on&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 echo default-on &amp;gt; /sys/class/leds/debug::sleep/trigger&lt;br /&gt;
&amp;lt;/pre&amp;gt;&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;
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm&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 the Nokia N900&lt;br /&gt;
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration process 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't connect the device to a charger or a PC using the USB cable.&lt;br /&gt;
* When your Nokia N900 has battery depleted, it will alarm you with the &amp;quot;battery low&amp;quot; sound.&lt;br /&gt;
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it'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, you will need to restart the calibration process from scratch.&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's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.&lt;br /&gt;
&lt;br /&gt;
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.&lt;br /&gt;
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.&lt;br /&gt;
&lt;br /&gt;
== Accessing MTD ==&lt;br /&gt;
&lt;br /&gt;
List devices:&lt;br /&gt;
 cat /proc/mtd&lt;br /&gt;
&lt;br /&gt;
Mount:&lt;br /&gt;
 apt install mtd-utils&lt;br /&gt;
 mkdir -vp /mnt/fremantle&lt;br /&gt;
 ubiattach -p /dev/mtd5&lt;br /&gt;
 mount -t ubifs ubi:rootfs /mnt/fremantle&lt;br /&gt;
&lt;br /&gt;
== Overclocking (optional) ==&lt;br /&gt;
&lt;br /&gt;
'''Overclocking is now available in -devel using cpufreq boost.'''&lt;br /&gt;
&lt;br /&gt;
It uses 250-500-550-600-720-805MHz frequencies&lt;br /&gt;
&lt;br /&gt;
To enable it, edit:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/sys/devices/system/cpu/cpufreq/boost&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And replace 0 by 1.&lt;br /&gt;
&lt;br /&gt;
It is possible to customise max/min/available frequencies editing files in:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/sys/devices/system/cpu/cpu0/cpufreq/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''No other steps are needed and updates/upgrades work with boost mode.'''&lt;br /&gt;
&lt;br /&gt;
Installing cpufrequtils is useful to change frequency governors.&lt;br /&gt;
&lt;br /&gt;
Prefer &amp;quot;conservative&amp;quot; instead of &amp;quot;ondemand&amp;quot; governor.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Performance&amp;quot; governor locks N900 at 805MHz.&lt;br /&gt;
&lt;br /&gt;
As root&lt;br /&gt;
&amp;lt;code&amp;gt;cpufreq-set -c 0 -g conservative&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''WARNING: some devices can't run at 805MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 805000 by 720000 in scaling_max_freq file and finally select conservative governor'''&lt;br /&gt;
&lt;br /&gt;
== Overclocking - Old method for testing purpose ==&lt;br /&gt;
&lt;br /&gt;
To be able to overclock two steps are needed:&lt;br /&gt;
&lt;br /&gt;
1) From Fremantle: add new Maemo Leste menu item (run as root):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 cat &amp;gt; /etc/bootmenu.d/30-maemo-leste-Overclock.item &amp;lt;&amp;lt; &amp;quot;EOF&amp;quot; &amp;amp;&amp;amp;&lt;br /&gt;
 ITEM_NAME=&amp;quot;Maemo Leste Overclock&amp;quot;&lt;br /&gt;
 ITEM_KERNEL=&amp;quot;uImageX&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;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2) From Maemo Leste (run as root):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user&lt;br /&gt;
dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(wait for a few seconds...)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +w /home/user/omap3-n900.dts&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(then the funny part...)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /home/user/omap3-n900.dts&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)&lt;br /&gt;
&lt;br /&gt;
Find &amp;quot;opp-table&amp;quot; with &amp;lt;code&amp;gt;ctl+w&amp;lt;/code&amp;gt; and Replace all content in &amp;quot;opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };&amp;quot; &lt;br /&gt;
&lt;br /&gt;
New opp-table for example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
opp-table {&lt;br /&gt;
		compatible = &amp;quot;operating-points-v2-ti-cpu&amp;quot;;&lt;br /&gt;
		syscon = &amp;lt; 0x05 &amp;gt;;&lt;br /&gt;
		phandle = &amp;lt; 0x03 &amp;gt;;&lt;br /&gt;
&lt;br /&gt;
		opp1-250000000 {&lt;br /&gt;
			opp-hz = &amp;lt; 0x00 0xee6b280 &amp;gt;;&lt;br /&gt;
			opp-microvolt = &amp;lt; 0xee098 0xee098 0xee098 &amp;gt;;&lt;br /&gt;
			opp-supported-hw = &amp;lt; 0xffffffff 0x03 &amp;gt;;&lt;br /&gt;
		};&lt;br /&gt;
&lt;br /&gt;
		opp2-500000000 {&lt;br /&gt;
			opp-hz = &amp;lt; 0x00 0x1dcd6500 &amp;gt;;&lt;br /&gt;
			opp-microvolt = &amp;lt; 0x106738 0x106738 0x106738 &amp;gt;;&lt;br /&gt;
			opp-supported-hw = &amp;lt; 0xffffffff 0x03 &amp;gt;;&lt;br /&gt;
			opp-suspend;&lt;br /&gt;
		};&lt;br /&gt;
&lt;br /&gt;
		opp3-600000000 {&lt;br /&gt;
			opp-hz = &amp;lt; 0x00 0x23c34600 &amp;gt;;&lt;br /&gt;
			opp-microvolt = &amp;lt; 0x124f80 0x124f80 0x124f80 &amp;gt;;&lt;br /&gt;
			opp-supported-hw = &amp;lt; 0xffffffff 0x03 &amp;gt;;&lt;br /&gt;
		};&lt;br /&gt;
&lt;br /&gt;
		opp4-720000000 {&lt;br /&gt;
			opp-hz = &amp;lt; 0x00 0x2aea5400 &amp;gt;;&lt;br /&gt;
			opp-microvolt = &amp;lt; 0x124f80 0x124f80 0x124f80 &amp;gt;;&lt;br /&gt;
			opp-supported-hw = &amp;lt; 0xffffffff 0x03 &amp;gt;;&lt;br /&gt;
		};&lt;br /&gt;
&lt;br /&gt;
		opp5-850000000 {&lt;br /&gt;
			opp-hz = &amp;lt; 0x00 0x32a9f880 &amp;gt;;&lt;br /&gt;
			opp-microvolt = &amp;lt; 0x149970 0x149970 0x149970 &amp;gt;;&lt;br /&gt;
			opp-supported-hw = &amp;lt; 0xffffffff 0x03 &amp;gt;;&lt;br /&gt;
		};&lt;br /&gt;
	};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then &amp;lt;code&amp;gt;ctl+x&amp;lt;/code&amp;gt; to save and close.&lt;br /&gt;
&lt;br /&gt;
And still as root:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm /home/user/omap3-n900.dtb&lt;br /&gt;
dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check your kernel version:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;uname -r&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30&lt;br /&gt;
&lt;br /&gt;
In the next command, replace &amp;quot;vmlinuz-&amp;lt;version&amp;gt;&amp;quot; by yours (i.e vmlinuz-6.1.30)&lt;br /&gt;
&lt;br /&gt;
As root:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat /boot/vmlinuz-&amp;lt;version&amp;gt; /home/user/omap3-n900.dtb &amp;gt; /tmp/zImage_dtb&lt;br /&gt;
mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That's it !&lt;br /&gt;
&lt;br /&gt;
Now reboot and select 'Maemo Leste Overclock' in bootmenu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
('''WARNING with old method:''' always use stock &amp;quot;Maemo Leste&amp;quot; in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))&lt;br /&gt;
&lt;br /&gt;
== Tips / Tweaks ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== SD Card and first boot===&lt;br /&gt;
&lt;br /&gt;
To avoid overall slowness, SDXC U3 microSD card is a must. Class10 U1 cards are usually too slow to run Leste on N900 unfortunately.&lt;br /&gt;
&lt;br /&gt;
'''WARNING''': unresponsive / freezing screen is normal during Hildon-desktop loading.&lt;br /&gt;
&lt;br /&gt;
First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible (wait at least 3 min before clicking somewhere).&lt;br /&gt;
Connecting to Wi-Fi must be avoided until the second boot (otherwise apt-worker starts automatically and N900 is unresponsive for few minutes).&lt;br /&gt;
Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated.&lt;br /&gt;
Then reboot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Note for Chimaera image:''' it is recommended to dist-upgrade to -devel to enable more features by adding&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deb https://maedevu.maemo.org/leste chimaera-devel main contrib non-free  n900&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
in &amp;lt;code&amp;gt;/etc/apt/sources.list&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
('''Warning:''' don't remove other sources in this file)&lt;br /&gt;
&lt;br /&gt;
=== Gnome-tracker in $HOME ===&lt;br /&gt;
&lt;br /&gt;
By default trackers are indexing the entire $HOME folder, causing severe slowdown.&lt;br /&gt;
&lt;br /&gt;
To avoid this issue, the solution (until a proper fix) is to add a &amp;lt;code&amp;gt;.nomedia&amp;lt;/code&amp;gt; file in /home/user folder:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
touch /home/user/.nomedia&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Removing 250MHz CPU frequency (example) ===&lt;br /&gt;
&lt;br /&gt;
Install &amp;lt;code&amp;gt;cpufrequtils&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Replace 250000 by 500000 in  &amp;lt;pre&amp;gt;/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== More SWAP / SWAP activation (testing purpose) ===&lt;br /&gt;
&lt;br /&gt;
('''Note: SWAP is already activated by default''')&lt;br /&gt;
&lt;br /&gt;
Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo swapon /dev/mmcblk1p3&amp;lt;/pre&amp;gt;   (editing /etc/fstab/ is not needed and done automatically on next reboot)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(It takes some time...)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo chmod 600 /&lt;br /&gt;
sudo mkswap /swapfile&lt;br /&gt;
sudo swapon /swapfile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make the change permanent open &amp;lt;code&amp;gt;/etc/fstab&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/fstab&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And add this line:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/swapfile swap swap defaults 0 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To check if the swap is active:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo swapon --show&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tweaking Transitions ===&lt;br /&gt;
&lt;br /&gt;
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.&lt;br /&gt;
&lt;br /&gt;
As root&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /usr/share/hildon-desktop/transitions.ini&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See Fremantle documentation for perfect setup.&lt;br /&gt;
&lt;br /&gt;
'''Note: like Fremantle, blur effect can cause lags and slowness.''' It is possible to deactivate/modify it through the transitions.ini file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[HOME]&lt;br /&gt;
&lt;br /&gt;
radius = 1&lt;br /&gt;
&lt;br /&gt;
radius_more = 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Video playing ===&lt;br /&gt;
&lt;br /&gt;
Video playing is working fine using SMPLAYER:&lt;br /&gt;
&lt;br /&gt;
- In Options / Preferences / General:&lt;br /&gt;
&lt;br /&gt;
Media engine: Other: /user/bin/mplayer&lt;br /&gt;
&lt;br /&gt;
- In Options / Preferences / Video:&lt;br /&gt;
&lt;br /&gt;
Output driver: xv (0 - OMAP Textured Video)&lt;br /&gt;
&lt;br /&gt;
Only unable Double buffering and Disable screensaver&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- In Options / Preferences / Audio:&lt;br /&gt;
&lt;br /&gt;
Output driver: pulse (or User defined)&lt;br /&gt;
&lt;br /&gt;
Disable everything else&lt;br /&gt;
&lt;br /&gt;
Channel by default: 2 (Stereo)&lt;br /&gt;
&lt;br /&gt;
High speed playback: Auto&lt;br /&gt;
&lt;br /&gt;
- In Options / Preferences / Performance:&lt;br /&gt;
&lt;br /&gt;
Unable Allow frame drop&lt;br /&gt;
&lt;br /&gt;
Hardware decoding: None&lt;br /&gt;
&lt;br /&gt;
Prefer 360p - 480p max video format&lt;br /&gt;
&lt;br /&gt;
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)&lt;br /&gt;
&lt;br /&gt;
=== Voice Calls / SIP Calls ===&lt;br /&gt;
&lt;br /&gt;
- Only for Chimaera: Dist-upgrade to -devel (not working without)&lt;br /&gt;
&lt;br /&gt;
Now SIP calls and SIP messages are working out of the box using Twinkle.&lt;br /&gt;
&lt;br /&gt;
Voice calls are now working out of the box as well.&lt;br /&gt;
&lt;br /&gt;
If sound is distorted, run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo chrt -a -f -p 99 $(pgrep pulseaudio)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Status table ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Feature&lt;br /&gt;
! Leste supported&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Kernel version || 6.6 LTS || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux&lt;br /&gt;
|-&lt;br /&gt;
| Serial || Yes || Requires special hardware&lt;br /&gt;
|-&lt;br /&gt;
| Charging || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Wireless || Yes || Firmware is non-free&lt;br /&gt;
|-&lt;br /&gt;
| Ethernet || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible&lt;br /&gt;
|-&lt;br /&gt;
| Keyboard || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Screen || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| 3D Acceleration || Yes || closed PowerVR driver&lt;br /&gt;
|-&lt;br /&gt;
| Overclock || Yes || up to 805MHz (stable &amp;amp; supported), 850MHz works with some devices (not supported), Turbo mode works&lt;br /&gt;
|-&lt;br /&gt;
| Touchscreen || Yes || Resistive&lt;br /&gt;
|-&lt;br /&gt;
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection and FMTX&lt;br /&gt;
|-&lt;br /&gt;
| Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer.&lt;br /&gt;
|-&lt;br /&gt;
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/&lt;br /&gt;
|-&lt;br /&gt;
| 4G data || N/A || no hardware&lt;br /&gt;
|-&lt;br /&gt;
| SMS || Yes || Works with Sphone or ofono scripts. Works with Conversations in -devel.&lt;br /&gt;
|-&lt;br /&gt;
| Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, works with Sphone&lt;br /&gt;
|-&lt;br /&gt;
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP&lt;br /&gt;
|-&lt;br /&gt;
| Bluetooth || No || Driver needs some work&lt;br /&gt;
|-&lt;br /&gt;
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol&lt;br /&gt;
Install &amp;lt;code&amp;gt;v4l-utils&amp;lt;/code&amp;gt; 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 working Bluetooth stack&lt;br /&gt;
|-&lt;br /&gt;
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900&lt;br /&gt;
|-&lt;br /&gt;
| Compass || N/A || No hardware&lt;br /&gt;
|-&lt;br /&gt;
| Gyro || N/A|| No hardware&lt;br /&gt;
|-&lt;br /&gt;
| Proximity sensor || Yes || &amp;lt;code&amp;gt;evdev&amp;lt;/code&amp;gt; interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'&lt;br /&gt;
|-&lt;br /&gt;
| Ambient Light Sensor || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Vibration Motor || Yes || &lt;br /&gt;
|-&lt;br /&gt;
| HDMI-out || N/A || No hardware&lt;br /&gt;
|-&lt;br /&gt;
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with &amp;lt;code&amp;gt;xrandr --output TV --mode 800x480 --same-as LCD&amp;lt;/code&amp;gt;. Set PAL/NTSC with &amp;lt;code&amp;gt;xrandr --output TV --set SignalProperties PAL&amp;lt;/code&amp;gt;, and scale with &amp;lt;code&amp;gt;xrandr --output TV --set TVScale 90&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| GPS || Yes || &lt;br /&gt;
|-&lt;br /&gt;
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)&lt;br /&gt;
|-&lt;br /&gt;
| Camera || No || Needs complex v4l work, no leste integration&lt;br /&gt;
|-&lt;br /&gt;
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Device]]&lt;/div&gt;</summary>
		<author><name>Wizzup</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Nokia_N900&amp;diff=1776</id>
		<title>Nokia N900</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Nokia_N900&amp;diff=1776"/>
		<updated>2025-12-05T21:14:36Z</updated>

		<summary type="html">&lt;p&gt;Wizzup: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Device&lt;br /&gt;
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]&lt;br /&gt;
|manufacturer=Nokia&lt;br /&gt;
|codename=Rover, RX-51&lt;br /&gt;
|dimensions=110.9mm x 59.8mm x 18mm&lt;br /&gt;
|release_date=2009-11-11&lt;br /&gt;
|category=Supported&lt;br /&gt;
|soc=TI OMAP 3430 @600MHz &amp;lt;br&amp;gt;overclock @805MHz &amp;lt;br&amp;gt;Cortex-A8 &amp;lt;br&amp;gt;Armv7‑A&lt;br /&gt;
|dram=256 MB Mobile DDR&lt;br /&gt;
|power=&lt;br /&gt;
|lcd=800x480 3.5&amp;quot; Resistive TFT&lt;br /&gt;
|video=PowerVR SGX530&lt;br /&gt;
|audio=&lt;br /&gt;
|network=WL1251&lt;br /&gt;
|storage=32GB&lt;br /&gt;
|usb=Micro USB 2.0 Slave&lt;br /&gt;
|camera=&lt;br /&gt;
|sensors=&lt;br /&gt;
|other=&lt;br /&gt;
|headers=&lt;br /&gt;
|battery=1320mAh&lt;br /&gt;
|sw_kernel=6.6&lt;br /&gt;
|sw_serial=Yes, UART under battery, 2.7V max!&lt;br /&gt;
|sw_charging=Yes&lt;br /&gt;
|sw_usb_slave=Gadgets only&lt;br /&gt;
|sw_usb_host=With hacks&lt;br /&gt;
|sw_touchscreen=Yes, single-touch&lt;br /&gt;
|sw_keyboard=Yes&lt;br /&gt;
|sw_screen=Yes&lt;br /&gt;
|sw_hdmi=&lt;br /&gt;
|sw_tv=Yes&lt;br /&gt;
|sw_3daccel=Yes, closed driver&lt;br /&gt;
|sw_vibration=Yes&lt;br /&gt;
|sw_audio=Yes (complex, ucm, no speaker protection)&lt;br /&gt;
|sw_calls=Yes&lt;br /&gt;
|sw_sms=Yes&lt;br /&gt;
|sw_wifi=Yes, firmware required&lt;br /&gt;
|sw_ethernet=&lt;br /&gt;
|sw_irda=Yes, actually CIR, not  IrDA&lt;br /&gt;
|sw_2g3gdata=Yes&lt;br /&gt;
|sw_4gdata=&lt;br /&gt;
|sw_bluetooth=No&lt;br /&gt;
|sw_fmtx=Yes&lt;br /&gt;
|sw_fmrx=No&lt;br /&gt;
|sw_nfc=&lt;br /&gt;
|sw_accelerometer=Yes&lt;br /&gt;
|sw_compass=&lt;br /&gt;
|sw_gyro=&lt;br /&gt;
|sw_proximity=Yes&lt;br /&gt;
|sw_als=Yes&lt;br /&gt;
|sw_gps=Yes&lt;br /&gt;
|sw_agps=No&lt;br /&gt;
|sw_frontcam=&lt;br /&gt;
|sw_backcam=&lt;br /&gt;
|sw_idlepower=160mW (WIP)&lt;br /&gt;
|sw_standbytime=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.&lt;br /&gt;
&lt;br /&gt;
=== Image installation ===&lt;br /&gt;
&lt;br /&gt;
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/&lt;br /&gt;
* Image archive: https://maedevu.maemo.org/images/n900/&lt;br /&gt;
&lt;br /&gt;
dd the image to an sd card.&lt;br /&gt;
&lt;br /&gt;
If using a Windows machine, you can use [https://etcher.io/ Etcher]&lt;br /&gt;
&lt;br /&gt;
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)&lt;br /&gt;
&lt;br /&gt;
=== Bootloader (U-Boot) setup ===&lt;br /&gt;
&lt;br /&gt;
==== Quick ====&lt;br /&gt;
&lt;br /&gt;
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly (dual boot mode):&lt;br /&gt;
&lt;br /&gt;
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ on *nix systems make sure to $ chmod a+x 0xFFFF&lt;br /&gt;
&lt;br /&gt;
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ save it in a subfolder called test.&lt;br /&gt;
&lt;br /&gt;
3. Turn off Nokia N900, issue the following command on PC  &amp;lt;code&amp;gt;sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l&amp;lt;/code&amp;gt;  you will get a message similar to the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
0xFFFF v0.8  // Open Free Fiasco Firmware Flasher&lt;br /&gt;
Not a local device&lt;br /&gt;
Waiting for USB device...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and the connect Nokia N900 to the PC. you will then get a message like so:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 Found USB device: RX-51/RM-680/RM-696 (0x421:0x106) in Cold flashing mode&lt;br /&gt;
 USB device product string: Nokia USB ROM&lt;br /&gt;
 USB device serial number string: (not detected)&lt;br /&gt;
 Detected USB device: (not detected)   &lt;br /&gt;
 Waiting for ASIC ID...&lt;br /&gt;
 Detected OMAP3430 chip (revision 87)&lt;br /&gt;
 Device: (not detected)&lt;br /&gt;
 HW revision: (not detected)&lt;br /&gt;
 NOLO version: (not detected)&lt;br /&gt;
 Kernel version: (not detected)&lt;br /&gt;
 Initfs version: (not detected)&lt;br /&gt;
 Software release version: (not detected)&lt;br /&gt;
 Content eMMC version: (not detected)&lt;br /&gt;
 Root device: (not detected)&lt;br /&gt;
 USB host mode: (not detected)&lt;br /&gt;
 R&amp;amp;D mode: (not detected)&lt;br /&gt;
 Switching to NOLO mode...&lt;br /&gt;
 Sending OMAP memory boot message...&lt;br /&gt;
 Waiting for USB device...  &lt;br /&gt;
 Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode&lt;br /&gt;
 USB device product string: Nokia N900 (Update mode)&lt;br /&gt;
 USB device serial number string: MUN233033&lt;br /&gt;
 Detected USB device: RX-51            &lt;br /&gt;
 Initializing NOLO...&lt;br /&gt;
 Device: RX-51&lt;br /&gt;
 HW revision: 2204&lt;br /&gt;
 NOLO version: 1.4.14&lt;br /&gt;
 Kernel version: 2.6.28-20101501+0m5&lt;br /&gt;
 Initfs version: (not detected)&lt;br /&gt;
 Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203&lt;br /&gt;
 Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND&lt;br /&gt;
 Root device: flash&lt;br /&gt;
 USB host mode: disabled&lt;br /&gt;
 R&amp;amp;D mode: disabled&lt;br /&gt;
 Load image:&lt;br /&gt;
 File: test/u-boot-2013.04-2.bin&lt;br /&gt;
 Image type: kernel&lt;br /&gt;
 Image size: 212864 bytes&lt;br /&gt;
 Sending image header...&lt;br /&gt;
 Sending image...&lt;br /&gt;
 100% [#################################################################]&lt;br /&gt;
 Done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: &amp;lt;code&amp;gt;./0xFFFF -b&amp;lt;/code&amp;gt; you will get an output such as:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 0xFFFF v0.8  // Open Free Fiasco Firmware Flasher&lt;br /&gt;
 Not a local device&lt;br /&gt;
 Waiting for USB device...  &lt;br /&gt;
 Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode&lt;br /&gt;
 USB device product string: Nokia N900 (Update mode)&lt;br /&gt;
 USB device serial number string: MUN233033&lt;br /&gt;
 Detected USB device: RX-51            &lt;br /&gt;
 Initializing NOLO...&lt;br /&gt;
 Device: RX-51&lt;br /&gt;
 HW revision: 2204&lt;br /&gt;
 NOLO version: 1.4.14&lt;br /&gt;
 Kernel version: 2.6.28-20101501+0m5&lt;br /&gt;
 Initfs version: (not detected)&lt;br /&gt;
 Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203&lt;br /&gt;
 Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND&lt;br /&gt;
 Root device: flash&lt;br /&gt;
 USB host mode: disabled&lt;br /&gt;
 R&amp;amp;D mode: disabled&lt;br /&gt;
 Booting kernel with default cmdline...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This should present u-boot from which you can select external SD card and boot to Maemo Leste. The screen might not be backlit so it will be difficult to read. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type &amp;lt;code&amp;gt;run sdboot&amp;lt;/code&amp;gt;. The screen might be very dim and look off. So it might be difficult to see. Boot up the first time will take a long time full 2 min on test. Some text will show and will then go back to black screen but eventually you will see the splash screen and later the icons will show. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To flash u-boot permanently, you can issue the following command:&lt;br /&gt;
&lt;br /&gt;
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Existing Fremantle ====&lt;br /&gt;
&lt;br /&gt;
If you have a functional Fremantle installation, you can follow these steps instead:&lt;br /&gt;
&lt;br /&gt;
1. Install &amp;quot;U-Boot with kernel 2.6.28-omap1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2. Install &amp;quot;Linux kernel for power user (boot image for U-Boot)&amp;quot;. This is optional, but recommended.&lt;br /&gt;
&lt;br /&gt;
3. Add Maemo Leste menu item (run as root):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat &amp;gt; /etc/bootmenu.d/30-maemo-leste.item &amp;lt;&amp;lt; __EOF__&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;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(press enter at the end if necessary)&lt;br /&gt;
&lt;br /&gt;
And then run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
u-boot-update-bootmenu&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)&lt;br /&gt;
&lt;br /&gt;
=== Increase filesystem size ===&lt;br /&gt;
&lt;br /&gt;
Run the following script: &amp;lt;code&amp;gt;/etc/expandcard.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Serial ==&lt;br /&gt;
&lt;br /&gt;
http://n900.elektranox.org/serial-adapter.html&lt;br /&gt;
&lt;br /&gt;
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports&lt;br /&gt;
&lt;br /&gt;
Use this command line (specifically the part after &amp;lt;code&amp;gt;rootwait&amp;lt;/code&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
=== Speakers ===&lt;br /&gt;
&lt;br /&gt;
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.&lt;br /&gt;
=== Torch ===&lt;br /&gt;
&lt;br /&gt;
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.&lt;br /&gt;
&lt;br /&gt;
In the meantime, the LEDs can be used as a torch manually using &amp;lt;code&amp;gt;i2cset&amp;lt;/code&amp;gt;. &lt;br /&gt;
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;shell-session&amp;quot;&amp;gt;&lt;br /&gt;
# Install the prerequisites&lt;br /&gt;
$ sudo apk add i2c-tools&lt;br /&gt;
&lt;br /&gt;
# Unload the driver in case it is already loaded. We will use i2c manually&lt;br /&gt;
$ sudo modprobe -r adp1653&lt;br /&gt;
&lt;br /&gt;
# Enable the chip&lt;br /&gt;
$ echo 88 | sudo tee /sys/class/gpio/export&lt;br /&gt;
$ echo &amp;quot;out&amp;quot; | sudo tee /sys/class/gpio/gpio88/direction&lt;br /&gt;
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value&lt;br /&gt;
&lt;br /&gt;
# Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED&lt;br /&gt;
# Values between 1 and 7 enable the red privacy/recording led, with different intensity&lt;br /&gt;
# 0x8 is the lowest torch intensity, and we do not recommend going above it&lt;br /&gt;
$ sudo i2cset -y 2 0x30 0x0 0x8&lt;br /&gt;
&lt;br /&gt;
# Turn the torch off&lt;br /&gt;
$ sudo i2cset -y 2 0x30 0x0 0x0&lt;br /&gt;
&lt;br /&gt;
# Disable the chip&lt;br /&gt;
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value&lt;br /&gt;
$ echo 88 | sudo tee /sys/class/gpio/unexport&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Power Management ==&lt;br /&gt;
&lt;br /&gt;
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545&lt;br /&gt;
&lt;br /&gt;
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170&lt;br /&gt;
&lt;br /&gt;
* https://wiki.maemo.org/N900_Hardware_Power_management&lt;br /&gt;
* https://wiki.maemo.org/N900_Hardware_Power_Consumption&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Run:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 modprobe ledtrig-default-on&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 echo default-on &amp;gt; /sys/class/leds/debug::sleep/trigger&lt;br /&gt;
&amp;lt;/pre&amp;gt;&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;
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm&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 the Nokia N900&lt;br /&gt;
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration process 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't connect the device to a charger or a PC using the USB cable.&lt;br /&gt;
* When your Nokia N900 has battery depleted, it will alarm you with the &amp;quot;battery low&amp;quot; sound.&lt;br /&gt;
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it'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, you will need to restart the calibration process from scratch.&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's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.&lt;br /&gt;
&lt;br /&gt;
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.&lt;br /&gt;
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.&lt;br /&gt;
&lt;br /&gt;
== Accessing MTD ==&lt;br /&gt;
&lt;br /&gt;
List devices:&lt;br /&gt;
 cat /proc/mtd&lt;br /&gt;
&lt;br /&gt;
Mount:&lt;br /&gt;
 apt install mtd-utils&lt;br /&gt;
 mkdir -vp /mnt/fremantle&lt;br /&gt;
 ubiattach -p /dev/mtd5&lt;br /&gt;
 mount -t ubifs ubi:rootfs /mnt/fremantle&lt;br /&gt;
&lt;br /&gt;
== Overclocking (optional) ==&lt;br /&gt;
&lt;br /&gt;
'''Overclocking is now available in -devel using cpufreq boost.'''&lt;br /&gt;
&lt;br /&gt;
It uses 250-500-550-600-720-805MHz frequencies&lt;br /&gt;
&lt;br /&gt;
To enable it, edit:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/sys/devices/system/cpu/cpufreq/boost&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And replace 0 by 1.&lt;br /&gt;
&lt;br /&gt;
It is possible to customise max/min/available frequencies editing files in:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/sys/devices/system/cpu/cpu0/cpufreq/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''No other steps are needed and updates/upgrades work with boost mode.'''&lt;br /&gt;
&lt;br /&gt;
Installing cpufrequtils is useful to change frequency governors.&lt;br /&gt;
&lt;br /&gt;
Prefer &amp;quot;conservative&amp;quot; instead of &amp;quot;ondemand&amp;quot; governor.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Performance&amp;quot; governor locks N900 at 805MHz.&lt;br /&gt;
&lt;br /&gt;
As root&lt;br /&gt;
&amp;lt;code&amp;gt;cpufreq-set -c 0 -g conservative&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''WARNING: some devices can't run at 805MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 805000 by 720000 in scaling_max_freq file and finally select conservative governor'''&lt;br /&gt;
&lt;br /&gt;
== Overclocking - Old method for testing purpose ==&lt;br /&gt;
&lt;br /&gt;
To be able to overclock two steps are needed:&lt;br /&gt;
&lt;br /&gt;
1) From Fremantle: add new Maemo Leste menu item (run as root):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 cat &amp;gt; /etc/bootmenu.d/30-maemo-leste-Overclock.item &amp;lt;&amp;lt; &amp;quot;EOF&amp;quot; &amp;amp;&amp;amp;&lt;br /&gt;
 ITEM_NAME=&amp;quot;Maemo Leste Overclock&amp;quot;&lt;br /&gt;
 ITEM_KERNEL=&amp;quot;uImageX&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;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2) From Maemo Leste (run as root):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user&lt;br /&gt;
dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(wait for a few seconds...)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +w /home/user/omap3-n900.dts&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(then the funny part...)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /home/user/omap3-n900.dts&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)&lt;br /&gt;
&lt;br /&gt;
Find &amp;quot;opp-table&amp;quot; with &amp;lt;code&amp;gt;ctl+w&amp;lt;/code&amp;gt; and Replace all content in &amp;quot;opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };&amp;quot; &lt;br /&gt;
&lt;br /&gt;
New opp-table for example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
opp-table {&lt;br /&gt;
		compatible = &amp;quot;operating-points-v2-ti-cpu&amp;quot;;&lt;br /&gt;
		syscon = &amp;lt; 0x05 &amp;gt;;&lt;br /&gt;
		phandle = &amp;lt; 0x03 &amp;gt;;&lt;br /&gt;
&lt;br /&gt;
		opp1-250000000 {&lt;br /&gt;
			opp-hz = &amp;lt; 0x00 0xee6b280 &amp;gt;;&lt;br /&gt;
			opp-microvolt = &amp;lt; 0xee098 0xee098 0xee098 &amp;gt;;&lt;br /&gt;
			opp-supported-hw = &amp;lt; 0xffffffff 0x03 &amp;gt;;&lt;br /&gt;
		};&lt;br /&gt;
&lt;br /&gt;
		opp2-500000000 {&lt;br /&gt;
			opp-hz = &amp;lt; 0x00 0x1dcd6500 &amp;gt;;&lt;br /&gt;
			opp-microvolt = &amp;lt; 0x106738 0x106738 0x106738 &amp;gt;;&lt;br /&gt;
			opp-supported-hw = &amp;lt; 0xffffffff 0x03 &amp;gt;;&lt;br /&gt;
			opp-suspend;&lt;br /&gt;
		};&lt;br /&gt;
&lt;br /&gt;
		opp3-600000000 {&lt;br /&gt;
			opp-hz = &amp;lt; 0x00 0x23c34600 &amp;gt;;&lt;br /&gt;
			opp-microvolt = &amp;lt; 0x124f80 0x124f80 0x124f80 &amp;gt;;&lt;br /&gt;
			opp-supported-hw = &amp;lt; 0xffffffff 0x03 &amp;gt;;&lt;br /&gt;
		};&lt;br /&gt;
&lt;br /&gt;
		opp4-720000000 {&lt;br /&gt;
			opp-hz = &amp;lt; 0x00 0x2aea5400 &amp;gt;;&lt;br /&gt;
			opp-microvolt = &amp;lt; 0x124f80 0x124f80 0x124f80 &amp;gt;;&lt;br /&gt;
			opp-supported-hw = &amp;lt; 0xffffffff 0x03 &amp;gt;;&lt;br /&gt;
		};&lt;br /&gt;
&lt;br /&gt;
		opp5-850000000 {&lt;br /&gt;
			opp-hz = &amp;lt; 0x00 0x32a9f880 &amp;gt;;&lt;br /&gt;
			opp-microvolt = &amp;lt; 0x149970 0x149970 0x149970 &amp;gt;;&lt;br /&gt;
			opp-supported-hw = &amp;lt; 0xffffffff 0x03 &amp;gt;;&lt;br /&gt;
		};&lt;br /&gt;
	};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then &amp;lt;code&amp;gt;ctl+x&amp;lt;/code&amp;gt; to save and close.&lt;br /&gt;
&lt;br /&gt;
And still as root:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm /home/user/omap3-n900.dtb&lt;br /&gt;
dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check your kernel version:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;uname -r&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30&lt;br /&gt;
&lt;br /&gt;
In the next command, replace &amp;quot;vmlinuz-&amp;lt;version&amp;gt;&amp;quot; by yours (i.e vmlinuz-6.1.30)&lt;br /&gt;
&lt;br /&gt;
As root:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat /boot/vmlinuz-&amp;lt;version&amp;gt; /home/user/omap3-n900.dtb &amp;gt; /tmp/zImage_dtb&lt;br /&gt;
mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That's it !&lt;br /&gt;
&lt;br /&gt;
Now reboot and select 'Maemo Leste Overclock' in bootmenu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
('''WARNING with old method:''' always use stock &amp;quot;Maemo Leste&amp;quot; in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))&lt;br /&gt;
&lt;br /&gt;
== Tips / Tweaks ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== SD Card and first boot===&lt;br /&gt;
&lt;br /&gt;
To avoid overall slowness, SDXC U3 microSD card is a must. Class10 U1 cards are usually too slow to run Leste on N900 unfortunately.&lt;br /&gt;
&lt;br /&gt;
'''WARNING''': unresponsive / freezing screen is normal during Hildon-desktop loading.&lt;br /&gt;
&lt;br /&gt;
First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible (wait at least 3 min before clicking somewhere).&lt;br /&gt;
Connecting to Wi-Fi must be avoided until the second boot (otherwise apt-worker starts automatically and N900 is unresponsive for few minutes).&lt;br /&gt;
Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated.&lt;br /&gt;
Then reboot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Note for Chimaera image:''' it is recommended to dist-upgrade to -devel to enable more features by adding&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deb https://maedevu.maemo.org/leste chimaera-devel main contrib non-free  n900&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
in &amp;lt;code&amp;gt;/etc/apt/sources.list&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
('''Warning:''' don't remove other sources in this file)&lt;br /&gt;
&lt;br /&gt;
=== Gnome-tracker in $HOME ===&lt;br /&gt;
&lt;br /&gt;
By default trackers are indexing the entire $HOME folder, causing severe slowdown.&lt;br /&gt;
&lt;br /&gt;
To avoid this issue, the solution (until a proper fix) is to add a &amp;lt;code&amp;gt;.nomedia&amp;lt;/code&amp;gt; file in /home/user folder:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
touch /home/user/.nomedia&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Removing 250MHz CPU frequency (example) ===&lt;br /&gt;
&lt;br /&gt;
Install &amp;lt;code&amp;gt;cpufrequtils&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Replace 250000 by 500000 in  &amp;lt;pre&amp;gt;/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== More SWAP / SWAP activation (testing purpose) ===&lt;br /&gt;
&lt;br /&gt;
('''Note: SWAP is already activated by default''')&lt;br /&gt;
&lt;br /&gt;
Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo swapon /dev/mmcblk1p3&amp;lt;/pre&amp;gt;   (editing /etc/fstab/ is not needed and done automatically on next reboot)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(It takes some time...)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo chmod 600 /&lt;br /&gt;
sudo mkswap /swapfile&lt;br /&gt;
sudo swapon /swapfile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make the change permanent open &amp;lt;code&amp;gt;/etc/fstab&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/fstab&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And add this line:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/swapfile swap swap defaults 0 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To check if the swap is active:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo swapon --show&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tweaking Transitions ===&lt;br /&gt;
&lt;br /&gt;
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.&lt;br /&gt;
&lt;br /&gt;
As root&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /usr/share/hildon-desktop/transitions.ini&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See Fremantle documentation for perfect setup.&lt;br /&gt;
&lt;br /&gt;
'''Note: like Fremantle, blur effect can cause lags and slowness.''' It is possible to deactivate/modify it through the transitions.ini file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[HOME]&lt;br /&gt;
&lt;br /&gt;
radius = 1&lt;br /&gt;
&lt;br /&gt;
radius_more = 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Video playing ===&lt;br /&gt;
&lt;br /&gt;
Video playing is working fine using SMPLAYER:&lt;br /&gt;
&lt;br /&gt;
- In Options / Preferences / General:&lt;br /&gt;
&lt;br /&gt;
Media engine: Other: /user/bin/mplayer&lt;br /&gt;
&lt;br /&gt;
- In Options / Preferences / Video:&lt;br /&gt;
&lt;br /&gt;
Output driver: xv (0 - OMAP Textured Video)&lt;br /&gt;
&lt;br /&gt;
Only unable Double buffering and Disable screensaver&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- In Options / Preferences / Audio:&lt;br /&gt;
&lt;br /&gt;
Output driver: pulse (or User defined)&lt;br /&gt;
&lt;br /&gt;
Disable everything else&lt;br /&gt;
&lt;br /&gt;
Channel by default: 2 (Stereo)&lt;br /&gt;
&lt;br /&gt;
High speed playback: Auto&lt;br /&gt;
&lt;br /&gt;
- In Options / Preferences / Performance:&lt;br /&gt;
&lt;br /&gt;
Unable Allow frame drop&lt;br /&gt;
&lt;br /&gt;
Hardware decoding: None&lt;br /&gt;
&lt;br /&gt;
Prefer 360p - 480p max video format&lt;br /&gt;
&lt;br /&gt;
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)&lt;br /&gt;
&lt;br /&gt;
=== Voice Calls / SIP Calls ===&lt;br /&gt;
&lt;br /&gt;
- Only for Chimaera: Dist-upgrade to -devel (not working without)&lt;br /&gt;
&lt;br /&gt;
Now SIP calls and SIP messages are working out of the box using Twinkle.&lt;br /&gt;
&lt;br /&gt;
Voice calls are now working out of the box as well.&lt;br /&gt;
&lt;br /&gt;
If sound is distorted, run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo chrt -a -f -p 99 $(pgrep pulseaudio)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Status table ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Feature&lt;br /&gt;
! Leste supported&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Kernel version || 6.6 LTS || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux&lt;br /&gt;
|-&lt;br /&gt;
| Serial || Yes || Requires special hardware&lt;br /&gt;
|-&lt;br /&gt;
| Charging || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Wireless || Yes || Firmware is non-free&lt;br /&gt;
|-&lt;br /&gt;
| Ethernet || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible&lt;br /&gt;
|-&lt;br /&gt;
| Keyboard || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Screen || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| 3D Acceleration || Yes || closed PowerVR driver&lt;br /&gt;
|-&lt;br /&gt;
| Overclock || Yes || up to 805MHz (stable &amp;amp; supported), 850MHz works with some devices (not supported), Turbo mode works&lt;br /&gt;
|-&lt;br /&gt;
| Touchscreen || Yes || Resistive&lt;br /&gt;
|-&lt;br /&gt;
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection and FMTX&lt;br /&gt;
|-&lt;br /&gt;
| Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer.&lt;br /&gt;
|-&lt;br /&gt;
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/&lt;br /&gt;
|-&lt;br /&gt;
| 4G data || N/A || no hardware&lt;br /&gt;
|-&lt;br /&gt;
| SMS || Yes || Works with Sphone or ofono scripts. Works with Conversations in -devel.&lt;br /&gt;
|-&lt;br /&gt;
| Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, works with Sphone&lt;br /&gt;
|-&lt;br /&gt;
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP&lt;br /&gt;
|-&lt;br /&gt;
| Bluetooth || No || Driver needs some work&lt;br /&gt;
|-&lt;br /&gt;
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol&lt;br /&gt;
Install &amp;lt;code&amp;gt;v4l-utils&amp;lt;/code&amp;gt; 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 working Bluetooth stack&lt;br /&gt;
|-&lt;br /&gt;
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900&lt;br /&gt;
|-&lt;br /&gt;
| Compass || N/A || No hardware&lt;br /&gt;
|-&lt;br /&gt;
| Gyro || N/A|| No hardware&lt;br /&gt;
|-&lt;br /&gt;
| Proximity sensor || Yes || &amp;lt;code&amp;gt;evdev&amp;lt;/code&amp;gt; interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'&lt;br /&gt;
|-&lt;br /&gt;
| Ambient Light Sensor || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Vibration Motor || Yes || &lt;br /&gt;
|-&lt;br /&gt;
| HDMI-out || N/A || No hardware&lt;br /&gt;
|-&lt;br /&gt;
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with &amp;lt;code&amp;gt;xrandr --output TV --mode 800x480 --same-as LCD&amp;lt;/code&amp;gt;. Set PAL/NTSC with &amp;lt;code&amp;gt;xrandr --output TV --set SignalProperties PAL&amp;lt;/code&amp;gt;, and scale with &amp;lt;code&amp;gt;xrandr --output TV --set TVScale 90&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| GPS || Yes || &lt;br /&gt;
|-&lt;br /&gt;
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)&lt;br /&gt;
|-&lt;br /&gt;
| Camera || No || Needs complex v4l work, no leste integration&lt;br /&gt;
|-&lt;br /&gt;
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Device]]&lt;/div&gt;</summary>
		<author><name>Wizzup</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Nokia_N900&amp;diff=1775</id>
		<title>Nokia N900</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Nokia_N900&amp;diff=1775"/>
		<updated>2025-12-05T21:13:47Z</updated>

		<summary type="html">&lt;p&gt;Wizzup: Fix bootmenu generation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Device&lt;br /&gt;
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]&lt;br /&gt;
|manufacturer=Nokia&lt;br /&gt;
|codename=Rover, RX-51&lt;br /&gt;
|dimensions=110.9mm x 59.8mm x 18mm&lt;br /&gt;
|release_date=2009-11-11&lt;br /&gt;
|category=Supported&lt;br /&gt;
|soc=TI OMAP 3430 @600MHz &amp;lt;br&amp;gt;overclock @805MHz &amp;lt;br&amp;gt;Cortex-A8 &amp;lt;br&amp;gt;Armv7‑A&lt;br /&gt;
|dram=256 MB Mobile DDR&lt;br /&gt;
|power=&lt;br /&gt;
|lcd=800x480 3.5&amp;quot; Resistive TFT&lt;br /&gt;
|video=PowerVR SGX530&lt;br /&gt;
|audio=&lt;br /&gt;
|network=WL1251&lt;br /&gt;
|storage=32GB&lt;br /&gt;
|usb=Micro USB 2.0 Slave&lt;br /&gt;
|camera=&lt;br /&gt;
|sensors=&lt;br /&gt;
|other=&lt;br /&gt;
|headers=&lt;br /&gt;
|battery=1320mAh&lt;br /&gt;
|sw_kernel=6.6&lt;br /&gt;
|sw_serial=Yes, UART under battery, 2.7V max!&lt;br /&gt;
|sw_charging=Yes&lt;br /&gt;
|sw_usb_slave=Gadgets only&lt;br /&gt;
|sw_usb_host=With hacks&lt;br /&gt;
|sw_touchscreen=Yes, single-touch&lt;br /&gt;
|sw_keyboard=Yes&lt;br /&gt;
|sw_screen=Yes&lt;br /&gt;
|sw_hdmi=&lt;br /&gt;
|sw_tv=Yes&lt;br /&gt;
|sw_3daccel=Yes, closed driver&lt;br /&gt;
|sw_vibration=Yes&lt;br /&gt;
|sw_audio=Yes (complex, ucm, no speaker protection)&lt;br /&gt;
|sw_calls=Yes&lt;br /&gt;
|sw_sms=Yes&lt;br /&gt;
|sw_wifi=Yes, firmware required&lt;br /&gt;
|sw_ethernet=&lt;br /&gt;
|sw_irda=Yes, actually CIR, not  IrDA&lt;br /&gt;
|sw_2g3gdata=Yes&lt;br /&gt;
|sw_4gdata=&lt;br /&gt;
|sw_bluetooth=No&lt;br /&gt;
|sw_fmtx=Yes&lt;br /&gt;
|sw_fmrx=No&lt;br /&gt;
|sw_nfc=&lt;br /&gt;
|sw_accelerometer=Yes&lt;br /&gt;
|sw_compass=&lt;br /&gt;
|sw_gyro=&lt;br /&gt;
|sw_proximity=Yes&lt;br /&gt;
|sw_als=Yes&lt;br /&gt;
|sw_gps=Yes&lt;br /&gt;
|sw_agps=No&lt;br /&gt;
|sw_frontcam=&lt;br /&gt;
|sw_backcam=&lt;br /&gt;
|sw_idlepower=160mW (WIP)&lt;br /&gt;
|sw_standbytime=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
The installation consists of two steps: copying the image to the microsd card, and setting up the bootloader on the phone.&lt;br /&gt;
&lt;br /&gt;
=== Image installation ===&lt;br /&gt;
&lt;br /&gt;
* Latest image: https://phoenix.maemo.org/job/leste-image-n900/lastSuccessfulBuild/artifact/arm-sdk/dist/&lt;br /&gt;
* Image archive: https://maedevu.maemo.org/images/n900/&lt;br /&gt;
&lt;br /&gt;
dd the image to an sd card.&lt;br /&gt;
&lt;br /&gt;
If using a Windows machine, you can use [https://etcher.io/ Etcher]&lt;br /&gt;
&lt;br /&gt;
See the next section on how to boot. (using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613)&lt;br /&gt;
&lt;br /&gt;
=== Bootloader (U-Boot) setup ===&lt;br /&gt;
&lt;br /&gt;
==== Quick ====&lt;br /&gt;
&lt;br /&gt;
If you don't want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly (dual boot mode):&lt;br /&gt;
&lt;br /&gt;
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/ on *nix systems make sure to $ chmod a+x 0xFFFF&lt;br /&gt;
&lt;br /&gt;
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/ save it in a subfolder called test.&lt;br /&gt;
&lt;br /&gt;
3. Turn off Nokia N900, issue the following command on PC  &amp;lt;code&amp;gt;sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l&amp;lt;/code&amp;gt;  you will get a message similar to the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
0xFFFF v0.8  // Open Free Fiasco Firmware Flasher&lt;br /&gt;
Not a local device&lt;br /&gt;
Waiting for USB device...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and the connect Nokia N900 to the PC. you will then get a message like so:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 Found USB device: RX-51/RM-680/RM-696 (0x421:0x106) in Cold flashing mode&lt;br /&gt;
 USB device product string: Nokia USB ROM&lt;br /&gt;
 USB device serial number string: (not detected)&lt;br /&gt;
 Detected USB device: (not detected)   &lt;br /&gt;
 Waiting for ASIC ID...&lt;br /&gt;
 Detected OMAP3430 chip (revision 87)&lt;br /&gt;
 Device: (not detected)&lt;br /&gt;
 HW revision: (not detected)&lt;br /&gt;
 NOLO version: (not detected)&lt;br /&gt;
 Kernel version: (not detected)&lt;br /&gt;
 Initfs version: (not detected)&lt;br /&gt;
 Software release version: (not detected)&lt;br /&gt;
 Content eMMC version: (not detected)&lt;br /&gt;
 Root device: (not detected)&lt;br /&gt;
 USB host mode: (not detected)&lt;br /&gt;
 R&amp;amp;D mode: (not detected)&lt;br /&gt;
 Switching to NOLO mode...&lt;br /&gt;
 Sending OMAP memory boot message...&lt;br /&gt;
 Waiting for USB device...  &lt;br /&gt;
 Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode&lt;br /&gt;
 USB device product string: Nokia N900 (Update mode)&lt;br /&gt;
 USB device serial number string: MUN233033&lt;br /&gt;
 Detected USB device: RX-51            &lt;br /&gt;
 Initializing NOLO...&lt;br /&gt;
 Device: RX-51&lt;br /&gt;
 HW revision: 2204&lt;br /&gt;
 NOLO version: 1.4.14&lt;br /&gt;
 Kernel version: 2.6.28-20101501+0m5&lt;br /&gt;
 Initfs version: (not detected)&lt;br /&gt;
 Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203&lt;br /&gt;
 Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND&lt;br /&gt;
 Root device: flash&lt;br /&gt;
 USB host mode: disabled&lt;br /&gt;
 R&amp;amp;D mode: disabled&lt;br /&gt;
 Load image:&lt;br /&gt;
 File: test/u-boot-2013.04-2.bin&lt;br /&gt;
 Image type: kernel&lt;br /&gt;
 Image size: 212864 bytes&lt;br /&gt;
 Sending image header...&lt;br /&gt;
 Sending image...&lt;br /&gt;
 100% [#################################################################]&lt;br /&gt;
 Done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: &amp;lt;code&amp;gt;./0xFFFF -b&amp;lt;/code&amp;gt; you will get an output such as:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 0xFFFF v0.8  // Open Free Fiasco Firmware Flasher&lt;br /&gt;
 Not a local device&lt;br /&gt;
 Waiting for USB device...  &lt;br /&gt;
 Found USB device: SU-18/RX-34/RX-44/RX-48/RX-51/RM-680/RM-696 (0x421:0x105) in NOLO mode&lt;br /&gt;
 USB device product string: Nokia N900 (Update mode)&lt;br /&gt;
 USB device serial number string: MUN233033&lt;br /&gt;
 Detected USB device: RX-51            &lt;br /&gt;
 Initializing NOLO...&lt;br /&gt;
 Device: RX-51&lt;br /&gt;
 HW revision: 2204&lt;br /&gt;
 NOLO version: 1.4.14&lt;br /&gt;
 Kernel version: 2.6.28-20101501+0m5&lt;br /&gt;
 Initfs version: (not detected)&lt;br /&gt;
 Software release version: RX-51_2009SE_21.2011.38-1.203.1_PR_203&lt;br /&gt;
 Content eMMC version: RX-51_2009SE_10.2010.13-2.UK-IRELAND&lt;br /&gt;
 Root device: flash&lt;br /&gt;
 USB host mode: disabled&lt;br /&gt;
 R&amp;amp;D mode: disabled&lt;br /&gt;
 Booting kernel with default cmdline...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This should present u-boot from which you can select external SD card and boot to Maemo Leste. The screen might not be backlit so it will be difficult to read. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type &amp;lt;code&amp;gt;run sdboot&amp;lt;/code&amp;gt;. The screen might be very dim and look off. So it might be difficult to see. Boot up the first time will take a long time full 2 min on test. Some text will show and will then go back to black screen but eventually you will see the splash screen and later the icons will show. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To flash u-boot permanently, you can issue the following command:&lt;br /&gt;
&lt;br /&gt;
'''(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)''')&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Existing Fremantle ====&lt;br /&gt;
&lt;br /&gt;
If you have a functional Fremantle installation, you can follow these steps instead:&lt;br /&gt;
&lt;br /&gt;
1. Install &amp;quot;U-Boot with kernel 2.6.28-omap1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2. Install &amp;quot;Linux kernel for power user (boot image for U-Boot)&amp;quot;. This is optional, but recommended.&lt;br /&gt;
&lt;br /&gt;
3. Add Maemo Leste menu item (run as root):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat &amp;gt; /etc/bootmenu.d/30-maemo-leste.item &amp;lt;&amp;lt; __EOF__&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;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And then run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
u-boot-update-bootmenu&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)&lt;br /&gt;
&lt;br /&gt;
=== Increase filesystem size ===&lt;br /&gt;
&lt;br /&gt;
Run the following script: &amp;lt;code&amp;gt;/etc/expandcard.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Serial ==&lt;br /&gt;
&lt;br /&gt;
http://n900.elektranox.org/serial-adapter.html&lt;br /&gt;
&lt;br /&gt;
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports&lt;br /&gt;
&lt;br /&gt;
Use this command line (specifically the part after &amp;lt;code&amp;gt;rootwait&amp;lt;/code&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root=/dev/mmcblk0p2 rootwait console=ttyS2,115200 verbose earlyprintk debug&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
=== Speakers ===&lt;br /&gt;
&lt;br /&gt;
* Speakers are enabled by default, but be careful of very high frequencies/levels - there are concerns regarding the possibility to blow them. There is no clear consensus about this, but it is best to err on the side of caution.&lt;br /&gt;
=== Torch ===&lt;br /&gt;
&lt;br /&gt;
The N900 has an Analog Devices ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.&lt;br /&gt;
&lt;br /&gt;
In the meantime, the LEDs can be used as a torch manually using &amp;lt;code&amp;gt;i2cset&amp;lt;/code&amp;gt;. &lt;br /&gt;
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;shell-session&amp;quot;&amp;gt;&lt;br /&gt;
# Install the prerequisites&lt;br /&gt;
$ sudo apk add i2c-tools&lt;br /&gt;
&lt;br /&gt;
# Unload the driver in case it is already loaded. We will use i2c manually&lt;br /&gt;
$ sudo modprobe -r adp1653&lt;br /&gt;
&lt;br /&gt;
# Enable the chip&lt;br /&gt;
$ echo 88 | sudo tee /sys/class/gpio/export&lt;br /&gt;
$ echo &amp;quot;out&amp;quot; | sudo tee /sys/class/gpio/gpio88/direction&lt;br /&gt;
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value&lt;br /&gt;
&lt;br /&gt;
# Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED&lt;br /&gt;
# Values between 1 and 7 enable the red privacy/recording led, with different intensity&lt;br /&gt;
# 0x8 is the lowest torch intensity, and we do not recommend going above it&lt;br /&gt;
$ sudo i2cset -y 2 0x30 0x0 0x8&lt;br /&gt;
&lt;br /&gt;
# Turn the torch off&lt;br /&gt;
$ sudo i2cset -y 2 0x30 0x0 0x0&lt;br /&gt;
&lt;br /&gt;
# Disable the chip&lt;br /&gt;
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value&lt;br /&gt;
$ echo 88 | sudo tee /sys/class/gpio/unexport&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Power Management ==&lt;br /&gt;
&lt;br /&gt;
This ticket tracks hitting idle states for the N900: https://github.com/maemo-leste/bugtracker/issues/545&lt;br /&gt;
&lt;br /&gt;
Power usage right now is reported to be about 45mA (idle, modem ON and data ON). On a good battery this will last for about 30 hours. Power management on the N900 is being worked on: https://github.com/maemo-leste/bugtracker/issues/170&lt;br /&gt;
&lt;br /&gt;
* https://wiki.maemo.org/N900_Hardware_Power_management&lt;br /&gt;
* https://wiki.maemo.org/N900_Hardware_Power_Consumption&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Run:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 modprobe ledtrig-default-on&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 echo default-on &amp;gt; /sys/class/leds/debug::sleep/trigger&lt;br /&gt;
&amp;lt;/pre&amp;gt;&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;
See this code for a work in progress power management script: https://github.com/maemo-leste/n900-pm&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 the Nokia N900&lt;br /&gt;
* Detach the charger and don't attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration process 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't connect the device to a charger or a PC using the USB cable.&lt;br /&gt;
* When your Nokia N900 has battery depleted, it will alarm you with the &amp;quot;battery low&amp;quot; sound.&lt;br /&gt;
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it'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, you will need to restart the calibration process from scratch.&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's how the battery calibration works in low level: it can't change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it's needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.&lt;br /&gt;
&lt;br /&gt;
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.&lt;br /&gt;
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.&lt;br /&gt;
&lt;br /&gt;
== Accessing MTD ==&lt;br /&gt;
&lt;br /&gt;
List devices:&lt;br /&gt;
 cat /proc/mtd&lt;br /&gt;
&lt;br /&gt;
Mount:&lt;br /&gt;
 apt install mtd-utils&lt;br /&gt;
 mkdir -vp /mnt/fremantle&lt;br /&gt;
 ubiattach -p /dev/mtd5&lt;br /&gt;
 mount -t ubifs ubi:rootfs /mnt/fremantle&lt;br /&gt;
&lt;br /&gt;
== Overclocking (optional) ==&lt;br /&gt;
&lt;br /&gt;
'''Overclocking is now available in -devel using cpufreq boost.'''&lt;br /&gt;
&lt;br /&gt;
It uses 250-500-550-600-720-805MHz frequencies&lt;br /&gt;
&lt;br /&gt;
To enable it, edit:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/sys/devices/system/cpu/cpufreq/boost&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And replace 0 by 1.&lt;br /&gt;
&lt;br /&gt;
It is possible to customise max/min/available frequencies editing files in:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/sys/devices/system/cpu/cpu0/cpufreq/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''No other steps are needed and updates/upgrades work with boost mode.'''&lt;br /&gt;
&lt;br /&gt;
Installing cpufrequtils is useful to change frequency governors.&lt;br /&gt;
&lt;br /&gt;
Prefer &amp;quot;conservative&amp;quot; instead of &amp;quot;ondemand&amp;quot; governor.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Performance&amp;quot; governor locks N900 at 805MHz.&lt;br /&gt;
&lt;br /&gt;
As root&lt;br /&gt;
&amp;lt;code&amp;gt;cpufreq-set -c 0 -g conservative&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''WARNING: some devices can't run at 805MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 805000 by 720000 in scaling_max_freq file and finally select conservative governor'''&lt;br /&gt;
&lt;br /&gt;
== Overclocking - Old method for testing purpose ==&lt;br /&gt;
&lt;br /&gt;
To be able to overclock two steps are needed:&lt;br /&gt;
&lt;br /&gt;
1) From Fremantle: add new Maemo Leste menu item (run as root):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 cat &amp;gt; /etc/bootmenu.d/30-maemo-leste-Overclock.item &amp;lt;&amp;lt; &amp;quot;EOF&amp;quot; &amp;amp;&amp;amp;&lt;br /&gt;
 ITEM_NAME=&amp;quot;Maemo Leste Overclock&amp;quot;&lt;br /&gt;
 ITEM_KERNEL=&amp;quot;uImageX&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;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2) From Maemo Leste (run as root):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user&lt;br /&gt;
dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(wait for a few seconds...)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +w /home/user/omap3-n900.dts&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(then the funny part...)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /home/user/omap3-n900.dts&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Now it's time to modify frequencies and voltage: be careful to do exactly the same)&lt;br /&gt;
&lt;br /&gt;
Find &amp;quot;opp-table&amp;quot; with &amp;lt;code&amp;gt;ctl+w&amp;lt;/code&amp;gt; and Replace all content in &amp;quot;opp-table { opp1 opp2 opp3 opp4 opp5 opp6 };&amp;quot; &lt;br /&gt;
&lt;br /&gt;
New opp-table for example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
opp-table {&lt;br /&gt;
		compatible = &amp;quot;operating-points-v2-ti-cpu&amp;quot;;&lt;br /&gt;
		syscon = &amp;lt; 0x05 &amp;gt;;&lt;br /&gt;
		phandle = &amp;lt; 0x03 &amp;gt;;&lt;br /&gt;
&lt;br /&gt;
		opp1-250000000 {&lt;br /&gt;
			opp-hz = &amp;lt; 0x00 0xee6b280 &amp;gt;;&lt;br /&gt;
			opp-microvolt = &amp;lt; 0xee098 0xee098 0xee098 &amp;gt;;&lt;br /&gt;
			opp-supported-hw = &amp;lt; 0xffffffff 0x03 &amp;gt;;&lt;br /&gt;
		};&lt;br /&gt;
&lt;br /&gt;
		opp2-500000000 {&lt;br /&gt;
			opp-hz = &amp;lt; 0x00 0x1dcd6500 &amp;gt;;&lt;br /&gt;
			opp-microvolt = &amp;lt; 0x106738 0x106738 0x106738 &amp;gt;;&lt;br /&gt;
			opp-supported-hw = &amp;lt; 0xffffffff 0x03 &amp;gt;;&lt;br /&gt;
			opp-suspend;&lt;br /&gt;
		};&lt;br /&gt;
&lt;br /&gt;
		opp3-600000000 {&lt;br /&gt;
			opp-hz = &amp;lt; 0x00 0x23c34600 &amp;gt;;&lt;br /&gt;
			opp-microvolt = &amp;lt; 0x124f80 0x124f80 0x124f80 &amp;gt;;&lt;br /&gt;
			opp-supported-hw = &amp;lt; 0xffffffff 0x03 &amp;gt;;&lt;br /&gt;
		};&lt;br /&gt;
&lt;br /&gt;
		opp4-720000000 {&lt;br /&gt;
			opp-hz = &amp;lt; 0x00 0x2aea5400 &amp;gt;;&lt;br /&gt;
			opp-microvolt = &amp;lt; 0x124f80 0x124f80 0x124f80 &amp;gt;;&lt;br /&gt;
			opp-supported-hw = &amp;lt; 0xffffffff 0x03 &amp;gt;;&lt;br /&gt;
		};&lt;br /&gt;
&lt;br /&gt;
		opp5-850000000 {&lt;br /&gt;
			opp-hz = &amp;lt; 0x00 0x32a9f880 &amp;gt;;&lt;br /&gt;
			opp-microvolt = &amp;lt; 0x149970 0x149970 0x149970 &amp;gt;;&lt;br /&gt;
			opp-supported-hw = &amp;lt; 0xffffffff 0x03 &amp;gt;;&lt;br /&gt;
		};&lt;br /&gt;
	};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then &amp;lt;code&amp;gt;ctl+x&amp;lt;/code&amp;gt; to save and close.&lt;br /&gt;
&lt;br /&gt;
And still as root:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm /home/user/omap3-n900.dtb&lt;br /&gt;
dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check your kernel version:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;uname -r&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example if the result is 6.1.30, your vmlinuz version is vmlinuz-6.1.30&lt;br /&gt;
&lt;br /&gt;
In the next command, replace &amp;quot;vmlinuz-&amp;lt;version&amp;gt;&amp;quot; by yours (i.e vmlinuz-6.1.30)&lt;br /&gt;
&lt;br /&gt;
As root:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat /boot/vmlinuz-&amp;lt;version&amp;gt; /home/user/omap3-n900.dtb &amp;gt; /tmp/zImage_dtb&lt;br /&gt;
mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That's it !&lt;br /&gt;
&lt;br /&gt;
Now reboot and select 'Maemo Leste Overclock' in bootmenu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
('''WARNING with old method:''' always use stock &amp;quot;Maemo Leste&amp;quot; in bootmenu before dist-upgrade / kernel update. (New uImageX must be created again and old uImageX must be removed))&lt;br /&gt;
&lt;br /&gt;
== Tips / Tweaks ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== SD Card and first boot===&lt;br /&gt;
&lt;br /&gt;
To avoid overall slowness, SDXC U3 microSD card is a must. Class10 U1 cards are usually too slow to run Leste on N900 unfortunately.&lt;br /&gt;
&lt;br /&gt;
'''WARNING''': unresponsive / freezing screen is normal during Hildon-desktop loading.&lt;br /&gt;
&lt;br /&gt;
First boot is a bit complicated because Leste is loading lot of things even if hildon-desktop is already visible (wait at least 3 min before clicking somewhere).&lt;br /&gt;
Connecting to Wi-Fi must be avoided until the second boot (otherwise apt-worker starts automatically and N900 is unresponsive for few minutes).&lt;br /&gt;
Don't forget to run /etc/expandcard.sh on first boot and check if swap is activated.&lt;br /&gt;
Then reboot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Note for Chimaera image:''' it is recommended to dist-upgrade to -devel to enable more features by adding&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deb https://maedevu.maemo.org/leste chimaera-devel main contrib non-free  n900&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
in &amp;lt;code&amp;gt;/etc/apt/sources.list&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
('''Warning:''' don't remove other sources in this file)&lt;br /&gt;
&lt;br /&gt;
=== Gnome-tracker in $HOME ===&lt;br /&gt;
&lt;br /&gt;
By default trackers are indexing the entire $HOME folder, causing severe slowdown.&lt;br /&gt;
&lt;br /&gt;
To avoid this issue, the solution (until a proper fix) is to add a &amp;lt;code&amp;gt;.nomedia&amp;lt;/code&amp;gt; file in /home/user folder:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
touch /home/user/.nomedia&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Removing 250MHz CPU frequency (example) ===&lt;br /&gt;
&lt;br /&gt;
Install &amp;lt;code&amp;gt;cpufrequtils&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Replace 250000 by 500000 in  &amp;lt;pre&amp;gt;/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== More SWAP / SWAP activation (testing purpose) ===&lt;br /&gt;
&lt;br /&gt;
('''Note: SWAP is already activated by default''')&lt;br /&gt;
&lt;br /&gt;
Enabling swap on eMMC 768MB partition if not already activated on first boot (works on the fly):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo swapon /dev/mmcblk1p3&amp;lt;/pre&amp;gt;   (editing /etc/fstab/ is not needed and done automatically on next reboot)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Other possibility:''' create a simple 1GB swap file on the SDcard if swap is missing:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(It takes some time...)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo chmod 600 /&lt;br /&gt;
sudo mkswap /swapfile&lt;br /&gt;
sudo swapon /swapfile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make the change permanent open &amp;lt;code&amp;gt;/etc/fstab&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/fstab&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And add this line:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/swapfile swap swap defaults 0 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To check if the swap is active:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo swapon --show&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tweaking Transitions ===&lt;br /&gt;
&lt;br /&gt;
Many options are missing in CSSU Features package but it is possible to edit them in transitions.ini.&lt;br /&gt;
&lt;br /&gt;
As root&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /usr/share/hildon-desktop/transitions.ini&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See Fremantle documentation for perfect setup.&lt;br /&gt;
&lt;br /&gt;
'''Note: like Fremantle, blur effect can cause lags and slowness.''' It is possible to deactivate/modify it through the transitions.ini file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[HOME]&lt;br /&gt;
&lt;br /&gt;
radius = 1&lt;br /&gt;
&lt;br /&gt;
radius_more = 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Video playing ===&lt;br /&gt;
&lt;br /&gt;
Video playing is working fine using SMPLAYER:&lt;br /&gt;
&lt;br /&gt;
- In Options / Preferences / General:&lt;br /&gt;
&lt;br /&gt;
Media engine: Other: /user/bin/mplayer&lt;br /&gt;
&lt;br /&gt;
- In Options / Preferences / Video:&lt;br /&gt;
&lt;br /&gt;
Output driver: xv (0 - OMAP Textured Video)&lt;br /&gt;
&lt;br /&gt;
Only unable Double buffering and Disable screensaver&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- In Options / Preferences / Audio:&lt;br /&gt;
&lt;br /&gt;
Output driver: pulse (or User defined)&lt;br /&gt;
&lt;br /&gt;
Disable everything else&lt;br /&gt;
&lt;br /&gt;
Channel by default: 2 (Stereo)&lt;br /&gt;
&lt;br /&gt;
High speed playback: Auto&lt;br /&gt;
&lt;br /&gt;
- In Options / Preferences / Performance:&lt;br /&gt;
&lt;br /&gt;
Unable Allow frame drop&lt;br /&gt;
&lt;br /&gt;
Hardware decoding: None&lt;br /&gt;
&lt;br /&gt;
Prefer 360p - 480p max video format&lt;br /&gt;
&lt;br /&gt;
(With overclocking, Video is working well using KODI 17.6 with equivalent A/V settings)&lt;br /&gt;
&lt;br /&gt;
=== Voice Calls / SIP Calls ===&lt;br /&gt;
&lt;br /&gt;
- Only for Chimaera: Dist-upgrade to -devel (not working without)&lt;br /&gt;
&lt;br /&gt;
Now SIP calls and SIP messages are working out of the box using Twinkle.&lt;br /&gt;
&lt;br /&gt;
Voice calls are now working out of the box as well.&lt;br /&gt;
&lt;br /&gt;
If sound is distorted, run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo chrt -a -f -p 99 $(pgrep pulseaudio)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Status table ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Feature&lt;br /&gt;
! Leste supported&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Kernel version || 6.6 LTS || Mainline + PowerVR Patches: https://github.com/maemo-leste/droid4-linux&lt;br /&gt;
|-&lt;br /&gt;
| Serial || Yes || Requires special hardware&lt;br /&gt;
|-&lt;br /&gt;
| Charging || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Wireless || Yes || Firmware is non-free&lt;br /&gt;
|-&lt;br /&gt;
| Ethernet || N/A ||&lt;br /&gt;
|-&lt;br /&gt;
| Micro USB || Yes || USB Network, Mass Storage. OTG not working, although it might be possible&lt;br /&gt;
|-&lt;br /&gt;
| Keyboard || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Screen || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| 3D Acceleration || Yes || closed PowerVR driver&lt;br /&gt;
|-&lt;br /&gt;
| Overclock || Yes || up to 805MHz (stable &amp;amp; supported), 850MHz works with some devices (not supported), Turbo mode works&lt;br /&gt;
|-&lt;br /&gt;
| Touchscreen || Yes || Resistive&lt;br /&gt;
|-&lt;br /&gt;
| Audio || Yes || Works (minus speaker protection), UCM support with Jack plug/unplug detection and FMTX&lt;br /&gt;
|-&lt;br /&gt;
| Video || Yes || Xv acceleration, up to 360-480p. Max 360p for online streaming with SMplayer.&lt;br /&gt;
|-&lt;br /&gt;
| 2G/3G/3.5G data || Yes || Works with ofono - UI is working, see https://github.com/maemo-leste/connui-cellular/&lt;br /&gt;
|-&lt;br /&gt;
| 4G data || N/A || no hardware&lt;br /&gt;
|-&lt;br /&gt;
| SMS || Yes || Works with Sphone or ofono scripts. Works with Conversations in -devel.&lt;br /&gt;
|-&lt;br /&gt;
| Phone calls || Yes || UCM support, sound is good. Works in 2G, 3G and 3.5G mode, works with Sphone&lt;br /&gt;
|-&lt;br /&gt;
| SIP calls / IM || Yes || Works with Twinkle, TLS transport is supported, Telepathy/Sphone integration is WIP&lt;br /&gt;
|-&lt;br /&gt;
| Bluetooth || No || Driver needs some work&lt;br /&gt;
|-&lt;br /&gt;
| FM Transmitter || Yes || Select 'FM Transmitter' in Pavucontrol&lt;br /&gt;
Install &amp;lt;code&amp;gt;v4l-utils&amp;lt;/code&amp;gt; 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 working Bluetooth stack&lt;br /&gt;
|-&lt;br /&gt;
| Accelerometer || Yes || Not used in Leste at the moment, since UI rotation does not work on N900&lt;br /&gt;
|-&lt;br /&gt;
| Compass || N/A || No hardware&lt;br /&gt;
|-&lt;br /&gt;
| Gyro || N/A|| No hardware&lt;br /&gt;
|-&lt;br /&gt;
| Proximity sensor || Yes || &amp;lt;code&amp;gt;evdev&amp;lt;/code&amp;gt; interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible 'fix'&lt;br /&gt;
|-&lt;br /&gt;
| Ambient Light Sensor || Yes ||&lt;br /&gt;
|-&lt;br /&gt;
| Vibration Motor || Yes || &lt;br /&gt;
|-&lt;br /&gt;
| HDMI-out || N/A || No hardware&lt;br /&gt;
|-&lt;br /&gt;
| TV-out || Yes || Enable in alsamixer (Jack Function in alsamixer to TV OUT), enable with &amp;lt;code&amp;gt;xrandr --output TV --mode 800x480 --same-as LCD&amp;lt;/code&amp;gt;. Set PAL/NTSC with &amp;lt;code&amp;gt;xrandr --output TV --set SignalProperties PAL&amp;lt;/code&amp;gt;, and scale with &amp;lt;code&amp;gt;xrandr --output TV --set TVScale 90&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| GPS || Yes || &lt;br /&gt;
|-&lt;br /&gt;
| Infrared || Yes || TX only (hardware limitation). Works with pwm-ir-tx driver (patched)&lt;br /&gt;
|-&lt;br /&gt;
| Camera || No || Needs complex v4l work, no leste integration&lt;br /&gt;
|-&lt;br /&gt;
| Idle power consumption || ~160mW / up to 30 hours || Device does not enter RET or OFF mode&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Device]]&lt;/div&gt;</summary>
		<author><name>Wizzup</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Development/Tasks&amp;diff=1684</id>
		<title>Development/Tasks</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Development/Tasks&amp;diff=1684"/>
		<updated>2024-06-26T11:24:10Z</updated>

		<summary type="html">&lt;p&gt;Wizzup: /* Applications */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Applications ==&lt;br /&gt;
&lt;br /&gt;
This page lists some of the more important open issues for Maemo Leste. We have a complete list here, on github, but it's a bit hard to navigate: https://github.com/maemo-leste/bugtracker/issues&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Task&lt;br /&gt;
! Description&lt;br /&gt;
! Task Status&lt;br /&gt;
! User(s) working on task&lt;br /&gt;
! GH Bug&lt;br /&gt;
! URLs&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Gtk3 port of theme and hildon widgets || Big task, port hildon widgets and theme from gtk2 to gtk3. &amp;lt;b&amp;gt;Funding is available for this task&amp;lt;/b&amp;gt; || WIP || || https://github.com/maemo-leste/bugtracker/issues/261 || || Parayzd is working on this&lt;br /&gt;
|-&lt;br /&gt;
| Qt5 of theme and hildon widgets || Significant task || MOSTLY || [[User:freemangordon]] made a start, [[User:Wizzup]] picked up some of the work  ||  || https://github.com/maemo-leste/qtstyleplugins/ + https://github.com/maemo-leste/qt-platform-maemo/tree/qmenu || Mainly usable already!&lt;br /&gt;
|-&lt;br /&gt;
| libicd-network-ofono should set up ipv4 upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || DONE ||  ||  ||  ||  &lt;br /&gt;
|-&lt;br /&gt;
| Extend ofono droid4 modem support  || This is done and should be stable. || DONE || Tony, Pavel, [[User:freemangordon]] and [[User:Wizzup]] are working on this ||  || https://github.com/pavelmachek/ofono/commits/d4-v1.29  ||&lt;br /&gt;
|-&lt;br /&gt;
| Finish connui-cellular port to ofono  || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || https://github.com/maemo-leste/bugtracker/issues/256 || https://github.com/maemo-leste/connui-cellular  ||&lt;br /&gt;
|-&lt;br /&gt;
| Test phone calls on the N900  || Figure out cmtspeechdata magic || WORKS || [[User:Wizzup]], [[User:Sicelo]], Pavel ||  ||  ||&lt;br /&gt;
|-&lt;br /&gt;
| Create simple phone UI to test dialing/accepting phone calls using Telepathy || Can use sphone, which works for calls right now, just not using Telepathy. || WORKS || ? ||  ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;hildonize&amp;quot; surf2 or create a simple &amp;quot;hildonized&amp;quot; webkit browser || See &amp;quot;Jib&amp;quot; || DONE || [[User:Wizzup]], dsc ||  ||  ||&lt;br /&gt;
|-&lt;br /&gt;
| Look at N900 power saving || We do not hit omap off modes nearly as much as we should (in fact, we never do), this should be looked at || WIP || [[User:Wizzup]], tmlind ||  ||  || Actually works quite well on the droid4. Let's do the same for Droid4. :) &lt;br /&gt;
|-&lt;br /&gt;
| osso-abook || We need osso-abook in place for all applications that need contacts (phone ui, sms ui, email ui, more) || DONE || [[User:freemangordon]] ||  ||https://github.com/maemo-leste/osso-abook  || Making good progress&lt;br /&gt;
|-&lt;br /&gt;
| Port all packages for maemo-leste to debhelper 9 or higher || Requires for us to migrate to a newer Debian (Buster) / Devuan (Beowulf) || DONE || [[User:Parazyd]], [[User:Wizzup]], [[User:meridion]], [[User:Spinal84]] || https://github.com/maemo-leste/bugtracker/issues/234 ||  || &lt;br /&gt;
|-&lt;br /&gt;
| Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || DONE || [[User:ThomasAH]], Spinal84 || https://github.com/maemo-leste/ke-recv/pull/2 ; https://github.com/maemo-leste/bugtracker/issues/17#issuecomment-528497018 || ke-recv part for slide monitoring is in place, we just need live keyboard-attached monitoring now. https://github.com/maemo-leste/mce/blob/master/event-input.c#L474 https://github.com/maemo-leste/ke-recv-extra/blob/master/src/input-device.c || mce has quite some usable code for this already, resulting code should probably go into ke-recv-extra (aka hulda). mer-core (sailfish/nemomobile) has keyboard monitoring integrated into mce, so we could also look at (using) that&lt;br /&gt;
|-&lt;br /&gt;
| Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 ? || *MAYBE* Required on devices with a PowerVR GPU like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || DONE (by staying at clutter 0.8) ||  || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches   ||  &lt;br /&gt;
|-&lt;br /&gt;
| Set up leste &amp;quot;extras&amp;quot; repository  || A repository with non-core applications, games, etc would be very welcome || DONE || [[User:Wizzup]], [[User:Parazyd]] ||  || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/   ||&lt;br /&gt;
|-&lt;br /&gt;
| hildon-application-manager usable || We currently have HAM packaged, but it needs fixes for various compile issues we hacked around, cssu-specific parts need to be removed, and we need to figure out what we need to do for our repositories to make it work well || DONE || [[User:minicom]], [[User:Wizzup]], [[User:Parazyd]] ||  ||  || Goal is to have a usable app manager, so let's just use it, fix it, use it, etc.&lt;br /&gt;
|-&lt;br /&gt;
| Fix virtual keyboard rendering || On a screen that is not the same of the N900 (800x480), the virtual keyboard doesn't look very pretty. Lets just make it work on any display size || DONE ||  ||  ||  || &lt;br /&gt;
|-&lt;br /&gt;
| Fix remaining hildon-desktop portait mode issues || The application launcher results in a black screen, and osso-xterm in portait mode is also resulting in a black screen || DONE || [[User:freemangordon]] ||  ||  || &lt;br /&gt;
|-&lt;br /&gt;
| Test phone calls on the droid4  || Phone calls should work, with audio, when alsamixer is set up properly, let's test it! || DONE || [[User:Wizzup]], [[User:Sicelo]] ||  ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Wizzup</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Development/Tasks&amp;diff=1683</id>
		<title>Development/Tasks</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Development/Tasks&amp;diff=1683"/>
		<updated>2024-06-26T09:54:19Z</updated>

		<summary type="html">&lt;p&gt;Wizzup: /* Applications */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Applications ==&lt;br /&gt;
&lt;br /&gt;
This page lists some of the more important open issues for Maemo Leste. We have a complete list here, on github, but it's a bit hard to navigate: https://github.com/maemo-leste/bugtracker/issues&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Task&lt;br /&gt;
! Description&lt;br /&gt;
! Task Status&lt;br /&gt;
! User(s) working on task&lt;br /&gt;
! GH Bug&lt;br /&gt;
! URLs&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Gtk3 port of theme and hildon widgets || Big task, port hildon widgets and theme from gtk2 to gtk3. &amp;lt;b&amp;gt;Funding is available for this task&amp;lt;/b&amp;gt; || WIP || || https://github.com/maemo-leste/bugtracker/issues/261 || || Parayzd is working on this&lt;br /&gt;
|-&lt;br /&gt;
| Qt5 of theme and hildon widgets || Significant task || MOSTLY || [[User:freemangordon]] made a start, [[User:Wizzup]] picked up some of the work  ||  || https://github.com/maemo-leste/qtstyleplugins/ + https://github.com/maemo-leste/qt-platform-maemo/tree/qmenu || Mainly usable already!&lt;br /&gt;
|-&lt;br /&gt;
| libicd-network-ofono should set up ipv4 upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || DONE ||  ||  ||  ||  &lt;br /&gt;
|-&lt;br /&gt;
| Extend ofono droid4 modem support  || This is done and should be stable. || DONE || Tony, Pavel, [[User:freemangordon]] and [[User:Wizzup]] are working on this ||  || https://github.com/pavelmachek/ofono/commits/d4-v1.29  ||&lt;br /&gt;
|-&lt;br /&gt;
| Finish connui-cellular port to ofono  || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || https://github.com/maemo-leste/bugtracker/issues/256 || https://github.com/maemo-leste/connui-cellular  ||&lt;br /&gt;
|-&lt;br /&gt;
| Test phone calls on the N900  || Figure out cmtspeechdata magic || WORKS || [[User:Wizzup]], [[User:Sicelo]], Pavel ||  ||  ||&lt;br /&gt;
|-&lt;br /&gt;
| Create simple phone UI to test dialing/accepting phone calls using Telepathy || Can use sphone, which works for calls right now, just not using Telepathy. || WORKS || ? ||  ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;hildonize&amp;quot; surf2 or create a simple &amp;quot;hildonized&amp;quot; gtk2 webkit browser || We'll need a basic browser. surf2 (in Debian) could be a good start, but the current package needs gtk3, and we only have a hildon (maemo ui) port for gtk2 right now. So let's make sure we can build something with webkit against gtk2. || WIP || [[User:Parazyd]] ||  ||  ||&lt;br /&gt;
|-&lt;br /&gt;
| Look at N900 power saving || We do not hit omap off modes nearly as much as we should (in fact, we never do), this should be looked at || WIP || [[User:Wizzup]], tmlind ||  ||  || Actually works quite well on the droid4. Let's do the same for Droid4. :) &lt;br /&gt;
|-&lt;br /&gt;
| osso-abook || We need osso-abook in place for all applications that need contacts (phone ui, sms ui, email ui, more) || DONE || [[User:freemangordon]] ||  ||https://github.com/maemo-leste/osso-abook  || Making good progress&lt;br /&gt;
|-&lt;br /&gt;
| Port all packages for maemo-leste to debhelper 9 or higher || Requires for us to migrate to a newer Debian (Buster) / Devuan (Beowulf) || DONE || [[User:Parazyd]], [[User:Wizzup]], [[User:meridion]], [[User:Spinal84]] || https://github.com/maemo-leste/bugtracker/issues/234 ||  || &lt;br /&gt;
|-&lt;br /&gt;
| Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || DONE || [[User:ThomasAH]], Spinal84 || https://github.com/maemo-leste/ke-recv/pull/2 ; https://github.com/maemo-leste/bugtracker/issues/17#issuecomment-528497018 || ke-recv part for slide monitoring is in place, we just need live keyboard-attached monitoring now. https://github.com/maemo-leste/mce/blob/master/event-input.c#L474 https://github.com/maemo-leste/ke-recv-extra/blob/master/src/input-device.c || mce has quite some usable code for this already, resulting code should probably go into ke-recv-extra (aka hulda). mer-core (sailfish/nemomobile) has keyboard monitoring integrated into mce, so we could also look at (using) that&lt;br /&gt;
|-&lt;br /&gt;
| Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 ? || *MAYBE* Required on devices with a PowerVR GPU like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || DONE (by staying at clutter 0.8) ||  || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches   ||  &lt;br /&gt;
|-&lt;br /&gt;
| Set up leste &amp;quot;extras&amp;quot; repository  || A repository with non-core applications, games, etc would be very welcome || DONE || [[User:Wizzup]], [[User:Parazyd]] ||  || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/   ||&lt;br /&gt;
|-&lt;br /&gt;
| hildon-application-manager usable || We currently have HAM packaged, but it needs fixes for various compile issues we hacked around, cssu-specific parts need to be removed, and we need to figure out what we need to do for our repositories to make it work well || DONE || [[User:minicom]], [[User:Wizzup]], [[User:Parazyd]] ||  ||  || Goal is to have a usable app manager, so let's just use it, fix it, use it, etc.&lt;br /&gt;
|-&lt;br /&gt;
| Fix virtual keyboard rendering || On a screen that is not the same of the N900 (800x480), the virtual keyboard doesn't look very pretty. Lets just make it work on any display size || DONE ||  ||  ||  || &lt;br /&gt;
|-&lt;br /&gt;
| Fix remaining hildon-desktop portait mode issues || The application launcher results in a black screen, and osso-xterm in portait mode is also resulting in a black screen || DONE || [[User:freemangordon]] ||  ||  || &lt;br /&gt;
|-&lt;br /&gt;
| Test phone calls on the droid4  || Phone calls should work, with audio, when alsamixer is set up properly, let's test it! || DONE || [[User:Wizzup]], [[User:Sicelo]] ||  ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Wizzup</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Development&amp;diff=1620</id>
		<title>Development</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Development&amp;diff=1620"/>
		<updated>2024-05-29T10:29:45Z</updated>

		<summary type="html">&lt;p&gt;Wizzup: &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 Chimaera, which is based on Debian Bullseye.&lt;br /&gt;
&lt;br /&gt;
== Guides ==&lt;br /&gt;
&lt;br /&gt;
* [[Development/Porting Packages]]&lt;br /&gt;
* [[Development/Building Packages]]&lt;br /&gt;
* [[Development/Modified Software]]&lt;br /&gt;
* [[Development/Device Bringup]]&lt;br /&gt;
* https://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide&lt;br /&gt;
&lt;br /&gt;
== Technical ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All our git repositories can be found here: https://github.com/maemo-leste&lt;br /&gt;
&lt;br /&gt;
=== Jenkins ===&lt;br /&gt;
&lt;br /&gt;
To aid development and provide &amp;quot;continous integration&amp;quot; we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/&lt;br /&gt;
&lt;br /&gt;
=== Developing on a device ===&lt;br /&gt;
&lt;br /&gt;
All development software and tests end up in 'chimaera-devel' apt source. For enabling this edit '/etc/apt/sources.list' and add this line: &lt;br /&gt;
&lt;br /&gt;
 deb https://maedevu.maemo.org/leste chimaera-devel main contrib non-free droid4&lt;br /&gt;
&lt;br /&gt;
The exact line might depend on your device; just copy the maemo chimaera line and change chimaera to chimaera-devel - for example, if you're not on a mapphone (droid) device, you probably don't want the droid4 component in the line.&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 'scratchbox' type VM)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]].&lt;br /&gt;
&lt;br /&gt;
=== Building a Maemo Leste image ===&lt;br /&gt;
&lt;br /&gt;
See https://leste.maemo.org/Image_Builder&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== List of Programs/Daemon specific to Maemo ===&lt;br /&gt;
&lt;br /&gt;
https://leste.maemo.org/Development/Daemons&lt;br /&gt;
&lt;br /&gt;
=== Crossbuilding ===&lt;br /&gt;
&lt;br /&gt;
Multiarch is an ability present on modern Debian systems that allows you to build native packages for different architectures. This is nice because you can build packages for an ARM based phone using the full power of your x86 based PC/Mac/Notebook or a server.&lt;br /&gt;
&lt;br /&gt;
Here we show how you can easily setup a multiarch environment and build a native package for Maemo Leste running on Nokia N900. We are going to make a container (chroot) for this job. It's because we don't want to pollute our main system.&lt;br /&gt;
&lt;br /&gt;
 # Make a container for our development system&lt;br /&gt;
 DIR=/var/lib/container/stretch&lt;br /&gt;
 sudo apt-get install qemu-user-static debootstrap systemd-container &amp;amp;&amp;amp;&lt;br /&gt;
 sudo debootstrap --arch=armhf stretch $DIR http://deb.debian.org/debian &amp;amp;&amp;amp;&lt;br /&gt;
 echo &amp;quot;strech_cross&amp;quot; | sudo tee $DIR/etc/debian_chroot &amp;amp;&amp;amp;&lt;br /&gt;
 sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR&lt;br /&gt;
 &lt;br /&gt;
 # Setup build environment inside the container&lt;br /&gt;
 cat &amp;gt;&amp;gt; ~/.bashrc &amp;lt;&amp;lt; EOF &amp;amp;&amp;amp;&lt;br /&gt;
 export PKG_CONFIG_PATH=/usr/lib/pkgconfig&lt;br /&gt;
 export CC=arm-linux-gnueabihf-gcc&lt;br /&gt;
 export JOBS=$(grep processor /proc/cpuinfo | wc -l)&lt;br /&gt;
 EOF&lt;br /&gt;
 dpkg --add-architecture armhf &amp;amp;&amp;amp;&lt;br /&gt;
 apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates &amp;amp;&amp;amp;&lt;br /&gt;
 cat &amp;gt;&amp;gt; /etc/apt/sources.list &amp;lt;&amp;lt; &amp;quot;EOF&amp;quot; &amp;amp;&amp;amp;&lt;br /&gt;
 deb http://maedevu.maemo.org/leste ascii main contrib non-free n900&lt;br /&gt;
 deb http://maedevu.maemo.org/leste ascii-devel main contrib non-free n900&lt;br /&gt;
 &lt;br /&gt;
 deb-src http://deb.debian.org/debian stretch main&lt;br /&gt;
 deb-src http://maedevu.maemo.org/leste ascii main contrib non-free n900&lt;br /&gt;
 deb-src http://maedevu.maemo.org/leste ascii-devel main contrib non-free n900&lt;br /&gt;
 EOF&lt;br /&gt;
 wget --no-check-certificate https://maedevu.maemo.org/testing-key.asc &amp;amp;&amp;amp;&lt;br /&gt;
 apt-key add testing-key.asc &amp;amp;&amp;amp;&lt;br /&gt;
 rm -f testing-key.asc &amp;amp;&amp;amp;&lt;br /&gt;
 rm -f /var/cache/apt/archives/*.deb &amp;amp;&amp;amp;&lt;br /&gt;
 apt-get update &amp;amp;&amp;amp;&lt;br /&gt;
 exec bash&lt;br /&gt;
 &lt;br /&gt;
 # Build Xorg for Nokia N900&lt;br /&gt;
 apt-get source xserver-xorg-core &amp;amp;&amp;amp;&lt;br /&gt;
 cd xorg-server-1.19.2 &amp;amp;&amp;amp;&lt;br /&gt;
 wget https://raw.githubusercontent.com/buildroot/buildroot/88e0f214dcb7c2a99a4425a70673d2aa5f48d720/package/x11r7/xserver_xorg-server/1.20.4/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch &amp;amp;&amp;amp;&lt;br /&gt;
 mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches &amp;amp;&amp;amp;&lt;br /&gt;
 echo -e &amp;quot;# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch&amp;quot; &amp;gt;&amp;gt; debian/patches/series &amp;amp;&amp;amp;&lt;br /&gt;
 apt-get -y build-dep -a armhf . &amp;amp;&amp;amp;&lt;br /&gt;
 time dpkg-buildpackage -aarmhf -j$JOBS -b &amp;amp;&amp;amp;&lt;br /&gt;
 echo OK || echo FAIL&lt;br /&gt;
&lt;br /&gt;
To login the container later:&lt;br /&gt;
 sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch&lt;br /&gt;
&lt;br /&gt;
To remove the container:&lt;br /&gt;
 sudo rm -fr /var/lib/container/stretch&lt;br /&gt;
&lt;br /&gt;
=== Cross-distro solution for development inside an ARM/ARM64 chroot on a PC ===&lt;br /&gt;
&lt;br /&gt;
It'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 '''update-binfmts''':&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'll now be ready to use your Maemo Leste ARM64 development environment:&lt;br /&gt;
&lt;br /&gt;
 $ uname -m&lt;br /&gt;
 aarch64&lt;br /&gt;
&lt;br /&gt;
Once you have finished with it, you can exit and unmount the resources you previously mounted:&lt;br /&gt;
&lt;br /&gt;
 $ exit&lt;br /&gt;
 $ sudo umount dev/pts dev proc&lt;br /&gt;
&lt;br /&gt;
=== Localization ===&lt;br /&gt;
&lt;br /&gt;
See [[Localization]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== TODO ===&lt;br /&gt;
&lt;br /&gt;
* Discuss where people look to pick up issues (clear answer is the bugtracker, but still)&lt;br /&gt;
* How people can make changes and how to send them in&lt;/div&gt;</summary>
		<author><name>Wizzup</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Sync&amp;diff=1619</id>
		<title>Sync</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Sync&amp;diff=1619"/>
		<updated>2024-04-27T10:09:25Z</updated>

		<summary type="html">&lt;p&gt;Wizzup: /* Radicale Testing Server */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page explains and suggests various ways of synchronizing contacts, calendars and files.&lt;br /&gt;
&lt;br /&gt;
= Calendar, Notes, Tasks and Contacts =&lt;br /&gt;
&lt;br /&gt;
Synchronizing calendar, notes and tasks (using CalDav) and contacts (using CardDav) can be done using syncevolution (other [https://syncevolution.org/documentation/backends/ backends are available], but not currently documented here). A frontend to running synchronization tasks is available in the repository (Syncevolution Frontend).&lt;br /&gt;
&lt;br /&gt;
== GUI ==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Syncevolution Frontend&amp;quot; application is a graphical interface to syncevolution. While the interface can technically help you set up the synchronisation configuration through the graphical interface, we haven't tried it and do not have instructions for it at the moment. We only use it for scheduling and running synchronisations - the configuration still has to be done using the console, currently.&lt;br /&gt;
&lt;br /&gt;
(Contributions welcome)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=320px heights=173px&amp;gt;&lt;br /&gt;
File:syncevolution.png|main syncevolution screen&lt;br /&gt;
File:syncevolution-2.png|syncevolution for a specific sync target&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Synchronizing with syncevolution CalDav + CardDav ==&lt;br /&gt;
&lt;br /&gt;
First, install syncevolution using '''sudo apt-get install syncevolution'''.&lt;br /&gt;
&lt;br /&gt;
If you get stuck in an odd state setting this up, you could consider running the following to get to a clean state, at least with regards to syncevolution configuration:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -rf /home/user/.config/syncevolution&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== NextCloud synchronizing ===&lt;br /&gt;
&lt;br /&gt;
We will be synchronizing the calendar and such using local '''maemo-events''', '''maemo-notes''' and '''maemo-tasks''' backends using the '''caldav''' backend. &lt;br /&gt;
For contacts, we will synchronize '''evolution-contacts''' using '''carddav'''.&lt;br /&gt;
&lt;br /&gt;
A few URLs are required, first, the '''main Nextcloud DAV url''', this will appear like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;https://my.nextcloud.org/remote.php/dav&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
then there is the '''url for a specific calendar''', this is called the &amp;quot;Private Link&amp;quot; and you can get it by clicking &amp;quot;Copy Private Link&amp;quot; for a given calendar in Nextcloud, this might look like so:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
https://my.nextcloud.org/remote.php/dav/calendars/userhere/calendarnamehere/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, for your address book (contacts) synchronization, the '''contacts URL''' is needed (in Nextcloud, go to contacts, settings, &amp;quot;Copy Link&amp;quot; for your contacts):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
https://my.nextcloud.org/remote.php/dav/addressbooks/users/userhere/contacts/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Given the above, a setup to synchronize calendar, tasks, notes and contacts could look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
syncevolution --configure \&lt;br /&gt;
              --template webdav \&lt;br /&gt;
             username=NEXTCLOUD-USER-HERE \&lt;br /&gt;
             password=NEXTCLOUD-PASS-HERE \&lt;br /&gt;
             syncURL=MAIN-DAV-URL-HERE \&lt;br /&gt;
             target-config@nextcloud&lt;br /&gt;
&lt;br /&gt;
syncevolution --configure \&lt;br /&gt;
              --template webdav \&lt;br /&gt;
             database=CALENDAR-URL-HERE \&lt;br /&gt;
             backend=caldavtodo \&lt;br /&gt;
             target-config@nextcloud nextcloudtodo&lt;br /&gt;
&lt;br /&gt;
syncevolution --configure \&lt;br /&gt;
              --template webdav \&lt;br /&gt;
             database=CALENDAR-URL-HERE \&lt;br /&gt;
             backend=caldavjournal \&lt;br /&gt;
             target-config@nextcloud nextcloudjournal&lt;br /&gt;
&lt;br /&gt;
syncevolution --configure \&lt;br /&gt;
              --template webdav \&lt;br /&gt;
             database=CALENDAR-URL-HERE \&lt;br /&gt;
             backend=caldav \&lt;br /&gt;
             target-config@nextcloud nextcloudcal&lt;br /&gt;
&lt;br /&gt;
syncevolution --configure \&lt;br /&gt;
              --template webdav \&lt;br /&gt;
             database=CONTACTS-URL-HERE \&lt;br /&gt;
             backend=carddav \&lt;br /&gt;
             target-config@nextcloud contacts&lt;br /&gt;
&lt;br /&gt;
syncevolution --configure \&lt;br /&gt;
             --template SyncEvolution_Client \&lt;br /&gt;
             sync=none \&lt;br /&gt;
             syncURL=local://@nextcloud \&lt;br /&gt;
             username= \&lt;br /&gt;
             password= \&lt;br /&gt;
             nextcloud&lt;br /&gt;
&lt;br /&gt;
syncevolution --configure \&lt;br /&gt;
             sync=two-way \&lt;br /&gt;
             backend=maemo-tasks \&lt;br /&gt;
             database= \&lt;br /&gt;
             nextcloud nextcloudtodo&lt;br /&gt;
&lt;br /&gt;
syncevolution --configure \&lt;br /&gt;
             sync=two-way \&lt;br /&gt;
             backend=maemo-notes\&lt;br /&gt;
             database= \&lt;br /&gt;
             nextcloud nextcloudjournal&lt;br /&gt;
&lt;br /&gt;
syncevolution --configure \&lt;br /&gt;
             sync=two-way \&lt;br /&gt;
             backend=maemo-events \&lt;br /&gt;
             database= \&lt;br /&gt;
             nextcloud nextcloudcal&lt;br /&gt;
&lt;br /&gt;
syncevolution --configure \&lt;br /&gt;
             sync=two-way \&lt;br /&gt;
             backend=evolution-contacts \&lt;br /&gt;
             nextcloud contacts&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All of the above is configuration that only needs to be done once.&lt;br /&gt;
&lt;br /&gt;
Depending on your exact situation, your initial synchronisation could only use only values from your phone, from your nextcloud, or both. If you want to merge both, my understanding is that the '''slow'''  method achieves this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
syncevolution --sync slow nextcloud nextcloudjournal&lt;br /&gt;
syncevolution --sync slow nextcloud nextcloudtodo&lt;br /&gt;
syncevolution --sync slow nextcloud nextcloudcal&lt;br /&gt;
syncevolution --sync slow nextcloud contacts&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use the '''two-way''' synchronization method for '''normal synchronization''' (daily, hourly, etc synchronizations), like so: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
syncevolution --sync two-way nextcloud nextcloudjournal&lt;br /&gt;
syncevolution --sync two-way nextcloud nextcloudtodo&lt;br /&gt;
syncevolution --sync two-way nextcloud nextcloudcal&lt;br /&gt;
syncevolution --sync two-way nextcloud contacts&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Managing and synchronising additional calendars ===&lt;br /&gt;
&lt;br /&gt;
The default maemo-events / maemo-tasks / maemo-notes database is called &amp;quot;N900&amp;quot; (in the Calendar application, go to Settings, and then click on &amp;quot;Edit claendars&amp;quot;) - marked as &amp;quot;DEFAULT_SYNC&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This means that is no specific database is provided above, the synchronisation will be done against this calendar. If you have a need to have multiple remote calendars and sync them against other Maemo calendars, create a new calendar using the Calendar application (Settings -&amp;gt; Edit calendars -&amp;gt; New). For the sake of the example, call it MoreTasks.&lt;br /&gt;
&lt;br /&gt;
Then, assuming you used the above nextcloud synchronisation example, run something like this (this example only syncs tasks/todo):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
syncevolution --configure \&lt;br /&gt;
              --template webdav \&lt;br /&gt;
             database=TASKS_URL \&lt;br /&gt;
             backend=caldavtodo \&lt;br /&gt;
             target-config@nextcloud moretaskstodo&lt;br /&gt;
syncevolution --configure \&lt;br /&gt;
             sync=two-way \&lt;br /&gt;
             backend=maemo-tasks \&lt;br /&gt;
             database=MoreTasks \&lt;br /&gt;
             nextcloud moretaskstodo&lt;br /&gt;
syncevolution --sync slow nextcloud nextcloudtodo&lt;br /&gt;
syncevolution --sync two-way nextcloud moretaskstodo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The trick being that you specify the database name for the &amp;quot;database=&amp;quot; argument to the second syncevolution call.&lt;br /&gt;
&lt;br /&gt;
=== Warning: TLS Chain validation issues ===&lt;br /&gt;
&lt;br /&gt;
If you run into problems with TLS Chain validation, first try to figure out if the problem is on your end.&lt;br /&gt;
Syncevolution did have a problem for me validation the chain of my next cloud instance, so for testing purposes I set '''SSLVerifyServer = 0''' in '''/home/user/.config/syncevolution/nextcloud/peers/target-config/config.ini'''&lt;br /&gt;
&lt;br /&gt;
On Chimaera this problem should no longer exist - it was only a problem for Beowulf.&lt;br /&gt;
&lt;br /&gt;
== Radicale synchronising ==&lt;br /&gt;
&lt;br /&gt;
Radicale is a simple CardDAV and CalDAV server, and is set up similarly to nextcloud. Just browse to the Radicale web URL, and use the following URLs:&lt;br /&gt;
&lt;br /&gt;
# The main DAV url is simple the URL to your radicale server (without the .web part)&lt;br /&gt;
# The calendar URL is simply the http(s) URL to the calendar that you want to synchronize&lt;br /&gt;
# The contacts URL is simple the http(s) URL of the addressbook that you want to synchronize&lt;br /&gt;
&lt;br /&gt;
The username (and optional password) are the radicale credentials.&lt;br /&gt;
&lt;br /&gt;
=== Radicale Testing Server ===&lt;br /&gt;
&lt;br /&gt;
For testing purposes, here is how to quickly run a radicale server, this assumes that radicale is installed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p ~/radicale&lt;br /&gt;
cd ~/radicale&lt;br /&gt;
python3  -m radicale --config &amp;quot;&amp;quot; --storage-filesystem-folder `pwd` -H localhost:5223 --logging-level info&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now browse to http://localhost:5223, create an account (password is optional), and you should be able to synchronize, assuming the devices can reach your radicale server (don't have it listen on localhost only, perhaps use 0.0.0.0:5223 for LAN testing)&lt;br /&gt;
&lt;br /&gt;
= Files synchronization =&lt;br /&gt;
&lt;br /&gt;
This section ought to discuss software that can be used for this purpose, e.g. syncthing, nextcloud, ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Parazyd started on a GUI for nextcloud file synchronisation, here: https://github.com/maemo-leste-extras/nextcloud-sync&lt;br /&gt;
&lt;br /&gt;
= Known Issues =&lt;br /&gt;
&lt;br /&gt;
* Synchronizing calendar to radicale gives errors if there are unnamed calendar events.&lt;br /&gt;
* Synchronizing contacts to radicale gives errors if there are contacts without Firstname or Lastname.&lt;br /&gt;
&lt;br /&gt;
= Further reading =&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;old&amp;quot; Maemo page on synchronisation might prove fruitful for those wanting to port over more: https://wiki.maemo.org/Sync&lt;/div&gt;</summary>
		<author><name>Wizzup</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Sync&amp;diff=1618</id>
		<title>Sync</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Sync&amp;diff=1618"/>
		<updated>2024-04-27T09:06:22Z</updated>

		<summary type="html">&lt;p&gt;Wizzup: Add instructions on how to sync to additional calendars&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page explains and suggests various ways of synchronizing contacts, calendars and files.&lt;br /&gt;
&lt;br /&gt;
= Calendar, Notes, Tasks and Contacts =&lt;br /&gt;
&lt;br /&gt;
Synchronizing calendar, notes and tasks (using CalDav) and contacts (using CardDav) can be done using syncevolution (other [https://syncevolution.org/documentation/backends/ backends are available], but not currently documented here). A frontend to running synchronization tasks is available in the repository (Syncevolution Frontend).&lt;br /&gt;
&lt;br /&gt;
== GUI ==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Syncevolution Frontend&amp;quot; application is a graphical interface to syncevolution. While the interface can technically help you set up the synchronisation configuration through the graphical interface, we haven't tried it and do not have instructions for it at the moment. We only use it for scheduling and running synchronisations - the configuration still has to be done using the console, currently.&lt;br /&gt;
&lt;br /&gt;
(Contributions welcome)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=320px heights=173px&amp;gt;&lt;br /&gt;
File:syncevolution.png|main syncevolution screen&lt;br /&gt;
File:syncevolution-2.png|syncevolution for a specific sync target&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Synchronizing with syncevolution CalDav + CardDav ==&lt;br /&gt;
&lt;br /&gt;
First, install syncevolution using '''sudo apt-get install syncevolution'''.&lt;br /&gt;
&lt;br /&gt;
If you get stuck in an odd state setting this up, you could consider running the following to get to a clean state, at least with regards to syncevolution configuration:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -rf /home/user/.config/syncevolution&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== NextCloud synchronizing ===&lt;br /&gt;
&lt;br /&gt;
We will be synchronizing the calendar and such using local '''maemo-events''', '''maemo-notes''' and '''maemo-tasks''' backends using the '''caldav''' backend. &lt;br /&gt;
For contacts, we will synchronize '''evolution-contacts''' using '''carddav'''.&lt;br /&gt;
&lt;br /&gt;
A few URLs are required, first, the '''main Nextcloud DAV url''', this will appear like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;https://my.nextcloud.org/remote.php/dav&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
then there is the '''url for a specific calendar''', this is called the &amp;quot;Private Link&amp;quot; and you can get it by clicking &amp;quot;Copy Private Link&amp;quot; for a given calendar in Nextcloud, this might look like so:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
https://my.nextcloud.org/remote.php/dav/calendars/userhere/calendarnamehere/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, for your address book (contacts) synchronization, the '''contacts URL''' is needed (in Nextcloud, go to contacts, settings, &amp;quot;Copy Link&amp;quot; for your contacts):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
https://my.nextcloud.org/remote.php/dav/addressbooks/users/userhere/contacts/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Given the above, a setup to synchronize calendar, tasks, notes and contacts could look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
syncevolution --configure \&lt;br /&gt;
              --template webdav \&lt;br /&gt;
             username=NEXTCLOUD-USER-HERE \&lt;br /&gt;
             password=NEXTCLOUD-PASS-HERE \&lt;br /&gt;
             syncURL=MAIN-DAV-URL-HERE \&lt;br /&gt;
             target-config@nextcloud&lt;br /&gt;
&lt;br /&gt;
syncevolution --configure \&lt;br /&gt;
              --template webdav \&lt;br /&gt;
             database=CALENDAR-URL-HERE \&lt;br /&gt;
             backend=caldavtodo \&lt;br /&gt;
             target-config@nextcloud nextcloudtodo&lt;br /&gt;
&lt;br /&gt;
syncevolution --configure \&lt;br /&gt;
              --template webdav \&lt;br /&gt;
             database=CALENDAR-URL-HERE \&lt;br /&gt;
             backend=caldavjournal \&lt;br /&gt;
             target-config@nextcloud nextcloudjournal&lt;br /&gt;
&lt;br /&gt;
syncevolution --configure \&lt;br /&gt;
              --template webdav \&lt;br /&gt;
             database=CALENDAR-URL-HERE \&lt;br /&gt;
             backend=caldav \&lt;br /&gt;
             target-config@nextcloud nextcloudcal&lt;br /&gt;
&lt;br /&gt;
syncevolution --configure \&lt;br /&gt;
              --template webdav \&lt;br /&gt;
             database=CONTACTS-URL-HERE \&lt;br /&gt;
             backend=carddav \&lt;br /&gt;
             target-config@nextcloud contacts&lt;br /&gt;
&lt;br /&gt;
syncevolution --configure \&lt;br /&gt;
             --template SyncEvolution_Client \&lt;br /&gt;
             sync=none \&lt;br /&gt;
             syncURL=local://@nextcloud \&lt;br /&gt;
             username= \&lt;br /&gt;
             password= \&lt;br /&gt;
             nextcloud&lt;br /&gt;
&lt;br /&gt;
syncevolution --configure \&lt;br /&gt;
             sync=two-way \&lt;br /&gt;
             backend=maemo-tasks \&lt;br /&gt;
             database= \&lt;br /&gt;
             nextcloud nextcloudtodo&lt;br /&gt;
&lt;br /&gt;
syncevolution --configure \&lt;br /&gt;
             sync=two-way \&lt;br /&gt;
             backend=maemo-notes\&lt;br /&gt;
             database= \&lt;br /&gt;
             nextcloud nextcloudjournal&lt;br /&gt;
&lt;br /&gt;
syncevolution --configure \&lt;br /&gt;
             sync=two-way \&lt;br /&gt;
             backend=maemo-events \&lt;br /&gt;
             database= \&lt;br /&gt;
             nextcloud nextcloudcal&lt;br /&gt;
&lt;br /&gt;
syncevolution --configure \&lt;br /&gt;
             sync=two-way \&lt;br /&gt;
             backend=evolution-contacts \&lt;br /&gt;
             nextcloud contacts&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All of the above is configuration that only needs to be done once.&lt;br /&gt;
&lt;br /&gt;
Depending on your exact situation, your initial synchronisation could only use only values from your phone, from your nextcloud, or both. If you want to merge both, my understanding is that the '''slow'''  method achieves this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
syncevolution --sync slow nextcloud nextcloudjournal&lt;br /&gt;
syncevolution --sync slow nextcloud nextcloudtodo&lt;br /&gt;
syncevolution --sync slow nextcloud nextcloudcal&lt;br /&gt;
syncevolution --sync slow nextcloud contacts&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use the '''two-way''' synchronization method for '''normal synchronization''' (daily, hourly, etc synchronizations), like so: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
syncevolution --sync two-way nextcloud nextcloudjournal&lt;br /&gt;
syncevolution --sync two-way nextcloud nextcloudtodo&lt;br /&gt;
syncevolution --sync two-way nextcloud nextcloudcal&lt;br /&gt;
syncevolution --sync two-way nextcloud contacts&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Managing and synchronising additional calendars ===&lt;br /&gt;
&lt;br /&gt;
The default maemo-events / maemo-tasks / maemo-notes database is called &amp;quot;N900&amp;quot; (in the Calendar application, go to Settings, and then click on &amp;quot;Edit claendars&amp;quot;) - marked as &amp;quot;DEFAULT_SYNC&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This means that is no specific database is provided above, the synchronisation will be done against this calendar. If you have a need to have multiple remote calendars and sync them against other Maemo calendars, create a new calendar using the Calendar application (Settings -&amp;gt; Edit calendars -&amp;gt; New). For the sake of the example, call it MoreTasks.&lt;br /&gt;
&lt;br /&gt;
Then, assuming you used the above nextcloud synchronisation example, run something like this (this example only syncs tasks/todo):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
syncevolution --configure \&lt;br /&gt;
              --template webdav \&lt;br /&gt;
             database=TASKS_URL \&lt;br /&gt;
             backend=caldavtodo \&lt;br /&gt;
             target-config@nextcloud moretaskstodo&lt;br /&gt;
syncevolution --configure \&lt;br /&gt;
             sync=two-way \&lt;br /&gt;
             backend=maemo-tasks \&lt;br /&gt;
             database=MoreTasks \&lt;br /&gt;
             nextcloud moretaskstodo&lt;br /&gt;
syncevolution --sync slow nextcloud nextcloudtodo&lt;br /&gt;
syncevolution --sync two-way nextcloud moretaskstodo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The trick being that you specify the database name for the &amp;quot;database=&amp;quot; argument to the second syncevolution call.&lt;br /&gt;
&lt;br /&gt;
=== Warning: TLS Chain validation issues ===&lt;br /&gt;
&lt;br /&gt;
If you run into problems with TLS Chain validation, first try to figure out if the problem is on your end.&lt;br /&gt;
Syncevolution did have a problem for me validation the chain of my next cloud instance, so for testing purposes I set '''SSLVerifyServer = 0''' in '''/home/user/.config/syncevolution/nextcloud/peers/target-config/config.ini'''&lt;br /&gt;
&lt;br /&gt;
On Chimaera this problem should no longer exist - it was only a problem for Beowulf.&lt;br /&gt;
&lt;br /&gt;
== Radicale synchronising ==&lt;br /&gt;
&lt;br /&gt;
Radicale is a simple CardDAV and CalDAV server, and is set up similarly to nextcloud. Just browse to the Radicale web URL, and use the following URLs:&lt;br /&gt;
&lt;br /&gt;
# The main DAV url is simple the URL to your radicale server (without the .web part)&lt;br /&gt;
# The calendar URL is simply the http(s) URL to the calendar that you want to synchronize&lt;br /&gt;
# The contacts URL is simple the http(s) URL of the addressbook that you want to synchronize&lt;br /&gt;
&lt;br /&gt;
The username (and optional password) are the radicale credentials.&lt;br /&gt;
&lt;br /&gt;
=== Radicale Testing Server ===&lt;br /&gt;
&lt;br /&gt;
For testing purposes, here is how to quickly run a radicale server, this assumed it's installed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p ~/radicale&lt;br /&gt;
cd ~/radicale&lt;br /&gt;
python3  -m radicale --config &amp;quot;&amp;quot; --storage-filesystem-folder `pwd` -H localhost:5223 --logging-level info&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now browse to http://localhost:5223, create an account (password is optional), and you should be able to synchronize, assuming the devices can reach your radicale server (don't have it listen on localhost only, perhaps use 0.0.0.0:5223 for LAN testing)&lt;br /&gt;
&lt;br /&gt;
= Files synchronization =&lt;br /&gt;
&lt;br /&gt;
This section ought to discuss software that can be used for this purpose, e.g. syncthing, nextcloud, ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Parazyd started on a GUI for nextcloud file synchronisation, here: https://github.com/maemo-leste-extras/nextcloud-sync&lt;br /&gt;
&lt;br /&gt;
= Known Issues =&lt;br /&gt;
&lt;br /&gt;
* Synchronizing calendar to radicale gives errors if there are unnamed calendar events.&lt;br /&gt;
* Synchronizing contacts to radicale gives errors if there are contacts without Firstname or Lastname.&lt;br /&gt;
&lt;br /&gt;
= Further reading =&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;old&amp;quot; Maemo page on synchronisation might prove fruitful for those wanting to port over more: https://wiki.maemo.org/Sync&lt;/div&gt;</summary>
		<author><name>Wizzup</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Sync&amp;diff=1617</id>
		<title>Sync</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Sync&amp;diff=1617"/>
		<updated>2024-04-22T22:57:11Z</updated>

		<summary type="html">&lt;p&gt;Wizzup: Update tls chain validation issues to mention it's ok now on chimaera&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page explains and suggests various ways of synchronizing contacts, calendars and files.&lt;br /&gt;
&lt;br /&gt;
= Calendar, Notes, Tasks and Contacts =&lt;br /&gt;
&lt;br /&gt;
Synchronizing calendar, notes and tasks (using CalDav) and contacts (using CardDav) can be done using syncevolution (other [https://syncevolution.org/documentation/backends/ backends are available], but not currently documented here). A frontend to running synchronization tasks is available in the repository (Syncevolution Frontend).&lt;br /&gt;
&lt;br /&gt;
== GUI ==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Syncevolution Frontend&amp;quot; application is a graphical interface to syncevolution. While the interface can technically help you set up the synchronisation configuration through the graphical interface, we haven't tried it and do not have instructions for it at the moment. We only use it for scheduling and running synchronisations - the configuration still has to be done using the console, currently.&lt;br /&gt;
&lt;br /&gt;
(Contributions welcome)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=320px heights=173px&amp;gt;&lt;br /&gt;
File:syncevolution.png|main syncevolution screen&lt;br /&gt;
File:syncevolution-2.png|syncevolution for a specific sync target&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Synchronizing with syncevolution CalDav + CardDav ==&lt;br /&gt;
&lt;br /&gt;
First, install syncevolution using '''sudo apt-get install syncevolution'''.&lt;br /&gt;
&lt;br /&gt;
If you get stuck in an odd state setting this up, you could consider running the following to get to a clean state, at least with regards to syncevolution configuration:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -rf /home/user/.config/syncevolution&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== NextCloud synchronizing ===&lt;br /&gt;
&lt;br /&gt;
We will be synchronizing the calendar and such using local '''maemo-events''', '''maemo-notes''' and '''maemo-tasks''' backends using the '''caldav''' backend. &lt;br /&gt;
For contacts, we will synchronize '''evolution-contacts''' using '''carddav'''.&lt;br /&gt;
&lt;br /&gt;
A few URLs are required, first, the '''main Nextcloud DAV url''', this will appear like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;https://my.nextcloud.org/remote.php/dav&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
then there is the '''url for a specific calendar''', this is called the &amp;quot;Private Link&amp;quot; and you can get it by clicking &amp;quot;Copy Private Link&amp;quot; for a given calendar in Nextcloud, this might look like so:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
https://my.nextcloud.org/remote.php/dav/calendars/userhere/calendarnamehere/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, for your address book (contacts) synchronization, the '''contacts URL''' is needed (in Nextcloud, go to contacts, settings, &amp;quot;Copy Link&amp;quot; for your contacts):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
https://my.nextcloud.org/remote.php/dav/addressbooks/users/userhere/contacts/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Given the above, a setup to synchronize calendar, tasks, notes and contacts could look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
syncevolution --configure \&lt;br /&gt;
              --template webdav \&lt;br /&gt;
             username=NEXTCLOUD-USER-HERE \&lt;br /&gt;
             password=NEXTCLOUD-PASS-HERE \&lt;br /&gt;
             syncURL=MAIN-DAV-URL-HERE \&lt;br /&gt;
             target-config@nextcloud&lt;br /&gt;
&lt;br /&gt;
syncevolution --configure \&lt;br /&gt;
              --template webdav \&lt;br /&gt;
             database=CALENDAR-URL-HERE \&lt;br /&gt;
             backend=caldavtodo \&lt;br /&gt;
             target-config@nextcloud nextcloudtodo&lt;br /&gt;
&lt;br /&gt;
syncevolution --configure \&lt;br /&gt;
              --template webdav \&lt;br /&gt;
             database=CALENDAR-URL-HERE \&lt;br /&gt;
             backend=caldavjournal \&lt;br /&gt;
             target-config@nextcloud nextcloudjournal&lt;br /&gt;
&lt;br /&gt;
syncevolution --configure \&lt;br /&gt;
              --template webdav \&lt;br /&gt;
             database=CALENDAR-URL-HERE \&lt;br /&gt;
             backend=caldav \&lt;br /&gt;
             target-config@nextcloud nextcloudcal&lt;br /&gt;
&lt;br /&gt;
syncevolution --configure \&lt;br /&gt;
              --template webdav \&lt;br /&gt;
             database=CONTACTS-URL-HERE \&lt;br /&gt;
             backend=carddav \&lt;br /&gt;
             target-config@nextcloud contacts&lt;br /&gt;
&lt;br /&gt;
syncevolution --configure \&lt;br /&gt;
             --template SyncEvolution_Client \&lt;br /&gt;
             sync=none \&lt;br /&gt;
             syncURL=local://@nextcloud \&lt;br /&gt;
             username= \&lt;br /&gt;
             password= \&lt;br /&gt;
             nextcloud&lt;br /&gt;
&lt;br /&gt;
syncevolution --configure \&lt;br /&gt;
             sync=two-way \&lt;br /&gt;
             backend=maemo-tasks \&lt;br /&gt;
             database= \&lt;br /&gt;
             nextcloud nextcloudtodo&lt;br /&gt;
&lt;br /&gt;
syncevolution --configure \&lt;br /&gt;
             sync=two-way \&lt;br /&gt;
             backend=maemo-notes\&lt;br /&gt;
             database= \&lt;br /&gt;
             nextcloud nextcloudjournal&lt;br /&gt;
&lt;br /&gt;
syncevolution --configure \&lt;br /&gt;
             sync=two-way \&lt;br /&gt;
             backend=maemo-events \&lt;br /&gt;
             database= \&lt;br /&gt;
             nextcloud nextcloudcal&lt;br /&gt;
&lt;br /&gt;
syncevolution --configure \&lt;br /&gt;
             sync=two-way \&lt;br /&gt;
             backend=evolution-contacts \&lt;br /&gt;
             nextcloud contacts&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All of the above is configuration that only needs to be done once.&lt;br /&gt;
&lt;br /&gt;
Depending on your exact situation, your initial synchronisation could only use only values from your phone, from your nextcloud, or both. If you want to merge both, my understanding is that the '''slow'''  method achieves this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
syncevolution --sync slow nextcloud nextcloudjournal&lt;br /&gt;
syncevolution --sync slow nextcloud nextcloudtodo&lt;br /&gt;
syncevolution --sync slow nextcloud nextcloudcal&lt;br /&gt;
syncevolution --sync slow nextcloud contacts&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use the '''two-way''' synchronization method for '''normal synchronization''' (daily, hourly, etc synchronizations), like so: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
syncevolution --sync two-way nextcloud nextcloudjournal&lt;br /&gt;
syncevolution --sync two-way nextcloud nextcloudtodo&lt;br /&gt;
syncevolution --sync two-way nextcloud nextcloudcal&lt;br /&gt;
syncevolution --sync two-way nextcloud contacts&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Warning: TLS Chain validation issues ====&lt;br /&gt;
&lt;br /&gt;
If you run into problems with TLS Chain validation, first try to figure out if the problem is on your end.&lt;br /&gt;
Syncevolution did have a problem for me validation the chain of my next cloud instance, so for testing purposes I set '''SSLVerifyServer = 0''' in '''/home/user/.config/syncevolution/nextcloud/peers/target-config/config.ini'''&lt;br /&gt;
&lt;br /&gt;
On Chimaera this problem should no longer exist - it was only a problem for Beowulf.&lt;br /&gt;
&lt;br /&gt;
== Radicale synchronising ==&lt;br /&gt;
&lt;br /&gt;
Radicale is a simple CardDAV and CalDAV server, and is set up similarly to nextcloud. Just browse to the Radicale web URL, and use the following URLs:&lt;br /&gt;
&lt;br /&gt;
# The main DAV url is simple the URL to your radicale server (without the .web part)&lt;br /&gt;
# The calendar URL is simply the http(s) URL to the calendar that you want to synchronize&lt;br /&gt;
# The contacts URL is simple the http(s) URL of the addressbook that you want to synchronize&lt;br /&gt;
&lt;br /&gt;
The username (and optional password) are the radicale credentials.&lt;br /&gt;
&lt;br /&gt;
=== Radicale Testing Server ===&lt;br /&gt;
&lt;br /&gt;
For testing purposes, here is how to quickly run a radicale server, this assumed it's installed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p ~/radicale&lt;br /&gt;
cd ~/radicale&lt;br /&gt;
python3  -m radicale --config &amp;quot;&amp;quot; --storage-filesystem-folder `pwd` -H localhost:5223 --logging-level info&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now browse to http://localhost:5223, create an account (password is optional), and you should be able to synchronize, assuming the devices can reach your radicale server (don't have it listen on localhost only, perhaps use 0.0.0.0:5223 for LAN testing)&lt;br /&gt;
&lt;br /&gt;
= Files synchronization =&lt;br /&gt;
&lt;br /&gt;
This section ought to discuss software that can be used for this purpose, e.g. syncthing, nextcloud, ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Parazyd started on a GUI for nextcloud file synchronisation, here: https://github.com/maemo-leste-extras/nextcloud-sync&lt;br /&gt;
&lt;br /&gt;
= Known Issues =&lt;br /&gt;
&lt;br /&gt;
* Synchronizing calendar to radicale gives errors if there are unnamed calendar events.&lt;br /&gt;
* Synchronizing contacts to radicale gives errors if there are contacts without Firstname or Lastname.&lt;br /&gt;
&lt;br /&gt;
= Further reading =&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;old&amp;quot; Maemo page on synchronisation might prove fruitful for those wanting to port over more: https://wiki.maemo.org/Sync&lt;/div&gt;</summary>
		<author><name>Wizzup</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Main_Page&amp;diff=1559</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Main_Page&amp;diff=1559"/>
		<updated>2023-09-02T12:23:10Z</updated>

		<summary type="html">&lt;p&gt;Wizzup: Beowulf-&amp;gt;Chimaera&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Description ==&lt;br /&gt;
&lt;br /&gt;
Welcome to the Maemo Leste wiki; Maemo Leste continues the legacy of Maemo Fremantle. We aim to provide a free Maemo experience on mobile phones and tablets like the Nokia N900, Motorola Droid 4, PinePhone, Allwinner Tablets and more.&lt;br /&gt;
&lt;br /&gt;
You can find us on '''irc.libera.chat''', channel '''#maemo-leste''', you can [[IRC_channel|use Matrix]] to connect if you wish.&lt;br /&gt;
&lt;br /&gt;
For an overview of the current status, you might want to check out: [[Status]]&lt;br /&gt;
&lt;br /&gt;
Maemo Leste is based on Devuan Chimaera (Debian Chimaera) and all the &amp;quot;supported&amp;quot; devices ship with recent Linux (mainline-based) kernels.&lt;br /&gt;
&lt;br /&gt;
The project is currently not usable as a daily driver for your device. Maemo Leste is currently in development phase and we are actively searching for developers.&lt;br /&gt;
&lt;br /&gt;
For some devices, we have development images available, such as the [[Nokia_N900]], the [[Motorola Droid 4]] and the [[PinePhone]]. So far we have set up Devuan/Debian repositories for our packages, with builds for armhf, arm64 and amd64. We have FOSS replacements for some closed Maemo packages, further building on the Maemo community efforts to replace all closed bits by open software.&lt;br /&gt;
&lt;br /&gt;
If you have not used Maemo before, you might want to check out some of the tips on the [[HowTo]] page.&lt;br /&gt;
&lt;br /&gt;
== Useful resources, lists and pages ==&lt;br /&gt;
&lt;br /&gt;
* To get started with a new install, see [[Getting_Started|Getting Started]].&lt;br /&gt;
* Read our [[Leste_FAQ|Frequently Asked Questions]]&lt;br /&gt;
* List of [[:Category:Device]] with support to varying degrees&lt;br /&gt;
* Latest downloadable images: https://phoenix.maemo.org/view/Images/&lt;br /&gt;
* List of &amp;quot;extras&amp;quot; software packages that have a wiki page: https://leste.maemo.org/Category:Extras&lt;br /&gt;
* Read how to get started with [[Development]]&lt;br /&gt;
* You have an application you want to see in Leste? Please let us know [[Wishlist|here]].&lt;br /&gt;
* For a list of presentations/talks featuring Maemo Leste, see [[Talks]]&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
The central point of meeting and talking is '''IRC''' ('''irc.libera.chat''' in '''#maemo-leste''') and this thread: https://talk.maemo.org/showthread.php?t=100192.&lt;br /&gt;
&lt;br /&gt;
* Our Blog: [https://maemo-leste.github.io https://maemo-leste.github.io]&lt;br /&gt;
&lt;br /&gt;
* Our Bugtracker: [https://github.com/maemo-leste/bugtracker/issues https://github.com/maemo-leste/bugtracker/issues]&lt;br /&gt;
&lt;br /&gt;
* Our Github: [https://github.com/maemo-leste/ https://github.com/maemo-leste/]&lt;br /&gt;
&lt;br /&gt;
* Our Github subdomain: [https://maemo-leste.github.io/ https://maemo-leste.github.io/]&lt;br /&gt;
&lt;br /&gt;
* Our Extras Github: [https://github.com/maemo-leste-extras/ https://github.com/maemo-leste-extras/]&lt;br /&gt;
&lt;br /&gt;
* Our Images: [http://maedevu.maemo.org/images/ http://maedevu.maemo.org/images/] and https://phoenix.maemo.org/view/Images/&lt;br /&gt;
&lt;br /&gt;
* Our Jenkins build server: [https://phoenix.maemo.org/ https://phoenix.maemo.org/]&lt;br /&gt;
&lt;br /&gt;
* Our IRC chat history: [http://maedevu.maemo.org/irc.txt http://maedevu.maemo.org/irc.txt] and https://libera.irclog.whitequark.org/maemo-leste/ (previously: https://freenode.irclog.whitequark.org/maemo-leste/)&lt;br /&gt;
&lt;br /&gt;
* Our YouTube channel: [https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w https://www.youtube.com/channel/UCgAWiHvWSuJAg5hjk7JYn1w] (via [https://www.invidio.us/channel/UCgAWiHvWSuJAg5hjk7JYn1w Invidious] )&lt;br /&gt;
&lt;br /&gt;
* Our Package index and info: [https://maedevu.maemo.org/pkgweb/ https://maedevu.maemo.org/pkgweb/] which runs [https://github.com/maemo-leste/mpi https://github.com/maemo-leste/mpi]&lt;br /&gt;
&lt;br /&gt;
* Mailing List: [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html]&lt;br /&gt;
&lt;br /&gt;
* Our Forum [https://talk.maemo.org/forumdisplay.php?f=66 https://talk.maemo.org/forumdisplay.php?f=66]&lt;br /&gt;
&lt;br /&gt;
* RSS feed: [https://maemo-leste.github.io/feeds/all.atom.xml https://maemo-leste.github.io/feeds/all.atom.xml]&lt;br /&gt;
&lt;br /&gt;
* Our Twitter: [https://twitter.com/maemoleste @maemoleste]&lt;br /&gt;
&lt;br /&gt;
* Distrowatch: [https://distrowatch.com/dwres.php?resource=submit Maemo Leste] (give us an upvote)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wizzup</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Status&amp;diff=1533</id>
		<title>Status</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Status&amp;diff=1533"/>
		<updated>2023-05-11T08:16:31Z</updated>

		<summary type="html">&lt;p&gt;Wizzup: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
&lt;br /&gt;
For Device specific status pages, see See [[:Category:Device]]&lt;br /&gt;
&lt;br /&gt;
The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Feature&lt;br /&gt;
! Status&lt;br /&gt;
! Leste software&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Desktop environment || OK ||  hildon || hildon home, hildon desktop, .&lt;br /&gt;
|-&lt;br /&gt;
| [[Terminal]] || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] || &lt;br /&gt;
|-&lt;br /&gt;
| [[Status/VirtualKeyboard|Virtual keyboard]] || WIP || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work fine for all devices, GTK2 only.&lt;br /&gt;
|-&lt;br /&gt;
| [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Works out of the box. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7&lt;br /&gt;
|-&lt;br /&gt;
| Bluetooth || WIP || Just works if supported in the kernel, but no Maemo UI available to configure it, blueman-manager can be used || &lt;br /&gt;
|-&lt;br /&gt;
| [[Status/Browser|Browser]] || WIP || ? || qtwebbrowser works &lt;br /&gt;
|-&lt;br /&gt;
| [[Status/Audio|Audio]] || OK || ? || [Basic audio/sounds work (like, notifications, charging notification, etc); will need to import alsa-policy-enforcement, port OHM&lt;br /&gt;
|-&lt;br /&gt;
| Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste/upower upower] ||&lt;br /&gt;
|-&lt;br /&gt;
| [[Status/USB Peripheral|USB Peripheral]] || OK || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900/Droid4/Allwinner, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv &lt;br /&gt;
|-&lt;br /&gt;
| LED control || OK || mce || Make sure the notifications are enabled in settings.&lt;br /&gt;
|-&lt;br /&gt;
| [[Status/Mobile Data|Mobile Data]] || OK || [https://github.com/maemo-leste/connui-cellular connui-cellular] [https://github.com/maemo-leste/libicd-network-ofono libicd-network-ofono] || There is basic libicd-network-ofono, connui-cellular is being ported to ofono, UI needs some more work, but mostly just works&lt;br /&gt;
|-&lt;br /&gt;
| [[Status/GPS|GPS]] || OK || gpsd, liblocation, location-daemon ||&lt;br /&gt;
|-&lt;br /&gt;
| [[Status/SMS|SMS]] || OK || sphone, conversations, ofono, telepathy-ring ? ||&lt;br /&gt;
|-&lt;br /&gt;
| [[Status/Phone Calls|Phone Calls]] || OK || sphone, ofono, telepathy-ring ? || Just works on most of the devices, except for the [https://github.com/maemo-leste/bugtracker/issues/77 n900]&lt;br /&gt;
|-&lt;br /&gt;
| [[Status/Application Manager|Application Manager]] || OK || [https://github.com/maemo-leste/hildon-application-manager hildon-application-manager] || Works fine, theme might look a bit off on higher resolution displays&lt;br /&gt;
|-&lt;br /&gt;
| [[Status/Media Player|Media Player]] || WIP || OMP (open media player) being ported, listening to radio streams works, local music/video coming || [https://github.com/maemo-leste/bugtracker/issues/25 tracking issue]&lt;br /&gt;
|-&lt;br /&gt;
| [[Status/PDF Viewer|PDF Viewer]] || Mostly works || osso-pdf-viewer || [https://github.com/maemo-leste/osso-pdf-viewer osso-pdf-viewer]&lt;br /&gt;
|-&lt;br /&gt;
| [[Status/Games|Games &amp;amp; Entertainment]] || OK || Works (available in [[Leste Extras]] || [https://github.com/maemo-leste/bugtracker/issues/18 sdl fullscreen] [https://github.com/maemo-leste/bugtracker/issues/238 game importing]&lt;br /&gt;
|-&lt;br /&gt;
| [[Status/Theming|Theming]] || OK || Works with themes (available in [[Leste Extras]] ||&lt;br /&gt;
|-&lt;br /&gt;
| [[Calendar|Calendar]] || OK || Qalendar UI, syncing works. (UI needs some scrolling work) ||&lt;br /&gt;
|-&lt;br /&gt;
| [[Qt|Qt]] || OK || Qt5 port mostly works || https://github.com/maemo-leste/qtstyleplugins/ + https://github.com/maemo-leste/qt-platform-maemo&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Wizzup</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Status&amp;diff=1532</id>
		<title>Status</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Status&amp;diff=1532"/>
		<updated>2023-05-11T08:13:16Z</updated>

		<summary type="html">&lt;p&gt;Wizzup: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
&lt;br /&gt;
For Device specific status pages, see See [[:Category:Device]]&lt;br /&gt;
&lt;br /&gt;
The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Feature&lt;br /&gt;
! Status&lt;br /&gt;
! Leste software&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Desktop environment || OK ||  hildon || hildon home, hildon desktop, .&lt;br /&gt;
|-&lt;br /&gt;
| [[Terminal]] || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] || &lt;br /&gt;
|-&lt;br /&gt;
| [[Status/VirtualKeyboard|Virtual keyboard]] || WIP || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work fine for all devices, GTK2 only.&lt;br /&gt;
|-&lt;br /&gt;
| [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Works out of the box. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7&lt;br /&gt;
|-&lt;br /&gt;
| Bluetooth || WIP || Just works if supported in the kernel, but no Maemo UI available to configure it, blueman-manager can be used || &lt;br /&gt;
|-&lt;br /&gt;
| [[Status/Browser|Browser]] || WIP || ? || qtwebbrowser works &lt;br /&gt;
|-&lt;br /&gt;
| [[Status/Audio|Audio]] || OK || ? || [Basic audio/sounds work (like, notifications, charging notification, etc); will need to import alsa-policy-enforcement, port OHM&lt;br /&gt;
|-&lt;br /&gt;
| Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste/upower upower] ||&lt;br /&gt;
|-&lt;br /&gt;
| [[Status/USB Peripheral|USB Peripheral]] || OK || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900/Droid4/Allwinner, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv &lt;br /&gt;
|-&lt;br /&gt;
| LED control || OK || mce || Make sure the notifications are enabled in settings.&lt;br /&gt;
|-&lt;br /&gt;
| [[Status/Mobile Data|Mobile Data]] || OK || [https://github.com/maemo-leste/connui-cellular connui-cellular] [https://github.com/maemo-leste/libicd-network-ofono libicd-network-ofono] || There is basic libicd-network-ofono, connui-cellular is being ported to ofono, UI needs some more work, but mostly just works&lt;br /&gt;
|-&lt;br /&gt;
| [[Status/GPS|GPS]] || OK || gpsd, liblocation, location-daemon ||&lt;br /&gt;
|-&lt;br /&gt;
| [[Status/SMS|SMS]] || OK || sphone, conversations, ofono, telepathy-ring ? ||&lt;br /&gt;
|-&lt;br /&gt;
| [[Status/Phone Calls|Phone Calls]] || OK || sphone, ofono, telepathy-ring ? || Just works on most of the devices, except for the [https://github.com/maemo-leste/bugtracker/issues/77 n900]&lt;br /&gt;
|-&lt;br /&gt;
| [[Status/Application Manager|Application Manager]] || OK || [https://github.com/maemo-leste/hildon-application-manager hildon-application-manager] || Mostly works, but needs serious testing [https://github.com/maemo-leste/bugtracker/issues/202 tracking issue]&lt;br /&gt;
|-&lt;br /&gt;
| [[Status/Media Player|Media Player]] || WIP || OMP (open media player) being ported, listening to radio streams works, local music/video coming || [https://github.com/maemo-leste/bugtracker/issues/25 tracking issue]&lt;br /&gt;
|-&lt;br /&gt;
| [[Status/PDF Viewer|PDF Viewer]] || Mostly works || osso-pdf-viewer || [https://github.com/maemo-leste/osso-pdf-viewer osso-pdf-viewer]&lt;br /&gt;
|-&lt;br /&gt;
| [[Status/Games|Games &amp;amp; Entertainment]] || OK || Works (available in [[Leste Extras]] || [https://github.com/maemo-leste/bugtracker/issues/18 sdl fullscreen] [https://github.com/maemo-leste/bugtracker/issues/238 game importing]&lt;br /&gt;
|-&lt;br /&gt;
| [[Status/Theming|Theming]] || OK || Works with themes (available in [[Leste Extras]] ||&lt;br /&gt;
|-&lt;br /&gt;
| [[Calendar|Calendar]] || OK || Qalendar UI, syncing works. (UI needs some scrolling work) ||&lt;br /&gt;
|-&lt;br /&gt;
| [[Qt|Qt]] || OK || Qt5 port mostly works || https://github.com/maemo-leste/qtstyleplugins/ + https://github.com/maemo-leste/qt-platform-maemo&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Wizzup</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Motorola_Droid_4&amp;diff=1508</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=1508"/>
		<updated>2023-03-25T18:18:56Z</updated>

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

		<summary type="html">&lt;p&gt;Wizzup: Created page with &amp;quot;{{Infobox Device |image=250px |manufacturer=Motorola |codename=Fleming MZ609 |dimensions= |release_date=TODO |soc=TI OMAP4430 |...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Device&lt;br /&gt;
|image=[[File:Motorola Droid 4 - Leste pre-alpha.jpg|250px]]&lt;br /&gt;
|manufacturer=Motorola&lt;br /&gt;
|codename=Fleming MZ609&lt;br /&gt;
|dimensions=&lt;br /&gt;
|release_date=TODO&lt;br /&gt;
|soc=TI OMAP4430&lt;br /&gt;
|dram=1024MB DDR2&lt;br /&gt;
|power=&lt;br /&gt;
|lcd=TODO&lt;br /&gt;
|video=PowerVR SGX540 &lt;br /&gt;
|audio=&lt;br /&gt;
|network=&lt;br /&gt;
|storage=TODO&lt;br /&gt;
|usb=&lt;br /&gt;
|camera=&lt;br /&gt;
|sensors=TODO&lt;br /&gt;
|other=&lt;br /&gt;
|category=Supported&lt;br /&gt;
|sw_kernel=6.1.x&lt;br /&gt;
|sw_serial=Yes, [[#Serial Cable|special cable]]&lt;br /&gt;
|sw_charging=Yes&lt;br /&gt;
|sw_usb_slave=Yes&lt;br /&gt;
|sw_usb_host=Yes&lt;br /&gt;
|sw_touchscreen=Yes&lt;br /&gt;
|sw_keyboard=N/A&lt;br /&gt;
|sw_screen=No&lt;br /&gt;
|sw_hdmi=Yes&lt;br /&gt;
|sw_tv=&lt;br /&gt;
|sw_3daccel=Yes [https://github.com/maemo-leste/pvr-omap4] (closed)&lt;br /&gt;
|sw_vibration=Yes&lt;br /&gt;
|sw_audio=Yes&lt;br /&gt;
|sw_calls=Yes&lt;br /&gt;
|sw_sms=Yes&lt;br /&gt;
|sw_wifi=Yes&lt;br /&gt;
|sw_ethernet=&lt;br /&gt;
|sw_irda=&lt;br /&gt;
|sw_2g3gdata=Yes&lt;br /&gt;
|sw_4g=No&lt;br /&gt;
|sw_bluetooth=Yes,  [[#Bluetooth|see notes]] &lt;br /&gt;
|sw_fmtx=No, but apparently exists, needs serdev kernel modules/drivers&lt;br /&gt;
|sw_fmrx=&lt;br /&gt;
|sw_nfc=&lt;br /&gt;
|sw_accelerometer=Yes&lt;br /&gt;
|sw_compass=Yes, no integration&lt;br /&gt;
|sw_gyro=&lt;br /&gt;
|sw_proximity=Yes&lt;br /&gt;
|sw_als=Yes&lt;br /&gt;
|sw_gps=Yes&lt;br /&gt;
|sw_agps=No&lt;br /&gt;
|sw_frontcam=No&lt;br /&gt;
|sw_backcam=No&lt;br /&gt;
|sw_idlepower=?&lt;br /&gt;
|sw_standbytime=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Hardware requirements:&lt;br /&gt;
&lt;br /&gt;
* Droid4 with fully charged battery&lt;br /&gt;
* MicroUSB cable&lt;br /&gt;
* MicroSD card&lt;br /&gt;
&lt;br /&gt;
Software requirements:&lt;br /&gt;
* Host Linux or Windows system&lt;br /&gt;
* Android Tools: fastboot&lt;br /&gt;
* Flashing tools:&lt;br /&gt;
** XZ Utils and coreutils for Linux&lt;br /&gt;
** Etcher[https://github.com/balena-io/etcher] for Windows&lt;br /&gt;
&lt;br /&gt;
Download from https://maedevu.maemo.org/images/mz609/&lt;br /&gt;
&lt;br /&gt;
# VRZ_XT894_9.8.2O-72_VZW-18-8_CFC.xml.zip TODO CHANGE&lt;br /&gt;
# flash-droid-4-fw.sh TODO CHANGE&lt;br /&gt;
# Latest maemo-leste-1.0-armhf-droid4-*.img.xz&lt;br /&gt;
&lt;br /&gt;
Download from https://github.com/tmlind/droid4-kexecboot.git&lt;br /&gt;
&lt;br /&gt;
# utags-mmcblk1p13.bin&lt;br /&gt;
# droid4-kexecboot.img&lt;br /&gt;
&lt;br /&gt;
Check what kernel version your Android OS runs.&lt;br /&gt;
For this go to Settings -&amp;gt; About phone. Slide to the bottom, where you can see &amp;quot;Kernel version&amp;quot;.&lt;br /&gt;
If you have at least 3.0.8, you may skip &amp;quot;Updating Android&amp;quot; step below.&lt;br /&gt;
&lt;br /&gt;
Installation:&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
=== Updating Android ===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
=== Setting up kexecboot ===&lt;br /&gt;
&lt;br /&gt;
TODO&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;
&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't, the device should reboot and show kexecboot menu for a few seconds before it boots to Android.&lt;br /&gt;
&lt;br /&gt;
=== Install Maemo Leste to the sdcard ===&lt;br /&gt;
&lt;br /&gt;
[[Category:Device]]&lt;/div&gt;</summary>
		<author><name>Wizzup</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Development/Tasks&amp;diff=1429</id>
		<title>Development/Tasks</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Development/Tasks&amp;diff=1429"/>
		<updated>2022-11-14T10:37:35Z</updated>

		<summary type="html">&lt;p&gt;Wizzup: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Applications ==&lt;br /&gt;
&lt;br /&gt;
This page lists some of the more important open issues for Maemo Leste. We have a complete list here, on github, but it's a bit hard to navigate: https://github.com/maemo-leste/bugtracker/issues&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Task&lt;br /&gt;
! Description&lt;br /&gt;
! Task Status&lt;br /&gt;
! User(s) working on task&lt;br /&gt;
! GH Bug&lt;br /&gt;
! URLs&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Gtk3 port of theme and hildon widgets || Big task, port hildon widgets and theme from gtk2 to gtk3. &amp;lt;b&amp;gt;Funding is available for this task&amp;lt;/b&amp;gt; || WIP || || https://github.com/maemo-leste/bugtracker/issues/261 || || Parayzd is working on this&lt;br /&gt;
|-&lt;br /&gt;
| Qt5 of theme and hildon widgets || Significant task || MOSTLY || [[User:freemangordon]] made a start, [[User:Wizzup]] picked up some of the work  ||  || https://github.com/maemo-leste/qtstyleplugins/ + https://github.com/maemo-leste/qt-platform-maemo/tree/qmenu || Mainly usable already!&lt;br /&gt;
|-&lt;br /&gt;
| libicd-network-ofono should set up ipv4 upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || DONE ||  ||  ||  ||  &lt;br /&gt;
|-&lt;br /&gt;
| Extend ofono droid4 modem support  || This is done and should be stable. || DONE || Tony, Pavel, [[User:freemangordon]] and [[User:Wizzup]] are working on this ||  || https://github.com/pavelmachek/ofono/commits/d4-v1.29  ||&lt;br /&gt;
|-&lt;br /&gt;
| Finish connui-cellular port to ofono  || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || https://github.com/maemo-leste/bugtracker/issues/256 || https://github.com/maemo-leste/connui-cellular  ||&lt;br /&gt;
|-&lt;br /&gt;
| Test phone calls on the N900  || Figure out cmtspeechdata magic || WIP? || [[User:Wizzup]], [[User:Sicelo]], Pavel ||  ||  ||&lt;br /&gt;
|-&lt;br /&gt;
| Create simple phone UI to test dialing/accepting phone calls using Telepathy || Can use sphone, which works for calls right now, just not using Telepathy. || WIP/MOSTLY || ? ||  ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;hildonize&amp;quot; surf2 or create a simple &amp;quot;hildonized&amp;quot; gtk2 webkit browser || We'll need a basic browser. surf2 (in Debian) could be a good start, but the current package needs gtk3, and we only have a hildon (maemo ui) port for gtk2 right now. So let's make sure we can build something with webkit against gtk2. || WIP || [[User:Parazyd]] ||  ||  ||&lt;br /&gt;
|-&lt;br /&gt;
| Look at N900 power saving || We do not hit omap off modes nearly as much as we should (in fact, we never do), this should be looked at || WIP || [[User:Wizzup]], tmlind ||  ||  || Actually works quite well on the droid4. Let's do the same for Droid4. :) &lt;br /&gt;
|-&lt;br /&gt;
| osso-abook || We need osso-abook in place for all applications that need contacts (phone ui, sms ui, email ui, more) || MOSTLY DONE || [[User:freemangordon]] ||  ||https://github.com/maemo-leste/osso-abook  || Making good progress&lt;br /&gt;
|-&lt;br /&gt;
| Port all packages for maemo-leste to debhelper 9 or higher || Requires for us to migrate to a newer Debian (Buster) / Devuan (Beowulf) || DONE || [[User:Parazyd]], [[User:Wizzup]], [[User:meridion]], [[User:Spinal84]] || https://github.com/maemo-leste/bugtracker/issues/234 ||  || &lt;br /&gt;
|-&lt;br /&gt;
| Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || DONE || [[User:ThomasAH]], Spinal84 || https://github.com/maemo-leste/ke-recv/pull/2 ; https://github.com/maemo-leste/bugtracker/issues/17#issuecomment-528497018 || ke-recv part for slide monitoring is in place, we just need live keyboard-attached monitoring now. https://github.com/maemo-leste/mce/blob/master/event-input.c#L474 https://github.com/maemo-leste/ke-recv-extra/blob/master/src/input-device.c || mce has quite some usable code for this already, resulting code should probably go into ke-recv-extra (aka hulda). mer-core (sailfish/nemomobile) has keyboard monitoring integrated into mce, so we could also look at (using) that&lt;br /&gt;
|-&lt;br /&gt;
| Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 ? || *MAYBE* Required on devices with a PowerVR GPU like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || DONE (by staying at clutter 0.8) ||  || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches   ||  &lt;br /&gt;
|-&lt;br /&gt;
| Set up leste &amp;quot;extras&amp;quot; repository  || A repository with non-core applications, games, etc would be very welcome || DONE || [[User:Wizzup]], [[User:Parazyd]] ||  || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/   ||&lt;br /&gt;
|-&lt;br /&gt;
| hildon-application-manager usable || We currently have HAM packaged, but it needs fixes for various compile issues we hacked around, cssu-specific parts need to be removed, and we need to figure out what we need to do for our repositories to make it work well || DONE || [[User:minicom]], [[User:Wizzup]], [[User:Parazyd]] ||  ||  || Goal is to have a usable app manager, so let's just use it, fix it, use it, etc.&lt;br /&gt;
|-&lt;br /&gt;
| Fix virtual keyboard rendering || On a screen that is not the same of the N900 (800x480), the virtual keyboard doesn't look very pretty. Lets just make it work on any display size || DONE ||  ||  ||  || &lt;br /&gt;
|-&lt;br /&gt;
| Fix remaining hildon-desktop portait mode issues || The application launcher results in a black screen, and osso-xterm in portait mode is also resulting in a black screen || DONE || [[User:freemangordon]] ||  ||  || &lt;br /&gt;
|-&lt;br /&gt;
| Test phone calls on the droid4  || Phone calls should work, with audio, when alsamixer is set up properly, let's test it! || DONE || [[User:Wizzup]], [[User:Sicelo]] ||  ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Wizzup</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Development/Tasks&amp;diff=1428</id>
		<title>Development/Tasks</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Development/Tasks&amp;diff=1428"/>
		<updated>2022-11-14T10:33:51Z</updated>

		<summary type="html">&lt;p&gt;Wizzup: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Applications ==&lt;br /&gt;
&lt;br /&gt;
This page lists some of the more important open issues for Maemo Leste. We have a complete list here, on github, but it's a bit hard to navigate: https://github.com/maemo-leste/bugtracker/issues&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Task&lt;br /&gt;
! Description&lt;br /&gt;
! Task Status&lt;br /&gt;
! User(s) working on task&lt;br /&gt;
! GH Bug&lt;br /&gt;
! URLs&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Gtk3 port of theme and hildon widgets || Big task, port hildon widgets and theme from gtk2 to gtk3. &amp;lt;b&amp;gt;Funding is available for this task&amp;lt;/b&amp;gt; || WIP || || https://github.com/maemo-leste/bugtracker/issues/261 || || Parayzd is working on this&lt;br /&gt;
|-&lt;br /&gt;
| Qt5 of theme and hildon widgets || Significant task || MOSTLY || [[User:freemangordon]] made a start, [[User:Wizzup]] picked up some of the work  ||  || https://github.com/maemo-leste/qtstyleplugins/ + https://github.com/maemo-leste/qt-platform-maemo/tree/qmenu || Mainly usable already!&lt;br /&gt;
|-&lt;br /&gt;
| libicd-network-ofono should set up ipv4 upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || DONE ||  ||  ||  ||  &lt;br /&gt;
|-&lt;br /&gt;
| Extend ofono droid4 modem support  || This is done and should be stable. || DONE || Tony, Pavel, [[User:freemangordon]] and [[User:Wizzup]] are working on this ||  || https://github.com/pavelmachek/ofono/commits/d4-v1.29  ||&lt;br /&gt;
|-&lt;br /&gt;
| Finish connui-cellular port to ofono  || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || https://github.com/maemo-leste/bugtracker/issues/256 || https://github.com/maemo-leste/connui-cellular  ||&lt;br /&gt;
|-&lt;br /&gt;
| Test phone calls on the N900  || Figure out cmtspeechdata magic || WIP? || [[User:Wizzup]], [[User:Sicelo]], Pavel ||  ||  ||&lt;br /&gt;
|-&lt;br /&gt;
| Create simple phone UI to test dialing/accepting phone calls using Telepathy || Can use sphone, which works for calls right now, just not using Telepathy. || WIP/MOSTLY || ? ||  ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;hildonize&amp;quot; surf2 or create a simple &amp;quot;hildonized&amp;quot; gtk2 webkit browser || We'll need a basic browser. surf2 (in Debian) could be a good start, but the current package needs gtk3, and we only have a hildon (maemo ui) port for gtk2 right now. So let's make sure we can build something with webkit against gtk2. || WIP || [[User:Parazyd]] ||  ||  ||&lt;br /&gt;
|-&lt;br /&gt;
| Look at N900 power saving || We do not hit omap off modes nearly as much as we should (in fact, we never do), this should be looked at || WIP || [[User:Wizzup]], tmlind ||  ||  || Actually works quite well on the droid4. Let's do the same for Droid4. :) &lt;br /&gt;
|-&lt;br /&gt;
| osso-abook || We need osso-abook in place for all applications that need contacts (phone ui, sms ui, email ui, more) || WIP || [[User:freemangordon]] ||  ||https://github.com/maemo-leste/osso-abook  || Making good progress&lt;br /&gt;
|-&lt;br /&gt;
| Port all packages for maemo-leste to debhelper 9 or higher || Requires for us to migrate to a newer Debian (Buster) / Devuan (Beowulf) || DONE || [[User:Parazyd]], [[User:Wizzup]], [[User:meridion]], [[User:Spinal84]] || https://github.com/maemo-leste/bugtracker/issues/234 ||  || &lt;br /&gt;
|-&lt;br /&gt;
| Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || DONE || [[User:ThomasAH]], Spinal84 || https://github.com/maemo-leste/ke-recv/pull/2 ; https://github.com/maemo-leste/bugtracker/issues/17#issuecomment-528497018 || ke-recv part for slide monitoring is in place, we just need live keyboard-attached monitoring now. https://github.com/maemo-leste/mce/blob/master/event-input.c#L474 https://github.com/maemo-leste/ke-recv-extra/blob/master/src/input-device.c || mce has quite some usable code for this already, resulting code should probably go into ke-recv-extra (aka hulda). mer-core (sailfish/nemomobile) has keyboard monitoring integrated into mce, so we could also look at (using) that&lt;br /&gt;
|-&lt;br /&gt;
| Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 ? || *MAYBE* Required on devices with a PowerVR GPU like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || DONE (by staying at clutter 0.8) ||  || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches   ||  &lt;br /&gt;
|-&lt;br /&gt;
| Set up leste &amp;quot;extras&amp;quot; repository  || A repository with non-core applications, games, etc would be very welcome || DONE || [[User:Wizzup]], [[User:Parazyd]] ||  || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/   ||&lt;br /&gt;
|-&lt;br /&gt;
| hildon-application-manager usable || We currently have HAM packaged, but it needs fixes for various compile issues we hacked around, cssu-specific parts need to be removed, and we need to figure out what we need to do for our repositories to make it work well || DONE || [[User:minicom]], [[User:Wizzup]], [[User:Parazyd]] ||  ||  || Goal is to have a usable app manager, so let's just use it, fix it, use it, etc.&lt;br /&gt;
|-&lt;br /&gt;
| Fix virtual keyboard rendering || On a screen that is not the same of the N900 (800x480), the virtual keyboard doesn't look very pretty. Lets just make it work on any display size || DONE ||  ||  ||  || &lt;br /&gt;
|-&lt;br /&gt;
| Fix remaining hildon-desktop portait mode issues || The application launcher results in a black screen, and osso-xterm in portait mode is also resulting in a black screen || DONE || [[User:freemangordon]] ||  ||  || &lt;br /&gt;
|-&lt;br /&gt;
| Test phone calls on the droid4  || Phone calls should work, with audio, when alsamixer is set up properly, let's test it! || DONE || [[User:Wizzup]], [[User:Sicelo]] ||  ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Wizzup</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Development/Tasks&amp;diff=1427</id>
		<title>Development/Tasks</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Development/Tasks&amp;diff=1427"/>
		<updated>2022-11-14T10:33:01Z</updated>

		<summary type="html">&lt;p&gt;Wizzup: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Applications ==&lt;br /&gt;
&lt;br /&gt;
This page lists some of the more important open issues for Maemo Leste. We have a complete list here, on github, but it's a bit hard to navigate: https://github.com/maemo-leste/bugtracker/issues&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Task&lt;br /&gt;
! Description&lt;br /&gt;
! Task Status&lt;br /&gt;
! User(s) working on task&lt;br /&gt;
! GH Bug&lt;br /&gt;
! URLs&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Gtk3 port of theme and hildon widgets || Big task, port hildon widgets and theme from gtk2 to gtk3. &amp;lt;b&amp;gt;Funding is available for this task&amp;lt;/b&amp;gt; || WIP || || https://github.com/maemo-leste/bugtracker/issues/261 || || Parayzd is working on this&lt;br /&gt;
|-&lt;br /&gt;
| Qt5 of theme and hildon widgets || Significant task || MOSTLY || [[User:freemangordon]] made a start, [[User:Wizzup]] picked up some of the work  ||  || https://github.com/maemo-leste/qtstyleplugins/ + https://github.com/maemo-leste/qt-platform-maemo/tree/qmenu || Mainly usable already!&lt;br /&gt;
|-&lt;br /&gt;
| libicd-network-ofono should set up ipv4 upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || DONE ||  ||  ||  ||  &lt;br /&gt;
|-&lt;br /&gt;
| Extend ofono droid4 modem support  || This is done and should be stable. || DONE || Tony, Pavel, [[User:freemangordon]] and [[User:Wizzup]] are working on this ||  || https://github.com/pavelmachek/ofono/commits/d4-v1.29  ||&lt;br /&gt;
|-&lt;br /&gt;
| Finish connui-cellular port to ofono  || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || https://github.com/maemo-leste/bugtracker/issues/256 || https://github.com/maemo-leste/connui-cellular  ||&lt;br /&gt;
|-&lt;br /&gt;
| Test phone calls on the N900  || Figure out cmtspeechdata magic || WIP? || [[User:Wizzup]], [[User:Sicelo]], Pavel ||  ||  ||&lt;br /&gt;
|-&lt;br /&gt;
| Create simple phone UI to test dialing/accepting phone calls using Telepathy || Would be good to test phone calls, can be simple/not-pretty, using telepathy is good, could be sip or real calls || WIP || ? ||  ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;hildonize&amp;quot; surf2 or create a simple &amp;quot;hildonized&amp;quot; gtk2 webkit browser || We'll need a basic browser. surf2 (in Debian) could be a good start, but the current package needs gtk3, and we only have a hildon (maemo ui) port for gtk2 right now. So let's make sure we can build something with webkit against gtk2. || WIP || [[User:Parazyd]] ||  ||  ||&lt;br /&gt;
|-&lt;br /&gt;
| Look at N900 power saving || We do not hit omap off modes nearly as much as we should (in fact, we never do), this should be looked at || WIP || [[User:Wizzup]], tmlind ||  ||  || Actually works quite well on the droid4. Let's do the same for Droid4. :) &lt;br /&gt;
|-&lt;br /&gt;
| osso-abook || We need osso-abook in place for all applications that need contacts (phone ui, sms ui, email ui, more) || WIP || [[User:freemangordon]] ||  ||https://github.com/maemo-leste/osso-abook  || Making good progress&lt;br /&gt;
|-&lt;br /&gt;
| Port all packages for maemo-leste to debhelper 9 or higher || Requires for us to migrate to a newer Debian (Buster) / Devuan (Beowulf) || DONE || [[User:Parazyd]], [[User:Wizzup]], [[User:meridion]], [[User:Spinal84]] || https://github.com/maemo-leste/bugtracker/issues/234 ||  || &lt;br /&gt;
|-&lt;br /&gt;
| Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || DONE || [[User:ThomasAH]], Spinal84 || https://github.com/maemo-leste/ke-recv/pull/2 ; https://github.com/maemo-leste/bugtracker/issues/17#issuecomment-528497018 || ke-recv part for slide monitoring is in place, we just need live keyboard-attached monitoring now. https://github.com/maemo-leste/mce/blob/master/event-input.c#L474 https://github.com/maemo-leste/ke-recv-extra/blob/master/src/input-device.c || mce has quite some usable code for this already, resulting code should probably go into ke-recv-extra (aka hulda). mer-core (sailfish/nemomobile) has keyboard monitoring integrated into mce, so we could also look at (using) that&lt;br /&gt;
|-&lt;br /&gt;
| Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 ? || *MAYBE* Required on devices with a PowerVR GPU like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || DONE (by staying at clutter 0.8) ||  || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches   ||  &lt;br /&gt;
|-&lt;br /&gt;
| Set up leste &amp;quot;extras&amp;quot; repository  || A repository with non-core applications, games, etc would be very welcome || DONE || [[User:Wizzup]], [[User:Parazyd]] ||  || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/   ||&lt;br /&gt;
|-&lt;br /&gt;
| hildon-application-manager usable || We currently have HAM packaged, but it needs fixes for various compile issues we hacked around, cssu-specific parts need to be removed, and we need to figure out what we need to do for our repositories to make it work well || DONE || [[User:minicom]], [[User:Wizzup]], [[User:Parazyd]] ||  ||  || Goal is to have a usable app manager, so let's just use it, fix it, use it, etc.&lt;br /&gt;
|-&lt;br /&gt;
| Fix virtual keyboard rendering || On a screen that is not the same of the N900 (800x480), the virtual keyboard doesn't look very pretty. Lets just make it work on any display size || DONE ||  ||  ||  || &lt;br /&gt;
|-&lt;br /&gt;
| Fix remaining hildon-desktop portait mode issues || The application launcher results in a black screen, and osso-xterm in portait mode is also resulting in a black screen || DONE || [[User:freemangordon]] ||  ||  || &lt;br /&gt;
|-&lt;br /&gt;
| Test phone calls on the droid4  || Phone calls should work, with audio, when alsamixer is set up properly, let's test it! || DONE || [[User:Wizzup]], [[User:Sicelo]] ||  ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Wizzup</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Development/Tasks&amp;diff=1426</id>
		<title>Development/Tasks</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Development/Tasks&amp;diff=1426"/>
		<updated>2022-11-14T10:32:32Z</updated>

		<summary type="html">&lt;p&gt;Wizzup: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Applications ==&lt;br /&gt;
&lt;br /&gt;
This page lists some of the more important open issues for Maemo Leste. We have a complete list here, on github, but it's a bit hard to navigate: https://github.com/maemo-leste/bugtracker/issues&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Task&lt;br /&gt;
! Description&lt;br /&gt;
! Task Status&lt;br /&gt;
! User(s) working on task&lt;br /&gt;
! GH Bug&lt;br /&gt;
! URLs&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Gtk3 port of theme and hildon widgets || Big task, port hildon widgets and theme from gtk2 to gtk3. &amp;lt;b&amp;gt;Funding is available for this task&amp;lt;/b&amp;gt; || WIP || || https://github.com/maemo-leste/bugtracker/issues/261 || || Parayzd is working on this&lt;br /&gt;
|-&lt;br /&gt;
| Qt5 of theme and hildon widgets || Significant task || MOSTLY || [[User:freemangordon]] made a start, [[User:Wizzup]] picked up some of the work  ||  || https://github.com/maemo-leste/qtstyleplugins/ + https://github.com/maemo-leste/qt-platform-maemo/tree/qmenu || Mainly usable already!&lt;br /&gt;
|-&lt;br /&gt;
| libicd-network-ofono should set up ipv4 (and ipv6) upon connect || Required to get usable cellular data. Provisioning is done, but the actual link itself is not yet set up. Once we have this, we should have usable cellular data on all devices with a supported modem. || WIP ||  ||  ||  ||  &lt;br /&gt;
|-&lt;br /&gt;
| Extend ofono droid4 modem support  || This is done and should be stable. || DONE || Tony, Pavel, [[User:freemangordon]] and [[User:Wizzup]] are working on this ||  || https://github.com/pavelmachek/ofono/commits/d4-v1.29  ||&lt;br /&gt;
|-&lt;br /&gt;
| Finish connui-cellular port to ofono  || Porting of connui libraries, status and home applets, settings applets and pincode applets to ofono || WIP || [[User:Wizzup]] || https://github.com/maemo-leste/bugtracker/issues/256 || https://github.com/maemo-leste/connui-cellular  ||&lt;br /&gt;
|-&lt;br /&gt;
| Test phone calls on the N900  || Figure out cmtspeechdata magic || WIP? || [[User:Wizzup]], [[User:Sicelo]], Pavel ||  ||  ||&lt;br /&gt;
|-&lt;br /&gt;
| Create simple phone UI to test dialing/accepting phone calls using Telepathy || Would be good to test phone calls, can be simple/not-pretty, using telepathy is good, could be sip or real calls || WIP || ? ||  ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;hildonize&amp;quot; surf2 or create a simple &amp;quot;hildonized&amp;quot; gtk2 webkit browser || We'll need a basic browser. surf2 (in Debian) could be a good start, but the current package needs gtk3, and we only have a hildon (maemo ui) port for gtk2 right now. So let's make sure we can build something with webkit against gtk2. || WIP || [[User:Parazyd]] ||  ||  ||&lt;br /&gt;
|-&lt;br /&gt;
| Look at N900 power saving || We do not hit omap off modes nearly as much as we should (in fact, we never do), this should be looked at || WIP || [[User:Wizzup]], tmlind ||  ||  || Actually works quite well on the droid4. Let's do the same for Droid4. :) &lt;br /&gt;
|-&lt;br /&gt;
| osso-abook || We need osso-abook in place for all applications that need contacts (phone ui, sms ui, email ui, more) || WIP || [[User:freemangordon]] ||  ||https://github.com/maemo-leste/osso-abook  || Making good progress&lt;br /&gt;
|-&lt;br /&gt;
| Port all packages for maemo-leste to debhelper 9 or higher || Requires for us to migrate to a newer Debian (Buster) / Devuan (Beowulf) || DONE || [[User:Parazyd]], [[User:Wizzup]], [[User:meridion]], [[User:Spinal84]] || https://github.com/maemo-leste/bugtracker/issues/234 ||  || &lt;br /&gt;
|-&lt;br /&gt;
| Monitor keyboard slide and attached state || Required on devices with a keyboard like [[Nokia_N900]] and [[Motorola_Droid_4]] to show specific parts of the virtual keyboard, or rotate || DONE || [[User:ThomasAH]], Spinal84 || https://github.com/maemo-leste/ke-recv/pull/2 ; https://github.com/maemo-leste/bugtracker/issues/17#issuecomment-528497018 || ke-recv part for slide monitoring is in place, we just need live keyboard-attached monitoring now. https://github.com/maemo-leste/mce/blob/master/event-input.c#L474 https://github.com/maemo-leste/ke-recv-extra/blob/master/src/input-device.c || mce has quite some usable code for this already, resulting code should probably go into ke-recv-extra (aka hulda). mer-core (sailfish/nemomobile) has keyboard monitoring integrated into mce, so we could also look at (using) that&lt;br /&gt;
|-&lt;br /&gt;
| Forward-port clutter patches from Nokia N900 clutter 0.8 to libclutter1.0 ? || *MAYBE* Required on devices with a PowerVR GPU like [[Nokia_N900]] and [[Motorola_Droid_4]] for hildon-desktop to work. In particular important for Droid 4 to get accelerated hildon-desktop || DONE (by staying at clutter 0.8) ||  || || https://github.com/spinal84/clutter-0.8/tree/blit/debian/patches   ||  &lt;br /&gt;
|-&lt;br /&gt;
| Set up leste &amp;quot;extras&amp;quot; repository  || A repository with non-core applications, games, etc would be very welcome || DONE || [[User:Wizzup]], [[User:Parazyd]] ||  || https://github.com/maemo-leste-extras ; https://maemo.org/downloads/score/Maemo5/25/   ||&lt;br /&gt;
|-&lt;br /&gt;
| hildon-application-manager usable || We currently have HAM packaged, but it needs fixes for various compile issues we hacked around, cssu-specific parts need to be removed, and we need to figure out what we need to do for our repositories to make it work well || DONE || [[User:minicom]], [[User:Wizzup]], [[User:Parazyd]] ||  ||  || Goal is to have a usable app manager, so let's just use it, fix it, use it, etc.&lt;br /&gt;
|-&lt;br /&gt;
| Fix virtual keyboard rendering || On a screen that is not the same of the N900 (800x480), the virtual keyboard doesn't look very pretty. Lets just make it work on any display size || DONE ||  ||  ||  || &lt;br /&gt;
|-&lt;br /&gt;
| Fix remaining hildon-desktop portait mode issues || The application launcher results in a black screen, and osso-xterm in portait mode is also resulting in a black screen || DONE || [[User:freemangordon]] ||  ||  || &lt;br /&gt;
|-&lt;br /&gt;
| Test phone calls on the droid4  || Phone calls should work, with audio, when alsamixer is set up properly, let's test it! || DONE || [[User:Wizzup]], [[User:Sicelo]] ||  ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Wizzup</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Sync&amp;diff=1411</id>
		<title>Sync</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Sync&amp;diff=1411"/>
		<updated>2022-10-10T10:44:45Z</updated>

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

		<summary type="html">&lt;p&gt;Wizzup: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Package&lt;br /&gt;
|image=&lt;br /&gt;
|status=Working&lt;br /&gt;
|devices=all&lt;br /&gt;
|date_in_repo=&lt;br /&gt;
|maemo_leste_repo=https://github.com/maemo-leste/osso-addressbook&lt;br /&gt;
|category=Office&lt;br /&gt;
|packager=[[User:Wizzup]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Addressbook application =&lt;br /&gt;
&lt;br /&gt;
The '''osso-addressbook''' application is the main interface to the Maemo contacts database, which in turn stores its contacts in the so called &amp;quot;Evolution Data Server&amp;quot; (EDS). The Maemo contacts are stored in a sqlite3 database located at '''/home/user/.local/share/evolution/addressbook/system/contacts.db''', but this database is managed by EDS and it's best to interface with EDS directly.&lt;br /&gt;
&lt;br /&gt;
TODO: Cover features, including import/export, online awareness/presence, telepathy&lt;br /&gt;
&lt;br /&gt;
== Telepathy integration ==&lt;br /&gt;
&lt;br /&gt;
The address book also integrates directly with any messaging and telephone accounts that are set up, for example, if a jabber/XMPP account is online, the contacts of that account will be shown in the address book, as well as the online status of the contact.&lt;br /&gt;
&lt;br /&gt;
= Synchronisation =&lt;br /&gt;
&lt;br /&gt;
Check out the [[Sync]] page on how to synchronise your contacts.&lt;/div&gt;</summary>
		<author><name>Wizzup</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Sync&amp;diff=1409</id>
		<title>Sync</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Sync&amp;diff=1409"/>
		<updated>2022-10-10T10:39:21Z</updated>

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

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

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

		<summary type="html">&lt;p&gt;Wizzup: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Package&lt;br /&gt;
|image=&lt;br /&gt;
|status=Working&lt;br /&gt;
|devices=all&lt;br /&gt;
|date_in_repo=&lt;br /&gt;
|maemo_leste_repo=https://github.com/maemo-leste/osso-addressbook&lt;br /&gt;
|category=Office&lt;br /&gt;
|packager=[[User:Wizzup]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Contacts =&lt;br /&gt;
&lt;br /&gt;
Data is stored EDS, file is /home/user/.local/share/evolution/addressbook/system/contacts.db - in SQLite3 format.&lt;br /&gt;
&lt;br /&gt;
TODO: Cover features, including import/export, online awareness/presence, telepathy&lt;/div&gt;</summary>
		<author><name>Wizzup</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Sync&amp;diff=1405</id>
		<title>Sync</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Sync&amp;diff=1405"/>
		<updated>2022-10-10T10:29:32Z</updated>

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

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

		<summary type="html">&lt;p&gt;Wizzup: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Wizzup</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=File:Syncevolution.png&amp;diff=1402</id>
		<title>File:Syncevolution.png</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=File:Syncevolution.png&amp;diff=1402"/>
		<updated>2022-10-10T10:26:36Z</updated>

		<summary type="html">&lt;p&gt;Wizzup: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Wizzup</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Calendar&amp;diff=1396</id>
		<title>Calendar</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Calendar&amp;diff=1396"/>
		<updated>2022-10-09T20:38:22Z</updated>

		<summary type="html">&lt;p&gt;Wizzup: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Package&lt;br /&gt;
|image=&lt;br /&gt;
|status=Working&lt;br /&gt;
|devices=all&lt;br /&gt;
|date_in_repo=&lt;br /&gt;
|maemo_leste_repo=https://github.com/maemo-leste/qalendar&lt;br /&gt;
|category=Office&lt;br /&gt;
|packager=[[User:Wizzup]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Calendar =&lt;br /&gt;
&lt;br /&gt;
Data is stored in /home/user/.calendar/calendardb - in SQLite3 format.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Qalendar ==&lt;br /&gt;
&lt;br /&gt;
Qalendar is Qt5 implementation of the Maemo Calendar, source is here: https://github.com/maemo-leste/qalendar&lt;br /&gt;
&lt;br /&gt;
It should mostly function as the Maemo calendar, see the feature comparison here: https://wiki.maemo.org/Qalendar&lt;br /&gt;
&lt;br /&gt;
* cal-home-widget has also been ported&lt;br /&gt;
&lt;br /&gt;
== Improvements over Fremantle Qalendar ==&lt;br /&gt;
&lt;br /&gt;
* Supports landscape at dynamic resolutions (vs only 800x480)&lt;br /&gt;
&lt;br /&gt;
Planned:&lt;br /&gt;
&lt;br /&gt;
* Portrait support&lt;br /&gt;
&lt;br /&gt;
== Synchronising ==&lt;br /&gt;
&lt;br /&gt;
See the [[Sync]] page. Alternatively, one can try this script, but it currently only syncs the calendar&lt;br /&gt;
&lt;br /&gt;
# Install syncevolution first via 'apt install syncevolution'&lt;br /&gt;
# Grab the script at: http://uvos.xyz/maserati/maemo-calendar-sync.sh&lt;br /&gt;
# Open it and change the vars to reflect your server&lt;br /&gt;
# Run it&lt;br /&gt;
&lt;br /&gt;
if that doesn't work try the section below&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Random resources:&lt;br /&gt;
&lt;br /&gt;
* https://www.mail-archive.com/syncevolution@syncevolution.org/msg03379.html&lt;br /&gt;
* https://wiki.maemo.org/Calendar_database&lt;br /&gt;
* https://wiki.maemo.org/Sync&lt;br /&gt;
* http://maemo.org/packages/source/view/fremantle_extras-devel_free_source/syncevolution-frontend/0.12/&lt;br /&gt;
* https://talk.maemo.org/showthread.php?t=75810&lt;/div&gt;</summary>
		<author><name>Wizzup</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Sync&amp;diff=1395</id>
		<title>Sync</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Sync&amp;diff=1395"/>
		<updated>2022-10-09T19:06:58Z</updated>

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

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

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

		<summary type="html">&lt;p&gt;Wizzup: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Package&lt;br /&gt;
|image=&lt;br /&gt;
|status=Working&lt;br /&gt;
|devices=all&lt;br /&gt;
|date_in_repo=&lt;br /&gt;
|maemo_leste_repo=https://github.com/maemo-leste/osso-addressbook&lt;br /&gt;
|category=Office&lt;br /&gt;
|packager=[[User:Wizzup]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Addressbook =&lt;br /&gt;
&lt;br /&gt;
Data is stored EDS, file is /home/user/.local/share/evolution/addressbook/system/contacts.db - in SQLite3 format.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Qalendar ==&lt;br /&gt;
&lt;br /&gt;
TODO: Cover features, including import/export, online awareness/presence, telepathy&lt;br /&gt;
&lt;br /&gt;
== Synchronising ==&lt;br /&gt;
&lt;br /&gt;
One way to synchronize is CardDAV. The commands below assume that you have already set up synchronisation as discussed in [[Calendar]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
syncevolution --configure \&lt;br /&gt;
    database=http://localhost:5223/USER/UUID/ \&lt;br /&gt;
    backend=carddav \&lt;br /&gt;
    target-config@radicale contacts&lt;br /&gt;
&lt;br /&gt;
syncevolution --configure \&lt;br /&gt;
    sync=two-way \&lt;br /&gt;
    backend=evolution-contacts \&lt;br /&gt;
    radicale contacts&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And then run the initial sync:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
syncevolution --sync slow radicale contacts&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, if you want to synchronise:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
syncevolution --sync two-way radicale contacts&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Syncevolution-frontend ==&lt;br /&gt;
&lt;br /&gt;
The custom Maemo Syncevolution frontend has also been ported and is available in the application manager; which can be used to set up scheduled synchronisation.&lt;/div&gt;</summary>
		<author><name>Wizzup</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Contacts&amp;diff=1391</id>
		<title>Contacts</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Contacts&amp;diff=1391"/>
		<updated>2022-10-09T13:59:59Z</updated>

		<summary type="html">&lt;p&gt;Wizzup: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Package&lt;br /&gt;
|image=&lt;br /&gt;
|status=Working&lt;br /&gt;
|devices=all&lt;br /&gt;
|date_in_repo=&lt;br /&gt;
|maemo_leste_repo=https://github.com/maemo-leste/osso-addressbook&lt;br /&gt;
|category=Office&lt;br /&gt;
|packager=[[User:Wizzup]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Addressbook =&lt;br /&gt;
&lt;br /&gt;
Data is stored EDS, file is /home/user/.local/share/evolution/addressbook/system/contacts.db - in SQLite3 format.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Qalendar ==&lt;br /&gt;
&lt;br /&gt;
TODO: Cover features, including import/export, online awareness/presence, telepathy&lt;br /&gt;
&lt;br /&gt;
== Synchronising ==&lt;br /&gt;
&lt;br /&gt;
One way to synchronize is CardDAV. The commands below assume that you have already set up synchronisation as discussed in [[Calendar]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
syncevolution --configure \&lt;br /&gt;
    database=http://localhost:5223/USER/UUID/ \&lt;br /&gt;
    backend=carddav \&lt;br /&gt;
    target-config@radicale contacts&lt;br /&gt;
&lt;br /&gt;
syncevolution --configure \&lt;br /&gt;
    sync=two-way \&lt;br /&gt;
    backend=evolution-contacts \&lt;br /&gt;
    radicale contacts&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And then run the initial sync:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
syncevolution --sync slow radicale contacts&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Syncevolution-frontend ==&lt;br /&gt;
&lt;br /&gt;
The custom Maemo Syncevolution frontend has also been ported and is available in the application manager; which can be used to set up scheduled synchronisation.&lt;/div&gt;</summary>
		<author><name>Wizzup</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Contacts&amp;diff=1390</id>
		<title>Contacts</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Contacts&amp;diff=1390"/>
		<updated>2022-10-09T13:46:02Z</updated>

		<summary type="html">&lt;p&gt;Wizzup: Created page with &amp;quot;{{Infobox Package |image= |status=Working |devices=all |date_in_repo= |maemo_leste_repo=https://github.com/maemo-leste/osso-addressbook |category=Office |packager=User:Wizzu...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Package&lt;br /&gt;
|image=&lt;br /&gt;
|status=Working&lt;br /&gt;
|devices=all&lt;br /&gt;
|date_in_repo=&lt;br /&gt;
|maemo_leste_repo=https://github.com/maemo-leste/osso-addressbook&lt;br /&gt;
|category=Office&lt;br /&gt;
|packager=[[User:Wizzup]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Addressbook =&lt;br /&gt;
&lt;br /&gt;
Data is stored EDS, file is /home/user/.local/share/evolution/addressbook/system/contacts.db - in SQLite3 format.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Qalendar ==&lt;br /&gt;
&lt;br /&gt;
TODO: Cover features, including import/export, online awareness/presence, telepathy&lt;br /&gt;
&lt;br /&gt;
== Synchronising ==&lt;br /&gt;
&lt;br /&gt;
One way to synchronize is CardDAV. The commands below assume that you have already set up synchronisation as discussed in [[Calendar]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
syncevolution --configure \&lt;br /&gt;
    database=http://localhost:5223/USER/UUID/ \&lt;br /&gt;
    backend=carddav \&lt;br /&gt;
    target-config@radicale contacts&lt;br /&gt;
&lt;br /&gt;
syncevolution --configure \&lt;br /&gt;
    sync=two-way \&lt;br /&gt;
    backend=evolution-contacts \&lt;br /&gt;
    radicale contacts&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And then run the initial sync:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
syncevolution --sync slow radicale contacts&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And the next time you want to synchronise, just call:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
syncevolution --sync two-way radicale contacts&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Syncevolution-frontend ==&lt;br /&gt;
&lt;br /&gt;
The custom Maemo Syncevolution frontend has also been ported and is available in the application manager; which can be used to set up scheduled synchronisation.&lt;/div&gt;</summary>
		<author><name>Wizzup</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Extras/MStarDict&amp;diff=1382</id>
		<title>Extras/MStarDict</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Extras/MStarDict&amp;diff=1382"/>
		<updated>2022-09-29T11:02:59Z</updated>

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

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

		<summary type="html">&lt;p&gt;Wizzup: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
&lt;br /&gt;
For Device specific status pages, see See [[:Category:Device]]&lt;br /&gt;
&lt;br /&gt;
The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Feature&lt;br /&gt;
! Status&lt;br /&gt;
! Leste software&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Desktop environment || OK ||  hildon || hildon home, hildon desktop, .&lt;br /&gt;
|-&lt;br /&gt;
| [[Terminal]] || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] || &lt;br /&gt;
|-&lt;br /&gt;
| [[Status/VirtualKeyboard|Virtual keyboard]] || WIP || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work fine for all devices, GTK2 only.&lt;br /&gt;
|-&lt;br /&gt;
| [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Works out of the box. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7&lt;br /&gt;
|-&lt;br /&gt;
| Bluetooth || WIP || Just works if supported in the kernel, but no Maemo UI available to configure it || &lt;br /&gt;
|-&lt;br /&gt;
| [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently. However, surf2 works smoothly, and hopefully can be integrated easily. Some also use netsurf-gtk or firefox&lt;br /&gt;
|-&lt;br /&gt;
| [[Status/Audio|Audio]] || OK || ? || [Basic audio/sounds work (like, notifications, charging notification, etc); will need to import alsa-policy-enforcement, port OHM&lt;br /&gt;
|-&lt;br /&gt;
| Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste/upower upower] ||&lt;br /&gt;
|-&lt;br /&gt;
| [[Status/USB Peripheral|USB Peripheral]] || OK || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900/Droid4/Allwinner, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv &lt;br /&gt;
|-&lt;br /&gt;
| LED control || OK || mce || Make sure the notifications are enabled in settings.&lt;br /&gt;
|-&lt;br /&gt;
| [[Status/Mobile Data|Mobile Data]] || OK || [https://github.com/maemo-leste/connui-cellular connui-cellular] [https://github.com/maemo-leste/libicd-network-ofono libicd-network-ofono] || There is basic libicd-network-ofono, connui-cellular is being ported to ofono, UI needs some more work, but mostly just works&lt;br /&gt;
|-&lt;br /&gt;
| [[Status/GPS|GPS]] || OK || gpsd, liblocation, location-daemon ||&lt;br /&gt;
|-&lt;br /&gt;
| [[Status/SMS|SMS]] || OK || sphone, conversations, ofono, telepathy-ring ? ||&lt;br /&gt;
|-&lt;br /&gt;
| [[Status/Phone Calls|Phone Calls]] || OK || sphone, ofono, telepathy-ring ? || Just works on most of the devices, except for the [https://github.com/maemo-leste/bugtracker/issues/77 n900]&lt;br /&gt;
|-&lt;br /&gt;
| [[Status/Application Manager|Application Manager]] || OK || [https://github.com/maemo-leste/hildon-application-manager hildon-application-manager] || Mostly works, but needs serious testing [https://github.com/maemo-leste/bugtracker/issues/202 tracking issue]&lt;br /&gt;
|-&lt;br /&gt;
| [[Status/Media Player|Media Player]] || No(t yet) || open media player || [https://github.com/maemo-leste/bugtracker/issues/25 tracking issue]&lt;br /&gt;
|-&lt;br /&gt;
| [[Status/PDF Viewer|PDF Viewer]] || Mostly works || osso-pdf-viewer || [https://github.com/maemo-leste/osso-pdf-viewer osso-pdf-viewer]&lt;br /&gt;
|-&lt;br /&gt;
| [[Status/Games|Games &amp;amp; Entertainment]] || OK || Works (available in [[Leste Extras]] || [https://github.com/maemo-leste/bugtracker/issues/18 sdl fullscreen] [https://github.com/maemo-leste/bugtracker/issues/238 game importing]&lt;br /&gt;
|-&lt;br /&gt;
| [[Status/Theming|Theming]] || OK || Works with themes (available in [[Leste Extras]] ||&lt;br /&gt;
|-&lt;br /&gt;
| [[Calendar|Calendar]] || OK || Qalendar UI, syncing works. (UI needs some scrolling work) ||&lt;br /&gt;
|-&lt;br /&gt;
| [[Qt|Qt]] || OK || Qt5 port mostly works || https://github.com/maemo-leste/qtstyleplugins/ + https://github.com/maemo-leste/qt-platform-maemo&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Wizzup</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Status&amp;diff=1371</id>
		<title>Status</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Status&amp;diff=1371"/>
		<updated>2022-09-03T13:04:43Z</updated>

		<summary type="html">&lt;p&gt;Wizzup: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
&lt;br /&gt;
For Device specific status pages, see See [[:Category:Device]]&lt;br /&gt;
&lt;br /&gt;
The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Feature&lt;br /&gt;
! Status&lt;br /&gt;
! Leste software&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Desktop environment || OK ||  hildon || hildon home, hildon desktop, .&lt;br /&gt;
|-&lt;br /&gt;
| [[Terminal]] || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] || &lt;br /&gt;
|-&lt;br /&gt;
| [[Status/VirtualKeyboard|Virtual keyboard]] || WIP || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work fine for all devices, GTK2 only.&lt;br /&gt;
|-&lt;br /&gt;
| [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Works out of the box. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7&lt;br /&gt;
|-&lt;br /&gt;
| Bluetooth || No(t yet) || ? || &lt;br /&gt;
|-&lt;br /&gt;
| [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently. However, surf2 works smoothly, and hopefully can be integrated easily. Some also use netsurf-gtk or firefox&lt;br /&gt;
|-&lt;br /&gt;
| [[Status/Audio|Audio]] || OK || ? || [Basic audio/sounds work (like, notifications, charging notification, etc); will need to import alsa-policy-enforcement, port OHM&lt;br /&gt;
|-&lt;br /&gt;
| Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste/upower upower] ||&lt;br /&gt;
|-&lt;br /&gt;
| [[Status/USB Peripheral|USB Peripheral]] || OK || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900/Droid4/Allwinner, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv &lt;br /&gt;
|-&lt;br /&gt;
| LED control || OK || mce || Make sure the notifications are enabled in settings.&lt;br /&gt;
|-&lt;br /&gt;
| [[Status/Mobile Data|Mobile Data]] || OK || [https://github.com/maemo-leste/connui-cellular connui-cellular] [https://github.com/maemo-leste/libicd-network-ofono libicd-network-ofono] || There is basic libicd-network-ofono, connui-cellular is being ported to ofono, UI needs some more work, but mostly just works&lt;br /&gt;
|-&lt;br /&gt;
| [[Status/GPS|GPS]] || OK || gpsd, liblocation, location-daemon ||&lt;br /&gt;
|-&lt;br /&gt;
| [[Status/SMS|SMS]] || OK || sphone, conversations, ofono, telepathy-ring ? ||&lt;br /&gt;
|-&lt;br /&gt;
| [[Status/Phone Calls|Phone Calls]] || OK || sphone, ofono, telepathy-ring ? || Just works on most of the devices, except for the [https://github.com/maemo-leste/bugtracker/issues/77 n900]&lt;br /&gt;
|-&lt;br /&gt;
| [[Status/Application Manager|Application Manager]] || OK || [https://github.com/maemo-leste/hildon-application-manager hildon-application-manager] || Mostly works, but needs serious testing [https://github.com/maemo-leste/bugtracker/issues/202 tracking issue]&lt;br /&gt;
|-&lt;br /&gt;
| [[Status/Media Player|Media Player]] || No(t yet) || open media player || [https://github.com/maemo-leste/bugtracker/issues/25 tracking issue]&lt;br /&gt;
|-&lt;br /&gt;
| [[Status/PDF Viewer|PDF Viewer]] || Mostly works || osso-pdf-viewer || [https://github.com/maemo-leste/osso-pdf-viewer osso-pdf-viewer]&lt;br /&gt;
|-&lt;br /&gt;
| [[Status/Games|Games &amp;amp; Entertainment]] || OK || Works (available in [[Leste Extras]] || [https://github.com/maemo-leste/bugtracker/issues/18 sdl fullscreen] [https://github.com/maemo-leste/bugtracker/issues/238 game importing]&lt;br /&gt;
|-&lt;br /&gt;
| [[Status/Theming|Theming]] || OK || Works with themes (available in [[Leste Extras]] ||&lt;br /&gt;
|-&lt;br /&gt;
| [[Calendar|Calendar]] || OK || Qalendar UI, syncing works. (UI needs some scrolling work) ||&lt;br /&gt;
|-&lt;br /&gt;
| [[Qt|Qt]] || OK || Qt5 port mostly works || https://github.com/maemo-leste/qtstyleplugins/ + https://github.com/maemo-leste/qt-platform-maemo&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Wizzup</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Status&amp;diff=1370</id>
		<title>Status</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Status&amp;diff=1370"/>
		<updated>2022-09-03T13:04:06Z</updated>

		<summary type="html">&lt;p&gt;Wizzup: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
&lt;br /&gt;
For Device specific status pages, see See [[:Category:Device]]&lt;br /&gt;
&lt;br /&gt;
The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Feature&lt;br /&gt;
! Status&lt;br /&gt;
! Leste software&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Desktop environment || OK ||  hildon || hildon home, hildon desktop, .&lt;br /&gt;
|-&lt;br /&gt;
| [[Terminal]] || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] || &lt;br /&gt;
|-&lt;br /&gt;
| [[Status/VirtualKeyboard|Virtual keyboard]] || WIP || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work fine for all devices, GTK2 only.&lt;br /&gt;
|-&lt;br /&gt;
| [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Works out of the box. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7&lt;br /&gt;
|-&lt;br /&gt;
| Bluetooth || No(t yet) || ? || &lt;br /&gt;
|-&lt;br /&gt;
| [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently. However, surf2 works smoothly, and hopefully can be integrated easily. Some also use netsurf-gtk or firefox&lt;br /&gt;
|-&lt;br /&gt;
| [[Status/Audio|Audio]] || WIP || ? || [Basic audio/sounds work (like, notifications, charging notification, etc); need to switch to pulseaudio ; will need to import alsa-policy-enforcement, port OHM&lt;br /&gt;
|-&lt;br /&gt;
| Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste/upower upower] ||&lt;br /&gt;
|-&lt;br /&gt;
| [[Status/USB Peripheral|USB Peripheral]] || OK || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900/Droid4/Allwinner, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv &lt;br /&gt;
|-&lt;br /&gt;
| LED control || OK || mce || Make sure the notifications are enabled in settings.&lt;br /&gt;
|-&lt;br /&gt;
| [[Status/Mobile Data|Mobile Data]] || OK || [https://github.com/maemo-leste/connui-cellular connui-cellular] [https://github.com/maemo-leste/libicd-network-ofono libicd-network-ofono] || There is basic libicd-network-ofono, connui-cellular is being ported to ofono, UI needs some more work, but mostly just works&lt;br /&gt;
|-&lt;br /&gt;
| [[Status/GPS|GPS]] || OK || gpsd, liblocation, location-daemon ||&lt;br /&gt;
|-&lt;br /&gt;
| [[Status/SMS|SMS]] || WIP || sphone, conversations, ofono, telepathy-ring ? ||&lt;br /&gt;
|-&lt;br /&gt;
| [[Status/Phone Calls|Phone Calls]] || OK || sphone, ofono, telepathy-ring ? || Just works on most of the devices, except for the [https://github.com/maemo-leste/bugtracker/issues/77 n900]&lt;br /&gt;
|-&lt;br /&gt;
| [[Status/Application Manager|Application Manager]] || OK || [https://github.com/maemo-leste/hildon-application-manager hildon-application-manager] || Mostly works, but needs serious testing [https://github.com/maemo-leste/bugtracker/issues/202 tracking issue]&lt;br /&gt;
|-&lt;br /&gt;
| [[Status/Media Player|Media Player]] || No(t yet) || open media player || [https://github.com/maemo-leste/bugtracker/issues/25 tracking issue]&lt;br /&gt;
|-&lt;br /&gt;
| [[Status/PDF Viewer|PDF Viewer]] || Mostly works || osso-pdf-viewer || [https://github.com/maemo-leste/osso-pdf-viewer osso-pdf-viewer]&lt;br /&gt;
|-&lt;br /&gt;
| [[Status/Games|Games &amp;amp; Entertainment]] || OK || Works (available in [[Leste Extras]] || [https://github.com/maemo-leste/bugtracker/issues/18 sdl fullscreen] [https://github.com/maemo-leste/bugtracker/issues/238 game importing]&lt;br /&gt;
|-&lt;br /&gt;
| [[Status/Theming|Theming]] || OK || Works with themes (available in [[Leste Extras]] ||&lt;br /&gt;
|-&lt;br /&gt;
| [[Calendar|Calendar]] || OK || Qalendar UI, syncing works. (UI needs some scrolling work) ||&lt;br /&gt;
|-&lt;br /&gt;
| [[Qt|Qt]] || OK || Qt5 port mostly works || https://github.com/maemo-leste/qtstyleplugins/ + https://github.com/maemo-leste/qt-platform-maemo&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Wizzup</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Status&amp;diff=1369</id>
		<title>Status</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Status&amp;diff=1369"/>
		<updated>2022-09-03T13:03:39Z</updated>

		<summary type="html">&lt;p&gt;Wizzup: Update call/gps status&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Stub}}&lt;br /&gt;
&lt;br /&gt;
For Device specific status pages, see See [[:Category:Device]]&lt;br /&gt;
&lt;br /&gt;
The table below documents what features work on Maemo Leste on at least one device, without (a lot of) console hackery. This usually means that the feature should be decently integrated and that there has to be a UI available. This is *independent* of specific device drivers or just specified devices and doesn't mean that it necessarily works on a device&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Feature&lt;br /&gt;
! Status&lt;br /&gt;
! Leste software&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Desktop environment || OK ||  hildon || hildon home, hildon desktop, .&lt;br /&gt;
|-&lt;br /&gt;
| [[Terminal]] || OK || [https://github.com/maemo-leste/osso-xterm osso-xterm] || &lt;br /&gt;
|-&lt;br /&gt;
| [[Status/VirtualKeyboard|Virtual keyboard]] || WIP || [https://github.com/maemo-leste/hildon-input-meta hildon-input-meta] || Should work fine for all devices, GTK2 only.&lt;br /&gt;
|-&lt;br /&gt;
| [[Status/Wireless|Wireless]] || OK || [https://github.com/maemo-leste/libicd-network-wpasupplicant libicd-network-wpasupplicant] || Works out of the box. Needs testing; https://github.com/maemo-leste/bugtracker/milestone/7&lt;br /&gt;
|-&lt;br /&gt;
| Bluetooth || No(t yet) || ? || &lt;br /&gt;
|-&lt;br /&gt;
| [[Status/Browser|Browser]] || No(t yet) || ? || Various browsers can be installed, none are quite optimal currently. However, surf2 works smoothly, and hopefully can be integrated easily. Some also use netsurf-gtk or firefox&lt;br /&gt;
|-&lt;br /&gt;
| [[Status/Audio|Audio]] || WIP || ? || [Basic audio/sounds work (like, notifications, charging notification, etc); need to switch to pulseaudio ; will need to import alsa-policy-enforcement, port OHM&lt;br /&gt;
|-&lt;br /&gt;
| Battery / charging || OK || [https://github.com/maemo-leste/status-area-applet-battery status-area-applet-battery], [https://github.com/maemo-leste/mce mce], [https://github.com/maemo-leste/upower upower] ||&lt;br /&gt;
|-&lt;br /&gt;
| [[Status/USB Peripheral|USB Peripheral]] || OK || [https://github.com/maemo-leste/hildon-status-bar-usb hildon-status-bar-usb], [https://github.com/maemo-leste/ke-recv ke-recv] || Basic support in place for N900/Droid4/Allwinner, see https://github.com/maemo-leste/bugtracker/issues/39 ; https://github.com/maemo-leste/bugtracker/issues/179 ; https://github.com/maemo-leste/ke-recv &lt;br /&gt;
|-&lt;br /&gt;
| LED control || OK || mce || Make sure the notifications are enabled in settings.&lt;br /&gt;
|-&lt;br /&gt;
| [[Status/Mobile Data|Mobile Data]] || WIP || [https://github.com/maemo-leste/connui-cellular connui-cellular] [https://github.com/maemo-leste/libicd-network-ofono libicd-network-ofono] || There is basic libicd-network-ofono, connui-cellular is being ported to ofono&lt;br /&gt;
|-&lt;br /&gt;
| [[Status/GPS|GPS]] || OK || gpsd, liblocation, location-daemon ||&lt;br /&gt;
|-&lt;br /&gt;
| [[Status/SMS|SMS]] || WIP || sphone, conversations, ofono, telepathy-ring ? ||&lt;br /&gt;
|-&lt;br /&gt;
| [[Status/Phone Calls|Phone Calls]] || OK || sphone, ofono, telepathy-ring ? || Just works on most of the devices, except for the [https://github.com/maemo-leste/bugtracker/issues/77 n900]&lt;br /&gt;
|-&lt;br /&gt;
| [[Status/Application Manager|Application Manager]] || OK || [https://github.com/maemo-leste/hildon-application-manager hildon-application-manager] || Mostly works, but needs serious testing [https://github.com/maemo-leste/bugtracker/issues/202 tracking issue]&lt;br /&gt;
|-&lt;br /&gt;
| [[Status/Media Player|Media Player]] || No(t yet) || open media player || [https://github.com/maemo-leste/bugtracker/issues/25 tracking issue]&lt;br /&gt;
|-&lt;br /&gt;
| [[Status/PDF Viewer|PDF Viewer]] || Mostly works || osso-pdf-viewer || [https://github.com/maemo-leste/osso-pdf-viewer osso-pdf-viewer]&lt;br /&gt;
|-&lt;br /&gt;
| [[Status/Games|Games &amp;amp; Entertainment]] || OK || Works (available in [[Leste Extras]] || [https://github.com/maemo-leste/bugtracker/issues/18 sdl fullscreen] [https://github.com/maemo-leste/bugtracker/issues/238 game importing]&lt;br /&gt;
|-&lt;br /&gt;
| [[Status/Theming|Theming]] || OK || Works with themes (available in [[Leste Extras]] ||&lt;br /&gt;
|-&lt;br /&gt;
| [[Calendar|Calendar]] || OK || Qalendar UI, syncing works. (UI needs some scrolling work) ||&lt;br /&gt;
|-&lt;br /&gt;
| [[Qt|Qt]] || OK || Qt5 port mostly works || https://github.com/maemo-leste/qtstyleplugins/ + https://github.com/maemo-leste/qt-platform-maemo&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Wizzup</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Motorola_Droid_4&amp;diff=1368</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=1368"/>
		<updated>2022-08-16T12:52:47Z</updated>

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

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

		<summary type="html">&lt;p&gt;Wizzup: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Package&lt;br /&gt;
|image=&lt;br /&gt;
|status=Working&lt;br /&gt;
|devices=[[Nokia_N900]],[[Motorola_Droid_4]],[[PinePhone]]&lt;br /&gt;
|date_in_repo=2021-11-01&lt;br /&gt;
|maemo_leste_repo=https://github.com/maemo-leste/libicd-tor&lt;br /&gt;
|category=Network&lt;br /&gt;
|packager=[[User:Wizzup]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
= Tor in Maemo Leste =&lt;br /&gt;
&lt;br /&gt;
[https://www.torproject.org/ Tor] support is integrated in Maemo Leste (through ICD2) and is available for installation using the package manager. Once you've installed the package, restart the device. You should now see a Tor applet in the control panel, and a Tor applet in the status applet.&lt;br /&gt;
&lt;br /&gt;
Tor is widely used to defend against and fight surveillance and tracking and circumvent censorship. It can be used on Maemo Leste in two ways, either by tunnelling all your traffic over Tor (much like [https://tails.boum.org/ Tails] does), or by having Tor run on the side, allowing access to hidden services. Hidden bridges are also supported.&lt;br /&gt;
&lt;br /&gt;
== Configuring Tor using the UI ==&lt;br /&gt;
&lt;br /&gt;
In the control panel, you should be able to create a new configuration. You can choose between transparent proxying or not, and optionally select bridges and configure some other advanced settings.&lt;br /&gt;
&lt;br /&gt;
Then, in the status applet, select the config you'd like, and enable system wide Tor mode. At this point, connecting to any IAP should cause the Tor connection to start. If the Tor connection fails to start in system wide mode, the IAP will be disconnected. If the IAP has Tor configured as service provider, then Tor failing to start will cause the connection to abort.&lt;br /&gt;
&lt;br /&gt;
== Obligatory word of warning ==&lt;br /&gt;
&lt;br /&gt;
If you rely on Tor to keep you safe, please realise that Maemo Leste (and the Tor integration) are alpha software - they are not necessarily stable and you should not rely on it to keep yourself safe at this point in time.&lt;br /&gt;
&lt;br /&gt;
Tunnelling all your traffic over Tor also doesn't automatically anonymise you - for example, if you share your GPS location (or personal information) using your browser over Tor, you are still sharing your location.&lt;br /&gt;
&lt;br /&gt;
Maemo Leste does not (yet) provide many of the features that Tails provides, such as the Amnesia mode and encrypted persistent storage.&lt;br /&gt;
&lt;br /&gt;
== Gallery ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=320px heights=173px&amp;gt;&lt;br /&gt;
TorAppMgr.png|Tor is installable from the application manager&lt;br /&gt;
TorAppMgr2.png&lt;br /&gt;
TorCheck.png|Checking system wide support&lt;br /&gt;
TorProvider.png|Setting a per connection (IAP) Wireguard configuration&lt;br /&gt;
TorProvider2.png|&lt;br /&gt;
TorConnected.png|Tor is connected&lt;br /&gt;
TorCPA.png|Tor control panel applet icon&lt;br /&gt;
TorCPA2.png|Tor control panel, editing a configuration&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Fetching package updates through hidden services ==&lt;br /&gt;
&lt;br /&gt;
It is possible to update your Maemo Leste device entirely through Tor, all you'll have to do is edit /etc/apt/sources.list and replace the following two hosts with the hidden service URLs:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;https://pkgmaster.devuan.org/merged -&amp;gt; tor+http://devuanauxrkggcowgm2vcs6go3c5pgxdidd5wqjpg7zpfaxkmgspr6id.onion/merged&lt;br /&gt;
https://maedevu.maemo.org/leste -&amp;gt; tor+http://maemopkgove3kc2xxzyuk26j3ict6qzbqi3govge3s6h5aokr2uo6eqd.onion/leste&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Extras]]&lt;/div&gt;</summary>
		<author><name>Wizzup</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Motorola_Droid_Bionic&amp;diff=1307</id>
		<title>Motorola Droid Bionic</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Motorola_Droid_Bionic&amp;diff=1307"/>
		<updated>2022-07-10T09:54:22Z</updated>

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

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

		<summary type="html">&lt;p&gt;Wizzup: Created page with &amp;quot;Sometimes one might need to set up wifi over serial when there is no touchscreen or display.  This is an example on how to do it. Make sure that the wlan_ssid and name match,...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sometimes one might need to set up wifi over serial when there is no touchscreen or display.&lt;br /&gt;
&lt;br /&gt;
This is an example on how to do it. Make sure that the wlan_ssid and name match, of course.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
gconftool -s /system/osso/connectivity/IAP/ac257b8f-5255-4239-9123-6dfac56547c8/EAP_wpa_preshared_passphrase -t string PSKHERE&lt;br /&gt;
gconftool -s /system/osso/connectivity/IAP/ac257b8f-5255-4239-9123-6dfac56547c8/type -t string WLAN_INFRA&lt;br /&gt;
gconftool -t bool -s /system/osso/connectivity/IAP/ac257b8f-5255-4239-9123-6dfac56547c8/wlan_hidden false&lt;br /&gt;
gconftool -t string -s /system/osso/connectivity/IAP/ac257b8f-5255-4239-9123-6dfac56547c8/wlan_security WPA_PSK&lt;br /&gt;
gconftool -t string -s /system/osso/connectivity/IAP/ac257b8f-5255-4239-9123-6dfac56547c8/proxytype NONE&lt;br /&gt;
gconftool -t string -s /system/osso/connectivity/IAP/ac257b8f-5255-4239-9123-6dfac56547c8/name 'Het Kleine Bos'&lt;br /&gt;
gconftool -t string -s /system/osso/connectivity/IAP/ac257b8f-5255-4239-9123-6dfac56547c8/ipv4_type auto&lt;br /&gt;
gconftool -t list --list-type int -s /system/osso/connectivity/IAP/ac257b8f-5255-4239-9123-6dfac56547c8/wlan_ssid '[72,101,116,32,75,108,101,105,110,101,32,66,111,115]'&lt;br /&gt;
gconftool -t list --list-type string -s /system/osso/connectivity/network_type '[WLAN_INFRA]'&lt;br /&gt;
gconftool -t int -s /system/osso/connectivity/search_interval 300&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
dbus-send --system --type=method_call --dest=com.nokia.icd /com/nokia/icd com.nokia.icd.connect string:&amp;quot;ac257b8f-5255-4239-9123-6dfac56547c8&amp;quot; uint32:0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wizzup</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Development&amp;diff=1285</id>
		<title>Development</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Development&amp;diff=1285"/>
		<updated>2022-04-28T19:36:40Z</updated>

		<summary type="html">&lt;p&gt;Wizzup: /* Developing on a device */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Maemo Leste development is split up in a few different places.&lt;br /&gt;
&lt;br /&gt;
== Communication and organising ==&lt;br /&gt;
&lt;br /&gt;
* Our https://maemo-leste.github.io website is where we post (news) updates, as well as on talk.maemo.org (see this subforum https://talk.maemo.org/forumdisplay.php?f=66 and this maemo.org thread: https://talk.maemo.org/showthread.php?t=100192)&lt;br /&gt;
* There is the issue tracker; for filing bugs and keeping track of issues/milestones. https://github.com/maemo-leste/bugtracker&lt;br /&gt;
* The day-to-day development and user chatter mostly takes place in the [[IRC channel]]&lt;br /&gt;
* We also have a mailing list, at [https://lists.dyne.org/lurker/list/maemo-leste.en.html https://lists.dyne.org/lurker/list/maemo-leste.en.html]&lt;br /&gt;
* This wiki: for documenting the status of various long-running projects, status per device, etc.&lt;br /&gt;
&lt;br /&gt;
== Task Summary ==&lt;br /&gt;
&lt;br /&gt;
For current (semi) impactful tasks, see&lt;br /&gt;
&lt;br /&gt;
[[Development/Tasks]]&lt;br /&gt;
&lt;br /&gt;
== Codename ==&lt;br /&gt;
&lt;br /&gt;
* Maemo Leste is currently based on Devuan Beowulf, which is based on Debian Buster.&lt;br /&gt;
&lt;br /&gt;
== Guides ==&lt;br /&gt;
&lt;br /&gt;
* [[Development/Porting Packages]]&lt;br /&gt;
* [[Development/Building Packages]]&lt;br /&gt;
* [[Development/Modified Software]]&lt;br /&gt;
* [[Development/Device Bringup]]&lt;br /&gt;
* https://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide&lt;br /&gt;
&lt;br /&gt;
== Technical ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All our git repositories can be found here: https://github.com/maemo-leste&lt;br /&gt;
&lt;br /&gt;
=== Jenkins ===&lt;br /&gt;
&lt;br /&gt;
To aid development and provide &amp;quot;continous integration&amp;quot; we have a build server, which takes a git repository and builds software and packages it, and will automatically make said package end up in Maemo Leste repositories. This is done by Jenkins, and the instance can be found here: https://phoenix.maemo.org/&lt;br /&gt;
&lt;br /&gt;
=== Developing on a device ===&lt;br /&gt;
&lt;br /&gt;
All development software and tests end up in 'beowulf-devel' apt source. For enabling this edit '/etc/apt/sources.list' and add this line: &lt;br /&gt;
&lt;br /&gt;
 deb https://maedevu.maemo.org/leste beowulf-devel main contrib non-free droid4&lt;br /&gt;
&lt;br /&gt;
The exact line might depend on your device; just copy the maemo beowulf line and change beowulf to beowulf-devel - for example, if you're not on a mapphone (droid) device, you probably don't want the droid4 component in the line.&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 'scratchbox' type VM)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The current developers mostly work in a [[Virtual_Machine|Virtual Machine]] or on a [[Raspberry Pi 2|Raspberry Pi]].&lt;br /&gt;
&lt;br /&gt;
=== Building a Maemo Leste image ===&lt;br /&gt;
&lt;br /&gt;
See https://leste.maemo.org/Image_Builder&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== List of Programs/Daemon specific to Maemo ===&lt;br /&gt;
&lt;br /&gt;
https://leste.maemo.org/Development/Daemons&lt;br /&gt;
&lt;br /&gt;
=== Crossbuilding ===&lt;br /&gt;
&lt;br /&gt;
Multiarch is an ability present on modern Debian systems that allows you to build native packages for different architectures. This is nice because you can build packages for an ARM based phone using the full power of your x86 based PC/Mac/Notebook or a server.&lt;br /&gt;
&lt;br /&gt;
Here we show how you can easily setup a multiarch environment and build a native package for Maemo Leste running on Nokia N900. We are going to make a container (chroot) for this job. It's because we don't want to pollute our main system.&lt;br /&gt;
&lt;br /&gt;
 # Make a container for our development system&lt;br /&gt;
 DIR=/var/lib/container/stretch&lt;br /&gt;
 sudo apt-get install qemu-user-static debootstrap systemd-container &amp;amp;&amp;amp;&lt;br /&gt;
 sudo debootstrap --arch=armhf stretch $DIR http://deb.debian.org/debian &amp;amp;&amp;amp;&lt;br /&gt;
 echo &amp;quot;strech_cross&amp;quot; | sudo tee $DIR/etc/debian_chroot &amp;amp;&amp;amp;&lt;br /&gt;
 sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D $DIR&lt;br /&gt;
 &lt;br /&gt;
 # Setup build environment inside the container&lt;br /&gt;
 cat &amp;gt;&amp;gt; ~/.bashrc &amp;lt;&amp;lt; EOF &amp;amp;&amp;amp;&lt;br /&gt;
 export PKG_CONFIG_PATH=/usr/lib/pkgconfig&lt;br /&gt;
 export CC=arm-linux-gnueabihf-gcc&lt;br /&gt;
 export JOBS=$(grep processor /proc/cpuinfo | wc -l)&lt;br /&gt;
 EOF&lt;br /&gt;
 dpkg --add-architecture armhf &amp;amp;&amp;amp;&lt;br /&gt;
 apt-get -y install --no-install-recommends build-essential crossbuild-essential-armhf ca-certificates &amp;amp;&amp;amp;&lt;br /&gt;
 cat &amp;gt;&amp;gt; /etc/apt/sources.list &amp;lt;&amp;lt; &amp;quot;EOF&amp;quot; &amp;amp;&amp;amp;&lt;br /&gt;
 deb http://maedevu.maemo.org/leste ascii main contrib non-free n900&lt;br /&gt;
 deb http://maedevu.maemo.org/leste ascii-devel main contrib non-free n900&lt;br /&gt;
 &lt;br /&gt;
 deb-src http://deb.debian.org/debian stretch main&lt;br /&gt;
 deb-src http://maedevu.maemo.org/leste ascii main contrib non-free n900&lt;br /&gt;
 deb-src http://maedevu.maemo.org/leste ascii-devel main contrib non-free n900&lt;br /&gt;
 EOF&lt;br /&gt;
 wget --no-check-certificate https://maedevu.maemo.org/testing-key.asc &amp;amp;&amp;amp;&lt;br /&gt;
 apt-key add testing-key.asc &amp;amp;&amp;amp;&lt;br /&gt;
 rm -f testing-key.asc &amp;amp;&amp;amp;&lt;br /&gt;
 rm -f /var/cache/apt/archives/*.deb &amp;amp;&amp;amp;&lt;br /&gt;
 apt-get update &amp;amp;&amp;amp;&lt;br /&gt;
 exec bash&lt;br /&gt;
 &lt;br /&gt;
 # Build Xorg for Nokia N900&lt;br /&gt;
 apt-get source xserver-xorg-core &amp;amp;&amp;amp;&lt;br /&gt;
 cd xorg-server-1.19.2 &amp;amp;&amp;amp;&lt;br /&gt;
 wget https://raw.githubusercontent.com/buildroot/buildroot/88e0f214dcb7c2a99a4425a70673d2aa5f48d720/package/x11r7/xserver_xorg-server/1.20.4/0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch &amp;amp;&amp;amp;&lt;br /&gt;
 mv -v 0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch debian/patches &amp;amp;&amp;amp;&lt;br /&gt;
 echo -e &amp;quot;# crossbuild fix\n0002-configure.ac-Fix-check-for-CLOCK_MONOTONIC.patch&amp;quot; &amp;gt;&amp;gt; debian/patches/series &amp;amp;&amp;amp;&lt;br /&gt;
 apt-get -y build-dep -a armhf . &amp;amp;&amp;amp;&lt;br /&gt;
 time dpkg-buildpackage -aarmhf -j$JOBS -b &amp;amp;&amp;amp;&lt;br /&gt;
 echo OK || echo FAIL&lt;br /&gt;
&lt;br /&gt;
To login the container later:&lt;br /&gt;
 sudo systemd-nspawn --bind /usr/bin/qemu-arm-static -D /var/lib/container/stretch&lt;br /&gt;
&lt;br /&gt;
To remove the container:&lt;br /&gt;
 sudo rm -fr /var/lib/container/stretch&lt;br /&gt;
&lt;br /&gt;
=== Cross-distro solution for development inside an ARM/ARM64 chroot on a PC ===&lt;br /&gt;
&lt;br /&gt;
It'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 '''update-binfmts''':&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'll now be ready to use your Maemo Leste ARM64 development environment:&lt;br /&gt;
&lt;br /&gt;
 $ uname -m&lt;br /&gt;
 aarch64&lt;br /&gt;
&lt;br /&gt;
Once you have finished with it, you can exit and unmount the resources you previously mounted:&lt;br /&gt;
&lt;br /&gt;
 $ exit&lt;br /&gt;
 $ sudo umount dev/pts dev proc&lt;br /&gt;
&lt;br /&gt;
=== Localization ===&lt;br /&gt;
&lt;br /&gt;
See [[Localization]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== TODO ===&lt;br /&gt;
&lt;br /&gt;
* Discuss where people look to pick up issues (clear answer is the bugtracker, but still)&lt;br /&gt;
* How people can make changes and how to send them in&lt;/div&gt;</summary>
		<author><name>Wizzup</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=User:Wizzup/Jenkins&amp;diff=1282</id>
		<title>User:Wizzup/Jenkins</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=User:Wizzup/Jenkins&amp;diff=1282"/>
		<updated>2022-04-28T08:55:43Z</updated>

		<summary type="html">&lt;p&gt;Wizzup: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Setting up a Jenkins build slave requires the following steps to be executed on a machine that matches the Maemo devuan version (Not sure if this is strictly required, we just did it that way before).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install default-jre-headless&lt;br /&gt;
apt install jenkins-debian-glue jenkins-debian-glue-buildenv-devuan&lt;br /&gt;
apt purge exim4-base exim4-config exim4-daemon-light&lt;br /&gt;
apt --purge autoremove&lt;br /&gt;
apt install ntp&lt;br /&gt;
&lt;br /&gt;
useradd -m -s /bin/bash jenkins&lt;br /&gt;
passwd jenkins&lt;br /&gt;
su - jenkins # add ssh pub key from jenkins master to .ssh/authorized_keys&lt;br /&gt;
apt install sudo&lt;br /&gt;
sudo vi /etc/sudoers # allow passwordless sudo for sudo group&lt;br /&gt;
gpasswd -a jenkins sudo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, this might not be necessary, but one could add this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /etc/sudoers.d/jenkins&lt;br /&gt;
jenkins ALL=NOPASSWD: /usr/sbin/cowbuilder, /usr/sbin/chroot, /bin/chmod, /bin/rm, /bin/mv, /bin/cat&lt;br /&gt;
Defaults env_keep+=&amp;quot;DEB_* DIST ARCH ADT QEMU_LOG_FILENAME&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also copy over /etc/jenkins from one of the existing nodes, specifically for the debian glue config, see below.&lt;br /&gt;
&lt;br /&gt;
Then add it to Jenkins as a node (I just copied an existing node and changed the host/ip).&lt;br /&gt;
&lt;br /&gt;
Then run a build, it will likely fail, because our keys are not yet added to the pbuilder environment that just got created during the first build.&lt;br /&gt;
&lt;br /&gt;
Add it like so:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /var/cache/pbuilder/base-beowulf-arm*.cow&lt;br /&gt;
wget https://maedevu.maemo.org/extras-key.asc&lt;br /&gt;
wget https://maedevu.maemo.org/testing-key.asc&lt;br /&gt;
&lt;br /&gt;
chroot /var/cache/pbuilder/base-beowulf-arm*.cow&lt;br /&gt;
apt install gnupg1&lt;br /&gt;
apt-key add &amp;lt; extras-key.asc&lt;br /&gt;
apt-key add &amp;lt; testing-key.asc&lt;br /&gt;
rm *.asc&lt;br /&gt;
exit&lt;br /&gt;
cd -&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/etc/jenkins/pbuilderrc:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
MIRRORSITE=&amp;quot;http://pkgmaster.devuan.org/merged/&amp;quot;&lt;br /&gt;
COMPONENTS=&amp;quot;main contrib non-free&amp;quot;&lt;br /&gt;
DEBOOTSTRAPOPTS=(&amp;quot;${DEBOOTSTRAPOPTS[@]}&amp;quot; &amp;quot;--keyring=/usr/share/keyrings/devuan-keyring.gpg&amp;quot; &amp;quot;--no-merged-usr&amp;quot;)&lt;br /&gt;
PBUILDERSATISFYDEPENDSCMD=/usr/lib/pbuilder/pbuilder-satisfydepends-apt&lt;br /&gt;
EXTRAPACKAGES=&amp;quot;$EXTRAPACKAGES devuan-keyring&amp;quot;&lt;br /&gt;
AUTOCLEANAPTCACHE=yes&lt;br /&gt;
&lt;br /&gt;
if [[ $ARCH == arm* ]] ; then&lt;br /&gt;
   EXTRAPACKAGES=&amp;quot;$EXTRAPACKAGES pinthread&amp;quot;&lt;br /&gt;
   export LD_PRELOAD=&amp;quot;$LD_PRELOAD /usr/lib/pinthread.so&amp;quot;&lt;br /&gt;
   export PINTHREAD_CORE=0&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/etc/jenkins/debian_glue:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Example configuration file for the jenkins-debian-glue software.&lt;br /&gt;
# Install this file as /etc/jenkins/debian_glue to enable it.&lt;br /&gt;
&lt;br /&gt;
# Set GnuPG ID that should be used for signing the reprepro repository.&lt;br /&gt;
# If you build packages for Squeeze your reprepro repositories *MUST* be&lt;br /&gt;
# signed and the keyring that holds the public key (REPOSITORY_KEYRING)&lt;br /&gt;
# must be set.&lt;br /&gt;
# Expected format: DEADBEEF&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$release&amp;quot; = &amp;quot;leste&amp;quot; ]; then&lt;br /&gt;
	KEY_ID=4AA81E3E026EFE82E47D6901545FEC4E0927F6FD&lt;br /&gt;
else&lt;br /&gt;
	# extras&lt;br /&gt;
	KEY_ID=89F632F52BFE13EBBB2EBD0D2700BD8E6604EC2E&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# If TRUNK_RELEASE is set then the package(s) of the repository&lt;br /&gt;
# receiving the packages that are built will be copied to the&lt;br /&gt;
# repository specified in TRUNK_RELEASE. This provides the option&lt;br /&gt;
# to have all recent versions of packages in a central repository.&lt;br /&gt;
# TRUNK_RELEASE='release-trunk'&lt;br /&gt;
&lt;br /&gt;
# If packages are build for more than one architecture you can&lt;br /&gt;
# decide which architecture should build the &amp;quot;Architecture: all&amp;quot;&lt;br /&gt;
# packages. On all other architectures only the arch specific&lt;br /&gt;
# packages will be build then.&lt;br /&gt;
# If unset it will default to the architecture of the host system.&lt;br /&gt;
MAIN_ARCHITECTURE=&amp;quot;amd64&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Hook scripts for pbuilder/cowbuilder, used e.g. for autopkgtest.&lt;br /&gt;
# Default:&lt;br /&gt;
# PBUILDER_HOOKDIR=/usr/share/jenkins-debian-glue/pbuilder-hookdir/&lt;br /&gt;
&lt;br /&gt;
# To enable a pbuilder configuration file for usage as documented&lt;br /&gt;
# in man pbuilder(8) under --configfile set this option.&lt;br /&gt;
# By default no user specific pbuilder configuration file is used.&lt;br /&gt;
# PBUILDER_CONFIG=/etc/jenkins/pbuilderrc&lt;br /&gt;
&lt;br /&gt;
# Base directory for reprepro repositories, can be overwritten&lt;br /&gt;
# via REPOSITORY on demand&lt;br /&gt;
# Default:&lt;br /&gt;
DEFAULT_REPOSITORY='/srv/repository'&lt;br /&gt;
&lt;br /&gt;
# In order to keep the build versions unique and to ensure that there&lt;br /&gt;
# are no duplicates, the version number from the changelog is padded&lt;br /&gt;
# with the date and the build number.&lt;br /&gt;
# To override this behaviour and preserve the version number from the&lt;br /&gt;
# changelog, set USE_ORIG_VERSION to true.&lt;br /&gt;
USE_ORIG_VERSION=true&lt;br /&gt;
SKIP_DCH=true&lt;br /&gt;
&lt;br /&gt;
DCH_OPTS=&amp;quot;--multimaint-merge --ignore-branch&amp;quot;&lt;br /&gt;
#DCH_EXTRA_OPTS=&amp;quot;--distribution=maemo7 --force-distribution -R&amp;quot;&lt;br /&gt;
#DCH_EXTRA_OPTS=&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#maybe? line 103 in /usr/bin/generate-git-snapshot&lt;br /&gt;
UNRELEASEAD_APPEND_COMMIT=&amp;quot;false&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# By default reprepro repositories are not verified but assumed to be&lt;br /&gt;
# trustworthy.&lt;br /&gt;
# Please note that if you build packages for Squeeze, the reprepro&lt;br /&gt;
# repositories *MUST* be signed and verifiable. I.e. you need to set&lt;br /&gt;
# KEY_ID and the corresponding keyring in REPOSITORY_KEYRING that&lt;br /&gt;
# holds the public key portion for that KEY_ID.&lt;br /&gt;
# REPOSITORY_KEYRING=/etc/apt/trusted.gpg.d/my-custom-keyring.gpg&lt;br /&gt;
REPOSITORY_KEYRING=/var/lib/jenkins/.gnupg/keyring.gpg&lt;br /&gt;
&lt;br /&gt;
#release=${release:-kawai}&lt;br /&gt;
#REPOSITORY=/srv/repository&lt;br /&gt;
# If $release is set then &amp;quot;${REPOSITORY}/release/${release}&amp;quot;&lt;br /&gt;
# is used as release repository. If you want to use a different&lt;br /&gt;
# directory set RELEASE_REPOSITORY accordingly.&lt;br /&gt;
# Default:&lt;br /&gt;
# RELEASE_REPOSITORY=&amp;quot;${REPOSITORY}/release/${release}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
RELEASE_REPOSITORY=&amp;quot;${DEFAULT_REPOSITORY}/${release}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Remove packages from a $release before processing incoming&lt;br /&gt;
# This allows to rebuild and provide versions already existent&lt;br /&gt;
# in the release repository they are built for.&lt;br /&gt;
# Default:&lt;br /&gt;
# REMOVE_FROM_RELEASE=false&lt;br /&gt;
&lt;br /&gt;
# By default the underlying build system (cowbuilder/pbuilder)&lt;br /&gt;
# automatically destroys the build environment, even if building&lt;br /&gt;
# fails for whatever reason. If DEB_KEEP_BUILD_ENV is set then&lt;br /&gt;
# a copy of the build environment is created under&lt;br /&gt;
# /var/cache/pbuilder/build/debug.$JOBNAME&lt;br /&gt;
# Please be aware that those build environments usually require&lt;br /&gt;
# quite some disk space, so do not forget to remove them.&lt;br /&gt;
# If unset the build environment won't be kept if building fails.&lt;br /&gt;
# DEB_KEEP_BUILD_ENV=true&lt;br /&gt;
&lt;br /&gt;
# Comma separated list of extra repositories for resolving dependencies.&lt;br /&gt;
# Usage example:&lt;br /&gt;
# REPOSITORY_EXTRA='deb http://security.debian.org/ wheezy/updates main,deb-src http://security.debian.org/ wheezy/updates main'&lt;br /&gt;
# Default:&lt;br /&gt;
# REPOSITORY_EXTRA=&lt;br /&gt;
&lt;br /&gt;
PARENT_DISTRO=&lt;br /&gt;
DEVUAN_BUILD=&lt;br /&gt;
&lt;br /&gt;
case &amp;quot;$distribution&amp;quot; in&lt;br /&gt;
    stretch*)&lt;br /&gt;
        PARENT_DISTRO=ascii&lt;br /&gt;
        ;;&lt;br /&gt;
    buster*)&lt;br /&gt;
        PARENT_DISTRO=beowulf&lt;br /&gt;
        ;;&lt;br /&gt;
    bullseye*)&lt;br /&gt;
        PARENT_DISTRO=&lt;br /&gt;
        ;;&lt;br /&gt;
    bookworm*)&lt;br /&gt;
        PARENT_DISTRO=&lt;br /&gt;
        ;;&lt;br /&gt;
    *)&lt;br /&gt;
        DEVUAN_BUILD=1&lt;br /&gt;
esac&lt;br /&gt;
&lt;br /&gt;
if [ -z &amp;quot;$DEVUAN_BUILD&amp;quot; ]; then&lt;br /&gt;
        # Debian&lt;br /&gt;
        MIRROR=&amp;quot;http://deb.debian.org/debian&amp;quot;&lt;br /&gt;
        SECURITY_MIRROR=&amp;quot;http://security.debian.org/debian-security&amp;quot;&lt;br /&gt;
        SECURITY_FOLDER=&amp;quot;${distribution}/updates&amp;quot;&lt;br /&gt;
&lt;br /&gt;
        # This option is needed for pbuilder to work nice in Devuan environment&lt;br /&gt;
        PBUILDER_CONFIG=/etc/jenkins/debian_mirror&lt;br /&gt;
        # Initialize it with command:&lt;br /&gt;
        # echo 'MIRRORSITE=http://deb.debian.org/debian' &amp;gt; /etc/jenkins/debian_mirror&lt;br /&gt;
else&lt;br /&gt;
        # Devuan&lt;br /&gt;
        MIRROR=&amp;quot;http://pkgmaster.devuan.org/merged&amp;quot;&lt;br /&gt;
        SECURITY_MIRROR=&amp;quot;${MIRROR}&amp;quot;&lt;br /&gt;
        SECURITY_FOLDER=&amp;quot;${distribution}-security&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
REPOSITORY_EXTRA=&amp;quot;deb ${MIRROR} ${distribution}-updates main contrib non-free&amp;quot;&lt;br /&gt;
REPOSITORY_EXTRA=&amp;quot;${REPOSITORY_EXTRA},deb ${SECURITY_MIRROR} ${SECURITY_FOLDER} main contrib non-free&amp;quot;&lt;br /&gt;
REPOSITORY_EXTRA=&amp;quot;${REPOSITORY_EXTRA},deb http://maedevu.maemo.org/${release} ${distribution} main contrib non-free&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Pull in deps from -devel when building -devel&lt;br /&gt;
if [ &amp;quot;$ENABLE_MAEMO_DEVEL&amp;quot; = &amp;quot;yes&amp;quot; ]; then&lt;br /&gt;
	REPOSITORY_EXTRA=&amp;quot;${REPOSITORY_EXTRA},deb http://maedevu.maemo.org/${release} ${distribution}-devel main contrib non-free&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$ENABLE_MAEMO_EXPERIMENTAL&amp;quot; = &amp;quot;yes&amp;quot; ]; then&lt;br /&gt;
	REPOSITORY_EXTRA=&amp;quot;${REPOSITORY_EXTRA},deb http://maedevu.maemo.org/${release} ${distribution}-experimental main contrib non-free&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Pull in deps from the main repo when building extras&lt;br /&gt;
if [ &amp;quot;$release&amp;quot; = &amp;quot;extras&amp;quot; ]; then&lt;br /&gt;
	REPOSITORY_EXTRA=&amp;quot;${REPOSITORY_EXTRA},deb http://maedevu.maemo.org/leste ${distribution} main contrib non-free&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Pull in deps from main repo when building for Debian&lt;br /&gt;
if [ -n &amp;quot;$PARENT_DISTRO&amp;quot; ]; then&lt;br /&gt;
	REPOSITORY_EXTRA=&amp;quot;${REPOSITORY_EXTRA},deb http://maedevu.maemo.org/leste ${PARENT_DISTRO} main contrib non-free&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Device specifics&lt;br /&gt;
backports_jobs=&amp;quot;mesa&amp;quot;&lt;br /&gt;
#n900_jobs=&amp;quot;libmatchbox2-n900 hildon-desktop-n900&amp;quot;&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;job_name: $JOB_NAME&amp;quot;&lt;br /&gt;
case &amp;quot;$JOB_NAME&amp;quot; in&lt;br /&gt;
*-source)&lt;br /&gt;
	_curpkgname=&amp;quot;$(echo $JOB_NAME | sed 's,-source$,,')&amp;quot;&lt;br /&gt;
	;;&lt;br /&gt;
*-binaries/*)&lt;br /&gt;
	_curpkgname=&amp;quot;$(echo $JOB_NAME | cut -d '/' -f1 | sed 's,-binaries$,,')&amp;quot;&lt;br /&gt;
	;;&lt;br /&gt;
*-repos/*)&lt;br /&gt;
	_curpkgname=&amp;quot;$(echo $JOB_NAME | cut -d '/' -f1 | sed 's,-repos$,,')&amp;quot;&lt;br /&gt;
	;;&lt;br /&gt;
*)&lt;br /&gt;
	_curpkgname=&amp;quot;irrelevant&amp;quot;&lt;br /&gt;
	;;&lt;br /&gt;
esac&lt;br /&gt;
&lt;br /&gt;
if echo &amp;quot;$backports_jobs&amp;quot; | grep -qw &amp;quot;$_curpkgname&amp;quot;; then&lt;br /&gt;
	case &amp;quot;$distribution&amp;quot; in&lt;br /&gt;
	ascii*|stretch*|beowulf*|buster*)&lt;br /&gt;
	        REPOSITORY_EXTRA=&amp;quot;${REPOSITORY_EXTRA},deb ${MIRROR} ${distribution}-backports main contrib non-free&amp;quot;&lt;br /&gt;
	        ;;&lt;br /&gt;
	esac&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
#if echo &amp;quot;$n900_jobs&amp;quot; | grep -qw &amp;quot;$_curpkgname&amp;quot;; then&lt;br /&gt;
#	REPOSITORY_EXTRA=&amp;quot;${REPOSITORY_EXTRA},deb http://maedevu.maemo.org/${release} ${distribution} n900&amp;quot;&lt;br /&gt;
#fi&lt;br /&gt;
&lt;br /&gt;
droid4_jobs=&amp;quot;pvr-omap4&amp;quot;&lt;br /&gt;
if echo &amp;quot;$droid4_jobs&amp;quot; | grep -qw &amp;quot;$_curpkgname&amp;quot;; then&lt;br /&gt;
	REPOSITORY_EXTRA=&amp;quot;${REPOSITORY_EXTRA},deb http://maedevu.maemo.org/${release} ${distribution} droid4&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
network_jobs=&amp;quot;pine64-uboot zkgroup signald anbox-image&amp;quot;&lt;br /&gt;
if echo &amp;quot;$network_jobs&amp;quot; | grep -qw &amp;quot;$_curpkgname&amp;quot;; then&lt;br /&gt;
	PBUILDER_USENETWORK=yes&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Comma separated list of URLs with keys for extra repositories.&lt;br /&gt;
# Usage example:&lt;br /&gt;
# REPOSITORY_EXTRA_KEYS='http://foorepo.domain.com/key1.gpg,http://barrepo.domain.com/key2.gpg'&lt;br /&gt;
# Default:&lt;br /&gt;
# REPOSITORY_EXTRA_KEYS=&lt;br /&gt;
REPOSITORY_EXTRA_KEYS='http://maedevu.maemo.org/testing-key.asc,http://maedevu.maemo.org/extras-key.asc'&lt;br /&gt;
&lt;br /&gt;
# autopkgtests are executed automatically inside the cowbuilder environment by&lt;br /&gt;
# default, corresponding to the ADT='internal' setting or if ADT is unset.&lt;br /&gt;
# To execute autopkgtests also externally via adt-run you need to set ADT to&lt;br /&gt;
# either 'external' (no internal runs) or 'all' (internal + external runs).&lt;br /&gt;
# The external autopkgtests depend on a configured ADT_RUNNER setting.&lt;br /&gt;
# To skip internal as well as external autopkgtests set ADT='skip'.&lt;br /&gt;
# Usage example (see adt-virt-qemu(1) for details regarding image setup):&lt;br /&gt;
# ADT='external'&lt;br /&gt;
# ADT_RUNNER=&amp;quot;adt-virt-qemu /srv/adt-${distribution:-}-${architecture:-}.img&amp;quot;&lt;br /&gt;
# Default:&lt;br /&gt;
# ADT=&lt;br /&gt;
&lt;br /&gt;
# Control usage of eatmydata to speed up builds. If eatmydata is present on the&lt;br /&gt;
# host system and when building for a recent distribution (Debian/jessie +&lt;br /&gt;
# Ubuntu/vivid or newer) eatmydata is enabled automatically.&lt;br /&gt;
# To force its usage (skipping any host + distribution checks) set it to 'true'.&lt;br /&gt;
# To disable its usage set it to 'false'.&lt;br /&gt;
# USE_EATMYDATA=true&lt;br /&gt;
&lt;br /&gt;
# Enable ccache (compiler cache for fast recompilation of C/C++ code)&lt;br /&gt;
# to speed up builds.&lt;br /&gt;
USE_CCACHE=true&lt;br /&gt;
&lt;br /&gt;
# Specify the format (as accepted by the 'date' command) for the generated&lt;br /&gt;
# build timestamp.&lt;br /&gt;
# Default: %Y%m%d%H%M%S&lt;br /&gt;
# TIMESTAMP_FORMAT=&amp;quot;%Y%m%d%H%M%S&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# In case you are explicitly marking your new package version as &amp;quot;UNRELEASED&amp;quot;&lt;br /&gt;
# inside the debian/changelog file, you may not get a package build version&lt;br /&gt;
# number containing the SCM commit. Set this to 'true' in order to work around&lt;br /&gt;
# this.&lt;br /&gt;
# Default: false&lt;br /&gt;
# UNRELEASED_APPEND_COMMIT=false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wizzup</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=User:Wizzup/Jenkins&amp;diff=1281</id>
		<title>User:Wizzup/Jenkins</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=User:Wizzup/Jenkins&amp;diff=1281"/>
		<updated>2022-04-28T08:36:38Z</updated>

		<summary type="html">&lt;p&gt;Wizzup: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Setting up a Jenkins build slave requires the following steps to be executed on a machine that matches the Maemo devuan version (Not sure if this is strictly required, we just did it that way before).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install default-jre-headless&lt;br /&gt;
apt install jenkins-debian-glue jenkins-debian-glue-buildenv-devuan&lt;br /&gt;
apt purge exim4-base exim4-config exim4-daemon-light&lt;br /&gt;
apt --purge autoremove&lt;br /&gt;
apt install ntp&lt;br /&gt;
&lt;br /&gt;
useradd -m -s /bin/bash jenkins&lt;br /&gt;
passwd jenkins&lt;br /&gt;
su - jenkins # add key&lt;br /&gt;
apt install sudo&lt;br /&gt;
sudo vi /etc/sudoers # allow passwordless sudo for sudo group&lt;br /&gt;
gpasswd -a jenkins sudo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also copy over /etc/jenkins from one of the existing nodes, specifically for the debian glue config, see below.&lt;br /&gt;
&lt;br /&gt;
Then add it to Jenkins as a node (I just copied an existing node and changed the host/ip).&lt;br /&gt;
&lt;br /&gt;
Then run a build, it will likely fail, because our keys are not yet added to the pbuilder environment that just got created during the first build.&lt;br /&gt;
&lt;br /&gt;
Add it like so:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /var/cache/pbuilder/base-beowulf-arm*.cow&lt;br /&gt;
wget https://maedevu.maemo.org/extras-key.asc&lt;br /&gt;
wget https://maedevu.maemo.org/testing-key.asc&lt;br /&gt;
&lt;br /&gt;
chroot /var/cache/pbuilder/base-beowulf-arm*.cow&lt;br /&gt;
apt install gnupg1&lt;br /&gt;
apt-key add &amp;lt; extras-key.asc&lt;br /&gt;
apt-key add &amp;lt; testing-key.asc&lt;br /&gt;
rm *.asc&lt;br /&gt;
exit&lt;br /&gt;
cd -&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/etc/jenkins/pbuilderrc:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
MIRRORSITE=&amp;quot;http://pkgmaster.devuan.org/merged/&amp;quot;&lt;br /&gt;
COMPONENTS=&amp;quot;main contrib non-free&amp;quot;&lt;br /&gt;
DEBOOTSTRAPOPTS=(&amp;quot;${DEBOOTSTRAPOPTS[@]}&amp;quot; &amp;quot;--keyring=/usr/share/keyrings/devuan-keyring.gpg&amp;quot; &amp;quot;--no-merged-usr&amp;quot;)&lt;br /&gt;
PBUILDERSATISFYDEPENDSCMD=/usr/lib/pbuilder/pbuilder-satisfydepends-apt&lt;br /&gt;
EXTRAPACKAGES=&amp;quot;$EXTRAPACKAGES devuan-keyring&amp;quot;&lt;br /&gt;
AUTOCLEANAPTCACHE=yes&lt;br /&gt;
&lt;br /&gt;
if [[ $ARCH == arm* ]] ; then&lt;br /&gt;
   EXTRAPACKAGES=&amp;quot;$EXTRAPACKAGES pinthread&amp;quot;&lt;br /&gt;
   export LD_PRELOAD=&amp;quot;$LD_PRELOAD /usr/lib/pinthread.so&amp;quot;&lt;br /&gt;
   export PINTHREAD_CORE=0&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/etc/jenkins/debian_glue:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Example configuration file for the jenkins-debian-glue software.&lt;br /&gt;
# Install this file as /etc/jenkins/debian_glue to enable it.&lt;br /&gt;
&lt;br /&gt;
# Set GnuPG ID that should be used for signing the reprepro repository.&lt;br /&gt;
# If you build packages for Squeeze your reprepro repositories *MUST* be&lt;br /&gt;
# signed and the keyring that holds the public key (REPOSITORY_KEYRING)&lt;br /&gt;
# must be set.&lt;br /&gt;
# Expected format: DEADBEEF&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$release&amp;quot; = &amp;quot;leste&amp;quot; ]; then&lt;br /&gt;
	KEY_ID=4AA81E3E026EFE82E47D6901545FEC4E0927F6FD&lt;br /&gt;
else&lt;br /&gt;
	# extras&lt;br /&gt;
	KEY_ID=89F632F52BFE13EBBB2EBD0D2700BD8E6604EC2E&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# If TRUNK_RELEASE is set then the package(s) of the repository&lt;br /&gt;
# receiving the packages that are built will be copied to the&lt;br /&gt;
# repository specified in TRUNK_RELEASE. This provides the option&lt;br /&gt;
# to have all recent versions of packages in a central repository.&lt;br /&gt;
# TRUNK_RELEASE='release-trunk'&lt;br /&gt;
&lt;br /&gt;
# If packages are build for more than one architecture you can&lt;br /&gt;
# decide which architecture should build the &amp;quot;Architecture: all&amp;quot;&lt;br /&gt;
# packages. On all other architectures only the arch specific&lt;br /&gt;
# packages will be build then.&lt;br /&gt;
# If unset it will default to the architecture of the host system.&lt;br /&gt;
MAIN_ARCHITECTURE=&amp;quot;amd64&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Hook scripts for pbuilder/cowbuilder, used e.g. for autopkgtest.&lt;br /&gt;
# Default:&lt;br /&gt;
# PBUILDER_HOOKDIR=/usr/share/jenkins-debian-glue/pbuilder-hookdir/&lt;br /&gt;
&lt;br /&gt;
# To enable a pbuilder configuration file for usage as documented&lt;br /&gt;
# in man pbuilder(8) under --configfile set this option.&lt;br /&gt;
# By default no user specific pbuilder configuration file is used.&lt;br /&gt;
# PBUILDER_CONFIG=/etc/jenkins/pbuilderrc&lt;br /&gt;
&lt;br /&gt;
# Base directory for reprepro repositories, can be overwritten&lt;br /&gt;
# via REPOSITORY on demand&lt;br /&gt;
# Default:&lt;br /&gt;
DEFAULT_REPOSITORY='/srv/repository'&lt;br /&gt;
&lt;br /&gt;
# In order to keep the build versions unique and to ensure that there&lt;br /&gt;
# are no duplicates, the version number from the changelog is padded&lt;br /&gt;
# with the date and the build number.&lt;br /&gt;
# To override this behaviour and preserve the version number from the&lt;br /&gt;
# changelog, set USE_ORIG_VERSION to true.&lt;br /&gt;
USE_ORIG_VERSION=true&lt;br /&gt;
SKIP_DCH=true&lt;br /&gt;
&lt;br /&gt;
DCH_OPTS=&amp;quot;--multimaint-merge --ignore-branch&amp;quot;&lt;br /&gt;
#DCH_EXTRA_OPTS=&amp;quot;--distribution=maemo7 --force-distribution -R&amp;quot;&lt;br /&gt;
#DCH_EXTRA_OPTS=&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#maybe? line 103 in /usr/bin/generate-git-snapshot&lt;br /&gt;
UNRELEASEAD_APPEND_COMMIT=&amp;quot;false&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# By default reprepro repositories are not verified but assumed to be&lt;br /&gt;
# trustworthy.&lt;br /&gt;
# Please note that if you build packages for Squeeze, the reprepro&lt;br /&gt;
# repositories *MUST* be signed and verifiable. I.e. you need to set&lt;br /&gt;
# KEY_ID and the corresponding keyring in REPOSITORY_KEYRING that&lt;br /&gt;
# holds the public key portion for that KEY_ID.&lt;br /&gt;
# REPOSITORY_KEYRING=/etc/apt/trusted.gpg.d/my-custom-keyring.gpg&lt;br /&gt;
REPOSITORY_KEYRING=/var/lib/jenkins/.gnupg/keyring.gpg&lt;br /&gt;
&lt;br /&gt;
#release=${release:-kawai}&lt;br /&gt;
#REPOSITORY=/srv/repository&lt;br /&gt;
# If $release is set then &amp;quot;${REPOSITORY}/release/${release}&amp;quot;&lt;br /&gt;
# is used as release repository. If you want to use a different&lt;br /&gt;
# directory set RELEASE_REPOSITORY accordingly.&lt;br /&gt;
# Default:&lt;br /&gt;
# RELEASE_REPOSITORY=&amp;quot;${REPOSITORY}/release/${release}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
RELEASE_REPOSITORY=&amp;quot;${DEFAULT_REPOSITORY}/${release}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Remove packages from a $release before processing incoming&lt;br /&gt;
# This allows to rebuild and provide versions already existent&lt;br /&gt;
# in the release repository they are built for.&lt;br /&gt;
# Default:&lt;br /&gt;
# REMOVE_FROM_RELEASE=false&lt;br /&gt;
&lt;br /&gt;
# By default the underlying build system (cowbuilder/pbuilder)&lt;br /&gt;
# automatically destroys the build environment, even if building&lt;br /&gt;
# fails for whatever reason. If DEB_KEEP_BUILD_ENV is set then&lt;br /&gt;
# a copy of the build environment is created under&lt;br /&gt;
# /var/cache/pbuilder/build/debug.$JOBNAME&lt;br /&gt;
# Please be aware that those build environments usually require&lt;br /&gt;
# quite some disk space, so do not forget to remove them.&lt;br /&gt;
# If unset the build environment won't be kept if building fails.&lt;br /&gt;
# DEB_KEEP_BUILD_ENV=true&lt;br /&gt;
&lt;br /&gt;
# Comma separated list of extra repositories for resolving dependencies.&lt;br /&gt;
# Usage example:&lt;br /&gt;
# REPOSITORY_EXTRA='deb http://security.debian.org/ wheezy/updates main,deb-src http://security.debian.org/ wheezy/updates main'&lt;br /&gt;
# Default:&lt;br /&gt;
# REPOSITORY_EXTRA=&lt;br /&gt;
&lt;br /&gt;
PARENT_DISTRO=&lt;br /&gt;
DEVUAN_BUILD=&lt;br /&gt;
&lt;br /&gt;
case &amp;quot;$distribution&amp;quot; in&lt;br /&gt;
    stretch*)&lt;br /&gt;
        PARENT_DISTRO=ascii&lt;br /&gt;
        ;;&lt;br /&gt;
    buster*)&lt;br /&gt;
        PARENT_DISTRO=beowulf&lt;br /&gt;
        ;;&lt;br /&gt;
    bullseye*)&lt;br /&gt;
        PARENT_DISTRO=&lt;br /&gt;
        ;;&lt;br /&gt;
    bookworm*)&lt;br /&gt;
        PARENT_DISTRO=&lt;br /&gt;
        ;;&lt;br /&gt;
    *)&lt;br /&gt;
        DEVUAN_BUILD=1&lt;br /&gt;
esac&lt;br /&gt;
&lt;br /&gt;
if [ -z &amp;quot;$DEVUAN_BUILD&amp;quot; ]; then&lt;br /&gt;
        # Debian&lt;br /&gt;
        MIRROR=&amp;quot;http://deb.debian.org/debian&amp;quot;&lt;br /&gt;
        SECURITY_MIRROR=&amp;quot;http://security.debian.org/debian-security&amp;quot;&lt;br /&gt;
        SECURITY_FOLDER=&amp;quot;${distribution}/updates&amp;quot;&lt;br /&gt;
&lt;br /&gt;
        # This option is needed for pbuilder to work nice in Devuan environment&lt;br /&gt;
        PBUILDER_CONFIG=/etc/jenkins/debian_mirror&lt;br /&gt;
        # Initialize it with command:&lt;br /&gt;
        # echo 'MIRRORSITE=http://deb.debian.org/debian' &amp;gt; /etc/jenkins/debian_mirror&lt;br /&gt;
else&lt;br /&gt;
        # Devuan&lt;br /&gt;
        MIRROR=&amp;quot;http://pkgmaster.devuan.org/merged&amp;quot;&lt;br /&gt;
        SECURITY_MIRROR=&amp;quot;${MIRROR}&amp;quot;&lt;br /&gt;
        SECURITY_FOLDER=&amp;quot;${distribution}-security&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
REPOSITORY_EXTRA=&amp;quot;deb ${MIRROR} ${distribution}-updates main contrib non-free&amp;quot;&lt;br /&gt;
REPOSITORY_EXTRA=&amp;quot;${REPOSITORY_EXTRA},deb ${SECURITY_MIRROR} ${SECURITY_FOLDER} main contrib non-free&amp;quot;&lt;br /&gt;
REPOSITORY_EXTRA=&amp;quot;${REPOSITORY_EXTRA},deb http://maedevu.maemo.org/${release} ${distribution} main contrib non-free&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Pull in deps from -devel when building -devel&lt;br /&gt;
if [ &amp;quot;$ENABLE_MAEMO_DEVEL&amp;quot; = &amp;quot;yes&amp;quot; ]; then&lt;br /&gt;
	REPOSITORY_EXTRA=&amp;quot;${REPOSITORY_EXTRA},deb http://maedevu.maemo.org/${release} ${distribution}-devel main contrib non-free&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$ENABLE_MAEMO_EXPERIMENTAL&amp;quot; = &amp;quot;yes&amp;quot; ]; then&lt;br /&gt;
	REPOSITORY_EXTRA=&amp;quot;${REPOSITORY_EXTRA},deb http://maedevu.maemo.org/${release} ${distribution}-experimental main contrib non-free&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Pull in deps from the main repo when building extras&lt;br /&gt;
if [ &amp;quot;$release&amp;quot; = &amp;quot;extras&amp;quot; ]; then&lt;br /&gt;
	REPOSITORY_EXTRA=&amp;quot;${REPOSITORY_EXTRA},deb http://maedevu.maemo.org/leste ${distribution} main contrib non-free&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Pull in deps from main repo when building for Debian&lt;br /&gt;
if [ -n &amp;quot;$PARENT_DISTRO&amp;quot; ]; then&lt;br /&gt;
	REPOSITORY_EXTRA=&amp;quot;${REPOSITORY_EXTRA},deb http://maedevu.maemo.org/leste ${PARENT_DISTRO} main contrib non-free&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Device specifics&lt;br /&gt;
backports_jobs=&amp;quot;mesa&amp;quot;&lt;br /&gt;
#n900_jobs=&amp;quot;libmatchbox2-n900 hildon-desktop-n900&amp;quot;&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;job_name: $JOB_NAME&amp;quot;&lt;br /&gt;
case &amp;quot;$JOB_NAME&amp;quot; in&lt;br /&gt;
*-source)&lt;br /&gt;
	_curpkgname=&amp;quot;$(echo $JOB_NAME | sed 's,-source$,,')&amp;quot;&lt;br /&gt;
	;;&lt;br /&gt;
*-binaries/*)&lt;br /&gt;
	_curpkgname=&amp;quot;$(echo $JOB_NAME | cut -d '/' -f1 | sed 's,-binaries$,,')&amp;quot;&lt;br /&gt;
	;;&lt;br /&gt;
*-repos/*)&lt;br /&gt;
	_curpkgname=&amp;quot;$(echo $JOB_NAME | cut -d '/' -f1 | sed 's,-repos$,,')&amp;quot;&lt;br /&gt;
	;;&lt;br /&gt;
*)&lt;br /&gt;
	_curpkgname=&amp;quot;irrelevant&amp;quot;&lt;br /&gt;
	;;&lt;br /&gt;
esac&lt;br /&gt;
&lt;br /&gt;
if echo &amp;quot;$backports_jobs&amp;quot; | grep -qw &amp;quot;$_curpkgname&amp;quot;; then&lt;br /&gt;
	case &amp;quot;$distribution&amp;quot; in&lt;br /&gt;
	ascii*|stretch*|beowulf*|buster*)&lt;br /&gt;
	        REPOSITORY_EXTRA=&amp;quot;${REPOSITORY_EXTRA},deb ${MIRROR} ${distribution}-backports main contrib non-free&amp;quot;&lt;br /&gt;
	        ;;&lt;br /&gt;
	esac&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
#if echo &amp;quot;$n900_jobs&amp;quot; | grep -qw &amp;quot;$_curpkgname&amp;quot;; then&lt;br /&gt;
#	REPOSITORY_EXTRA=&amp;quot;${REPOSITORY_EXTRA},deb http://maedevu.maemo.org/${release} ${distribution} n900&amp;quot;&lt;br /&gt;
#fi&lt;br /&gt;
&lt;br /&gt;
droid4_jobs=&amp;quot;pvr-omap4&amp;quot;&lt;br /&gt;
if echo &amp;quot;$droid4_jobs&amp;quot; | grep -qw &amp;quot;$_curpkgname&amp;quot;; then&lt;br /&gt;
	REPOSITORY_EXTRA=&amp;quot;${REPOSITORY_EXTRA},deb http://maedevu.maemo.org/${release} ${distribution} droid4&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
network_jobs=&amp;quot;pine64-uboot zkgroup signald anbox-image&amp;quot;&lt;br /&gt;
if echo &amp;quot;$network_jobs&amp;quot; | grep -qw &amp;quot;$_curpkgname&amp;quot;; then&lt;br /&gt;
	PBUILDER_USENETWORK=yes&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Comma separated list of URLs with keys for extra repositories.&lt;br /&gt;
# Usage example:&lt;br /&gt;
# REPOSITORY_EXTRA_KEYS='http://foorepo.domain.com/key1.gpg,http://barrepo.domain.com/key2.gpg'&lt;br /&gt;
# Default:&lt;br /&gt;
# REPOSITORY_EXTRA_KEYS=&lt;br /&gt;
REPOSITORY_EXTRA_KEYS='http://maedevu.maemo.org/testing-key.asc,http://maedevu.maemo.org/extras-key.asc'&lt;br /&gt;
&lt;br /&gt;
# autopkgtests are executed automatically inside the cowbuilder environment by&lt;br /&gt;
# default, corresponding to the ADT='internal' setting or if ADT is unset.&lt;br /&gt;
# To execute autopkgtests also externally via adt-run you need to set ADT to&lt;br /&gt;
# either 'external' (no internal runs) or 'all' (internal + external runs).&lt;br /&gt;
# The external autopkgtests depend on a configured ADT_RUNNER setting.&lt;br /&gt;
# To skip internal as well as external autopkgtests set ADT='skip'.&lt;br /&gt;
# Usage example (see adt-virt-qemu(1) for details regarding image setup):&lt;br /&gt;
# ADT='external'&lt;br /&gt;
# ADT_RUNNER=&amp;quot;adt-virt-qemu /srv/adt-${distribution:-}-${architecture:-}.img&amp;quot;&lt;br /&gt;
# Default:&lt;br /&gt;
# ADT=&lt;br /&gt;
&lt;br /&gt;
# Control usage of eatmydata to speed up builds. If eatmydata is present on the&lt;br /&gt;
# host system and when building for a recent distribution (Debian/jessie +&lt;br /&gt;
# Ubuntu/vivid or newer) eatmydata is enabled automatically.&lt;br /&gt;
# To force its usage (skipping any host + distribution checks) set it to 'true'.&lt;br /&gt;
# To disable its usage set it to 'false'.&lt;br /&gt;
# USE_EATMYDATA=true&lt;br /&gt;
&lt;br /&gt;
# Enable ccache (compiler cache for fast recompilation of C/C++ code)&lt;br /&gt;
# to speed up builds.&lt;br /&gt;
USE_CCACHE=true&lt;br /&gt;
&lt;br /&gt;
# Specify the format (as accepted by the 'date' command) for the generated&lt;br /&gt;
# build timestamp.&lt;br /&gt;
# Default: %Y%m%d%H%M%S&lt;br /&gt;
# TIMESTAMP_FORMAT=&amp;quot;%Y%m%d%H%M%S&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# In case you are explicitly marking your new package version as &amp;quot;UNRELEASED&amp;quot;&lt;br /&gt;
# inside the debian/changelog file, you may not get a package build version&lt;br /&gt;
# number containing the SCM commit. Set this to 'true' in order to work around&lt;br /&gt;
# this.&lt;br /&gt;
# Default: false&lt;br /&gt;
# UNRELEASED_APPEND_COMMIT=false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wizzup</name></author>
	</entry>
</feed>