![]() |
#1 |
Member
![]() Posts: 16
Karma: 10
Join Date: Sep 2016
Location: Chicago
Device: PW2
|
Need some advice for resurrecting PW2 from a failed software update
After searching through many threads on this forum and google I have come to a point where I need some expert advice on a proper course of action. My stock/unrooted kindle ran into trouble during an update, where it stuck at around 15% on the 'software update' screen. It will reset when I hold the power button for 30 seconds but it immediately boots into software update and the status bar climbs back to 15%, then stops.
So far I have tried charging it for days, contacting Amazon CS, and attempting to access the kindle in both Windows and Linux, but nothing has helped. The kindle isn't recognized in either OS and the Software Update loop continues. I haven't found a similar occurrence of this issue through my searches so I'm not quite sure on the course of action. I am thinking that my issue is more of a soft-brick and am hoping that there is simply a file that needs deleting or modifying. In preparation I have ordered a MicroFTX compact MicroUSB breakout available from http://jim.sh/ftx, which will arrive tomorrow. If it's actually bricked I plan on following THIS tutorial on gist.github.com Thanks for taking the time to read this, I really appreciate any/all ideas or directions. Last edited by stack; 09-17-2016 at 04:32 PM. |
![]() |
![]() |
![]() |
#2 |
Just a Yellow Smiley.
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 19,161
Karma: 83862859
Join Date: Jul 2015
Location: Texas
Device: K4, K5, fire, kobo, galaxy
|
Is the wifi on or off?
Oh and the first 6 of the serial number. |
![]() |
![]() |
Advert | |
|
![]() |
#3 |
Going Viral
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 17,212
Karma: 18210809
Join Date: Feb 2012
Location: Central Texas
Device: No K1, PW2, KV, KOA
|
"Kindle isn't recognized in either OS" <-- which OSs are you writing about?
Hopefully, at least one of them is *nix based (#1 choice of those, Linux). Please define: "recognized". *) Connect Kindle to PC with USB cable. *) Reboot the Kindle. *) During the couple of seconds the system exports the user file system poke the flag file named: DO_FACTORY_RESTORE All caps, no extension, no contents into the top of visible USB storage. (if your using Windows, the Kindle may be too quick for it.) *) Reboot the Kindle. Report back. |
![]() |
![]() |
![]() |
#4 | |
Member
![]() Posts: 16
Karma: 10
Join Date: Sep 2016
Location: Chicago
Device: PW2
|
Quote:
![]() Serial: 9017 22 knc1: "Recognized" meaning that the kindle doesn't show with either $lsblk, $usb-devices, or #lsusb from within linux (installed/non-vm kubuntu 14.4). I am unfamiliar with "system poke the flag file". I did read that placing a DO_FACTORY_RESTORE file would do just that, but would appreciate a little more info on sending it to the kindle (if it's indeed possible). Thanks again, I really appreciate the help. Last edited by stack; 09-17-2016 at 09:02 PM. |
|
![]() |
![]() |
![]() |
#5 |
Going Viral
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 17,212
Karma: 18210809
Join Date: Feb 2012
Location: Central Texas
Device: No K1, PW2, KV, KOA
|
Assuming a Linux of some flavor on the pc.
open terminal clear kernel ring buffer: $ sudo dmesg -c Kindle is "hung" - Connect usb cord watch the kernel ring buffer for messages: watch -n1 dmesg (It should be blank at this point if the Kindle is really hung where it can't detect your plugging in the usb cable. If not, then copy messages and paste into next post.) Ring buffer still empty: Reboot Kindle. *nix recognizes USB bus changes: Code:
[883333.028027] usb 9-1: new high speed USB device number 20 using xhci_hcd [883333.054420] scsi11 : usb-storage 9-1:1.0 [883334.053069] scsi 11:0:0:0: Direct-Access Kindle Internal Storage 0100 PQ: 0 ANSI: 2 That happens early in the boot sequence, but the Kindle has only initialized the drivers to announce the USB storage device, without any media in it. Next, if the boot process gets that far, it will export the "media" (a fuse file system thingy): Code:
[883336.447790] sdc: sdc1 <<-- *** The storage media is attached - sg3 Then it is identified as a removable disk - sdc Then media is found - sdc1 (a single partition on media sdc) The file system is identified (FAT-32) At which point your desktop automation will probably auto-mount it and open a file manager window. Then when ejected by file manager action - which is actually an un-mount and then an eject - you will see: Code:
[883343.923536] sdc: detected capacity change from 3269459968 to 0 ![]() From the point marked: "<<-- ***" above, you can write to the USB storage media. (ctrl-c now to stop watching the dmesg buffer). That will happen ONCE, during early boot-up (while still in initramfs boot stage) - IF the boot sequence gets that far, you can probably do: Code:
touch /media/Kindle/DO_FACTORY_RESTORE It may not be availabe long enough for you to type it, so you will probably want to pre-type that command (in another terminal instance) OR write a simple do forever loop to keep trying the device write OR write a simple expect/send script OR get extra fancy a write a custom u-dev rule to "poke" (I.E: using :"touch" utility) the filename write when the storage media first becomes available. - - - Got the flag name written? Good! Now remove USB cable and re-boot the Kindle. It **should** restore itself. Last edited by knc1; 09-17-2016 at 09:51 PM. |
![]() |
![]() |
Advert | |
|
![]() |
#6 |
Member
![]() Posts: 16
Karma: 10
Join Date: Sep 2016
Location: Chicago
Device: PW2
|
"watch the kernel ring buffer for messages:
watch -n1 dmesg" It wasn't blank. Code:
[ 7322.256026] usb 2-10: new low-speed USB device number 9 using ohci-pci [ 7322.466037] usb 2-10: New USB device found, idVendor=1949, idProduct=dead [ 7322.466042] usb 2-10: New USB device strings: Mfr=0, Product=1, SerialNumber=0 [ 7322.466045] usb 2-10: Product: USB Charger [ 7322.478090] input: USB Charger as /devices/pci0000:00/0000:00:02.0/usb2/2-10/2-10:1 .0/input/input18 [ 7322.478259] hid-generic 0003:1949:DEAD.0007: input,hidraw4: USB HID v1.11 Device [US B Charger ] on usb-0000:00:02.0-10/input0 [ 7322.669043] usb 2-10: USB disconnect, device number 9 I would think this might be a good thing if the word "dead" wasn't displayed twice. EDIT: After rereading your instructions it appears that you initially wanted me to plug in the usb when the kindle was on and at it's "hung" state. At this point the ring buffer remains empty. "Ring buffer still empty: Reboot Kindle. *nix recognizes USB bus changes:" On reboot there is no change, there is no output for the "raw storage device" recognition step. Last edited by stack; 09-17-2016 at 11:03 PM. |
![]() |
![]() |
![]() |
#7 |
Going Viral
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 17,212
Karma: 18210809
Join Date: Feb 2012
Location: Central Texas
Device: No K1, PW2, KV, KOA
|
Serial port time now, it never gets far enough into the process for us to change the contents of USB mass storage.
For over a year, the serial port was the only way we had to jailbreak or recover a "series 5.6" Kindle device, so there is a lot written about it here. Maybe the best one giving a lot of the basics is the "serial port <something> for dummies" thread. And if a little uncertain about soldering skills, there is mention and/or links to various ways to make the connections without soldering in that thread. Last edited by knc1; 09-17-2016 at 11:34 PM. |
![]() |
![]() |
![]() |
#8 |
Member
![]() Posts: 16
Karma: 10
Join Date: Sep 2016
Location: Chicago
Device: PW2
|
Knc1, huge thank you for helping diagnose.
Do you think that it's worth trying to dd a DO_FACTORY_RESTORE file once I'm in with the serial cable? Or would you guess that at this point I'm better off trying to flash a stock image? Also, since my kindle was unrooted and I don't know exactly which software is currently installed/installing, do you have any input on which version I should be installing since I'm now planning on rooting the device to ensure no further update issues? Thanks again |
![]() |
![]() |
![]() |
#9 | |
Going Viral
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 17,212
Karma: 18210809
Join Date: Feb 2012
Location: Central Texas
Device: No K1, PW2, KV, KOA
|
Quote:
I would rather see what messages are generated by a device boot before deciding what should follow. While waiting for the jm.ftx board - - A PW-2 is still relatively new, I do not expect hardware failure. But the 9017 is the first (non-Japanese) 4Gbyte device. The Amazon customer updates **SHOULD BE** model locked, but this sounds like a 4Gbyte PW-2 trying to install the firmware for a 2Gbyte PW-2. Now if you where using one of our PW-2 factory images, those are not model locked, but the only one we have posted is a version that **SHOULD** run either storage size PW-2. But those are only speculation - let us see what messages are produced during a "from power off" boot sequence. |
|
![]() |
![]() |
![]() |
#10 |
Member
![]() Posts: 16
Karma: 10
Join Date: Sep 2016
Location: Chicago
Device: PW2
|
Serial cable in place (thanks to raz572's post HERE) so I fired up putty in Windows 10 and connected during boot.
Output below: Code:
rootfs.img.gz 212141222 [######################################] imx60_wario/uImage 2883584 [######################################] rootfs.img.gz 312463 [#:::::::::::::::::::::::::::::::::::::][ 74.177740] mmcblk0: error -110 transferring data, sector 66216, nr 264, cmd response 0x900, card status 0xd00 [ 74.187849] end_request: I/O error, dev mmcblk0, sector 66216 [ 74.193623] Buffer I/O error on device mmcblk0p1, logical block 85 [ 74.200773] end_request: I/O error, dev mmcblk0, sector 66224 [ 74.206544] Buffer I/O error on device mmcblk0p1, logical block 86 [ 74.213602] end_request: I/O error, dev mmcblk0, sector 66232 [ 74.219369] Buffer I/O error on device mmcblk0p1, logical block 87 [ 74.226408] end_request: I/O error, dev mmcblk0, sector 66240 [ 74.232175] Buffer I/O error on device mmcblk0p1, logical block 88 [ 74.239212] end_request: I/O error, dev mmcblk0, sector 66248 [ 74.244980] Buffer I/O error on device mmcblk0p1, logical block 89 [ 74.252022] end_request: I/O error, dev mmcblk0, sector 66256 [ 74.257789] Buffer I/O error on device mmcblk0p1, logical block 90 [ 74.264819] end_request: I/O error, dev mmcblk0, sector 66264 [ 74.270586] Buffer I/O error on device mmcblk0p1, logical block 91 [ 74.277618] end_request: I/O error, dev mmcblk0, sector 66272 [ 74.283385] Buffer I/O error on device mmcblk0p1, logical block 92 [ 74.290419] end_request: I/O error, dev mmcblk0, sector 66280 [ 74.296186] Buffer I/O error on device mmcblk0p1, logical block 93 [ 74.303220] end_request: I/O error, dev mmcblk0, sector 66288 [ 74.308986] Buffer I/O error on device mmcblk0p1, logical block 94 [ 74.316009] end_request: I/O error, dev mmcblk0, sector 66296 [ 74.321784] end_request: I/O error, dev mmcblk0, sector 66304 [ 74.327555] end_request: I/O error, dev mmcblk0, sector 66312 [ 74.333326] end_request: I/O error, dev mmcblk0, sector 66320 [ 74.339099] end_request: I/O error, dev mmcblk0, sector 66328 [ 74.344870] end_request: I/O error, dev mmcblk0, sector 66336 [ 74.350641] end_request: I/O error, dev mmcblk0, sector 66344 [ 74.356412] end_request: I/O error, dev mmcblk0, sector 66352 [ 74.362184] end_request: I/O error, dev mmcblk0, sector 66360 [ 74.367954] end_request: I/O error, dev mmcblk0, sector 66368 [ 74.373724] end_request: I/O error, dev mmcblk0, sector 66376 [ 74.379494] end_request: I/O error, dev mmcblk0, sector 66384 [ 74.385263] end_request: I/O error, dev mmcblk0, sector 66392 [ 74.391033] end_request: I/O error, dev mmcblk0, sector 66400 [ 74.396803] end_request: I/O error, dev mmcblk0, sector 66408 [ 74.402574] end_request: I/O error, dev mmcblk0, sector 66416 [ 74.408344] end_request: I/O error, dev mmcblk0, sector 66424 [ 74.414113] end_request: I/O error, dev mmcblk0, sector 66432 [ 74.419882] end_request: I/O error, dev mmcblk0, sector 66440 [ 74.425651] end_request: I/O error, dev mmcblk0, sector 66448 [ 74.431420] end_request: I/O error, dev mmcblk0, sector 66456 [ 74.437189] end_request: I/O error, dev mmcblk0, sector 66464 [ 74.442957] end_request: I/O error, dev mmcblk0, sector 66472 [ 79.881944] mmcblk0: error -110 transferring data, sector 1263328, nr 256, cmd response 0x900, card status 0xb00 [ 85.319061] mmcblk0: error -110 transferring data, sector 1263328, nr 256, cmd response 0x900, card status 0x0 [ 85.329146] end_request: I/O error, dev mmcblk0, sector 1263328 [ 85.338317] mmcblk0: timed out sending r/w cmd command, card status 0x400b00 [ 90.771481] mmcblk0: error -110 transferring data, sector 1263329, nr 255, cmd response 0x900, card status 0x0 [ 90.781557] end_request: I/O error, dev mmcblk0, sector 1263329 [ 90.790733] mmcblk0: timed out sending r/w cmd command, card status 0x400b00 ^A[ 96.223920] mmcblk0: error -110 transferring data, sector 1263330, nr 254, cmd response 0x900, card status 0x0 [ 96.233992] end_request: I/O error, dev mmcblk0, sector 1263330 [ 96.243156] mmcblk0: timed out sending r/w cmd command, card status 0x400b0[ 101.676344] mmcblk0: error -110 transferring data, sector 1263331, nr 253, cmd response 0x900, card status 0x0 [ 101.686487] end_request: I/O error, dev mmcblk0, sector 1263331 [ 101.695613] mmcblk0: timed out sending r/w cmd command, card status 0x400b00 rootfs.img.gz 212141222 [######################################] imx60_wario/uImage 2883584 [######################################] rootfs.img.gz 312463 [#:::::::::::::::::::::::::::::::::::::][ 74.177740] mmcblk0: error -110 transferring data, sector 66216, nr 264, cmd response 0x900, card status 0xd00 Last edited by stack; 09-18-2016 at 06:47 PM. |
![]() |
![]() |
![]() |
#11 |
Going Viral
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 17,212
Karma: 18210809
Join Date: Feb 2012
Location: Central Texas
Device: No K1, PW2, KV, KOA
|
#1 - Use your Linux install, Windows will not connect to the serial port in time to get what we need.
#2 - a dummy run, after the Kindle has completed its boot and started the <whatever> it is doing - I.E: So that diddling with minicom's setup isn't sending to the Kindle something that might otherwise do something (good or bad) Got all the options on minicom set so that it is working? Save that as the default configuration. Now in the future you can start minicom with that configuration and skip it sending anything by: Code:
minicom -o
THEN we can decide what needs to be done. |
![]() |
![]() |
![]() |
#12 |
Member
![]() Posts: 16
Karma: 10
Join Date: Sep 2016
Location: Chicago
Device: PW2
|
Took me a minute to get acquainted with minicom. Thanks again for all the help
Last edited by stack; 09-18-2016 at 10:40 PM. |
![]() |
![]() |
![]() |
#13 |
Going Viral
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 17,212
Karma: 18210809
Join Date: Feb 2012
Location: Central Texas
Device: No K1, PW2, KV, KOA
|
(The majority of our readers are not members - so in cases like this, I try to write for entire audience.)
The SoC has some on-chip, static, RAM and some code in ROM to get things started - Then it loads and runs u-boot: Code:
U-Boot 2009.08-lab126 (Aug 05 2014 - 04:37:39) Went complete, it pauses before loading and executing the (combined) initramfs kernel and ram file system (what you see in your PC's grub menu as the kernel= and initrd= entries). The Kindel's u-boot gives you an opportunity (of about 1 to 2 seconds) to stop the load and run of the initramfs and remain in interactive u-boot here: Code:
Hit any key to stop autoboot: 1 0 PS: All of the identification information that u-boot prints out, line 23 - line 30 is specific to the board and not stored in any of the file systems - so keep a copy of this information in case it is ever required to setup the eMMC (or its blank replacement). The u-boot menu (there are two of them) has an "Erase All" choice - don't try it - it does exactly what the selection says - and then your device is toast unless you have the above information. (Sometimes, Lab126 has fixed that coding error in some firmware versions.) So we continue with loading the kernel: Code:
## Booting kernel from Legacy Image at 80800000 ... Code:
Starting kernel ... The auto-boot sequence can be interrupted at this point: Code:
Press [ENTER] for recovery menu... 0 Before doing a switch-root to the on eMMC system, the initramfs checks (and corrects as required) the partitioning and formatting of the eMMC: Code:
//dev/mmcblk0p4: CHS=4/16/104512 size=3424649216 bytes flag type first last lba first lba size Partition p1: 0x00 0x0b 16 <large> 16 6688752 CHS: 0/1/1 - <large> Partition p2: Partition p3: Partition p4: Code:
Charge: 91% [######################################################::::] update-payload.dat:1 8a21c7f18eb739bb2e348aa34a038f1b imx60_wario/uImage 22 main_kernel 128 e89fe09e72e7bfc948c451f141f51f4a rootfs.img.gz 1618 update_image_rootfs Code:
imx60_wario/uImage 137330 Next we update the main system image (in partition 1): Code:
rootfs.img.gz 50399 Code:
imx60_wario/uImage 137330 Then checks the new system image: Code:
rootfs.img.gz 0 Code:
[#:::::::::::::::::::::::::::::::::::::][ 74.190221] mmcblk0: error -110 transferring data, sector 66216, nr 264, cmd response 0x900, card status 0xd00 But may be recoverable even from this hard, hardware error and mis-matched kernel / kernel modules. - - - - - This is already a very long post (for educational purposes of our lurking audience). And it is late at night here. So I will follow up tomorrow when mind is still fresh on the things we will try to recover from this. PS: Remove your current attachment, and using a text editor, XXX out at least your serial number and board id before re-p0sting it. The reason is that somebody might try to hijack that unique information. Leading to both your and the hijacker's Kindles being blacklisted. (Note that I did not quote that information in the above.) Last edited by knc1; 09-18-2016 at 11:20 PM. |
![]() |
![]() |
![]() |
#14 |
Member
![]() Posts: 16
Karma: 10
Join Date: Sep 2016
Location: Chicago
Device: PW2
|
Very informative, thank you. I felt a little weird sending the cap with that info so I actually hashed out the last 10 characters/digits from both the serial and board ID before you responded. I have also stored the pertinent device info in a safe place in case I do something very stupid in the future
![]() In the meantime I have retrieved my password but I am hesitant to do any more without instruction. I would love to know which firmware is installed, and attempting to install, and if in fact Amazon pushed the wrong update to my device. I'm still a little peeved that this sort of failure isn't covered by Amazon's warranty. Still, I am extremely grateful for your time and expertise, and would love to get it working again without buying a new device. |
![]() |
![]() |
![]() |
#15 |
Going Viral
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 17,212
Karma: 18210809
Join Date: Feb 2012
Location: Central Texas
Device: No K1, PW2, KV, KOA
|
The eMMC does not have as "smart" a micro-controller built-in as an SSD does, but it does have one and we will try various ways to get it to map-out the bad erase blocks.
The sequence is: U-Boot menu - Recovery menu - We will start at the higher level ( the recovery menu ): #1 - Stop the boot sequence at the "recovery menu" place The recovery menu will have an "export usb storage" (or words to that effect) selection. Hook up USB cable to PC, select that choice. Note: You may have to type something every 5 .. 10 seconds to keep the menu from timing out - space usually works. When that selection is made, your PC's automation should auto-mount it and open a file manager (just as if it where normal). Delete the update file(s) - you probably have both a *.bin and a *.stgz (or something like that). Add the: "DO_FACTORY_RESTORE" flag filename to visible root. With file manager: "eject" Remove USB cord With the Recovery Menu - "Exit" or "Reboot" or whatever it is named. It it doesn't restart, restart it with the power button, wait. You can watch what is happening on the serial port - it **might** loop, trying to write an erase block, error, map-out, try again - - - etc. And eventually run (even with the mis-matched kernel / kernel-modules. The worse that can happen is it will get hung again in another hardware failure loop. #2 Presuming the above failed to do any good - From the JB thread: https://www.mobileread.com/forums/sho...d.php?t=275877 Step #3, get the factory initial firmware for a PW-2 (and its MD5SUM). As above, enter Recovery Menu, Cable, Export USB storage, put that factory initial firmware at the root of visible storage. CHECK ITS MD5SUM - remember we are working with flaky storage. Repeat moving the factory initial update file to the Kindle until you get a good copy in-place (the micro-controller is a bit dumb, it will only map out one block per try). Got that in place? eject, remove cable, reboot (menu or power button). Your trying something un-tried so far - see if the factory initial firmware can recover the device - - I **think** this is the package that the "refurbish" people use. If your lucky, that will fix it. If not - we will have to get serious and tackle it at a lower level. Last edited by knc1; 09-19-2016 at 03:57 PM. |
![]() |
![]() |
![]() |
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
Kindle PW2 Software Update 5.6.1 | kaznelson | Amazon Kindle | 67 | 02-05-2017 04:17 AM |
PW2 software update issue, Amazon cs says broken | stack | Amazon Kindle | 5 | 09-14-2016 10:08 PM |
Kindle PW2 Software Update 5.6.1: Does old JB method work? | kaznelson | Kindle Developer's Corner | 112 | 11-27-2014 06:18 PM |
Kindle PW2 Software Update 5.4.5.1 | JoHunt | Amazon Kindle | 16 | 10-27-2014 03:27 PM |
Advice Regarding Kindle PW2 and Kobo Aura | Crimmers | Which one should I buy? | 9 | 01-01-2014 02:25 PM |