| 130 | | = 2. Configuring N9 = |
| | 130 | = 2. Configuring your device (N9/N950) = |
| | 131 | |
| | 132 | ''Note:'' It's highly encouraged that you enable open mode on your device. This disables the security system on the device (AEGIS), which lets you mount (SSHF/NFS), making development a lot easier. |
| | 133 | |
| | 134 | == 2.1 Enabling open mode == |
| | 135 | |
| | 136 | The retail N9 has a very stricky security system, called AEGIS. You can read about this at: [http://harmattan-dev.nokia.com/docs/library/html/guide/html/Developer_Library_Developing_for_Harmattan_Harmattan_security_Security_guide.html Harmattan Security Guide] |
| | 137 | |
| | 138 | The only known way to disable AEGIS restrictions is flashing an alternate kernel onto N9. |
| | 139 | |
| | 140 | Notice: This could void the warranty! After flashing the device will show a warranty void message while booting. |
| | 141 | |
| | 142 | This section based on |
| | 143 | - http://maemo.cloud-7.de/HARM/N9/openmode_kernel_PR1.1/ |
| | 144 | - http://talk.maemo.org/showthread.php?t=81579 |
| | 145 | - http://forum.meego.com/showthread.php?t=4575&page=22 |
| | 146 | |
| | 147 | Prerequisite |
| | 148 | * Pached kernel: [http://maemo.cloud-7.de/HARM/N9/openmode_kernel_PR1.1/zImage-2.6.32.39-dfl61-20113701 zImage-2.6.32.39-dfl61-20113701] |
| | 149 | * Original firmware 20.2011.40-4 (you can download it with [http://www.symbian-toys.com/navifirm.aspx NaviFirm+], or using [https://gist.github.com/1636192 this script] on non-Windows machines.) |
| | 150 | * Nokia flasher: [http://tablets-dev.nokia.com/maemo-dev-env-downloads.php flasher_3.12.1_amd64.deb] |
| | 151 | |
| | 152 | It is recommended to flash back the device to factory state. If you have any importand data on the device, back it up first or you will lose it! |
| | 153 | |
| | 154 | Install Nokia flasher utility and download the firmware and pached kernel file to a directory. |
| | 155 | |
| | 156 | Turn off the device and disconnect it from usb. Flash the original firmware to the device: |
| | 157 | {{{ |
| | 158 | sudo flasher -F DFL61_HARMATTAN_20.2011.40-4_PR_LEGACY_001-OEM1-958_ARM.bin -F DFL61_HARMATTAN_20.2011.40-4.CENTRALEUROPE_EMMC_CENTRALEUROPE.bin -f |
| | 159 | }}} |
| | 160 | |
| | 161 | Do NOT disconnect usb cable. Do NOT restart the phone. Now, flash the pached kernel onto it: |
| | 162 | {{{ |
| | 163 | sudo flasher -f -a DFL61_HARMATTAN_20.2011.40-4_PR_LEGACY_001-OEM1-958_ARM.bin -k zImage-2.6.32.39-dfl61-20113701 |
| | 164 | }}} |
| | 165 | |
| | 166 | Now, your N9 is ready. Disconnect it from usb. It will start booting. |
| | 167 | |
| 186 | | |
| 187 | | == 2.3. Install missing packages == |
| 188 | | |
| 189 | | Resworb scripts has a solution for this. |
| 190 | | |
| 191 | | This script uses name 'device' for N9. You can add this to your /etc/hosts file (run@host): |
| 192 | | {{{ |
| 193 | | $ sudo su |
| 194 | | $ echo -e '192.168.2.15\tdevice' >> /etc/hosts |
| 195 | | $ exit |
| 196 | | }}} |
| 197 | | |
| 198 | | Scrachbox should be configured to armel target befor running this script (run@host): |
| 199 | | |
| 200 | | Run |
| 201 | | {{{ |
| 202 | | $ cd ~/swork |
| 203 | | $ browser-scripts/device-install-packages-n9.sh |
| 204 | | }}} |
| 205 | | It will ask for root password of the device. |
| 206 | | |
| 207 | | = 3. How you get things running on the N9 = |
| 208 | | |
| 209 | | == 3.1.a Transfer files to N9 with rsync == |
| | 230 | = 3.Running things on device = |
| | 231 | |
| | 232 | The best option is to mount your host on the device using either NFS or SSHFS (the latter is preferred). The alternative is to rsync files over. |
| | 233 | |
| | 234 | == 3.1a Mounting SSHFS |
| | 235 | |
| | 236 | If you ran the `setup-device.sh` script with an open mode kernel, you should now have your host available at `/mnt/host`, as well as your home directory available. |
| | 237 | |
| | 238 | == 3.1b Transfer files with rsync == |
| 254 | | |
| 255 | | |
| 256 | | == 3.1.b Mounting NFS on retail N9 == |
| 257 | | |
| 258 | | The retail N9 has a very stricky security system, called AEGIS. You can read about this at: [http://harmattan-dev.nokia.com/docs/library/html/guide/html/Developer_Library_Developing_for_Harmattan_Harmattan_security_Security_guide.html Harmattan Security Guide] |
| 259 | | |
| 260 | | The only known way to disable AEGIS restrictions is flashing an alternate kernel onto N9. |
| 261 | | |
| 262 | | Notice: This could void the warranty! After flashing the device will show a warranty void message while booting. |
| 263 | | |
| 264 | | === 3.1.b.1 Flashing pached kernel to get open mode === |
| 265 | | |
| 266 | | This section based on |
| 267 | | - http://maemo.cloud-7.de/HARM/N9/openmode_kernel_PR1.1/ |
| 268 | | - http://talk.maemo.org/showthread.php?t=81579 |
| 269 | | - http://forum.meego.com/showthread.php?t=4575&page=22 |
| 270 | | |
| 271 | | Prerequisite |
| 272 | | * Pached kernel: [http://maemo.cloud-7.de/HARM/N9/openmode_kernel_PR1.1/zImage-2.6.32.39-dfl61-20113701 zImage-2.6.32.39-dfl61-20113701] |
| 273 | | * Original firmware 20.2011.40-4 (you can download it with [http://www.symbian-toys.com/navifirm.aspx NaviFirm+], or using [https://gist.github.com/1636192 this script] on non-Windows machines.) |
| 274 | | * Nokia flasher: [http://tablets-dev.nokia.com/maemo-dev-env-downloads.php flasher_3.12.1_amd64.deb] |
| 275 | | |
| 276 | | It is recommended to flash back the device to factory state. If you have any importand data on the device, back it up first or you will lose it! |
| 277 | | |
| 278 | | Install Nokia flasher utility and download the firmware and pached kernel file to a directory. |
| 279 | | |
| 280 | | Turn off the device and disconnect it from usb. Flash the original firmware to the device: |
| 281 | | {{{ |
| 282 | | sudo flasher -F DFL61_HARMATTAN_20.2011.40-4_PR_LEGACY_001-OEM1-958_ARM.bin -F DFL61_HARMATTAN_20.2011.40-4.CENTRALEUROPE_EMMC_CENTRALEUROPE.bin -f |
| 283 | | }}} |
| 284 | | |
| 285 | | Do NOT disconnect usb cable. Do NOT restart the phone. Now, flash the pached kernel onto it: |
| 286 | | {{{ |
| 287 | | sudo flasher -f -a DFL61_HARMATTAN_20.2011.40-4_PR_LEGACY_001-OEM1-958_ARM.bin -k zImage-2.6.32.39-dfl61-20113701 |
| 288 | | }}} |
| 289 | | |
| 290 | | Now, your N9 is ready. Disconnect it from usb. It will start booting. |
| 291 | | |
| 292 | | === 3.1.b.2. Developer mode and required libraries === |
| 293 | | |
| 294 | | Enable developer mode: Settings / Security / Developer mode. After installation the device will do a reboot. |
| 295 | | |
| 296 | | Change usb connection mode: Settings / Accessories / USB to "SDK" or "Always ask". |
| 297 | | |
| 298 | | Set up wifi internet connection. Connect usb cable. |
| 299 | | |
| 300 | | On N9 menu, select SDK Connectivity / USB. It will show your password for user developer. Leave it open. |
| 301 | | |
| 302 | | Install required libs for NFS mount and add static password for 'user' user (run@host): |
| 303 | | {{{ |
| 304 | | ssh developer@192.168.2.15 |
| 305 | | |
| 306 | | echo 'rootme' | devel-su |
| 307 | | cd /root |
| 308 | | apt-get install wget |
| 309 | | wget http://maemo.cloud-7.de/HARM/N9/openmode_kernel_PR1.1/opensh/opensh.deb |
| 310 | | wget http://repo.pub.meego.com/home:/rzr:/harmattan/MeeGo_1.2_Harmattan_Maemo.org_MeeGo_1.2_Harmattan_standard/armel/libwrap0_7.6.dbs-maemo6.1_armel.deb |
| 311 | | wget http://repo.pub.meego.com/home:/rzr:/debian/harmattan/armel/portmap_6.0.0-2_armel.deb |
| 312 | | |
| 313 | | dpkg -i opensh.deb |
| 314 | | dpkg -i libwrap0_7.6.dbs-maemo6.1_armel.deb |
| 315 | | dpkg -i portmap_6.0.0-2_armel.deb |
| 316 | | |
| 317 | | passwd user |
| 318 | | |
| 319 | | exit |
| 320 | | exit |
| 321 | | }}} |
| 322 | | |
| 323 | | Create public key for ssh connection, if you don't have it already (run@host): |
| 324 | | {{{ |
| 325 | | ssh-keygen -t rsa |
| 326 | | }}} |
| 327 | | |
| 328 | | Copy public key to N9 (run@host): |
| 329 | | {{{ |
| 330 | | ssh user@device "mkdir .ssh" |
| 331 | | scp ~/.ssh/id_rsa.pub user@device:./.ssh/authorized_keys |
| 332 | | }}} |
| 333 | | Now, you don't have to enter password for 'user' when you connect to N9. |
| 334 | | |
| 335 | | |
| 336 | | === 3.1.b.3. Setup NFS on host computer (Ubuntu): === |
| 337 | | |
| 338 | | Install the required packages and share swork (run@host): |
| 339 | | {{{ |
| 340 | | sudo apt-get install nfs-kernel-server portmap |
| 341 | | sudo echo "/home/$USER/swork 192.168.2.15(rw,sync,no_root_squash)" >> /etc/exports |
| 342 | | sudo /etc/init.d/nfs-kernel-server restart |
| 343 | | }}} |
| 344 | | |
| 345 | | === 3.1.b.4. Setup NFS on N9 === |
| 346 | | |
| 347 | | Create script for mounting NFS (run@host): |
| 348 | | {{{ |
| 349 | | ssh user@192.168.2.15 "mkdir /home/user/swork; \ |
| 350 | | echo 'opensh -c \"/sbin/portmap; /sbin/modprobe nfs; mount -t nfs 192.168.2.14:/home/$USER/swork /home/user/swork\"' > nfsmount.sh; \ |
| 351 | | chmod +x nfsmount.sh " |
| 352 | | }}} |
| 353 | | |
| 354 | | Connect to N9 (run@host) |
| 355 | | {{{ |
| 356 | | ssh user@192.168.2.15 |
| 357 | | }}} |
| 358 | | |
| 359 | | Mount NFS if you didn't do it (run@n9). |
| 360 | | {{{ |
| 361 | | opensh |
| 362 | | . nfsmount.sh |
| 363 | | }}} |
| 364 | | |