No description
  • Shell 66.5%
  • Python 30.7%
  • Lua 2.8%
Find a file
rene 7261158fd1 WireGuard-Konfigurationen aus der Versionierung nehmen
Die sieben .conf-Dateien enthalten private Schluessel und Preshared Keys aller
Geraete. Sie lagen versioniert im Repo, das ein Remote auf git.motocamp.de hat
und sie nicht per .gitignore ausnahm -- wer Lesezugriff bekaeme, haette damit
den VPN-Zugang zu allen darin abgelegten Geraeten.

Jetzt aus der Versionierung genommen (git rm --cached, die Dateien bleiben auf
der Platte) und per .gitignore ausgeschlossen. Die Setup-Skripte lesen sie
unveraendert weiter; fehlt eine, ueberspringt build-iso.sh den WireGuard-Teil
mit einer Warnung.

wireguard/README.md erklaert, welche Dateien erwartet werden, wie sie aufgebaut
sind und wie man ein Schluesselpaar erzeugt -- auch ohne wireguard-tools, ueber
OpenSSL. Dazu zwei Fallen, die heute Zeit gekostet haben: "sudo wg syncconf
<(sudo wg-quick strip ...)" scheitert an der Prozess-Substitution, und ein
fehlendes [Peer] haengt den neuen Block an den vorherigen an und ueberschreibt
dessen Schluessel.

Die Historie wird bewusst NICHT umgeschrieben. Das haette die Schluessel nur
hier unsichtbar gemacht -- in aelteren Klonen blieben sie gueltig -- und einen
Force-Push ueber 94 Commits bedeutet. Stattdessen bekommen im Oktober 2026 alle
Geraete neue Schluessel; danach sind die alten wertlos.

Sicherung vor dem Eingriff:
macbook-setup-sicherung-20260912-0819.bundle (vollstaendige Historie, geprueft).

Claude-Session: https://claude.ai/code/session_019Vjs28zZGXAchuvfCBgNig
2026-09-12 08:20:42 +02:00
wireguard WireGuard-Konfigurationen aus der Versionierung nehmen 2026-09-12 08:20:42 +02:00
.gitignore WireGuard-Konfigurationen aus der Versionierung nehmen 2026-09-12 08:20:42 +02:00
blacklist-nvidia.conf Initial commit: Linux-Setup für MacBook Pro 13" und 16" 2026-03-07 15:27:48 +01:00
build-iso.sh Fix build-iso.sh: Modell aus Hostname ableiten statt aus late-commands 2026-03-09 21:09:35 +01:00
CLAUDE.md m16 ist MacBookPro11,5: GPU-Blacklist korrigiert, HWE-Kernel, BCM43602 2026-08-28 08:49:42 +02:00
diagnose-claude-profiles.sh Claude Code: npm-Installation auf nativen Installer umgestellt 2026-04-02 16:23:20 +02:00
dino.py Terminal-Screensaver: dino.py (Chrome-Dino-Runner) und pacman.py (Pac-Man-Screensaver) hinzugefuegt 2026-04-11 10:24:22 +02:00
hid_apple.conf Initial commit: Linux-Setup für MacBook Pro 13" und 16" 2026-03-07 15:27:48 +01:00
keyboard Initial commit: Linux-Setup für MacBook Pro 13" und 16" 2026-03-07 15:27:48 +01:00
mbpfan-13.conf Initial commit: Linux-Setup für MacBook Pro 13" und 16" 2026-03-07 15:27:48 +01:00
mbpfan-16.conf Initial commit: Linux-Setup für MacBook Pro 13" und 16" 2026-03-07 15:27:48 +01:00
meta-data Initial commit: Linux-Setup für MacBook Pro 13" und 16" 2026-03-07 15:27:48 +01:00
pacman.py Terminal-Screensaver: dino.py (Chrome-Dino-Runner) und pacman.py (Pac-Man-Screensaver) hinzugefuegt 2026-04-11 10:24:22 +02:00
README.md WireGuard-Konfigurationen aus der Versionierung nehmen 2026-09-12 08:20:42 +02:00
setup-base-asahi.sh asciiquarium: Python-Port statt Perl (asciiquarium-ng von git.motocamp.de) 2026-03-29 10:00:45 +02:00
setup-base.sh Diagnosewerkzeuge fuer Grafik in die Installation aufnehmen 2026-08-28 09:03:07 +02:00
setup-claude-profiles.sh setup-claude-profiles: Symlinks fuer geteilte Daten zwischen Profilen 2026-03-26 17:22:42 +01:00
setup-desktop-asahi.sh Claude Code: npm-Installation auf nativen Installer umgestellt 2026-04-02 16:23:20 +02:00
setup-desktop.sh Terminal: WezTerm als Standard, Kitty und xfce4-terminal entfernt 2026-04-02 16:31:43 +02:00
setup.sh m16 ist MacBookPro11,5: GPU-Blacklist korrigiert, HWE-Kernel, BCM43602 2026-08-28 08:49:42 +02:00
temp-watch.sh Initial commit: Linux-Setup für MacBook Pro 13" und 16" 2026-03-07 15:27:48 +01:00
user-data Autoinstall: late-commands reduzieren (kein Netzwerk im Installer) 2026-03-09 21:08:55 +01:00
wezterm.lua WezTerm: Schrift 18pt fuer HiDPI, Cmd+C/V (copy_or_interrupt) auf Linux 2026-03-31 12:46:08 +02:00

