On 1/18/26 00:23, n9iu7pk wrote:
Hi NoisyCoil,
Hi David,

> Again, I'd encourage this work to *also* keep an eye to long-term implementation > on Raspberry Pis. Pis are widely available and inexpensive, so supporting them

I agree fully. Apples M's have been an important step for arm architectures to move away from iot and smartphones. But unlike Apples M architecture, the RPi's must not be patched to boot a different os.

Apple Silicon machines do not need to be patched to boot a different OS. They need a bootloader to provide UEFI. RPis' boot partitions similarly must contain early-boot software + firmware, which is provided by Raspberry itself in the form of proprietary binary blobs. For Apple Silicon, those are "provided" by Apple (really downloaded from Apple's servers), in the form of a macOS stub partition + firmware (still proprietary). The main differences between Raspberry and Apple in this respect are Raspberry documents how to boot an OS, supports direct kernel loading and provides customer support to boot different OSes, while Apple doesn't.

On the other hand, linux on Apple Silicon only uses ordinary arm64 software (except for the kernel, the upstreaming of which is wip), while linux on RPis often does not, it needs to be pulled from Raspberry's archive. The reason why the RPi builds broke immediately upon upgrading to Trixie, at variance with the other platforms (generic arm64, Apple Silicon, X13s, none of these broke) is because for RPis I had to use that repository to make the images work fully. The last time I tried using the ordinary Debian archive (except for the custom kernel) for the RPis, the RPi 5 couldn't even connect to the internet. AFAIK the RPi5 is not even supported by Debian, and at least some other models only have partial support. I was also never able to run the Tails test suite on the RPi image, while I could do it for every other platform's image.

In summary: linux on RPis is (very) much harder than linux on Apple Silicon. This is thanks to the Asahi project who documented these platforms and worked in a way to integrate them into the wider arm64 ecosystem. Raspberry has not done the same work for their boards.

Boards like RPi5 (Rock's, Hardkernel's, Banana's) are cheaper then Apples M's.

NoisyCoil asked
 > I have one question for the Tails developers/infra maintainers.
 > Is there any chance Tails could provide time-based and tagged
From my point of view - that's also one of the biggest issue towards an RPi5 image.

The last weeks I worked to buld a Trixe ARM64 for RPi5 on a RPi5 based on NoisyCoil's repo and branch wip/triie/raspi, see my fork https:// gitlab.tails.boum.org/N9iu7pk/rpi-5 from NoisyCoil, branch wip/triie/ raspi, commit https://gitlab.tails.boum.org/N9iu7pk/rpi-5/-/ commit/31275aaee7ef1af2677b10effa75cf89c9df5640 (not public, you must be logged in)config/chroot_sources/raspi.chroot

I don't understand why this was needed, the usual hacks still work for me. I've been building all arm64/asahi 7.x images and I've just built a RPi image using them. My current nginx configuration is in attachment. Also, config/arm64-disable-tails-upgrade-frontend-wrapper.patch still works for me, it seems I haven't changed it since wip/trixie/raspi.

I have now integrated the changes from wip/trixie/raspi into the wip/raspi branch and bumped everything to Tails 7.4. Ftr, I haven't built the other 7.4 images yet, but I already have working branches.

It's possible to build images for a RPi5 on a RPi5. The image boots (efi) but currently fails to find the live partition (initram stage).

Confirmed, this is the state in which I left the raspi branches, and one can now build Tails 7.4 from wip/raspi.

It is a very experimental build and should only be used for development purposes:

- to get arm64/aarch64 packages NoisyCoil's patch/hack (nginx reverse proxy) was used twice: On the buld "machine" (RPi5) as well as inside of the building virtual machine.

This too, I didn't need any hack inside the virtual machine IIRC.

- due to this "hack" apt_cache-ng can't be used, the rake build must be started with export TAILS_BUILD_OPTIONS="noproxy" - a newer version of NoisyCoils Tor browser was needed (as 14.5.7 wasn't available any more)

Yeah sorry about that, gitlab.com has a storage limit on artifacts and I must delete older Tor Browser builds to make room for new ones. As a result, only downloading the latest stable or alpha is really supported. Fortunately, going forward I will have twice the space I had in the past, since I don't need to build alphas anymore.

- follow the changes in the commit ...

I'll provide soon short doc/info for #10972 and try to solve the boot problem.

Looking forward to that!

Regards N9iu7pk

PGP 7426 4598 B5AD 4D12 1699 C710 [ D602 E331 4D12 FFCB ]
https://keys.openpgp.org/search?q=D602E3314D12FFCB

Cheers!
server {
    server_name time-based.snapshots.deb.tails.boum.org;

    #access_log /var/log/nginx/access-tails-snapshots.log;
    #error_log /var/log/nginx/error-tails-snapshots.log;

    rewrite ^/(debian|debian-security)/[0-9]+(/?.*) http://deb.debian.org/$1$2;
    rewrite ^/torproject/[0-9]+(/?.*) 
http://deb.torproject.org/torproject.org$1;
    rewrite ^/[0-9.]+(/?.*) http://deb.debian.org$1;

    location ~ 
^/(debian|debian-security|tails|torproject)/project/trace/(debian|debian-security|tails|torproject)
 {
        proxy_pass http://204.13.164.63:80;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-Protocol $scheme;
        proxy_set_header X-Forwarded-Host $http_host;
    }

    location ~ ^/tails {
        proxy_pass http://204.13.164.63:80;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-Protocol $scheme;
        proxy_set_header X-Forwarded-Host $http_host;
    }

    listen 127.0.0.1:80;
    listen *:80;
}

server {
    server_name tagged.snapshots.deb.tails.boum.org;

    #access_log /var/log/nginx/access-tails-snapshots.log;
    #error_log /var/log/nginx/error-tails-snapshots.log;

    rewrite ^/[0-9a-z.-]+/(debian|debian-security)/(.*) 
http://deb.debian.org/$1/$2;
    rewrite ^/[0-9a-z.-]+/torproject/(.*) 
http://deb.torproject.org/torproject.org/$1;

    listen 127.0.0.1:80;
    listen *:80;
}

_______________________________________________
Tails-dev mailing list
[email protected]
https://www.autistici.org/mailman/listinfo/tails-dev
To unsubscribe from this list, send an empty email to 
[email protected].

Reply via email to