<?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=Arno11</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=Arno11"/>
	<link rel="alternate" type="text/html" href="https://leste.maemo.org/Special:Contributions/Arno11"/>
	<updated>2026-05-20T10:42:03Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Category:Extras&amp;diff=1795</id>
		<title>Category:Extras</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Category:Extras&amp;diff=1795"/>
		<updated>2026-04-28T16:35:14Z</updated>

		<summary type="html">&lt;p&gt;Arno11: update&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page contains a list of packages in Maemo Leste Extras with wiki pages&lt;br /&gt;
&lt;br /&gt;
To install packages from extras you need to add one of the following repositories according to the used release.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
deb https://maedevu.maemo.org/extras daedalus main contrib non-free&lt;br /&gt;
&lt;br /&gt;
deb https://maedevu.maemo.org/extras excalibur main contrib non-free&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Arno11</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Main_Page&amp;diff=1794</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Main_Page&amp;diff=1794"/>
		<updated>2026-04-28T16:03:46Z</updated>

		<summary type="html">&lt;p&gt;Arno11: /* Description */&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 &#039;&#039;&#039;irc.libera.chat&#039;&#039;&#039;, channel &#039;&#039;&#039;#maemo-leste&#039;&#039;&#039;, you can [[IRC channel|use IRC]] 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 Daedalus 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 &#039;&#039;&#039;IRC&#039;&#039;&#039; (&#039;&#039;&#039;irc.libera.chat&#039;&#039;&#039; in &#039;&#039;&#039;#maemo-leste&#039;&#039;&#039;) 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://git.maemo.org/leste/bugtracker/issues https://git.maemo.org/leste/bugtracker/issues]&lt;br /&gt;
