<?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=Astra</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=Astra"/>
	<link rel="alternate" type="text/html" href="https://leste.maemo.org/Special:Contributions/Astra"/>
	<updated>2026-06-05T08:06:25Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Nokia_N900&amp;diff=1527</id>
		<title>Nokia N900</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Nokia_N900&amp;diff=1527"/>
		<updated>2023-04-22T01:36:01Z</updated>

		<summary type="html">&lt;p&gt;Astra: Add info about having the keyboard slide open to select the U-boot option&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Device&lt;br /&gt;
|image=[[File:Nokia N900 - Leste pre-alpha.jpg|250px]]&lt;br /&gt;
|manufacturer=Nokia&lt;br /&gt;
|codename=Rover, RX-51&lt;br /&gt;
|dimensions=110.9mm x 59.8mm x 18mm&lt;br /&gt;
|release_date=2009-11-11&lt;br /&gt;
|category=Supported&lt;br /&gt;
|soc=TI OMAP 3430 @600MHz&lt;br /&gt;
|dram=256 MB Mobile DDR&lt;br /&gt;
|power=&lt;br /&gt;
|lcd=800x480 3.5&amp;quot; Resistive TFT&lt;br /&gt;
|video=PowerVR SGX530&lt;br /&gt;
|audio=&lt;br /&gt;
|network=WL1251&lt;br /&gt;
|storage=32GB&lt;br /&gt;
|usb=Micro USB 2.0 Slave&lt;br /&gt;
|camera=&lt;br /&gt;
|sensors=&lt;br /&gt;
|other=&lt;br /&gt;
|headers=&lt;br /&gt;
|battery=1320mAh&lt;br /&gt;
|sw_kernel=6.1&lt;br /&gt;
|sw_serial=Yes, UART under battery, 2.7V max!&lt;br /&gt;
|sw_charging=Yes&lt;br /&gt;
|sw_usb_slave=Gadgets only&lt;br /&gt;
|sw_usb_host=With hacks&lt;br /&gt;
|sw_touchscreen=Yes, single-touch&lt;br /&gt;
|sw_keyboard=Yes&lt;br /&gt;
|sw_screen=Yes&lt;br /&gt;
|sw_hdmi=&lt;br /&gt;
|sw_tv=Yes&lt;br /&gt;
|sw_3daccel=Yes, closed driver&lt;br /&gt;
|sw_vibration=Yes&lt;br /&gt;
|sw_audio=Yes (complex, no ucm, no speaker protection)&lt;br /&gt;
|sw_calls=WIP&lt;br /&gt;
|sw_sms=Yes&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&#039;t want to configure u-boot from Fremantle, or your Fremantle rootfs is broken), or you just want to install quickly:&lt;br /&gt;
&lt;br /&gt;
1. Either download 0xFFFF (binary for x86) from https://maedevu.maemo.org/images/n900/tools/ or build from source from https://github.com/pali/0xFFFF/&lt;br /&gt;
&lt;br /&gt;
2. Download u-boot from https://maedevu.maemo.org/images/n900/tools/&lt;br /&gt;
&lt;br /&gt;
3. Turn off Nokia N900, issue the following command on PC and connect Nokia N900 to the PC: &amp;lt;code&amp;gt;sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -l&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Open the keyboard slider on the N900, and then issue following command on PC to test boot: &amp;lt;code&amp;gt;./0xFFFF -b&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This should present u-boot from which you can select external SD card and boot to Maemo Leste. If you are presented with a menu, select the option to boot from External SD card. If you just get a command prompt, type &amp;lt;code&amp;gt;run sdboot&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
To flash u-boot permanently, you can issue the following command&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;(Be careful though. This will replace the existing fremantle kernel. Only do this if you do not care about the existing maemo installation or you know how to recover from this condition)&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo ./0xFFFF -m test/u-boot-2013.04-2.bin -f&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Existing Fremantle ====&lt;br /&gt;
&lt;br /&gt;
If you have a functional Fremantle installation, you can follow these steps instead:&lt;br /&gt;
&lt;br /&gt;
1. Install &amp;quot;U-Boot with kernel 2.6.28-omap1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2. Install &amp;quot;Linux kernel for power user (boot image for U-Boot)&amp;quot;. This is optional, but recommended.&lt;br /&gt;
&lt;br /&gt;
3. Add Maemo Leste menu item (run as root):&lt;br /&gt;
 cat &amp;gt; /etc/bootmenu.d/30-maemo-leste.item &amp;lt;&amp;lt; &amp;quot;EOF&amp;quot; &amp;amp;&amp;amp;&lt;br /&gt;
 ITEM_NAME=&amp;quot;Maemo Leste&amp;quot;&lt;br /&gt;
 ITEM_KERNEL=&amp;quot;uImage&amp;quot;&lt;br /&gt;
 ITEM_DEVICE=&amp;quot;${EXT_CARD}p1&amp;quot;&lt;br /&gt;
 ITEM_FSTYPE=&amp;quot;ext2&amp;quot;&lt;br /&gt;
 EOF&lt;br /&gt;
 u-boot-update-bootmenu&lt;br /&gt;
