grml-debootstrap or package compiling is easy when doing same architecture builds but crossbuilds and crosscompiling are where things get complicated. The qemu-arm compilation step is unecessary in this guide and the packaged version is good enough.
grml-debootstrap or package compiling is easy when doing same architecture builds but crossbuilds and crosscompiling are where things get complicated.
Cross builds are missing features in grml-debootstrap or
image-bootstrap. Post feature requests against both projects. Or add
these features to these projects. We cannot [also no need] invent this here.
debootstrap’s inability to automatically prepare the kernel is a deliberate design choice and not a missing feature:
The qemu-debootstrap wrapper calls debootstrap(8) making use of the --foreign and --second-stage options, and copies the appropriate qemu-user-static(1) binary into place in order to install cross-architecture chroots. In order for it to work seamlessly, the binfmt-support package must be installed.
I just want to drop in to tell you both that I GREATLY appreciate this effort. Hopefully a useable build can come to fruition.
At the present moment, is it possible to at least use qemu to build a working Whonix Gateway containing some binary blobs / precompiled headers etc? I may be willing to run a mostly-transparent build if this is the case. What is the status in this regard?
Resurrecting this old thread …
I gave it a try and running the scripts in build-steps.d/ with some minor modifications + some rpi firmware stuff gave a bootable image for the rpi 3 which connected to the tor network.
A problem is in the 1300 script with grml-debootstrap. It will always try to install grub-pc and fail since the package is not available for arm64. Is it somehow possible to disable the whonix build script error handler for this specific error or to just automatically continue? Cross debootstrapping works otherwise.
Running the image is still sort of slow/buggy, maybe because of kde/gui or other reasons.
Is there some kind of list of essential packages for a non-gui gateway?
Running 1300 alone takes 1:15 h which I’d like to cut down.
I would love if the grml_packages file would not be required. Would be much better if that could just be a normal variable.
Seems like a bug or missing feature in grml-debootstrap. Feel free to work on that with upstream so we could make it easier to not hardcode that file / content in Whonix for easy arm support without need to modify a file beforehand.
grml_packages should already be as minimal as possible without confusing grml-debootstrap. By removing grub-pc without replacement the image may or may not boot. Perhaps there is a package tailored for arm? See list: https://packages.debian.org/source/buster/grub2
There is variable last_failed_bash_command in https://github.com/Whonix/Whonix/blob/master/help-steps/pre. In function errorhandlerprocessshared we could check a to be introduced variable with a whitelist of commands (maybe just the first word of the variable) which are ignored to fail or something like that.
But that may not work for this specific case since this error is deep inside grml-debootstrap which is from Whonix build script perspective just a single command.