&lt;br /&gt;
* Our Github: [https://git.maemo.org/leste https://git.maemo.org/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://git.maemo.org/leste-extras https://git.maemo.org/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>Arno11</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=IRC_channel&amp;diff=1793</id>
		<title>IRC channel</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=IRC_channel&amp;diff=1793"/>
		<updated>2026-04-28T16:01:30Z</updated>

		<summary type="html">&lt;p&gt;Arno11: matrix not working anymore with irc&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;We are on &#039;&#039;&#039;irc.libera.chat&#039;&#039;&#039; ; channel &#039;&#039;&#039;#maemo-leste&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We want everyone to feel free in our channel, but also remain productive. Therefore, while we do not &#039;police&#039; the channel, it is also good etiquette to remain on-topic as far as possible.&lt;/div&gt;</summary>
		<author><name>Arno11</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Development&amp;diff=1792</id>
		<title>Development</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Development&amp;diff=1792"/>
		<updated>2026-04-26T21:48:11Z</updated>

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

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

		<summary type="html">&lt;p&gt;Arno11: /* Description */&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 &#039;&#039;&#039;irc.libera.chat&#039;&#039;&#039;, channel &#039;&#039;&#039;#maemo-leste&#039;&#039;&#039;, 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 Daedalus 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 &#039;&#039;&#039;IRC&#039;&#039;&#039; (&#039;&#039;&#039;irc.libera.chat&#039;&#039;&#039; in &#039;&#039;&#039;#maemo-leste&#039;&#039;&#039;) 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://git.maemo.org/leste/bugtracker/issues https://git.maemo.org/leste/bugtracker/issues]&lt;br /&gt;
&lt;br /&gt;
* Our Github: [https://git.maemo.org/leste https://git.maemo.org/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://git.maemo.org/leste-extras https://git.maemo.org/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>Arno11</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Nokia_N900&amp;diff=1778</id>
		<title>Nokia N900</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Nokia_N900&amp;diff=1778"/>
		<updated>2025-12-06T04:55:48Z</updated>

		<summary type="html">&lt;p&gt;Arno11: /* Overclocking - Old method for testing purpose */&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&#039;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;
&#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;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, &#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;
&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&#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 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&#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, 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&#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 (optional) ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Overclocking is now available in -devel using cpufreq boost.&#039;&#039;&#039;&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;
&#039;&#039;&#039;No other steps are needed and updates/upgrades work with boost mode.&#039;&#039;&#039;&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;
&#039;&#039;&#039;WARNING: some devices can&#039;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&#039;&#039;&#039;&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; __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;
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&#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 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&#039;s it !&lt;br /&gt;
&lt;br /&gt;
Now reboot and select &#039;Maemo Leste Overclock&#039; in bootmenu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(&#039;&#039;&#039;WARNING with old method:&#039;&#039;&#039; 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;
&#039;&#039;&#039;WARNING&#039;&#039;&#039;: 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&#039;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;
&#039;&#039;&#039;Note for Chimaera image:&#039;&#039;&#039; 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;
(&#039;&#039;&#039;Warning:&#039;&#039;&#039; don&#039;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;
(&#039;&#039;&#039;Note: SWAP is already activated by default&#039;&#039;&#039;)&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;
&#039;&#039;&#039;Other possibility:&#039;&#039;&#039; 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;
&#039;&#039;&#039;Note: like Fremantle, blur effect can cause lags and slowness.&#039;&#039;&#039; 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 &#039;FM Transmitter&#039; 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 &#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 || 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>Arno11</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Nokia_N900&amp;diff=1763</id>
		<title>Nokia N900</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Nokia_N900&amp;diff=1763"/>
		<updated>2025-04-17T08:18:10Z</updated>

		<summary type="html">&lt;p&gt;Arno11: /* SD Card and first boot */&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&#039;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;
&#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;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; &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;
&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, &#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;
&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&#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 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&#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, 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&#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 (optional) ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Overclocking is now available in -devel using cpufreq boost.&#039;&#039;&#039;&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;
&#039;&#039;&#039;No other steps are needed and updates/upgrades work with boost mode.&#039;&#039;&#039;&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;
&#039;&#039;&#039;WARNING: some devices can&#039;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&#039;&#039;&#039;&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&#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 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&#039;s it !&lt;br /&gt;
&lt;br /&gt;
Now reboot and select &#039;Maemo Leste Overclock&#039; in bootmenu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(&#039;&#039;&#039;WARNING with old method:&#039;&#039;&#039; 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;
&#039;&#039;&#039;WARNING&#039;&#039;&#039;: 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&#039;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;
&#039;&#039;&#039;Note for Chimaera image:&#039;&#039;&#039; 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;
(&#039;&#039;&#039;Warning:&#039;&#039;&#039; don&#039;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;
(&#039;&#039;&#039;Note: SWAP is already activated by default&#039;&#039;&#039;)&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;
&#039;&#039;&#039;Other possibility:&#039;&#039;&#039; 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;
&#039;&#039;&#039;Note: like Fremantle, blur effect can cause lags and slowness.&#039;&#039;&#039; 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 &#039;FM Transmitter&#039; 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 &#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 || 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>Arno11</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Nokia_N900&amp;diff=1762</id>
		<title>Nokia N900</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Nokia_N900&amp;diff=1762"/>
		<updated>2025-04-17T08:15:02Z</updated>

		<summary type="html">&lt;p&gt;Arno11: /* Voice Calls / SIP Calls */&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&#039;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;
&#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;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; &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;
&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, &#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;
&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&#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 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&#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, 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&#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 (optional) ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Overclocking is now available in -devel using cpufreq boost.&#039;&#039;&#039;&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;
&#039;&#039;&#039;No other steps are needed and updates/upgrades work with boost mode.&#039;&#039;&#039;&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;
&#039;&#039;&#039;WARNING: some devices can&#039;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&#039;&#039;&#039;&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&#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 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&#039;s it !&lt;br /&gt;
&lt;br /&gt;
Now reboot and select &#039;Maemo Leste Overclock&#039; in bootmenu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(&#039;&#039;&#039;WARNING with old method:&#039;&#039;&#039; 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, most probably because of their lower build quality.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WARNING&#039;&#039;&#039;: 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&#039;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;
&#039;&#039;&#039;Note for Chimaera image:&#039;&#039;&#039; 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;
(&#039;&#039;&#039;Warning:&#039;&#039;&#039; don&#039;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;
(&#039;&#039;&#039;Note: SWAP is already activated by default&#039;&#039;&#039;)&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;
&#039;&#039;&#039;Other possibility:&#039;&#039;&#039; 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;
&#039;&#039;&#039;Note: like Fremantle, blur effect can cause lags and slowness.&#039;&#039;&#039; 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 &#039;FM Transmitter&#039; 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 &#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 || 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>Arno11</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Nokia_N900&amp;diff=1761</id>
		<title>Nokia N900</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Nokia_N900&amp;diff=1761"/>
		<updated>2025-04-17T08:12:15Z</updated>

		<summary type="html">&lt;p&gt;Arno11: /* Overclocking - Old method for testing purpose */&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&#039;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;
&#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;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; &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;
&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, &#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;
&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&#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 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&#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, 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&#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 (optional) ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Overclocking is now available in -devel using cpufreq boost.&#039;&#039;&#039;&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;
&#039;&#039;&#039;No other steps are needed and updates/upgrades work with boost mode.&#039;&#039;&#039;&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;
&#039;&#039;&#039;WARNING: some devices can&#039;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&#039;&#039;&#039;&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&#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 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&#039;s it !&lt;br /&gt;
&lt;br /&gt;
Now reboot and select &#039;Maemo Leste Overclock&#039; in bootmenu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(&#039;&#039;&#039;WARNING with old method:&#039;&#039;&#039; 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, most probably because of their lower build quality.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WARNING&#039;&#039;&#039;: 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&#039;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;
&#039;&#039;&#039;Note for Chimaera image:&#039;&#039;&#039; 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;
(&#039;&#039;&#039;Warning:&#039;&#039;&#039; don&#039;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;
(&#039;&#039;&#039;Note: SWAP is already activated by default&#039;&#039;&#039;)&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;
&#039;&#039;&#039;Other possibility:&#039;&#039;&#039; 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;
&#039;&#039;&#039;Note: like Fremantle, blur effect can cause lags and slowness.&#039;&#039;&#039; 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;
- 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 &#039;FM Transmitter&#039; 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 &#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 || 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>Arno11</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Nokia_N900&amp;diff=1760</id>
		<title>Nokia N900</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Nokia_N900&amp;diff=1760"/>
		<updated>2025-04-17T08:07:53Z</updated>

		<summary type="html">&lt;p&gt;Arno11: /* SD Card and first boot */&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&#039;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;
&#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;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; &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;
&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, &#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;
&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&#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 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&#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, 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&#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 (optional) ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Overclocking is now available in -devel using cpufreq boost.&#039;&#039;&#039;&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;
&#039;&#039;&#039;No other steps are needed and updates/upgrades work with boost mode.&#039;&#039;&#039;&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;
&#039;&#039;&#039;WARNING: some devices can&#039;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&#039;&#039;&#039;&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&#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 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&#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;
&lt;br /&gt;
(&#039;&#039;&#039;WARNING with old method:&#039;&#039;&#039; 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, most probably because of their lower build quality.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WARNING&#039;&#039;&#039;: 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&#039;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;
&#039;&#039;&#039;Note for Chimaera image:&#039;&#039;&#039; 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;
(&#039;&#039;&#039;Warning:&#039;&#039;&#039; don&#039;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;
(&#039;&#039;&#039;Note: SWAP is already activated by default&#039;&#039;&#039;)&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;
&#039;&#039;&#039;Other possibility:&#039;&#039;&#039; 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;
&#039;&#039;&#039;Note: like Fremantle, blur effect can cause lags and slowness.&#039;&#039;&#039; 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;
- 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 &#039;FM Transmitter&#039; 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 &#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 || 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>Arno11</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Nokia_N900&amp;diff=1759</id>
		<title>Nokia N900</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Nokia_N900&amp;diff=1759"/>
		<updated>2025-04-17T08:03:57Z</updated>

		<summary type="html">&lt;p&gt;Arno11: /* Web browsing */&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&#039;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;
&#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;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; &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;
&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, &#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;
&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&#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 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&#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, 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&#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 (optional) ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Overclocking is now available in -devel using cpufreq boost.&#039;&#039;&#039;&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;
&#039;&#039;&#039;No other steps are needed and updates/upgrades work with boost mode.&#039;&#039;&#039;&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;
&#039;&#039;&#039;WARNING: some devices can&#039;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&#039;&#039;&#039;&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&#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 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&#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;
&lt;br /&gt;
(&#039;&#039;&#039;WARNING with old method:&#039;&#039;&#039; 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, most probably because of their lower build quality.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WARNING&#039;&#039;&#039;: 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&#039;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;
&#039;&#039;&#039;Note:&#039;&#039;&#039; 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;
(&#039;&#039;&#039;Warning:&#039;&#039;&#039; don&#039;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;
(&#039;&#039;&#039;Note: SWAP is already activated by default&#039;&#039;&#039;)&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;
&#039;&#039;&#039;Other possibility:&#039;&#039;&#039; 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;
&#039;&#039;&#039;Note: like Fremantle, blur effect can cause lags and slowness.&#039;&#039;&#039; 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;
- 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 &#039;FM Transmitter&#039; 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 &#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 || 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>Arno11</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Nokia_N900&amp;diff=1758</id>
		<title>Nokia N900</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Nokia_N900&amp;diff=1758"/>
		<updated>2025-04-17T08:00:28Z</updated>

		<summary type="html">&lt;p&gt;Arno11: /* Deactivating apt-worker */&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&#039;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;
&#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;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; &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;
&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, &#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;
&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&#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 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&#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, 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&#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 (optional) ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Overclocking is now available in -devel using cpufreq boost.&#039;&#039;&#039;&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;
&#039;&#039;&#039;No other steps are needed and updates/upgrades work with boost mode.&#039;&#039;&#039;&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;
&#039;&#039;&#039;WARNING: some devices can&#039;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&#039;&#039;&#039;&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&#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 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&#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;
&lt;br /&gt;
(&#039;&#039;&#039;WARNING with old method:&#039;&#039;&#039; 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, most probably because of their lower build quality.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WARNING&#039;&#039;&#039;: 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&#039;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;
&#039;&#039;&#039;Note:&#039;&#039;&#039; 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;
(&#039;&#039;&#039;Warning:&#039;&#039;&#039; don&#039;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;
(&#039;&#039;&#039;Note: SWAP is already activated by default&#039;&#039;&#039;)&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;
&#039;&#039;&#039;Other possibility:&#039;&#039;&#039; 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;
&#039;&#039;&#039;Note: like Fremantle, blur effect can cause lags and slowness.&#039;&#039;&#039; 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;
=== Web browsing ===&lt;br /&gt;
&lt;br /&gt;
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt install links2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To use it in graphical mode, run in terminal:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;links2 -g&amp;lt;/code&amp;gt; or press the hildon desktop icon.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then press &amp;lt;code&amp;gt;Ctl + Shift + N&amp;lt;/code&amp;gt; to disable Hildon composition -links2 performances will increase a lot-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Press &amp;lt;code&amp;gt;Ctl + Shift + N&amp;lt;/code&amp;gt; if you want to enable Hildon composition again.&lt;br /&gt;
&lt;br /&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;
- 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 &#039;FM Transmitter&#039; 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 &#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 || 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>Arno11</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Nokia_N900&amp;diff=1716</id>
		<title>Nokia N900</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Nokia_N900&amp;diff=1716"/>
		<updated>2024-09-14T20:40:44Z</updated>

		<summary type="html">&lt;p&gt;Arno11: &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&#039;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;code&amp;gt;0xFFFF v0.8  // Open Free Fiasco Firmware Flasher&lt;br /&gt;
Not a local device&lt;br /&gt;
Waiting for USB device... &amp;lt;/code&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;code&amp;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;/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; you will get an output such as:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;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;/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. 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;
&#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;
=== 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 (optional) ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Overclocking is now available in -devel using cpufreq boost.&#039;&#039;&#039;&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;
&#039;&#039;&#039;No other steps are needed and updates/upgrades work with boost mode.&#039;&#039;&#039;&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;
&#039;&#039;&#039;WARNING: some devices can&#039;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&#039;&#039;&#039;&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;
&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 for example:&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;
	};&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 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 (ie vmlinuz-6.1.30)&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;
&lt;br /&gt;
(&#039;&#039;&#039;WARNING with old method:&#039;&#039;&#039; 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, most probably because of their lower build quality.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WARNING&#039;&#039;&#039;: 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&#039;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;
&#039;&#039;&#039;Note:&#039;&#039;&#039; 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;deb https://maedevu.maemo.org/leste chimaera-devel main contrib non-free  n900&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
in &amp;lt;pre&amp;gt;/etc/apt/sources.list&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(&#039;&#039;&#039;Warning:&#039;&#039;&#039; don&#039;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 .nomedia file in /home/user folder:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;touch /home/user/.nomedia&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Deactivating apt-worker ===&lt;br /&gt;
&lt;br /&gt;
Run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Removing 250MHz CPU frequency (example) ===&lt;br /&gt;
&lt;br /&gt;
Install cpufrequtils.&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;
(&#039;&#039;&#039;Note: SWAP is already activated by default&#039;&#039;&#039;)&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;
&#039;&#039;&#039;Other possibility:&#039;&#039;&#039; 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;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;
=== 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;
&#039;&#039;&#039;Note: like Fremantle, blur effect can cause lags and slowness.&#039;&#039;&#039; It is possible to deactivate/modify it through the transitions.ini file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;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;
=== Web browsing ===&lt;br /&gt;
&lt;br /&gt;
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install links2&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To use it in graphical mode, run in terminal:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;links2 -g&amp;lt;/pre&amp;gt; or press the hildon desktop icon.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then press &amp;lt;code&amp;gt;Ctl + Shift + N&amp;lt;/code&amp;gt; to disable Hildon composition -links2 performances will increase a lot-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Press &amp;lt;code&amp;gt;Ctl + Shift + N&amp;lt;/code&amp;gt; if you want to enable Hildon composition again.&lt;br /&gt;
&lt;br /&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;
- 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;code&amp;gt;sudo chrt -a -f -p 99 $(pgrep pulseaudio)&amp;lt;/code&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 &#039;FM Transmitter&#039; 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 || 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 || 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>Arno11</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Nokia_N900&amp;diff=1715</id>
		<title>Nokia N900</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Nokia_N900&amp;diff=1715"/>
		<updated>2024-09-14T20:36:17Z</updated>

		<summary type="html">&lt;p&gt;Arno11: &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;
|media=microSDHC (up to 512GB)&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&#039;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;code&amp;gt;0xFFFF v0.8  // Open Free Fiasco Firmware Flasher&lt;br /&gt;
Not a local device&lt;br /&gt;
Waiting for USB device... &amp;lt;/code&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;code&amp;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;/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; you will get an output such as:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;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;/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. 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;
&#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;
=== 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 (optional) ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Overclocking is now available in -devel using cpufreq boost.&#039;&#039;&#039;&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;
&#039;&#039;&#039;No other steps are needed and updates/upgrades work with boost mode.&#039;&#039;&#039;&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;
&#039;&#039;&#039;WARNING: some devices can&#039;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&#039;&#039;&#039;&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;
&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 for example:&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;
	};&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 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 (ie vmlinuz-6.1.30)&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;
&lt;br /&gt;
(&#039;&#039;&#039;WARNING with old method:&#039;&#039;&#039; 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, most probably because of their lower build quality.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WARNING&#039;&#039;&#039;: 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&#039;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;
&#039;&#039;&#039;Note:&#039;&#039;&#039; 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;deb https://maedevu.maemo.org/leste chimaera-devel main contrib non-free  n900&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
in &amp;lt;pre&amp;gt;/etc/apt/sources.list&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(&#039;&#039;&#039;Warning:&#039;&#039;&#039; don&#039;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 .nomedia file in /home/user folder:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;touch /home/user/.nomedia&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Deactivating apt-worker ===&lt;br /&gt;
&lt;br /&gt;
Run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Removing 250MHz CPU frequency (example) ===&lt;br /&gt;
&lt;br /&gt;
Install cpufrequtils.&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;
(&#039;&#039;&#039;Note: SWAP is already activated by default&#039;&#039;&#039;)&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;
&#039;&#039;&#039;Other possibility:&#039;&#039;&#039; 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;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;
=== 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;
&#039;&#039;&#039;Note: like Fremantle, blur effect can cause lags and slowness.&#039;&#039;&#039; It is possible to deactivate/modify it through the transitions.ini file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;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;
=== Web browsing ===&lt;br /&gt;
&lt;br /&gt;
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install links2&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To use it in graphical mode, run in terminal:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;links2 -g&amp;lt;/pre&amp;gt; or press the hildon desktop icon.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then press &amp;lt;code&amp;gt;Ctl + Shift + N&amp;lt;/code&amp;gt; to disable Hildon composition -links2 performances will increase a lot-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Press &amp;lt;code&amp;gt;Ctl + Shift + N&amp;lt;/code&amp;gt; if you want to enable Hildon composition again.&lt;br /&gt;
&lt;br /&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;
- 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;code&amp;gt;sudo chrt -a -f -p 99 $(pgrep pulseaudio)&amp;lt;/code&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 &#039;FM Transmitter&#039; 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 || 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 || 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>Arno11</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Nokia_N900&amp;diff=1714</id>
		<title>Nokia N900</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Nokia_N900&amp;diff=1714"/>
		<updated>2024-09-14T20:26:57Z</updated>

		<summary type="html">&lt;p&gt;Arno11: /* Overclocking */&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&#039;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;code&amp;gt;0xFFFF v0.8  // Open Free Fiasco Firmware Flasher&lt;br /&gt;
Not a local device&lt;br /&gt;
Waiting for USB device... &amp;lt;/code&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;code&amp;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;/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; you will get an output such as:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;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;/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. 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;
&#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;
=== 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 (optional) ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Overclocking is now available in -devel using cpufreq boost.&#039;&#039;&#039;&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;
&#039;&#039;&#039;No other steps are needed and updates/upgrades work with boost mode.&#039;&#039;&#039;&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;
&#039;&#039;&#039;WARNING: some devices can&#039;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&#039;&#039;&#039;&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;
&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 for example:&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;
	};&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 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 (ie vmlinuz-6.1.30)&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;
&lt;br /&gt;
(&#039;&#039;&#039;WARNING with old method:&#039;&#039;&#039; 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, most probably because of their lower build quality.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WARNING&#039;&#039;&#039;: 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&#039;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;
&#039;&#039;&#039;Note:&#039;&#039;&#039; 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;deb https://maedevu.maemo.org/leste chimaera-devel main contrib non-free  n900&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
in &amp;lt;pre&amp;gt;/etc/apt/sources.list&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(&#039;&#039;&#039;Warning:&#039;&#039;&#039; don&#039;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 .nomedia file in /home/user folder:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;touch /home/user/.nomedia&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Deactivating apt-worker ===&lt;br /&gt;
&lt;br /&gt;
Run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Removing 250MHz CPU frequency (example) ===&lt;br /&gt;
&lt;br /&gt;
Install cpufrequtils.&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;
(&#039;&#039;&#039;Note: SWAP is already activated by default&#039;&#039;&#039;)&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;
&#039;&#039;&#039;Other possibility:&#039;&#039;&#039; 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;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;
=== 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;
&#039;&#039;&#039;Note: like Fremantle, blur effect can cause lags and slowness.&#039;&#039;&#039; It is possible to deactivate/modify it through the transitions.ini file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;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;
=== Web browsing ===&lt;br /&gt;
&lt;br /&gt;
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install links2&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To use it in graphical mode, run in terminal:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;links2 -g&amp;lt;/pre&amp;gt; or press the hildon desktop icon.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then press &amp;lt;code&amp;gt;Ctl + Shift + N&amp;lt;/code&amp;gt; to disable Hildon composition -links2 performances will increase a lot-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Press &amp;lt;code&amp;gt;Ctl + Shift + N&amp;lt;/code&amp;gt; if you want to enable Hildon composition again.&lt;br /&gt;
&lt;br /&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;
- 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;code&amp;gt;sudo chrt -a -f -p 99 $(pgrep pulseaudio)&amp;lt;/code&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 &#039;FM Transmitter&#039; 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 || 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 || 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>Arno11</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Nokia_N900&amp;diff=1713</id>
		<title>Nokia N900</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Nokia_N900&amp;diff=1713"/>
		<updated>2024-09-14T20:20:10Z</updated>

		<summary type="html">&lt;p&gt;Arno11: /* Status table */&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&#039;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;code&amp;gt;0xFFFF v0.8  // Open Free Fiasco Firmware Flasher&lt;br /&gt;
Not a local device&lt;br /&gt;
Waiting for USB device... &amp;lt;/code&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;code&amp;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;/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; you will get an output such as:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;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;/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. 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;
&#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;
=== 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;
&#039;&#039;&#039;Overclocking is now available in -devel using cpufreq boost.&#039;&#039;&#039;&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;
&#039;&#039;&#039;No other steps are needed and updates/upgrades work with boost mode.&#039;&#039;&#039;&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;
&#039;&#039;&#039;WARNING: some devices can&#039;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&#039;&#039;&#039;&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;
&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 for example:&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;
	};&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 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 (ie vmlinuz-6.1.30)&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;
&lt;br /&gt;
(&#039;&#039;&#039;WARNING with old method:&#039;&#039;&#039; 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, most probably because of their lower build quality.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WARNING&#039;&#039;&#039;: 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&#039;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;
&#039;&#039;&#039;Note:&#039;&#039;&#039; 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;deb https://maedevu.maemo.org/leste chimaera-devel main contrib non-free  n900&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
in &amp;lt;pre&amp;gt;/etc/apt/sources.list&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(&#039;&#039;&#039;Warning:&#039;&#039;&#039; don&#039;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 .nomedia file in /home/user folder:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;touch /home/user/.nomedia&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Deactivating apt-worker ===&lt;br /&gt;
&lt;br /&gt;
Run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Removing 250MHz CPU frequency (example) ===&lt;br /&gt;
&lt;br /&gt;
Install cpufrequtils.&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;
(&#039;&#039;&#039;Note: SWAP is already activated by default&#039;&#039;&#039;)&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;
&#039;&#039;&#039;Other possibility:&#039;&#039;&#039; 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;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;
=== 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;
&#039;&#039;&#039;Note: like Fremantle, blur effect can cause lags and slowness.&#039;&#039;&#039; It is possible to deactivate/modify it through the transitions.ini file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;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;
=== Web browsing ===&lt;br /&gt;
&lt;br /&gt;
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install links2&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To use it in graphical mode, run in terminal:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;links2 -g&amp;lt;/pre&amp;gt; or press the hildon desktop icon.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then press &amp;lt;code&amp;gt;Ctl + Shift + N&amp;lt;/code&amp;gt; to disable Hildon composition -links2 performances will increase a lot-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Press &amp;lt;code&amp;gt;Ctl + Shift + N&amp;lt;/code&amp;gt; if you want to enable Hildon composition again.&lt;br /&gt;
&lt;br /&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;
- 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;code&amp;gt;sudo chrt -a -f -p 99 $(pgrep pulseaudio)&amp;lt;/code&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 &#039;FM Transmitter&#039; 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 || 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 || 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>Arno11</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Nokia_N900&amp;diff=1712</id>
		<title>Nokia N900</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Nokia_N900&amp;diff=1712"/>
		<updated>2024-09-14T20:17:23Z</updated>

		<summary type="html">&lt;p&gt;Arno11: /* Voice Calls / SIP Calls */&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&#039;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;code&amp;gt;0xFFFF v0.8  // Open Free Fiasco Firmware Flasher&lt;br /&gt;
Not a local device&lt;br /&gt;
Waiting for USB device... &amp;lt;/code&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;code&amp;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;/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; you will get an output such as:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;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;/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. 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;
&#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;
=== 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;
&#039;&#039;&#039;Overclocking is now available in -devel using cpufreq boost.&#039;&#039;&#039;&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;
&#039;&#039;&#039;No other steps are needed and updates/upgrades work with boost mode.&#039;&#039;&#039;&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;
&#039;&#039;&#039;WARNING: some devices can&#039;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&#039;&#039;&#039;&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;
&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 for example:&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;
	};&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 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 (ie vmlinuz-6.1.30)&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;
&lt;br /&gt;
(&#039;&#039;&#039;WARNING with old method:&#039;&#039;&#039; 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, most probably because of their lower build quality.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WARNING&#039;&#039;&#039;: 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&#039;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;
&#039;&#039;&#039;Note:&#039;&#039;&#039; 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;deb https://maedevu.maemo.org/leste chimaera-devel main contrib non-free  n900&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
in &amp;lt;pre&amp;gt;/etc/apt/sources.list&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(&#039;&#039;&#039;Warning:&#039;&#039;&#039; don&#039;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 .nomedia file in /home/user folder:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;touch /home/user/.nomedia&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Deactivating apt-worker ===&lt;br /&gt;
&lt;br /&gt;
Run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Removing 250MHz CPU frequency (example) ===&lt;br /&gt;
&lt;br /&gt;
Install cpufrequtils.&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;
(&#039;&#039;&#039;Note: SWAP is already activated by default&#039;&#039;&#039;)&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;
&#039;&#039;&#039;Other possibility:&#039;&#039;&#039; 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;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;
=== 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;
&#039;&#039;&#039;Note: like Fremantle, blur effect can cause lags and slowness.&#039;&#039;&#039; It is possible to deactivate/modify it through the transitions.ini file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;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;
=== Web browsing ===&lt;br /&gt;
&lt;br /&gt;
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install links2&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To use it in graphical mode, run in terminal:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;links2 -g&amp;lt;/pre&amp;gt; or press the hildon desktop icon.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then press &amp;lt;code&amp;gt;Ctl + Shift + N&amp;lt;/code&amp;gt; to disable Hildon composition -links2 performances will increase a lot-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Press &amp;lt;code&amp;gt;Ctl + Shift + N&amp;lt;/code&amp;gt; if you want to enable Hildon composition again.&lt;br /&gt;
&lt;br /&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;
- 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;code&amp;gt;sudo chrt -a -f -p 99 $(pgrep pulseaudio)&amp;lt;/code&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 (experimental) || 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 &#039;FM Transmitter&#039; 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 || 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 || 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>Arno11</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Nokia_N900&amp;diff=1711</id>
		<title>Nokia N900</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Nokia_N900&amp;diff=1711"/>
		<updated>2024-09-14T20:15:29Z</updated>

		<summary type="html">&lt;p&gt;Arno11: /* More SWAP / SWAP activation */&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&#039;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;code&amp;gt;0xFFFF v0.8  // Open Free Fiasco Firmware Flasher&lt;br /&gt;
Not a local device&lt;br /&gt;
Waiting for USB device... &amp;lt;/code&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;code&amp;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;/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; you will get an output such as:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;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;/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. 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;
&#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;
=== 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;
&#039;&#039;&#039;Overclocking is now available in -devel using cpufreq boost.&#039;&#039;&#039;&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;
&#039;&#039;&#039;No other steps are needed and updates/upgrades work with boost mode.&#039;&#039;&#039;&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;
&#039;&#039;&#039;WARNING: some devices can&#039;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&#039;&#039;&#039;&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;
&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 for example:&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;
	};&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 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 (ie vmlinuz-6.1.30)&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;
&lt;br /&gt;
(&#039;&#039;&#039;WARNING with old method:&#039;&#039;&#039; 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, most probably because of their lower build quality.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WARNING&#039;&#039;&#039;: 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&#039;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;
&#039;&#039;&#039;Note:&#039;&#039;&#039; 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;deb https://maedevu.maemo.org/leste chimaera-devel main contrib non-free  n900&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
in &amp;lt;pre&amp;gt;/etc/apt/sources.list&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(&#039;&#039;&#039;Warning:&#039;&#039;&#039; don&#039;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 .nomedia file in /home/user folder:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;touch /home/user/.nomedia&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Deactivating apt-worker ===&lt;br /&gt;
&lt;br /&gt;
Run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Removing 250MHz CPU frequency (example) ===&lt;br /&gt;
&lt;br /&gt;
Install cpufrequtils.&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;
(&#039;&#039;&#039;Note: SWAP is already activated by default&#039;&#039;&#039;)&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;
&#039;&#039;&#039;Other possibility:&#039;&#039;&#039; 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;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;
=== 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;
&#039;&#039;&#039;Note: like Fremantle, blur effect can cause lags and slowness.&#039;&#039;&#039; It is possible to deactivate/modify it through the transitions.ini file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;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;
=== Web browsing ===&lt;br /&gt;
&lt;br /&gt;
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install links2&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To use it in graphical mode, run in terminal:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;links2 -g&amp;lt;/pre&amp;gt; or press the hildon desktop icon.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then press &amp;lt;code&amp;gt;Ctl + Shift + N&amp;lt;/code&amp;gt; to disable Hildon composition -links2 performances will increase a lot-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Press &amp;lt;code&amp;gt;Ctl + Shift + N&amp;lt;/code&amp;gt; if you want to enable Hildon composition again.&lt;br /&gt;
&lt;br /&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;
- 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. (select voicecall profile in pavucontrol)&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;code&amp;gt;sudo chrt -a -f -p 99 $(pgrep pulseaudio)&amp;lt;/code&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 (experimental) || 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 &#039;FM Transmitter&#039; 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 || 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 || 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>Arno11</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Nokia_N900&amp;diff=1710</id>
		<title>Nokia N900</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Nokia_N900&amp;diff=1710"/>
		<updated>2024-09-14T20:09:34Z</updated>

		<summary type="html">&lt;p&gt;Arno11: /* SD Card and first boot */&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&#039;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;code&amp;gt;0xFFFF v0.8  // Open Free Fiasco Firmware Flasher&lt;br /&gt;
Not a local device&lt;br /&gt;
Waiting for USB device... &amp;lt;/code&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;code&amp;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;/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; you will get an output such as:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;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;/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. 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;
&#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;
=== 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;
&#039;&#039;&#039;Overclocking is now available in -devel using cpufreq boost.&#039;&#039;&#039;&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;
&#039;&#039;&#039;No other steps are needed and updates/upgrades work with boost mode.&#039;&#039;&#039;&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;
&#039;&#039;&#039;WARNING: some devices can&#039;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&#039;&#039;&#039;&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;
&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 for example:&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;
	};&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 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 (ie vmlinuz-6.1.30)&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;
&lt;br /&gt;
(&#039;&#039;&#039;WARNING with old method:&#039;&#039;&#039; 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, most probably because of their lower build quality.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WARNING&#039;&#039;&#039;: 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&#039;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;
&#039;&#039;&#039;Note:&#039;&#039;&#039; 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;deb https://maedevu.maemo.org/leste chimaera-devel main contrib non-free  n900&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
in &amp;lt;pre&amp;gt;/etc/apt/sources.list&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(&#039;&#039;&#039;Warning:&#039;&#039;&#039; don&#039;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 .nomedia file in /home/user folder:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;touch /home/user/.nomedia&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Deactivating apt-worker ===&lt;br /&gt;
&lt;br /&gt;
Run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Removing 250MHz CPU frequency (example) ===&lt;br /&gt;
&lt;br /&gt;
Install cpufrequtils.&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 ===&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;
&#039;&#039;&#039;Other possibility:&#039;&#039;&#039; 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;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;
=== 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;
&#039;&#039;&#039;Note: like Fremantle, blur effect can cause lags and slowness.&#039;&#039;&#039; It is possible to deactivate/modify it through the transitions.ini file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;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;
=== Web browsing ===&lt;br /&gt;
&lt;br /&gt;
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install links2&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To use it in graphical mode, run in terminal:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;links2 -g&amp;lt;/pre&amp;gt; or press the hildon desktop icon.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then press &amp;lt;code&amp;gt;Ctl + Shift + N&amp;lt;/code&amp;gt; to disable Hildon composition -links2 performances will increase a lot-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Press &amp;lt;code&amp;gt;Ctl + Shift + N&amp;lt;/code&amp;gt; if you want to enable Hildon composition again.&lt;br /&gt;
&lt;br /&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;
- 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. (select voicecall profile in pavucontrol)&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;code&amp;gt;sudo chrt -a -f -p 99 $(pgrep pulseaudio)&amp;lt;/code&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 (experimental) || 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 &#039;FM Transmitter&#039; 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 || 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 || 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>Arno11</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Nokia_N900&amp;diff=1709</id>
		<title>Nokia N900</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Nokia_N900&amp;diff=1709"/>
		<updated>2024-09-14T20:07:46Z</updated>

		<summary type="html">&lt;p&gt;Arno11: /* SD Card and first boot */&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&#039;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;code&amp;gt;0xFFFF v0.8  // Open Free Fiasco Firmware Flasher&lt;br /&gt;
Not a local device&lt;br /&gt;
Waiting for USB device... &amp;lt;/code&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;code&amp;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;/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; you will get an output such as:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;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;/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. 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;
&#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;
=== 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;
&#039;&#039;&#039;Overclocking is now available in -devel using cpufreq boost.&#039;&#039;&#039;&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;
&#039;&#039;&#039;No other steps are needed and updates/upgrades work with boost mode.&#039;&#039;&#039;&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;
&#039;&#039;&#039;WARNING: some devices can&#039;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&#039;&#039;&#039;&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;
&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 for example:&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;
	};&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 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 (ie vmlinuz-6.1.30)&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;
&lt;br /&gt;
(&#039;&#039;&#039;WARNING with old method:&#039;&#039;&#039; 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, most probably because of their lower build quality.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WARNING&#039;&#039;&#039;: 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&#039;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;
&#039;&#039;&#039;Note:&#039;&#039;&#039; it is recommended to dist-upgrade to -devel to enable more features by adding&lt;br /&gt;
&lt;br /&gt;
deb https://maedevu.maemo.org/leste chimaera-devel main contrib non-free  n900&lt;br /&gt;
&lt;br /&gt;
in /etc/apt/sources.list&lt;br /&gt;
&lt;br /&gt;
(&#039;&#039;&#039;Warning:&#039;&#039;&#039; don&#039;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 .nomedia file in /home/user folder:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;touch /home/user/.nomedia&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Deactivating apt-worker ===&lt;br /&gt;
&lt;br /&gt;
Run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Removing 250MHz CPU frequency (example) ===&lt;br /&gt;
&lt;br /&gt;
Install cpufrequtils.&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 ===&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;
&#039;&#039;&#039;Other possibility:&#039;&#039;&#039; 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;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;
=== 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;
&#039;&#039;&#039;Note: like Fremantle, blur effect can cause lags and slowness.&#039;&#039;&#039; It is possible to deactivate/modify it through the transitions.ini file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;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;
=== Web browsing ===&lt;br /&gt;
&lt;br /&gt;
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install links2&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To use it in graphical mode, run in terminal:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;links2 -g&amp;lt;/pre&amp;gt; or press the hildon desktop icon.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then press &amp;lt;code&amp;gt;Ctl + Shift + N&amp;lt;/code&amp;gt; to disable Hildon composition -links2 performances will increase a lot-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Press &amp;lt;code&amp;gt;Ctl + Shift + N&amp;lt;/code&amp;gt; if you want to enable Hildon composition again.&lt;br /&gt;
&lt;br /&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;
- 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. (select voicecall profile in pavucontrol)&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;code&amp;gt;sudo chrt -a -f -p 99 $(pgrep pulseaudio)&amp;lt;/code&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 (experimental) || 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 &#039;FM Transmitter&#039; 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 || 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 || 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>Arno11</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Nokia_N900&amp;diff=1708</id>
		<title>Nokia N900</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Nokia_N900&amp;diff=1708"/>
		<updated>2024-09-14T20:01:41Z</updated>

		<summary type="html">&lt;p&gt;Arno11: /* Overclocking */&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&#039;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;code&amp;gt;0xFFFF v0.8  // Open Free Fiasco Firmware Flasher&lt;br /&gt;
Not a local device&lt;br /&gt;
Waiting for USB device... &amp;lt;/code&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;code&amp;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;/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; you will get an output such as:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;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;/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. 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;
&#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;
=== 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;
&#039;&#039;&#039;Overclocking is now available in -devel using cpufreq boost.&#039;&#039;&#039;&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;
&#039;&#039;&#039;No other steps are needed and updates/upgrades work with boost mode.&#039;&#039;&#039;&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;
&#039;&#039;&#039;WARNING: some devices can&#039;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&#039;&#039;&#039;&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;
&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 for example:&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;
	};&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 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 (ie vmlinuz-6.1.30)&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;
&lt;br /&gt;
(&#039;&#039;&#039;WARNING with old method:&#039;&#039;&#039; 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, most probably because of their lower build quality.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WARNING&#039;&#039;&#039;: 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&#039;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;
(&#039;&#039;&#039;Note:&#039;&#039;&#039; it is recommended to dist-upgrade to -devel to enable more features)&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 .nomedia file in /home/user folder:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;touch /home/user/.nomedia&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Deactivating apt-worker ===&lt;br /&gt;
&lt;br /&gt;
Run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Removing 250MHz CPU frequency (example) ===&lt;br /&gt;
&lt;br /&gt;
Install cpufrequtils.&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 ===&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;
&#039;&#039;&#039;Other possibility:&#039;&#039;&#039; 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;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;
=== 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;
&#039;&#039;&#039;Note: like Fremantle, blur effect can cause lags and slowness.&#039;&#039;&#039; It is possible to deactivate/modify it through the transitions.ini file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;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;
=== Web browsing ===&lt;br /&gt;
&lt;br /&gt;
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install links2&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To use it in graphical mode, run in terminal:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;links2 -g&amp;lt;/pre&amp;gt; or press the hildon desktop icon.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then press &amp;lt;code&amp;gt;Ctl + Shift + N&amp;lt;/code&amp;gt; to disable Hildon composition -links2 performances will increase a lot-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Press &amp;lt;code&amp;gt;Ctl + Shift + N&amp;lt;/code&amp;gt; if you want to enable Hildon composition again.&lt;br /&gt;
&lt;br /&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;
- 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. (select voicecall profile in pavucontrol)&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;code&amp;gt;sudo chrt -a -f -p 99 $(pgrep pulseaudio)&amp;lt;/code&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 (experimental) || 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 &#039;FM Transmitter&#039; 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 || 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 || 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>Arno11</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Nokia_N900&amp;diff=1707</id>
		<title>Nokia N900</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Nokia_N900&amp;diff=1707"/>
		<updated>2024-09-14T19:58:49Z</updated>

		<summary type="html">&lt;p&gt;Arno11: &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&#039;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;code&amp;gt;0xFFFF v0.8  // Open Free Fiasco Firmware Flasher&lt;br /&gt;
Not a local device&lt;br /&gt;
Waiting for USB device... &amp;lt;/code&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;code&amp;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;/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; you will get an output such as:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;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;/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. 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;
&#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;
=== 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;
&#039;&#039;&#039;Overclocking is now available in -devel using cpufreq boost.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
It uses 250-500-550-600-720-805-850MHz 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;
&#039;&#039;&#039;No other steps are needed and updates/upgrades work with boost mode.&#039;&#039;&#039;&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;
&lt;br /&gt;
&#039;&#039;&#039;WARNING: some devices can&#039;t run at 850MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 850000 by 805000 (or 720000) in scaling_max_freq file and finally select conservative governor&#039;&#039;&#039;&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;
&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 for example:&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;
	};&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 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 (ie vmlinuz-6.1.30)&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;
&lt;br /&gt;
(&#039;&#039;&#039;WARNING with old method:&#039;&#039;&#039; 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, most probably because of their lower build quality.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WARNING&#039;&#039;&#039;: 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&#039;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;
(&#039;&#039;&#039;Note:&#039;&#039;&#039; it is recommended to dist-upgrade to -devel to enable more features)&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 .nomedia file in /home/user folder:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;touch /home/user/.nomedia&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Deactivating apt-worker ===&lt;br /&gt;
&lt;br /&gt;
Run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Removing 250MHz CPU frequency (example) ===&lt;br /&gt;
&lt;br /&gt;
Install cpufrequtils.&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 ===&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;
&#039;&#039;&#039;Other possibility:&#039;&#039;&#039; 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;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;
=== 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;
&#039;&#039;&#039;Note: like Fremantle, blur effect can cause lags and slowness.&#039;&#039;&#039; It is possible to deactivate/modify it through the transitions.ini file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;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;
=== Web browsing ===&lt;br /&gt;
&lt;br /&gt;
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install links2&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To use it in graphical mode, run in terminal:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;links2 -g&amp;lt;/pre&amp;gt; or press the hildon desktop icon.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then press &amp;lt;code&amp;gt;Ctl + Shift + N&amp;lt;/code&amp;gt; to disable Hildon composition -links2 performances will increase a lot-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Press &amp;lt;code&amp;gt;Ctl + Shift + N&amp;lt;/code&amp;gt; if you want to enable Hildon composition again.&lt;br /&gt;
&lt;br /&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;
- 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. (select voicecall profile in pavucontrol)&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;code&amp;gt;sudo chrt -a -f -p 99 $(pgrep pulseaudio)&amp;lt;/code&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 (experimental) || 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 &#039;FM Transmitter&#039; 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 || 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 || 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>Arno11</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Nokia_N900&amp;diff=1705</id>
		<title>Nokia N900</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Nokia_N900&amp;diff=1705"/>
		<updated>2024-07-17T10:37:54Z</updated>

		<summary type="html">&lt;p&gt;Arno11: /* Voice Calls / SIP Calls */&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.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, 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&#039;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;code&amp;gt;0xFFFF v0.8  // Open Free Fiasco Firmware Flasher&lt;br /&gt;
Not a local device&lt;br /&gt;
Waiting for USB device... &amp;lt;/code&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;code&amp;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;/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; you will get an output such as:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;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;/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. 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;
&#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;
=== 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;
&#039;&#039;&#039;Overclocking is now available in -devel using cpufreq boost.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
It uses 250-500-550-600-720-805-850MHz 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;
&#039;&#039;&#039;No other steps are needed and updates/upgrades work with boost mode.&#039;&#039;&#039;&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;
&lt;br /&gt;
&#039;&#039;&#039;WARNING: some devices can&#039;t run at 850MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 850000 by 805000 (or 720000) in scaling_max_freq file and finally select conservative governor&#039;&#039;&#039;&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;
&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 for example:&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;
	};&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 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 (ie vmlinuz-6.1.30)&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;
&lt;br /&gt;
(&#039;&#039;&#039;WARNING with old method:&#039;&#039;&#039; 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, most probably because of their lower build quality.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WARNING&#039;&#039;&#039;: 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&#039;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;
(&#039;&#039;&#039;Note:&#039;&#039;&#039; it is recommended to dist-upgrade to -devel to enable more features)&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 .nomedia file in /home/user folder:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;touch /home/user/.nomedia&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Deactivating apt-worker ===&lt;br /&gt;
&lt;br /&gt;
Run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Removing 250MHz CPU frequency (example) ===&lt;br /&gt;
&lt;br /&gt;
Install cpufrequtils.&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 ===&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;
&#039;&#039;&#039;Other possibility:&#039;&#039;&#039; 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;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;
=== 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;
&#039;&#039;&#039;Note: like Fremantle, blur effect can cause lags and slowness.&#039;&#039;&#039; It is possible to deactivate it through the transitions.ini file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;[HOME]&lt;br /&gt;
&lt;br /&gt;
radius = 0&lt;br /&gt;
&lt;br /&gt;
radius_more = 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Web browsing ===&lt;br /&gt;
&lt;br /&gt;
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install links2&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To use it in graphical mode, run in terminal:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;links2 -g&amp;lt;/pre&amp;gt; or press the hildon desktop icon.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then press &amp;lt;code&amp;gt;Ctl + Shift + N&amp;lt;/code&amp;gt; to disable Hildon composition -links2 performances will increase a lot-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Press &amp;lt;code&amp;gt;Ctl + Shift + N&amp;lt;/code&amp;gt; if you want to enable Hildon composition again.&lt;br /&gt;
&lt;br /&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;
- 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. (select voicecall profile in pavucontrol)&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;code&amp;gt;sudo chrt -a -f -p 99 $(pgrep pulseaudio)&amp;lt;/code&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.1.76 / 6.6 LTS (experimental) || 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 &#039;FM Transmitter&#039; 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 || 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 || 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>Arno11</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Nokia_N900&amp;diff=1704</id>
		<title>Nokia N900</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Nokia_N900&amp;diff=1704"/>
		<updated>2024-07-17T10:27:41Z</updated>

		<summary type="html">&lt;p&gt;Arno11: /* Status table */&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.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, 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&#039;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;code&amp;gt;0xFFFF v0.8  // Open Free Fiasco Firmware Flasher&lt;br /&gt;
Not a local device&lt;br /&gt;
Waiting for USB device... &amp;lt;/code&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;code&amp;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;/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; you will get an output such as:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;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;/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. 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;
&#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;
=== 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;
&#039;&#039;&#039;Overclocking is now available in -devel using cpufreq boost.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
It uses 250-500-550-600-720-805-850MHz 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;
&#039;&#039;&#039;No other steps are needed and updates/upgrades work with boost mode.&#039;&#039;&#039;&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;
&lt;br /&gt;
&#039;&#039;&#039;WARNING: some devices can&#039;t run at 850MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 850000 by 805000 (or 720000) in scaling_max_freq file and finally select conservative governor&#039;&#039;&#039;&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;
&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 for example:&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;
	};&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 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 (ie vmlinuz-6.1.30)&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;
&lt;br /&gt;
(&#039;&#039;&#039;WARNING with old method:&#039;&#039;&#039; 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, most probably because of their lower build quality.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WARNING&#039;&#039;&#039;: 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&#039;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;
(&#039;&#039;&#039;Note:&#039;&#039;&#039; it is recommended to dist-upgrade to -devel to enable more features)&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 .nomedia file in /home/user folder:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;touch /home/user/.nomedia&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Deactivating apt-worker ===&lt;br /&gt;
&lt;br /&gt;
Run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Removing 250MHz CPU frequency (example) ===&lt;br /&gt;
&lt;br /&gt;
Install cpufrequtils.&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 ===&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;
&#039;&#039;&#039;Other possibility:&#039;&#039;&#039; 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;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;
=== 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;
&#039;&#039;&#039;Note: like Fremantle, blur effect can cause lags and slowness.&#039;&#039;&#039; It is possible to deactivate it through the transitions.ini file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;[HOME]&lt;br /&gt;
&lt;br /&gt;
radius = 0&lt;br /&gt;
&lt;br /&gt;
radius_more = 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Web browsing ===&lt;br /&gt;
&lt;br /&gt;
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install links2&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To use it in graphical mode, run in terminal:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;links2 -g&amp;lt;/pre&amp;gt; or press the hildon desktop icon.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then press &amp;lt;code&amp;gt;Ctl + Shift + N&amp;lt;/code&amp;gt; to disable Hildon composition -links2 performances will increase a lot-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Press &amp;lt;code&amp;gt;Ctl + Shift + N&amp;lt;/code&amp;gt; if you want to enable Hildon composition again.&lt;br /&gt;
&lt;br /&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;
- 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. (select voicecall profile in pavucontrol)&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;code&amp;gt;sudo chrt -f -p 99 $(pgrep pulseaudio)&amp;lt;/code&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.1.76 / 6.6 LTS (experimental) || 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 &#039;FM Transmitter&#039; 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 || 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 || 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>Arno11</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Nokia_N900&amp;diff=1703</id>
		<title>Nokia N900</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Nokia_N900&amp;diff=1703"/>
		<updated>2024-07-17T10:24:31Z</updated>

		<summary type="html">&lt;p&gt;Arno11: /* Status table */&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.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, 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&#039;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;code&amp;gt;0xFFFF v0.8  // Open Free Fiasco Firmware Flasher&lt;br /&gt;
Not a local device&lt;br /&gt;
Waiting for USB device... &amp;lt;/code&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;code&amp;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;/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; you will get an output such as:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;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;/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. 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;
&#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;
=== 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;
&#039;&#039;&#039;Overclocking is now available in -devel using cpufreq boost.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
It uses 250-500-550-600-720-805-850MHz 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;
&#039;&#039;&#039;No other steps are needed and updates/upgrades work with boost mode.&#039;&#039;&#039;&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;
&lt;br /&gt;
&#039;&#039;&#039;WARNING: some devices can&#039;t run at 850MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 850000 by 805000 (or 720000) in scaling_max_freq file and finally select conservative governor&#039;&#039;&#039;&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;
&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 for example:&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;
	};&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 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 (ie vmlinuz-6.1.30)&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;
&lt;br /&gt;
(&#039;&#039;&#039;WARNING with old method:&#039;&#039;&#039; 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, most probably because of their lower build quality.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WARNING&#039;&#039;&#039;: 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&#039;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;
(&#039;&#039;&#039;Note:&#039;&#039;&#039; it is recommended to dist-upgrade to -devel to enable more features)&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 .nomedia file in /home/user folder:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;touch /home/user/.nomedia&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Deactivating apt-worker ===&lt;br /&gt;
&lt;br /&gt;
Run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Removing 250MHz CPU frequency (example) ===&lt;br /&gt;
&lt;br /&gt;
Install cpufrequtils.&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 ===&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;
&#039;&#039;&#039;Other possibility:&#039;&#039;&#039; 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;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;
=== 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;
&#039;&#039;&#039;Note: like Fremantle, blur effect can cause lags and slowness.&#039;&#039;&#039; It is possible to deactivate it through the transitions.ini file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;[HOME]&lt;br /&gt;
&lt;br /&gt;
radius = 0&lt;br /&gt;
&lt;br /&gt;
radius_more = 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Web browsing ===&lt;br /&gt;
&lt;br /&gt;
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install links2&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To use it in graphical mode, run in terminal:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;links2 -g&amp;lt;/pre&amp;gt; or press the hildon desktop icon.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then press &amp;lt;code&amp;gt;Ctl + Shift + N&amp;lt;/code&amp;gt; to disable Hildon composition -links2 performances will increase a lot-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Press &amp;lt;code&amp;gt;Ctl + Shift + N&amp;lt;/code&amp;gt; if you want to enable Hildon composition again.&lt;br /&gt;
&lt;br /&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;
- 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. (select voicecall profile in pavucontrol)&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;code&amp;gt;sudo chrt -f -p 99 $(pgrep pulseaudio)&amp;lt;/code&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.1.76 / 6.6 LTS (experimental) || 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&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 &#039;FM Transmitter&#039; 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 || 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 || 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>Arno11</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Nokia_N900&amp;diff=1702</id>
		<title>Nokia N900</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Nokia_N900&amp;diff=1702"/>
		<updated>2024-07-17T10:21:08Z</updated>

		<summary type="html">&lt;p&gt;Arno11: /* More SWAP / SWAP activation */&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.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, 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&#039;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;code&amp;gt;0xFFFF v0.8  // Open Free Fiasco Firmware Flasher&lt;br /&gt;
Not a local device&lt;br /&gt;
Waiting for USB device... &amp;lt;/code&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;code&amp;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;/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; you will get an output such as:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;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;/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. 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;
&#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;
=== 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;
&#039;&#039;&#039;Overclocking is now available in -devel using cpufreq boost.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
It uses 250-500-550-600-720-805-850MHz 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;
&#039;&#039;&#039;No other steps are needed and updates/upgrades work with boost mode.&#039;&#039;&#039;&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;
&lt;br /&gt;
&#039;&#039;&#039;WARNING: some devices can&#039;t run at 850MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 850000 by 805000 (or 720000) in scaling_max_freq file and finally select conservative governor&#039;&#039;&#039;&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;
&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 for example:&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;
	};&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 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 (ie vmlinuz-6.1.30)&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;
&lt;br /&gt;
(&#039;&#039;&#039;WARNING with old method:&#039;&#039;&#039; 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, most probably because of their lower build quality.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WARNING&#039;&#039;&#039;: 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&#039;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;
(&#039;&#039;&#039;Note:&#039;&#039;&#039; it is recommended to dist-upgrade to -devel to enable more features)&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 .nomedia file in /home/user folder:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;touch /home/user/.nomedia&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Deactivating apt-worker ===&lt;br /&gt;
&lt;br /&gt;
Run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Removing 250MHz CPU frequency (example) ===&lt;br /&gt;
&lt;br /&gt;
Install cpufrequtils.&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 ===&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;
&#039;&#039;&#039;Other possibility:&#039;&#039;&#039; 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;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;
=== 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;
&#039;&#039;&#039;Note: like Fremantle, blur effect can cause lags and slowness.&#039;&#039;&#039; It is possible to deactivate it through the transitions.ini file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;[HOME]&lt;br /&gt;
&lt;br /&gt;
radius = 0&lt;br /&gt;
&lt;br /&gt;
radius_more = 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Web browsing ===&lt;br /&gt;
&lt;br /&gt;
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install links2&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To use it in graphical mode, run in terminal:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;links2 -g&amp;lt;/pre&amp;gt; or press the hildon desktop icon.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then press &amp;lt;code&amp;gt;Ctl + Shift + N&amp;lt;/code&amp;gt; to disable Hildon composition -links2 performances will increase a lot-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Press &amp;lt;code&amp;gt;Ctl + Shift + N&amp;lt;/code&amp;gt; if you want to enable Hildon composition again.&lt;br /&gt;
&lt;br /&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;
- 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. (select voicecall profile in pavucontrol)&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;code&amp;gt;sudo chrt -f -p 99 $(pgrep pulseaudio)&amp;lt;/code&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.1.76 / 6.6 LTS (experimental) || 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), 850MHz is not working with all devices, 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&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 &#039;FM Transmitter&#039; 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 || 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 || 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>Arno11</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Extras/drnoksnes&amp;diff=1701</id>
		<title>Extras/drnoksnes</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Extras/drnoksnes&amp;diff=1701"/>
		<updated>2024-07-15T15:58:59Z</updated>

		<summary type="html">&lt;p&gt;Arno11: /* Tested Super Nintendo/ SNES games */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Package&lt;br /&gt;
|status=Working&lt;br /&gt;
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]&lt;br /&gt;
|date_in_repo=2024-07-14&lt;br /&gt;
|maemo_leste_repo=https://github.com/maemo-leste-extras/drnoksnes&lt;br /&gt;
|category=Games&lt;br /&gt;
|packager=[[User:Arno11]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
DrNokSnes is a Super Nintendo / SNES emulator running on Maemo-Leste.&lt;br /&gt;
&lt;br /&gt;
It works only with armhf architecture at the moment (Nokia N900 and Motorola Droid 4).&lt;br /&gt;
&lt;br /&gt;
The emulator uses the original maemo 5 GUI: This version of DrNokSnes is a clone of the old maemo one.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
[[File:2024-07-15-124249 800x480 scrot.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* SNES games are playable, with sound and input, running at 50-60 fps on N900.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Default configuration is already optimised. Like other emulators it is recommended to disable hildon compositing while playing, using Ctl+Shift+N.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Keymapping and all other parameters can be modified directly from the GUI.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In settings/Zoom, &#039;Scale to fit&#039; is recommended to be able to switch between fullscreen and window mode easely.&lt;br /&gt;
&lt;br /&gt;
On N900 target framerate at &#039;50-60 fps&#039; works better than &#039;auto&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:2024-06-07-223207 800x480 scrot.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Tested Super Nintendo/ SNES games ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Donkey Kong Country 1 &amp;amp; 2, FF VI , ISS, Killer Instinct, Zelda a Link to the Past, John Madden Football, Mickey Magical Quest, Secret of Mana, Street Fighter II Turbo, Super Mario Allstars, Super Mario World, Super Mario Kart, Mega Man X, NHLPA Hockey 93, Pinball Fantasy, Puzzle Bubble, R-Type 3, Samurai Showdown, Super Probotector, Super Tennis, World Heroes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:2024-06-07-223735 800x480 scrot.png]]&lt;br /&gt;
&lt;br /&gt;
== Tips ==&lt;br /&gt;
&lt;br /&gt;
If (for some reason) the GUI is not working, it is possible to directly launch a game from command line:&lt;br /&gt;
&lt;br /&gt;
/usr/bin/drnoksnes -c /usr/games/drnoksnes.conf /game_path&lt;br /&gt;
&lt;br /&gt;
Default keymap is visible in /usr/games/drnoksnes.conf&lt;br /&gt;
&lt;br /&gt;
On N900, it could be useful to activate boost mode (720MHz or 805MHz).&lt;br /&gt;
&lt;br /&gt;
As root:&lt;br /&gt;
&lt;br /&gt;
echo 1 &amp;gt; /sys/devices/system/cpu/cpufreq/boost&lt;br /&gt;
&lt;br /&gt;
echo 720000 &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq&lt;br /&gt;
&lt;br /&gt;
[[File:2024-06-07-224020 800x480 scrot.png]]&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
&lt;br /&gt;
* Try to improve sound in some games&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Extras]]&lt;/div&gt;</summary>
		<author><name>Arno11</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Extras/drnoksnes&amp;diff=1700</id>
		<title>Extras/drnoksnes</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Extras/drnoksnes&amp;diff=1700"/>
		<updated>2024-07-15T15:21:09Z</updated>

		<summary type="html">&lt;p&gt;Arno11: /* Status */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Package&lt;br /&gt;
|status=Working&lt;br /&gt;
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]&lt;br /&gt;
|date_in_repo=2024-07-14&lt;br /&gt;
|maemo_leste_repo=https://github.com/maemo-leste-extras/drnoksnes&lt;br /&gt;
|category=Games&lt;br /&gt;
|packager=[[User:Arno11]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
DrNokSnes is a Super Nintendo / SNES emulator running on Maemo-Leste.&lt;br /&gt;
&lt;br /&gt;
It works only with armhf architecture at the moment (Nokia N900 and Motorola Droid 4).&lt;br /&gt;
&lt;br /&gt;
The emulator uses the original maemo 5 GUI: This version of DrNokSnes is a clone of the old maemo one.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
[[File:2024-07-15-124249 800x480 scrot.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* SNES games are playable, with sound and input, running at 50-60 fps on N900.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Default configuration is already optimised. Like other emulators it is recommended to disable hildon compositing while playing, using Ctl+Shift+N.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Keymapping and all other parameters can be modified directly from the GUI.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In settings/Zoom, &#039;Scale to fit&#039; is recommended to be able to switch between fullscreen and window mode easely.&lt;br /&gt;
&lt;br /&gt;
On N900 target framerate at &#039;50-60 fps&#039; works better than &#039;auto&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:2024-06-07-223207 800x480 scrot.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Tested Super Nintendo/ SNES games ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Donkey Kong Country 1 &amp;amp; 2, FF VI , ISS, Killer Instinct, Zelda a Link to the Past, John Madden Football, Mickey Magical Quest, Secret of Mana, Street Fighter II Turbo, Super Mario Allstars, Super Mario World, Super Mario Kart, Mega Man X, NHLPA Hockey 93, Pinball Fantasy, Puzzle Bubble, R-Type 3, Samurai Showdown, Super Probotector, Super Tennis, Workd Heroes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:2024-06-07-223735 800x480 scrot.png]]&lt;br /&gt;
&lt;br /&gt;
== Tips ==&lt;br /&gt;
&lt;br /&gt;
If (for some reason) the GUI is not working, it is possible to directly launch a game from command line:&lt;br /&gt;
&lt;br /&gt;
/usr/bin/drnoksnes -c /usr/games/drnoksnes.conf /game_path&lt;br /&gt;
&lt;br /&gt;
Default keymap is visible in /usr/games/drnoksnes.conf&lt;br /&gt;
&lt;br /&gt;
On N900, it could be useful to activate boost mode (720MHz or 805MHz).&lt;br /&gt;
&lt;br /&gt;
As root:&lt;br /&gt;
&lt;br /&gt;
echo 1 &amp;gt; /sys/devices/system/cpu/cpufreq/boost&lt;br /&gt;
&lt;br /&gt;
echo 720000 &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq&lt;br /&gt;
&lt;br /&gt;
[[File:2024-06-07-224020 800x480 scrot.png]]&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
&lt;br /&gt;
* Try to improve sound in some games&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Extras]]&lt;/div&gt;</summary>
		<author><name>Arno11</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Extras/drnoksnes&amp;diff=1699</id>
		<title>Extras/drnoksnes</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Extras/drnoksnes&amp;diff=1699"/>
		<updated>2024-07-15T15:01:57Z</updated>

		<summary type="html">&lt;p&gt;Arno11: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Package&lt;br /&gt;
|status=Working&lt;br /&gt;
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]&lt;br /&gt;
|date_in_repo=2024-07-14&lt;br /&gt;
|maemo_leste_repo=https://github.com/maemo-leste-extras/drnoksnes&lt;br /&gt;
|category=Games&lt;br /&gt;
|packager=[[User:Arno11]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
DrNokSnes is a Super Nintendo / SNES emulator running on Maemo-Leste.&lt;br /&gt;
&lt;br /&gt;
It works only with armhf architecture at the moment (Nokia N900 and Motorola Droid 4).&lt;br /&gt;
&lt;br /&gt;
The emulator uses the original maemo 5 GUI: This version of DrNokSnes is a clone of the old maemo one.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
[[File:2024-07-15-124249 800x480 scrot.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* SNES games are playable, with sound and input, running at 50-60 fps on N900.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Default configuration is already optimised. Like other emulators it is recommended to disable hildon compositing while playing, using Ctl+Shift+N.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Keymapping and all other parameters can be modified directly from the GUI.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In settings/Zoom, &#039;Scale to fit&#039; is recommended to be able to switch between fullscreen and window mode easely.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:2024-06-07-223207 800x480 scrot.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Tested Super Nintendo/ SNES games ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Donkey Kong Country 1 &amp;amp; 2, FF VI , ISS, Killer Instinct, Zelda a Link to the Past, John Madden Football, Mickey Magical Quest, Secret of Mana, Street Fighter II Turbo, Super Mario Allstars, Super Mario World, Super Mario Kart, Mega Man X, NHLPA Hockey 93, Pinball Fantasy, Puzzle Bubble, R-Type 3, Samurai Showdown, Super Probotector, Super Tennis, Workd Heroes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:2024-06-07-223735 800x480 scrot.png]]&lt;br /&gt;
&lt;br /&gt;
== Tips ==&lt;br /&gt;
&lt;br /&gt;
If (for some reason) the GUI is not working, it is possible to directly launch a game from command line:&lt;br /&gt;
&lt;br /&gt;
/usr/bin/drnoksnes -c /usr/games/drnoksnes.conf /game_path&lt;br /&gt;
&lt;br /&gt;
Default keymap is visible in /usr/games/drnoksnes.conf&lt;br /&gt;
&lt;br /&gt;
On N900, it could be useful to activate boost mode (720MHz or 805MHz).&lt;br /&gt;
&lt;br /&gt;
As root:&lt;br /&gt;
&lt;br /&gt;
echo 1 &amp;gt; /sys/devices/system/cpu/cpufreq/boost&lt;br /&gt;
&lt;br /&gt;
echo 720000 &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq&lt;br /&gt;
&lt;br /&gt;
[[File:2024-06-07-224020 800x480 scrot.png]]&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
&lt;br /&gt;
* Try to improve sound in some games&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Extras]]&lt;/div&gt;</summary>
		<author><name>Arno11</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Extras/drnoksnes&amp;diff=1698</id>
		<title>Extras/drnoksnes</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Extras/drnoksnes&amp;diff=1698"/>
		<updated>2024-07-15T14:52:49Z</updated>

		<summary type="html">&lt;p&gt;Arno11: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Package&lt;br /&gt;
|status=Working&lt;br /&gt;
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]&lt;br /&gt;
|date_in_repo=2024-07-14&lt;br /&gt;
|maemo_leste_repo=https://github.com/maemo-leste-extras/drnoksnes&lt;br /&gt;
|category=Games&lt;br /&gt;
|packager=[[User:Arno11]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
DrNokSnes is a Super Nintendo / SNES emulator running on Maemo-Leste.&lt;br /&gt;
&lt;br /&gt;
It works only on armhf architecture devices at the moment like Nokia N900 and Motorola Droid.&lt;br /&gt;
&lt;br /&gt;
The emulator uses the original maemo 5 GUI: This version of DrNokSnes is a clone of the old maemo one.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
[[File:2024-07-15-124249 800x480 scrot.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* SNES games are playable, with sound and input, running at 50-60 fps on N900.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Default configuration is already optimised. Like other emulators it is recommended to disable hildon compositing while playing, using Ctl+Shift+N.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Keymapping and all other parameters can be modified directly from the GUI.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:2024-06-07-223207 800x480 scrot.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Tested Super Nintendo/ SNES games ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Donkey Kong Country 1 &amp;amp; 2, FF VI , ISS, Killer Instinct, Zelda a Link to the Past, John Madden Football, Mickey Magical Quest, Secret of Mana, Street Fighter II Turbo, Super Mario Allstars, Super Mario World, Super Mario Kart, Mega Man X, NHLPA Hockey 93, Pinball Fantasy, Puzzle Bubble, R-Type 3, Samurai Showdown, Super Probotector, Super Tennis, Workd Heroes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:2024-06-07-223735 800x480 scrot.png]]&lt;br /&gt;
&lt;br /&gt;
== Tips ==&lt;br /&gt;
&lt;br /&gt;
If (for some reason) the GUI is not working, it is possible to directly launch a game from command line:&lt;br /&gt;
&lt;br /&gt;
/usr/bin/drnoksnes -c /usr/games/drnoksnes.conf /game_path&lt;br /&gt;
&lt;br /&gt;
Default keymap is visible in /usr/games/drnoksnes.conf&lt;br /&gt;
&lt;br /&gt;
On N900, it could be useful to activate boost mode (720MHz or 805MHz).&lt;br /&gt;
&lt;br /&gt;
As root:&lt;br /&gt;
&lt;br /&gt;
echo 1 &amp;gt; /sys/devices/system/cpu/cpufreq/boost&lt;br /&gt;
&lt;br /&gt;
echo 720000 &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq&lt;br /&gt;
&lt;br /&gt;
[[File:2024-06-07-224020 800x480 scrot.png]]&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
&lt;br /&gt;
* Try to improve sound in some games&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Extras]]&lt;/div&gt;</summary>
		<author><name>Arno11</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Extras/drnoksnes&amp;diff=1697</id>
		<title>Extras/drnoksnes</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Extras/drnoksnes&amp;diff=1697"/>
		<updated>2024-07-15T11:33:14Z</updated>

		<summary type="html">&lt;p&gt;Arno11: /* Tips */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Package&lt;br /&gt;
|status=Working&lt;br /&gt;
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]&lt;br /&gt;
|date_in_repo=2024-07-14&lt;br /&gt;
|maemo_leste_repo=https://github.com/maemo-leste-extras/drnoksnes&lt;br /&gt;
|category=Games&lt;br /&gt;
|packager=[[User:Arno11]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
DrNokSnes is a Super Nintendo / SNES emulator running on Maemo-Leste.&lt;br /&gt;
&lt;br /&gt;
It works only on armhf architecture devices at the moment like Nokia N900 and Motorola Droid.&lt;br /&gt;
&lt;br /&gt;
The emulator uses the original maemo 5 GUI: This version of DrnokSnes is a clone of the old maemo one.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
[[File:2024-07-15-124249 800x480 scrot.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* SNES games are playable, with sound and input, running at 50-60 fps on N900.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Default configuration is already optimised. Like other emulators it is recommended to disable hildon compositing while playing, using Ctl+Shift+N.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Keymapping and all other parameters can be modified directly from the GUI.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:2024-06-07-223207 800x480 scrot.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Tested Super Nintendo/ SNES games ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Donkey Kong Country 1 &amp;amp; 2, FF VI , ISS, Killer Instinct, Zelda a Link to the Past, John Madden Football, Mickey Magical Quest, Secret of Mana, Street Fighter II Turbo, Super Mario Allstars, Super Mario World, Super Mario Kart, Mega Man X, NHLPA Hockey 93, Pinball Fantasy, Puzzle Bubble, R-Type 3, Samurai Showdown, Super Probotector, Super Tennis, Workd Heroes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:2024-06-07-223735 800x480 scrot.png]]&lt;br /&gt;
&lt;br /&gt;
== Tips ==&lt;br /&gt;
&lt;br /&gt;
If (for some reason) the GUI is not working, it is possible to directly launch a game from command line:&lt;br /&gt;
&lt;br /&gt;
/usr/bin/drnoksnes -c /usr/games/drnoksnes.conf /game_path&lt;br /&gt;
&lt;br /&gt;
Default keymap is visible in /usr/games/drnoksnes.conf&lt;br /&gt;
&lt;br /&gt;
On N900, it could be useful to activate boost mode (720MHz or 805MHz).&lt;br /&gt;
&lt;br /&gt;
As root:&lt;br /&gt;
&lt;br /&gt;
echo 1 &amp;gt; /sys/devices/system/cpu/cpufreq/boost&lt;br /&gt;
&lt;br /&gt;
echo 720000 &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq&lt;br /&gt;
&lt;br /&gt;
[[File:2024-06-07-224020 800x480 scrot.png]]&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
&lt;br /&gt;
* Try to improve sound in some games&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Extras]]&lt;/div&gt;</summary>
		<author><name>Arno11</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=File:2024-06-07-224020_800x480_scrot.png&amp;diff=1696</id>
		<title>File:2024-06-07-224020 800x480 scrot.png</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=File:2024-06-07-224020_800x480_scrot.png&amp;diff=1696"/>
		<updated>2024-07-15T11:32:44Z</updated>

		<summary type="html">&lt;p&gt;Arno11: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Streetfighter&lt;/div&gt;</summary>
		<author><name>Arno11</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Extras/drnoksnes&amp;diff=1695</id>
		<title>Extras/drnoksnes</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Extras/drnoksnes&amp;diff=1695"/>
		<updated>2024-07-15T11:31:32Z</updated>

		<summary type="html">&lt;p&gt;Arno11: /* Tested Super Nintendo/ SNES games */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Package&lt;br /&gt;
|status=Working&lt;br /&gt;
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]&lt;br /&gt;
|date_in_repo=2024-07-14&lt;br /&gt;
|maemo_leste_repo=https://github.com/maemo-leste-extras/drnoksnes&lt;br /&gt;
|category=Games&lt;br /&gt;
|packager=[[User:Arno11]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
DrNokSnes is a Super Nintendo / SNES emulator running on Maemo-Leste.&lt;br /&gt;
&lt;br /&gt;
It works only on armhf architecture devices at the moment like Nokia N900 and Motorola Droid.&lt;br /&gt;
&lt;br /&gt;
The emulator uses the original maemo 5 GUI: This version of DrnokSnes is a clone of the old maemo one.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
[[File:2024-07-15-124249 800x480 scrot.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* SNES games are playable, with sound and input, running at 50-60 fps on N900.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Default configuration is already optimised. Like other emulators it is recommended to disable hildon compositing while playing, using Ctl+Shift+N.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Keymapping and all other parameters can be modified directly from the GUI.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:2024-06-07-223207 800x480 scrot.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Tested Super Nintendo/ SNES games ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Donkey Kong Country 1 &amp;amp; 2, FF VI , ISS, Killer Instinct, Zelda a Link to the Past, John Madden Football, Mickey Magical Quest, Secret of Mana, Street Fighter II Turbo, Super Mario Allstars, Super Mario World, Super Mario Kart, Mega Man X, NHLPA Hockey 93, Pinball Fantasy, Puzzle Bubble, R-Type 3, Samurai Showdown, Super Probotector, Super Tennis, Workd Heroes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:2024-06-07-223735 800x480 scrot.png]]&lt;br /&gt;
&lt;br /&gt;
== Tips ==&lt;br /&gt;
&lt;br /&gt;
If (for some reason) the GUI is not working, it is possible to directly launch a game from command line:&lt;br /&gt;
&lt;br /&gt;
/usr/bin/drnoksnes -c /usr/games/drnoksnes.conf /game_path&lt;br /&gt;
&lt;br /&gt;
Default keymap is visible in /usr/games/drnoksnes.conf&lt;br /&gt;
&lt;br /&gt;
On N900, it could be useful to activate boost mode (720MHz or 805MHz).&lt;br /&gt;
&lt;br /&gt;
As root:&lt;br /&gt;
&lt;br /&gt;
echo 1 &amp;gt; /sys/devices/system/cpu/cpufreq/boost&lt;br /&gt;
&lt;br /&gt;
echo 720000 &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
&lt;br /&gt;
* Try to improve sound in some games&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Extras]]&lt;/div&gt;</summary>
		<author><name>Arno11</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=File:2024-06-07-223735_800x480_scrot.png&amp;diff=1694</id>
		<title>File:2024-06-07-223735 800x480 scrot.png</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=File:2024-06-07-223735_800x480_scrot.png&amp;diff=1694"/>
		<updated>2024-07-15T11:30:59Z</updated>

		<summary type="html">&lt;p&gt;Arno11: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Kong&lt;/div&gt;</summary>
		<author><name>Arno11</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Extras/drnoksnes&amp;diff=1693</id>
		<title>Extras/drnoksnes</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Extras/drnoksnes&amp;diff=1693"/>
		<updated>2024-07-15T11:30:01Z</updated>

		<summary type="html">&lt;p&gt;Arno11: /* Status */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Package&lt;br /&gt;
|status=Working&lt;br /&gt;
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]&lt;br /&gt;
|date_in_repo=2024-07-14&lt;br /&gt;
|maemo_leste_repo=https://github.com/maemo-leste-extras/drnoksnes&lt;br /&gt;
|category=Games&lt;br /&gt;
|packager=[[User:Arno11]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
DrNokSnes is a Super Nintendo / SNES emulator running on Maemo-Leste.&lt;br /&gt;
&lt;br /&gt;
It works only on armhf architecture devices at the moment like Nokia N900 and Motorola Droid.&lt;br /&gt;
&lt;br /&gt;
The emulator uses the original maemo 5 GUI: This version of DrnokSnes is a clone of the old maemo one.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
[[File:2024-07-15-124249 800x480 scrot.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* SNES games are playable, with sound and input, running at 50-60 fps on N900.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Default configuration is already optimised. Like other emulators it is recommended to disable hildon compositing while playing, using Ctl+Shift+N.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Keymapping and all other parameters can be modified directly from the GUI.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:2024-06-07-223207 800x480 scrot.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Tested Super Nintendo/ SNES games ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Donkey Kong Country 1 &amp;amp; 2, FF VI , ISS, Killer Instinct, Zelda a Link to the Past, John Madden Football, Mickey Magical Quest, Secret of Mana, Street Fighter II Turbo, Super Mario Allstars, Super Mario World, Super Mario Kart, Mega Man X, NHLPA Hockey 93, Pinball Fantasy, Puzzle Bubble, R-Type 3, Samurai Showdown, Super Probotector, Super Tennis, Workd Heroes.&lt;br /&gt;
&lt;br /&gt;
== Tips ==&lt;br /&gt;
&lt;br /&gt;
If (for some reason) the GUI is not working, it is possible to directly launch a game from command line:&lt;br /&gt;
&lt;br /&gt;
/usr/bin/drnoksnes -c /usr/games/drnoksnes.conf /game_path&lt;br /&gt;
&lt;br /&gt;
Default keymap is visible in /usr/games/drnoksnes.conf&lt;br /&gt;
&lt;br /&gt;
On N900, it could be useful to activate boost mode (720MHz or 805MHz).&lt;br /&gt;
&lt;br /&gt;
As root:&lt;br /&gt;
&lt;br /&gt;
echo 1 &amp;gt; /sys/devices/system/cpu/cpufreq/boost&lt;br /&gt;
&lt;br /&gt;
echo 720000 &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
&lt;br /&gt;
* Try to improve sound in some games&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Extras]]&lt;/div&gt;</summary>
		<author><name>Arno11</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=File:2024-06-07-223207_800x480_scrot.png&amp;diff=1692</id>
		<title>File:2024-06-07-223207 800x480 scrot.png</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=File:2024-06-07-223207_800x480_scrot.png&amp;diff=1692"/>
		<updated>2024-07-15T11:29:16Z</updated>

		<summary type="html">&lt;p&gt;Arno11: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Mario&lt;/div&gt;</summary>
		<author><name>Arno11</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Extras/drnoksnes&amp;diff=1691</id>
		<title>Extras/drnoksnes</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Extras/drnoksnes&amp;diff=1691"/>
		<updated>2024-07-15T11:27:33Z</updated>

		<summary type="html">&lt;p&gt;Arno11: /* Status */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Package&lt;br /&gt;
|status=Working&lt;br /&gt;
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]&lt;br /&gt;
|date_in_repo=2024-07-14&lt;br /&gt;
|maemo_leste_repo=https://github.com/maemo-leste-extras/drnoksnes&lt;br /&gt;
|category=Games&lt;br /&gt;
|packager=[[User:Arno11]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
DrNokSnes is a Super Nintendo / SNES emulator running on Maemo-Leste.&lt;br /&gt;
&lt;br /&gt;
It works only on armhf architecture devices at the moment like Nokia N900 and Motorola Droid.&lt;br /&gt;
&lt;br /&gt;
The emulator uses the original maemo 5 GUI: This version of DrnokSnes is a clone of the old maemo one.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
[[File:2024-07-15-124249 800x480 scrot.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* SNES games are playable, with sound and input, running at 50-60 fps on N900.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Default configuration is already optimised. Like other emulators it is recommended to disable hildon compositing while playing, using Ctl+Shift+N.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Keymapping and all other parameters can be modified directly from the GUI.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Tested Super Nintendo/ SNES games ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Donkey Kong Country 1 &amp;amp; 2, FF VI , ISS, Killer Instinct, Zelda a Link to the Past, John Madden Football, Mickey Magical Quest, Secret of Mana, Street Fighter II Turbo, Super Mario Allstars, Super Mario World, Super Mario Kart, Mega Man X, NHLPA Hockey 93, Pinball Fantasy, Puzzle Bubble, R-Type 3, Samurai Showdown, Super Probotector, Super Tennis, Workd Heroes.&lt;br /&gt;
&lt;br /&gt;
== Tips ==&lt;br /&gt;
&lt;br /&gt;
If (for some reason) the GUI is not working, it is possible to directly launch a game from command line:&lt;br /&gt;
&lt;br /&gt;
/usr/bin/drnoksnes -c /usr/games/drnoksnes.conf /game_path&lt;br /&gt;
&lt;br /&gt;
Default keymap is visible in /usr/games/drnoksnes.conf&lt;br /&gt;
&lt;br /&gt;
On N900, it could be useful to activate boost mode (720MHz or 805MHz).&lt;br /&gt;
&lt;br /&gt;
As root:&lt;br /&gt;
&lt;br /&gt;
echo 1 &amp;gt; /sys/devices/system/cpu/cpufreq/boost&lt;br /&gt;
&lt;br /&gt;
echo 720000 &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
&lt;br /&gt;
* Try to improve sound in some games&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Extras]]&lt;/div&gt;</summary>
		<author><name>Arno11</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=File:2024-07-15-124249_800x480_scrot.png&amp;diff=1690</id>
		<title>File:2024-07-15-124249 800x480 scrot.png</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=File:2024-07-15-124249_800x480_scrot.png&amp;diff=1690"/>
		<updated>2024-07-15T11:26:50Z</updated>

		<summary type="html">&lt;p&gt;Arno11: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Drnoksnes GUI&lt;/div&gt;</summary>
		<author><name>Arno11</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Extras/drnoksnes&amp;diff=1689</id>
		<title>Extras/drnoksnes</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Extras/drnoksnes&amp;diff=1689"/>
		<updated>2024-07-15T11:20:45Z</updated>

		<summary type="html">&lt;p&gt;Arno11: Created page with &amp;quot;{{Infobox Package |status=Working |devices=Nokia_N900,Motorola_Droid_4 |date_in_repo=2024-07-14 |maemo_leste_repo=https://github.com/maemo-leste-extras/drnoksnes |cate...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Package&lt;br /&gt;
|status=Working&lt;br /&gt;
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]&lt;br /&gt;
|date_in_repo=2024-07-14&lt;br /&gt;
|maemo_leste_repo=https://github.com/maemo-leste-extras/drnoksnes&lt;br /&gt;
|category=Games&lt;br /&gt;
|packager=[[User:Arno11]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
DrNokSnes is a Super Nintendo / SNES emulator running on Maemo-Leste.&lt;br /&gt;
&lt;br /&gt;
It works only on armhf architecture devices at the moment like Nokia N900 and Motorola Droid.&lt;br /&gt;
&lt;br /&gt;
The emulator uses the original maemo 5 GUI: This version of DrnokSnes is a clone of the old maemo one.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* SNES games are playable, with sound and input, running at 50-60 fps on N900.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Default configuration is already optimised. Like other emulators it is recommended to disable hildon compositing while playing, using Ctl+Shift+N.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Keymapping and all other parameters can be modified directly from the GUI.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Tested Super Nintendo/ SNES games ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Donkey Kong Country 1 &amp;amp; 2, FF VI , ISS, Killer Instinct, Zelda a Link to the Past, John Madden Football, Mickey Magical Quest, Secret of Mana, Street Fighter II Turbo, Super Mario Allstars, Super Mario World, Super Mario Kart, Mega Man X, NHLPA Hockey 93, Pinball Fantasy, Puzzle Bubble, R-Type 3, Samurai Showdown, Super Probotector, Super Tennis, Workd Heroes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Tips ==&lt;br /&gt;
&lt;br /&gt;
If (for some reason) the GUI is not working, it is possible to directly launch a game from command line:&lt;br /&gt;
&lt;br /&gt;
/usr/bin/drnoksnes -c /usr/games/drnoksnes.conf /game_path&lt;br /&gt;
&lt;br /&gt;
Default keymap is visible in /usr/games/drnoksnes.conf&lt;br /&gt;
&lt;br /&gt;
On N900, it could be useful to activate boost mode (720MHz or 805MHz).&lt;br /&gt;
&lt;br /&gt;
As root:&lt;br /&gt;
&lt;br /&gt;
echo 1 &amp;gt; /sys/devices/system/cpu/cpufreq/boost&lt;br /&gt;
&lt;br /&gt;
echo 720000 &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
&lt;br /&gt;
* Try to improve sound in some games&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Extras]]&lt;/div&gt;</summary>
		<author><name>Arno11</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Nokia_N900&amp;diff=1686</id>
		<title>Nokia N900</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Nokia_N900&amp;diff=1686"/>
		<updated>2024-07-12T21:05:50Z</updated>

		<summary type="html">&lt;p&gt;Arno11: /* Status table */&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.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, 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&#039;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;code&amp;gt;0xFFFF v0.8  // Open Free Fiasco Firmware Flasher&lt;br /&gt;
Not a local device&lt;br /&gt;
Waiting for USB device... &amp;lt;/code&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;code&amp;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;/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; you will get an output such as:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;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;/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. 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;
&#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;
=== 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;
&#039;&#039;&#039;Overclocking is now available in -devel using cpufreq boost.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
It uses 250-500-550-600-720-805-850MHz 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;
&#039;&#039;&#039;No other steps are needed and updates/upgrades work with boost mode.&#039;&#039;&#039;&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;
&lt;br /&gt;
&#039;&#039;&#039;WARNING: some devices can&#039;t run at 850MHz. For this specific case, select powersave governor instead of ondemand, activate boost mode, replace 850000 by 805000 (or 720000) in scaling_max_freq file and finally select conservative governor&#039;&#039;&#039;&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;
&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 for example:&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;
	};&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 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 (ie vmlinuz-6.1.30)&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;
&lt;br /&gt;
(&#039;&#039;&#039;WARNING with old method:&#039;&#039;&#039; 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, most probably because of their lower build quality.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WARNING&#039;&#039;&#039;: 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&#039;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;
(&#039;&#039;&#039;Note:&#039;&#039;&#039; it is recommended to dist-upgrade to -devel to enable more features)&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 .nomedia file in /home/user folder:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;touch /home/user/.nomedia&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Deactivating apt-worker ===&lt;br /&gt;
&lt;br /&gt;
Run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;gconftool -s --type int /apps/hildon/update-notifier/check_interval 2147483647&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Removing 250MHz CPU frequency (example) ===&lt;br /&gt;
&lt;br /&gt;
Install cpufrequtils.&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 ===&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;
(Note: eMMC swap is &#039;&#039;&#039;highly recommended&#039;&#039;&#039; and faster than SD card swap)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Other possibility:&#039;&#039;&#039; 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;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;
&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;
&#039;&#039;&#039;Note: like Fremantle, blur effect can cause lags and slowness.&#039;&#039;&#039; It is possible to deactivate it through the transitions.ini file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;[HOME]&lt;br /&gt;
&lt;br /&gt;
radius = 0&lt;br /&gt;
&lt;br /&gt;
radius_more = 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Web browsing ===&lt;br /&gt;
&lt;br /&gt;
Links2 is currently the fastest and the most usable web browser on N900 -using an easy tweak-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install links2&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To use it in graphical mode, run in terminal:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;links2 -g&amp;lt;/pre&amp;gt; or press the hildon desktop icon.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then press &amp;lt;code&amp;gt;Ctl + Shift + N&amp;lt;/code&amp;gt; to disable Hildon composition -links2 performances will increase a lot-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Press &amp;lt;code&amp;gt;Ctl + Shift + N&amp;lt;/code&amp;gt; if you want to enable Hildon composition again.&lt;br /&gt;
&lt;br /&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;
- 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. (select voicecall profile in pavucontrol)&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;code&amp;gt;sudo chrt -f -p 99 $(pgrep pulseaudio)&amp;lt;/code&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.1.76 / 6.6 LTS (experimental) || 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), 850MHz is not working with all devices, 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&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 &#039;FM Transmitter&#039; 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 || 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 || 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>Arno11</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Extras/pcsx_rearmed&amp;diff=1685</id>
		<title>Extras/pcsx rearmed</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Extras/pcsx_rearmed&amp;diff=1685"/>
		<updated>2024-06-29T20:15:14Z</updated>

		<summary type="html">&lt;p&gt;Arno11: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Package&lt;br /&gt;
|status=Working&lt;br /&gt;
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]&lt;br /&gt;
|date_in_repo=2024-05-27&lt;br /&gt;
|maemo_leste_repo=https://github.com/maemo-leste-extras/pcsx_rearmed&lt;br /&gt;
|category=Games&lt;br /&gt;
|packager=[[User:Arno11]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Pcsx_rearmed is a Playstation 1 emulator running on Maemo-Leste.&lt;br /&gt;
&lt;br /&gt;
It works only on Nokia N900 and Motorola Droid 4 at the moment (thanks to their physical keyboards).&lt;br /&gt;
&lt;br /&gt;
The emulator uses a generic GTK UI: The old maemo 5 touch GUI is not working at the moment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
WARNING: on N900 in the GUI, &#039;enter menu&#039; is associated to &#039;backspace&#039; key. &lt;br /&gt;
&#039;back&#039; is associated to &#039;e&#039; key (hardcoded).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:2024-06-07-064926 800x480 scrot.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Playstation games are playable, with sound and input, running at 25-30 fps on N900 with frameskip=1 usually but really depending of the game and if it is a NTSC or PAL version.&lt;br /&gt;
&lt;br /&gt;
[[File:2024-06-07-065751 800x480 scrot.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Without frameskip and sound, games run usually  at full speed with default CPU frequencies and buildin_gpu. But again, it is really depending of the game: some of them are &#039;locked&#039; at 24 fps (PAL) or 30 fps (NTSC).&lt;br /&gt;
&lt;br /&gt;
On N900, boost mode (overclock) is recommended if you play with sound. Otherwise it works well with stock frequencies, specially with the buildin_gpu.&lt;br /&gt;
&lt;br /&gt;
[[File:2024-06-07-065424 800x480 scrot.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Default configuration is already optimised without sound and 25-30 fps. Like other emulators hildon compositing must be deactivated while playing, using Ctl+Shift+N.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Keymapping and all other parameters can be modified directly in the user config file available in /usr/games/pcsx/.pcsx/pcsx.cfg&lt;br /&gt;
&lt;br /&gt;
Only buildin_gpu and gpu_unai are working (but really well).&lt;br /&gt;
&lt;br /&gt;
It is possible (not all games) to speed up and increase framerate using the &#039;fast forward&#039; option.&lt;br /&gt;
&lt;br /&gt;
[[File:2024-06-07-100831 800x480 scrot.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Fullscreen mode can be activated with &#039;F&#039; key by default.&lt;br /&gt;
&lt;br /&gt;
Almost all configuration parameters are available from the GUI.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Tested Playstation/Psx/PsOne games===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Driver, MetalSlugX, Ace Combat 3, Spyro the Dragon, Final Fantasy 8, Legend of Mana, Medal of Honor, Metal Gear Solid, Gran Turismo, Tekken 3, V-Rally, Moto Racer 2, ISS Pro Evolution.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:2024-06-07-070020 800x480 scrot.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Original Bios file can&#039;t be provided. The emulator use HLE bios by default which works with some games. For a full working emulation, a real pcsx bios is needed and must be added in &#039;/usr/games/pcsx/bios&#039; directory.&lt;br /&gt;
(The correct typo is for example &#039;scph7502.bin&#039;)&lt;br /&gt;
&lt;br /&gt;
== Tips ==&lt;br /&gt;
&lt;br /&gt;
If (for some reason) the GUI is not working, it is possible to directly launch a game from command line:&lt;br /&gt;
&lt;br /&gt;
/usr/games/pcsx/pcsx /game_dir/your_game.zip&lt;br /&gt;
&lt;br /&gt;
Default keymap is visible in /usr/games/pcsx/.pcsx/pcsx.cfg&lt;br /&gt;
&lt;br /&gt;
On N900, to activate boost mode (720MHz or 805MHz):&lt;br /&gt;
&lt;br /&gt;
As root:&lt;br /&gt;
&lt;br /&gt;
echo 1 &amp;gt; /sys/devices/system/cpu/cpufreq/boost&lt;br /&gt;
&lt;br /&gt;
echo 720000 &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
&lt;br /&gt;
* Implement sane default keys for the devices &lt;br /&gt;
&lt;br /&gt;
* Try to implement Maemo 5 -touch- UI&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Extras]]&lt;/div&gt;</summary>
		<author><name>Arno11</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Extras/pcsx_rearmed&amp;diff=1682</id>
		<title>Extras/pcsx rearmed</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Extras/pcsx_rearmed&amp;diff=1682"/>
		<updated>2024-06-08T11:10:45Z</updated>

		<summary type="html">&lt;p&gt;Arno11: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Package&lt;br /&gt;
|status=Working / Debian packaging is WIP&lt;br /&gt;
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]&lt;br /&gt;
|date_in_repo=2024-05-27&lt;br /&gt;
|maemo_leste_repo=https://github.com/maemo-leste-extras/pcsx_rearmed&lt;br /&gt;
|category=Games&lt;br /&gt;
|packager=[[User:Arno11]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Pcsx_rearmed is a Playstation 1 emulator running on Maemo-Leste.&lt;br /&gt;
&lt;br /&gt;
It works only on Nokia N900 and Motorola Droid 4 at the moment (thanks to their physical keyboards).&lt;br /&gt;
&lt;br /&gt;
The emulator uses a generic GTK UI: The old maemo 5 touch GUI is not working at the moment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
WARNING: on N900 in the GUI, &#039;enter menu&#039; is associated to &#039;escape&#039; key. &lt;br /&gt;
&#039;back&#039; is associated to &#039;e&#039; key (hardcoded).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:2024-06-07-064926 800x480 scrot.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Playstation games are playable, with sound and input, running at 25-30 fps on N900 with frameskip=1 usually but really depending of the game and if it is a NTSC or PAL version.&lt;br /&gt;
&lt;br /&gt;
[[File:2024-06-07-065751 800x480 scrot.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Without frameskip and sound, games run usually  at full speed with default CPU frequencies and buildin_gpu. But again, it is really depending of the game: some of them are &#039;locked&#039; at 24 fps (PAL) or 30 fps (NTSC).&lt;br /&gt;
&lt;br /&gt;
On N900, boost mode (overclock) is recommended if you play with sound. Otherwise it works well with stock frequencies, specially with the buildin_gpu.&lt;br /&gt;
&lt;br /&gt;
[[File:2024-06-07-065424 800x480 scrot.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Default configuration is already optimised without sound and 25-30 fps. Like other emulators hildon compositing must be deactivated while playing, using Ctl+Shift+N.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Keymapping and all other parameters can be modified directly in the user config file available in /usr/games/pcsx/.pcsx/pcsx.cfg&lt;br /&gt;
&lt;br /&gt;
Only buildin_gpu and gpu_unai are working (but really well).&lt;br /&gt;
&lt;br /&gt;
It is possible (not all games) to speed up and increase framerate using the &#039;fast forward&#039; option.&lt;br /&gt;
&lt;br /&gt;
[[File:2024-06-07-100831 800x480 scrot.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Fullscreen mode can be activated with &#039;F&#039; key by default.&lt;br /&gt;
&lt;br /&gt;
Almost all configuration parameters are available from the GUI.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Tested Playstation/Psx/PsOne games===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Driver, MetalSlugX, Ace Combat 3, Spyro the Dragon, Final Fantasy 8, Legend of Mana, Medal of Honor, Metal Gear Solid, Gran Turismo, Tekken 3, V-Rally, Moto Racer 2, ISS Pro Evolution.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:2024-06-07-070020 800x480 scrot.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Original Bios file can&#039;t be provided. The emulator use HLE bios by default which works with some games. For a full working emulation, a real pcsx bios is needed and must be added in &#039;/usr/games/pcsx/bios&#039; directory.&lt;br /&gt;
(The correct typo is for example &#039;scph7502.bin&#039;)&lt;br /&gt;
&lt;br /&gt;
== Tips ==&lt;br /&gt;
&lt;br /&gt;
If (for some reason) the GUI is not working, it is possible to directly launch a game from command line:&lt;br /&gt;
&lt;br /&gt;
/usr/games/pcsx/pcsx /game_dir/your_game.zip&lt;br /&gt;
&lt;br /&gt;
Default keymap is visible in /usr/games/pcsx/.pcsx/pcsx.cfg&lt;br /&gt;
&lt;br /&gt;
On N900, to activate boost mode (720MHz or 805MHz):&lt;br /&gt;
&lt;br /&gt;
As root:&lt;br /&gt;
&lt;br /&gt;
echo 1 &amp;gt; /sys/devices/system/cpu/cpufreq/boost&lt;br /&gt;
&lt;br /&gt;
echo 720000 &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
&lt;br /&gt;
* Implement sane default keys for the devices &lt;br /&gt;
&lt;br /&gt;
* Try to implement Maemo 5 -touch- UI&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Extras]]&lt;/div&gt;</summary>
		<author><name>Arno11</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Extras/pcsx_rearmed&amp;diff=1681</id>
		<title>Extras/pcsx rearmed</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Extras/pcsx_rearmed&amp;diff=1681"/>
		<updated>2024-06-08T10:42:43Z</updated>

		<summary type="html">&lt;p&gt;Arno11: /* Status */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Package&lt;br /&gt;
|status=Working&lt;br /&gt;
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]&lt;br /&gt;
|date_in_repo=2024-05-27&lt;br /&gt;
|maemo_leste_repo=https://github.com/maemo-leste-extras/pcsx_rearmed&lt;br /&gt;
|category=Games&lt;br /&gt;
|packager=[[User:Arno11]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Pcsx_rearmed is a Playstation 1 emulator running on Maemo-Leste.&lt;br /&gt;
&lt;br /&gt;
It works only on Nokia N900 and Motorola Droid 4 at the moment (thanks to their physical keyboards).&lt;br /&gt;
&lt;br /&gt;
The emulator uses a generic GTK UI: The old maemo 5 touch GUI is not working at the moment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
WARNING: on N900 in the GUI, &#039;enter menu&#039; is associated to &#039;escape&#039; key. &lt;br /&gt;
&#039;back&#039; is associated to &#039;e&#039; key (hardcoded).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:2024-06-07-064926 800x480 scrot.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Playstation games are playable, with sound and input, running at 25-30 fps on N900 with frameskip=1 usually but really depending of the game and if it is a NTSC or PAL version.&lt;br /&gt;
&lt;br /&gt;
[[File:2024-06-07-065751 800x480 scrot.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Without frameskip and sound, games run usually  at full speed with default CPU frequencies and buildin_gpu. But again, it is really depending of the game: some of them are &#039;locked&#039; at 24 fps (PAL) or 30 fps (NTSC).&lt;br /&gt;
&lt;br /&gt;
On N900, boost mode (overclock) is recommended if you play with sound. Otherwise it works well with stock frequencies, specially with the buildin_gpu.&lt;br /&gt;
&lt;br /&gt;
[[File:2024-06-07-065424 800x480 scrot.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Default configuration is already optimised without sound and 25-30 fps. Like other emulators hildon compositing must be deactivated while playing, using Ctl+Shift+N.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Keymapping and all other parameters can be modified directly in the user config file available in /usr/games/pcsx/.pcsx/pcsx.cfg&lt;br /&gt;
&lt;br /&gt;
Only buildin_gpu and gpu_unai are working (but really well).&lt;br /&gt;
&lt;br /&gt;
It is possible (not all games) to speed up and increase framerate using the &#039;fast forward&#039; option.&lt;br /&gt;
&lt;br /&gt;
[[File:2024-06-07-100831 800x480 scrot.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Fullscreen mode can be activated with &#039;F&#039; key by default.&lt;br /&gt;
&lt;br /&gt;
Almost all configuration parameters are available from the GUI.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Tested Playstation/Psx/PsOne games===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Driver, MetalSlugX, Ace Combat 3, Spyro the Dragon, Final Fantasy 8, Legend of Mana, Medal of Honor, Metal Gear Solid, Gran Turismo, Tekken 3, V-Rally, Moto Racer 2, ISS Pro Evolution.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:2024-06-07-070020 800x480 scrot.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Original Bios file can&#039;t be provided. The emulator use HLE bios by default which works with some games. For a full working emulation, a real pcsx bios is needed and must be added in &#039;/usr/games/pcsx/bios&#039; directory.&lt;br /&gt;
(The correct typo is for example &#039;scph7502.bin&#039;)&lt;br /&gt;
&lt;br /&gt;
== Tips ==&lt;br /&gt;
&lt;br /&gt;
If (for some reason) the GUI is not working, it is possible to directly launch a game from command line:&lt;br /&gt;
&lt;br /&gt;
/usr/games/pcsx/pcsx /game_dir/your_game.zip&lt;br /&gt;
&lt;br /&gt;
Default keymap is visible in /usr/games/pcsx/.pcsx/pcsx.cfg&lt;br /&gt;
&lt;br /&gt;
On N900, to activate boost mode (720MHz or 805MHz):&lt;br /&gt;
&lt;br /&gt;
As root:&lt;br /&gt;
&lt;br /&gt;
echo 1 &amp;gt; /sys/devices/system/cpu/cpufreq/boost&lt;br /&gt;
&lt;br /&gt;
echo 720000 &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
&lt;br /&gt;
* Implement sane default keys for the devices &lt;br /&gt;
&lt;br /&gt;
* Try to implement Maemo 5 -touch- UI&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Extras]]&lt;/div&gt;</summary>
		<author><name>Arno11</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Extras/pcsx_rearmed&amp;diff=1680</id>
		<title>Extras/pcsx rearmed</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Extras/pcsx_rearmed&amp;diff=1680"/>
		<updated>2024-06-08T10:34:08Z</updated>

		<summary type="html">&lt;p&gt;Arno11: /* Configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Package&lt;br /&gt;
|status=Working&lt;br /&gt;
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]&lt;br /&gt;
|date_in_repo=2024-05-27&lt;br /&gt;
|maemo_leste_repo=https://github.com/maemo-leste-extras/pcsx_rearmed&lt;br /&gt;
|category=Games&lt;br /&gt;
|packager=[[User:Arno11]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Pcsx_rearmed is a Playstation 1 emulator running on Maemo-Leste.&lt;br /&gt;
&lt;br /&gt;
It works only on Nokia N900 and Motorola Droid 4 at the moment (thanks to their physical keyboards).&lt;br /&gt;
&lt;br /&gt;
The emulator uses a generic GTK UI: The old maemo 5 touch GUI is not working at the moment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
WARNING: on N900 in the GUI, &#039;enter menu&#039; is associated to &#039;escape&#039; key. &lt;br /&gt;
&#039;back&#039; is associated to &#039;e&#039; key (hardcoded).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:2024-06-07-064926 800x480 scrot.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Playstation games are playable, with sound and input, running at 25-30 fps on N900 with frameskip=1 usually but really depending of the game and if it is a NTSC or PAL version.&lt;br /&gt;
&lt;br /&gt;
[[File:2024-06-07-065751 800x480 scrot.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Without frameskip and sound, games run usually  at 50 or 60 fps with default CPU frequencies and buildin_gpu. But again, it is really depending of the game: some of them are &#039;locked&#039; at 24 fps (PAL) or 30 fps (NTSC).&lt;br /&gt;
&lt;br /&gt;
On N900, boost mode (overclock) is recommended if you play with sound. Otherwise it works well with stock frequencies, specially with the buildin_gpu.&lt;br /&gt;
&lt;br /&gt;
[[File:2024-06-07-065424 800x480 scrot.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Default configuration is already optimised without sound and 25-30 fps. Like other emulators hildon compositing must be deactivated while playing, using Ctl+Shift+N.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Keymapping and all other parameters can be modified directly in the user config file available in /usr/games/pcsx/.pcsx/pcsx.cfg&lt;br /&gt;
&lt;br /&gt;
Only buildin_gpu and gpu_unai are working (but really well).&lt;br /&gt;
&lt;br /&gt;
It is possible (not all games) to speed up and increase framerate using the &#039;fast forward&#039; option.&lt;br /&gt;
&lt;br /&gt;
[[File:2024-06-07-100831 800x480 scrot.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Fullscreen mode can be activated with &#039;F&#039; key by default.&lt;br /&gt;
&lt;br /&gt;
Almost all configuration parameters are available from the GUI.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Tested Playstation/Psx/PsOne games===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Driver, MetalSlugX, Ace Combat 3, Spyro the Dragon, Final Fantasy 8, Legend of Mana, Medal of Honor, Metal Gear Solid, Gran Turismo, Tekken 3, V-Rally, Moto Racer 2, ISS Pro Evolution.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:2024-06-07-070020 800x480 scrot.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Original Bios file can&#039;t be provided. The emulator use HLE bios by default which works with some games. For a full working emulation, a real pcsx bios is needed and must be added in &#039;/usr/games/pcsx/bios&#039; directory.&lt;br /&gt;
(The correct typo is for example &#039;scph7502.bin&#039;)&lt;br /&gt;
&lt;br /&gt;
== Tips ==&lt;br /&gt;
&lt;br /&gt;
If (for some reason) the GUI is not working, it is possible to directly launch a game from command line:&lt;br /&gt;
&lt;br /&gt;
/usr/games/pcsx/pcsx /game_dir/your_game.zip&lt;br /&gt;
&lt;br /&gt;
Default keymap is visible in /usr/games/pcsx/.pcsx/pcsx.cfg&lt;br /&gt;
&lt;br /&gt;
On N900, to activate boost mode (720MHz or 805MHz):&lt;br /&gt;
&lt;br /&gt;
As root:&lt;br /&gt;
&lt;br /&gt;
echo 1 &amp;gt; /sys/devices/system/cpu/cpufreq/boost&lt;br /&gt;
&lt;br /&gt;
echo 720000 &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
&lt;br /&gt;
* Implement sane default keys for the devices &lt;br /&gt;
&lt;br /&gt;
* Try to implement Maemo 5 -touch- UI&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Extras]]&lt;/div&gt;</summary>
		<author><name>Arno11</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Extras/pcsx_rearmed&amp;diff=1679</id>
		<title>Extras/pcsx rearmed</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Extras/pcsx_rearmed&amp;diff=1679"/>
		<updated>2024-06-08T10:33:37Z</updated>

		<summary type="html">&lt;p&gt;Arno11: /* Configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Package&lt;br /&gt;
|status=Working&lt;br /&gt;
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]&lt;br /&gt;
|date_in_repo=2024-05-27&lt;br /&gt;
|maemo_leste_repo=https://github.com/maemo-leste-extras/pcsx_rearmed&lt;br /&gt;
|category=Games&lt;br /&gt;
|packager=[[User:Arno11]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Pcsx_rearmed is a Playstation 1 emulator running on Maemo-Leste.&lt;br /&gt;
&lt;br /&gt;
It works only on Nokia N900 and Motorola Droid 4 at the moment (thanks to their physical keyboards).&lt;br /&gt;
&lt;br /&gt;
The emulator uses a generic GTK UI: The old maemo 5 touch GUI is not working at the moment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
WARNING: on N900 in the GUI, &#039;enter menu&#039; is associated to &#039;escape&#039; key. &lt;br /&gt;
&#039;back&#039; is associated to &#039;e&#039; key (hardcoded).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:2024-06-07-064926 800x480 scrot.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Playstation games are playable, with sound and input, running at 25-30 fps on N900 with frameskip=1 usually but really depending of the game and if it is a NTSC or PAL version.&lt;br /&gt;
&lt;br /&gt;
[[File:2024-06-07-065751 800x480 scrot.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Without frameskip and sound, games run usually  at 50 or 60 fps with default CPU frequencies and buildin_gpu. But again, it is really depending of the game: some of them are &#039;locked&#039; at 24 fps (PAL) or 30 fps (NTSC).&lt;br /&gt;
&lt;br /&gt;
On N900, boost mode (overclock) is recommended if you play with sound. Otherwise it works well with stock frequencies, specially with the buildin_gpu.&lt;br /&gt;
&lt;br /&gt;
[[File:2024-06-07-065424 800x480 scrot.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Default configuration is already optimised without sound and 25-30 fps. Like other emulators hildon compositing must be deactivated while playing, using Ctl+Shift+N.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Keymapping and all other parameters can be modified directly in the user config file available in /usr/games/pcsx/.pcsx/pcsx.cfg&lt;br /&gt;
&lt;br /&gt;
Only buildin_gpu and gpu_unai are working (but really well).&lt;br /&gt;
&lt;br /&gt;
It is possible (not all games) to speed up and increase framerate using the &#039;fast forward&#039; option.&lt;br /&gt;
&lt;br /&gt;
[[File:2024-06-07-100831 800x480 scrot.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Fullscreen mode can be activated with &#039;F&#039; key by default.&lt;br /&gt;
&lt;br /&gt;
Almost all configuration parameters are available from the GUI.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Tested Playstation/Psx/PsOne games===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Driver, MetalSlugX, Ace Combat 3, Spyro the Dragon, Final Fantasy 8, Legend of Mana, Medal of Honor, Metal Gear Solid, Gran Turismo, Tekken 3, V-Rally, Moto Racer 2, ISS Pro Evolution.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:2024-06-07-070020 800x480 scrot.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Original Bios file can&#039;t be provided. The emulator use HLE bios by default which works with some games. For a full working emulation, a real pcsx bios is needed and must be added in &#039;/usr/games/pcsx/bios&#039; directory.&lt;br /&gt;
(The correct typo is for example scph7502.bin)&lt;br /&gt;
&lt;br /&gt;
== Tips ==&lt;br /&gt;
&lt;br /&gt;
If (for some reason) the GUI is not working, it is possible to directly launch a game from command line:&lt;br /&gt;
&lt;br /&gt;
/usr/games/pcsx/pcsx /game_dir/your_game.zip&lt;br /&gt;
&lt;br /&gt;
Default keymap is visible in /usr/games/pcsx/.pcsx/pcsx.cfg&lt;br /&gt;
&lt;br /&gt;
On N900, to activate boost mode (720MHz or 805MHz):&lt;br /&gt;
&lt;br /&gt;
As root:&lt;br /&gt;
&lt;br /&gt;
echo 1 &amp;gt; /sys/devices/system/cpu/cpufreq/boost&lt;br /&gt;
&lt;br /&gt;
echo 720000 &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
&lt;br /&gt;
* Implement sane default keys for the devices &lt;br /&gt;
&lt;br /&gt;
* Try to implement Maemo 5 -touch- UI&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Extras]]&lt;/div&gt;</summary>
		<author><name>Arno11</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Extras/pcsx_rearmed&amp;diff=1678</id>
		<title>Extras/pcsx rearmed</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Extras/pcsx_rearmed&amp;diff=1678"/>
		<updated>2024-06-08T10:28:27Z</updated>

		<summary type="html">&lt;p&gt;Arno11: /* Status */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Package&lt;br /&gt;
|status=Working&lt;br /&gt;
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]&lt;br /&gt;
|date_in_repo=2024-05-27&lt;br /&gt;
|maemo_leste_repo=https://github.com/maemo-leste-extras/pcsx_rearmed&lt;br /&gt;
|category=Games&lt;br /&gt;
|packager=[[User:Arno11]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Pcsx_rearmed is a Playstation 1 emulator running on Maemo-Leste.&lt;br /&gt;
&lt;br /&gt;
It works only on Nokia N900 and Motorola Droid 4 at the moment (thanks to their physical keyboards).&lt;br /&gt;
&lt;br /&gt;
The emulator uses a generic GTK UI: The old maemo 5 touch GUI is not working at the moment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
WARNING: on N900 in the GUI, &#039;enter menu&#039; is associated to &#039;escape&#039; key. &lt;br /&gt;
&#039;back&#039; is associated to &#039;e&#039; key (hardcoded).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:2024-06-07-064926 800x480 scrot.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Playstation games are playable, with sound and input, running at 25-30 fps on N900 with frameskip=1 usually but really depending of the game and if it is a NTSC or PAL version.&lt;br /&gt;
&lt;br /&gt;
[[File:2024-06-07-065751 800x480 scrot.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Without frameskip and sound, games run usually  at 50 or 60 fps with default CPU frequencies and buildin_gpu. But again, it is really depending of the game: some of them are &#039;locked&#039; at 24 fps (PAL) or 30 fps (NTSC).&lt;br /&gt;
&lt;br /&gt;
On N900, boost mode (overclock) is recommended if you play with sound. Otherwise it works well with stock frequencies, specially with the buildin_gpu.&lt;br /&gt;
&lt;br /&gt;
[[File:2024-06-07-065424 800x480 scrot.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Default configuration is already optimised without sound and 25-30 fps. Like other emulators hildon compositing must be deactivated while playing, using Ctl+Shift+N.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Keymapping and all other parameters can be modified directly in the user config file available in /usr/games/pcsx/.pcsx/pcsx.cfg&lt;br /&gt;
&lt;br /&gt;
Only buildin_gpu and gpu_unai are working (but really well).&lt;br /&gt;
&lt;br /&gt;
It is possible (not all games) to speed up and increase framerate using the &#039;fast forward&#039; option.&lt;br /&gt;
&lt;br /&gt;
[[File:2024-06-07-100831 800x480 scrot.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Fullscreen mode can be activated with &#039;F&#039; key by default.&lt;br /&gt;
&lt;br /&gt;
Almost all configuration parameters are available from the GUI.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Tested Playstation/Psx/PsOne games===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Driver, MetalSlugX, Ace Combat 3, Spyro the Dragon, Final Fantasy 8, Legend of Mana, Medal of Honor, Metal Gear Solid, Gran Turismo, Tekken 3, V-Rally, Moto Racer 2, ISS Pro Evolution.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:2024-06-07-070020 800x480 scrot.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Original Bios file can&#039;t be provided. The emulator use HLE bios by default which works with some games. For a full working emulation, a real pcsx bios is needed and must be added in &#039;/usr/games/pcsx/bios&#039; directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Tips ==&lt;br /&gt;
&lt;br /&gt;
If (for some reason) the GUI is not working, it is possible to directly launch a game from command line:&lt;br /&gt;
&lt;br /&gt;
/usr/games/pcsx/pcsx /game_dir/your_game.zip&lt;br /&gt;
&lt;br /&gt;
Default keymap is visible in /usr/games/pcsx/.pcsx/pcsx.cfg&lt;br /&gt;
&lt;br /&gt;
On N900, to activate boost mode (720MHz or 805MHz):&lt;br /&gt;
&lt;br /&gt;
As root:&lt;br /&gt;
&lt;br /&gt;
echo 1 &amp;gt; /sys/devices/system/cpu/cpufreq/boost&lt;br /&gt;
&lt;br /&gt;
echo 720000 &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
&lt;br /&gt;
* Implement sane default keys for the devices &lt;br /&gt;
&lt;br /&gt;
* Try to implement Maemo 5 -touch- UI&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Extras]]&lt;/div&gt;</summary>
		<author><name>Arno11</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Extras/pcsx_rearmed&amp;diff=1677</id>
		<title>Extras/pcsx rearmed</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Extras/pcsx_rearmed&amp;diff=1677"/>
		<updated>2024-06-07T21:51:44Z</updated>

		<summary type="html">&lt;p&gt;Arno11: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Package&lt;br /&gt;
|status=Working&lt;br /&gt;
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]&lt;br /&gt;
|date_in_repo=2024-05-27&lt;br /&gt;
|maemo_leste_repo=https://github.com/maemo-leste-extras/pcsx_rearmed&lt;br /&gt;
|category=Games&lt;br /&gt;
|packager=[[User:Arno11]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Pcsx_rearmed is a Playstation 1 emulator running on Maemo-Leste.&lt;br /&gt;
&lt;br /&gt;
It works only on Nokia N900 and Motorola Droid 4 at the moment (thanks to their physical keyboards).&lt;br /&gt;
&lt;br /&gt;
The emulator uses a generic GTK UI: The old maemo 5 touch GUI is not working at the moment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
WARNING: on N900 in the GUI, &#039;enter menu&#039; is associated to &#039;escape&#039; key. &lt;br /&gt;
&#039;back&#039; is associated to &#039;e&#039; key (hardcoded).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:2024-06-07-064926 800x480 scrot.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Playstation games are playable, with sound and input, running at 25-30 fps on N900 with frameskip=1 usually but really depending of the game and if it is a NSCT or PAL version.&lt;br /&gt;
&lt;br /&gt;
[[File:2024-06-07-065751 800x480 scrot.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Without frameskip and sound, games run usually  at 50 or 60 fps with default CPU frequencies and buildin_gpu. But again, it is really depending of the game: some of them are &#039;locked&#039; at 24 fps (PAL) or 30 fps (NSCT).&lt;br /&gt;
&lt;br /&gt;
On N900, boost mode (overclock) is recommended if you play with sound. Otherwise it works well with stock frequencies, specially with the buildin_gpu.&lt;br /&gt;
&lt;br /&gt;
[[File:2024-06-07-065424 800x480 scrot.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Default configuration is already optimised without sound and 25-30 fps. Like other emulators hildon compositing must be deactivated while playing, using Ctl+Shift+N.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Keymapping and all other parameters can be modified directly in the user config file available in /usr/games/pcsx/.pcsx/pcsx.cfg&lt;br /&gt;
&lt;br /&gt;
Only buildin_gpu and gpu_unai are working (but really well).&lt;br /&gt;
&lt;br /&gt;
It is possible (not all games) to speed up and increase framerate using the &#039;fast forward&#039; option.&lt;br /&gt;
&lt;br /&gt;
[[File:2024-06-07-100831 800x480 scrot.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Fullscreen mode can be activated with &#039;F&#039; key by default.&lt;br /&gt;
&lt;br /&gt;
Almost all configuration parameters are available from the GUI.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Tested Playstation/Psx/PsOne games===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Driver, MetalSlugX, Ace Combat 3, Spyro the Dragon, Final Fantasy 8, Legend of Mana, Medal of Honor, Metal Gear Solid, Gran Turismo, Tekken 3, V-Rally, Moto Racer 2, ISS Pro Evolution.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:2024-06-07-070020 800x480 scrot.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Original Bios file can&#039;t be provided. The emulator use HLE bios by default which works with some games. For a full working emulation, a real pcsx bios is needed and must be added in &#039;/usr/games/pcsx/bios&#039; directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Tips ==&lt;br /&gt;
&lt;br /&gt;
If (for some reason) the GUI is not working, it is possible to directly launch a game from command line:&lt;br /&gt;
&lt;br /&gt;
/usr/games/pcsx/pcsx /game_dir/your_game.zip&lt;br /&gt;
&lt;br /&gt;
Default keymap is visible in /usr/games/pcsx/.pcsx/pcsx.cfg&lt;br /&gt;
&lt;br /&gt;
On N900, to activate boost mode (720MHz or 805MHz):&lt;br /&gt;
&lt;br /&gt;
As root:&lt;br /&gt;
&lt;br /&gt;
echo 1 &amp;gt; /sys/devices/system/cpu/cpufreq/boost&lt;br /&gt;
&lt;br /&gt;
echo 720000 &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
&lt;br /&gt;
* Implement sane default keys for the devices &lt;br /&gt;
&lt;br /&gt;
* Try to implement Maemo 5 -touch- UI&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Extras]]&lt;/div&gt;</summary>
		<author><name>Arno11</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Extras/pcsx_rearmed&amp;diff=1676</id>
		<title>Extras/pcsx rearmed</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Extras/pcsx_rearmed&amp;diff=1676"/>
		<updated>2024-06-07T21:43:02Z</updated>

		<summary type="html">&lt;p&gt;Arno11: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Package&lt;br /&gt;
|status=Working&lt;br /&gt;
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]&lt;br /&gt;
|date_in_repo=2024-05-27&lt;br /&gt;
|maemo_leste_repo=https://github.com/maemo-leste-extras/pcsx_rearmed&lt;br /&gt;
|category=Games&lt;br /&gt;
|packager=[[User:Arno11]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Pcsx_rearmed is a Playstation 1 emulator running on Maemo-Leste.&lt;br /&gt;
&lt;br /&gt;
It works only on Nokia N900 and Motorola Droid 4 at the moment (thanks to their physical keyboards).&lt;br /&gt;
&lt;br /&gt;
The emulator uses a generic GTK UI: The old maemo 5 touch GUI is not working at the moment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
WARNING: on N900 in the GUI, &#039;enter menu&#039; is associated to &#039;escape&#039; key. &lt;br /&gt;
&#039;back&#039; is associated to &#039;e&#039; key (hardcoded).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:2024-06-07-064926 800x480 scrot.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Playstation games are playable, with sound and input, running at 25-30 fps on N900 with frameskip=1 usually but really depending of the game and if it is a NSCT or PAL version.&lt;br /&gt;
&lt;br /&gt;
[[File:2024-06-07-065751 800x480 scrot.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Without frameskip and sound, games run usually  at 50 or 60 fps with default CPU frequencies and buildin_gpu. But again, it is really depending of the game: some of them are &#039;locked&#039; at 24 fps (PAL) or 30 fps (NSCT).&lt;br /&gt;
&lt;br /&gt;
On N900, boost mode (overclock) is recommended if you play with sound. Otherwise it works well with stock frequencies, specially with the buildin_gpu.&lt;br /&gt;
&lt;br /&gt;
[[File:2024-06-07-065424 800x480 scrot.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Default configuration is already optimised without sound and 25-30 fps. Like other emulators hildon compositing must be deactivated while playing, using Ctl+Shift+N.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Keymapping and all other parameters can be modified directly in the user config file available in /usr/games/pcsx/.pcsx/pcsx.cfg&lt;br /&gt;
&lt;br /&gt;
Only buildin_gpu and gpu_unai are working (but really well.&lt;br /&gt;
&lt;br /&gt;
It is possible (not all games) to speed up and increase framerate using the &#039;fast forward&#039; option.&lt;br /&gt;
&lt;br /&gt;
[[File:2024-06-07-100831 800x480 scrot.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Fullscreen mode can be activated with &#039;F&#039; key by default.&lt;br /&gt;
&lt;br /&gt;
Almost all configuration parameters are available from the GUI.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Tested Playstation/Psx/PsOne games===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Driver, MetalSlugX, Ace Combat 3, Spyro the Dragon, Final Fantasy 8, Legend of Mana, Medal of Honor, Metal Gear Solid, Gran Turismo, Tekken 3, V-Rally, Moto Racer 2, ISS Pro Evolution.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:2024-06-07-070020 800x480 scrot.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Tips ==&lt;br /&gt;
&lt;br /&gt;
If (for some reason) the GUI is not working, it is possible to directly launch a game from command line:&lt;br /&gt;
&lt;br /&gt;
/usr/games/pcsx/pcsx /game_dir/your_game.zip&lt;br /&gt;
&lt;br /&gt;
Default keymap is visible in /usr/games/pcsx/.pcsx/pcsx.cfg&lt;br /&gt;
&lt;br /&gt;
On N900, to activate boost mode (720MHz or 805MHz):&lt;br /&gt;
&lt;br /&gt;
As root:&lt;br /&gt;
&lt;br /&gt;
echo 1 &amp;gt; /sys/devices/system/cpu/cpufreq/boost&lt;br /&gt;
&lt;br /&gt;
echo 720000 &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
&lt;br /&gt;
* Implement sane default keys for the devices &lt;br /&gt;
&lt;br /&gt;
* Try to implement Maemo 5 -touch- UI&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Extras]]&lt;/div&gt;</summary>
		<author><name>Arno11</name></author>
	</entry>
	<entry>
		<id>https://leste.maemo.org/index.php?title=Extras/pcsx_rearmed&amp;diff=1675</id>
		<title>Extras/pcsx rearmed</title>
		<link rel="alternate" type="text/html" href="https://leste.maemo.org/index.php?title=Extras/pcsx_rearmed&amp;diff=1675"/>
		<updated>2024-06-07T21:37:40Z</updated>

		<summary type="html">&lt;p&gt;Arno11: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Package&lt;br /&gt;
|status=Working&lt;br /&gt;
|devices=[[Nokia_N900]],[[Motorola_Droid_4]]&lt;br /&gt;
|date_in_repo=2024-05-27&lt;br /&gt;
|maemo_leste_repo=https://github.com/maemo-leste-extras/pcsx_rearmed&lt;br /&gt;
|category=Games&lt;br /&gt;
|packager=[[User:Arno11]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Pcsx_rearmed is a Playstation 1 emulator running on Maemo-Leste.&lt;br /&gt;
&lt;br /&gt;
It works only on Nokia N900 and Motorola Droid 4 at the moment (thanks to their physical keyboards).&lt;br /&gt;
&lt;br /&gt;
The emulator uses a generic GTK UI: The old maemo 5 touch GUI is not working at the moment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:2024-06-07-064926 800x480 scrot.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Playstation games are playable, with sound and input, running at 25-30 fps on N900 with frameskip=1 usually but really depending of the game and if it is a NSCT or PAL version.&lt;br /&gt;
&lt;br /&gt;
[[File:2024-06-07-065751 800x480 scrot.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Without frameskip and sound, games run usually  at 50 or 60 fps with default CPU frequencies and buildin_gpu. But again, it is really depending of the game: some of them are &#039;locked&#039; at 24 fps (PAL) or 30 fps (NSCT).&lt;br /&gt;
&lt;br /&gt;
On N900, boost mode (overclock) is recommended if you play with sound. Otherwise it works well with stock frequencies, specially with the buildin_gpu.&lt;br /&gt;
&lt;br /&gt;
[[File:2024-06-07-065424 800x480 scrot.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Default configuration is already optimised without sound and 25-30 fps. Like other emulators hildon compositing must be deactivated while playing, using Ctl+Shift+N.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Keymapping and all other parameters can be modified directly in the user config file available in /usr/games/pcsx/.pcsx/pcsx.cfg&lt;br /&gt;
&lt;br /&gt;
Only buildin_gpu and gpu_unai are working (but really well.&lt;br /&gt;
&lt;br /&gt;
It is possible (not all games) to speed up and increase framerate using the &#039;fast forward&#039; option.&lt;br /&gt;
&lt;br /&gt;
[[File:2024-06-07-100831 800x480 scrot.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
WARNING: on N900 in the GUI, &#039;enter menu&#039; is associated to &#039;escape&#039; key. &lt;br /&gt;
&#039;back&#039; is associated to &#039;e&#039; key (hardcoded).&lt;br /&gt;
&lt;br /&gt;
Almost all configuration parameters are available from the GUI.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Tested Playstation/Psx/PsOne games===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Driver, MetalSlugX, Ace Combat 3, Spyro the Dragon, Final Fantasy 8, Legend of Mana, Medal of Honor, Metal Gear Solid, Gran Turismo, Tekken 3, V-Rally, Moto Racer 2, ISS Pro Evolution.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:2024-06-07-065424 800x480 scrot.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:2024-06-07-070020 800x480 scrot.png|500px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Tips ==&lt;br /&gt;
&lt;br /&gt;
If (for some reason) the GUI is not working, it is possible to directly launch a game from command line:&lt;br /&gt;
&lt;br /&gt;
/usr/games/pcsx/pcsx /game_dir/your_game.zip&lt;br /&gt;
&lt;br /&gt;
Default keymap is visible in /usr/games/pcsx/.pcsx/pcsx.cfg&lt;br /&gt;
&lt;br /&gt;
On N900, to activate boost mode (720MHz or 805MHz):&lt;br /&gt;
&lt;br /&gt;
As root:&lt;br /&gt;
&lt;br /&gt;
echo 1 &amp;gt; /sys/devices/system/cpu/cpufreq/boost&lt;br /&gt;
&lt;br /&gt;
echo 720000 &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
&lt;br /&gt;
* Implement sane default keys for the devices &lt;br /&gt;
&lt;br /&gt;
* Try to implement Maemo 5 -touch- UI&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Extras]]&lt;/div&gt;</summary>
		<author><name>Arno11</name></author>
	</entry>
</feed>