Ubiboot

Introduction
Ubiboot is a boot manager for N9(50) devices. Using the example configuration it is fairly easy to triple-boot the device between Harmattan/Nitdroid/Nemo Operating Systems, and change kernels at will.

Ubiboot is mainly aimed at developers and advanced users, so be warned. The procedures in this guide require understanding of the structure of an *nix filesystem and knowledge to work on a shell prompt (i.e. Terminal/Command Line).

Benefits of Ubiboot N9

 * 1) You can have multiple boot Operating Systems, each with multiple optional kernels on the device.
 * 2) Selecting the boot kernel is quick and easy with the graphical touchscreen menus.
 * 3) You will not need to flash the device to install and test a new kernel, just copying the kernel and modules to the device is enough.
 * 4) You have integrated repair/maintanance mode on the device, where you can export all partitions for backup/restore to a PC automatically.
 * 5) You can telnet to the device in maintanance mode, to do any desired repair operations.

Prerequisites
To ensure that most of your efforts are focused on actual Ubiboot installation/setting up of a Triple Boot system, please make sure to fulfill the following prerequisites:

Flash the device (for a fresh start/clean state)
TIP: The sequence of flashing commands below combines the usual flashing steps found in the N9 Flashing Wiki, plus actual flashing of the Open-Mode Kernel so that upon first boot, the device will already be in "Open-Mode". If you follow this style of flashing the device, you will no longer need to delete some folders (.accounts/, ./aegis, and ./activesync) as well as no longer needing to issue the command for disabling the "Scary Warranty Warning".

Flash your device with rootfs, omit the parameter "-R" (which means "reboot")

sudo flasher -F  -f

or

sudo flasher -F  -F  -f

or Zeroing Method, which "wipes" user data and EMMC. The only thing is that this command flashes the eMMC twice and takes many hours to complete the process. You will see this notification/warning being shown in the Terminal.

sudo flasher -f -F  --erase-user-data=secure -F  --erase-mmc=secure

Next, take care to directly flash the open mode kernel (do NOT boot up, nor pull USB cable, do not wait too long) with

sudo flasher -a  -k zImage_2.6.32.54-openmode_l2fix --flash-only=kernel -f -R

(All credits to jonni/rainisto)

--peterleinchen 16:27, 25 June 2013 (UTC)

When Not Starting From A Fresh Flash
disclaimer-cal remove View-openmode rm -rf /home/user/.accounts/ rm -rf /home/user/.aegis/ rm -rf /home/user/.activesync/
 * 1) Open Terminal on the device.
 * 2) Type the following commands and press Enter after typing each command (NOTE: this will delete all configured Accounts):

Shut down the device, plug to a USB cable and to a computer, and proceed with flashing the Open-Mode kernel as mentioned above:

sudo flasher -a  -k zImage_2.6.32.54-openmode_l2fix --flash-only=kernel -f -R

Upon first boot, you may set up your Accounts (email, social) once again.

REMINDERS:


 * 1) In MS Windows, just omit the word “sudo” from the command.
 * 2) In MS Windows, the “zImage_2.6.32.54-openmode_l2fix” file needs to be in the same location as the Flasher Application, FIASCO, and eMMC images. Usually you would have installed the Flasher Application to C:\Program Files\Nokia\Flasher.
 * 3) For Linux users, usual “best practice” is to save the FIASCO, eMMC, and whatever Kernels at the main directory (/home/yourusername).
 * 4) "PIN Code Request" should be disabled when you are using Open-Mode.

Ubiboot Files
Find the latest versions at http://www.swagman.org/juice/ubiboot/. Files are also mirrored at http://juiceme.cloud-7.de/ubiboot/


 * 1) preinits.tar: this is a compressed file, like Zip (Windows users: use 7zip application). We will extract this later on once this is copied to the device.
 * 2) zImage_2.6.32.54-openmode_l2fix: this is used for flashing your device to “Open-Mode” (Windows users: save this in the same location as your flasher application and files...usually C:\Program Files\Nokia\Flasher).
 * 3) zImage-2.6.32.54-dfl61-20121301 from http://maemo.cloud-7.de/HARM/N9/1.3/openmode-kernel/: this is the “default” or “plain Open-Mode” kernel. Including this to your ubiboot-02 setup is optional.
 * 4) zImage_2.6.32.54-ubiboot-02_040613: this is used for flashing ubiboot to your device (Windows users: save this in the same location as your flasher application and files, usually C:\Program Files\Nokia\Flasher).
 * 5) ubiboot-02_040613.tar: this is a compressed file, like Zip. After downloading, extract the contents of this file (Windows users: use 7zip application). This compressed file contains 2 files that you will need to extract and copy to the “/home/user/MyDocs/boot” folder of your device (you should create the boot folder inside MyDocs before):
 * 6) * ubiboot.conf
 * 7) * ubiboot-02.menus.cpio

