Reply
Thread Tools
Posts: 199 | Thanked: 722 times | Joined on Jan 2012 @ Finland
#1
NOTE: Repository is down, and nothing is updated for awhile. This guide is still here for a reference and archival only. I do not know if I'll return to this or not, time (and demand) will tell.

Introduction

This is the documentation part of my take on bringing the Arch Linux ARM (referred to as Alarm from now on) to your Nokia N900 device. This is not an official effort in any way, and I'm not related to Arch Linux or Alarm in any other way besides being a long time user. Please, settle down for a moment to carefully read through this post and the links I provide before plunging yourself any further.

About

https://www.archlinux.org/
a lightweight and flexible Linux® distribution that tries to Keep It Simple.
http://archlinuxarm.org/
Arch Linux ARM is a distribution of Linux for ARM computers. Our collaboration with Arch Linux brings users the best platform, newest packages, and installation support.

Arch Linux ARM carries forward the Arch Linux philosophy of simplicity and user-centrism, targeting and accommodating competent Linux users by giving them complete control and responsibility over the system. Instructions are provided to assist in navigating the nuances of installation on the varied ARM platforms; however, the system itself will offer little assistance to the user.

The entire distribution is on a rolling-release cycle that can be updated daily through small packages instead of huge updates on a defined release schedule. Most packages are unmodified from what the upstream developer originally released.
The Arch Way.
The Arch Way v2.0.
Why would I want to use Arch?

http://alarm-n900.org/

Troubleshooting

Read this and see this.

I offer you a kernel and some more or less necessary packages. Kernel is known to boot with both U-Boot and Flasher, if it does not work for you, I'm not the guy to solve it or complain about to.

Any issues you might have with kernel or packages by me, you will report to me, and me only.
Anything Alarm, not related to kernel and packages I offer, you address to Alarm forums or IRC channel.
Everything N900 specific relating to Alarm, be it help with configuration, hardware issues or such, you can, again, address to me, this thread or the so very friendly chaps at #maemo-alternatives.

Documentation

Introduction
Beginners Guide
Installation Guide
Package Manager

Credits

Pali, Freemangordon, guys at #maemo-alternatives
Developers of Arch Linux and Arch Linux ARM
Arch wiki contributors

Installation

For your convenience, a small cheatsheet to help you install Alarm.

Install U-Boot

Get U-Boot.
Get your system to boot to Maemo first. This is the most trivial part of the installation, and you need to get this done and tested before continuing. I don't want or need any reports of not being able to boot.

NOTE:
You need to use U-Boot from Extras-devel.

Partitioning

I recommend partition size over 4GB. When partitioning uSD, you don't necessarily have to create separate swap partition, it is highly recommended to use the existing swap on eMMC. For eMMC installs, I suggest creating swap partition on uSD. Filesystems of choice are ext2, ext3 or ext4. For anything else, you need a separate /boot partition with filesystem readable by U-Boot and an uinitrd, or kernel with the fs you want built in. See Partitioning.

If you find that new partition table is not getting read, try
Code:
blockdev --rereadpt /dev/mmcblk?
Option 1: Get my unofficial rootfs

http://alarm-n900.org/files/ArchLinu...-rootfs.tar.gz
ftp://bokmal.de/arch-n900/ArchLinuxA...-rootfs.tar.gz
http://www45.zippyshare.com/v/91278544/file.html

- Untar to a partition (ext2/3/4) of your choice, sync.
- Skip to "Add U-Boot menu entry".

You can use wpa_supplicant, netcfg or wifi-menu for networking. Note that you'll get random MAC for wlan interface, on every boot, by default.

Option 2: Get official rootfs

Untar Latest OMAP rootfs to your dedicated partition.
When done, sync.

Chroot into your new Alarm install

Before we can boot to the fresh system, we need to do some trivial work in chroot.
See Chroot.

Update and configure system

Choose local mirror for pacman

Add my repository to /etc/pacman.conf
Code:
[n900-base]
SigLevel = Never
Include = /etc/pacman.d/alarm-n900

[n900-extra]
SigLevel = Never
Include = /etc/pacman.d/alarm-n900
Code:
echo "Server = http://alarm-n900.org/\$repo" > /etc/pacman.d/alarm-n900
Install packages necessary to boot, and upgrade your system:
Code:
pacman -Syu linux-omap-n900 linux-headers-omap-n900 n900-firmware n900-integration
You can add any extra packages you may want to be present at your first boot to the above line. Next, Setup wlan or usb networking. See Wireless management and Netcfg. Note that you'll get random MAC for wlan interface, on every boot, by default. Finally, enable keyboard leds and display backlight:
Code:
systemctl enable n900_lights.service
Add U-Boot menu entry

