Quote:
Originally Posted by Lucas Malor
As far as I've understood: - if there's a Kobo.tgz in the /mnt/onboard/.kobo/ directory, all the new files are copied to /usr/local/Kobo/
- If there's a KoboRoot.tgz, all the new files are copied to the root
|
Yes, but it might be better to say "unpacked to ..." as both of these are compressed files.
Quote:
- If there's an upgrade directory, the entire internal SD partitions will be overwritten by new partition images
|
It is more complicated than that. The scripts query the hardware to decide which of the uBoot and uImage files to use. Then they install these files.
The problem I see is that the file names are built up using the amount of RAM, the PCB identifier and the RAM type. Looking at the 3.2.0 Mark4 firmware package, there is a uBoot file for the four different devices. But, there are only two uImage files. One is for the Aura HD. The other is just called "uImage" and Kobo have said it is for the three other devices. The uImage is the kernel.
The scripts build the file names, checks if they exist and if they do, they are installed. But, there is no failback to the non-device specific version. So, with the current code, the kernel is not being installed on the Glo, Mini and N905C Touch.
The reason I noticed this was the multi-touch kernel. I installed that and it worked OK. But, I wanted to remove it and retest the supplied kernel. All I did was to put the 3.2.0 firmware package back on. I was surprised when the multi-touch still worked. So, I looked at what was happening. That was when I read the install code and became suspicious. I put the firmware package back on, copied "uImage" to "uImage-E606B0" and the install happened. I also used telnet to connect and run the scripts manually with extra echo statements to see what happened. This also suggested I was right.
That was the part I was hoping someone would confirm or disprove.
The other part of this is that I had a look at the install scripts that are put onto the device when you do a factory reset. Firstly, the factory reset installs the kernel that is in the recovery partition. Then, the first firmware upgrade uses the install scripts that the factory reset installs. These do basically the same thing, but will use the uImage file if a more specific version isn't found.
What all this means is that after a factory reset and upgrade, the device will always have the kernel that came with that firmware installed. But, a later firmware upgrade will not install the latest kernel for the Glo, Mini and N905C Touch. This probably isn't that important as looking through the last few firmware versions, the uImage file has stayed the same size. There is a pretty good chance that means it hasn't changed. So, if you have done a factory reset recently, you will be OK. But, if you haven't ever done one, you might have the wrong kernel. This would also explain why some people have had trouble with some firmware but after a factory reset and upgrade, it was all OK.
That's what I think is happening. My tests seem to confirm it. But, I'm not confident with shell scripts, so I might have missed something. So, I was hoping someone would confirm or disprove it.