Whonix on Mac M1 (ARM) - User Support (still unsupported at time of writing)

`key>Network

<dict>

    <key>Hardware</key>

    <string>virtio-net</string>

    <key>Mode</key>

    <string>bridged</string>

    <key>BridgeInterface</key>

    <string>en4</string>

</dict>

`

Will adding this to the plist configuration file effect the special networking that is preconfigured?

I did what you said and tried to figure out how to avoid whonix gateway avoid the host is VPN. Utm needs to be put in to bridged mode so it can connect directly to the default network adaptor.

For anyone else having this problem. Double check the plist configuration files, if RTC has local time to true changed it to false, then whonix gateway and workstation will default to UTC.

It would really help to post this with the proper formatting. Not that I would have more insights but generally you get better result answers if you put more effort into drafting the question as per General Advice.

Will adding this to the plist configuration file effect the special networking that is preconfigured?

bridged networking:
Warning: Bridged Networking

I wasn’t aware it incorrectly formatted.

I guess it isn’t worth messing around with the networking side off things…

Its been a long time since i have tried building this again. Tried to follow the build guide to every detail. But seems like i have missed something or something went wrong.

I have the build log but not sure where to share it now that anonpaste.org is down.

but from what i can see from the build it fails around here:

+ printf ' %s*%s Enabling force option (-F) for mkfs.ext* tool as requested via --force switch.\n' 'e[32;01m' 'e[0m'
 e[32;01m*e[0m Enabling force option (-F) for mkfs.ext* tool as requested via --force switch.
+ LAST_E_CMD=einfon
+ return 0
+ return 0
+ MKFS_OPTS=' -F'
+ '[' -n mkfs.ext4 ']'
+ '[' mkfs.ext4 = mkfs.ext4 ']'
+ case "$RELEASE" in
+ '[' -n mkfs.ext4 ']'
+ '[' mkfs.ext4 = mkfs.ext4 ']'
+ case "$RELEASE" in
+ '[' -n mkfs.ext4 ']'
+ '[' -n /dev/mapper/loop0p1 ']'
+ einfo 'Running mkfs.fat  -F on /dev/mapper/loop0p1'
+ einfon 'Running mkfs.fat  -F on /dev/mapper/loop0p1\n'
+ '[' '' '!=' yes ']'
+ '[' einfon = ebegin ']'
+ printf ' %s*%s Running mkfs.fat  -F on /dev/mapper/loop0p1\n' 'e[32;01m' 'e[0m'
 e[32;01m*e[0m Running mkfs.fat  -F on /dev/mapper/loop0p1
+ LAST_E_CMD=einfon
+ return 0
+ return 0
+ mkfs.fat -n EFI /dev/mapper/loop0p1
mkfs.fat 4.2 (2021-01-31)
+ MKFS_OPTS=' -F -L LINUX'
+ einfo 'Running mkfs.ext4  -F -L LINUX on /dev/mapper/loop0p3p3'
+ einfon 'Running mkfs.ext4  -F -L LINUX on /dev/mapper/loop0p3p3\n'
+ '[' '' '!=' yes ']'
+ '[' einfon = ebegin ']'
+ printf ' %s*%s Running mkfs.ext4  -F -L LINUX on /dev/mapper/loop0p3p3\n' 'e[32;01m' 'e[0m'
 e[32;01m*e[0m Running mkfs.ext4  -F -L LINUX on /dev/mapper/loop0p3p3
+ LAST_E_CMD=einfon
+ return 0
+ return 0
+ mkfs.ext4 -F -L LINUX /dev/mapper/loop0p3p3
mke2fs 1.47.0 (5-Feb-2023)
The file /dev/mapper/loop0p3p3 does not exist and no size was specified.
++ error_handler
++ last_exit_code=1
++ last_bash_command='"$MKFS" $MKFS_OPTS "$TARGET"'
++ echo 'Unexpected non-zero exit code 1 in /usr/sbin/grml-debootstrap /usr/sbin/grml-debootstrap /usr/sbin/grml-debootstrap at line 1322 2168 0 detected!
last bash command: "$MKFS" $MKFS_OPTS "$TARGET"'
Unexpected non-zero exit code 1 in /usr/sbin/grml-debootstrap /usr/sbin/grml-debootstrap /usr/sbin/grml-debootstrap at line 1322 2168 0 detected!
last bash command: "$MKFS" $MKFS_OPTS "$TARGET"
++ command -v bailout
++ bailout 1
++ eend 1
++ local retval=1
++ shift
++ '[' 1 -gt 0 ']'
++ printf ' %s-> Failed (rc=%s)%s\n' 'e[31;01m' 1 'e[0m'
 e[31;01m-> Failed (rc=1)e[0m
++ return 1

and then i get this error:

last_failed_bash_command: $SUDO_TO_ROOT --preserve-env $DEBOOTSTRAP_PREFIX dist_build_multiarch_package_item="$dist_build_target_arch" bash -x -e "$dist_build_grml_bin" --debopt "$dist_build_debopt" --arch "$dist_build_target_arch" --filesystem "$dist_build_file_system" --vmefi --force --hostname "$dist_build_hostname" --nopassword --release "$dist_build_apt_stable_release" --keep_src_list --verbose --vmfile --vmsize "$VMSIZE" --packages "$source_code_folder_dist/grml_packages" --mntpoint "$dist_grml_mount_point" --target "$binary_image_raw"
############################################################
'
++ unset error_reason
++ '[' ERR = INT ']'
++ '[' ERR = TERM ']'
++ '[' ERR = ERR ']'
++ '[' '!' 0 = 0 ']'
++ true 'INFO: dist_build_auto_retry set to 0 (--retry-max). No auto retry.'
++ unset dist_build_auto_retry_counter
++ true
++ ignore_error=false
++ answer=
++ '[' ERR = ERR ']'
++ '[' '' = true ']'
++ '[' -t 0 ']'
++ true 'INFO: stdin connected to terminal, using interactive error handler.'
++ true 'ERROR: An issue in ././build-steps.d/3200_create-raw-image has been detected!

Please READ this message carefully.

Copying/pasting/screenshotting this error message alone will not be insightful, and no help can be provided with it alone as it does not contain comprehensive information by itself. Instead, please scroll up and review the block encapsulated within ### for more detailed information.

For support queries, it is essential to, at minimum, provide the portion of the log located above this message containing the actual error details. In many instances, providing a longer segment or the entire log may be necessary for an effective diagnosis.

Regrettably, assistance cannot be provided without the aforementioned details.

Options:

Choose either option A), B), C) or D).

 - A) Press c and press enter to bypass this error and continue with the build. (For Developers Only!) (Strongly discouraged for regular users as it may lead to unstable builds! Please refrain from reporting any issues encountered subsequently!)
 - B) Press r and enter to retry.
 - C) Press s and enter to initiate a chroot interactive shell. (For Developers Only!)
 - D) Press a and enter to abort.'

