10-04-2017, 07:48 PM | #16 |
Member
Posts: 12
Karma: 10000
Join Date: Sep 2017
Device: Kindle PW2
|
The plan is to change how the display temperature is retrieved, having the adc_disp_gettemp_work function hard-set display_temp_c to a sane value, say 25c (which also happens to be the default sane value chosen: #define DISP_DEFAULT_TEMP 25).
This will ensure that a comparison for the battery temperature still takes place, while also disabling the constant ADC polls. Whether the display will come out unreadable remains to be seen; so far, the display temperature gets set to either 43 or 75C depending on the kernel and I've yet to see unreadable output on it. Again, I'm open to any suggestions, minus relegating it to the spare parts bin - not giving up just yet On kernel recompilation, I used the 5.4.3.2 sources, built the included toolchain, & got as far as the compile stage (using these instructions). I used the .config from a live 5.4.3.2 kernel, retrieved from /proc/config.gz. However, I'm now stuck at: Spoiler:
These seem to be the files from the statically linked initramfs. Extracting this and the files contained within from the 5.4.3.2 uImage is no problem thanks to this guide, but I'm not sure how to work it back into the kernel compile stage. The goal is to get a functional kernel compiled, after which I can make the necessary modifications to max77696-adc.c. |
10-05-2017, 12:02 AM | #17 |
Member
Posts: 12
Karma: 10000
Join Date: Sep 2017
Device: Kindle PW2
|
The above turned out to be a deceptively easy fix: dump all the initramfs files in a folder, change initramfs.list locations to match, and voila.
Next up: Code:
CC init/version.o LD init/built-in.o LD .tmp_vmlinux1 arch/arm/mach-mx6/built-in.o: In function `arch_idle_single_core': usb_h1.c:(.text+0x874): undefined reference to `wdg_prep' arch/arm/mach-mx6/built-in.o: In function `reduce_bus_freq': usb_h1.c:(.text+0xfd0): undefined reference to `wdg_prep' usb_h1.c:(.text+0x111c): undefined reference to `wdg_prep' arch/arm/mach-mx6/built-in.o: In function `set_high_bus_freq': usb_h1.c:(.text+0x13f0): undefined reference to `wdg_prep' make: *** [.tmp_vmlinux1] Error 1 Code:
cat .config | grep WDT CONFIG_IMX_HAVE_PLATFORM_IMX2_WDT=y CONFIG_IMX2_WDT=y Code:
#ifdef LAB126 void wdg_prep(){ imx2_wdt_ping(); } #endif Code:
cat .config | grep LAB126 CONFIG_LAB126_PRINTK_BUFFER=y CONFIG_LAB126=y |
Advert | |
|
10-05-2017, 01:49 AM | #18 |
Member
Posts: 12
Karma: 10000
Join Date: Sep 2017
Device: Kindle PW2
|
It worked!
Inspired by coplate's thread I decided to try compiling with 5.8.1 instead. I used the same process to retrieve the 5.8.1 kernel's config & initramfs. I then made one simple modification to drivers\hwmon\max77696-adc.c: Code:
static void adc_disp_gettemp_work(struct work_struct *work)
{
/*this is the only place display_temp gets updated, so no mutex needed! */
display_temp_c = 25;
schedule_delayed_work(&adc_disp_temp_work, msecs_to_jiffies(DISP_ADC_TEMP_THRESHOLD));
return;
}
I'd still like to successfully compile a 5.4.x kernel with the 'fix' - once this is done I will revisit the thread and document the process start to finish. The build issue with the 5.4.3.2 kernel in the previous post remains open. This has now also been resolved, once the errors mentioned above are resolved the kernel compiles just fine & behaves just as the 5.8.1 does - no ADC hits, no temp check failures. That said, I'm not satisfied with the way I resolved it, so this step will be documented once I figure it out to my satisfaction. Now I'm happy with it, essentially looked at how they were doing it in the 5.8.7.0 kernel and adapted the 5.4.3.2 source, very few changes needed. Documentation coming soon. Last edited by varu; 10-05-2017 at 01:25 PM. |
12-09-2017, 09:03 AM | #19 |
Junior Member
Posts: 1
Karma: 10
Join Date: Dec 2017
Device: Kindle Paperwhite 3
|
Hey varu, very nice work!
I studied your researches and as it looks i've exact the same problem on my PW3. Could you mabye post your patched kernel for 5.8.1? I'm facing some serious troubles with my toolchain-installation so i'm not yet able to compile it myself... |
12-15-2017, 12:51 AM | #20 |
Member
Posts: 12
Karma: 10000
Join Date: Sep 2017
Device: Kindle PW2
|
My apologies, it's been on my mind every now and then but I haven't gotten a chance to do a proper writeup. If you still need it, let me know and I'll write something up quick, else I'll do something a bit more thorough by the end of the year (I had this on weekly notification and the behaviour indicates a polling script that unfortunately ran the day before you posted).
I'm not sure of the differences between the PW2 and PW3, I only compiled mine for the PW2 so I have no idea if it'd work. I'm also not sure if posting a compiled kernel is allowed on the forum, if I remember correctly I had to extract various binaries & modules from the existing kernels & add them to the source for the compile process to work. FYI, after leaving the thing on a non-smart charger for 4-5 days (the one I was using would cut off supply after the current draw sank below a certain threshold), the ADC stopped misbehaving! No more warnings with the diag or any other stock kernel, as well as successful boots every time (I tested a number of stock firmwares out of sheer disbelief.. worked fine every time) & an excellent battery life. Although I don't quite understand why this is the case, the evidence speaks for itself.. I should've listened to Cinisajoy and just left the thing plugged in Last edited by varu; 12-15-2017 at 12:57 AM. |
Advert | |
|
12-15-2017, 07:45 AM | #21 |
Going Viral
Posts: 17,212
Karma: 18210809
Join Date: Feb 2012
Location: Central Texas
Device: No K1, PW2, KV, KOA
|
The kernel is GPLv2 - post away.
In fact, according to the license, you MUST make your changes available to the public. (that is what the 'P' stands for in the name). |
01-17-2020, 09:29 AM | #22 |
Groupie
Posts: 198
Karma: 123456
Join Date: Jan 2018
Device: Too Much Kindle :-)
|
I know this is an old thread but maybe someone will be useful to what I discovered.
I had exactly the same problem as @Varu, i.e. battery error 22 after restart, and when the reader was sometimes able to start, the display worked very slowly. In the logs I found exactly the same errors regarding the lack of display temperature reading. In my case, the system set the default reading at -10 ° C (14 ° F), which I guess was the reason for the very slow operation of the display. I found on the internet that the ED060XD4 display has a built-in 10k thermistor on pins 30-31. When I looked at my display under the microscope, the cause of the problem appeared immediately - the temperature sensor was torn off. I don't know how it could happen because my reader was never taken apart. After repairing the connections, everything works as it should, no errors. |
01-17-2020, 01:10 PM | #23 |
Going Viral
Posts: 17,212
Karma: 18210809
Join Date: Feb 2012
Location: Central Texas
Device: No K1, PW2, KV, KOA
|
That is a thermal stress crack created during the board's reflow soldering process.
I.E: Not the proper temperature curve at that point in the board. Which also makes sense, that is near the edge of the board and your motherboard might well have been on the edge of that group of motherboards. Translation: Shit Happens |
04-06-2020, 06:26 PM | #24 |
Junior Member
Posts: 1
Karma: 10
Join Date: Apr 2020
Device: Kindle PW2
|
amazing! I found a kindle pw2 in the company e-waste with this error and thought it would be a simple battery replacement to fix. I've been "hacking" on it for days and was about to give up. Saw this post and sure enough the thermistor is long gone. I didn't want to order the part and wait a week to try it out so I just soldered a regular 10k resistor (the thermistor would be 10k at about room temp) and booted right up! Unfortunately it turns out there is other damage and the touch screen no longer works. But it's super cool to see it running again!
|
Tags |
boot, code, loop, repair |
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
KPW1 needs repair. Code 2. Serial port fix. | amocus | Kindle Developer's Corner | 8 | 09-03-2015 02:30 PM |
[Need Help] PW2 fault with Repair Code 2 | matrix121985 | Kindle Developer's Corner | 2 | 11-13-2014 03:37 AM |
pw2 Repair Needed help please! | pes2014a | Kindle Developer's Corner | 7 | 04-21-2014 09:55 AM |
Kindle PW2 now £89 for a short time with coupon code | BookCat | Amazon Kindle | 19 | 02-28-2014 03:30 PM |