&lt;br /&gt;
4. Reboot the device with the keyboard slide open (U-boot will boot the default option if the keyboard slide is closed)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Increase filesystem size ===&lt;br /&gt;
&lt;br /&gt;
Run the following script: &amp;lt;code&amp;gt;/etc/expandcard.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Serial ==&lt;br /&gt;
&lt;br /&gt;
http://n900.elektranox.org/serial-adapter.html&lt;br /&gt;
&lt;br /&gt;
http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports&lt;br /&gt;
&lt;br /&gt;
Use this command line (specifically the part after rootwait):&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, &#039;&#039;&#039;BE WARNED:&#039;&#039;&#039; 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;
&lt;br /&gt;
 modprobe ledtrig-default-on&lt;br /&gt;
&lt;br /&gt;
And:&lt;br /&gt;
&lt;br /&gt;
 echo default-on &amp;gt; /sys/class/leds/debug::sleep/trigger&lt;br /&gt;
&lt;br /&gt;
To enable the OMAP sleep debug LEDs (on the keyboard). Open keyboard, turn off the screen with the slider, and the LEDs will turn off if the phone ever reaches sleep modes.&lt;br /&gt;
&lt;br /&gt;
Currently it does not yet reliably reach any sleep modes.&lt;br /&gt;
&lt;br /&gt;
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 Nokia N900. Don&#039;t detach the charger immediately, give it some time after you see &amp;quot;Fully charged&amp;quot; message (10 minutes should be enough).&lt;br /&gt;
* Detach the charger and don&#039;t attach it again until the battery is fully depleted. Remember: if you attach the charger (or USB cable) at least once, you will need to start the calibration from the beginning (fully charge the device again).&lt;br /&gt;
* You may use the device as you normally do. You may power it off, power it on, reboot. All as usual. Just don&#039;t connect the device to a charger or a PC using the USB cable.&lt;br /&gt;
* When your Nokia N900 has battery depleted, it will alarm you with the &amp;quot;battery low&amp;quot; sound.&lt;br /&gt;
* Wait for about 20 seconds and attach the charger. If the device was powered off because of battery depletion, it&#039;s fine. The battery should have done the calibration cycle. Just attach the charger to the device, give it a minute and press power button to start booting.&lt;br /&gt;
* If you still see &amp;quot;Battery not calibrated&amp;quot; message, reboot the device.&lt;br /&gt;
&lt;br /&gt;
After the first calibration cycle you will see that it has ~1700 mAh for the fully charged battery. This value is wrong. It&#039;s how the battery calibration works in low level: it can&#039;t change the fully charged value of the battery in steps that exceed 12.5%. What this means for us: it&#039;s needed to repeat the calibration cycle several times to get more accurate value. It may take about 3-7 calibration cycles to get the proper mAh value for fully charged battery. If you spend some time on this process, you will get really accurate battery gauge and you will always know how much charge is remaining.&lt;br /&gt;
&lt;br /&gt;
Tip 1. If for any reason you want to reset the battery calibration value to see the message “Battery is not calibrated” again, you should remove the battery from the device for about 6 hours.&lt;br /&gt;
Tip 2. If you replace the battery, you may want to do 1-2 calibration cycles described above to update the gauge for your new battery.&lt;br /&gt;
&lt;br /&gt;
== Accessing MTD ==&lt;br /&gt;
&lt;br /&gt;
List devices:&lt;br /&gt;
 cat /proc/mtd&lt;br /&gt;
&lt;br /&gt;
Mount:&lt;br /&gt;
 apt install mtd-utils&lt;br /&gt;
 mkdir -vp /mnt/fremantle&lt;br /&gt;
 ubiattach -p /dev/mtd5&lt;br /&gt;
 mount -t ubifs ubi:rootfs /mnt/fremantle&lt;br /&gt;
