Sailfish

(Step 4 - Prepare Harmattan)
(Kernels)
 
(29 intermediate revisions not shown)
Line 27: Line 27:
= Notes =
= Notes =
-
If your handset is factory SIM-locked, it may not be possible to install unsigned kernels, thus Sailfish. There is currently no known work-around and unlocking the handset after purchase does not seem to alleviate this issue.
+
If your handset is factory SIM-locked, it [http://talk.maemo.org/showpost.php?p=1393928&postcount=494 may not] be possible to install unsigned kernels, thus Sailfish. There is currently no known work-around and unlocking the handset after purchase does not seem to alleviate this issue.
To completely turn off the handset manually, hold the power button for ~8 seconds.
To completely turn off the handset manually, hold the power button for ~8 seconds.
Line 42: Line 42:
==Firmwares==
==Firmwares==
-
Obtain Nokia N9 firmwares from [http://skeiron.org/firmware/N9/40.2012.21.3/ skeiron.org] or [http://mrcrab.net/nokia/Nokia_N9.html?productID=4823499691&productType=RM-696 mrcrab.net]
+
Obtain Nokia N9 firmwares from [http://skeiron.org/firmware/N9/40.2012.21.3/ skeiron.org] (inaccessable) or [http://mrcrab.net/nokia/Nokia_N9.html?productID=4823499691&productType=RM-696 mrcrab.net] (inaccessable) or [https://markom.lt/n9/firmwares/ markom.lt] or [https://localhost.one/archive/2013/12/09/firmware-backup-nokia-n9-rm-696-version-402012213 localhost.one]
==Flasher==
==Flasher==
-
This enables you to Flash your Nokia N9. Obtain v3.12.1 from [http://skeiron.org/tablets-dev/maemo-dev-env-downloads/ skeiron.org].
+
This enables you to Flash your Nokia N9. Obtain v3.12.1 from [http://skeiron.org/tablets-dev/maemo-dev-env-downloads/ skeiron.org]. (Source does not seem to work, mirror: [https://coderus.openrepos.net/flasher/ coderus.openrepos.net])
==Kernels==
==Kernels==
Line 51: Line 51:
Obtain the MOSLO kernel from: [http://releases.nemomobile.org/snapshots/repos/hw/ti/omap3/n950-n9/latest/armv7hl/armv7hl/moslo-0.0.13.2-1.5.Nemo.Adaptation.N9xx.armv7hl.rpm nemomobile.org] or
Obtain the MOSLO kernel from: [http://releases.nemomobile.org/snapshots/repos/hw/ti/omap3/n950-n9/latest/armv7hl/armv7hl/moslo-0.0.13.2-1.5.Nemo.Adaptation.N9xx.armv7hl.rpm nemomobile.org] or
-
[http://www.multiupload.nl/WLLK09RF96 multiupload.nl] (zip file; Windows only users use this file)
+
[http://www.multiupload.nl/WLLK09RF96 multiupload.nl] (zip file; Windows only users use this file) (file unavailable: mirror [https://github.com/ruedigergad/nemo-n9-blobs/blob/master/zImage-kernel-moslo-n9 here]
==Ubiboot==
==Ubiboot==
Line 99: Line 99:
==Step 2 - Re-flash your Nokia N9 to factory firmware==
==Step 2 - Re-flash your Nokia N9 to factory firmware==
*Note: Flashing can permanently damage or brick your Nokia N9. Do so at your own risk.  
*Note: Flashing can permanently damage or brick your Nokia N9. Do so at your own risk.  
-
*If you have not already, download the Flasher for your system and install it. You want v3.12.1 from [http://skeiron.org/tablets-dev/maemo-dev-env-downloads/ here]
+
*If you have not already, download the Flasher for your system and install it. You want v3.12.1 from [http://skeiron.org/tablets-dev/maemo-dev-env-downloads/ skeiron.org] (unavailable) or [https://coderus.openrepos.net/flasher/ coderus.openrepos.net]
-
*Download the firmware you wish to use Harmattan with from [http://skeiron.org/firmware/N9/40.2012.21.3/ skeiron.org] or [http://mrcrab.net/nokia/Nokia_N9.html?productID=4823499691&productType=RM-696 mrcrab.net]. Your factory product code is printed on your SIM tray e.g. 059J245. You want the two files containing "DFL _61" e.g. A6D5F456_'''DFL61_HARMATTAN_40.2012.21-3_PR_LEGACY'''_005-OEM1-958_ARM.bin and 59BEC3BC_'''DFL61_HARMATTAN_40.2012.13-7'''.SEAP_'''EMMC'''_SEAP.bin.  
+
*Download the firmware you wish to use Harmattan with from [http://skeiron.org/firmware/N9/40.2012.21.3/ skeiron.org] or [http://mrcrab.net/nokia/Nokia_N9.html?productID=4823499691&productType=RM-696 mrcrab.net]. '''*** Both download sources are unavailable and this manual is therefore unusable in its current shape. ***''' Your factory product code is printed on your SIM tray e.g. 059J245. You want the two files containing "DFL _61" e.g. A6D5F456_'''DFL61_HARMATTAN_40.2012.21-3_PR_LEGACY'''_005-OEM1-958_ARM.bin and 59BEC3BC_'''DFL61_HARMATTAN_40.2012.13-7'''.SEAP_'''EMMC'''_SEAP.bin.  
*Rename your firmware to "main.bin" and "emmc.bin" respectively and copy them to the directory where the flasher program is installed (e.g. '''"C:\Program Files\Nokia\Flasher"'''). Check the [[Flashing_N9|Maemo Community Wiki Nokia N9 Flashing Guide]] for further information.
*Rename your firmware to "main.bin" and "emmc.bin" respectively and copy them to the directory where the flasher program is installed (e.g. '''"C:\Program Files\Nokia\Flasher"'''). Check the [[Flashing_N9|Maemo Community Wiki Nokia N9 Flashing Guide]] for further information.
*Ensure your handset is fully charged. Disconnect from all cables from it and turn off.
*Ensure your handset is fully charged. Disconnect from all cables from it and turn off.
-
*Open up a Root Terminal (Or Terminal and gain root/use sudo) or an elevated cmd.exe (by running it as Administrator on Windows Vista onwards) and set the directory to where flasher is located: <br>
+
*Open up a Root Terminal (Or Terminal and gain root/use sudo) or an elevated cmd.exe (by running it as Administrator on Windows Vista onwards) and set the directory to where flasher is located (for Windows): <br>
-
'''cd /d "C:\Program Files\Nokia\Flasher"''' (for Windows)
+
<pre>cd /d "C:\Program Files\Nokia\Flasher"</pre>
*By connecting the USB cable to the computer and the turned off phone, you will initialise the Flashing Mode.
*By connecting the USB cable to the computer and the turned off phone, you will initialise the Flashing Mode.
-
**This status can be checked with the command:<br>'''flasher -i'''
+
**This status can be checked with the command:<br><pre>flasher -i</pre>
-
*Flash your firmware with the command:<br>'''flasher -F main.bin -F emmc.bin -f'''
+
*Flash your firmware with the command:<br><pre>flasher -F main.bin -F emmc.bin -f</pre>
*On Linux, if flashing fails with message '''Error claiming USB interface: Device or resource busy''', the problem is the cdc_phonet, phonet and cdc_acm modules. Add the lines '''blacklist cdc_phonet''', '''blacklist phonet''' and '''blacklist cdc_acm''' to /etc/modprobe.d/modprobe.conf to blacklist these modules.
*On Linux, if flashing fails with message '''Error claiming USB interface: Device or resource busy''', the problem is the cdc_phonet, phonet and cdc_acm modules. Add the lines '''blacklist cdc_phonet''', '''blacklist phonet''' and '''blacklist cdc_acm''' to /etc/modprobe.d/modprobe.conf to blacklist these modules.
*If flashing fails e.g. due to a Partition Mismatch, Security Code On Status or No Reply from Ping, you can try the following. There is a risk of bricking your phone and no warranty is provided by anyone!
*If flashing fails e.g. due to a Partition Mismatch, Security Code On Status or No Reply from Ping, you can try the following. There is a risk of bricking your phone and no warranty is provided by anyone!
**Completely turn off the handset.
**Completely turn off the handset.
-
**First, try to flash your firmware with the command:<br>'''flasher -F main.bin -F emmc.bin -f --no-preserve'''<br>'''--no-preserve''' should re-flash the device. If this fails, run flasher with the following command:<br>'''flasher -f -F main.bin --erase-user-data=secure -F emmc.bin'''<br>This securely erases the root file system and security code, taking approximately 20 minutes to complete. To format the device completely, use:<br>'''flasher -f -F main.bin --erase-user-data=secure -F emmc.bin --erase-mmc=secure'''<br>This should flash the handset under nearly all circumstances and takes around 30 minutes for complete.
+
**First, try to flash your firmware with the command:<br><pre>flasher -F main.bin -F emmc.bin -f --no-preserve</pre><br>'''--no-preserve''' should re-flash the device. If this fails, run flasher with the following command:<br><pre>flasher -f -F main.bin --erase-user-data=secure -F emmc.bin</pre><br>This securely erases the root file system and security code, taking approximately 20 minutes to complete. To format the device completely, use:<br><pre>flasher -f -F main.bin --erase-user-data=secure -F emmc.bin --erase-mmc=secure</pre><br>This should flash the handset under nearly all circumstances and takes around 30 minutes for complete.
If you do not wish to wait, you can stop the zeroising task and pull out the USB cable from the handset. This is a risky manoeuvre and could permanently brick your handset.  The task can be stopped by:<br>'''Pressing CTRL + Z''' in a Linux Terminal <br>Opening Task Manager ('''CTRL+ALT+DEL''') and Ending the tasks '''cmd.exe''' and '''flasher.exe''' in Windows<br>
If you do not wish to wait, you can stop the zeroising task and pull out the USB cable from the handset. This is a risky manoeuvre and could permanently brick your handset.  The task can be stopped by:<br>'''Pressing CTRL + Z''' in a Linux Terminal <br>Opening Task Manager ('''CTRL+ALT+DEL''') and Ending the tasks '''cmd.exe''' and '''flasher.exe''' in Windows<br>
Line 121: Line 121:
**Turn it on and you will get a message asking you to "Install and Authorised Operating System"
**Turn it on and you will get a message asking you to "Install and Authorised Operating System"
**Turn the phone back off.
**Turn the phone back off.
-
**In flasher, run:<br>'''flasher -F main.bin -F emmc.bin -f'''
+
**In flasher, run:<br><pre>flasher -F main.bin -F emmc.bin -f</pre>
**The phone should proceed to flash normally.
**The phone should proceed to flash normally.
==Step 3 - Flash the OpenMode!==
==Step 3 - Flash the OpenMode!==
-
*Download the OpenMode kernel from [http://www.swagman.org/juice/ubiboot/other/zImage_2.6.32.54-openmode_l2fix swagman.org] and place it in the same directory as flasher and your firmware files.  
+
 
-
*Flash the OpenMode kernel and reboot your phone with: <br>'''flasher -a main.bin -k zImage_2.6.32.54-openmode_l2fix --flash-only=kernel -f -R'''
+
'''TIP''': The sequence of flashing commands below combines the usual flashing steps found in the [http://wiki.maemo.org/Flashing_N9 N9 Flashing Wiki], plus actual flashing of the Open-Mode Kernel so that upon first boot, the device will already be in "Open-Mode". This is called Back-to-Back Closedmode/Openmode flashing. If you follow this style of flashing the device, you will no longer need to delete some folders (.accounts/, ./aegis, and ./activesync) for the device to store passwords correctly. The additional benefits of the Back-to-Back flashing is that you get rid of a lot of unstability in the device caused by some parts still being accessed with closed-mode aegis keys.
 +
 
 +
'''TIP''': If you want to be rid of the "Scary Warranty Warning", which a device displays when booting in Open Mode you have to remove that '''Before entering open mode'''.
 +
 
 +
*(Optional) Remove the modified kernel warning before installing OpenMode.
 +
- **Boot up Harmattan<br>
 +
- **Enable developer mode<br>
 +
- **Open terminal and type<br>
 +
<pre>disclaimer-cal remove View-openmode</pre>
 +
Be careful, type command as regular user, not root!
 +
 
 +
If you have troubles with flashing Ubiboot kernel read following, if not go to step 4. No need to reflash/zeroize device at this moment.
 +
 
 +
 
 +
 
 +
Flash your device with rootfs, omit the parameter "-R" (which means "reboot")
 +
 
 +
sudo flasher -F <yourmainfirmware.bin> -f
 +
 
 +
or
 +
 
 +
sudo flasher -F <yourmainfirmware.bin> -F <youremmc.bin> -f
 +
 
 +
or "Zeroize Method" of flashing, which "wipes" user data and EMMC. Note that this command flashes the eMMC twice and takes many hours to complete the process. You will see a notification/warning of eMMC "unnecessarily being flashed twice") in the Terminal when flashing via this method.
 +
 
 +
sudo flasher -f -F <yourmainfirmware.bin> --erase-user-data=secure -F <youremmc.bin> --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 <yourmainfirmware.bin> -k zImage_2.6.32.54-openmode_l2fix --flash-only=kernel -f -R
 +
 
 +
(All credits to [http://maemo.org/profile/view/rainisto jonni/rainisto])
 +
 
 +
See http://talk.maemo.org/showpost.php?p=1412084&postcount=1556 for more info.
==Step 4 - Prepare Harmattan==
==Step 4 - Prepare Harmattan==
*Let Harmattan load up and run for a few minutes so you have date and time set correctly and the handset is fully functional.
*Let Harmattan load up and run for a few minutes so you have date and time set correctly and the handset is fully functional.
*Install Developer Mode on Harmattan so Terminal is made available as it is useful later on and required if are not using Linux.
*Install Developer Mode on Harmattan so Terminal is made available as it is useful later on and required if are not using Linux.
-
*Install nano from Terminal:<br>'''devel-su'''<br>'''rootme''' # root's password<br>'''apt-get install nano'''
+
*Install nano from Terminal:<br>
 +
devel-su
 +
rootme # root's password
 +
apt-get install nano
*(Optional) Install N9QT from [http://talk.maemo.org/showthread.php?t=80600 here] and choose Option "'''H'''", and select "'''Enable SSH for root'''". This will allow you to run commands on Harmattan from your PC and enables copying and pasting of commands and files to and from your PC easily.
*(Optional) Install N9QT from [http://talk.maemo.org/showthread.php?t=80600 here] and choose Option "'''H'''", and select "'''Enable SSH for root'''". This will allow you to run commands on Harmattan from your PC and enables copying and pasting of commands and files to and from your PC easily.
*(Optional) Apply the fix to prevent a bug which causes the closing of applications when installing applications. Simply follow these [http://talk.maemo.org/showthread.php?t=91825 instructions].
*(Optional) Apply the fix to prevent a bug which causes the closing of applications when installing applications. Simply follow these [http://talk.maemo.org/showthread.php?t=91825 instructions].
Line 139: Line 175:
*Download the MOSLO kernel from [http://releases.nemomobile.org/snapshots/repos/hw/ti/omap3/n950-n9/latest/armv7hl/armv7hl/moslo-0.0.13.2-1.5.Nemo.Adaptation.N9xx.armv7hl.rpm nemomobile.org] or [http://www.multiupload.nl/WLLK09RF96 multiupload.nl]. Windows users must download from multiupload.nl as it is a .zip file. Extract the files using "Archive Manager" or an unzipping utility and copy them to where flasher and your firmware files are.
*Download the MOSLO kernel from [http://releases.nemomobile.org/snapshots/repos/hw/ti/omap3/n950-n9/latest/armv7hl/armv7hl/moslo-0.0.13.2-1.5.Nemo.Adaptation.N9xx.armv7hl.rpm nemomobile.org] or [http://www.multiupload.nl/WLLK09RF96 multiupload.nl]. Windows users must download from multiupload.nl as it is a .zip file. Extract the files using "Archive Manager" or an unzipping utility and copy them to where flasher and your firmware files are.
 +
* Extract the MOSLO kernel RPM package. It contains a usr/share/moslo directory, which contains the zImage-moslo and initrd-moslo files you need in the next step. (ArchLinux users can use rpmextract.sh from the rpmextract package)
*Flash the MOSLO kernel using:<br>
*Flash the MOSLO kernel using:<br>
-
**'''flasher -k zImage-moslo -n initrd-moslo -l -b'''
+
**<pre>flasher -k zImage-moslo -n initrd-moslo -l -b</pre>
-
**Allow MOSLO to repartition your handset.  
+
** Do not remove the usb cable after flashing, MOSLO kernel will boot automatically and repartition your handset. This process will be shown on the screen of your phone.
*If you are a Linux user, MOSLO will now connect the "'''Alt_OS'''" partition to your PC.  
*If you are a Linux user, MOSLO will now connect the "'''Alt_OS'''" partition to your PC.  
*Disconnect the phone and turn it off completely. <br>
*Disconnect the phone and turn it off completely. <br>
 +
 +
*If you are a Windows user, note that '''you should never ever format the newly created partition''' (Windows wants to format this as FAT/NTFS as it cannot read EXT3, decline when it asks you to format!)
==Step 6 - Install Ubiboot==
==Step 6 - Install Ubiboot==
Line 151: Line 190:
*Download and extract the '''pre-configured''' Ubiboot from [http://www.swagman.org/juice/ubiboot/ubiboot_for_sailfish/ swagman.org] into the directory where flasher, main.bin and emmc.bin reside.
*Download and extract the '''pre-configured''' Ubiboot from [http://www.swagman.org/juice/ubiboot/ubiboot_for_sailfish/ swagman.org] into the directory where flasher, main.bin and emmc.bin reside.
-
*Unpack the archive:<br>'''tar -xvf ubiboot-02_0.3.5_131213_SFOS.tar'''
+
*Unpack the archive:<br><pre>tar -xvf ubiboot-02_0.3.5_131213_SFOS.tar</pre>
-
*Copy the extracted u'''biboot_035_sailfishos.tar''' to your device e.g into the "MyDocs" folder by connecting it in Mass Storage Mode.
+
*Copy the extracted '''ubiboot_035_sailfishos.tar''' to your device e.g into the "MyDocs" folder by connecting it in Mass Storage Mode.
-
*Go to Terminal on your device, and obtain root access, then extract the archive:<br>'''devel-su'''<br>'''cd /home/user/MyDocs/'''<br>'''tar -xvf ubiboot_035_sailfishos.tar -C /'''<br>
+
*Go to Terminal on your device, and obtain root access, then extract the archive:<br>
-
*Power off your device and flash it in the usual way:<br>'''flasher -a main.bin -k zImage_2.6.32.54-ubiboot-02_301013 --flash-only=kernel -f -R'''
+
devel-su
 +
cd /home/user/MyDocs/
 +
tar -xvf ubiboot_035_sailfishos.tar -C /
 +
*Power off your device and flash it in the usual way:<br><pre>flasher -a main.bin -k zImage_2.6.32.54-ubiboot-02_301013 --flash-only=kernel -f -R</pre>
===If you use the non-configured Ubiboot===
===If you use the non-configured Ubiboot===
Line 160: Line 202:
*This method also allows Nitdroid and Firefox OS installation.
*This method also allows Nitdroid and Firefox OS installation.
*Download and extract the '''latest''' Ubiboot release from [http://www.swagman.org/juice/ubiboot/ubiboot-02/ swagman.org] into the directory where flasher, main.bin and emmc.bin reside.
*Download and extract the '''latest''' Ubiboot release from [http://www.swagman.org/juice/ubiboot/ubiboot-02/ swagman.org] into the directory where flasher, main.bin and emmc.bin reside.
-
*Install the ubiboot kernel with:<br>'''flasher -a main.bin -k zImage_2.6.32.54-ubiboot-02_301013 --flash-only=kernel -f -R'''
+
*Install the ubiboot kernel with:<br><pre>flasher -a main.bin -k zImage_2.6.32.54-ubiboot-02_301013 --flash-only=kernel -f -R</pre>
<br>
<br>
*If you are a Windows user, please now proceed to '''Step W - Install Sailfish (Windows only Users)'''. If you get a prompt asking you to format the newly mounted partition, '''DO NOT FORMAT THE PARTITION'''.
*If you are a Windows user, please now proceed to '''Step W - Install Sailfish (Windows only Users)'''. If you get a prompt asking you to format the newly mounted partition, '''DO NOT FORMAT THE PARTITION'''.
-
*If you are a Linux user: Leave the cable plugged in and allow Ubiboot to enter maintenance mode.<br>4 Removable Partitions will be visible in Computer. These are:<br>"'''rootfs'''" (Harmattan root filesystem, mmcblk0p2),<br>"'''Alt_OS'''" (where nemo/sailfish resides, mmcblk0p4)<br> "'''x767x676x7c6'''" (a random string of letters +/- numbers. This is where you can install Nitdroid and Firefox OS if you wish. It is also the "/home/" directory in Harmattan (mmcblk0p3)(but NOT "/home/user/MyDocs")<br>"'''Nokia N9'''" (mmcblk0p1) is "/home/user/MyDocs" directory on Harmattan [EMMC/USB Mass Storage Mode]).<br><br>NB: If you format Alt_OS, it will get a random string of letters and numbers, like the "/home/" partition. Alt_OS is the 4.2GB partition.<br>You can reset the disk label to "'''Alt_OS'''" by formatting it:<br>'''df'''<br>#Get the disk ID of the 4.2GB partition<br>'''mkfs.ext4 /dev/sdXY -L "Alt_OS"''' # Where X and Y are your disk ID e.g. /dev/sdb2<br>This can also be used to assign '''x767x676x7c6''' a name e.g. '''Nitdroid'''.  
+
*If you are a Linux user: Leave the cable plugged in and allow Ubiboot to enter maintenance mode.<br>4 Removable Partitions will be visible in Computer. These are:<br>"'''rootfs'''" (Harmattan root filesystem, mmcblk0p2),<br>"'''Alt_OS'''" (where nemo/sailfish resides, mmcblk0p4)<br> "'''x767x676x7c6'''" (a random string of letters +/- numbers. This is where you can install Nitdroid and Firefox OS if you wish. It is also the "/home/" directory in Harmattan (mmcblk0p3)(but NOT "/home/user/MyDocs")<br>"'''Nokia N9'''" (mmcblk0p1) is "/home/user/MyDocs" directory on Harmattan [EMMC/USB Mass Storage Mode]).<br><br>NB: If you format Alt_OS, it will get a random string of letters and numbers, like the "/home/" partition. Alt_OS is the 4.2GB partition.<br>You can reset the disk label to "'''Alt_OS'''" by formatting it:<br>
 +
df #Get the disk ID of the 4.2GB partition
 +
mkfs.ext4 /dev/sdXY -L "Alt_OS" # Where X and Y are your disk ID e.g. /dev/sdb2
 +
<br>This can also be used to assign '''x767x676x7c6''' a name e.g. '''Nitdroid'''.  
*Go to "/media/Nokia N9" on your PC (Harmattan's Mass Storage). Make a directory called "'''boot'''".  
*Go to "/media/Nokia N9" on your PC (Harmattan's Mass Storage). Make a directory called "'''boot'''".  
Line 176: Line 221:
*Now download the Sailfish image of choice, or compile your own using the Mer SDK. Rename it to '''sailfish.tar.bz2'''
*Now download the Sailfish image of choice, or compile your own using the Mer SDK. Rename it to '''sailfish.tar.bz2'''
*Extract the Sailfish archive to "'''/media/Alt_OS'''" on your PC with:<br>
*Extract the Sailfish archive to "'''/media/Alt_OS'''" on your PC with:<br>
-
'''tar --numeric-owner -xvjf sailfish.tar.bz2 -C /media/Alt_OS/'''
+
<pre>tar -xvjf sailfish.tar.bz2 --numeric-owner -C /media/Alt_OS/</pre>
===Enable Root Access===
===Enable Root Access===
After the extraction has finished, this is a good time to enable root access in Sailfish and root login via SSH. This will allow you to remotely access your device after WLAN has been set up and avoid all the chrooting hassle! To reset root's password ([http://talk.maemo.org/showpost.php?p=1395095&postcount=678 MAX9's method]), enter the following into your PC terminal:<br>
After the extraction has finished, this is a good time to enable root access in Sailfish and root login via SSH. This will allow you to remotely access your device after WLAN has been set up and avoid all the chrooting hassle! To reset root's password ([http://talk.maemo.org/showpost.php?p=1395095&postcount=678 MAX9's method]), enter the following into your PC terminal:<br>
-
'''nano /media/Alt_OS/etc/shadow''' # Open the shadow file where Alt_OS is mounted<br><br>
+
<pre>nano /media/Alt_OS/etc/shadow # Open the shadow file where Alt_OS is mounted</pre><br><br>
On the first line, you will have (where XXXXX are 5 numbers):<br>
On the first line, you will have (where XXXXX are 5 numbers):<br>
-
'''root:34.random.letters.numbers.and.symbols:XXXXX:0:99999:7:::'''<br><br>
+
<pre>root:34.random.letters.numbers.and.symbols:XXXXX:0:99999:7:::</pre><br><br>
Now, delete the  all letters, numbers and symbols after "'''root:'''" and before ''':XXXXX:0:99999:7:::'''<br>
Now, delete the  all letters, numbers and symbols after "'''root:'''" and before ''':XXXXX:0:99999:7:::'''<br>
For example, change:<br>
For example, change:<br>
-
'''root:$1$00Z6Bfjc$vlIKUOMHIavIABL1gNuy6/:16049:0:99999:7:::''' <br>
+
<pre>root:$1$00Z6Bfjc$vlIKUOMHIavIABL1gNuy6/:16049:0:99999:7:::</pre> <br>
into:<br>
into:<br>
-
'''root::16049:0:99999:7:::'''
+
<pre>root::16049:0:99999:7:::</pre>
<br><br>
<br><br>
-
Save and exit the file (CTRL+X, Y to save).<br><br>
+
Save and exit the file ('''CTRL+X''', '''Y''' to save).<br><br>
Now, when you boot into Sailfish, '''you will not have a password for root'''. Depending on your SSH configuration, you will not be able to SSH into your handset until root has a password.<br><br>
Now, when you boot into Sailfish, '''you will not have a password for root'''. Depending on your SSH configuration, you will not be able to SSH into your handset until root has a password.<br><br>
To set a root password, open Terminal in Sailfish and enter:<br>
To set a root password, open Terminal in Sailfish and enter:<br>
-
'''su'''<br>
+
su
-
'''passwd root'''<br>
+
passwd root
-
'''nemo''' # Enter your password for root<br>
+
nemo # Enter your password for root
-
'''nemo''' # Repeat your password for root <br>
+
nemo # Repeat your password for root
===Enable Root SSH Access===
===Enable Root SSH Access===
This is also a good time to enable root SSH access. In your PC's root terminal, enter the following:<br>
This is also a good time to enable root SSH access. In your PC's root terminal, enter the following:<br>
-
'''nano /media/Alt_OS/etc/ssh/sshd_config'''<br><br>
+
nano /media/Alt_OS/etc/ssh/sshd_config
Now, go to an empty line in the file and type in the following:<br>
Now, go to an empty line in the file and type in the following:<br>
-
'''PermitRootLogin yes'''<br><br>
+
PermitRootLogin yes'''
-
Again, save and exit the file (CTRL+X, Y to save).
+
Again, save and exit the file ('''CTRL+X''', '''Y''' to save).
==Step W - Install Sailfish (Windows only Users)==
==Step W - Install Sailfish (Windows only Users)==
Line 220: Line 265:
*Disconnect the phone from the PC and remove the USB cable.
*Disconnect the phone from the PC and remove the USB cable.
*Launch Terminal on Harmattan (or SSH in) any type the following commands:<br>
*Launch Terminal on Harmattan (or SSH in) any type the following commands:<br>
-
**'''devel-su'''<br>
+
devel-su
-
**'''rootme''' # Or your root password<br>
+
rootme # Or your root password
-
**'''cd /home/user/MyDocs/'''<br>
+
cd /home/user/MyDocs/
-
**'''ls''' # Here, you should see all your MyDocs and sailfish.tar.bz2<br><br>
+
ls # Here, you should see all your MyDocs and sailfish.tar.bz2
-
**'''mkdir /sailfish''' # Mount Alt_OS in Harmattan<br>
+
mkdir /sailfish # Mount Alt_OS in Harmattan
-
**'''mount /dev/mmcblk0p4 /sailfish'''<br><br>
+
mount /dev/mmcblk0p4 /sailfish
-
**'''tar --numeric-owner -xvjf sailfish.tar.bz2 -C /sailfish/''' # This will take a while as it extracts Sailfish onto the handset <br>
+
tar -xvjf sailfish.tar.bz2 --numeric-owner -C /sailfish/ # This will take a while as it extracts Sailfish onto the handset
-
**'''sync'''<br><br>
+
sync
You can now exit Terminal and reboot into Sailfish or '''Enable root SSH access on Sailfish'''.<br><br>
You can now exit Terminal and reboot into Sailfish or '''Enable root SSH access on Sailfish'''.<br><br>
-
'''To upgrade to a new image, simply delete everything in /media/Alt_OS ("'''rm -frv /media/Alt_OS/'''*") when on a Linux PC or "'''rm -frv /sailfish/'''*" when you have mounted Alt_OS in Harmattan. You will loose ALL your Sailfish data!''' To '''preserve user data''', '''delete everything in "Alt_OS"''' '''apart from "/home/nemo/"'''. In '''"/home/nemo/"''', '''delete''' the '''".cache"''' directory.
+
'''To upgrade to a new image, simply delete everything in /media/Alt_OS (when on a Linux PC):
 +
rm -frv /media/Alt_OS/*
 +
 
 +
Alternatively, when you have mounted Alt_OS in Harmattan:
 +
rm -frv /sailfish/*
 +
 
 +
You will loose ALL your Sailfish data!<br>
 +
To '''preserve user data''', '''delete everything in "Alt_OS"''' '''apart from "/home/nemo/"'''. In '''"/home/nemo/"''', '''delete''' the '''".cache"''' directory.
==Step 8 - Boot into Sailfish==
==Step 8 - Boot into Sailfish==
Line 241: Line 293:
If you do not select an OS, Harmattan will boot by default.
If you do not select an OS, Harmattan will boot by default.
-
To boot into Sailfish, tap the Nemo icon (3rd one down on the left,  looks like a blue padlock) and tap either "latest 2.6.32" or "vmlinuz-2.6.63.20120129.1-n950". For Harmattan, it is "openmode+l2 fix".
+
To boot into Sailfish, tap the Sailfish icon if you are using the pre-configured ubiboot or the Nemo icon (3rd one down on the left,  looks like a blue padlock) if you are using the manually configured version. Next, tap either "latest 2.6.32" or "vmlinuz-2.6.63.20120129.1-n950". For Harmattan, it is the Meego logo and then "openmode+l2 fix".
On your first boot, select your input and display languages. Next, select a theme colour. After going forward, you may have to go back and select your theme colour again and go forward again before the page that allows you to set the date and time appears.
On your first boot, select your input and display languages. Next, select a theme colour. After going forward, you may have to go back and select your theme colour again and go forward again before the page that allows you to set the date and time appears.
Line 257: Line 309:
*No Android capability as of present.
*No Android capability as of present.
*Camera does not work.
*Camera does not work.
 +
*Volume buttons do not work.
*Accelerometer does not work.
*Accelerometer does not work.
-
*GPS does not work
+
*GPS does not work.
-
*Notifications and Gestures rotated 90 degrees clockwise
+
*Notifications and Gestures rotated 90 degrees clockwise.
 +
*You must manually configure you internet access point. Long-press on the AP in Settings to enter your operator's configuration.
Full list available at [https://github.com/romu70/sailfish-for-other/issues?state=open GitHub]
Full list available at [https://github.com/romu70/sailfish-for-other/issues?state=open GitHub]
Line 269: Line 323:
The date/time may not set correctly in Sailfish. To fix this, boot into Harmattan and fire up terminal:
The date/time may not set correctly in Sailfish. To fix this, boot into Harmattan and fire up terminal:
-
'''devel-su<br>
+
devel-su
-
'''rootme''' # Or you root password<br>
+
rootme # Or you root password<br>
-
'''date --set "2013-12-07 22:59"''' # YYYY-MM-DD hh:mm ISO 8601 Format
+
date --set "2013-12-07 22:59" # YYYY-MM-DD hh:mm ISO 8601 Format
===Enable Root Access (Windows Users)===
===Enable Root Access (Windows Users)===
Line 277: Line 331:
If you are using Windows or did not enable root access earlier, the following instruction will show you how. The procedure is the same as that which was explained previously in Step 7 but takes place in Harmattan as opposed to on a Linux computer.  
If you are using Windows or did not enable root access earlier, the following instruction will show you how. The procedure is the same as that which was explained previously in Step 7 but takes place in Harmattan as opposed to on a Linux computer.  
-
Load Harmattan and open Terminal. Type the following:<br>
+
Load Harmattan and open Terminal. Type the following:
-
'''devel-su<br>
+
devel-su
-
'''cd /<br>
+
cd /
-
'''mkdir sailfish<br>
+
mkdir sailfish
-
'''mount /dev/mmcblk0p4 /sailfish<br>
+
mount /dev/mmcblk0p4 /sailfish
-
'''nano /sailfish/etc/shadow''' # Open the shadow file where Sailfish is mounted<br><br>
+
nano /sailfish/etc/shadow''' # Open the shadow file where Sailfish is mounted<br><br>
-
On the first line, you will have (where XXXXX are 5 numbers):<br>
+
On the first line, you will have (where XXXXX are 5 numbers):
-
'''root:34.random.letters.numbers.and.symbols:XXXXX:0:99999:7:::'''<br><br>
+
root:34.random.letters.numbers.and.symbols:XXXXX:0:99999:7:::<br><br>
Now, delete the  all letters, numbers and symbols after "'''root:'''" and before ''':XXXXX:0:99999:7:::'''<br>
Now, delete the  all letters, numbers and symbols after "'''root:'''" and before ''':XXXXX:0:99999:7:::'''<br>
-
For example, change:<br>
+
For example, change:
-
'''root:$1$00Z6Bfjc$vlIKUOMHIavIABL1gNuy6/:16049:0:99999:7:::''' <br>
+
root:$1$00Z6Bfjc$vlIKUOMHIavIABL1gNuy6/:16049:0:99999:7:::'''
-
into:<br>
+
into:
-
'''root::16049:0:99999:7:::'''
+
root::16049:0:99999:7:::
<br><br>
<br><br>
-
Save and exit the file (CTRL+X, Y to save).<br><br>
+
Save and exit the file ('''CTRL+X''', '''Y''' to save).<br><br>
-
Now, when you boot into Sailfish, '''you will not have a password for root'''.<br><br>
+
Now, when you boot into '''Sailfish''', '''you will not have a password for root'''.<br><br>
-
To set a root password, open '''Terminal in Sailfish''' and enter:<br>
+
To set a root password, open '''Terminal in Sailfish''' and enter:
-
'''su'''<br>
+
su
-
'''passwd root'''<br>
+
passwd root
-
'''nemo''' # Enter your password for root<br>
+
nemo # Enter your password for root
-
'''nemo''' # Repeat your password for root <br>
+
nemo # Repeat your password for root
===Enable Root SSH Access===
===Enable Root SSH Access===
-
This is also a good time to enable root SSH access. In Harmattan's terminal, enter the following:<br>
+
To enable root SSH access via Harmattan's terminal, enter the following:
-
'''nano /sailfish/etc/ssh/sshd_config'''<br><br>
+
nano /sailfish/etc/ssh/sshd_config
-
Now, go to an empty line in the file and type in the following:<br>
+
If you are Sailfish's terminal with root access, enter the following:
-
'''PermitRootLogin yes'''<br><br>
+
nano /etc/ssh/sshd_config
 +
 
 +
Now, go to an empty line in the file and type in the following:
 +
PermitRootLogin yes
-
Again, save and exit the file (CTRL+X, Y to save).
+
Again, save and exit the file ('''CTRL+X''', '''Y''' to save).
-
==Chroot into Sailfish from Harmattan==
+
==chroot into Sailfish from Harmattan==
This is based on krnlyng's (liar) method. It is useful for access to Sailfish to run terminal commands such as updating the OS.
This is based on krnlyng's (liar) method. It is useful for access to Sailfish to run terminal commands such as updating the OS.
-
Open terminal in Harmattan and type:<br><br>
+
Open terminal in Harmattan and type:
-
'''devel-su<br>
+
devel-su
-
'''cd /<br>
+
cd /
-
'''mkdir sailfish<br>
+
mkdir sailfish
-
'''mount /dev/mmcblk0p4 /sailfish<br>
+
mount /dev/mmcblk0p4 /sailfish
-
'''mount -o bind /proc /sailfish/proc<br>
+
mount -o bind /proc /sailfish/proc
-
'''mount -o bind /sys /sailfish/sys<br>
+
mount -o bind /sys /sailfish/sys
-
'''mount -o bind /dev /sailfish/dev<br>
+
mount -o bind /dev /sailfish/dev
-
'''/usr/sbin/chroot /sailfish<br><br>
+
usr/sbin/chroot /sailfish
-
When you have finished in Sailfish, exit and unmount with the following commands: <br><br>
+
When you have finished in Sailfish, exit and un-mount with the following commands:
-
'''exit'''<br><br>
+
exit # Exit out of Sailfish chroot
-
 
+
umount /sailfish/dev
-
'''umount /sailfish/dev<br>
+
umount /sailfish/proc
-
'''umount /sailfish/proc<br>
+
umount /sailfish/sys
-
'''umount /sailfish/sys<br>
+
umount /sailfish
-
'''umount /sailfish'''<br>
+
exit # Exit out of devel-su
-
'''exit''' # Exit out of devl-su<br>
+
exit # Exit out of Terminal
-
'''exit''' # Exit out of Terminal
+
==Developer Mode frame rate issue==
==Developer Mode frame rate issue==
-
When in developer mode, do not enable "Display Framerate". It causes random colour drawings on the screen, making it impossible to disable without editing a configuration file. To fix (credits to [http://talk.maemo.org/member.php?u=66860 liar]), SSH into your handset and type:<br>
+
When in developer mode, do not enable "Display Framerate". It causes random colour drawings on the screen, making it impossible to disable without editing a configuration file.
-
'''nano /home/nemo/.gconf/desktop/jolla/%gconf.xml'''<br>
+
 
-
<br>
+
To fix open meego terminal, gain root privileges (devel-su or sudo) and execute:
 +
mkdir /sailfish
 +
mount /dev/mmcblk0p4 /sailfish
 +
mount -o bind /proc /sailfish/proc
 +
mount -o bind /sys /sailfish/sys
 +
mount -o bind /dev /sailfish/dev
 +
/usr/sbin/chroot /sailfish
 +
gconftool-2 -u /desktop/jolla/silica_framerate
 +
exit
 +
umount /sailfish/dev
 +
umount /sailfish/proc
 +
umount /sailfish/sys
 +
umount /sailfish
 +
 
 +
And you can close terminal and reboot to sailfish
 +
 
 +
---
 +
 
 +
Alternative (credits to [http://talk.maemo.org/member.php?u=66860 liar]), SSH into your handset and type:
 +
nano /home/nemo/.gconf/desktop/jolla/%gconf.xml
 +
 
Ensure that that there is nothing between the '''stringvalue''' option, as below: <br>
Ensure that that there is nothing between the '''stringvalue''' option, as below: <br>
-
'''<stringvalue></stringvalue>'''<br><br>
+
<stringvalue></stringvalue>
-
Save and exit (CTRL + X, Y to save). Reboot the handset and it should display everything correctly again. It is also possible to do this from Harmattan by mounting Sailfish or using Ubiboot's Maintenance Mode.
+
Save and exit ('''CTRL + X''', '''Y''' to save). Reboot the handset and it should display everything correctly again. It is also possible to do this from Harmattan by mounting Sailfish or using Ubiboot's Maintenance Mode and a Linux PC.
==Proximity sensor Fix==
==Proximity sensor Fix==
-
To fix the proximity sensor (this must be done at every boot), in Sailfish terminal type:<br><br>
+
To fix the proximity sensor (this must be done at every boot), in Sailfish terminal type:
-
'''su<br>
+
su
-
'''nemo # Your root password<br>
+
nemo # Your root password
-
'''echo 1 > /sys/devices/platform/i2c_omap.2/i2c-2/2-0039/prox_enable<br>
+
echo 1 > /sys/devices/platform/i2c_omap.2/i2c-2/2-0039/prox_enable
==Repository Replacement==
==Repository Replacement==
Line 360: Line 436:
You cannot use the repositories provided by default in the Sailfish images. You must remove them and replace them with custom ones.
You cannot use the repositories provided by default in the Sailfish images. You must remove them and replace them with custom ones.
-
This is done by editing the /etc/ssu/ssu.ini file, without using "zypper ar".
+
This is done by editing '''/etc/ssu/ssu.ini''', without using "zypper ar".
[http://talk.maemo.org/showpost.php?p=1403704&postcount=1236 This post] by coderus builds on [http://talk.maemo.org/showpost.php?p=1395790&postcount=772 csdozi]'s work has working contents for the ssu.ini file.
[http://talk.maemo.org/showpost.php?p=1403704&postcount=1236 This post] by coderus builds on [http://talk.maemo.org/showpost.php?p=1395790&postcount=772 csdozi]'s work has working contents for the ssu.ini file.
Line 366: Line 442:
==Access Harmattan's MyDocs==
==Access Harmattan's MyDocs==
-
To access your EMMC (Harmattan's MyDocs, type the following into Sailfish's Terminal. Credit to [http://talk.maemo.org/showpost.php?p=1395593&postcount=729 max83]. <br>
+
To access your EMMC (Harmattan's MyDocs, type the following into Sailfish's Terminal. Credit to [http://talk.maemo.org/showpost.php?p=1395593&postcount=729 max83].
-
'''mkdir /home/nemo/MyDocs'''<br>
+
mkdir /home/nemo/MyDocs
-
'''chown -R nemo:nemo /home/nemo/MyDocs/'''<br>
+
chown -R nemo:nemo /home/nemo/MyDocs/
-
'''chmod +w /home/nemo/MyDocs/'''<br><br>
+
chmod +w /home/nemo/MyDocs/
 +
nano /etc/fstab
 +
 
 +
Add the following line to the end of the fstab file:
 +
/dev/mmcblk0p1 /home/nemo/MyDocs vfat auto,users,rw,utf8,shortname=mixed,umask=000 0 0
-
'''nano /etc/fstab'''<br>
+
Now Save ('''CTRL+X''', '''Y''') and reboot Sailfish
-
'''/dev/mmcblk0p1 /home/nemo/MyDocs vfat auto,users,rw,utf8,shortname=mixed,umask=000 0 0'''<br>
+
reboot
-
Now Save ('''CTRL+X''', '''Y''') and reboot Sailfish<br>
+
-
'''reboot'''<br><br>
+
You can also link your directories in Sailfish to those in Harmattan after rebooting by deleting the respective directory (and contents!) and using symbolic links to the corresponding Harmattan files e.g.:<br>
You can also link your directories in Sailfish to those in Harmattan after rebooting by deleting the respective directory (and contents!) and using symbolic links to the corresponding Harmattan files e.g.:<br>
-
*For Documents:<br>'''cd /home/nemo'''<br>'''rm -frv ./Documents'''<br>'''ln -s ./MyDocs/Documents ./Documents'''<br>
+
*For Documents:
 +
cd /home/nemo
 +
rm -frv ./Documents
 +
ln -s ./MyDocs/Documents ./Documents
-
*For Downloads:<br>'''cd /home/nemo'''<br>'''rm -frv ./Downloads'''<br>'''ln -s ./MyDocs/Downloads ./Downloads'''<br>
+
*For Downloads:<br>
 +
cd /home/nemo
 +
rm -frv ./Downloads
 +
ln -s ./MyDocs/Downloads ./Downloads
-
*For Music:<br>'''cd /home/nemo'''<br>'''rm -frv ./Music'''<br>'''ln -s ./MyDocs/Music ./Music'''<br>
+
*For Music:<br>
 +
cd /home/nemo
 +
rm -frv ./Music
 +
ln -s ./MyDocs/Music ./Music
-
*For Images:<br>'''cd /home/nemo/Pictures'''<br>'''rm -frv ./*'''<br>'''ln -s ../MyDocs/DCIM/ ./Camera'''<br>'''ln -s ../MyDocs/Pictures/ ./Pictures'''<br>If you want to include your Whatsup images in Jolla's Media application:<br>'''ln -s ../MyDocs/Whatsup/images/ ./Whatsup.images'''
+
*For Images:
 +
cd /home/nemo/Pictures
 +
rm -frv ./*
 +
ln -s ../MyDocs/DCIM/ ./Camera
 +
ln -s ../MyDocs/Pictures/ ./Pictures
 +
If you also want to include your Whatsup images in Jolla's Media application:
 +
ln -s ../MyDocs/Whatsup/images/ ./Whatsup.images
-
*For Videos:<br>'''cd /home/nemo/Videos'''<br>'''rm -frv ./*'''<br>'''ln -s ../MyDocs/DCIM/ ./Camera'''<br>'''ln -s ../MyDocs/Movies/ ./Movies'''<br>'''ln -s ../MyDocs/Videos/ ./Videos'''<br>If you want to include your Whatsup videos in Jolla's Media application:<br>'''ln -s ../MyDocs/Whatsup/video/ ./Whatsup.video'''
+
*For Videos:
 +
cd /home/nemo/Videos
 +
rm -frv ./*
 +
ln -s ../MyDocs/DCIM/ ./Camera
 +
ln -s ../MyDocs/Movies/ ./Movies
 +
ln -s ../MyDocs/Videos/ ./Videos
 +
If you also want to include your Whatsup videos in Jolla's Media application:
 +
ln -s ../MyDocs/Whatsup/video/ ./Whatsup.video
-
There is an issue with Images and Videos not showing in the Gallery application following reboot. They show after symlink creation. This may be a permission/tracker issue.
+
Please note that '''there is an issue with Images and Videos not showing in the Gallery application following reboot'''. They show following the symlink creation. This may be a permission or tracker issue and any solution would be appreciated!
==Battery charging==
==Battery charging==
Line 393: Line 493:
right now the battery status / power management isn't handled by sailfish.
right now the battery status / power management isn't handled by sailfish.
as workaround use:
as workaround use:
-
 
  systemctl start bme-rm-680-bin.service # starts it right now
  systemctl start bme-rm-680-bin.service # starts it right now
  bmestat # shows bat stat  
  bmestat # shows bat stat  
-
 
+
The service has to be started after each reboot of Sailfish OS.
-
the service has to be started after each reboot of Sailfish OS.
+
=== statefs Workaround (with GUI!) ===
=== statefs Workaround (with GUI!) ===
Line 408: Line 506:
If your image uses an older Nemo image, you can use this [https://www.dropbox.com/s/bwznwtalao9v3cq/statefs-provider-bme-1.0.0-3.armv7hl.rpm RPM] that coderus has provided to fix the issue.
If your image uses an older Nemo image, you can use this [https://www.dropbox.com/s/bwznwtalao9v3cq/statefs-provider-bme-1.0.0-3.armv7hl.rpm RPM] that coderus has provided to fix the issue.
-
To install it, cd in the location you downloaded this file and run as root in xterm:
+
To install it, navigate to the directory where you downloaded this file and run the following command as root in Terminal:
 +
zypper install statefs-provider-bme-1.0.0-3.armv7hl.rpm
 +
 
 +
It will offer you two choices. Select '''1''' to remove the other package and install this patch. You now have correct battery indicator thanks to Coderus:)
 +
 
 +
=Remove Sailfish=
 +
To remove Sailfish and restore your device back to factory settings, flash with:
 +
flasher -f -F main.bin --erase-user-data=secure -F emmc.bin --erase-mmc=secure
-
<pre>zypper install statefs-provider-bme-1.0.0-3.armv7hl.rpm</pre>
+
This will completely format your device, including its EMMC therefore '''backup before you flash'''!
-
It will offer you two choices. Type 1 to uninstall the other packet and install this. You now have correct battery indicator thanks to Coderus:)
+
[[Category:Mer]]
 +
[[Category:Operating system]]

Latest revision as of 00:57, 6 April 2018

Contents

[edit] Introduction

Introduction


[edit] Credits

This guide has been compiled from numerous previous sources and credits are due to lots of individuals for their original work, methods and support to the community, including: rzr, souran, Martin Brook, vgrade, coderus, Nad, mikecomputing, TMavica, krnlyng/liar, max83, flotron, juiceme, contributors to piratepad, Nemo contributors and anyone else trying to make Sailfish run on the Nokia N9/N950.

Please help by contributing any information or methods you have to help make Nemo and Sailfish run better on the Nokia N9/N950.

[edit] Installation environment

The guide assumes some basic Linux knowledge although help can be obtained in this thread should the need arise.

A tested environment has been as follows:

  • Windows 7 Host
  • Debian v7.2 x64 as a Virtual Machine Running on VMware. Virtualbox is free-ware and should work fine too. Any Linux distribution shall work but the instructions that follow have been used on Debian with Root Terminal. Live ISO's are also an option however files may not be retained on following reboot therefore it is advised to store everything on a local hard disk or removable drive.

It is strongly recommended to do everything on the Linux installation as it can easily read the EXT3/4 partitions presented by the MOSLO and Ubiboot maintenance modes.

There can be a loss of Internet connectivity (until reboot) on the Linux machine when in MOSLO/Ubiboot maintenance mode therefore a second device with internet capabilities is recommended.

For a Windows only installation, please follow the guide then proceed to Step W when prompted.

[edit] Notes

If your handset is factory SIM-locked, it may not be possible to install unsigned kernels, thus Sailfish. There is currently no known work-around and unlocking the handset after purchase does not seem to alleviate this issue.

To completely turn off the handset manually, hold the power button for ~8 seconds.

When extracting a tarball ending with .tar, use "tar -xvf --numeric-owner". If you get a message stating "invalid tar magic", it is probably .tar.bz2 therefore use "tar -xvjf --numeric-owner".

Lack of the package jolla-xt9 means there is no text correction engine in Sailfish. This also manifests as no Pīnyīn to Hanzi conversion for input of the Chinese language. This issue is addressed in itviewer and SourenAraya's later images however the legality of this remains divisive due to easy repository access to these packages even though they contain proprietary licensed software.

If you have any installation questions or issues, please ask them in this thread on talk.maemo.org. Please refrain from asking Ubiboot related questions in this thread. Ubiboot related questions should be posted in this thread.

[edit] Downloadable Resources

These resources are required to get Sailfish working on your Nokia N9/N950.

[edit] Firmwares

Obtain Nokia N9 firmwares from skeiron.org (inaccessable) or mrcrab.net (inaccessable) or markom.lt or localhost.one

[edit] Flasher

This enables you to Flash your Nokia N9. Obtain v3.12.1 from skeiron.org. (Source does not seem to work, mirror: coderus.openrepos.net)

[edit] Kernels

Obtain the OpenMode kernel from swagman.org

Obtain the MOSLO kernel from: nemomobile.org or multiupload.nl (zip file; Windows only users use this file) (file unavailable: mirror here

[edit] Ubiboot

Obtain SailfishOS-preconfigured ubiboot from swagman.org

The above version is specially tailored to boot ONLY Harmattan and Sailfish. If you want to use other operating systems (Nitdroid, Nemo, Firefox OS), you should use the version below. However, please note that you need to configure it manually (advanced users only).

Obtain the un-configured Ubiboot from swagman.org

Download the latest version available. For more information on Ubiboot, please visit the Maemo Community Wiki article

[edit] Sailfish Images

There are numerous images available for download.

[edit] SourenAraya's Sailfish images

Available for download from: araya.su. Has Terminal pre-installed on Sailfish v1.0.2.5.

[edit] vgrade's Kickstarter

Available from https://github.com/martinbrook/jolla-n950-kickstart

This script allows compositions of an image using the MerSDK kit.

Please see Mer Project Platform SDK and Martin Brook's blog for more information about creating your own image.

[edit] Additional Reading Material

These are not required to be read for installation but many of the latest developments are highlighted here.

rzr's n950club
PiratePad
IRC - IRC Chat for support and discussion. Monthly meetings on the first Sunday of month at 19:00 UTC.


[edit] Installation Guide

[edit] Step 1 - Backup your N9

  • Backup your Nokia N9 using Nokia Suite for PC or the phone's built-in utility in Setting. Also backup you EMMC (MyDocs) by connecting your Nokia N9 to your PC in "USB Mass Storage Mode".
    • If you have used the built-in tool, connect your phone as "USB Mass Storage Mode" and ensure you have backed up the .backup folder on your PC.
  • Close all your open applications on your Nokia N9. It is recommended that you backup up /home/.config, /home/.local and /home/.whatsup (or/home/.wazapp) too so you have the configurations and settings for your installed applications. This can easily be achieved by using N9QuickTweak. Install it, choose Option "H", and select "Enable SSH for root". Now, use WinSCP or Filezilla to access you phone and copy these folders to your PC.
  • Backup your backups.

[edit] Step 2 - Re-flash your Nokia N9 to factory firmware

  • Note: Flashing can permanently damage or brick your Nokia N9. Do so at your own risk.
  • If you have not already, download the Flasher for your system and install it. You want v3.12.1 from skeiron.org (unavailable) or coderus.openrepos.net
  • Download the firmware you wish to use Harmattan with from skeiron.org or mrcrab.net. *** Both download sources are unavailable and this manual is therefore unusable in its current shape. *** Your factory product code is printed on your SIM tray e.g. 059J245. You want the two files containing "DFL _61" e.g. A6D5F456_DFL61_HARMATTAN_40.2012.21-3_PR_LEGACY_005-OEM1-958_ARM.bin and 59BEC3BC_DFL61_HARMATTAN_40.2012.13-7.SEAP_EMMC_SEAP.bin.
  • Rename your firmware to "main.bin" and "emmc.bin" respectively and copy them to the directory where the flasher program is installed (e.g. "C:\Program Files\Nokia\Flasher"). Check the Maemo Community Wiki Nokia N9 Flashing Guide for further information.
  • Ensure your handset is fully charged. Disconnect from all cables from it and turn off.
  • Open up a Root Terminal (Or Terminal and gain root/use sudo) or an elevated cmd.exe (by running it as Administrator on Windows Vista onwards) and set the directory to where flasher is located (for Windows):
cd /d "C:\Program Files\Nokia\Flasher"
  • By connecting the USB cable to the computer and the turned off phone, you will initialise the Flashing Mode.
    • This status can be checked with the command:
      flasher -i
  • Flash your firmware with the command:
    flasher -F main.bin -F emmc.bin -f
  • On Linux, if flashing fails with message Error claiming USB interface: Device or resource busy, the problem is the cdc_phonet, phonet and cdc_acm modules. Add the lines blacklist cdc_phonet, blacklist phonet and blacklist cdc_acm to /etc/modprobe.d/modprobe.conf to blacklist these modules.
  • If flashing fails e.g. due to a Partition Mismatch, Security Code On Status or No Reply from Ping, you can try the following. There is a risk of bricking your phone and no warranty is provided by anyone!
    • Completely turn off the handset.
    • First, try to flash your firmware with the command:
      flasher -F main.bin -F emmc.bin -f --no-preserve

      --no-preserve should re-flash the device. If this fails, run flasher with the following command:
      flasher -f -F main.bin --erase-user-data=secure -F emmc.bin

      This securely erases the root file system and security code, taking approximately 20 minutes to complete. To format the device completely, use:
      flasher -f -F main.bin --erase-user-data=secure -F emmc.bin --erase-mmc=secure

      This should flash the handset under nearly all circumstances and takes around 30 minutes for complete.

If you do not wish to wait, you can stop the zeroising task and pull out the USB cable from the handset. This is a risky manoeuvre and could permanently brick your handset. The task can be stopped by:
Pressing CTRL + Z in a Linux Terminal
Opening Task Manager (CTRL+ALT+DEL) and Ending the tasks cmd.exe and flasher.exe in Windows

    • Now completely turn off the phone.
    • Turn it on and you will get a message asking you to "Install and Authorised Operating System"
    • Turn the phone back off.
    • In flasher, run:
      flasher -F main.bin -F emmc.bin -f
    • The phone should proceed to flash normally.

[edit] Step 3 - Flash the OpenMode!

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". This is called Back-to-Back Closedmode/Openmode flashing. If you follow this style of flashing the device, you will no longer need to delete some folders (.accounts/, ./aegis, and ./activesync) for the device to store passwords correctly. The additional benefits of the Back-to-Back flashing is that you get rid of a lot of unstability in the device caused by some parts still being accessed with closed-mode aegis keys.

TIP: If you want to be rid of the "Scary Warranty Warning", which a device displays when booting in Open Mode you have to remove that Before entering open mode.

  • (Optional) Remove the modified kernel warning before installing OpenMode.

- **Boot up Harmattan
- **Enable developer mode
- **Open terminal and type

disclaimer-cal remove View-openmode

Be careful, type command as regular user, not root!

If you have troubles with flashing Ubiboot kernel read following, if not go to step 4. No need to reflash/zeroize device at this moment.


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

sudo flasher -F <yourmainfirmware.bin> -f

or

sudo flasher -F <yourmainfirmware.bin> -F <youremmc.bin> -f

or "Zeroize Method" of flashing, which "wipes" user data and EMMC. Note that this command flashes the eMMC twice and takes many hours to complete the process. You will see a notification/warning of eMMC "unnecessarily being flashed twice") in the Terminal when flashing via this method.

sudo flasher -f -F <yourmainfirmware.bin> --erase-user-data=secure -F <youremmc.bin> --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 <yourmainfirmware.bin> -k zImage_2.6.32.54-openmode_l2fix --flash-only=kernel -f -R

(All credits to jonni/rainisto)

See http://talk.maemo.org/showpost.php?p=1412084&postcount=1556 for more info.

[edit] Step 4 - Prepare Harmattan

  • Let Harmattan load up and run for a few minutes so you have date and time set correctly and the handset is fully functional.
  • Install Developer Mode on Harmattan so Terminal is made available as it is useful later on and required if are not using Linux.
  • Install nano from Terminal:
devel-su
rootme # root's password
apt-get install nano
  • (Optional) Install N9QT from here and choose Option "H", and select "Enable SSH for root". This will allow you to run commands on Harmattan from your PC and enables copying and pasting of commands and files to and from your PC easily.
  • (Optional) Apply the fix to prevent a bug which causes the closing of applications when installing applications. Simply follow these instructions.

[edit] Step 5 - Re-partition your handset

  • Turn off your handset. If you have not already, start up a Linux computer/virtual machine.
  • Download the MOSLO kernel from nemomobile.org or multiupload.nl. Windows users must download from multiupload.nl as it is a .zip file. Extract the files using "Archive Manager" or an unzipping utility and copy them to where flasher and your firmware files are.
  • Extract the MOSLO kernel RPM package. It contains a usr/share/moslo directory, which contains the zImage-moslo and initrd-moslo files you need in the next step. (ArchLinux users can use rpmextract.sh from the rpmextract package)
  • Flash the MOSLO kernel using:
    • flasher -k zImage-moslo -n initrd-moslo -l -b
    • Do not remove the usb cable after flashing, MOSLO kernel will boot automatically and repartition your handset. This process will be shown on the screen of your phone.
  • If you are a Linux user, MOSLO will now connect the "Alt_OS" partition to your PC.
  • Disconnect the phone and turn it off completely.
  • If you are a Windows user, note that you should never ever format the newly created partition (Windows wants to format this as FAT/NTFS as it cannot read EXT3, decline when it asks you to format!)

[edit] Step 6 - Install Ubiboot

[edit] If you use the pre-configured Ubiboot for SailfishOS

  • Download and extract the pre-configured Ubiboot from swagman.org into the directory where flasher, main.bin and emmc.bin reside.
  • Unpack the archive:
    tar -xvf ubiboot-02_0.3.5_131213_SFOS.tar
  • Copy the extracted ubiboot_035_sailfishos.tar to your device e.g into the "MyDocs" folder by connecting it in Mass Storage Mode.
  • Go to Terminal on your device, and obtain root access, then extract the archive:
devel-su
cd /home/user/MyDocs/
tar -xvf ubiboot_035_sailfishos.tar -C /
  • Power off your device and flash it in the usual way:
    flasher -a main.bin -k zImage_2.6.32.54-ubiboot-02_301013 --flash-only=kernel -f -R

[edit] If you use the non-configured Ubiboot

  • This method also allows Nitdroid and Firefox OS installation.
  • Download and extract the latest Ubiboot release from swagman.org into the directory where flasher, main.bin and emmc.bin reside.
  • Install the ubiboot kernel with:
    flasher -a main.bin -k zImage_2.6.32.54-ubiboot-02_301013 --flash-only=kernel -f -R


  • If you are a Windows user, please now proceed to Step W - Install Sailfish (Windows only Users). If you get a prompt asking you to format the newly mounted partition, DO NOT FORMAT THE PARTITION.
  • If you are a Linux user: Leave the cable plugged in and allow Ubiboot to enter maintenance mode.
    4 Removable Partitions will be visible in Computer. These are:
    "rootfs" (Harmattan root filesystem, mmcblk0p2),
    "Alt_OS" (where nemo/sailfish resides, mmcblk0p4)
    "x767x676x7c6" (a random string of letters +/- numbers. This is where you can install Nitdroid and Firefox OS if you wish. It is also the "/home/" directory in Harmattan (mmcblk0p3)(but NOT "/home/user/MyDocs")
    "Nokia N9" (mmcblk0p1) is "/home/user/MyDocs" directory on Harmattan [EMMC/USB Mass Storage Mode]).

    NB: If you format Alt_OS, it will get a random string of letters and numbers, like the "/home/" partition. Alt_OS is the 4.2GB partition.
    You can reset the disk label to "Alt_OS" by formatting it:
df #Get the disk ID of the 4.2GB partition
mkfs.ext4 /dev/sdXY -L "Alt_OS" # Where X and Y are your disk ID e.g. /dev/sdb2


This can also be used to assign x767x676x7c6 a name e.g. Nitdroid.

  • Go to "/media/Nokia N9" on your PC (Harmattan's Mass Storage). Make a directory called "boot".
    • Copy "ubiboot.conf" and "ubiboot-02.menus.cpio" from the extracted ubiboot-02_310513.tar into "/media/Nokia N9"/boot".
    • Go to "/media/rootfs" on your PC to access Harmattan's root file system. Go to the "boot" directory ("/media/rootfs/boot"). Copy "zImage_2.6.32.54-openmode_l2fix" (which was flashed earlier) into "/media/rootfs/boot".

[edit] Step 7 - Install Sailfish

  • Now download the Sailfish image of choice, or compile your own using the Mer SDK. Rename it to sailfish.tar.bz2
  • Extract the Sailfish archive to "/media/Alt_OS" on your PC with:
tar -xvjf sailfish.tar.bz2 --numeric-owner -C /media/Alt_OS/

[edit] Enable Root Access

After the extraction has finished, this is a good time to enable root access in Sailfish and root login via SSH. This will allow you to remotely access your device after WLAN has been set up and avoid all the chrooting hassle! To reset root's password (MAX9's method), enter the following into your PC terminal:

nano /media/Alt_OS/etc/shadow # Open the shadow file where Alt_OS is mounted


On the first line, you will have (where XXXXX are 5 numbers):

root:34.random.letters.numbers.and.symbols:XXXXX:0:99999:7:::


Now, delete the all letters, numbers and symbols after "root:" and before :XXXXX:0:99999:7:::

For example, change:

root:$1$00Z6Bfjc$vlIKUOMHIavIABL1gNuy6/:16049:0:99999:7:::

into:

root::16049:0:99999:7:::



Save and exit the file (CTRL+X, Y to save).

Now, when you boot into Sailfish, you will not have a password for root. Depending on your SSH configuration, you will not be able to SSH into your handset until root has a password.

To set a root password, open Terminal in Sailfish and enter:

su
passwd root
nemo # Enter your password for root
nemo # Repeat your password for root

[edit] Enable Root SSH Access

This is also a good time to enable root SSH access. In your PC's root terminal, enter the following:

nano /media/Alt_OS/etc/ssh/sshd_config

Now, go to an empty line in the file and type in the following:

PermitRootLogin yes

Again, save and exit the file (CTRL+X, Y to save).

[edit] Step W - Install Sailfish (Windows only Users)

  • Download Sailfish image of choice. Rename it to sailfish.tar.bz2
  • In Harmattan, install Developer Mode if you haven't already. Connect the phone to Windows in "USB Mass Storage Mode ".
  • Copy sailfish.tar.bz2' to the root of your MMC (X:\, where X is the letter of your removable drive).
  • Disconnect the phone from the PC and remove the USB cable.
  • Launch Terminal on Harmattan (or SSH in) any type the following commands:
devel-su
rootme # Or your root password
cd /home/user/MyDocs/
ls # Here, you should see all your MyDocs and sailfish.tar.bz2
mkdir /sailfish # Mount Alt_OS in Harmattan
mount /dev/mmcblk0p4 /sailfish
tar -xvjf sailfish.tar.bz2 --numeric-owner -C /sailfish/ # This will take a while as it extracts Sailfish onto the handset
sync

You can now exit Terminal and reboot into Sailfish or Enable root SSH access on Sailfish.

To upgrade to a new image, simply delete everything in /media/Alt_OS (when on a Linux PC):

rm -frv /media/Alt_OS/*  

Alternatively, when you have mounted Alt_OS in Harmattan: rm -frv /sailfish/*

You will loose ALL your Sailfish data!
To preserve user data, delete everything in "Alt_OS" apart from "/home/nemo/". In "/home/nemo/", delete the ".cache" directory.

[edit] Step 8 - Boot into Sailfish

Disconnect your USB cable and turn off the handset completely. Turn it back on. If done correctly, this should present you Ubiboot boot-manager and 6 available operating system logos. Sailfish and Harmattan shall work.

If you do not select an OS, Harmattan will boot by default.

To boot into Sailfish, tap the Sailfish icon if you are using the pre-configured ubiboot or the Nemo icon (3rd one down on the left, looks like a blue padlock) if you are using the manually configured version. Next, tap either "latest 2.6.32" or "vmlinuz-2.6.63.20120129.1-n950". For Harmattan, it is the Meego logo and then "openmode+l2 fix".

On your first boot, select your input and display languages. Next, select a theme colour. After going forward, you may have to go back and select your theme colour again and go forward again before the page that allows you to set the date and time appears.

You can then connect to the Internet if you wish to login or sign up for a Jolla account.

On Step 1 of the tutorial, you will be asked to do a edge left-right or edge right-left swipe to minimise the application. Due to an accelerometer bug, you have to swipe from the edge bottom upwards to minimise. You can then press and hold on the minimised Tutorial application view to close it.

To close an application, swipe from edge right to left. To view Notifications, swipe edge left to right. The phone cannot be turned off when the lock-screen is active.

[edit] Bugs and Known Issues

  • No Android capability as of present.
  • Camera does not work.
  • Volume buttons do not work.
  • Accelerometer does not work.
  • GPS does not work.
  • Notifications and Gestures rotated 90 degrees clockwise.
  • You must manually configure you internet access point. Long-press on the AP in Settings to enter your operator's configuration.

Full list available at GitHub

[edit] Additional Guidance

[edit] Date/Time Fix

The date/time may not set correctly in Sailfish. To fix this, boot into Harmattan and fire up terminal:

devel-su
rootme # Or you root password
date --set "2013-12-07 22:59" # YYYY-MM-DD hh:mm ISO 8601 Format

[edit] Enable Root Access (Windows Users)

If you are using Windows or did not enable root access earlier, the following instruction will show you how. The procedure is the same as that which was explained previously in Step 7 but takes place in Harmattan as opposed to on a Linux computer.

Load Harmattan and open Terminal. Type the following:

devel-su
cd /
mkdir sailfish
mount /dev/mmcblk0p4 /sailfish
nano /sailfish/etc/shadow # Open the shadow file where Sailfish is mounted

On the first line, you will have (where XXXXX are 5 numbers):

root:34.random.letters.numbers.and.symbols:XXXXX:0:99999:7:::

Now, delete the all letters, numbers and symbols after "root:" and before :XXXXX:0:99999:7:::

For example, change:

root:$1$00Z6Bfjc$vlIKUOMHIavIABL1gNuy6/:16049:0:99999:7:::

into:

root::16049:0:99999:7:::



Save and exit the file (CTRL+X, Y to save).

Now, when you boot into Sailfish, you will not have a password for root.

To set a root password, open Terminal in Sailfish and enter:

su
passwd root
nemo # Enter your password for root
nemo # Repeat your password for root

[edit] Enable Root SSH Access

To enable root SSH access via Harmattan's terminal, enter the following:

nano /sailfish/etc/ssh/sshd_config

If you are Sailfish's terminal with root access, enter the following:

nano /etc/ssh/sshd_config

Now, go to an empty line in the file and type in the following:

PermitRootLogin yes

Again, save and exit the file (CTRL+X, Y to save).

[edit] chroot into Sailfish from Harmattan

This is based on krnlyng's (liar) method. It is useful for access to Sailfish to run terminal commands such as updating the OS.

Open terminal in Harmattan and type:

devel-su
cd /
mkdir sailfish
mount /dev/mmcblk0p4 /sailfish
mount -o bind /proc /sailfish/proc
mount -o bind /sys /sailfish/sys
mount -o bind /dev /sailfish/dev
usr/sbin/chroot /sailfish

When you have finished in Sailfish, exit and un-mount with the following commands:

exit # Exit out of Sailfish chroot
umount /sailfish/dev
umount /sailfish/proc
umount /sailfish/sys
umount /sailfish
exit # Exit out of devel-su
exit # Exit out of Terminal

[edit] Developer Mode frame rate issue

When in developer mode, do not enable "Display Framerate". It causes random colour drawings on the screen, making it impossible to disable without editing a configuration file.

To fix open meego terminal, gain root privileges (devel-su or sudo) and execute:

mkdir /sailfish
mount /dev/mmcblk0p4 /sailfish
mount -o bind /proc /sailfish/proc
mount -o bind /sys /sailfish/sys
mount -o bind /dev /sailfish/dev
/usr/sbin/chroot /sailfish
gconftool-2 -u /desktop/jolla/silica_framerate
exit
umount /sailfish/dev
umount /sailfish/proc
umount /sailfish/sys
umount /sailfish

And you can close terminal and reboot to sailfish

---

Alternative (credits to liar), SSH into your handset and type:

nano /home/nemo/.gconf/desktop/jolla/%gconf.xml

Ensure that that there is nothing between the stringvalue option, as below:

<stringvalue></stringvalue>

Save and exit (CTRL + X, Y to save). Reboot the handset and it should display everything correctly again. It is also possible to do this from Harmattan by mounting Sailfish or using Ubiboot's Maintenance Mode and a Linux PC.

[edit] Proximity sensor Fix

To fix the proximity sensor (this must be done at every boot), in Sailfish terminal type:

su
nemo # Your root password
echo 1 > /sys/devices/platform/i2c_omap.2/i2c-2/2-0039/prox_enable

[edit] Repository Replacement

You cannot use the repositories provided by default in the Sailfish images. You must remove them and replace them with custom ones.

This is done by editing /etc/ssu/ssu.ini, without using "zypper ar".

This post by coderus builds on csdozi's work has working contents for the ssu.ini file.

[edit] Access Harmattan's MyDocs

To access your EMMC (Harmattan's MyDocs, type the following into Sailfish's Terminal. Credit to max83.

mkdir /home/nemo/MyDocs
chown -R nemo:nemo /home/nemo/MyDocs/
chmod +w /home/nemo/MyDocs/
nano /etc/fstab

Add the following line to the end of the fstab file:

/dev/mmcblk0p1 /home/nemo/MyDocs vfat auto,users,rw,utf8,shortname=mixed,umask=000 0 0

Now Save (CTRL+X, Y) and reboot Sailfish

reboot

You can also link your directories in Sailfish to those in Harmattan after rebooting by deleting the respective directory (and contents!) and using symbolic links to the corresponding Harmattan files e.g.:

  • For Documents:
cd /home/nemo
rm -frv ./Documents
ln -s ./MyDocs/Documents ./Documents
  • For Downloads:
cd /home/nemo
rm -frv ./Downloads
ln -s ./MyDocs/Downloads ./Downloads
  • For Music:
cd /home/nemo
rm -frv ./Music
ln -s ./MyDocs/Music ./Music
  • For Images:
cd /home/nemo/Pictures
rm -frv ./*
ln -s ../MyDocs/DCIM/ ./Camera
ln -s ../MyDocs/Pictures/ ./Pictures

If you also want to include your Whatsup images in Jolla's Media application:

ln -s ../MyDocs/Whatsup/images/ ./Whatsup.images
  • For Videos:
cd /home/nemo/Videos
rm -frv ./*
ln -s ../MyDocs/DCIM/ ./Camera
ln -s ../MyDocs/Movies/ ./Movies
ln -s ../MyDocs/Videos/ ./Videos

If you also want to include your Whatsup videos in Jolla's Media application:

ln -s ../MyDocs/Whatsup/video/ ./Whatsup.video

Please note that there is an issue with Images and Videos not showing in the Gallery application following reboot. They show following the symlink creation. This may be a permission or tracker issue and any solution would be appreciated!

[edit] Battery charging

[edit] bme workaround

right now the battery status / power management isn't handled by sailfish. as workaround use:

systemctl start bme-rm-680-bin.service # starts it right now
bmestat # shows bat stat 

The service has to be started after each reboot of Sailfish OS.

[edit] statefs Workaround (with GUI!)

Coderus has put together a statefs provider, which enables the SailfishOS battery level indicator.

The pull request has been merged into the master Nemo Mobile branch. https://github.com/nemomobile/statefs-providers/pull/6

If your image uses an older Nemo image, you can use this RPM that coderus has provided to fix the issue.

To install it, navigate to the directory where you downloaded this file and run the following command as root in Terminal:

zypper install statefs-provider-bme-1.0.0-3.armv7hl.rpm

It will offer you two choices. Select 1 to remove the other package and install this patch. You now have correct battery indicator thanks to Coderus:)

[edit] Remove Sailfish

To remove Sailfish and restore your device back to factory settings, flash with:

flasher -f -F main.bin --erase-user-data=secure -F emmc.bin --erase-mmc=secure

This will completely format your device, including its EMMC therefore backup before you flash!