Example for Arch on first partition of uSD-card:
Code:
ITEM_NAME="Arch Linux ARM"
ITEM_KERNEL="/boot/uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="ext4"
ITEM_OMAPATAG="1"
ITEM_CMDLINE="root=/dev/mmcblk0p1 rootwait init=/usr/lib/systemd/systemd omapfb.vram=0:3M,1:3M,2:3M quiet"
It might be worth noting that what Maemo sees as /dev/mmcblk1, is /dev/mmcblk0 in Alarm. Remember to run u-boot-update-bootmenu, and you're ready to boot.

Good luck and have fun!

Suggestions and tips

Persistent MAC-address for WLAN interface

If you use netcfg, and have one static connection you start at boot, you can add
Code:
PRE_UP="ip link set dev wlan0 address xx:xx:xx:xx:xx:xx"
to your netcfg profile. You can use this same command after fresh install to get connectivity, if you happen to use MAC-filtering. Interface needs to be down when you change the address.

More appropriate way to handle this would be the use of macchanger and a systemd service; see MAC Address Spoofing.

I also suggest to set MAC-address to something different than what you have in Maemo, to avoid possible problems with SSH.

Xorg

So, you want Xorg on your device? The drivers in question are xf86-video-fbdev (unaccelerated) and xf86-video-fbdev-sgx-git (accelerated). The SGX stuff is highly experimental and a WIP, it works for me but can't promise it will work for you. If you have trouble with it, revert to xf86-video-fbdev. So, pick your poison.

For input device configuration, install n900-configs.
For n900 keymaps, install xkeyboard-config-n900-git.

DSP
Code:
pacman -Syu tidsp-binaries dsp-tools gst-dsp gst-omapfb
Phone Functionality

To test the modem, install ofono-git from my repo. If you want calls, in addition to ofono you need everything from pulseaudio-n900 package group (EDIT: currently not in repo). For testing, there are command line tools in ofono-git package and you can find dbus examples via Google and from Maemo wiki. However, I don't currently recommend doing this, as it includes downgrading PA and it breaks support for it in most apps.

Modem initializing is done by systemd service n900_modem, which you need to either start and/or enable manually with systemctl.
To actually enable and online modem you need to run the very appropriately named tools from ofono called enable-modem and online-modem, in that order. Modem itself is very cunningly named /n900_0 in ofono.

FAQ

Blank screen after U-Boot
a) U-Boot is badly set up. b) You have wrong version/build of it.

Cant connect to WLAN
If you're not doing it wrong, and happen to have your AP doing MAC filtering, see Persistent MAC-address for WLAN interface.

Pacman complains about SSL/certificates
Clock is off.

No audio, wrong time, mysterious troubles, nothing works
Power off once in Alarm and boot again. I mean power off, not reboot. Alternatively, you could make a habit of going U-Boot console and typing reset every time you come from Maemo and intend to boot Alarm. Annoyance, I know, but hey, at least it works.

Last edited by Skry; 2014-04-12 at 23:01.
 

The Following 83 Users Say Thank You to Skry For This Useful Post:
-Tyler-, 15jamie20, abubakar, ahmadamaj, anthonie, ArchiMark, azad1top, Bad_Habit, Bahador, bingomion, c4rl05, caveman, Cornu, Cue, demolition, Doctor Colossus, don_falcone, ersanpermana, Estel, foobar, freemangordon, fw190, goodgod261, GrimyHR, handaxe, ibrakalifa, iDont, imo, int_ua, ja-pc, jackburton, Joseph9560, joshgillies, Keneraali, kinchan, klinglerware, kornolio, LavaCroft, lenoch, m750, malfunctioning, manojkumaru, Marcus, melisa queen, MetalGearSolid, mosiomm, munozferna, n900_, nahci13, Netweaver, nkirk, Nobless, nokiabot, panjgoori, PanzerSajt, pedsarjon, phapsubongtoi, ranbaxy, reinob, robotanarchy, samipower, saponga, shanttu, sifo, sLumPia, Sohil876, Sourav.dubey, sowwhatyoureap, starkwiz, stlpaul, strange1712, szopin, tamas2001, teddydestodes, tetris11_, theonelaw, turbovomit, Wikiwide, Wreck, xprism, Zaerc, zamorph, Älä hakkaa
int_ua's Avatar
Posts: 658 | Thanked: 1,015 times | Joined on Jul 2010 @ Kyiv, Ukraine
#2
BTW, did you try to chroot into it from Maemo?
__________________
I reckon current Russian government as fascist threat and everyone who supports it as my personal enemies. If you are one of those, prepend the info to anything else.
 