NITDroid Files
Find the latest versions at http://downloads.nitdroid.com/e-yes/n9/


 * 1) nitdroid_n9_jellybean_alpha5.tar.bz2: latest “Jelly Bean” version available as of this writing.
 * 2) apps2sd_fix_alpha5.tar.bz2: this fix allow apps to install into the SD Card.
 * 3) zImage: (recommended) this is the “new version” of zImage.pr13, which is tailored for use with ubiboot. IMPORTANT: Rename this to “zImage_e-yes_nitdroid+l2fix” (without the quotes).
 * 4) zImage.pr13: (not recommended) before Ubiboot was published, this was the latest zImage being used for dual-booting or multi-booting NITDroid.

Nemo Files
Find the latest versions at http://releases.nemomobile.org/snapshots/images/


 * 1) nemo-armv7hl-n950-0.20130411.1.NEMO.2013-04-26.1.tar.bz2: this contains the actual Nemo OS image as of this writing.
 * 2) moslo-0.0.13.2-1.5.Nemo.Adaptation.N9xx.armv7hl.rpm: this is the MOSLO file needed for flashing when installing Nemo. You may alternatively download this file via the "wget" Terminal Command in Linux, as outlined in the official Nemo Wiki:

wget -r -l1 -nd --no-parent -Amoslo-0.*.rpm http://releases.nemomobile.org/snapshots/repos/hw/ti/omap3/n950-n9/latest/armv7hl/armv7hl/

Enable Developer Mode and Installation of non-store sources

 * 1) Enable “Allow installations from non-store sources (Settings → Applications → Installations).
 * 2) Enable “Developer Mode” (Setitngs → Security → Developer mode)...your device will restart. Upon restart, you will now see Terminal being available for use.

Install and Prepare Filebox and Filebox Root

 * 1) Install Filebox from Nokia Store on your device.
 * 2) Install N9 Quick Tweak. Upon installation, run N9 Quick Tweak and enable “Root Filebox” (as of the latest version, this is under Tweak H.
 * 3) You should now have Filebox Root. Open Filebox Root and navigate to “MyDocs” (usually at first use of Filebox, you are already at “MyDocs”) and create a new folder called “boot” (without the quotes).
 * 4) In the “Settings” (the gear icon at the lower-right), enable the following:
 * 5) * Show root filesystem
 * 6) * Show hidden filesystem
 * 7) * Show thumbnails

Moving files using Filebox Root
This section guides you on where to move/copy the files that were downloaded in the Download Needed Files section above.

Place/move/copy the following files inside the newly-created “boot” folder under “MyDocs”:

ubiboot.conf ubiboot-02.menus.cpio

Next is to move the "zImage..." files.


 * 1) Go up three (3) levels by pressing the “up” arrow (found at the lower-left of Filebox Root) . You should be at the “root” folder (you can confirm this when you see that the blue banner at the top of Filebox Root shows only a forward-slash “/”).
 * 2) Find the “/boot” folder...we are looking for the "/boot" under root directory, not the “/home/user/MyDocs/boot” folder (i.e. that we created inside “MyDocs”) and go inside that folder.
 * 3) Paste the three (or four) "zImage..." files:

zImage_2.6.32.54-openmode_l2fix zImage.pr13 zImage zImage-2.6.32.54-dfl61-20121301 (Optional)

REVIEW/RECAP: These are the locations where the "needed files" are to be moved/pasted/located.

/home/user/MyDocs should contain: preinits.tar nitdroid_n9_jellybean_alpha5.tar.bz2 apps2sd_fix_alpha5.tar.bz2 /home/user/MyDocs/boot should contain: ubiboot.conf ubiboot-02.menus.cpio /boot should contain: zImage_2.6.32.54-openmode_l2fix zImage.pr13 zImage (which by now, has been renamed to “zImage_e-yes_nitdroid+l2fix”, without the quotes) zImage-2.6.32.54-dfl61-20121301 (Optional)

Extract preinits.tar and the NITDroid files
NOTE: Terminal should still be open at this point.

Type the following commands in the Terminal and press Enter after typing each command (NOTE: do not change the order of the commands):

devel-su (default password is "rootme", without quotes) mkdir /home/nitroid (creates the “nitdroid” directory under the /home directory) cd /home/user/MyDocs (navigates to the directory where the NITDroid image is located) tar -xvf preinits.tar -C / (extracts preinits to /sbin directory of the device) tar xjvf nitdroid_n9_jellybean_alpha5.tar.bz2 -C /home/nitdroid (extracts the NITDroid image to /home/nitdroid) tar xjvf apps2sd_fix_alpha5.tar.bz2 -C /home/nitdroid (extracts the Apps2SD fix to /home/nitdroid)

