feat(deploy): add batm3 ISO build target
Add batm3 to flake.nix NixOS configs, live.nix (CDC ACM kernel modules, MEI udev rules), and build-iso.sh. Default fiat: USD. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
71eff33f1e
commit
dc5f4f8aa6
3 changed files with 19 additions and 2 deletions
|
|
@ -9,6 +9,7 @@
|
||||||
# bash build-iso.sh douro # Bay Trail, kernel 5.15, GTQ
|
# bash build-iso.sh douro # Bay Trail, kernel 5.15, GTQ
|
||||||
# bash build-iso.sh tejo # UP4000, kernel 6.6, GTQ
|
# bash build-iso.sh tejo # UP4000, kernel 6.6, GTQ
|
||||||
# bash build-iso.sh sintra # UPBoard, kernel 6.6, EUR
|
# bash build-iso.sh sintra # UPBoard, kernel 6.6, EUR
|
||||||
|
# bash build-iso.sh batm3 # General Bytes BATM3, EBDS validator, USD
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
MODEL="${1:-}"
|
MODEL="${1:-}"
|
||||||
|
|
@ -17,13 +18,14 @@ if [ -z "$MODEL" ]; then
|
||||||
echo " douro - Bay Trail Atom, kernel 5.15, eDP panel, GTQ"
|
echo " douro - Bay Trail Atom, kernel 5.15, eDP panel, GTQ"
|
||||||
echo " tejo - UP4000/UPBoard, kernel 6.6, GTQ"
|
echo " tejo - UP4000/UPBoard, kernel 6.6, GTQ"
|
||||||
echo " sintra - UPBoard, kernel 6.6, EUR"
|
echo " sintra - UPBoard, kernel 6.6, EUR"
|
||||||
|
echo " batm3 - General Bytes BATM3, EBDS validator, USD"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
case "$MODEL" in
|
case "$MODEL" in
|
||||||
douro|tejo|sintra) ;;
|
douro|tejo|sintra|batm3) ;;
|
||||||
*)
|
*)
|
||||||
echo "ERROR: Unknown model '$MODEL'. Use 'douro', 'tejo', or 'sintra'."
|
echo "ERROR: Unknown model '$MODEL'. Use 'douro', 'tejo', 'sintra', or 'batm3'."
|
||||||
exit 1
|
exit 1
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,7 @@ let
|
||||||
douro = "GTQ";
|
douro = "GTQ";
|
||||||
tejo = "GTQ";
|
tejo = "GTQ";
|
||||||
sintra = "EUR";
|
sintra = "EUR";
|
||||||
|
batm3 = "USD";
|
||||||
}.${machineModel} or "USD";
|
}.${machineModel} or "USD";
|
||||||
|
|
||||||
# .env template — runtime secrets are provisioned later via provision-atm.sh.
|
# .env template — runtime secrets are provisioned later via provision-atm.sh.
|
||||||
|
|
@ -86,6 +87,11 @@ in
|
||||||
"usbserial" # USB-to-serial adapters (ttyUSB0/1 for validator/printer)
|
"usbserial" # USB-to-serial adapters (ttyUSB0/1 for validator/printer)
|
||||||
"ftdi_sio" # FTDI USB serial (common in ATM peripherals)
|
"ftdi_sio" # FTDI USB serial (common in ATM peripherals)
|
||||||
"cp210x" # CP210x USB serial (alternative adapter)
|
"cp210x" # CP210x USB serial (alternative adapter)
|
||||||
|
] ++ lib.optionals (machineModel == "batm3") [
|
||||||
|
"cdc_acm" # USB CDC ACM for MEI BNR Advance validator
|
||||||
|
"usbserial" # USB-to-serial for F56 dispenser adapter
|
||||||
|
"ftdi_sio" # FTDI USB serial (common RS232 adapter)
|
||||||
|
"cp210x" # CP210x USB serial (alternative adapter)
|
||||||
];
|
];
|
||||||
|
|
||||||
kernelParams = [
|
kernelParams = [
|
||||||
|
|
@ -207,6 +213,11 @@ in
|
||||||
KERNEL=="ttyS[0-9]*", MODE="0666"
|
KERNEL=="ttyS[0-9]*", MODE="0666"
|
||||||
KERNEL=="ttyUSB[0-9]*", MODE="0666"
|
KERNEL=="ttyUSB[0-9]*", MODE="0666"
|
||||||
KERNEL=="ttyACM[0-9]*", MODE="0666"
|
KERNEL=="ttyACM[0-9]*", MODE="0666"
|
||||||
|
'' + lib.optionalString (machineModel == "batm3") ''
|
||||||
|
|
||||||
|
# ── BATM3 MEI BNR Advance USB CDC ACM ──────────────────────────────
|
||||||
|
# Stable symlink for the bill validator (vendor 0x0bed = MEI)
|
||||||
|
SUBSYSTEM=="tty", ATTRS{idVendor}=="0bed", SYMLINK+="ttyValidator"
|
||||||
'' + lib.optionalString (machineModel == "tejo") ''
|
'' + lib.optionalString (machineModel == "tejo") ''
|
||||||
|
|
||||||
# ── Tejo serial port symlinks ──────────────────────────────────────
|
# ── Tejo serial port symlinks ──────────────────────────────────────
|
||||||
|
|
|
||||||
|
|
@ -57,6 +57,7 @@
|
||||||
douro = "GTQ";
|
douro = "GTQ";
|
||||||
tejo = "GTQ";
|
tejo = "GTQ";
|
||||||
sintra = "EUR";
|
sintra = "EUR";
|
||||||
|
batm3 = "USD";
|
||||||
};
|
};
|
||||||
|
|
||||||
lib = nixpkgs.lib;
|
lib = nixpkgs.lib;
|
||||||
|
|
@ -213,6 +214,7 @@
|
||||||
douro = mkLiveConfig "douro";
|
douro = mkLiveConfig "douro";
|
||||||
tejo = mkLiveConfig "tejo";
|
tejo = mkLiveConfig "tejo";
|
||||||
sintra = mkLiveConfig "sintra";
|
sintra = mkLiveConfig "sintra";
|
||||||
|
batm3 = mkLiveConfig "batm3";
|
||||||
|
|
||||||
# Backwards compat
|
# Backwards compat
|
||||||
lamassu-live-douro = mkLiveConfig "douro";
|
lamassu-live-douro = mkLiveConfig "douro";
|
||||||
|
|
@ -237,11 +239,13 @@
|
||||||
atm-app-douro = mkAtmApp { model = "douro"; fiatCode = "GTQ"; };
|
atm-app-douro = mkAtmApp { model = "douro"; fiatCode = "GTQ"; };
|
||||||
atm-app-tejo = mkAtmApp { model = "tejo"; fiatCode = "GTQ"; };
|
atm-app-tejo = mkAtmApp { model = "tejo"; fiatCode = "GTQ"; };
|
||||||
atm-app-sintra = mkAtmApp { model = "sintra"; fiatCode = "EUR"; };
|
atm-app-sintra = mkAtmApp { model = "sintra"; fiatCode = "EUR"; };
|
||||||
|
atm-app-batm3 = mkAtmApp { model = "batm3"; fiatCode = "USD"; };
|
||||||
|
|
||||||
# ISO images
|
# ISO images
|
||||||
iso-douro = self.nixosConfigurations.douro.config.system.build.isoImage;
|
iso-douro = self.nixosConfigurations.douro.config.system.build.isoImage;
|
||||||
iso-tejo = self.nixosConfigurations.tejo.config.system.build.isoImage;
|
iso-tejo = self.nixosConfigurations.tejo.config.system.build.isoImage;
|
||||||
iso-sintra = self.nixosConfigurations.sintra.config.system.build.isoImage;
|
iso-sintra = self.nixosConfigurations.sintra.config.system.build.isoImage;
|
||||||
|
iso-batm3 = self.nixosConfigurations.batm3.config.system.build.isoImage;
|
||||||
|
|
||||||
# Raw disk images (dd-able to mSATA/eMMC, proper GPT + ESP)
|
# Raw disk images (dd-able to mSATA/eMMC, proper GPT + ESP)
|
||||||
disk-image-douro = import (nixpkgs + "/nixos/lib/make-disk-image.nix") {
|
disk-image-douro = import (nixpkgs + "/nixos/lib/make-disk-image.nix") {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue