|
|
Line 22: |
Line 22: |
| =Debrick= | | =Debrick= |
| | | |
- | ==Debrick without reflashing!==
| + | Separate [[User:Jebba/Flash| page about flashing]], for your perusal. |
- | I have found a way to "de-brick" a device that does not require reflashing.
| + | |
- | | + | |
- | If your device is booting up and hung with the second dot lit, like:
| + | |
- | | + | |
- | * (*) * * *
| + | |
- | | + | |
- | this may solve your problem.
| + | |
- | | + | |
- | 1) Get the proprietary (gah!) Nokia firmware flashing program.
| + | |
- | | + | |
- | 2) Power off your phone.
| + | |
- | | + | |
- | 3) Hold down "u" on your fone and plug the USB cable into your phone and your GNU/Linux laptop. This will put it in the same mode as you need when you are flashing it.
| + | |
- | | + | |
- | 4) Run this command as root (or preface with "sudo"). It will only take a second or two.
| + | |
- | | + | |
- | ./flasher-3.5 --enable-rd-mode
| + | |
- | | + | |
- | 5) Unplug cables and your system will reboot (or poweroff).
| + | |
- | | + | |
- | 6) Boot up your system, it is now in R&D mode. :) It will (possibly?) prompt you to enter time/data again.
| + | |
- | | + | |
- | 7) Now that everything is fine, power off the system normally again. DO NOT LEAVE YOUR SYSTEM IN R&D MODE, as it eats babies.
| + | |
- | | + | |
- | 8) With your phone powered off hold down "u" on the phone, and plug in the USB cables to the phone and your GNU/Linux laptop.
| + | |
- | | + | |
- | 9) Run this command as root (or preface with "sudo"). It will only take a second or two.
| + | |
- | | + | |
- | ./flasher-3.5 --disable-rd-mode
| + | |
- | | + | |
- | 10) Unplug cables and your system will reboot (or poweroff).
| + | |
- | | + | |
- | 11) Boot up your system, it is now recovered and NO DATA LOSS! Yippeee.
| + | |
- | | + | |
- | | + | |
- | More info
| + | |
- | -----------
| + | |
- | Photos of what the hang looks like using a kernel that has the framebuffer console enabled:
| + | |
- | [http://www.freemoe.org/users/jebba/MALF/] | + | |
- | | + | |
- | | + | |
- | Some bugs, maybe related:
| + | |
- | [https://bugs.maemo.org/show_bug.cgi?id=5450] | + | |
- | [https://bugs.maemo.org/show_bug.cgi?id=6350]
| + | |
- | | + | |
- | | + | |
- | If you found this post helpful, please vote for this bug:
| + | |
- | [https://bugs.maemo.org/show_bug.cgi?id=7019]
| + | |
- | | + | |
- | | + | |
- | ==Too mucha programmaz==
| + | |
- | I bricked my N900 (December 3rd) by adding the extras-testing + extras-devel repos and then installing lots of applications. I hit 100% on / (root filesystem) and on reboot the system hung at the "dots" part, ala:
| + | |
- | | + | |
- | * (*) * * *
| + | |
- | | + | |
- | I had filled up to 100% a number of times before and rebooting the phone had '''cleared''' up space (e.g. 100% full before reboot, 96% full after reboot). This is likely because 5% or so is reserved for root. Anyway, the most recent time it didn't come back alive...
| + | |
- | | + | |
- | ===Gah, bricked again===
| + | |
- | I was "participating" in the "[http://talk.maemo.org/showthread.php?p=414650 Bug] [[Bugsquad#Bugdays|day]]", when someone suggested installing gettext to look at translations. I installed this, but got up to 99% full. I then did an `apt-get clean` to empty the cache and this dropped me to 98% full. I've often booted gnulinux boxes with 99% (or even 100%) full, so I figured 98% was fine. I wanted to reboot because often when you reboot the N900, you get space freed, due to the icon cache being liberated. Anyway, on reboot, I got a brick exactly as described above with the second dot more lit than the others (which I have seen reported by others):
| + | |
- | | + | |
- | * (*) * * *
| + | |
- | | + | |
- | This time I have my handy kernel with a console, so I can actually see WTF is going on. [http://www.freemoe.org/users/jebba/MALF/ The images here show some details]. In sum, things booted up and the root filesystem check went fine. Then it got an error right after "Freeing Init memory 152K" like this:
| + | |
- | | + | |
- | getbootstate: Unexpected reset count 50 exceeds maximum (51)
| + | |
- | getbootstate: Entering state 'MALF'.
| + | |
- | getbootstate: Houston, we have a problem, powering off...
| + | |
- | | + | |
- | The /sbin/getbootstate program is in the package "getbootstate". But look at this and hold back the tears:
| + | |
- | | + | |
- | [sbox-FREMANTLE_ARMEL: ~/getbootstate] > apt-get source getbootstate
| + | |
- | Reading package lists... Done
| + | |
- | Building dependency tree... Done
| + | |
- | E: Unable to find a source package for getbootstate
| + | |
- | | + | |
- | The getbootstate package appears to be closed source. :( That pretty much ends the debugging and my bug day. Gah.
| + | |
- | | + | |
- | ==Flashing N900 with 0xFFFF==
| + | |
- | Many parts of the N900 are Free Software, but lamentably, many parts are still closed proprietary shit. Nokia's maemo_flasher program is an example of a closed application that Nokia makes for use with the N900. I understand why some parts of their suite are still closed (e.g. pre-ofono GSM stack), but why the flasher has to be closed I have no idea. Gar.
| + | |
- | | + | |
- | Thankfully, there is [http://www.nopcode.org/0xFFFF/ The 0pen Free Fiasco Firmware Flasher], which is designed for flashing Nokia tablets and is [http://www.gnu.org/philosophy/free-sw.html Free Software] (GPLv3). Unfortunately, 0xFFFF doesn't work with the N900. There is [http://www.mail-archive.com/0xffff@lists.nopcode.org/msg00072.html some progress to support the device]. You can grab the most recent code from the mercurial repository thusly:
| + | |
- | hg clone http://hg.youterm.com/0xFFFF
| + | |
- | | + | |
- | I sent the author of 0xFFFF the output of my crash. Hopefully it will soon be a usable tool for flashing the N900. I built RPMs for Fedora 12 x86_64 running the latest mercurial code--the ones in the Fedora repo aren't even the lastest tarball release (0.3.9 vs. 0.4.0).
| + | |
- | | + | |
- | ===0xFFFF for Fedora===
| + | |
- | * NOTE: recently I checked out the code via Mercurial and saw that the 0xFFFF developer has added much more N900 specific code, but I haven't tried it yet.
| + | |
- | | + | |
- | * UPDATE: I have built the latest and greatest code of 0xFFFF from today and made a Fedora 12 package. You can grab it here:
| + | |
- | | + | |
- | Binary:
| + | |
- | * [http://www.freemoe.org/users/jebba/fedora/12/x86_64/0xFFFF-0.4.0-0jebba.fc12.x86_64.rpm 0xFFFF-0.4.0-0jebba.fc12.x86_64.rpm]
| + | |
- | | + | |
- | Source:
| + | |
- | * [http://www.freemoe.org/users/jebba/fedora/12/SRPMS/0xFFFF-0.4.0-0jebba.fc12.src.rpm 0xFFFF-0.4.0-0jebba.fc12.src.rpm]
| + | |
- | | + | |
- | * The 0xFFFF GUI uses [http://code.google.com/p/gtkaml/ gtkamlc]. This is not packaged in Fedora. I built it, but compiling the GUI is still barfing.
| + | |
- | | + | |
- | ==Flashing with Nokia's Proprietary maemo_flasher==
| + | |
- | I [http://wiki.blagblagblag.org/Roadmap now] have ONE non-free program installed on my computer :( It's the only way I know how to debrick the phone.
| + | |
- | | + | |
- | See also: [[Updating_the_firmware | Updating tablet firmware]] on this wiki.
| + | |
- | | + | |
- | * To get the most recent image from Nokia, go here: http://tablets-dev.nokia.com/nokia_N900.php
| + | |
- | * Enter product ID inside the phone (without "/"s)
| + | |
- | * Grab RX-51_2009SE_1.2009.42-11_PR_COMBINED_MR0_ARM.bin or whatever is current.
| + | |
- | * To get the proprietary stinking pile of poo, go here: http://tablets-dev.nokia.com/maemo-dev-env-downloads.php
| + | |
- | * Grab maemo_flasher-3.5_2.5.2.2.tar.gz or most recent.
| + | |
- | * In Fedora 12 x86_64 I had to install some i686 libraries since my system is 64-bit. So:
| + | |
- | yum -y install glibc.i686 libusb.i686
| + | |
- | * Untar the files....
| + | |
- | * Power off phone and unplug USB.
| + | |
- | * Hold down "u" on N900 keyboard and plug in USB cable between computer and N900. A USB icon will appear in the upper right corner--you can let go of "u" on the keyboard at this point.
| + | |
- | * Run this as root:
| + | |
- | ./flasher-3.5 -F ~/devel/maemo/FLASH/RX-51_2009SE_1.2009.42-11_PR_COMBINED_MR0_ARM.bin -f -R
| + | |
- | * Done.
| + | |
- | | + | |
- | ===Info from flasher===
| + | |
- | sudo ./flasher-3.5 --query-rd-mode
| + | |
- | flasher v2.5.2 (Oct 21 2009)
| + | |
- |
| + | |
- | USB device found found at bus 002, device address 008.
| + | |
- | Found device RX-51, hardware revision 2101
| + | |
- | NOLO version 1.4.13
| + | |
- | Version of 'sw-release': RX-51_2009SE_1.2009.42-11_PR_MR0
| + | |
- | The device is in production mode
| + | |
- | | + | |
- | ===Unpacking flash image===
| + | |
- | | + | |
- | $ mkdir RX-51_2009SE_1.2009.42-11_PR_COMBINED_MR0_ARM-UNPACKED
| + | |
- |
| + | |
- | $ cd RX-51_2009SE_1.2009.42-11_PR_COMBINED_MR0_ARM-UNPACKED/
| + | |
- |
| + | |
- | $ sudo flasher-3.5 -u -F ../RX-51_2009SE_1.2009.42-11_PR_COMBINED_MR0_ARM.bin
| + | |
| | | |
| =Setup= | | =Setup= |
Thankfully, pre-bricking, I had made a backup. There are a billion different ways to do this, but one quick way is good old rsync. This script backs up everything except the --excluded directories which are either things I don't want to back up (cities) or things you can't/shouldn't back up (/proc).
Hope you enjoyed the show. Feel free to edit this page.