Testers wanted: Squashfs


    make sure you read and understand what we expect from testers

    So what now?

    branch: https://review-subs-test-d1jlnb-archive-review-prod.recalbox.com
    Goal: make recalbox like a firmware, make updates much faster, make recalbox more robust
    Archs: Pi3 only for now. x86_64 should come shortly

    A squashfs file is like a read only image file that can be mounted like any device. Part of it is in memory.

    Steps to update and test - Pi3 only for now

    1. Update to the mentionned branch (i mean do update, not juste change the update type)
    2. Once the update is done:
    mount -o remount, rw /boot
    echo "boot=squashfs" >> /boot/recalbox-boot.conf
    /recalbox/scripts/upgrade/recalbox-upgrade.sh upgrade && reboot

    From here, Recalbox will download a squashfs, copy it on first reboot with the usual upgrade progress bar, and transparently finish the update on the following reboot.

    To make sure everything happened as expected :

    • dmesg | grep irfs should be quite self explanatory
    • mount | grep overlay should return a single line

    Expected test cases

    There are many cases that need to be tested, here are a few independant scenarios :

    • your Recalbox still boots with NOOBS
    • you have a USB key/hard drive
    • you upgraded from a 4.0.x version to 4.1 (or later)
    • you installed Recalbox with the .img

    Please report your environment as I need to make sure all cases are covered, and mostly that the update doesn't break anything.

  • Staff
    Global moderator

    @substring Ok so here is my result.

    1. Starting from 17.11.02 stable. Download of update from branch: OK
    2. Auto upgrade after reboot: OK
    3. recalbox-boot.conf trick and command-line download of update: OK
    4. Auto upgrade after reboot with "upgrading the squashfs" message: OK
    5. Final reboot: OK, Recalbox works as expected.


    # dmesg | grep irfs
    [    1.605723] (RECALBOX-irfs) Starting new boot log
    [    1.619000] (RECALBOX-irfs) Mounted: /dev/mmcblk0p2 as root source, booting to  default
    [    1.621327] (RECALBOX-irfs) UPGRADE: found /new_root/defaultroot/recalbox.squashfs.upgrade
    [    1.622274] (RECALBOX-irfs) Checking kernels ...
    [    1.623184] (RECALBOX-irfs) Couldn't find a squashfs file, or squashfs boot is not set, defaulting to SD
    [    1.624108] (RECALBOX-irfs) Kernels OK (zImage and zImage.sd) ! Continuing ...
    [    1.624185] (RECALBOX-irfs) Trying to use root from: 
    [    1.625080] (RECALBOX-irfs) Couldn't mount a squashfs
    [    1.625144] (RECALBOX-irfs) Remounting to the default root device

    So there is an issue somewhere.

    For information, here is my /boot/recalbox-boot.conf:

    # more /boot/recalbox-boot.conf

  • @oyyodams can you get /boot/boot.log please ?

  • Staff
    Global moderator

    @substring I have no boot.log file.

    For information:

    # df
    Filesystem           1K-blocks      Used Available Use% Mounted on
    none                    242132         0    242132   0% /dev
    /dev/mmcblk0p2         1874516   1240820    535137  70% /
    tmpfs                   246692         0    246692   0% /dev/shm
    tmpfs                   246692        20    246672   0% /tmp
    tmpfs                   246692      2992    243700   1% /var
    tmpfs                   246692        92    246600   0% /run
    /dev/mmcblk0p1           64511     11817     52694  18% /boot
    /dev/mmcblk0p3        13257232    913612  11647148   7% /recalbox/share

  • Out of curiosity: Does this squashfs feature will work somehow like a switch firmware in the future, having 2 "base images" and booting the newest one or the backup if the user wants to change it? Example:

    SWDEP_02# show bootvar
    Image  Filename   Version     Date                    Status
    -----  ---------  ---------   ---------------------   -----------
    1      image-1    09-Mar-2017  13:23:09   Active*
    2      image-2    01-Sep-2010  15:26:19   Not active
    "*" designates that the image was selected for the next boot

Want to support us ?