Phase 1: Prepare Kernel (Linux aarch64 Build VM)
-
Download & Extract Kernel:
wget https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.6.85.tar.xz tar xvJf linux-6.6.85.tar.xz cd linux-6.6.85 -
Configure & Compile Kernel:
| from Crypto.Cipher import ARC4 | |
| from hashlib import sha1, md5 | |
| from random import randint | |
| from ecutils.core import Point, EllipticCurve | |
| from sys import argv | |
| KCHARS = "BCDFGHJKMPQRTVWXY2346789" | |
| SPK_ECKEY = { | |
| "a": 1, |
Phase 1: Prepare Kernel (Linux aarch64 Build VM)
Download & Extract Kernel:
wget https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.6.85.tar.xz
tar xvJf linux-6.6.85.tar.xz
cd linux-6.6.85Configure & Compile Kernel:
With its latest reales qemu added the Venus patches so that virtio-gpu now support venus encapsulation for vulkan. This is one more piece to the puzzle towards full Vulkan support.
An outdated blog post on clollabora described in 2021 how to enable 3D acceleration of Vulkan applications in QEMU through the Venus experimental Vulkan driver for VirtIO-GPU with a local development environment. Following up on the outdated write up, this is how its done today.
Let's start with the brief description of the projects mentioned in the post & extend them:
Here's a script that creates and runs a virtual machine running Raspberry Pi OS Desktop or Lite with a GUI.
It is based on cGandom's guide on setting up a Raspberry Pi OS Lite VM without a GUI.
Quoting that guide:
"This isn't full-blown hardware emulation of the Raspberry Pi 4, but more about creating a virtual environment for the OS."
The main improvements made by this script over that guide are:
Just a quick update before we dive in: what we're actually doing here is running Raspberry Pi OS (64-bit) on a QEMU virtual ARM setup. This isn't full-blown hardware emulation of the Raspberry Pi 4, but more about creating a virtual environment for the OS. It doesn't mimic all the specific hardware features of the Pi 4, but it's pretty useful and great for general testing. I turned to this solution mainly to extract a modified sysroot from the Raspberry Pi OS, something not readily available in other resources. For those looking into detailed emulation of the actual Raspberry Pi 4's hardware in QEMU, check out this link for the latest updates: https://gitlab.com/qemu-project/qemu/-/issues/1208.
Hope it helps! :D
Shortcomings: No GUI yet, only console.
If you want to change things on the root drive of a Mac you will need to take some steps to disable the built in security of the system. Most of these steps are the same regardless if you are on Intel or Apple Silicon. If there is a difference it is noted.
Note that all of these things put a Mac into an unsupported and less secure state.
Make sure you either perform these steps in a VM or that you reset the protections after you are done poking around
(This list is not exahustive on the details of each. Check the links at the end for more info.)
| #!/usr/bin/env bash | |
| set -ex | |
| # https://bogo.wtf/arm64-to-sim.html | |
| ios_plat=ios | |
| simulator_plat=simulator | |
| make() { | |
| for name in $@; do |
You've just finished installing and configuring all those packages on your first machine. Now it's just a matter of cloning the hard drive into all the others and changing the hostname. Right?
Well, not so easy. If you wish to avoid conflicts on your network, backups and elsewhere, i.e. if you wanna end up with a unique fingerprint for each machine, you must go a few steps further.
Here follows a checklist to help you out. It's aimed at Debian and derivates (e.g. Ubuntu), though other distros won't be much different.
The old way: edit /etc/hostname and /etc/hosts
| #!/bin/sh | |
| mkdir ~/tmp | |
| cd ~/tmp | |
| # See | |
| # Typical ARM triples (see "armv7l-linux-gnueabi") | |
| # https://bgamari.github.io/posts/2019-06-12-arm-terminology.html | |
| # GCC -march options | |
| # https://gcc.gnu.org/onlinedocs/gcc/ARM-Options.html |