Quote:
Originally Posted by Lucas Malor
Yes, it's as you think. uImage is used only if PLATFORM=freescale.
It seems that the factory reset simply overwrite the u-boot. This way you'll see only the "connect to PC to start" message. The firmware will be downloaded by the Desktop app: it's not reinstalled by the factory reset. So in theory it still will not update the kernel.
|
No, that's not right. The factory reset boots from the recoveryfs partition. It contains a compressed copy of the initial firmware, uBoot and uImage files. During the boot, it runs its versions of the upgrade script. This reformats the other two partitions, installs the uBoot and uImage files, unpacks the firmware to the rootfs partition and creates the database on the user partition. Then it does a restart.
After the restart, the firmware knows it has to be setup, so it the prompts you to do it. Exactly what happens depends on the device and the factory reset firmware. My Glo resets to 2.1.5 and can do the setup without a computer. My Touch goes back to 1.9.11 and needs the computer. Both can be connected to the computer and the database changed so they don't need to do the setup.
Quote:
But the question is: PLATFORM="freescale" at this point? It will be freescale if
PHP Code:
dd if=/dev/mmcblk0 bs=512 skip=1024 count=1 | grep -c "HW CONFIG"
returns 0, whatever it means. You should try to reinstall the multitouch and see if a factory reset remove it.
|
At them moment, I don't want to do that. But, I have used telnet to run the statement and it returned 1. Hence, $PLATFORM is "mx50-ntx" and $CPU is "mx50".
Quote:
Other questions are: what means that cpu is "freescale"? For what I know all Kobo eink product use a freescale cpu. What's the difference between the two kernel images? It seems that the "freescale" image is a generic image. What is the purpose of the specific image, and why the firmware package doesn't include all the specific kernels? Previous firmware packages have also kernel images for other hw, like uImage-E606B0?
|
The kernel images depend on the hardware. I have a statement from Kobo that the Glo, Mini and N905C Touch have different PCB revisions but share the same kernel. The Aura HD has a different kernel which is "uImage-E606C0". The firmware package for the Aura has another kernel image. I haven't seen anything other than these and the common uImage in any firmware package.
The problem is that for the Glo, the $PLATFORM will not be "freescale". After executing:
Code:
PLATFORM=freescale
if [ `dd if=/dev/mmcblk0 bs=512 skip=1024 count=1 | grep -c "HW CONFIG"` == 1 ]; then
CPU=`ntx_hwconfig -s -p /dev/mmcblk0 CPU`
PLATFORM=$CPU-ntx
fi
$PLATFORM is "mx50-ntx" and $CPU is "mx50". That means the next IF statement is true and the block executed. At the end of that $UBOOT will be "/mnt/onboard/.kobo/upgrade/mx50-ntx/u-boot_mddr_512-E606C0-K4X2G323PC.bin". And $KERNEL will not be set.
The latter is because:
Code:
NEW_KERNEL=/mnt/onboard/.kobo/upgrade/$PLATFORM/uImage-$PCB
evaluates to set $NEW_KERNEL to "/mnt/onboard/.kobo/upgrade/mx50-ntx/uImage-E606C0". That file doesn't exist so:
Code:
[ -e $NEW_KERNEL ] && KERNEL=$NEW_KERNEL
means that $KERNEL isn't set.
So when "upgrade-generic.sh" is called, no name for the kernel image is passed and hence it isn't installed.
Quote:
PS: I wouldn't seem arrogant, but IMHO Kobo devs should follow more the DRY principle.
|
Personally, I just want them to fix the code so it does what it should.