Thread
:
N900 eMMC PR1.2 flash freezes
View Single Post
storkus
2010-10-14 , 23:54
Posts: 56 | Thanked: 26 times | Joined on Aug 2010
#
30
After fighting for this problem for a few hours this afternoon, I successfully solved it and have both PR 1.2 and the vanilla eMMC image flashed.
During fighting with it, behavior between the N900 and my PC running stock Slackware 13.1 was leading me to think that the problem was on the PC rather than the tablet, mainly signs of racing between different device drivers trying to grab the N900's USB port first.
You should be able to modify this for most any Linux distro and, hopefully for OS-X as well; winblows lusers are on their own, but I'm sure there's a similar work-around there somewhere as well.
In the steps here, the "cdc_phonet" driver is a thorn. You can blacklist it if you'll be doing a lot of flashing, but if this is a one-time thing just deal with it. (This driver is the Nokia CDC modem driver that allows you to tether.)
Here are the steps I used:
1. You need kill X--particularly your window manager and its automounter--and use a regular non-graphical virtual terminal as root. In my case, I logged out of xfce and my user account and then logged back in as root (or as root in another VT).
2. Attach the tablet in flash mode as usual.
3. "rmmod cdc_phonet" (equivalent to "modprobe -r cdc_phonet" in the wiki but less to type)
4. Try to flash the the firmware (*NOT* the eMMC) first; it will probably fail. Don't forget to leave off the "-R" at the end so the tablet won't reboot (*VERY IMPORTANT*--the wiki says this but not enough emphasis is placed on it; see the bottom comments)
5. "rmmod cdc_phonet" again
6. Flash again if it didn't succeed before: this time it will.
7. Flash the eMMC; "rmmod cdc_phonet" again if necessary. Don't forget adding "-R" here at the end this time.
8. If it succeeded, flasher will tell you it did and the tablet will immediately reboot; if not, the tablet will be stuck with the dim screen.
When I figured this out, I tried to flash eMMC only; the N900 had been rebooted in between this and the last firmware flash. This caused some ugly and scary problems on the screen and constant rebooting, only fixed when I removed the battery. Re-flashing both images in order, as per the wiki instructions, left me with a clean, working device, confirmed by looking at the videos and images in the PC with the N900 in the mass storage mode (those videos and images were corrupt with the blown eMMC flash).
Here is what I think is going on: a race between flasher, xfce's HAL-driven automounter (probably trying to mount it as a SCSI storage device), and the kernel thinking it's a CDC modem; the kernel obviously wins and flasher seems to have the lowest priority of the three. Nicing up flasher may help, but I haven't tried it. I think this is confirmed in that this only hangs with flashing the eMMC, which is accessible in normal (non-flashing) mode as mass storage, but not when flashing the firmware's 256MB NAND. Watching what happens elsewhere in the host's kernel and userspace as flasher tries to upload to the eMMC would absolutely confirm this, but I don't think it's necessary at this point.
Hopefully some people with more distro-specific knowledge than me can come up with easier ways to implement this work-around that is distro--or even OS--independent.
Mike
Last edited by storkus; 2010-10-15 at
00:12
. Reason: Added additional automounter thoughts
Quote & Reply
|
The Following User Says Thank You to storkus For This Useful Post:
egoshin
storkus
View Public Profile
Send a private message to storkus
Find all posts by storkus