macbook-setup

Automatisiertes Ubuntu 24.04 (Xubuntu-Desktop) Setup fuer alte MacBook Pros.

Unterstuetzte Hardware

Bezeichnung Modell CPU GPU Besonderheiten
m16 MBP 15" Mid 2015 (MacBookPro11,5) i7-4980HQ (Haswell) Intel Iris Pro 5200 + AMD R9 M370X Dual-GPU, siehe Troubleshooting
m13 MBP 13" Late 2013 i5 Intel Iris keine Dual-GPU-Probleme

WLAN: m13 hat BCM4360 (proprietaerer wl-Treiber noetig, kein Treiber im Ubuntu-Installer!), m16 hat BCM43602 [14e4:43ba] und laeuft mit dem In-Kernel-Treiber brcmfmac.

Projekte synchronisieren

Alle Git-Projekte zwischen Macs synchron halten:

gitsync          # lokales Skript - taegliche Arbeit
mac-sync         # holt Skript frisch vom Server - nach laengerer Pause

Auf einem komplett frischen Mac (noch ohne .zshrc) einmalig:

curl -fsSL https://git.motocamp.de/rene/dotfiles-rene/raw/branch/main/bin/git-sync-all.sh | bash

Danach stehen gitsync und mac-sync als Alias zur Verfuegung.

Das Skript klont fehlende Repos, pullt Remote-Aenderungen und pusht lokale Commits.

Installations-Ablauf

WICHTIG: Immer das Stock Ubuntu 24.04 Server ISO verwenden, NICHT das custom ISO (build-iso.sh). Grund: Broadcom-WLAN hat keinen Treiber in der Live-Umgebung. Nur der interaktive Installer hat einen eingebauten WLAN-Schritt.

1. USB-Stick vorbereiten

# Stock ISO herunterladen
# https://releases.ubuntu.com/24.04/ubuntu-24.04-live-server-amd64.iso

# Auf USB-Stick schreiben (macOS)
sudo dd if=ubuntu-24.04-live-server-amd64.iso of=/dev/rdiskN bs=4m status=progress

2. Ubuntu installieren

  1. USB-Stick einstecken, MacBook einschalten, Alt-Taste gedrückt halten
  2. "EFI Boot" auswaehlen
  3. Interaktiv installieren:
    • Sprache: Deutsch
    • Tastatur: Deutsch
    • WLAN im Installer einrichten (wichtig!)
    • User: rene
    • LVM: ja
  4. Neustarten, als rene einloggen

3. System-Setup (setup-base.sh)

