160 Commits

Author SHA1 Message Date
5a43a05f61 add compression, remove jackd 2025-08-19 22:44:16 +02:00
eb7cb9ac5b add port audio compile step 2025-08-01 13:15:35 +02:00
95f56a7bf5 Add openocd 2025-07-15 10:58:38 +02:00
12c5b066fc Revert "migrate to f2fs"
This reverts commit 8086f9e95f.
2025-07-15 10:53:42 +02:00
8086f9e95f migrate to f2fs 2025-07-13 10:44:05 +02:00
d49f6dc165 fix poetry install 2025-04-25 12:49:29 +02:00
ff5e561df3 update readme and fix poetry install 2025-04-25 11:05:20 +02:00
e5283bd57a Remove custom stage2.1 and its configuration, migrate to stage2 2025-04-25 08:57:31 +02:00
79332b36e6 Update Docker installation and add prerun script for stage2.1_custom 2025-04-24 18:09:30 +02:00
b703b3e7d9 modfiy custom stage run script 2025-04-24 16:56:44 +02:00
c999eea6a4 fix custom stage and add readme 2025-04-24 15:51:59 +02:00
4cba035fd0 remove skip from custom stage 2025-04-24 14:25:43 +02:00
2e5c932f08 add a first custom version for the auracaster os 2025-04-24 13:52:58 +02:00
Serge Schneider
b9e30f2e0e Merge branch 'master' into arm64 2025-01-22 13:58:26 +00:00
Serge Schneider
47958f5efe Merge branch 'master' into arm64 2025-01-02 13:27:07 +00:00
Serge Schneider
1e780d18c2 Merge branch 'master' into arm64 2025-01-02 09:32:25 +00:00
Serge Schneider
744c7151fb Merge branch 'master' into arm64 2024-11-22 14:38:36 +00:00
Serge Schneider
8946f77e4a Merge branch 'master' into arm64 2024-11-21 15:57:29 +00:00
Serge Schneider
18acfd7f87 Merge branch 'master' into arm64 2024-11-21 12:43:41 +00:00
Serge Schneider
891df1e21e Merge branch 'master' into arm64 2024-11-19 13:28:23 +00:00
Serge Schneider
919f1e86b9 Merge branch 'master' into arm64 2024-11-11 13:34:14 +00:00
Serge Schneider
e335a4e8b6 Merge branch 'master' into arm64 2024-11-01 12:43:15 +00:00
Serge Schneider
da8f0063ea Merge branch 'master' into arm64 2024-10-31 13:28:46 +00:00
Serge Schneider
ccc23c6738 Merge branch 'master' into arm64 2024-10-30 11:33:22 +00:00
Serge Schneider
150246acda Merge branch 'master' into arm64 2024-10-29 15:33:28 +00:00
Serge Schneider
19fd60cef7 Merge branch 'master' into arm64 2024-10-29 10:16:06 +00:00
Serge Schneider
6453828cce Merge branch 'master' into arm64 2024-10-28 15:00:29 +00:00
Serge Schneider
9aa52c467b Merge branch 'master' into arm64 2024-10-28 08:27:07 +00:00
Serge Schneider
b040e0a64e Update release notes 2024-10-28 08:26:59 +00:00
Serge Schneider
17c8e48534 Merge branch 'master' into arm64 2024-10-28 08:15:53 +00:00
Serge Schneider
7c7d74f210 Update release notes 2024-10-28 08:11:44 +00:00
Serge Schneider
ecda2579eb Merge branch 'master' into arm64 2024-10-07 15:16:24 +01:00
Serge Schneider
94f7acf599 Update release notes 2024-10-07 15:16:04 +01:00
Serge Schneider
4cfc6758ff Merge branch 'master' into arm64 2024-09-25 11:58:30 +01:00
Serge Schneider
fd5a1e93cd stage4: install squeekboard 2024-09-25 11:57:45 +01:00
Serge Schneider
c94d23e165 Replace python3-rpi.gpio with python3-rpi-lgpio 2024-09-25 11:57:45 +01:00
Serge Schneider
cdc1467e13 stage3: switch from arandr to raindrop 2024-09-11 13:39:38 +01:00
Serge Schneider
def6e65ffb stage3: switch to labwc by default 2024-09-11 13:38:16 +01:00
Serge Schneider
36048218e0 Merge branch 'master' into arm64 2024-08-27 13:01:06 +01:00
Serge Schneider
98f522e64d stage3: Switch chromium package and remove unnecessary steps 2024-08-27 13:00:07 +01:00
Serge Schneider
0668700902 Merge branch 'master' into arm64 2024-07-28 21:06:21 +01:00
Serge Schneider
291f869713 export-image: generate sbom file if syft is available 2024-07-28 21:06:03 +01:00
Serge Schneider
48efb5fc54 Merge branch 'master' into arm64 2024-06-24 14:01:51 +01:00
Serge Schneider
a63eb86d7b Merge branch 'master' into arm64 2024-05-27 13:48:46 +01:00
Serge Schneider
0755b07f06 Merge branch 'master' into arm64 2024-05-15 15:52:53 +01:00
Serge Schneider
97aa847ea8 Merge branch 'master' into arm64 2024-05-13 16:41:38 +01:00
Serge Schneider
72b2dfd634 build.sh: set ARCH to arm64 2024-05-13 16:28:34 +01:00
Serge Schneider
2327c5e28d Merge branch 'master' into arm64 2024-05-13 16:28:00 +01:00
Serge Schneider
64e205739c Merge branch 'master' into arm64 2024-04-29 14:38:09 +01:00
Serge Schneider
2c29fc27c5 Merge branch 'master' into arm64 2024-04-29 10:53:31 +01:00
Serge Schneider
7dd5b7dd59 Merge branch 'master' into arm64 2024-04-18 11:35:15 +01:00
Serge Schneider
8056aa3bec Merge branch 'master' into arm64 2024-04-09 15:51:52 +01:00
Serge Schneider
56916d4d84 Merge branch 'master' into arm64 2024-04-09 15:30:05 +01:00
Serge Schneider
f19ee211dd Merge branch 'master' into arm64 2024-03-15 14:55:13 +00:00
Serge Schneider
8273e8553b Merge branch 'master' into arm64 2024-03-13 19:53:20 +00:00
Serge Schneider
dd93d6280f Merge branch 'master' into arm64 2024-03-13 18:17:33 +00:00
Serge Schneider
3358eb36e1 Merge branch 'master' into arm64 2024-03-13 15:46:15 +00:00
Serge Schneider
9a13a81115 Merge branch 'master' into arm64 2024-03-11 14:53:03 +00:00
Serge Schneider
ff2fd5007f Merge branch 'master' into arm64 2024-03-07 23:18:15 +00:00
Serge Schneider
6fb311e7fb Merge branch 'master' into arm64 2024-03-04 08:54:54 +00:00
Serge Schneider
b4f2aeabde Merge branch 'master' into arm64 2024-02-26 14:15:02 +00:00
Serge Schneider
57149546cf Merge branch 'master' into arm64 2024-01-30 14:43:42 +00:00
Serge Schneider
a34bf65c4c Merge branch 'master' into arm64 2024-01-23 15:14:38 +00:00
Serge Schneider
62eeab3a86 Merge branch 'master' into arm64 2024-01-22 14:49:34 +00:00
Serge Schneider
94bb86632d Merge branch 'master' into arm64 2024-01-17 17:37:07 +00:00
Serge Schneider
70cd6f2a1e Merge branch 'master' into arm64 2023-11-29 16:14:49 +00:00
Serge Schneider
0fda3224f6 Merge branch 'master' into arm64 2023-11-29 01:34:19 +00:00
Serge Schneider
caf3d8681b Merge branch 'master' into arm64 2023-11-28 14:25:40 +00:00
Serge Schneider
1460069163 Merge branch 'master' into arm64 2023-11-27 15:34:52 +00:00
Serge Schneider
78444eaf07 Merge branch 'master' into arm64 2023-10-17 14:42:49 +01:00
Serge Schneider
962bf483c8 Merge branch 'master' into arm64 2023-10-04 14:18:52 +01:00
Serge Schneider
5f2fe0f854 pi5 support 2023-09-27 16:04:18 +01:00
Serge Schneider
5ef8b0d45c Remove 32-bit kernels and install 64-bit headers 2023-09-27 16:04:06 +01:00
Serge Schneider
325123ff22 stage0: add non-free-firmware 2023-09-27 16:02:00 +01:00
Serge Schneider
c318daf364 Merge branch 'master' into arm64 2023-09-27 16:01:28 +01:00
Reuben Miller
77706bd2f6 fix: support bash v3 by removing array usage (#705) 2023-09-25 14:59:25 +01:00
Serge Schneider
e484aa8581 Merge branch 'master' into arm64 2023-08-17 16:51:11 +01:00
Stefan Becker
a86d732f58 Register aarch64 in binfmt misc (#694)
This modifies commit 6dc45a80e7 for the
arm64 branch. For 64-bit builds we need to register qemu-aarch64-static
instead.

Improves on #685
2023-05-09 14:27:36 +01:00
Serge Schneider
7c750947a9 Update chromium install 2023-04-25 21:46:39 +01:00
Serge Schneider
c16e6b7dee Merge branch 'master' into arm64 2023-04-25 15:44:25 +01:00
Serge Schneider
0defafedd4 Merge branch 'master' into arm64 2023-03-29 07:59:56 +01:00
Serge Schneider
84746b2bcd Merge branch 'master' into arm64 2023-03-28 17:21:32 +01:00
Stefan Becker
3e8046da4c Update qemu ARM binary name in README.md (#684)
When running a 64 bit build you need the QEMU aarch64 binary installed
on the host system.

Fixes #678
2023-03-27 16:02:46 +01:00
Serge Schneider
a2afdf78cb Merge branch 'master' into arm64 2023-03-27 14:44:45 +01:00
Serge Schneider
60c9ba3199 Re-enable wolfram-engine on arm64 2023-03-09 15:12:33 +00:00
Serge Schneider
25e2319eff Merge branch 'master' into arm64 2023-02-14 15:26:22 +00:00
Serge Schneider
04d0dcb46c Merge branch 'master' into arm64 2023-02-14 15:23:58 +00:00
Serge Schneider
b48040b3f0 Merge branch 'master' into arm64 2023-02-09 12:28:47 +00:00
Serge Schneider
366bc2c8f3 Merge branch 'master' into arm64 2022-11-11 08:58:33 +00:00
Serge Schneider
bd2cf0e0e4 Merge branch 'master' into arm64 2022-11-08 12:07:33 +00:00
Serge Schneider
da6dde2aea Merge branch 'master' into arm64 2022-11-08 11:09:30 +00:00
Serge Schneider
2bc1f64a57 Merge branch 'master' into arm64 2022-09-26 12:15:33 +01:00
Serge Schneider
3dff0ce787 Merge branch 'master' into arm64 2022-09-22 13:07:48 +01:00
Serge Schneider
005a8c73b0 Merge branch 'master' into arm64 2022-09-21 16:15:08 +01:00
Serge Schneider
b37b47e559 Merge branch 'master' into arm64 2022-09-15 15:41:32 +01:00
Serge Schneider
3f78c2b444 Merge branch 'master' into arm64 2022-09-14 16:51:02 +01:00
Serge Schneider
bd85d61c05 Merge branch 'master' into arm64 2022-09-07 13:00:42 +01:00
Serge Schneider
827affcc11 Merge branch 'master' into arm64 2022-09-06 11:28:59 +01:00
Serge Schneider
4e9aaac41e Merge branch 'master' into arm64 2022-09-01 16:32:50 +01:00
Serge Schneider
fb582e2e67 Merge remote-tracking branch 'origin/master' into arm64 2022-07-26 12:08:25 +01:00
XECDesign
ca06d62f2e Docker: always use debian:bullseye for arm64 image
Fixes #613
2022-04-25 15:11:28 +01:00
Serge Schneider
18aee5cfb8 Merge branch 'master' into arm64 2022-04-08 15:29:02 +01:00
Serge Schneider
27a8050c3c Merge branch 'master' into arm64 2022-04-04 12:42:35 +01:00
Serge Schneider
151f3ff80f Merge branch 'master' into arm64 2022-03-29 10:59:31 +01:00
Serge Schneider
e5bd8d5433 Merge branch 'master' into arm64 2022-03-28 19:44:49 +01:00
Serge Schneider
10a538ff92 Merge branch 'master' into arm64 2022-03-21 11:48:48 +00:00
Serge Schneider
7073d28f22 Merge branch 'master' into arm64 2022-03-01 16:25:28 +00:00
Serge Schneider
d1b8a2005b Merge branch 'master' into arm64 2022-02-28 14:19:38 +00:00
Serge Schneider
a0ba64e5c8 Merge branch 'master' into arm64 2022-02-23 18:36:52 +00:00
Serge Schneider
733513aa25 Enable APT_PROXY for arm64 builds
Closes #598
2022-02-22 11:34:06 +00:00
Serge Schneider
255288909b Merge branch 'master' into arm64 2022-02-03 15:51:14 +00:00
Serge Schneider
4721bfe590 Update os.json 2022-02-02 14:32:09 +00:00
Serge Schneider
2b3ba5b2a6 Merge branch 'master' into arm64 2022-02-02 14:26:31 +00:00
Serge Schneider
fbe448ccdc Merge branch 'master' into arm64 2022-01-20 15:32:05 +00:00
Serge Schneider
61c6294e23 Merge branch 'master' into arm64 2022-01-14 09:18:35 +00:00
Serge Schneider
dec2743355 Merge branch 'master' into arm64 2022-01-13 15:39:30 +00:00
Serge Schneider
43c42bf9e4 Merge branch 'master' into arm64 2022-01-12 10:22:21 +00:00
Serge Schneider
69cc4146c8 Build complete set of arm64 images 2022-01-11 11:20:35 +00:00
Serge Schneider
ef933ae156 Merge branch 'master' into arm64 2022-01-10 12:41:54 +00:00
Serge Schneider
0f7ab62ac9 Revert "Update chromium install"
This reverts commit 69cd27944c.
2021-12-22 15:55:04 +00:00
Serge Schneider
f81afa8282 Merge branch 'master' into arm64 2021-12-22 15:54:16 +00:00
XECDesign
45b4cc19d0 Remove use of setarch for arm64
Fixes #572
2021-12-22 15:43:06 +00:00
Serge Schneider
14a28a729e Merge branch 'master' into arm64 2021-11-12 12:14:10 +00:00
Serge Schneider
720f4aea86 Merge branch 'master' into arm64 2021-11-08 08:44:58 +00:00
Serge Schneider
c12b1df4ed Merge branch 'master' into arm64 2021-10-29 20:38:23 +01:00
Serge Schneider
c61f8b72fa Merge branch 'master' into arm64 2021-10-29 10:24:20 +01:00
Serge Schneider
edbc8b604d Merge branch 'master' into arm64 2021-10-29 10:21:19 +01:00
Serge Schneider
5ea223355a Add debian-security repo 2021-10-26 12:28:11 +01:00
Serge Schneider
cd8a82d4fd Merge branch 'master' into arm64 2021-10-15 16:04:49 +01:00
Serge Schneider
cf938b0549 Merge branch 'master' into arm64 2021-10-07 10:08:40 +01:00
Serge Schneider
268d4c4f44 Remove debian-security bullseye/updates repo 2021-10-06 14:59:29 +01:00
Serge Schneider
2e3603d228 Merge branch 'master' into arm64 2021-10-05 17:43:06 +01:00
Serge Schneider
5971767590 Merge branch 'master' into arm64 2021-09-21 16:36:50 +01:00
Serge Schneider
535ea6c7f0 Merge branch 'master' into arm64 2021-09-01 14:07:47 +01:00
Serge Schneider
600f7c1fa4 Merge branch 'master' into arm64 2021-09-01 11:10:57 +01:00
Serge Schneider
4b59b5a70d Merge remote-tracking branch 'upstream/master' into arm64 2021-06-22 15:57:11 +01:00
Serge Schneider
95ea0ba696 Merge branch 'master' into arm64 2021-06-17 16:53:05 +01:00
Serge Schneider
071d395635 Merge branch 'master' into arm64 2021-05-07 15:37:59 +01:00
Serge Schneider
7cfcace573 Merge branch 'master' into arm64 2021-03-31 12:29:10 +01:00
Serge Schneider
04f9b9bb5f Install gpiozero in lite images 2021-03-31 12:28:30 +01:00
Serge Schneider
2b9e8e9b22 Merge branch 'master' into arm64 2021-03-04 22:43:17 +00:00
Serge Schneider
4929d829f2 Merge branch 'master' into arm64 2021-03-04 00:37:55 +00:00
Serge Schneider
cfe65b2e64 Merge branch 'master' into arm64 2021-01-11 12:48:15 +00:00
Serge Schneider
88e48a8aca Switch to KMS 2020-12-15 13:35:23 +00:00
Serge Schneider
31aa04e99c Merge branch 'master' into arm64 2020-12-02 16:56:57 +00:00
Serge Schneider
571fe1e26b Merge branch 'master' into arm64 2020-11-27 15:51:11 +00:00
Serge Schneider
041b97464c Merge branch 'master' into arm64 2020-11-17 15:22:34 +00:00
Serge Schneider
fbdcaaf4f8 Merge branch 'master' into arm64 2020-11-17 15:15:11 +00:00
Serge Schneider
ec4562c7f2 Merge remote-tracking branch 'upstream/master' into arm64 2020-10-14 14:51:20 +01:00
Serge Schneider
8808124cc3 Merge branch 'master' into arm64 2020-09-23 20:02:52 +01:00
Serge Schneider
bc3970f9e3 Merge branch 'master' into arm64 2020-09-09 15:12:53 +01:00
Serge Schneider
d3553f5ec4 Merge branch 'master' into arm64 2020-08-24 17:06:36 +01:00
Serge Schneider
0cab554f7d Merge branch 'master' into arm64 2020-08-24 15:49:08 +01:00
Serge Schneider
75123fd64e export lite image 2020-08-06 10:29:04 +01:00
Serge Schneider
0f41e41c8c Switch to FKMS 2020-07-30 15:32:03 +01:00
Serge Schneider
a58e722bee Install RealVNC server 2020-07-30 15:31:16 +01:00
Serge Schneider
c640efa6e1 Revert "fix vlc installation"
This reverts commit f644fa284871341f89b153679339bcc233d7990f.
2020-07-30 15:29:40 +01:00
Serge Schneider
d4049eeffb fix vlc installation 2020-07-30 15:29:40 +01:00
Serge Schneider
906c587fcd Package changes
Install vlc

Remove realvnc server

Switch to Full KMS
2020-07-30 15:29:40 +01:00
Serge Schneider
99399d30fc aarch64 2020-07-30 15:29:40 +01:00
23 changed files with 386 additions and 53 deletions

3
.gitignore vendored
View File

@@ -1,8 +1,5 @@
deploy/* deploy/*
work/* work/*
config
postrun.sh postrun.sh
SKIP
SKIP_IMAGES
.pc .pc
*-pc *-pc

View File

@@ -443,7 +443,7 @@ To resolve this, ensure that the following files are available (install them if
``` ```
/lib/modules/$(uname -r)/kernel/fs/binfmt_misc.ko /lib/modules/$(uname -r)/kernel/fs/binfmt_misc.ko
/usr/bin/qemu-arm-static /usr/bin/qemu-aarch64-static
``` ```
You may also need to load the module by hand - run `modprobe binfmt_misc`. You may also need to load the module by hand - run `modprobe binfmt_misc`.

14
README_AURACAST_SYSTEM.md Normal file
View File

@@ -0,0 +1,14 @@
# Build
- Always use the docker build script
- sudo bash build-docker.sh
# System
- Extended stage2 with customizations
- this builds a 'lite' version of the system, featuring also basic development tools
- deactivate wifi and bluetooth (wifi can be deactivated, bt has bt-disable overlay)
- install docker
- install poetry
- install wireguard
# Migrate
- move to rpi-image-gen in the future: https://github.com/raspberrypi/rpi-image-gen

View File

@@ -82,16 +82,7 @@ fi
# Modify original build-options to allow config file to be mounted in the docker container # Modify original build-options to allow config file to be mounted in the docker container
BUILD_OPTS="$(echo "${BUILD_OPTS:-}" | sed -E 's@\-c\s?([^ ]+)@-c /config@')" BUILD_OPTS="$(echo "${BUILD_OPTS:-}" | sed -E 's@\-c\s?([^ ]+)@-c /config@')"
# Check the arch of the machine we're running on. If it's 64-bit, use a 32-bit base image instead ${DOCKER} build --build-arg BASE_IMAGE=debian:bookworm -t pi-gen "${DIR}"
case "$(uname -m)" in
x86_64|aarch64)
BASE_IMAGE=i386/debian:bookworm
;;
*)
BASE_IMAGE=debian:bookworm
;;
esac
${DOCKER} build --build-arg BASE_IMAGE=${BASE_IMAGE} -t pi-gen "${DIR}"
if [ "${CONTAINER_EXISTS}" != "" ]; then if [ "${CONTAINER_EXISTS}" != "" ]; then
DOCKER_CMDLINE_NAME="${CONTAINER_NAME}_cont" DOCKER_CMDLINE_NAME="${CONTAINER_NAME}_cont"
@@ -114,10 +105,10 @@ case $(uname -m) in
;; ;;
esac esac
# Check if qemu-arm-static and /proc/sys/fs/binfmt_misc are present # Check if qemu-aarch64-static and /proc/sys/fs/binfmt_misc are present
if [[ "${binfmt_misc_required}" == "1" ]]; then if [[ "${binfmt_misc_required}" == "1" ]]; then
if ! qemu_arm=$(which qemu-arm-static) ; then if ! qemu_arm=$(which qemu-aarch64-static) ; then
echo "qemu-arm-static not found (please install qemu-user-static)" echo "qemu-aarch64-static not found (please install qemu-user-static)"
exit 1 exit 1
fi fi
if [ ! -f /proc/sys/fs/binfmt_misc/register ]; then if [ ! -f /proc/sys/fs/binfmt_misc/register ]; then
@@ -128,13 +119,13 @@ if [[ "${binfmt_misc_required}" == "1" ]]; then
fi fi
echo "binfmt_misc mounted" echo "binfmt_misc mounted"
fi fi
if ! grep -q "^interpreter ${qemu_arm}" /proc/sys/fs/binfmt_misc/qemu-arm* ; then if ! grep -q "^interpreter ${qemu_arm}" /proc/sys/fs/binfmt_misc/qemu-aarch64* ; then
# Register qemu-arm for binfmt_misc # Register qemu-aarch64 for binfmt_misc
reg="echo ':qemu-arm-rpi:M::"\ reg="echo ':qemu-aarch64-rpi:M::"\
"\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00:"\ "\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xb7\x00:"\
"\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:"\ "\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:"\
"${qemu_arm}:F' > /proc/sys/fs/binfmt_misc/register" "${qemu_arm}:F' > /proc/sys/fs/binfmt_misc/register"
echo "Registering qemu-arm for binfmt_misc..." echo "Registering qemu-aarch64 for binfmt_misc..."
sudo bash -c "${reg}" 2>/dev/null || true sudo bash -c "${reg}" 2>/dev/null || true
fi fi
fi fi

View File

@@ -175,7 +175,7 @@ export PI_GEN=${PI_GEN:-pi-gen}
export PI_GEN_REPO=${PI_GEN_REPO:-https://github.com/RPi-Distro/pi-gen} export PI_GEN_REPO=${PI_GEN_REPO:-https://github.com/RPi-Distro/pi-gen}
export PI_GEN_RELEASE=${PI_GEN_RELEASE:-Raspberry Pi reference} export PI_GEN_RELEASE=${PI_GEN_RELEASE:-Raspberry Pi reference}
export ARCH=armhf export ARCH=arm64
export RELEASE=${RELEASE:-bookworm} # Don't forget to update stage0/prerun.sh export RELEASE=${RELEASE:-bookworm} # Don't forget to update stage0/prerun.sh
export IMG_NAME="${IMG_NAME:-raspios-$RELEASE-$ARCH}" export IMG_NAME="${IMG_NAME:-raspios-$RELEASE-$ARCH}"

9
config Normal file
View File

@@ -0,0 +1,9 @@
TIMEZONE_DEFAULT='Europe/Vienna'
IMG_NAME='iot-system'
DEPLOY_COMPRESSION=xz
ENABLE_SSH=1
TARGET_HOSTNAME=auracaster
FIRST_USER_NAME=caster
FIRST_USER_PASS=pw
STAGE_LIST="stage0 stage1 stage2"

View File

@@ -1,18 +1,15 @@
{ {
"description": "NOOBS_DESCRIPTION", "description": "NOOBS_DESCRIPTION",
"feature_level": 35120124,
"kernel": "KERNEL", "kernel": "KERNEL",
"name": "NOOBS_NAME", "name": "NOOBS_NAME",
"password": "raspberry", "password": "raspberry",
"release_date": "UNRELEASED", "release_date": "UNRELEASED",
"supported_hex_revisions": "2,3,4,5,6,7,8,9,d,e,f,10,11,12,14,19,1040,1041,0092,0093,2082",
"supported_models": [ "supported_models": [
"Pi Model", "Pi Zero 2",
"Pi 2",
"Pi Zero",
"Pi 3", "Pi 3",
"Pi 4",
"Pi Compute Module 3", "Pi Compute Module 3",
"Pi 4" "Pi Compute Module 4"
], ],
"url": "http://www.raspbian.org/", "url": "http://www.raspbian.org/",
"username": "pi", "username": "pi",

204
flash_sdcard.sh Executable file
View File

@@ -0,0 +1,204 @@
#!/bin/bash
#
# Script to flash the Auracaster System image to an SD card
# This script must be run with sudo privileges
set -e
# Configuration
IMAGE_FILE="./work/iot-system/export-image/2025-04-23-iot-system-lite.img"
AUTO_YES=false
# Parse command line arguments
while getopts "y" opt; do
case $opt in
y)
AUTO_YES=true
;;
\?)
echo "Invalid option: -$OPTARG" >&2
exit 1
;;
esac
done
shift $((OPTIND -1))
# Require image file argument
if [ $# -lt 1 ]; then
echo "Usage: sudo $0 [-y] <path-to-image-file.img>"
exit 1
fi
IMAGE_FILE="$1"
# Check if script is run as root
if [ "$(id -u)" -ne 0 ]; then
echo "Error: This script must be run as root (sudo)."
exit 1
fi
# Check if image exists
if [ ! -f "$IMAGE_FILE" ]; then
echo "Error: Image file not found at $IMAGE_FILE"
echo "You need to build the project first."
exit 1
fi
# Find SD cards (both removable devices and mmcblk devices)
echo "Looking for SD cards..."
echo
# Get list of potential SD cards (both removable devices and mmcblk devices)
SD_CARDS=$(lsblk -d -o NAME,SIZE,MODEL,VENDOR,TRAN,RM | grep -v "loop" | grep -E '(1$|mmcblk)' | awk '{print $1}')
SD_CARD_COUNT=$(echo "$SD_CARDS" | grep -v "^$" | wc -l)
if [ "$SD_CARD_COUNT" -eq 0 ]; then
echo "No SD cards found. Please insert an SD card and try again."
exit 1
fi
# Display available SD cards
echo "Available SD cards:"
echo
lsblk -d -o NAME,SIZE,MODEL,VENDOR,TRAN,RM | head -n 1
lsblk -d -o NAME,SIZE,MODEL,VENDOR,TRAN,RM | grep -v "loop" | grep -E '(1$|mmcblk)'
echo
# Safety check - get list of internal disks to avoid (exclude mmcblk devices from this check)
INTERNAL_DISKS=$(lsblk -d -o NAME,RM | grep -E '0$' | grep -v "mmcblk" | awk '{print $1}')
# Select SD card
DEVICE=""
if [ "$SD_CARD_COUNT" -eq 1 ]; then
DEVICE=$(echo "$SD_CARDS" | tr -d '[:space:]')
echo "Found single SD card: /dev/$DEVICE"
else
echo "Multiple SD cards found. Please select which one to use:"
select DEVICE in $SD_CARDS; do
if [ -n "$DEVICE" ]; then
break
else
echo "Invalid selection. Please try again."
fi
done
fi
# Safety check - ensure we're not flashing to an internal disk
if echo "$INTERNAL_DISKS" | grep -q "$DEVICE"; then
echo "ERROR: Selected device /dev/$DEVICE appears to be an internal disk!"
echo "This script will only flash to removable devices or mmcblk devices for safety."
exit 1
fi
# Validate device exists
if [[ "$DEVICE" == mmcblk* ]]; then
DEV_PATH="/dev/$DEVICE"
else
DEV_PATH="/dev/$DEVICE"
fi
if [ ! -b "$DEV_PATH" ]; then
echo "Error: Device $DEV_PATH does not exist or is not a block device."
exit 1
fi
# Double-check with clear warning
echo
echo "You are about to erase ALL DATA on $DEV_PATH and write the pi-gen built image ($IMAGE_FILE) to it."
echo "This operation cannot be undone."
echo
# Check if pv is available for better progress display
if command -v pv >/dev/null 2>&1; then
# Get image size for pv
IMAGE_SIZE=$(stat -c %s "$IMAGE_FILE")
# Show the command that will be executed with pv
FLASH_COMMAND="pv -s $IMAGE_SIZE \"$IMAGE_FILE\" | dd of=\"$DEV_PATH\" bs=4M conv=fsync oflag=direct"
echo "The following command will be executed (with progress bar):"
echo "$FLASH_COMMAND"
else
# Fallback to dd with status=progress
FLASH_COMMAND="dd if=\"$IMAGE_FILE\" of=\"$DEV_PATH\" bs=4M status=progress conv=fsync oflag=direct"
echo "The following command will be executed:"
echo "$FLASH_COMMAND"
echo "For better progress visualization, consider installing 'pv' (Pipe Viewer)."
fi
echo
if [ "$AUTO_YES" = true ]; then
CONFIRM="y"
echo "Auto-confirming with -y flag"
else
read -p "Are you ABSOLUTELY SURE you want to continue? (y/n): " CONFIRM
if [ "$CONFIRM" != "y" ]; then
echo "Operation cancelled."
exit 0
fi
fi
# Unmount any partitions on the device, reporting failures
echo "Unmounting any mounted partitions on $DEV_PATH..."
UNMOUNT_FAILED=0
if [[ "$DEVICE" == mmcblk* ]]; then
for partition in $(lsblk -n -o NAME | grep "^$DEVICE"); do
if [ "$partition" != "$DEVICE" ]; then
if mount | grep -q "/dev/$partition"; then
umount "/dev/$partition" 2>/dev/null || {
echo "Warning: Failed to unmount /dev/$partition" >&2
UNMOUNT_FAILED=1
}
fi
fi
done
else
for partition in $(lsblk -n -o NAME /dev/$DEVICE | grep -v "^$DEVICE$"); do
if mount | grep -q "/dev/$partition"; then
umount "/dev/$partition" 2>/dev/null || {
echo "Warning: Failed to unmount /dev/$partition" >&2
UNMOUNT_FAILED=1
}
fi
done
fi
if [ $UNMOUNT_FAILED -eq 1 ]; then
echo "Some partitions could not be unmounted. Please close any open files or applications using the SD card and try again." >&2
exit 1
fi
# Check for open files on the device
if lsof | grep -q "/dev/$DEVICE"; then
echo "Warning: Open files detected on /dev/$DEVICE. Please close them before flashing to avoid corruption." >&2
lsof | grep "/dev/$DEVICE"
exit 1
fi
# Flash the image
echo "Flashing image to $DEV_PATH..."
echo "This may take several minutes. Please wait..."
echo
# Execute the flashing command
eval "$FLASH_COMMAND"
# Sync to ensure all writes are complete
sync
# Remind user to eject the card safely
echo "Flash complete! SD card is ready with the pi-gen built image."
echo
# Re-read the partition table to ensure the system recognizes the new layout
echo "Running partprobe to re-read the partition table on $DEV_PATH..."
if partprobe "$DEV_PATH"; then
echo "Partition table re-read successfully. The SD card is ready for use."
else
echo "Warning: partprobe failed. If partitions do not show up, try reinserting the SD card."
fi
echo
# Instructions for next steps
echo "1. Insert the SD card into your Raspberry Pi 3"
echo "2. Power on the device"
echo
exit 0

View File

@@ -9,15 +9,16 @@ bootstrap(){
export http_proxy=${APT_PROXY} export http_proxy=${APT_PROXY}
BOOTSTRAP_ARGS+=(--arch armhf) BOOTSTRAP_ARGS+=(--arch arm64)
BOOTSTRAP_ARGS+=(--include gnupg)
BOOTSTRAP_ARGS+=(--components "main,contrib,non-free") BOOTSTRAP_ARGS+=(--components "main,contrib,non-free")
BOOTSTRAP_ARGS+=(--keyring "${STAGE_DIR}/files/raspberrypi.gpg") #BOOTSTRAP_ARGS+=(--keyring "${STAGE_DIR}/files/raspberrypi.gpg")
BOOTSTRAP_ARGS+=(--exclude=info,ifupdown) BOOTSTRAP_ARGS+=(--exclude=info,ifupdown)
BOOTSTRAP_ARGS+=(--include=ca-certificates) BOOTSTRAP_ARGS+=(--include=ca-certificates)
BOOTSTRAP_ARGS+=("$@") BOOTSTRAP_ARGS+=("$@")
printf -v BOOTSTRAP_STR '%q ' "${BOOTSTRAP_ARGS[@]}" printf -v BOOTSTRAP_STR '%q ' "${BOOTSTRAP_ARGS[@]}"
setarch linux32 capsh $CAPSH_ARG -- -c "'${BOOTSTRAP_CMD}' $BOOTSTRAP_STR" || true capsh $CAPSH_ARG -- -c "'${BOOTSTRAP_CMD}' $BOOTSTRAP_STR" || true
if [ -d "$2/debootstrap" ] && ! rmdir "$2/debootstrap"; then if [ -d "$2/debootstrap" ] && ! rmdir "$2/debootstrap"; then
cp "$2/debootstrap/debootstrap.log" "${STAGE_WORK_DIR}" cp "$2/debootstrap/debootstrap.log" "${STAGE_WORK_DIR}"
@@ -100,7 +101,7 @@ on_chroot() {
mount -t tmpfs tmpfs "${ROOTFS_DIR}/tmp" mount -t tmpfs tmpfs "${ROOTFS_DIR}/tmp"
fi fi
setarch linux32 capsh $CAPSH_ARG "--chroot=${ROOTFS_DIR}/" -- -e "$@" capsh $CAPSH_ARG "--chroot=${ROOTFS_DIR}/" -- -e "$@"
} }
export -f on_chroot export -f on_chroot

View File

@@ -1,3 +1,7 @@
deb [ arch=armhf ] http://raspbian.raspberrypi.com/raspbian/ RELEASE main contrib non-free rpi deb http://deb.debian.org/debian RELEASE main contrib non-free non-free-firmware
# Uncomment line below then 'apt-get update' to enable 'apt-get source' deb http://deb.debian.org/debian-security/ RELEASE-security main contrib non-free non-free-firmware
#deb-src http://raspbian.raspberrypi.com/raspbian/ RELEASE main contrib non-free rpi deb http://deb.debian.org/debian RELEASE-updates main contrib non-free non-free-firmware
# Uncomment deb-src lines below then 'apt-get update' to enable 'apt-get source'
#deb-src http://deb.debian.org/debian RELEASE main contrib non-free non-free-firmware
#deb-src http://deb.debian.org/debian-security/ RELEASE-security main contrib non-free non-free-firmware
#deb-src http://deb.debian.org/debian RELEASE-updates main contrib non-free non-free-firmware

View File

@@ -1,9 +1,6 @@
initramfs-tools initramfs-tools
raspi-firmware raspi-firmware
linux-image-rpi-v6
linux-image-rpi-v7
linux-image-rpi-v7l
linux-image-rpi-v8 linux-image-rpi-v8
linux-headers-rpi-v6 linux-image-rpi-2712
linux-headers-rpi-v7 linux-headers-rpi-v8
linux-headers-rpi-v7l linux-headers-rpi-2712

View File

@@ -6,5 +6,5 @@ if [ "$RELEASE" != "bookworm" ]; then
fi fi
if [ ! -d "${ROOTFS_DIR}" ]; then if [ ! -d "${ROOTFS_DIR}" ]; then
bootstrap ${RELEASE} "${ROOTFS_DIR}" http://raspbian.raspberrypi.com/raspbian/ bootstrap ${RELEASE} "${ROOTFS_DIR}" http://deb.debian.org/debian/
fi fi

View File

@@ -14,7 +14,7 @@ dtparam=audio=on
# /boot/firmware/overlays/README # /boot/firmware/overlays/README
# Automatically load overlays for detected cameras # Automatically load overlays for detected cameras
camera_auto_detect=1 camera_auto_detect=0
# Automatically load overlays for detected DSI displays # Automatically load overlays for detected DSI displays
display_auto_detect=1 display_auto_detect=1
@@ -30,6 +30,9 @@ max_framebuffers=2
# Use the kernel's default instead. # Use the kernel's default instead.
disable_fw_kms_setup=1 disable_fw_kms_setup=1
# Run in 64-bit mode
arm_64bit=1
# Disable compensation for displays with overscan # Disable compensation for displays with overscan
disable_overscan=1 disable_overscan=1
@@ -46,3 +49,15 @@ otg_mode=1
dtoverlay=dwc2,dr_mode=host dtoverlay=dwc2,dr_mode=host
[all] [all]
# uart debug enable on GPIO14/15
enable_uart=1
uart_2ndstage=1
dtparam=uart0_console
dtdebug=1
# for auracaster project
dtoverlay=disable-bt
dtoverlay=disable-wifi
dtoverlay=uart3,ctsrts
dtoverlay=uart4,ctsrts

View File

@@ -1 +0,0 @@
raspi-copies-and-fills

View File

@@ -1,6 +0,0 @@
#!/bin/bash -e
if [ -f "${ROOTFS_DIR}/etc/ld.so.preload" ]; then
mv "${ROOTFS_DIR}/etc/ld.so.preload" "${ROOTFS_DIR}/etc/ld.so.preload.disabled"
fi

View File

@@ -0,0 +1,111 @@
#!/bin/bash
set -e
# do some checks first
echo "DEBUG: Listing /home"
ls -l /home
echo "DEBUG: Checking for python3"
which python3 || echo "python3 not found"
echo "DEBUG: Checking user 'caster'"
id caster || echo "user caster not found"
# Add Docker's official GPG key:
# apt-get update
# apt-get install -y ca-certificates curl
# install -m 0755 -d /etc/apt/keyrings
# curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
# chmod a+r /etc/apt/keyrings/docker.asc
# # Add the repository to Apt sources:
# echo \
# "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
# bookworm stable" | \
# tee /etc/apt/sources.list.d/docker.list > /dev/null
# apt-get update
# apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
# # Ensure docker group exists and add main user to it
# DOCKER_GROUP=docker
# if ! getent group "$DOCKER_GROUP" > /dev/null; then
# groupadd "$DOCKER_GROUP"
# fi
# # Use FIRST_USER_NAME if set, else default to 'pi'
# USER_TO_ADD="${FIRST_USER_NAME:-pi}"
# usermod -aG "$DOCKER_GROUP" "$USER_TO_ADD" || true
# docker compose version
# Install Python Poetry for caster user (official installer)
su - caster -c "curl -sSL https://install.python-poetry.org | python3 -"
# Add Poetry to PATH for caster user
CASTER_BASHRC="/home/caster/.bashrc"
if ! grep -q 'export PATH="/home/caster/.local/bin:$PATH"' "$CASTER_BASHRC" 2>/dev/null; then
echo 'export PATH="/home/caster/.local/bin:$PATH"' >> "$CASTER_BASHRC"
chown caster: "$CASTER_BASHRC"
fi
/home/caster/.local/bin/poetry config virtualenvs.in-project true
# setup audio
apt install -y ethtool linuxptp pipewire
apt remove -y libportaudio2 portaudio19-dev libportaudiocpp0
apt install -y --no-install-recommends \
git build-essential cmake pkg-config \
libasound2-dev libpulse-dev
if [ ! -d portaudio ]; then
git clone https://github.com/PortAudio/portaudio.git
# use static commit
cd portaudio
git checkout 9abe5fe7db729280080a0bbc1397a528cd3ce658
rm -rf build
# TODO: determine which backends to use, maybe only use pipewire
cmake -S . -B build -G"Unix Makefiles" \
-DBUILD_SHARED_LIBS=ON \
-DPA_USE_ALSA=ON \
-DPA_USE_PULSEAUDIO=ON \
-DPA_USE_JACK=OFF
else
cd portaudio
fi
cmake --build build -j$(nproc)
cmake --install build # installs to /usr/local/lib
ldconfig # refresh linker cache
cd ..
# # install openocd
apt install git build-essential libtool autoconf texinfo libusb-1.0-0-dev libftdi1-dev libhidapi-dev pkg-config -y
apt-get install pkg-config libjim-dev -y
if [ ! -d openocd ]; then
git clone --recurse-submodules https://github.com/raspberrypi/openocd.git
cd openocd
git fetch --all
git checkout 8b8c9731a514d3e4dd367d4e77826711201b81b3
./bootstrap
./configure --enable-bcm2835gpio --enable-sysfsgpio
else
cd openocd
fi
make
make install
cd ..
# Install WireGuard
#apt-get install -y wireguard wireguard-tools
# Disable WiFi
# Option 1: Mask wpa_supplicant (prevents WiFi client connections)
systemctl mask wpa_supplicant.service || true
# Option 2: Remove wpa_supplicant package (removes WiFi client capability)
# apt-get remove -y wpa_supplicant
# Option 3: (Optional, not always necessary) Block WiFi radio with rfkill
apt-get install -y rfkill && rfkill block wifi || true
# Note: rfkill is not strictly necessary if you mask/remove wpa_supplicant, but it disables the radio at a lower level.
# Disable Bluetooth service
systemctl mask bluetooth.service || true
systemctl disable hciuart.service || true
touch /root/CUSTOM_STAGE_WORKED

View File

@@ -1,4 +1,4 @@
gstreamer1.0-x gstreamer1.0-omx gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-alsa gstreamer1.0-libav gstreamer1.0-x gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-alsa gstreamer1.0-libav
evince gtk2-engines alsa-utils evince gtk2-engines alsa-utils
desktop-base desktop-base
git git

View File

@@ -1,4 +1,4 @@
xserver-xorg-video-fbdev xserver-xorg xinit xserver-xorg xinit
mousepad mousepad
eom eom
lxde lxtask menu-xdg lxde lxtask menu-xdg

0
stage3/SKIP Normal file
View File

0
stage4/SKIP Normal file
View File

0
stage4/SKIP_IMAGES Normal file
View File

0
stage5/SKIP Normal file
View File

0
stage5/SKIP_IMAGES Normal file
View File