diff --git a/README.md b/README.md index d09124d..05f8ee2 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,11 @@ # PS5 Linux Image Builder -Builds bootable Linux USB images for PlayStation 5 using Docker containers. Supports Ubuntu 26.04, Arch, CachyOS (Gamescope + Steam), Fedora (GNOME), and full Kali Linux, individually or as a multi-distro image with kexec switching. +Builds bootable Linux USB images for PlayStation 5 using Docker containers. Supports Ubuntu 26.04, Arch, CachyOS (Gamescope + Steam), Fedora (GNOME), individually or as a multi-distro image with kexec switching. ## Prerequisites - Docker (with permission to run `--privileged` containers) — install as per your distro's instructions -- ~30GB free disk space for Ubuntu, Arch, or CachyOS; a full Kali build needs - substantial working space because it creates a 96GB image and a full rootfs - tree (`~150GB` free recommended for a clean Kali build) +- ~30GB free disk space for Ubuntu, Arch, or CachyOS Once Docker is installed, add your user to the docker group and apply it without logging out: @@ -29,9 +27,6 @@ OR OR -# Build Kali Linux (XFCE + kali-linux-everything) -./build_image.sh --distro kali - OR # Build Fedora (GNOME desktop) @@ -51,81 +46,13 @@ The script auto-clones the kernel source, applies PS5 patches, compiles, and bui sudo dd if=output/ps5-ubuntu2604.img of=/dev/sdX bs=4M status=progress ``` -## Kali First Boot Time Sync - -The Kali image uses UTC by default and enables `ntpsec`. PS5 hardware may boot -Linux without a correct real-time clock, so the displayed time can be wrong -until a network connection is available. The Kali recipe configures IPv4 NTP -sources that were validated through Android USB tethering, because that -connection may not provide usable IPv6 routing. - -The Xfce clock's **Time and Date** window is the legacy `time-admin` utility. -On Kali it can report that NTP support is not installed even though `ntpsec` -is installed and active. Verify or repair synchronization from a terminal: - -```bash -systemctl --no-pager status ntpsec -ntpq -pn -timedatectl status -``` - -If the PS5 clock is still wrong after the internet connection is active, force -one initial correction and restart continuous synchronization: - -```bash -sudo systemctl stop ntpsec -sudo ntpd -gq -c /etc/ntpsec/ntp.conf -sudo systemctl start ntpsec -date -``` - -To use a local timezone after boot, for example Kentucky: - -```bash -sudo timedatectl set-timezone America/Kentucky/Louisville -timedatectl status -``` - -## Kali Internal WiFi - -The Kali image builds and installs the PS5 IW620 `mwifiex` modules for the -PS5-patched kernel. On boot, `ps5-iw620.service` copies the console-specific -firmware dumped by `ps5-linux-loader` from `/boot/efi/lib/nxp/` into -`/lib/firmware/nxp/`, loads the driver, and enables WiFi radio. If the firmware -payload is present, NetworkManager should expose the internal interface as -`mlan0` and the Xfce network applet can be used to scan and connect. - -The Kali desktop autologin is enabled for local first boot. SSH is installed -but disabled by default because the initial local account is `kali` with -password `kali`. Before enabling remote access, change that password: - -```bash -passwd -sudo systemctl enable --now ssh -``` - -The image holds its installed kernel packages and protects the boot-copy hook -from deploying a generic Kali kernel. Do not replace or unhold the PS5 kernel -unless you are intentionally testing a new PS5-patched kernel build. - -Ghidra is configured to use JDK 21, its documented supported runtime. Full -Kali installations may also contain newer Java versions for other software. - -`kali-linux-everything` installs NFS client components, but the PS5-patched -kernel has NFS disabled. A failed `run-rpc_pipefs.mount` unit can therefore be -reported at boot; it only indicates that NFS mounts are unavailable. The Kali -desktop and security tools are unaffected. - -The full Kali toolset also enables `chkrootkit.timer`; its daily integrity scan -can use noticeable CPU time while it runs. - ## Options | Flag | Description | Default | |------|-------------|---------| -| `--distro` | `ubuntu2604`, `arch`, `cachyos`, `kali`, `fedora`, or `all` | `ubuntu2604` | +| `--distro` | `ubuntu2604`, `arch`, `cachyos`, `fedora`, or `all` | `ubuntu2604` | | `--kernel` | Path to kernel source directory | auto-clone version selected by PS5 patch set | -| `--img-size` | Disk image size in MB | `12000` (`32000` for `all`, `98304` for `kali`) | +| `--img-size` | Disk image size in MB | `12000` (`32000` for `all`) | | `--clean` | Remove all cached build artifacts and start fresh | off | | `--kernel-only` | Build and package the kernel only, then exit | off | | `--patches-ref` | Branch, tag, or commit SHA for patches | `v1.2` | @@ -171,7 +98,6 @@ All verbose output goes to `build.log`. The terminal shows a spinner with live p | Ubuntu 26.04 (Resolute) | GNOME | `.deb` | systemd | | Arch | Sway | `.pkg.tar.zst` | systemd | | CachyOS | Gamescope + Steam Big Picture (Arch + `[cachyos]` repo, no v3 migration in image build) | `.pkg.tar.zst` | systemd | -| Kali Linux Rolling | XFCE + `kali-linux-everything` | `.deb` | systemd | ## Multi-distro Image @@ -209,7 +135,7 @@ sudo dpkg -i linux-bin/linux-ps5_*.deb build_image.sh # Image builder (also supports --kernel-only) docker/ kernel-builder/ # Kernel compilation container - kernel-builder-arch/ # Repackages .deb kernel as .pkg.tar.zst + kernel-builder-arch/ # Repackages .deb kernel as .pkg.tar.zst image-builder/ Dockerfile # Image building container (distrobuilder) entrypoint.sh # Single-distro build logic @@ -218,7 +144,6 @@ distros/ ubuntu2604/ # Ubuntu 26.04 (Resolute) arch/ # Arch Linux cachyos/ # CachyOS repos + Gamescope/Steam - kali/ # Kali Linux Rolling shared/ # Kernel postinst hooks (single + multi) boot/ cmdline.txt # Kernel cmdline template (__DISTRO__ placeholder) diff --git a/build_image.sh b/build_image.sh index 3503076..8cbdbeb 100755 --- a/build_image.sh +++ b/build_image.sh @@ -17,9 +17,9 @@ usage() { echo "Usage: $0 [--distro ] [--kernel ] [--img-size ] [--clean]" echo "" echo "Options:" - echo " --distro Distribution to build: ubuntu2604, arch, cachyos, kali, fedora, proxmox, debian, all (default: ubuntu2604)" + echo " --distro Distribution to build: ubuntu2604, arch, cachyos, fedora, proxmox, debian, all (default: ubuntu2604)" echo " --kernel Path to kernel source directory (default: auto-clone to work/linux/)" - echo " --img-size Disk image size in MB (default: 12000, 32000 for --distro all, 98304 for kali)" + echo " --img-size Disk image size in MB (default: 12000, 32000 for --distro all)" echo " --clean Remove all cached build artifacts and start from scratch" echo " --clean-only Remove all cached build artifacts and exit" echo " --kernel-only Build and package the kernel only, then exit" @@ -64,9 +64,6 @@ DOCKER_NAME="ps5-build-$$" if [ "$DISTRO" = "all" ] && [ "$IMG_SIZE" = "12000" ]; then IMG_SIZE=32000 fi -if [ "$DISTRO" = "kali" ] && [ "$IMG_SIZE" = "12000" ]; then - IMG_SIZE=98304 -fi if [ -z "$FORMAT" ]; then case "$DISTRO" in arch|cachyos) FORMAT="arch" ;; fedora) FORMAT="rpm" ;; all) FORMAT="all" ;; *) FORMAT="deb" ;; esac diff --git a/distros/kali/cmdline.txt b/distros/kali/cmdline.txt deleted file mode 100644 index 6660afc..0000000 --- a/distros/kali/cmdline.txt +++ /dev/null @@ -1 +0,0 @@ -root=LABEL=__DISTRO__ rw rootwait console=ttyTitania0 console=tty0 mitigations=off idle=halt preempt=full diff --git a/distros/kali/grow-rootfs b/distros/kali/grow-rootfs deleted file mode 100644 index 8c24f17..0000000 --- a/distros/kali/grow-rootfs +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash -# Grows the root partition and filesystem to fill the disk. -# Runs once on first boot, then disables itself. -# If resize fails, the service stays enabled and retries next boot. - -ROOT_DEV=$(findmnt -no SOURCE /) || { echo "Cannot find root device"; exit 1; } -DISK=$(lsblk -ndo PKNAME "$ROOT_DEV") -PART_NUM=$(cat /sys/class/block/$(basename "$ROOT_DEV")/partition 2>/dev/null) - -if [ -z "$DISK" ] || [ -z "$PART_NUM" ]; then - echo "Cannot determine disk layout (DISK=$DISK PART_NUM=$PART_NUM)" - exit 1 -fi - -growpart "/dev/$DISK" "$PART_NUM" || true -partprobe "/dev/$DISK" -resize2fs "$ROOT_DEV" - -systemctl disable grow-rootfs.service diff --git a/distros/kali/grow-rootfs.service b/distros/kali/grow-rootfs.service deleted file mode 100644 index dc5350a..0000000 --- a/distros/kali/grow-rootfs.service +++ /dev/null @@ -1,10 +0,0 @@ -[Unit] -Description=Grow root filesystem to fill disk -After=local-fs.target - -[Service] -Type=oneshot -ExecStart=/usr/local/sbin/grow-rootfs - -[Install] -WantedBy=multi-user.target diff --git a/distros/kali/image.yaml b/distros/kali/image.yaml deleted file mode 100644 index 98c5946..0000000 --- a/distros/kali/image.yaml +++ /dev/null @@ -1,388 +0,0 @@ -image: - name: ps5-kali - distribution: debian - # Release images use Kali's last snapshot for stable, repeatable builds. - release: kali-last-snapshot - description: Kali Linux XFCE desktop - architecture: x86_64 - -source: - downloader: debootstrap - url: https://kali.download/kali - variant: minbase - keyserver: keyserver.ubuntu.com - keys: - - 0x827C8569F2518CC677FECA1AED65462EC8D5E4C5 - -packages: - manager: apt - update: true - cleanup: true - - repositories: - - name: sources.list - url: |- - deb https://kali.download/kali kali-last-snapshot main contrib non-free non-free-firmware - architectures: - - amd64 - - sets: - - packages: - # Full Kali desktop and toolset - - kali-desktop-xfce - - kali-linux-everything - - kali-defaults - - kali-defaults-desktop - - kali-themes - - kali-wallpapers-2026 - - kali-wallpapers-all - - kali-menu - - kali-tweaks - - kali-undercover - - # Display / GPU / audio - - lightdm - - lightdm-gtk-greeter - - xserver-xorg - - xserver-xorg-video-amdgpu - - dbus-x11 - - x11-xserver-utils - - mesa-vulkan-drivers - - pipewire - - pipewire-pulse - - wireplumber - - pavucontrol - - # Networking and remote access - - network-manager - - network-manager-gnome - - openssh-server - - iputils-ping - - ntpsec - - iw - - wpasupplicant - - wireless-regdb - - # Firmware and PS5 boot support - - firmware-linux - - firmware-linux-nonfree - - firmware-amd-graphics - - firmware-realtek - - firmware-atheros - - firmware-mediatek - - firmware-misc-nonfree - - initramfs-tools - - kexec-tools - - kmod - - busybox - - zstd - - systemd-zram-generator - - # Base system utilities - - sudo - - cloud-guest-utils - - parted - - e2fsprogs - - usbutils - - pciutils - - rfkill - - util-linux - - curl - - wget - - git - - ca-certificates - - build-essential - - bc - - bison - - flex - - libssl-dev - - libelf-dev - - vim - - nano - - tmux - - firefox-esr - # Ghidra 12.1 requires JDK 21. The full Kali set also installs newer JDKs. - - openjdk-21-jdk - action: install - -files: -- path: /etc/hostname - generator: hostname - -- path: /etc/hosts - generator: hosts - -- path: /etc/machine-id - generator: dump - -- path: /etc/kernel/postinst.d/zz-update-boot - generator: copy - source: /tmp/build-staging/zz-update-boot - mode: "0755" - -- path: /etc/fstab - generator: copy - source: /tmp/build-staging/fstab - -- path: /etc/apt/trusted.gpg.d/kali-archive-keyring.asc - generator: copy - source: /tmp/build-staging/kali-archive-keyring.asc - -- path: /usr/local/sbin/grow-rootfs - generator: copy - source: /tmp/build-staging/grow-rootfs - mode: "0755" - -- path: /etc/systemd/system/grow-rootfs.service - generator: copy - source: /tmp/build-staging/grow-rootfs.service - -- path: /opt/debs/ - generator: copy - source: /tmp/build-staging/debs - -actions: -- trigger: post-unpack - action: |- - #!/bin/bash - set -eux - rm -f /var/lib/apt/lists/*InRelease /var/lib/apt/lists/*Release /var/lib/apt/lists/*Packages* || true - echo 'Acquire::Retries "10";' > /etc/apt/apt.conf.d/80retry - cat > /etc/apt/trusted.gpg.d/kali-archive-keyring.asc <<'EOF' - -----BEGIN PGP PUBLIC KEY BLOCK----- - - mQINBGgBJJUBEADlMTZVDCjrSXIAuYfL3VZt8OoplUdw3mSPlhIjZQmIo2sdzvAF - EMSCQ+vWeD4VqV9tBtiVx6j8VSfyW18YHHAkvajWDRg5hPLf80wGxrtXYu+vj3Ri - 5dOMhrl9fHKIifPOoV3pFTtOk0dB9lkcmtNzjWgwOJduLbjjraE1BBKqc0uaXDCa - RJnPYkQuJQcZxmZVFAo9NP7KSAL1zMvutAd0R3WeMaWpT22nGa3rJj4kj25zV6Kn - qGnv5kQaY2cTlQHnp6EbiLe5sCE7zIOp5CjwIJhyCyn4zT8KqGB8Sw8PEi9mYlSY - wbGzzfAAbBk7Y8xbmvRrkrHzU74jH0iMK566QVu2yl3Dz0hrlliV6vGn2ZWu7qmh - lwXSb+q4u46tDbFjdUjYJG2upx5vOm5SewD9snLB4YN2e2qDeQgY16AfpkJa51+u - PwTeDCbfuQu3irLWcGRZgpOBgsxqCtpZBmF6ED7L8tntoyjZ9WeB8FnTcv7hx5J1 - IPCO4K5TvW0SX6ZKp1Jusbkn5hrrFTjOJHhIDVdioM/wYDKkqJ9e25oGAqPkJYRY - euonU1teK+EOLM7ZIbalhukrw0bgYl9UJRxQMLEhZzoiiCLLiv3oWHAQGFclP+1E - zXgbLBviFAU4+DMXfhA6vy8BmS9oTpleS1p3/EOwf2rX/yt4qF7IW9ZXuQARAQAB - tEBLYWxpIExpbnV4IEFyY2hpdmUgQXV0b21hdGljIFNpZ25pbmcgS2V5ICgyMDI1 - KSA8ZGV2ZWxAa2FsaS5vcmc+iQJUBBMBCgA+FiEEgnyFafJRjMZ3/soa7WVGLsjV - 5MUFAmgF7tkCGwMFCQWkfeUFCwkIBwIGFQoJCAsCBBYCAwECHgECF4AACgkQ7WVG - LsjV5MXcjw//XeI6OXY7VcH+hXRcT7W49AwqRfmSaSEWs474G2DQR9UppzvkFCab - uiWl5jrlkeGbVFsiBruJfIlCdYMMnPk8gEm/SEhVRqcZVOjYCWcMlSVB6oU+6tgW - jKPPRDELiq7mTl8S4sEdvUxpsWoMqEQZ1+CsJsw+p+TARGNIrUUdL9hTOoOUpvue - nKNEEfzbKvLk2gj2tKOgr1HcDmVbbmRsL87+UYq1JvA0OzJ0KrhBdTZHJWchAJwa - p+UUog2XrzvXYXWBPfQLsNVkFirmVd1B5vonj3OeNlVU51YriRQ4P4onLrwlfha8 - vUGeNJw/ihXTQFpvmF7fFSRa7Pr5YfWkDZ4BGuEB+kSycu2PMWCXXHdY++cMIlRf - uUg/wvzcwAkS99DJ0EAiOun0oypE5+r5HwfaI9IrJlgZMPlFctyBIGVg2DFZCdLH - VHG1Voq/CU2tgWvWyuHXHVlUiZiWJoj7BbVa88Gj+VyvB/md1xBh0ScmfH4uGgnX - hpLFPIVuR1SJYarovVmtFhAjbqbrAA4Q9utpOeOOVDMD5tuq856/lLh+SWPkRsUy - ZJTwz1Nh0rJ/UJOMSo4ljkkr53iR/IM4woAAaP+0hkZoIDSbVVW5Im1Yj461exl4 - 0ltMBMym2KZk/IFOTloSfW7hMmGlqaLfQEH1ryHefIIpkgKJa6WgVxA= - =f+tz - -----END PGP PUBLIC KEY BLOCK----- - EOF - apt-get update - -- trigger: post-update - action: |- - #!/bin/bash - set -eux - passwd -l root - -- trigger: post-packages - action: |- - #!/bin/bash - set -eux - - # Default user (kali/kali) - useradd -m -G sudo -s /bin/bash kali - echo "kali:kali" | chpasswd - - # The image is assembled inside Docker, where the generated hostname is - # otherwise the temporary container ID. Use a stable PS5 hostname. - printf 'ps5\n' > /etc/hostname - if grep -q '^127\.0\.1\.1' /etc/hosts; then - sed -i 's/^127\.0\.1\.1.*/127.0.1.1 ps5/' /etc/hosts - else - printf '127.0.1.1 ps5\n' >> /etc/hosts - fi - - # Ghidra 12.1 requires JDK 21, while Kali Rolling may select a newer Java - # as the system default. Keep its desktop launcher on the supported JDK. - test -x /usr/lib/jvm/java-21-openjdk-amd64/bin/java - sed -i 's|^JAVA_HOME_OVERRIDE=.*|JAVA_HOME_OVERRIDE=/usr/lib/jvm/java-21-openjdk-amd64|' /usr/share/ghidra/support/launch.properties - - # LightDM autologin into XFCE - mkdir -p /etc/lightdm/lightdm.conf.d - cat > /etc/lightdm/lightdm.conf.d/50-ps5-autologin.conf <<'EOF' - [Seat:*] - autologin-user=kali - autologin-user-timeout=0 - user-session=xfce - EOF - - # SSH is installed for opt-in remote access. Keep it disabled while the - # distributed image still has public default local credentials. - sed -i 's/^#*PermitRootLogin.*/PermitRootLogin no/' /etc/ssh/sshd_config - sed -i 's/^#*PasswordAuthentication.*/PasswordAuthentication yes/' /etc/ssh/sshd_config - - systemctl set-default graphical.target - systemctl disable ssh.service || true - systemctl disable ssh.socket || true - systemctl enable NetworkManager - systemctl enable lightdm - - # PS5 systems may boot without a useful hardware clock. Keep the shared - # image timezone-neutral and synchronize after a network connection exists. - ln -sf /usr/share/zoneinfo/Etc/UTC /etc/localtime - printf 'Etc/UTC\n' > /etc/timezone - # Android USB tethering may provide IPv4 only. The default pool returned - # one unreachable IPv4 peer in PS5 testing; these independent IPv4 peers - # responded and preserve multi-source time validation. - sed -i '/^pool [0-3]\.debian\.pool\.ntp\.org /s/^/# PS5 replaced: /' /etc/ntpsec/ntp.conf - cat >> /etc/ntpsec/ntp.conf <<'EOF' - - # PS5 USB-tether-friendly IPv4 time sources - server -4 time.cloudflare.com iburst - server -4 time.google.com iburst - server -4 time.apple.com iburst - server -4 time.windows.com iburst - EOF - systemctl enable ntpsec.service - - # zram swap: half of RAM, zstd compressed - printf '[zram0]\nzram-size = ram / 2\ncompression-algorithm = zstd\n' > /etc/systemd/zram-generator.conf - - # Avoid PS5 display sleep/blanking during first boot demos. - install -d -m 0755 /home/kali/.config/autostart - cat > /home/kali/.config/autostart/ps5-display.desktop <<'EOF' - [Desktop Entry] - Type=Application - Name=PS5 Display Defaults - Exec=sh -c 'xset s off -dpms; xset s noblank' - X-GNOME-Autostart-enabled=true - EOF - chown -R kali:kali /home/kali - -- trigger: post-files - action: |- - #!/bin/bash - set -eux - systemctl enable grow-rootfs.service - mkdir -p /boot/efi - - # This USB image uses zram, not a disk-backed hibernation device. Avoid - # embedding a temporary build-container device as a resume target. - mkdir -p /etc/initramfs-tools/conf.d - printf 'RESUME=none\n' > /etc/initramfs-tools/conf.d/resume - - dpkg -i /opt/debs/*.deb - rm -rf /opt/debs - # kali-linux-everything installs a generic Kali kernel. Keep updates from - # replacing the PS5-patched kernel used by the loader. - dpkg-query -W -f='${binary:Package} ${db:Status-Status}\n' 'linux-image-*' 2>/dev/null \ - | awk '$2 == "installed" { print $1 }' \ - | xargs -r apt-mark hold - apt-mark hold linux-ps5 || true - - KVER=$(ls -1t /lib/modules | head -1) - depmod -a "$KVER" - - # PS5 internal WiFi uses the Marvell/NXP IW620 at PCI ID 1b4b:2b56. Build - # the PS5-patched NXP mwifiex module for the installed PS5 kernel. Firmware - # is console-provided by ps5-linux-loader on the boot partition, so a boot - # service copies it into /lib/firmware before loading the module. - IW620_SRC=/tmp/ps5-iw620-mwifiex - IW620_PATCHES=/tmp/ps5-linux-mwifiex - IW620_NXP_REF=a5fe4e194bf99315e349d81d77d6dfacec70757a - IW620_PATCH_REF=5cfd063449f27e2f8a7d17c814a3bb21c27aa903 - rm -rf "$IW620_SRC" "$IW620_PATCHES" - git clone https://github.com/nxp-imx/mwifiex.git "$IW620_SRC" - git -C "$IW620_SRC" checkout "$IW620_NXP_REF" - git clone https://github.com/ps5-linux/ps5-linux-mwifiex.git "$IW620_PATCHES" - git -C "$IW620_PATCHES" checkout "$IW620_PATCH_REF" - git -C "$IW620_SRC" apply "$IW620_PATCHES/ps5-iw620.patch" - make -C "$IW620_SRC" CONFIG_OBJTOOL= KERNELDIR="/lib/modules/$KVER/build" ARCH=x86 -j"$(nproc)" - test -f "$IW620_SRC/mlan.ko" - test -f "$IW620_SRC/moal.ko" - install -d "/lib/modules/$KVER/extra/ps5-iw620" - install -m 0644 "$IW620_SRC/mlan.ko" "/lib/modules/$KVER/extra/ps5-iw620/mlan.ko" - install -m 0644 "$IW620_SRC/moal.ko" "/lib/modules/$KVER/extra/ps5-iw620/moal.ko" - install -d /etc/modprobe.d /usr/local/sbin /etc/systemd/system /usr/share/doc/ps5-iw620 - cat > /etc/modprobe.d/ps5-iw620.conf <<'EOF' - # PS5 IW620 mwifiex - # Prevent udev from auto-loading moal before the loader-provided firmware is - # copied from the boot partition. ps5-iw620.service loads it explicitly. - blacklist moal - blacklist mlan - softdep moal pre: cfg80211 mlan - options moal fw_name=nxp/pcieuartiw620_combo_v1.bin pcie_int_mode=1 drv_mode=1 cfg80211_wext=4 sta_name=mlan ext_scan=0 auto_fw_reload=0 wifi_reset_config=0 sched_scan=0 ps_mode=2 auto_ds=2 amsdu_disable=1 - EOF - cat > /usr/local/sbin/ps5-iw620-load <<'EOF' - #!/bin/sh - set -eu - - FW_NAME=nxp/pcieuartiw620_combo_v1.bin - FW_DST=/lib/firmware/$FW_NAME - FW_SRC= - - for candidate in "/boot/efi/lib/$FW_NAME" "/boot/lib/$FW_NAME" "$FW_DST"; do - if [ -f "$candidate" ]; then - FW_SRC="$candidate" - break - fi - done - - if [ -z "$FW_SRC" ]; then - FW_SRC="$(find /boot /boot/efi -path "*/$FW_NAME" -type f 2>/dev/null | head -n 1)" - fi - - if [ -n "$FW_SRC" ] && [ -f "$FW_SRC" ]; then - install -D -m 0644 "$FW_SRC" "$FW_DST" - fi - - if [ ! -f "$FW_DST" ]; then - echo "PS5 IW620 firmware not found on the boot partition; skipping WiFi load" - exit 0 - fi - - # If udev raced us and loaded the module before firmware was copied, reload - # it so firmware init can succeed. - modprobe -r moal mlan 2>/dev/null || true - modprobe cfg80211 || true - modprobe moal - rfkill unblock all 2>/dev/null || true - nmcli radio wifi on 2>/dev/null || true - EOF - chmod 0755 /usr/local/sbin/ps5-iw620-load - cat > /etc/systemd/system/ps5-iw620.service <<'EOF' - [Unit] - Description=Load PS5 IW620 internal WiFi - RequiresMountsFor=/boot/efi - Wants=systemd-udev-settle.service - After=local-fs.target boot-efi.mount systemd-udev-settle.service - Before=NetworkManager.service network-pre.target - - [Service] - Type=oneshot - ExecStart=/usr/local/sbin/ps5-iw620-load - RemainAfterExit=yes - - [Install] - WantedBy=multi-user.target - EOF - cat > /usr/share/doc/ps5-iw620/BUILDINFO <> /etc/initramfs-tools/modules - printf 'MODULES=most\nBUSYBOX=y\n' > /etc/initramfs-tools/conf.d/ps5-amdgpu - update-initramfs -c -k "$KVER" - /etc/kernel/postinst.d/zz-update-boot "$KVER" - -mappings: - architecture_map: debian diff --git a/distros/kali/kali-archive-keyring.asc b/distros/kali/kali-archive-keyring.asc deleted file mode 100644 index 5ded9f7..0000000 --- a/distros/kali/kali-archive-keyring.asc +++ /dev/null @@ -1,29 +0,0 @@ ------BEGIN PGP PUBLIC KEY BLOCK----- - -mQINBGgBJJUBEADlMTZVDCjrSXIAuYfL3VZt8OoplUdw3mSPlhIjZQmIo2sdzvAF -EMSCQ+vWeD4VqV9tBtiVx6j8VSfyW18YHHAkvajWDRg5hPLf80wGxrtXYu+vj3Ri -5dOMhrl9fHKIifPOoV3pFTtOk0dB9lkcmtNzjWgwOJduLbjjraE1BBKqc0uaXDCa -RJnPYkQuJQcZxmZVFAo9NP7KSAL1zMvutAd0R3WeMaWpT22nGa3rJj4kj25zV6Kn -qGnv5kQaY2cTlQHnp6EbiLe5sCE7zIOp5CjwIJhyCyn4zT8KqGB8Sw8PEi9mYlSY -wbGzzfAAbBk7Y8xbmvRrkrHzU74jH0iMK566QVu2yl3Dz0hrlliV6vGn2ZWu7qmh -lwXSb+q4u46tDbFjdUjYJG2upx5vOm5SewD9snLB4YN2e2qDeQgY16AfpkJa51+u -PwTeDCbfuQu3irLWcGRZgpOBgsxqCtpZBmF6ED7L8tntoyjZ9WeB8FnTcv7hx5J1 -IPCO4K5TvW0SX6ZKp1Jusbkn5hrrFTjOJHhIDVdioM/wYDKkqJ9e25oGAqPkJYRY -euonU1teK+EOLM7ZIbalhukrw0bgYl9UJRxQMLEhZzoiiCLLiv3oWHAQGFclP+1E -zXgbLBviFAU4+DMXfhA6vy8BmS9oTpleS1p3/EOwf2rX/yt4qF7IW9ZXuQARAQAB -tEBLYWxpIExpbnV4IEFyY2hpdmUgQXV0b21hdGljIFNpZ25pbmcgS2V5ICgyMDI1 -KSA8ZGV2ZWxAa2FsaS5vcmc+iQJUBBMBCgA+FiEEgnyFafJRjMZ3/soa7WVGLsjV -5MUFAmgF7tkCGwMFCQWkfeUFCwkIBwIGFQoJCAsCBBYCAwECHgECF4AACgkQ7WVG -LsjV5MXcjw//XeI6OXY7VcH+hXRcT7W49AwqRfmSaSEWs474G2DQR9UppzvkFCab -uiWl5jrlkeGbVFsiBruJfIlCdYMMnPk8gEm/SEhVRqcZVOjYCWcMlSVB6oU+6tgW -jKPPRDELiq7mTl8S4sEdvUxpsWoMqEQZ1+CsJsw+p+TARGNIrUUdL9hTOoOUpvue -nKNEEfzbKvLk2gj2tKOgr1HcDmVbbmRsL87+UYq1JvA0OzJ0KrhBdTZHJWchAJwa -p+UUog2XrzvXYXWBPfQLsNVkFirmVd1B5vonj3OeNlVU51YriRQ4P4onLrwlfha8 -vUGeNJw/ihXTQFpvmF7fFSRa7Pr5YfWkDZ4BGuEB+kSycu2PMWCXXHdY++cMIlRf -uUg/wvzcwAkS99DJ0EAiOun0oypE5+r5HwfaI9IrJlgZMPlFctyBIGVg2DFZCdLH -VHG1Voq/CU2tgWvWyuHXHVlUiZiWJoj7BbVa88Gj+VyvB/md1xBh0ScmfH4uGgnX -hpLFPIVuR1SJYarovVmtFhAjbqbrAA4Q9utpOeOOVDMD5tuq856/lLh+SWPkRsUy -ZJTwz1Nh0rJ/UJOMSo4ljkkr53iR/IM4woAAaP+0hkZoIDSbVVW5Im1Yj461exl4 -0ltMBMym2KZk/IFOTloSfW7hMmGlqaLfQEH1ryHefIIpkgKJa6WgVxA= -=f+tz ------END PGP PUBLIC KEY BLOCK----- diff --git a/docker/image-builder/entrypoint.sh b/docker/image-builder/entrypoint.sh index ce639a0..0d5defe 100755 --- a/docker/image-builder/entrypoint.sh +++ b/docker/image-builder/entrypoint.sh @@ -10,10 +10,6 @@ EFI_LABEL="boot" CHROOT="/build/chroot" IMG="/output/ps5-${DISTRO}.img" -if [ "$DISTRO" = "kali" ]; then - ROOT_LABEL="kali-root" -fi - if [ "$SKIP_CHROOT" = "true" ] && [ -d "$CHROOT/bin" ]; then echo "=== Reusing cached $DISTRO rootfs ===" else @@ -38,12 +34,6 @@ EOF cp /repo/distros/${DISTRO}/grow-rootfs.service "$STAGING/" cp /kernel-debs/*.deb "$STAGING/debs/" ;; - kali) - cp /repo/distros/${DISTRO}/grow-rootfs "$STAGING/" - cp /repo/distros/${DISTRO}/grow-rootfs.service "$STAGING/" - cp /repo/distros/${DISTRO}/kali-archive-keyring.asc "$STAGING/" - cp /kernel-debs/*.deb "$STAGING/debs/" - ;; proxmox) cp /repo/distros/${DISTRO}/grow-rootfs "$STAGING/" cp /repo/distros/${DISTRO}/grow-rootfs.service "$STAGING/"