N900 The Perfect Setup

Line 49: Line 49:
Download the firmware flasher:
Download the firmware flasher:
-
[http://tablets-dev.nokia.com/maemo-dev-env-downloads.php Flasher & SDK Downloads]
+
[http://skeiron.org/tablets-dev/maemo-dev-env-downloads/ Flasher & SDK Downloads]
Download the latest official Nokia Firmware Images for your N900:
Download the latest official Nokia Firmware Images for your N900:
Line 84: Line 84:
* Add the Extras-Testing repository to the Hildon Application Managers catalog
* Add the Extras-Testing repository to the Hildon Application Managers catalog
   name: Maemo extras-testing
   name: Maemo extras-testing
-
   uri: http://repository.maemo.org/extras-testing/
+
   uri: deb http://skeiron.org/repo/repository.maemo.org/extras-testing/ fremantle free non-free
   dist: fremantle
   dist: fremantle
   components: free non-free
   components: free non-free
Line 90: Line 90:
* Add the Extras-Devel repository as well
* Add the Extras-Devel repository as well
   name: Maemo extras-development
   name: Maemo extras-development
-
   uri: http://repository.maemo.org/extras-devel/
+
   uri: http://extras-devel.merlin1991.at/ fremantle free non-free
   dist: fremantle
   dist: fremantle
   components: free non-free
   components: free non-free
Line 110: Line 110:
= Upgrade to CSSU-thumb =
= Upgrade to CSSU-thumb =
-
{{info}} cssu-thumb contains a kernel based on kp51r1, therefore you automatically benefit from all kernel-power features (undervolting, overclocking, framebuffer, ...)
+
[http://wiki.maemo.org/CSSU What's CSSU?]
-
3.1 Repositories
+
[http://talk.maemo.org/showthread.php?t=84829 What's thumb2 ISA?]
-
Disable extras-testing and extras-devel as they will be replaced by their CSSU-compiled counterparts. Make sure Nokia and Maemo Extras repositories are enabled though.
+
-
3.2 Installing CSSU-Thumb
+
{{info}} cssu-thumb contains a kernel based on kp51r1, therefore you automatically benefit from all kernel-power features (undervolting, overclocking, framebuffer, ...). See [http://wiki.maemo.org/Kernel_Power Kernel Power Wiki] and [http://talk.maemo.org/showthread.php?t=85665 Kernel Power 51r1 on tmo]
-
Visit this link using your N900s web browser: http://maemo.merlin1991.at/cssu/community-thumb/community-thumb-fremantle.install and confirm the prompts displayed in HAM
+
-
Launch community SSU from applications menu.
+
== Repositories ==
-
Install the proposed updates.
+
Disable extras-testing - it will be replaced by its thump-compiled counterpart from the CSSU repository. Make sure Nokia and Maemo Extras repositories are enabled though.
 +
 
 +
To avoid thumb-compiled binaries being overwritten by upgrades from non-thumb repositories use the following /etc/apt/preferences file
 +
  Package: *
 +
  Pin: release a=community-thumb
 +
  Pin-Priority: 700           
 +
               
 +
  Package: *     
 +
  Pin: release a=Extras-devel-light
 +
  Pin-Priority: 500               
 +
               
 +
  Package: *     
 +
  Pin: release l=Extras
 +
  Pin-Priority: 550   
 +
               
 +
  Package: *     
 +
  Pin: release l=community-testing
 +
  Pin-Priority: 600
 +
 
 +
== Remove unneeded software ==
 +
[http://talk.maemo.org/showthread.php?s=bcad4cd2389b67dd0911decdebb4b503&t=82641 tmo thread]
 +
 
 +
  apt-get remove --purge hildon-theme-beta osso-chess-ui gnuchess osso-graphics-game-chess osso-lmarbles osso-graphics-game-lmarbles osso-sounds-game-chess maemoblocks ap-installer amazon-installer foreca-installer facebook-installer skype-installer dtg-installer tutorial-home-applet osso-tutorial-l10n-engb osso-tutorial-l10n-ptpt osso-tutorial-l10n-frca osso-tutorial-l10n-nlnl osso-tutorial-l10n-cscz osso-tutorial-l10n-itit osso-tutorial-l10n-eses osso-tutorial-l10n-svse osso-tutorial-l10n-frfr osso-tutorial-l10n-dede osso-tutorial-l10n-fifi osso-tutorial-l10n-nono osso-tutorial-l10n-esmx osso-tutorial-l10n-enus osso-tutorial-l10n-ruru osso-tutorial-l10n-mr0 osso-tutorial-l10n-plpl cherry osso-systemui-splashscreen sharing-service-flickr sharing-service-ovi chinese-font google-search-widget tutorial-home-applet osso-mahjong osso-graphics-game-mahjong osso-sounds-game-mahjong ovi-promotion-widget
 +
 
 +
== Installing CSSU-Thumb ==
 +
* Visit this link using your N900s web browser: http://maemo.merlin1991.at/cssu/community-thumb/community-thumb-fremantle.install and confirm the prompts displayed in HAM
 +
 
 +
* Launch community SSU from applications menu.
 +
* Install the proposed updates.
 +
 
 +
= Essential software packages =
 +
The following is a list of applications which (IMHO) constitute a reasonable base set
 +
apt-get install backupmenu busybox-power cryptsetup tracker-extractor-vorbis rawcam gstreamer0.10-plugins-good-extra-formats xournal filebox fm-boost fmradio recaller swappolube tracker-cfg flashlight-extra-gtk vim flashlight-applet cal-home-widget adflashblock-css kernel-power-settings cssufeatures catoriseplus ttf-nokiapure mce-ledpattern
 +
 
 +
== Install non-optified cryptsetup ==
 +
  wget http://maemo.merlin1991.at/apt-mirror/extras-devel/pool/fremantle/free/c/cryptsetup/cryptsetup_1.0.4%2bsvn26-3_armel.deb
 +
  dpkg -i cryptsetup_1.0.4%2bsvn26-3_armel.deb
 +
  echo "cryptsetup hold" | dpkg --set-selections
 +
 
 +
== Install & configure bootloader ==
 +
  apt-get install u-boot-flasher kernel-cssu-bootimg
 +
  ln -s /etc/bootmenu.d/20-Maemo5-kernel-cssu-2.6.28.10-cssu3.item /etc/default/bootmenu.item
 +
  u-boot-update-bootmenu
 +
 
 +
== USB Host mode ==
 +
[http://talk.maemo.org/showthread.php?t=85658 Host mode announcement]
 +
  wget http://atrey.karlin.mff.cuni.cz/~pali/usbmode/usbmode_1.0-3_armel.deb
 +
  dpkg -i usbmode_1.0-3_armel.deb
 +
 
 +
USB mode can be defined through the status menu. To connect USB peripherals use a [http://www.cablechick.com.au/product_images/usb-adaptor-a-female-to-a.jpg USB A-to-A adapter]
 +
 
 +
== Configure openmediaplayer ==
 +
[http://wiki.maemo.org/Open_Media_Player OMP Wiki]
 +
 
 +
Get a thumb-compiled version of openmediaplayer [http://www69.zippyshare.com/v/23534616/file.html OMP-thumb download]
 +
dpkg -i openmediaplayer_20121220-1+thumb0_armel.deb
 +
 
 +
As [[root]], edit file:
 +
:''/usr/share/dbus-1/services/com.nokia.mediaplayer.service''
 +
so the line:
 +
<pre>Exec=/usr/bin/mediaplayer</pre>
 +
 
 +
...becomes:
 +
<pre>Exec=/usr/bin/openmediaplayer</pre>
 +
 
 +
This will replace execution of '''MP''' binary with '''OMP''' one - without physically replacing files, so you can revert back to '''MP''' by reverting changes.
 +
 
 +
== Faking Flash Player 12 ==
 +
[http://talk.maemo.org/showpost.php?p=1276589&postcount=2219 Flash Player on tmo]
 +
 
 +
Get [http://www.sendspace.pl/download/YTo0OntzOjc6ImRhdGVfaW4iO2k6MTM0Mzc4MTUxMTtzOjU6InRpdGxlIjtzOjA6IiI7czo5OiJmaWxlX25hbWUiO3M6MjQ6ImFkb2JlLWZsYXNocGxheWVyLTEwLmRlYiI7czo1OiJ0b2tlbiI7czoyMzoiY2MzM2I0MDcyZTgyM2VlMTU4MDkzOWIiO30dfASDF34vasd3245bvs flashplayer 10 binaries] for maemo.apt-get remove --purge adobe-flashplayer
 +
apt-get install hexedit
 +
dpkg -i adobe-flashplayer-10.deb
 +
hexedit /usr/lib/browser/plugins/libflashplayer.so
 +
5. Once in Hexedit, press CTRL+S and type in 31302e31 and press enter, the string you've just found need to be changed to 31322e31
 +
6. Now, press CTRL+S, type "y" and search for 31302c31 and change it to 31322c31
 +
7.Press CTRL+S then "y" again.
 +
Close terminal and enjoy new faked v12.1.98.88 flash player

Revision as of 21:39, 30 January 2013

Contents

Introduction

This page serves the purpose of assembling a complete and current howto-guide for the perfect N900 setup. The initial information here is based on my personal experience and the rich trove of experience which is talk.maemo.org. Please keep this page alive by adding your improvements and keeping it up to date as Maemo evolves.

Recommended hardware

  • A Nokia N900, obviously
  • SanDisk Ultra 32GB Class 10 / UHS-1 SDHC Card (SU32-G)
  • PolarCell 1520 mAh battery
  • Standalone battery charger
  • USB A-A adapter
  • (Linux box)

Hardware Specifications

NAND Layout

 dev    size   erasesize  name
 mtd0: 00020000 00020000 "bootloader"
 mtd1: 00060000 00020000 "config"
 mtd2: 00040000 00020000 "log"
 mtd3: 00200000 00020000 "kernel"
 mtd4: 00200000 00020000 "initfs"
 mtd5: 0fb40000 00020000 "rootfs"

eMMC Partition Layout

 dev         size       fs    mountpoint
 mmcblk0p1   27648MiB   vfat  /home/user/MyDocs
 mmcblk0p2    2048MiB   ext2  /home
 mmcblk0p3     768MiB   swap

Detailed specs

N900 battery options

Hardware modifications

/* TODO: USB pre-broken fix */

[1] [2]

Initial setup

Everything about Firmware Flashing


Download flasher from the repositories

/* TODO: Use open source flasher */

Download the firmware flasher: Flasher & SDK Downloads

Download the latest official Nokia Firmware Images for your N900: Firmware Image Downloads

 RX-51_2009SE_10.2010.13-2.VANILLA_PR_EMMC_MR0_ARM.bin
 md5sum: 488809ff96a0a05479d692e9f77aeb4f
 RX-51_2009SE_20.2010.36-2_PR_COMBINED_MR0_ARM.bin
 md5sum: b9f8690318a3be61767826d15b8c1784

Flashing the device

The following flashing procedure has proven the most stable to me:

File:warning.pngAlways use a fully charged battery!

  • Turn your device off, disconnect USB
  • (As root) flash the FIASCO firmware image:
 flasher-3.5 -F RX-51_2009SE_20.2010.36-2_PR_COMBINED_MR0_ARM.bin -f
  • When you get "No suitable USB device found" connect your N900 through USB.
  • Wait for the flashing to finish.

File:warning.png Don't reboot

  • Flash original eMMC image:
 flasher-3.5 -F RX-51_2009SE_20.2010.36-2_PR_COMBINED_MR0_ARM.bin -f
  • Wait for the flashing to finish.
  • Reboot the device by _reinserting_ the battery

Upon first login, enter your locale settings (Timezone, local time, etc.).

Run latest official Nokia SSU (upgrades your device firmware to V1.3.1) by launching App manager / Update from the applications menu.

Getting root access

1001 ways of becoming root

  • Add the Extras-Testing repository to the Hildon Application Managers catalog
 name: Maemo extras-testing
 uri: deb http://skeiron.org/repo/repository.maemo.org/extras-testing/ fremantle free non-free
 dist: fremantle
 components: free non-free
  • Add the Extras-Devel repository as well
 name: Maemo extras-development
 uri: http://extras-devel.merlin1991.at/ fremantle free non-free
 dist: fremantle
 components: free non-free
  • Disable OVI repository (conflicts with CSSU)
  • Wait for repository update to finish (Hildon Application Manager is slooow) and install 'rootsh' from the system section.
  • To get remote access over the network (way more comfy) install SSH server by launching XTerminal from the application menu and running:
 sudo gainroot
 apt-get install openssh

You will be asked for your new root password. /*TODO: Change PW hash to enable passwords > 8 chars */

  • Finally launch xterm and run
 ifconfig wlan0
  • Write down the IP address - from now on you can use the SSH client of your choice to connect to your favorite pocket computer - enjoy!

Upgrade to CSSU-thumb

What's CSSU?

What's thumb2 ISA?

File:info.png cssu-thumb contains a kernel based on kp51r1, therefore you automatically benefit from all kernel-power features (undervolting, overclocking, framebuffer, ...). See Kernel Power Wiki and Kernel Power 51r1 on tmo

Repositories

Disable extras-testing - it will be replaced by its thump-compiled counterpart from the CSSU repository. Make sure Nokia and Maemo Extras repositories are enabled though.

To avoid thumb-compiled binaries being overwritten by upgrades from non-thumb repositories use the following /etc/apt/preferences file

 Package: *
 Pin: release a=community-thumb
 Pin-Priority: 700             
                
 Package: *       
 Pin: release a=Extras-devel-light
 Pin-Priority: 500                
                
 Package: *       
 Pin: release l=Extras
 Pin-Priority: 550    
                
 Package: *       
 Pin: release l=community-testing
 Pin-Priority: 600

Remove unneeded software

tmo thread

 apt-get remove --purge hildon-theme-beta osso-chess-ui gnuchess osso-graphics-game-chess osso-lmarbles osso-graphics-game-lmarbles osso-sounds-game-chess maemoblocks ap-installer amazon-installer foreca-installer facebook-installer skype-installer dtg-installer tutorial-home-applet osso-tutorial-l10n-engb osso-tutorial-l10n-ptpt osso-tutorial-l10n-frca osso-tutorial-l10n-nlnl osso-tutorial-l10n-cscz osso-tutorial-l10n-itit osso-tutorial-l10n-eses osso-tutorial-l10n-svse osso-tutorial-l10n-frfr osso-tutorial-l10n-dede osso-tutorial-l10n-fifi osso-tutorial-l10n-nono osso-tutorial-l10n-esmx osso-tutorial-l10n-enus osso-tutorial-l10n-ruru osso-tutorial-l10n-mr0 osso-tutorial-l10n-plpl cherry osso-systemui-splashscreen sharing-service-flickr sharing-service-ovi chinese-font google-search-widget tutorial-home-applet osso-mahjong osso-graphics-game-mahjong osso-sounds-game-mahjong ovi-promotion-widget

Installing CSSU-Thumb

  • Launch community SSU from applications menu.
  • Install the proposed updates.

Essential software packages

The following is a list of applications which (IMHO) constitute a reasonable base set

apt-get install backupmenu busybox-power cryptsetup tracker-extractor-vorbis rawcam gstreamer0.10-plugins-good-extra-formats xournal filebox fm-boost fmradio recaller swappolube tracker-cfg flashlight-extra-gtk vim flashlight-applet cal-home-widget adflashblock-css kernel-power-settings cssufeatures catoriseplus ttf-nokiapure mce-ledpattern

Install non-optified cryptsetup

 wget http://maemo.merlin1991.at/apt-mirror/extras-devel/pool/fremantle/free/c/cryptsetup/cryptsetup_1.0.4%2bsvn26-3_armel.deb
 dpkg -i cryptsetup_1.0.4%2bsvn26-3_armel.deb
 echo "cryptsetup hold" | dpkg --set-selections

Install & configure bootloader

 apt-get install u-boot-flasher kernel-cssu-bootimg
 ln -s /etc/bootmenu.d/20-Maemo5-kernel-cssu-2.6.28.10-cssu3.item /etc/default/bootmenu.item
 u-boot-update-bootmenu

USB Host mode

Host mode announcement

 wget http://atrey.karlin.mff.cuni.cz/~pali/usbmode/usbmode_1.0-3_armel.deb
 dpkg -i usbmode_1.0-3_armel.deb

USB mode can be defined through the status menu. To connect USB peripherals use a USB A-to-A adapter

Configure openmediaplayer

OMP Wiki

Get a thumb-compiled version of openmediaplayer OMP-thumb download

dpkg -i openmediaplayer_20121220-1+thumb0_armel.deb

As root, edit file:

/usr/share/dbus-1/services/com.nokia.mediaplayer.service

so the line:

Exec=/usr/bin/mediaplayer

...becomes:

Exec=/usr/bin/openmediaplayer

This will replace execution of MP binary with OMP one - without physically replacing files, so you can revert back to MP by reverting changes.

Faking Flash Player 12

Flash Player on tmo

Get flashplayer 10 binaries for maemo.apt-get remove --purge adobe-flashplayer apt-get install hexedit dpkg -i adobe-flashplayer-10.deb

hexedit /usr/lib/browser/plugins/libflashplayer.so

5. Once in Hexedit, press CTRL+S and type in 31302e31 and press enter, the string you've just found need to be changed to 31322e31 6. Now, press CTRL+S, type "y" and search for 31302c31 and change it to 31322c31 7.Press CTRL+S then "y" again. Close terminal and enjoy new faked v12.1.98.88 flash player