&lt;br /&gt;
== Overclocking ==&lt;br /&gt;
&lt;br /&gt;
Nokia N900 with Leste is stable using following scalable frequencies and is much, much faster:&lt;br /&gt;
&lt;br /&gt;
250-500-600-720-850MHz&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;
&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;
&lt;br /&gt;
2) From Maemo Leste (run as root):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;cp /usr/lib/linux-image-omap/omap3-n900.dtb /home/user&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;dtc -I dtb -O dts /home/user/omap3-n900.dtb -o /home/user/omap3-n900.dts&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(wait for a few seconds...)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;chmod +w /home/user/omap3-n900.dts&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(then the funny part...)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;nano /home/user/omap3-n900.dts&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Now it&#039;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:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;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;
		opp6-720000000 {&lt;br /&gt;
			opp-hz = &amp;lt; 0x00 0x2aea5400 &amp;gt;;&lt;br /&gt;
			opp-microvolt = &amp;lt; 0x149970 0x149970 0x149970 &amp;gt;;&lt;br /&gt;
			opp-supported-hw = &amp;lt; 0xffffffff 0x02 &amp;gt;;&lt;br /&gt;
			turbo-mode;&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;code&amp;gt;rm /home/user/omap3-n900.dtb&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;dtc -I dts -O dtb /home/user/omap3-n900.dts -o /home/user/omap3-n900.dtb&amp;lt;/code&amp;gt;&lt;br /&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 5-18.9, your vmlinuz version is vmlinuz-5.18.9&lt;br /&gt;
&lt;br /&gt;
In the next command, replace &amp;quot;vmlinuz-&amp;lt;version&amp;gt;&amp;quot; by yours (ie vmlinuz-5.18.9)&lt;br /&gt;
&lt;br /&gt;
As root:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;cat /boot/vmlinuz-&amp;lt;version&amp;gt; /home/user/omap3-n900.dtb &amp;gt; /tmp/zImage_dtb&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -d /tmp/zImage_dtb /boot/uImageX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That&#039;s it !&lt;br /&gt;
&lt;br /&gt;
Now reboot and select &amp;quot;Maemo Leste Overclock in bootmenu&amp;quot;.&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 850MHz.&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;
== Tips / Tweaks ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== SD Card ===&lt;br /&gt;
&lt;br /&gt;
To avoid overall slowness, please only use SDHC Class 10 or better.&lt;br /&gt;
&lt;br /&gt;
=== Social messaging ===&lt;br /&gt;
&lt;br /&gt;
Conversations app is compatible with libpurple and irc/bitlbee server.&lt;br /&gt;
&lt;br /&gt;
Twitter, Signal, Telegram, FB Messenger and others are working.&lt;br /&gt;
&lt;br /&gt;
(most audio and video links are playable)&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&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&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: No&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;
=== 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;code&amp;gt;nano /usr/share/hildon-desktop/transitions.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See Fremantle documentation for perfect setup.&lt;br /&gt;
&lt;br /&gt;
=== More SWAP ===&lt;br /&gt;
&lt;br /&gt;
First method:&lt;br /&gt;
&lt;br /&gt;
To create a simple swap file 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;sudo chmod 600 /swapfile&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkswap /swapfile&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo swapon /swapfile&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make the change permanent open:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo nano /etc/fstab&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;/swapfile swap swap defaults 0 0&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;sudo swapon --show&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Second method:&lt;br /&gt;
&lt;br /&gt;
To extand existing zswap you can install zram-tools from the repo, and edit &amp;lt;pre&amp;gt;/etc/default/zramswap&amp;lt;/pre&amp;gt; as necessary. It&#039;s probably convenient to set allocation to 768 or 1024.&lt;br /&gt;
&lt;br /&gt;
See Get Started Wiki.&lt;br /&gt;
&lt;br /&gt;
=== Web browsing ===&lt;br /&gt;
&lt;br /&gt;
Opera Mini 8 is a temporary solution.&lt;br /&gt;
&lt;br /&gt;
To get it working, install openjdk from repo and microemulator-2.0.4 from the web (.jar)&lt;br /&gt;
&lt;br /&gt;
Then from microemulator directory run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;java -jar microemulator-2.0.4.jar&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On the main screen: / File / Open Midlet File and choose your Opera Mini jar file&lt;br /&gt;
&lt;br /&gt;
Click Start (the first loading is quite long and an old Nokia smartphone will appear on the screen)&lt;br /&gt;
&lt;br /&gt;
Once loaded and installed, click on resize button to fit  to N900 screen.&lt;br /&gt;
&lt;br /&gt;
(Be patient, first loading and settings are slow)&lt;br /&gt;
&lt;br /&gt;
=== Retroarch ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;First thing to do:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Edit  &amp;lt;pre&amp;gt;/home/user/.config/retroarch/retroarch.cfg&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
menu_driver = &amp;quot;glui&amp;quot;&lt;br /&gt;
&lt;br /&gt;
menu_show_core_updater = &amp;quot;true&amp;quot;&lt;br /&gt;
&lt;br /&gt;
video_driver = &amp;quot;gl&amp;quot;&lt;br /&gt;
&lt;br /&gt;
video_vsync = &amp;quot;true&amp;quot;&lt;br /&gt;
&lt;br /&gt;
menu_unified_control = &amp;quot;true&amp;quot;&lt;br /&gt;
&lt;br /&gt;
menu_core_enable = &amp;quot;true&amp;quot;&lt;br /&gt;
&lt;br /&gt;
quick_menu_show_options = &amp;quot;true&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Some emulators are working well:&lt;br /&gt;
&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
- QuickNES (NES/Famicom)&lt;br /&gt;
&lt;br /&gt;
- Snes9x 2005 (SNES/Super Famicom)&lt;br /&gt;
&lt;br /&gt;
Others at 70-80% speed:&lt;br /&gt;
&lt;br /&gt;
- Genesis Plus GX (SEGA MS/GG/MD/CD)&lt;br /&gt;
&lt;br /&gt;
Go to Online Updater / Core Updater to download emulators&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Retroarch recommended settings:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To avoid crashes, use only &amp;quot;glui&amp;quot; Menu Driver&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Driver&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Input driver &amp;quot;X&amp;quot;, joypad driver &amp;quot;linuxraw&amp;quot;, video driver &amp;quot;gl&amp;quot;, audio driver &amp;quot;null&amp;quot;, location driver &amp;quot;null&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Video&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Aspect ratio &amp;quot;core provided&amp;quot;, Integer scaler &amp;quot;no&amp;quot;, Threaded Video &amp;quot;yes&amp;quot;, Vertical Sync &amp;quot;yes&amp;quot;, Hard gpu Sync &amp;quot;no&amp;quot;, &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Audio&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Audio Enable &amp;quot;no&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Input&#039;&#039;&#039; (very important)&lt;br /&gt;
&lt;br /&gt;
Unified Menu Controls &amp;quot;yes&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Input User 1 Binds (keyboard settings)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Directory&#039;&#039;&#039; (very important)&lt;br /&gt;
&lt;br /&gt;
Core &amp;quot;/home/user&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default keyboard keys&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;X&#039;&#039;&#039; validate/ok&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;C&#039;&#039;&#039; cancel/back&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;F&#039;&#039;&#039; fullscreen (never close Retroarch in fullscreen mode)&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.1.20 || 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;
| Touchscreen || Yes || Resistive&lt;br /&gt;
|-&lt;br /&gt;
| Audio || Yes || Works (minus speaker protection), but requires complex alsa configuration and currently no ucm support&lt;br /&gt;
|-&lt;br /&gt;
| 2G/3G data || Yes || Works with ofono - UI is 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 ofono and Conversations UI&lt;br /&gt;
|-&lt;br /&gt;
| Phone calls || WIP || Works, no UI, poor quality for upstream audio, might require pulseaudio audio filters&lt;br /&gt;
|-&lt;br /&gt;
| Bluetooth || No || Driver needs some work&lt;br /&gt;
|-&lt;br /&gt;
| FM Transmitter || Yes || Install &amp;lt;code&amp;gt;v4l-utils&amp;lt;/code&amp;gt;, then enable chip and set frequency using: &amp;lt;code&amp;gt;v4l2-ctl -d /dev/radio0 -c mute=0,tune_power_level=120 -f &amp;lt;freq&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| FM Receiver || No ||&lt;br /&gt;
|-&lt;br /&gt;
| Accelerometer || Yes || Not really used in Leste at the moment, since UI rotation does not work&lt;br /&gt;
|-&lt;br /&gt;
| Compass || N/A || No hardware&lt;br /&gt;
|-&lt;br /&gt;
| Gyro || N/A|| No hardware&lt;br /&gt;
|-&lt;br /&gt;
| Proximity sensor || Yes || evdev interface not supported in mce since it depends on iio-sensor-proxy support. https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/363 for possible &#039;fix&#039;&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 || Broken || TX only (hardware limitation). Sending pulses causes a kernel oops&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>Astra</name></author>
	</entry>
</feed>