Nokia N900

From Maemo Leste Wiki
Jump to: navigation, search

This page or section is a stub. Ask how you can help improve leste.maemo.org by visiting #maemo-leste, look at the bugtracker (https://github.com/maemo-leste/bugtracker) or if you are able to contribute to the current page, then you are welcome to do so.

Nokia N900
Nokia N900 - Leste pre-alpha.jpg
Manufacturer Nokia
Specifications
Features
USB (Host/OTG) Micro USB 2.0 Slave

The original Nokia N900.

Notes

  • Screen will be black for a few minutes while starting X - this is a known PowerVR issue. Just wait it out - it might freeze once more for a few minutes, but then will function OKayish
  • If your battery is not calibrated, the battery applet will not give you accurate/good data. Charge the battery fully, and then let it discharge (almost) completely.
  • Speakers are enabled by default, but don't overuse them, as you might fry them if you are not careful.

Also see: https://elinux.org/N900

Power usage right now is reported to be about 80mA, which is quite a lot, but on a good battery last for about 15 hours, this is being worked on: https://github.com/maemo-leste/bugtracker/issues/170

Status

Feature Leste supported Notes
Kernel version 4.15 Mainline + PowerVR Patches: https://github.com/maemo-leste/n9xx-linux/tree/pvr-wip
Serial Yes Requires special hardware
Charging Yes
Wireless Yes
Ethernet N/A
Bluetooth Not yet Driver problems in mainline
(Micro USB) Yes Peripheral/slave only, exposes network gadget by default. Host Untested
Keyboard Yes
Screen Yes Uses omapfb, not omapdrmfb yet
3D Acceleration WIP Works, but could be faster/better, https://github.com/maemo-leste/n9xx-xf86-video-fbdev-sgx
Touchscreen Yes Resistive
Audio Yes Everything should work (minus speaker protection), but requires complex alsa configuration
2G/3G data WIP Works with ofono; but no work has been done on any integration; see https://github.com/maemo-leste/bugtracker/issues/61 and https://github.com/maemo-leste/bugtracker/issues/76
SMS WIP Works with ofono, no UI, not enabled by default
Phone calls WIP Reported to work, no UI, poor quality, not enabled by default (might require pulseaudio audio filters)
FM Transmitter Not yet
FM Receiver Not yet Depends on Bluetooth
Accelerometer Not yet Available as input device, needs MCE work
Proximity sensor Not yet
HDMI-out N/A
TV-out Not yet Should work in kernel, didn't get it to work yet
GPS WIP Works using gps3 and gpsd

Installation

Images: http://maedevu.maemo.org/images/n900/

dd the image to an sd card. If using a Windows machine, you can use Etcher NB: Etcher does not warn you before starting the flashing operation, so please be extra careful that you choose the correct device to flash to

Then boot from the sd card using either 0xFFFF/flasher-3.5 or u-boot/bootmenu: http://talk.maemo.org/showthread.php?t=81613

U-Boot setup

1. Install "U-Boot with kernel 2.6.28-omap1"

2. Install "Linux kernel for power user (boot image for U-Boot)". This is optional, but recommended.

3. Add Maemo Leste menu item (run as root):

cat > /etc/bootmenu.d/30-maemo-leste.item << "EOF" &&
ITEM_NAME="Maemo Leste"
ITEM_KERNEL="uImage"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_FSTYPE="vfat"
EOF
u-boot-update-bootmenu

4. Reboot the device

Increase filesystem size

As of 2018/11, the latest pre-alpha image results in a 1.2GB root filesystem with about 100MB to spare. This can be extended, provided that your SD card is big enough. Perform the following steps on a Linux machine with none of the SD card's partitions mounted:

  • assumption: /dev/sda2 is Leste root partition
  • e2fsck -f /dev/sda2
  • use parted/gparted/cfdisk/... to enlarge /dev/sda2 to the desired size
  • resize2fs -p /dev/sda2
  • e2fsck -f /dev/sda2

The latest images have a script, /etc/expandcard.sh from https://github.com/maemo-leste/image-builder/blob/master/rootfs-overlay/common/etc/expandcard.sh

Serial

http://n900.elektranox.org/serial-adapter.html

http://wiki.maemo.org/N900_Hardware_Hacking#Debug_ports

Accessing MTD

List devices:

cat /proc/mtd

Mount:

apt install mtd-utils
mkdir -vp /mnt/fremantle
ubiattach -p /dev/mtd5
mount -t ubifs ubi:rootfs /mnt/fremantle