Add xteink fork dev tooling (native flake devShell + README)
build / Vars (push) Successful in 2s
build / Build (aarch64-apple-darwin, ./.github/workflows/scripts/configure-macos.sh, ./.github/workflows/scripts/prerequisites-macos.sh, macos-14-xlarge, bash -e {0}, riscv32-softmmu) (push) Has been cancelled
build / Build (aarch64-apple-darwin, ./.github/workflows/scripts/configure-macos.sh, ./.github/workflows/scripts/prerequisites-macos.sh, macos-14-xlarge, bash -e {0}, xtensa-softmmu) (push) Has been cancelled
build / Build (debian:11.11, aarch64-linux-gnu, ./.github/workflows/scripts/configure-cross-linux-arm64.sh, ./.github/workflows/scripts/prerequisites-cross-linux-arm64.sh, ubuntu-22.04, bash -e {0}, riscv32-softmmu) (push) Has been cancelled
build / Build (debian:11.11, aarch64-linux-gnu, ./.github/workflows/scripts/configure-cross-linux-arm64.sh, ./.github/workflows/scripts/prerequisites-cross-linux-arm64.sh, ubuntu-22.04, bash -e {0}, xtensa-softmmu) (push) Has been cancelled
build / Build (debian:11.11, x86_64-linux-gnu, ./.github/workflows/scripts/configure-native.sh, ./.github/workflows/scripts/prerequisites-native.sh, ubuntu-22.04, bash -e {0}, riscv32-softmmu) (push) Has been cancelled
build / Build (debian:11.11, x86_64-linux-gnu, ./.github/workflows/scripts/configure-native.sh, ./.github/workflows/scripts/prerequisites-native.sh, ubuntu-22.04, bash -e {0}, xtensa-softmmu) (push) Has been cancelled
build / Build (x86_64-apple-darwin, ./.github/workflows/scripts/configure-macos.sh, ./.github/workflows/scripts/prerequisites-macos.sh, macos-14, bash -e {0}, riscv32-softmmu) (push) Has been cancelled
build / Build (x86_64-apple-darwin, ./.github/workflows/scripts/configure-macos.sh, ./.github/workflows/scripts/prerequisites-macos.sh, macos-14, bash -e {0}, xtensa-softmmu) (push) Has been cancelled
build / Build (x86_64-w64-mingw32, ./.github/workflows/scripts/configure-win.sh, windows-2022, msys2 {0}, riscv32-softmmu) (push) Has been cancelled
build / Build (x86_64-w64-mingw32, ./.github/workflows/scripts/configure-win.sh, windows-2022, msys2 {0}, xtensa-softmmu) (push) Has been cancelled
build / Upload (push) Has been cancelled

This commit is contained in:
xteink
2026-07-20 17:49:07 -04:00
parent 543cebcb3a
commit 13b9231f6e
2 changed files with 79 additions and 0 deletions
+39
View File
@@ -0,0 +1,39 @@
# xteink QEMU fork
Espressif's QEMU fork carrying the xteink X3/X4 (ESP32-C3) machine model and a
wasm32 TCG backend (ported from [ktock/qemu-wasm](https://github.com/ktock/qemu-wasm)),
used by [xteink-web-emulator](../xteink-web-emulator) to run CrossPoint firmware
in the browser.
## Branch
- `main` — the working branch. Base is Espressif's `esp-develop-9.2.2-20260417`
(`40edccac`).
## Remotes
- `origin` — https://ssh.gitea.va.reichard.io/evan/qemu-xteink
- `upstream` — https://github.com/espressif/qemu
- `qemu-wasm` — https://github.com/ktock/qemu-wasm (source of the wasm32 backend)
## Building
### Native (parity check — authoritative)
```sh
nix develop
./configure --target-list=riscv32-softmmu --with-devices-riscv32=xteink --enable-gcrypt
ninja -C build qemu-system-riscv32
```
### WebAssembly
Driven by the parent repo, not here:
```sh
cd ../xteink-web-emulator
make web-dev # incremental build straight from this tree
```
The parent's `scripts/build-qemu-wasm.sh` compiles this checkout inside the
emsdk Docker image defined in `xteink-web-emulator/qemu/wasm/Dockerfile`.
+40
View File
@@ -0,0 +1,40 @@
{
description = "Espressif QEMU fork with the xteink X3/X4 (ESP32-C3) machine and a wasm32 TCG backend";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
flake-utils.url = "github:numtide/flake-utils";
};
outputs =
{ self, nixpkgs, flake-utils }:
flake-utils.lib.eachDefaultSystem (
system:
let
pkgs = nixpkgs.legacyPackages.${system};
in
{
# Native build/test shell. The wasm target is built by the parent
# xteink-web-emulator repo via its emsdk Docker toolchain, not here.
#
# nix develop
# ./configure --target-list=riscv32-softmmu --with-devices-riscv32=xteink \
# --enable-gcrypt && ninja -C build qemu-system-riscv32
devShells.default = pkgs.mkShell {
inputsFrom = [ pkgs.qemu ];
packages = with pkgs; [
gnumake
git
ninja
meson
pkg-config
libgcrypt
libslirp
pixman
dosfstools
mtools
];
};
}
);
}