summaryrefslogtreecommitdiff
path: root/docs/wiki/nokia-rx51-(Nokia-N900)
diff options
context:
space:
mode:
authorYuval Adam <_@yuv.al>2017-08-07 22:05:24 +0300
committerYuval Adam <_@yuv.al>2017-08-07 22:05:24 +0300
commit0c1370b5f1b3e8abc934ea913a4377f05f32e4a9 (patch)
tree64822a223696279b0869417a59a8112a7de5ad66 /docs/wiki/nokia-rx51-(Nokia-N900)
parent91d00222d692b80a8eb22f0f193479545846ac89 (diff)
Initial static build
Diffstat (limited to 'docs/wiki/nokia-rx51-(Nokia-N900)')
-rw-r--r--docs/wiki/nokia-rx51-(Nokia-N900)/index.html146
1 files changed, 146 insertions, 0 deletions
diff --git a/docs/wiki/nokia-rx51-(Nokia-N900)/index.html b/docs/wiki/nokia-rx51-(Nokia-N900)/index.html
new file mode 100644
index 0000000..479e094
--- /dev/null
+++ b/docs/wiki/nokia-rx51-(Nokia-N900)/index.html
@@ -0,0 +1,146 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+
+ <title>postmarketOS</title>
+
+ <meta name="description" content="Aiming for a 10 year life-cycle for smartphones">
+ <meta name="keywords" content="postmarketOS">
+
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <meta name="robots" content="all">
+
+ <link rel="canonical" href="https://postmarketos.org/wiki/nokia-rx51-(Nokia-N900)/">
+
+ <link href="/static/css/tachyons.min.css" rel="stylesheet">
+ <link href="/static/css/main.css" rel="stylesheet">
+ </head>
+
+ <body>
+ <div class="mw7 center">
+ <div class="cf ph2-ns">
+ <a class="title" href="/">
+ <h1 class="f2 lh-title">
+ <img src="/static/img/recycle.png"></img>
+ <span>postmarketOS</span>
+ </h1>
+ </a>
+ <div class="menu">
+ <ul>
+ <li><a href="/">Home</a></li>
+ <li><a href="/wiki/">Wiki</a></li>
+ <li><a href="/blog/">Blog</a></li>
+ </ul>
+ </div>
+
+<h1>nokia rx51 (Nokia N900)</h1>
+<h3>Contributors</h3>
+<ul>
+<li>MartijnBraam</li>
+<li>craftyguy</li>
+</ul>
+<h3>What works</h3>
+<ul>
+<li>Booting the system</li>
+<li>Kernel log to the display</li>
+<li>Framebuffer graphics</li>
+<li>Unlocking the root partition using the keyboard</li>
+<li>Display Backlight control</li>
+<li>Wayland on framebuffer</li>
+<li>Module loading</li>
+<li>Wifi (see Additional Info below)</li>
+<li>Notification led</li>
+<li>Audio playback</li>
+<li>Keyboard backlight (see Additional Info below)</li>
+<li>Battery capacity reporting (see Additional Info below)</li>
+</ul>
+<h3>What does not work</h3>
+<ul>
+<li>Virtual terminal keymap is incorrect, the shift key doesn't allow entering numbers</li>
+<li>Both cameras</li>
+</ul>
+<h3>Links</h3>
+<ul>
+<li><a href="https://github.com/postmarketOS/pmbootstrap/tree/master/aports/device-nokia-rx51">Device package</a></li>
+<li><a href="https://kernel.org">Kernel source</a></li>
+</ul>
+<h3>Additional info</h3>
+<ul>
+<li>Martijn's N900 has uboot installed a long time ago, I'm using sdcard boot from the bootmenu shell using <code>run sdboot</code></li>
+<li>The <a href="https://neo900.org/">Neo900</a> (still in development) will upgrade the hardware inside of the N900, and has some nice features such as hardware sandboxing the modem.</li>
+</ul>
+<h4>Wifi</h4>
+<p>The <code>linux-firmware</code> package is required to provide the wl1251 firmware necessary for initializing the wifi device. (<a href="https://github.com/postmarketOS/pmbootstrap/pull/158">#158</a>)</p>
+<p>Once the device has been successfully initialized, enable it:</p>
+<pre class="codehilite"><code>$ sudo ip link set wlan0 up
+$ sudo iw wlan0 set type managed</code></pre>
+
+
+<p>Configure wpa_supplicant (only necessary on encrypted networks):</p>
+<pre class="codehilite"><code>$ sudo su -
+# wpa_passphrase $YOUR_SSID &gt; /etc/wpa_supplicant/wlan0.conf
+&lt;enter passphrase here and press Enter&gt;
+# exit</code></pre>
+
+
+<p>Connect to network using wpa_supplicant:</p>
+<pre class="codehilite"><code>$ sudo wpa_supplicant -Dwext -i wlan0 -c /etc/wpa_supplicant/wlan0.conf</code></pre>
+
+
+<p>If your network uses DHCP, start the DHCP client:</p>
+<pre class="codehilite"><code>$ sudo udhcpc -i wlan0</code></pre>
+
+
+<h4>Keyboard Backlight</h4>
+<p>There are 6 keyboard backlight LEDs that can be adjusted, they are found under <code>/sys/class/leds/lp5523:kb{1-6}</code>. To adjust brightness, write a value, $VAL between 0 and 255, to the <code>brightness</code> parameter as the root user:</p>
+<pre class="codehilite"><code>for i in $(seq 1 6);
+ do echo $VAL &gt; /sys/class/leds/lp5523\:kb$i/brightness
+done</code></pre>
+
+
+<h4>Boot partition within postmarketos</h4>
+<p>The boot partition can be accessed within postmarketos by mounting <code>/dev/dm-0</code>. This allows performing kernel updates by installing the <code>linux-nokia-rx51</code> apk after mounting <code>/dev/dm-0</code> to <code>/boot</code>.</p>
+<h4>Display</h4>
+<p>With DRM enabled (<a href="https://github.com/postmarketOS/pmbootstrap/pull/197">#197</a>), the display can be managed at this location: <code>/sys/devices/platform/omapdrm.0/graphics/fb0/</code></p>
+<h4>Keyboard layout in console</h4>
+<p>In order to set the keyboard layout for the virtual console (e.g. to take advantage of number keys on the N900 keyboard), obtain your desired language keymap file for the RX-51, <a href="https://raw.githubusercontent.com/archlinuxarm-n900/n900-keymaps/master/rx51_us.map">such as this one.</a>. (TODO: Need to pull 'official' vconsole keymaps from Maemo5 if they exist..).</p>
+<p>On the N900, install <code>kbd-bkeymaps</code>, either by using <code>pmbootstrap install --add kbd-bkeysmaps</code> on the host system or by running <code>apk add kbd-bkeysmaps</code> on the device itself.</p>
+<p>The keymap must be in binary format, bmap. This can be accomplished using the <code>loadkeys</code> tool:</p>
+<pre class="codehilite"><code class="language-bash">$ apk add kbd kbd-bkeymaps
+$ loadkeys -b rx51_us.map &gt; rx51_us.bmap
+$ gzip rx51_us.bmap</code></pre>
+
+
+<p>Compress it and copy it to <code>/usr/share/bkeymaps/us/</code> on the N900.</p>
+<p>Log into the N900, and run <code>sudo setup-keymap</code>, then select <code>us</code> and finally <code>rx51_us</code>.</p>
+<h4>Battery Capacity Reporting</h4>
+<p>The current battery capacity can be found under <code>/sys/class/power_supply/bq27200-0/capacity</code>, and is represented as a percentage. For example, a value of <code>11</code> equates to <code>11%</code>. If <code>capacity</code> does not exist or contains erroneous information, then your battery needs to be calibrated first. To calibrate the battery:</p>
+<p>1) Charge it up fully, using a wall power adapter.</p>
+<p>2) Once it is charged up, power on the device</p>
+<p>3) Unplug the device and allow the battery to run all the way down until it powers off. This may take quite a while to happen (&gt;24hrs, but can be made shorter by running a CPU intensive workload)</p>
+<p>4) When device powers off, plug it back into wall adapter and allow to charge up fully again. The battery and charging chip should now be calibrated.</p>
+<h3>Helpful Links for Porting</h3>
+<ul>
+<li>
+<p><a href="https://neo900.org/stuff/block-diagrams/n900/n900.html">Device schematic</a></p>
+</li>
+<li>
+<p><a href="http://plan9.stanleylieber.com/hardware/n900/n900.schematics.pdf">Very detailed schematic</a></p>
+</li>
+<li>
+<p><a href="https://github.com/archlinuxarm-n900/alarm-n900/wiki/Hardware-support">Arch Linux ARM - N900 hardware components list</a></p>
+</li>
+<li>
+<p><a href="http://mlab.taik.fi/paja/?p=1263">N900 sensor access in Maemo</a></p>
+</li>
+<li>
+<p><a href="http://natisbad.org/N900/n900-commented-hardware-specs.html">Hardware component specs / list</a></p>
+</li>
+</ul>
+
+ </div>
+ </div>
+ </body>
+</html> \ No newline at end of file