Install Nemo Mobile OS
In Linux, enter the following commands as per the Nemo Wiki Page:

wget -r -l1 -nd --no-parent -Amoslo-0.*.rpm http://releases.nemomobile.org/snapshots/repos/hw/ti/omap3/n950-n9/latest/armv7hl/armv7hl/ rpm2cpio moslo-*.armv7hl.rpm | cpio -vidu sudo flasher -k usr/share/moslo/zImage-moslo -n usr/share/moslo/initrd-moslo -l -b

Alternative: for the "wget" command above, you may download the MOSLO directly as I have mentioned in the “Download Needed Files” section above. Then you may proceed with the second and third commands.




 * 1) The Terminal will give you a message that it is waiting for a suitable USB device. Make sure your device is turned off and plug it to your computer via the USB cable. The flashing procedure should finish in a few seconds.
 * 2) Keep the device plugged. What happens next is that the N9 is being repartitioned for Nemo (on the device, you will see some green text/writing on the screen; just wait for it to finish).
 * 3) You will also notice that the File Manager of your Linux Distribution will open and will show a folder named “Alt_OS”. This is the newly-created partition.
 * 4) Next, we will extract the Nemo image into the newly-created partition. Enter this command in the Terminal:

sudo tar --numeric-owner -xf nemo-handset-armv7hl-n950-*.tar.bz2 -C /media/Alt_OS/

TIPS:


 * 1) Sometimes, the name of the partition is Alt_OS_, with a single underline/underscores after “S” instead of the default Alt_OS (without underscore). Sometimes it has two (2) underlines/underscores. In my case, it had three (3) underlines/underscores.
 * 2) Sometimes, the path of the Alt_OS partition is /media/yourusername/Alt_OS.
 * 3) To be sure, before extracting the Nemo image, you may want to check the correct name by entering the Linux command of “lsblk” (without the quotes).
 * 4) As a matter of “best practice” it is recommended to have a File Manager open and navigating to "Alt_OS" during the extraction command to verify that the files are being extracted to the correct location.
 * 5) By experience, booting the device at this stage will result to either a reboot loop or the device not turning on at all. It is highly recommend not to turn on the device until you complete the setup/process from this point onward.

Flash the Device with Ubiboot-02
Flash the ubiboot-02 Kernel with the command below. Replace  with the filename of your N9 FIASCO image if you have renamed it differently.

sudo flasher -a  -k zImage_2.6.32.54-ubiboot-02_040613 --flash-only=kernel -f -R

Once the device reboots, keep the USB cable plugged in to enter “maintenance mode”. You will notice that the File Manager of your Linux Distribution will open and will mount/show all the partitions:

Nokia N9 (this is the “MyDocs” directory) rootfs (this is the “/” directory or partition of the Nokia N9's Harmattan OS) another partition with a long series of alpha-numeric (this is the /home/nitdroid directory/partition) Alt_OS (this is the Nemo directory/partition)

Double-check that the files we have moved earlier are in their correct places. Once confirmed, you can "eject" all the partitions from your File Manager. Unplug the USB Cable and the device will restart. When it restarts, you should now see the Ubiboot menu.

Congratulations, you now have Ubiboot completely set up with a Triple-Boot configuration of Harmattan, NITDroid, and Nemo!

Known Issues
This section attempts to document some user-reported issues and solutions with respect to Ubiboot usage, installation, etc.

Charging
Ubiboot handles rtc and usb events to boot up device from power off state:

a) to ubi telnet console (when connected to PC USB), device will not be charged

b) to configured default kernel (harmattan) to charge (when connected to wall charger)

c) to configured default kernel (harmattan) to trigger alarm

Case a works flawlessly.

Case b sometimes does not work, but reboots and then starts up ubi console (not charging).

Case c needs some precondition. Make sure you have shutdown your device from harmattan. Otherwise the alarm may(nitdrood) / will (nemo) not be triggered.

Alarm Clocks
http://talk.maemo.org/showpost.php?p=1355247&postcount=374 http://talk.maemo.org/showpost.php?p=1355278&postcount=377

The default behavior of the device, particularly with the default OS (Harmattan), is that clock alarms can be triggered even when the device is turned off. The posts above suggest that you need to ensure that the "last OS booted" should be Harmattan prior to turning the device off, because between Harmattan, NITDroid, and Nemo, the alarm clock system behavior of Harmattan is most stable. Based on the above posts linked, alarms of NITDroid and Nemo (when the device is turned off) don't behave as good as Harmattan does.

Tutorials

 * 1) PDF and Document
 * 2) YouTube (to follow/in progress)