Hopefully this is enough or else i need to share the build log somewhere else?

No further logs required.

Well tried building 17.0.9.1-developers-only using the command:

$ ~/derivative-maker/derivative-maker --flavor whonix-gateway-xfce --target utm --arch arm64 --tb open --repo true --vmsize 15G

still get the same error. Tell me if you need any logs from me or anything i can do to make this work. Or if i should wait until this is resolved.

Tried with build 17.0.9.6-developers-only got a new fault.

+ sudo --non-interactive --preserve-env=tbb_version,tb_onion,tpo_downloader_debug,tb_disable_anon_ws_dnf_conf,anon_shared_inst_tb,SKIP_SCRIPTS,SOURCE_DATE_EPOCH,dist_aptgetopt_file,dist_build_sources_list_primary,dist_mmdebstrap_build_sources_list_primary,dist_build_sources_list_primary_contents,dist_build_apt_sources_mirror,dist_build_apt_stable_release,dist_build_target_arch,dist_grml_mount_point,dist_source_help_steps_folder,dist_build_multiarch_package_item,dist_build_unsafe_io,dist_build_version,derivative_maker,user_name,LD_PRELOAD,LANG,LC_ALL,TZ,DEBDEBUG,XZ_OPT,REPO_PROXY,APTGETOPT,apt_unattended_opts,DERIVATIVE_APT_REPOSITORY_OPTS,DEBOOTSTRAP,http_proxy,https_proxy,ALL_PROXY,DEBIAN_FRONTEND,DEBIAN_PRIORITY,DEBCONF_NOWARNINGS,APT_LISTCHANGES_FRONTEND,INITRD apt-get -o Acquire::http::Proxy=http://127.0.0.1:3142 -o Acquire::https::Proxy=http://127.0.0.1:3142 -o Acquire::tor::Proxy=http://127.0.0.1:3142 -o APT::Update::Error-Mode=any -o Acquire::Languages=none -o Acquire::IndexTargets::deb::Contents-deb::DefaultEnabled=false -o Apt::Install-Recommends=false -o Acquire::Retries=5 -o Dpkg::Options::=--force-confnew -o Dir::Etc::sourcelist=/home/parallels/derivative-maker/build_sources/debian_stable_current_clearnet.list -o Dir::Etc::sourceparts=- --no-install-recommends --yes install signify-openbsd osslsigncode systemd-container sudo ronn diffutils debhelper dctrl-tools dialog haveged devscripts git reprepro libfile-fcntllock-perl config-package-dev dh-apparmor dh-python build-essential lintian gawk bash-completion grep debian-archive-keyring vbindiff lsb-release pv python3-all-dev python3-stdeb time cowbuilder strip-nondeterminism mktorrent transmission-cli apt-transport-tor python3 gnupg2 apt-cacher-ng fakeroot mmdebstrap arch-test fakechroot fakeroot gpg libdistro-info-perl mount uidmap apt-transport-https apt-transport-tor apt-utils binfmt-support ca-certificates debootstrap distro-info-data dpkg-dev perl-doc proot qemu-user qemu-user-static squashfs-tools-ng squashfs-tools xorriso grub-efi-amd64-bin grub-efi-amd64-signed mtools grml-debootstrap kpartx mksh parted qemu-utils dosfstools zerofree signify-openbsd codecrypt curl moreutils rsstail rsync stunnel4 socat fasttrack-archive-keyring lsof coreutils live-build
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Package grub-efi-amd64-bin is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