# Fuer MBP 16":
curl -fsSL https://git.motocamp.de/rene/macbook-setup/raw/branch/main/setup-base.sh | sudo bash -s -- 16

# Fuer MBP 13":
curl -fsSL https://git.motocamp.de/rene/macbook-setup/raw/branch/main/setup-base.sh | sudo bash -s -- 13

Installiert: xubuntu-desktop, Treiber, WireGuard, NetworkManager, mbpfan, Flatpak, SSH-Server u.v.m.

Danach: sudo reboot

4. Desktop-Setup (setup-desktop.sh)

In XFCE einloggen. Das Skript startet automatisch via Autostart im Terminal-Fenster.

Falls nicht automatisch gestartet:

curl -fsSL https://git.motocamp.de/rene/macbook-setup/raw/branch/main/setup-desktop.sh | bash

Installiert: oh-my-zsh, Powerlevel10k, Claude Code, PrusaSlicer, Dotfiles, XFCE-Konfiguration.

5. Manuelle Schritte

  • Synology Drive Client: .deb von synology.com, sudo dpkg -i ...
  • Thunderbird: Profil aus Synology Drive einbinden
  • Brave Browser: Sync-Kette beitreten

Dateien

Datei Beschreibung
setup-base.sh System-Setup: Pakete, Configs, Locale, Services
setup-desktop.sh Desktop-Setup: oh-my-zsh, Claude Code, Dotfiles, XFCE
setup.sh Wrapper (ruft beide auf)
CLAUDE.md Projektkontext fuer Claude Code (Erkenntnisse, Lessons Learned)
mbpfan-13.conf Lueftersteuerung MBP 13"
mbpfan-16.conf Lueftersteuerung MBP 16" (aggressiver)
hid_apple.conf Fn-Tasten als Standard
keyboard Tastaturbelegung Deutsch (Macintosh)
blacklist-nvidia.conf Nvidia/nouveau blacklisten (MBP 13", optional)
wezterm.lua WezTerm-Konfiguration (Cross-platform: macOS + Linux)
temp-watch.sh Temperatur-Ueberwachung mit Notification
wireguard/ WireGuard-Konfigurationen — nicht im Repo, lokal bereitstellen (siehe wireguard/README.md)

WezTerm

WezTerm ist das gemeinsame Terminal fuer macOS und Linux. Eine einzige Config-Datei funktioniert auf allen Geraeten identisch (Catppuccin Macchiato, MesloLGS NF, Powerlevel10k).

Auf neuen Maschinen wird WezTerm automatisch durch die Setup-Skripte eingerichtet.

Konfiguration auf bestehenden Maschinen (m13/m16) aktualisieren:

# WezTerm installieren (falls noch nicht vorhanden)
curl -fsSL https://apt.fury.io/wez/gpg.key | sudo gpg --yes --dearmor -o /usr/share/keyrings/wezterm-fury.gpg
echo 'deb [signed-by=/usr/share/keyrings/wezterm-fury.gpg] https://apt.fury.io/wez/ * *' | sudo tee /etc/apt/sources.list.d/wezterm.list
sudo apt update && sudo apt install -y wezterm

# Konfiguration aus Repo laden (WezTerm laedt sie automatisch neu)
curl -fsSL https://git.motocamp.de/rene/macbook-setup/raw/branch/main/wezterm.lua -o ~/.wezterm.lua

# WezTerm als Standard-Terminal setzen (x-terminal-emulator + XFCE)
sudo update-alternatives --install /usr/bin/x-terminal-emulator x-terminal-emulator /usr/bin/wezterm 50
sudo update-alternatives --set x-terminal-emulator /usr/bin/wezterm
grep -q "^TerminalEmulator=" ~/.config/xfce4/helpers.rc 2>/dev/null \
    && sed -i 's/^TerminalEmulator=.*/TerminalEmulator=wezterm/' ~/.config/xfce4/helpers.rc \
    || echo "TerminalEmulator=wezterm" >> ~/.config/xfce4/helpers.rc

macOS: WezTerm einfach starten — als Standard in System Settings > Desktop & Dock > "Standard-Terminalanwendung" manuell auf WezTerm setzen.

Paketquellen

App Quelle Grund
LibreOffice Snap .deb zeigt "benutzerdefinierte Installation nicht abgeschlossen"
FreeCAD Snap Standard
Brave Browser Flatpak .deb crasht (SIGTRAP/int3) auf aelterer Hardware
PrusaSlicer Flatpak Standard

Netzwerk

  • Heimnetz: 10.47.11.0/24
  • Fritz!Box: 10.47.11.1
  • Synology: 10.47.11.10 (dsm.motocamp.de)
  • WireGuard VPN: 10.13.13.x (Server: 24.134.39.137:443)
  • m16 erreichbar per ssh rene@m16.local

Troubleshooting

WLAN geht nicht nach Installation

Nur m13 (BCM4360) braucht den proprietaeren Treiber:

sudo apt install bcmwl-kernel-source
sudo modprobe wl

m16 (BCM43602) nutzt brcmfmac aus dem Kernel. Dort darf bcmwl-kernel-source gerade nicht installiert sein: der DKMS-Treiber von 2015 baut gegen neuere Kernel nicht mehr und laesst danach jede Paketinstallation in einen dpkg-Fehler laufen.

Grafik: kein Hardware-Rendering (MBP 15" Mid 2015)

Symptom: glxinfo -B zeigt llvmpipe und Accelerated: no, der XFCE-Compositor muss aus bleiben, alles fuehlt sich zaeh an.

Ursache (gemessen 2026-08-28): Apples Firmware schaltet die Intel-GPU ab, wenn etwas anderes als macOS bootet — sie ist dann nicht einmal auf dem PCI-Bus. Wer zusaetzlich radeon und amdgpu blockt (so stand es hier frueher), hat gar keine GPU mehr: der Desktop laeuft auf dem EFI-Framebuffer (simpledrm) in Software.

Pruefen:

ls /dev/dri/                          # renderD128 fehlt => keine GPU
lspci -nn | grep -i vga               # taucht 8086:0d26 auf?
cat /sys/class/drm/card*-eDP-1/status # wer hat das Panel?

Loesung:

sudo apt install linux-generic-hwe-24.04     # >= 6.11: EFI-Stub gibt die iGPU frei
echo "blacklist amdgpu" | sudo tee /etc/modprobe.d/blacklist-radeon.conf
# in /etc/default/grub an GRUB_CMDLINE_LINUX_DEFAULT anhaengen:
#   radeon.si_support=1 amdgpu.si_support=0 iommu=pt
sudo update-initramfs -u -k all && sudo update-grub && sudo reboot

iommu=pt gehoert zwingend dazu. Ohne den Parameter weist die IOMMU (VT-d) die DMA-Zugriffe der Radeon zurueck und das Bild flackert:

sudo dmesg | grep -c "DMAR:.*fault"   # 90 in 65 s ohne iommu=pt, 0 mit

Danach: VERDE (radeonsi), Accelerated: yes, 2 GB VRAM, Panel auf eDP-1. Die Intel-GPU ist dann ebenfalls aktiv (card1, i915), hat aber kein Panel — das haengt am gmux auf der AMD-Seite. Umschalten waere ueber /sys/kernel/debug/vgaswitcheroo/switch moeglich (nur mit gestopptem X); der dauerhafte Weg per EFI-NVRAM (gpu-switch -i) hat auf MacBookPro11,5 einen dokumentierten Schwarzbild-Fall — Rueckweg nur per PRAM-Reset.

Boot haengt (wartet auf Netzwerk)

sudo systemctl disable systemd-networkd-wait-online.service

Display-Einstellungen oeffnen sich in Endlosschleife (MBP 16")

sudo mv /usr/bin/xfce4-display-settings /usr/bin/xfce4-display-settings.bak

WireGuard: keine Verbindung

sudo wg show
# Pruefen: local public key darf NICHT gleich dem Peer-PublicKey sein!
# Falls doch: falscher Key in der Config, Server-PublicKey einsetzen.