The Following User Says Thank You to int_ua For This Useful Post:
Kangal's Avatar
Posts: 1,577 | Thanked: 1,280 times | Joined on Mar 2010
#3
Anyone here uses openSUSE ?

I wish that can be had on a [ARM] tablet!

edit: fixd!

edit 2: I spoke too soon, guys its happening KDE-Linux and ARM are getting married

Last edited by Kangal; 2012-01-28 at 14:14.
 

The Following User Says Thank You to Kangal For This Useful Post:
Marcus's Avatar
Posts: 173 | Thanked: 70 times | Joined on Mar 2010 @ Denmark
#4
I'd like to thank you for the guide.

I succesfully managed to boot into ArchLinux using multiboot, but it immediatly started throwing "udevd[XXX]: unable to receive ctrl connection: Function not implemented"-errors at me.

I had to do a reflash (no problem tho' - my phone was messed up), but I'll gladly try it out once again.

One question tho': What do you mean when you say "remember to sync" after having put all the files onto the partition?
 
Posts: 199 | Thanked: 722 times | Joined on Jan 2012 @ Finland
#5
Originally Posted by Marcus View Post
I'd like to thank you for the guide.

I succesfully managed to boot into ArchLinux using multiboot, but it immediatly started throwing "udevd[XXX]: unable to receive ctrl connection: Function not implemented"-errors at me.

I had to do a reflash (no problem tho' - my phone was messed up), but I'll gladly try it out once again.

One question tho': What do you mean when you say "remember to sync" after having put all the files onto the partition?
Type sync and hit enter It makes sure that everything is written into filesystem.

Last edited by Skry; 2013-02-18 at 22:47. Reason: Removed old (mis)information
 

The Following 2 Users Say Thank You to Skry For This Useful Post:
Marcus's Avatar
Posts: 173 | Thanked: 70 times | Joined on Mar 2010 @ Denmark
#6
Originally Posted by Skry View Post
You need to install udev-oxnas in chroot.

Type sync and hit enter It makes sure that everything is written into filesystem.

I'm having some trouble installing udev-oxnas:

Code:
Nokia-N900:/# pacman -S udev-oxnas
resolving dependencies...
looking for inter-conflicts...
:: udev-oxnas and udev are in conflict. Remove udev? [y/N] y
error: failed to prepare transaction (could not satisfy dependencies)
:: mkinitcpio: requires udev>=177-1
EDIT: Seems that I just had to do a complete system upgrade first.
EDIT2: Could you post your complete /lib/modules and /lib/firmware? I'm not sure I know which files to copy and where to.

Last edited by Marcus; 2012-02-04 at 10:37.
 

The Following User Says Thank You to Marcus For This Useful Post:
ibrakalifa's Avatar
Posts: 1,411 | Thanked: 786 times | Joined on Dec 2011 @ Harmattan
#7
got an headache here, lol, nice tutorial,
__________________
~$
~#
 

The Following User Says Thank You to ibrakalifa For This Useful Post:
Posts: 31 | Thanked: 13 times | Joined on Jan 2010
#8
Hi im trying this with kernel power 50 but during boot process im getting:
Your kernel does not have devtmpfs support. This is not supported.

I've been searching a workarround for this, initscripts must be downgraded to 2011.07.3-1 version
http://dl.dropbox.com/u/9633267/init...arm.pkg.tar.xz
Now im able to get to the login but a few seconds later the system just power off.

Can u guys give a tip?
 
Posts: 2 | Thanked: 0 times | Joined on Jun 2012 @ Czech rep. / Prague
#9
Watchdog probably shuts your n900 down. WDT daemon must be started ASAP after boot, there is not much time.
Now, I can't boot and start WDT daemon too. Conflicting systemd-tools and udev-oxnas removes initscripts (...problem) when udev-oxnas is installed. But default udev stucks on boot and WDT resets my n900.
So I'm just guessing.
I need help too
 
Posts: 31 | Thanked: 13 times | Joined on Jan 2010
#10
You're correct with WDT daemon.
I have only found one work arround for conflicting systemd-tools and udev-oxnas, is not quite elegant but it does the trick. Is just pinning those packages, i added this lines to my /etc/pacman.conf:
IgnorePkg = initscripts udev-oxnas systemd-tools mkinitcpio linux-omap linux-headers-omap
(Last 2 packages are optional)
 

The Following User Says Thank You to pinoverclock For This Useful Post:
Reply

Thread Tools

 
Forum Jump


All times are GMT. The time now is 14:06.