Package grub-efi-amd64-signed is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Package 'grub-efi-amd64-bin' has no installation candidate
E: Package 'grub-efi-amd64-signed' has no installation candidate
++ exception_handler_general ERR
++ last_failed_exit_code=100
++ last_failed_bash_command='$SUDO_TO_ROOT apt-get ${APTGETOPT[@]} -o Dir::Etc::sourcelist="$dist_build_sources_list_primary" -o Dir::Etc::sourceparts="-" $apt_unattended_opts --no-install-recommends --yes install $packages_to_be_installed'
++ output_cmd_set
++ '[' -o xtrace ']'
++ output_cmd=true
++ true 'INFO: Middle of function exception_handler_general of ././build-steps.d/1200_prepare-build-machine.'
++ exception_handler_process_shared ERR
++ last_script=././build-steps.d/1200_prepare-build-machine
++ trap_signal_type_previous=
++ '[' '' = '' ']'
++ trap_signal_type_previous=unset
++ trap_signal_type_last=ERR
++ dist_build_error_counter=1
+++ benchmarktimeend 1702253016
++++ date +%s
+++ benchmarktimeend=1702253021
+++ benchmark_took_seconds=5
++++ convertsecs 5
++++ local h m s
++++ (( h=5/3600 ))
++++ true
++++ (( m=(5%3600)/60 ))
++++ true
++++ (( s=5%60 ))
++++ printf '%02d:%02d:%02d\n' 0 0 5
+++ echo 00:00:05
++ benchmark_took_time=00:00:05
++ local first
++ read -r first _
++ process_backtrace_function
++ true 'INFO: BEGIN: process_backtrace_function'
++ '[' -o xtrace ']'
++ set +x
++ true 'INFO: END  : process_backtrace_function'
++ function_trace_function
++ true 'INFO: BEGIN: function_trace_function'
++ '[' -o xtrace ']'
++ set +x
++ true 'INFO: END  : function_trace_function'
++ output_cmd_set
++ '[' -o xtrace ']'
++ output_cmd=true
++ true '

Seems the script is trying to download grub-efi-amd64-bin when i am building this on a arm system. And using --arch arm64 as a flag. Not sure if this is supposed to happen?

I didn’t say it’s fixed.

Guess i will wait a bit and follow the development forward.

2 posts were merged into an existing topic: Whonix on Mac M1 (ARM) - Development Discussion

Managed to build on version 17.1.0.2-developers-only just wanted to mention it and managed to make it work after some utm problems. I have not tried to build the newest version yet. But will try in a few days.

Hopefully in the future a virtualbox vm will be available to apple silicon chipset in the future (That is stable). But for now at least i just got to live with UTM.

That being said, maybe one time i might try to build this for KVM just to see what really is the difference in settings compared too UTM. Sounds interesting. But i hope virtualbox will be done soonish.

1 Like

Okay tried to build 17.1.1.4-developers-only and tor browser failed to download. Tried to use the command: update-torbrowser --resume and it tried to download 13.0.8 of the arm port of tor browser. But it gets a 404. I went and checked sourceforge for the repository where arm tor browser is. And on Tor Browser Ports by holind. There are no 13.0.8 at the moment i tried to download it. Only 13.0.6. Is this a fault from my end? or something else went wrong?

No.

The service you’re looking for, that is free, up-to-date Tor Browser ARM64 builds is not provided by anyone on the internet.

I see, well just reporting that the build is trying to download a version that does not exist anywhere.

What I could do is for non-redistributable builds setting the default to:

  • A) --tb none (not attempt to download Tor Browser), or
  • B) --tb open (attempt to download but do not consider download failure a reason to break the build process. The latter would be bad for reproducible builds as this can lead to inconsistent (with or without Tor Browser) images but not an issue for the foreseeable future.

I had the exact same issue. Here’s how to fix it.

Check the latest version here: (remove space)
sourceforge. net/projects/tor-browser-ports/files/

Now use that specific version:

tbb_version=13.0.6 update-torbrowser

That worked well and installed it without any issues.

Was implemented.

  • Will be the default in the next version after 17.1.1.5.
  • Not yet in 17.1.1.5.

I see, will see and wait then. But been a while since the repo has last been taged. So reason for me not saying much. Also thanks Dmitry, knew of way to get tor-browser to work again. Just want to make it work out of the box.