<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://maemo.octonezd.me/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=146.90.22.172</id>
	<title>Maemo Wiki Mirror - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://maemo.octonezd.me/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=146.90.22.172"/>
	<link rel="alternate" type="text/html" href="https://maemo.octonezd.me/index.php/Special:Contributions/146.90.22.172"/>
	<updated>2026-04-22T18:06:39Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://maemo.octonezd.me/index.php?title=Gentoo/N900&amp;diff=12406</id>
		<title>Gentoo/N900</title>
		<link rel="alternate" type="text/html" href="https://maemo.octonezd.me/index.php?title=Gentoo/N900&amp;diff=12406"/>
		<updated>2014-01-03T20:25:26Z</updated>

		<summary type="html">&lt;p&gt;146.90.22.172: /* Known issues */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the official page for the unofficial port of Gentoo to N900 internet tablets.&lt;br /&gt;
&lt;br /&gt;
If you have any questions/troubles, you can find me on freenode [irc://chat.freenode.net/maemo #maemo] and [irc://chat.freenode.net/gentoo-embededded #gentoo-embedded] ([http://webchat.freenode.net/?channels=%23Maemo,%23Gentoo-Embedded webchat]).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bootable with X, WiFi, SMS, and GPRS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Overview / Todo list ==&lt;br /&gt;
* &amp;lt;s&amp;gt;Main display&amp;lt;/s&amp;gt;&lt;br /&gt;
* Battery charger daemon (or kernel integration)&lt;br /&gt;
* &amp;lt;s&amp;gt;Keyboard (X11)&amp;lt;/s&amp;gt;&lt;br /&gt;
* &amp;lt;s&amp;gt;GPRS/UMTS data connections&amp;lt;/s&amp;gt;&lt;br /&gt;
** &amp;lt;s&amp;gt;Integrated with Gentoo network subsystems&amp;lt;/s&amp;gt;&lt;br /&gt;
* &amp;lt;s&amp;gt;SMS&amp;lt;/s&amp;gt;&lt;br /&gt;
* Audio output (NOT SAFE: see highpass filter)&lt;br /&gt;
* Voice calls&lt;br /&gt;
** Cellular&lt;br /&gt;
** Ring/vibrate&lt;br /&gt;
** SIP&lt;br /&gt;
** XMPP&lt;br /&gt;
* &amp;lt;s&amp;gt;Front camera&amp;lt;/s&amp;gt;&lt;br /&gt;
** Camera button&lt;br /&gt;
** Autofocus&lt;br /&gt;
* Usable GUI&lt;br /&gt;
** Razor-qt?&lt;br /&gt;
** KDE Plasma Active?&lt;br /&gt;
* Video calls (webcam)&lt;br /&gt;
** Skype support?&lt;br /&gt;
* Flashlight (SAFETY RESTRICTIONS NEEDED)&lt;br /&gt;
* GPS (gpsd driver)&lt;br /&gt;
** Road navigation&lt;br /&gt;
** Dead reckoning w/ accelerometers?&lt;br /&gt;
** [http://talk.maemo.org/showthread.php?t=72497 Cellular]&lt;br /&gt;
* [https://gitorious.org/community-ssu/maemo-tvout-control/trees/master/src TV out]&lt;br /&gt;
* FM transmitter&lt;br /&gt;
* Keyboard (console)&lt;br /&gt;
* Bluetooth&lt;br /&gt;
** Headset&lt;br /&gt;
** GPS&lt;br /&gt;
** ??&lt;br /&gt;
* Infrared transmitter&lt;br /&gt;
* 3D acceleration&lt;br /&gt;
* FM receiver&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
=== Partitioning ===&lt;br /&gt;
&lt;br /&gt;
If you use the internal memory card, be sure to leave your Maemo partitions in the same partition order as before (unless you don&#039;t want to run Maemo anymore, of course)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Unless you&#039;re super-careful doing this, you will probably lose all the data on the partitions you change. Backup!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
First, dump your current partition layout:&lt;br /&gt;
 sfdisk -d /dev/mmcblk0 &amp;gt; ptable&lt;br /&gt;
Now, edit the ptable file with your favourite editor and load the modified one:&lt;br /&gt;
 sfdisk --no-reread /dev/mmcblk0 &amp;lt; ptable&lt;br /&gt;
&lt;br /&gt;
Here is how I partitioned my internal SSD:&lt;br /&gt;
 unit: sectors&lt;br /&gt;
 /dev/mmcblk0p1 : start=       64, size=  4194304, Id= c&lt;br /&gt;
 /dev/mmcblk0p2 : start= 56631360, size=  4194304, Id=83&lt;br /&gt;
 /dev/mmcblk0p3 : start= 60825664, size=  1572864, Id=82&lt;br /&gt;
 /dev/mmcblk0p4 : start=  4194368, size= 52436992, Id= 5&lt;br /&gt;
 /dev/mmcblk0p5 : start=  4194384, size= 20971568, Id=83&lt;br /&gt;
 /dev/mmcblk0p6 : start= 25165968, size= 31465392, Id=83&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you&#039;re more conforable with standard Linux fdisk, [https://garage.maemo.org/plugins/wiki/index.php?RepartitionInstructions&amp;amp;id=1382&amp;amp;type=g supposedly] [http://archive.debian.org/debian/pool/main/u/util-linux/util-linux_2.13.1.1-1_armel.deb the deb from Debian Lenny] works.&lt;br /&gt;
See the [http://www.gentoo.org/doc/en/handbook/handbook-arm.xml?part=1&amp;amp;chap=4#doc_chap3 official Gentoo handbook] if you need help using fdisk to edit your partition table.&lt;br /&gt;
&lt;br /&gt;
===Creating Filesystems===&lt;br /&gt;
&lt;br /&gt;
Since you are installing on a SSD that may very well queue its writes out of order, ext3 and other journaling filesystems designed for magnetic/write-in-order drives are generally a bad idea and may be very dangerous to use.&lt;br /&gt;
If you&#039;re using an old kernel, such as the original Fremantle kernel, you&#039;ll have to stick to ext2. If you are using a recent &amp;quot;power&amp;quot; kernel (or modern kernel), you can use ext4 without journal support.&lt;br /&gt;
&lt;br /&gt;
I recommend making swap on an external MicroSD so when you destroy it, it can be replaced (unlike the internal one).&lt;br /&gt;
&lt;br /&gt;
===Mounting===&lt;br /&gt;
&lt;br /&gt;
Due to Maemo using the FHS /media for other partitions, I chose to use it for the Gentoo mount too. You can use Gentoo&#039;s standard /mnt here if you want, I think.&lt;br /&gt;
&lt;br /&gt;
 mount -t ext2 /dev/mmcblk0p5 /mnt/gentoo&lt;br /&gt;
&lt;br /&gt;
===Installing Gentoo===&lt;br /&gt;
&lt;br /&gt;
Be sure your system clock is correct before proceeding. Weird things happen when it&#039;s not.&lt;br /&gt;
&lt;br /&gt;
Download [http://distfiles.gentoo.org/releases/arm/autobuilds/current-stage3-armv7a_hardfp/ the latest armv7a_hardfp stage3 from Gentoo], or, if you want to run the softfp ABI (still hardware-accelerated) for some reason (like better binary compatibility with Maemo), you can use [http://distfiles.gentoo.org/releases/arm/autobuilds/current-stage3-armv7a/ the armv7a stage3]. Note that I only run hardfp, so can&#039;t support problems specific to the softfp ABI and don&#039;t provide prebuilt binary packages for it.&lt;br /&gt;
&lt;br /&gt;
Just in case, download the .DIGESTS file too, and verify your download with:&lt;br /&gt;
 sha1sum -c *.DIGEST&lt;br /&gt;
&lt;br /&gt;
Now, proceed to unpack the stage3:&lt;br /&gt;
 cd /media/gentoo&lt;br /&gt;
 tar xvjpf stage3-*.tar.bz2&lt;br /&gt;
&lt;br /&gt;
Configure your compile options (/media/gentoo/etc/portage/make.conf) next.&lt;br /&gt;
&lt;br /&gt;
Recommended (only safe to use unmodified for hardfp ABI!):&lt;br /&gt;
 CHOST=&amp;quot;armv7a-hardfloat-linux-gnueabi&amp;quot;&lt;br /&gt;
 CFLAGS=&amp;quot;-O2 -pipe -mcpu=cortex-a8 -mfpu=neon -mfloat-abi=hard&amp;quot;&lt;br /&gt;
 CXXFLAGS=&amp;quot;${CFLAGS}&amp;quot;&lt;br /&gt;
 ASFLAGS=&amp;quot;-mcpu=cortex-a8 -mfpu=neon -mfloat-abi=hard&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # Distcc is a good idea, if you [http://www.gentoo.org/doc/en/cross-compiling-distcc.xml setup a cross-compiler on another Gentoo system]&lt;br /&gt;
 FEATURES=&amp;quot;${FEATURES} distcc&amp;quot;&lt;br /&gt;
 # MAKEOPTS -jN should probably be the number of systems in your distcc array; but never more than 2 when building KDE software (meinproc uses a lot of memory and won&#039;t be distributed)!&lt;br /&gt;
 MAKEOPTS=&amp;quot;-j2&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # Since the N900 doesn&#039;t have a lot of RAM, you&#039;ll probably need to sacrifice some CPU time to minimize memory usage&lt;br /&gt;
 LDFLAGS=&amp;quot;${LDFLAGS} -Wl,--no-keep-memory -Wl,--reduce-memory-overheads&amp;quot;&lt;br /&gt;
 CFLAGS=&amp;quot;${CFLAGS} --param ggc-min-expand=0 --param ggc-min-heapsize=32768&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 PORTAGE_NICENESS=&amp;quot;10&amp;quot;&lt;br /&gt;
 PORTAGE_IONICE_COMMAND=&amp;quot;ionice -c 3 -p \${PID}&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 PORTAGE_BINHOST=&amp;quot;http://luke.dashjr.org/programs/gentoo-n900/packages/hardfp/gcc45/&amp;quot;&lt;br /&gt;
 EMERGE_DEFAULT_OPTS=&amp;quot;--getbinpkg y&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Chroot===&lt;br /&gt;
 cp -L /etc/resolv.conf etc/&lt;br /&gt;
 mount -t proc proc proc&lt;br /&gt;
 mount -o bind /dev dev&lt;br /&gt;
 mount -t devpts devpts dev/pts&lt;br /&gt;
 env -i chroot . /bin/bash&lt;br /&gt;
 env-update&lt;br /&gt;
 source /etc/profile&lt;br /&gt;
 export PS1=&amp;quot;(chroot) $PS1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Install and configure the Portage tree, with N900 overlay===&lt;br /&gt;
 emerge --sync --quiet&lt;br /&gt;
 emerge layman&lt;br /&gt;
 layman -a n900&lt;br /&gt;
 rm /etc/make.profile&lt;br /&gt;
 ln -s /var/lib/layman/n900/profiles/default/linux/arm/10.0/n900/ /etc/make.profile&lt;br /&gt;
&lt;br /&gt;
===Configure timezone===&lt;br /&gt;
 ls /usr/share/zoneinfo&lt;br /&gt;
 cp /usr/share/zoneinfo/UTC /etc/localtime&lt;br /&gt;
 echo &amp;quot;UTC&amp;quot; &amp;gt; /etc/timezone&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Booting==&lt;br /&gt;
&lt;br /&gt;
===Configuring your kernel===&lt;br /&gt;
If you just want to use your Maemo kernel, simply copy /lib/modules/* from your Maemo partition into Gentoo (you&#039;ll need to exit the chroot first).&lt;br /&gt;
&lt;br /&gt;
However, if you want to build one yourself (required for any custom kernel modules, or non-X11 console), follow these steps:&lt;br /&gt;
 emerge fremantle-power-sources  # regular fremantle-sources is also available&lt;br /&gt;
 cd /usr/src/linux&lt;br /&gt;
 make menuconfig&lt;br /&gt;
 # (configure the kernel as you like here)&lt;br /&gt;
 make &amp;amp;&amp;amp; make modules_install&lt;br /&gt;
 # (copy arch/arm/boot/zImage to your host system to flash as the N900&#039;s kernel)&lt;br /&gt;
&lt;br /&gt;
Note that this kernel will not boot Maemo without setting up the modules on the Maemo partition. I believe this is as simple as copying the directory and running depmod on that side, but I&#039;ll have to review it before I&#039;m sure.&lt;br /&gt;
&lt;br /&gt;
You can skip the compiling (but you still need to install the sources!) if you want, by using [http://luke.dashjr.org/programs/gentoo-n900/kernels/ one of my prebuilt kernels].&lt;br /&gt;
&lt;br /&gt;
===Configuring your system etc===&lt;br /&gt;
The following steps from Gentoo&#039;s official handbook are just fine here:&lt;br /&gt;
* [http://www.gentoo.org/doc/en/handbook/handbook-arm.xml?part=1&amp;amp;chap=8 Configuring your System]&lt;br /&gt;
* [http://www.gentoo.org/doc/en/handbook/handbook-arm.xml?part=1&amp;amp;chap=9 Installing Necessary System Tools]&lt;br /&gt;
&lt;br /&gt;
===Installing N900-required stuff===&lt;br /&gt;
The n900-env metapackage should pull in all the essentials for your N900.&lt;br /&gt;
If you don&#039;t want some N900 functionality, you can change your USE flags in make.conf prior to installing it.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! USE flag !! Description&lt;br /&gt;
|-&lt;br /&gt;
| bluetooth || BlueZ and Bluetooth firmware&lt;br /&gt;
|-&lt;br /&gt;
| cellular or gps || Ofono&lt;br /&gt;
|-&lt;br /&gt;
| nokia-osso-linux || Maemo &amp;quot;bootmenu&amp;quot; compatibility&lt;br /&gt;
|-&lt;br /&gt;
| v4l || Camera firmware&lt;br /&gt;
|-&lt;br /&gt;
| wifi || Wifi firmware and tools&lt;br /&gt;
|-&lt;br /&gt;
| X || X11 drivers&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 emerge n900-env&lt;br /&gt;
&lt;br /&gt;
==X11 setup==&lt;br /&gt;
Create /etc/X11/xorg.conf with the following:&lt;br /&gt;
 Section &amp;quot;Device&amp;quot;&lt;br /&gt;
     Identifier &amp;quot;Configured Video Device&amp;quot;&lt;br /&gt;
     Driver &amp;quot;omapfb&amp;quot;&lt;br /&gt;
     Option &amp;quot;fb&amp;quot; &amp;quot;/dev/fb0&amp;quot;&lt;br /&gt;
 EndSection&lt;br /&gt;
 &lt;br /&gt;
 Section &amp;quot;InputClass&amp;quot;&lt;br /&gt;
     Identifier &amp;quot;calibration&amp;quot;&lt;br /&gt;
     MatchProduct &amp;quot;TSC2005 touchscreen&amp;quot;&lt;br /&gt;
     Option &amp;quot;Calibration&amp;quot; &amp;quot;194 3901 3739 241&amp;quot;&lt;br /&gt;
 EndSection&lt;br /&gt;
 &lt;br /&gt;
 Section &amp;quot;InputClass&amp;quot;&lt;br /&gt;
     Identifier  &amp;quot;keyboard&amp;quot;&lt;br /&gt;
     MatchProduct    &amp;quot;omap_twl4030keypad&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
     Option &amp;quot;XkbOptions&amp;quot; &amp;quot;grp:ctrl_shift_toggle&amp;quot;&lt;br /&gt;
     Option &amp;quot;XkbLayout&amp;quot; &amp;quot;nokia_vndr/rx-51(common)+nokia_vndr/rx-51(us)&amp;quot;&lt;br /&gt;
     Option &amp;quot;XkbModel&amp;quot; &amp;quot;nokia&amp;quot;&lt;br /&gt;
 EndSection&lt;br /&gt;
 &lt;br /&gt;
 Section &amp;quot;InputClass&amp;quot;&lt;br /&gt;
     Identifier &amp;quot;touchscreen&amp;quot;&lt;br /&gt;
     MatchProduct &amp;quot;TSC2005 touchscreen&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
     Driver &amp;quot;tslib&amp;quot;&lt;br /&gt;
     Option &amp;quot;EmulateRightButton&amp;quot;    &amp;quot;1&amp;quot;&lt;br /&gt;
 EndSection&lt;br /&gt;
&lt;br /&gt;
==Sound setup==&lt;br /&gt;
&lt;br /&gt;
This basically &amp;quot;just works&amp;quot;, but be careful when unmuting - it&#039;s possible to play audio that destroys the internal speakers! If you&#039;re experienced in writing highpass filters, please contact me to help resolve this.&lt;br /&gt;
&lt;br /&gt;
==Cellular setup==&lt;br /&gt;
&lt;br /&gt;
=== Install Ofono ===&lt;br /&gt;
 emerge net-misc/ofono&lt;br /&gt;
&lt;br /&gt;
===Configure GPRS networking===&lt;br /&gt;
 ln -s net.lo /etc/init.d/net.gprs0&lt;br /&gt;
Edit /etc/conf.d/net:&lt;br /&gt;
 rc_need_gprs0=&#039;ofono&#039;&lt;br /&gt;
 modem_gprs0=&#039;n9000&#039;  # The extra zero is the n900 instance number 0 :)&lt;br /&gt;
 context_apn_gprs0=&#039;epc-scpcf000.t-mobile.com&#039;  # Other providers need other APNs!&lt;br /&gt;
 context_protocol_gprs0=&#039;ipv6&#039;&lt;br /&gt;
&lt;br /&gt;
Start the GPRS interface:&lt;br /&gt;
 /etc/init.d/net.gprs0 start&lt;br /&gt;
&lt;br /&gt;
=== Send SMS ===&lt;br /&gt;
 ofono-send-sms n9000 15555551212 &#039;Hey there!&#039;&lt;br /&gt;
&lt;br /&gt;
=== Voice call ===&lt;br /&gt;
 ofono-dial-number n9000 15555551212&lt;br /&gt;
&lt;br /&gt;
Note the other end will probably get silence, and you won&#039;t hear them either.&lt;br /&gt;
I&#039;m working on an ALSA plugin to fix this.&lt;br /&gt;
&lt;br /&gt;
== WiFi setup ==&lt;br /&gt;
&lt;br /&gt;
 ln -s net.lo /etc/init.d/net.wlan0&lt;br /&gt;
Edit /etc/conf.d/net:&lt;br /&gt;
 mac_wlan0=&#039;00:1f:df:xx:xx:xx&#039;  # You MUST set this, or N900&#039;s wlan MAC won&#039;t be initialized!&lt;br /&gt;
 preferred_aps=&#039;my_wep_network my_public_network linksys etc&#039;&lt;br /&gt;
 key_my_wep_network=&#039;abcd-ef00-1234-5678-9abc-def0-12&#039;&lt;br /&gt;
 modules=&amp;quot;!wpa_supplicant&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Start the wlan interface:&lt;br /&gt;
 /etc/init.d/net.wlan0 start&lt;br /&gt;
&lt;br /&gt;
==Bluetooth setup==&lt;br /&gt;
&lt;br /&gt;
It&#039;s on my todo list, but not very high priority since I don&#039;t really use anything Bluetooth...&lt;br /&gt;
&lt;br /&gt;
==GPS setup==&lt;br /&gt;
&lt;br /&gt;
I&#039;ve reverse engineered the cellmo GPS protocols, and written [http://luke.dashjr.org/tmp/code/gps3.c a NMEA proxy] that mostly works with gpsd. When I get to properly integrating GPS support, I plan to write an actual gpsd driver so a proxy isn&#039;t needed.&lt;br /&gt;
&lt;br /&gt;
==Known problems==&lt;br /&gt;
===Webkit linking memory usage===&lt;br /&gt;
WebKit requires an absurd amount of memory to link. I build binary packages inside qemu when it needs to be bumped. I suggest you use them.&lt;br /&gt;
&lt;br /&gt;
==Modern kernel==&lt;br /&gt;
Current status: http://elinux.org/N900&lt;/div&gt;</summary>
		<author><name>146.90.22.172</name></author>
	</entry>
</feed>