Initial commit: Linux-Setup für MacBook Pro 13" und 16"
Vollautomatisches Post-Install-Setup für Ubuntu 24.04 auf MacBook Pro
Late 2013 (13") und Mid 2014 (16" mit Nvidia Optimus). Enthält:
- setup.sh: Komplettes Post-Install-Skript (Pakete, Xubuntu, Brave,
PrusaSlicer, oh-my-zsh, Claude Code, Dotfiles via Forgejo/Stow,
mbpfan, thermald, TLP, WireGuard, Lokalisierung DE)
- build-iso.sh: Ubuntu Autoinstall ISO für Ventoy erstellen
- user-data/meta-data: cloud-init Autoinstall-Konfiguration
- mbpfan-13.conf / mbpfan-16.conf: Modellspezifische Lüftersteuerung
- hid_apple.conf / keyboard: Deutsche Mac-Tastaturbelegung + Fn-Tasten
- blacklist-nvidia.conf: Optionaler Nvidia/nouveau-Blacklist
- temp-watch.sh: CPU-Temperaturüberwachung mit Desktop-Notification
Infrastruktur-Abhängigkeiten:
- Dotfiles: git.motocamp.de/rene/dotfiles.git (via GNU Stow)
- DiskStation 10.47.11.10 (SMTP, IMAP, Synology Drive)
- WireGuard-VPN 10.13.13.x ins Heimnetz 10.47.11.0/24
2026-03-07 15:27:48 +01:00
|
|
|
#cloud-config
|
|
|
|
|
autoinstall:
|
|
|
|
|
version: 1
|
|
|
|
|
locale: de_DE.UTF-8
|
|
|
|
|
keyboard:
|
|
|
|
|
layout: de
|
|
|
|
|
variant: mac
|
|
|
|
|
identity:
|
2026-03-08 19:29:59 +01:00
|
|
|
hostname: m16
|
Initial commit: Linux-Setup für MacBook Pro 13" und 16"
Vollautomatisches Post-Install-Setup für Ubuntu 24.04 auf MacBook Pro
Late 2013 (13") und Mid 2014 (16" mit Nvidia Optimus). Enthält:
- setup.sh: Komplettes Post-Install-Skript (Pakete, Xubuntu, Brave,
PrusaSlicer, oh-my-zsh, Claude Code, Dotfiles via Forgejo/Stow,
mbpfan, thermald, TLP, WireGuard, Lokalisierung DE)
- build-iso.sh: Ubuntu Autoinstall ISO für Ventoy erstellen
- user-data/meta-data: cloud-init Autoinstall-Konfiguration
- mbpfan-13.conf / mbpfan-16.conf: Modellspezifische Lüftersteuerung
- hid_apple.conf / keyboard: Deutsche Mac-Tastaturbelegung + Fn-Tasten
- blacklist-nvidia.conf: Optionaler Nvidia/nouveau-Blacklist
- temp-watch.sh: CPU-Temperaturüberwachung mit Desktop-Notification
Infrastruktur-Abhängigkeiten:
- Dotfiles: git.motocamp.de/rene/dotfiles.git (via GNU Stow)
- DiskStation 10.47.11.10 (SMTP, IMAP, Synology Drive)
- WireGuard-VPN 10.13.13.x ins Heimnetz 10.47.11.0/24
2026-03-07 15:27:48 +01:00
|
|
|
username: rene
|
2026-03-07 16:51:55 +01:00
|
|
|
password: "$6$lXt4c5wub9FgGOj2$rjwW.UjraH2yYwxabXH.diOu86KSfW.AZvIVRmScbH7Nmh.zLbeMbNITGtRKfpGhe01nqgw4fL8QK67B1oWaq."
|
Initial commit: Linux-Setup für MacBook Pro 13" und 16"
Vollautomatisches Post-Install-Setup für Ubuntu 24.04 auf MacBook Pro
Late 2013 (13") und Mid 2014 (16" mit Nvidia Optimus). Enthält:
- setup.sh: Komplettes Post-Install-Skript (Pakete, Xubuntu, Brave,
PrusaSlicer, oh-my-zsh, Claude Code, Dotfiles via Forgejo/Stow,
mbpfan, thermald, TLP, WireGuard, Lokalisierung DE)
- build-iso.sh: Ubuntu Autoinstall ISO für Ventoy erstellen
- user-data/meta-data: cloud-init Autoinstall-Konfiguration
- mbpfan-13.conf / mbpfan-16.conf: Modellspezifische Lüftersteuerung
- hid_apple.conf / keyboard: Deutsche Mac-Tastaturbelegung + Fn-Tasten
- blacklist-nvidia.conf: Optionaler Nvidia/nouveau-Blacklist
- temp-watch.sh: CPU-Temperaturüberwachung mit Desktop-Notification
Infrastruktur-Abhängigkeiten:
- Dotfiles: git.motocamp.de/rene/dotfiles.git (via GNU Stow)
- DiskStation 10.47.11.10 (SMTP, IMAP, Synology Drive)
- WireGuard-VPN 10.13.13.x ins Heimnetz 10.47.11.0/24
2026-03-07 15:27:48 +01:00
|
|
|
ssh:
|
2026-03-08 09:22:19 +01:00
|
|
|
install-server: true
|
Initial commit: Linux-Setup für MacBook Pro 13" und 16"
Vollautomatisches Post-Install-Setup für Ubuntu 24.04 auf MacBook Pro
Late 2013 (13") und Mid 2014 (16" mit Nvidia Optimus). Enthält:
- setup.sh: Komplettes Post-Install-Skript (Pakete, Xubuntu, Brave,
PrusaSlicer, oh-my-zsh, Claude Code, Dotfiles via Forgejo/Stow,
mbpfan, thermald, TLP, WireGuard, Lokalisierung DE)
- build-iso.sh: Ubuntu Autoinstall ISO für Ventoy erstellen
- user-data/meta-data: cloud-init Autoinstall-Konfiguration
- mbpfan-13.conf / mbpfan-16.conf: Modellspezifische Lüftersteuerung
- hid_apple.conf / keyboard: Deutsche Mac-Tastaturbelegung + Fn-Tasten
- blacklist-nvidia.conf: Optionaler Nvidia/nouveau-Blacklist
- temp-watch.sh: CPU-Temperaturüberwachung mit Desktop-Notification
Infrastruktur-Abhängigkeiten:
- Dotfiles: git.motocamp.de/rene/dotfiles.git (via GNU Stow)
- DiskStation 10.47.11.10 (SMTP, IMAP, Synology Drive)
- WireGuard-VPN 10.13.13.x ins Heimnetz 10.47.11.0/24
2026-03-07 15:27:48 +01:00
|
|
|
storage:
|
|
|
|
|
layout:
|
|
|
|
|
name: lvm
|
|
|
|
|
late-commands:
|
2026-03-08 09:22:19 +01:00
|
|
|
# User rene zur sudo-Gruppe hinzufuegen
|
|
|
|
|
- curtin in-target --target=/target -- usermod -aG sudo rene
|
2026-03-08 19:29:59 +01:00
|
|
|
# WireGuard-Config vom Installationsmedium kopieren (falls vorhanden)
|
|
|
|
|
- bash -c 'if [ -f /cdrom/autoinstall/wg0.conf ]; then mkdir -p /target/etc/wireguard && cp /cdrom/autoinstall/wg0.conf /target/etc/wireguard/wg0.conf && chmod 600 /target/etc/wireguard/wg0.conf; fi'
|
|
|
|
|
# WireGuard beim Boot aktivieren
|
|
|
|
|
- curtin in-target --target=/target -- bash -c 'if [ -f /etc/wireguard/wg0.conf ]; then systemctl enable wg-quick@wg0; fi'
|
Split setup.sh in chroot-sicheren und Desktop-Teil
setup.sh rief bisher alles in einem Skript auf, was in der
Autoinstall-ISO (curtin in-target/chroot) teilweise fehlschlaegt:
xfconf-query, npm, oh-my-zsh, PrusaSlicer brauchen eine laufende
Desktop-Session.
Neuer Aufbau:
- setup-base.sh: Pakete, Configs, Locale, Services (laeuft in chroot)
- setup-desktop.sh: oh-my-zsh, Claude Code, PrusaSlicer, Dotfiles,
XFCE-Einstellungen (laeuft beim ersten Desktop-Login)
- setup.sh: Wrapper fuer Option A (manuelles curl | bash nach Install)
user-data ruft jetzt setup-base.sh in late-commands auf und richtet
einen XFCE-Autostart fuer setup-desktop.sh beim ersten Login ein.
2026-03-07 16:41:22 +01:00
|
|
|
# System-Setup in chroot (Pakete, Configs, Locale, Services)
|
2026-03-08 19:29:59 +01:00
|
|
|
- curtin in-target --target=/target -- bash -c 'curl -fsSL https://git.motocamp.de/rene/macbook-setup/raw/branch/main/setup-base.sh | bash -s -- 16'
|
Split setup.sh in chroot-sicheren und Desktop-Teil
setup.sh rief bisher alles in einem Skript auf, was in der
Autoinstall-ISO (curtin in-target/chroot) teilweise fehlschlaegt:
xfconf-query, npm, oh-my-zsh, PrusaSlicer brauchen eine laufende
Desktop-Session.
Neuer Aufbau:
- setup-base.sh: Pakete, Configs, Locale, Services (laeuft in chroot)
- setup-desktop.sh: oh-my-zsh, Claude Code, PrusaSlicer, Dotfiles,
XFCE-Einstellungen (laeuft beim ersten Desktop-Login)
- setup.sh: Wrapper fuer Option A (manuelles curl | bash nach Install)
user-data ruft jetzt setup-base.sh in late-commands auf und richtet
einen XFCE-Autostart fuer setup-desktop.sh beim ersten Login ein.
2026-03-07 16:41:22 +01:00
|
|
|
# Desktop-Setup als Firstboot-Autostart einrichten
|
|
|
|
|
- curtin in-target --target=/target -- mkdir -p /home/rene/.config/autostart
|
|
|
|
|
- curtin in-target --target=/target -- bash -c 'cat > /home/rene/.config/autostart/macbook-setup-desktop.desktop <<AUTOSTART
|
|
|
|
|
[Desktop Entry]
|
|
|
|
|
Type=Application
|
|
|
|
|
Name=MacBook Setup Desktop
|
|
|
|
|
Exec=bash -c "curl -fsSL https://git.motocamp.de/rene/macbook-setup/raw/branch/main/setup-desktop.sh | bash 2>&1 | tee /tmp/setup-desktop.log; exec xfce4-terminal -e \"bash -c less /tmp/setup-desktop.log\""
|
|
|
|
|
Hidden=false
|
|
|
|
|
X-GNOME-Autostart-enabled=true
|
|
|
|
|
AUTOSTART'
|
|
|
|
|
- curtin in-target --target=/target -- chown -R 1000:1000 /home/rene/.config
|
|
|
|
|
# Fuer MBP 16": oben "13" durch "16" ersetzen
|