Fix MBP 16": Nvidia blacklisten, nomodeset, Compositor aus, SSH, sudo
Probleme beim ersten MBP 16" Setup behoben: - Nvidia-Treiber werden NICHT mehr installiert, stattdessen alle Nvidia-Module komplett geblockt (blacklist-nvidia.conf) - GRUB: nomodeset fuer MBP 16" (verhindert GPU-Artefakte) - XFCE Compositor deaktiviert fuer MBP 16" - Sleep/Suspend waehrend Installation verhindert - openssh-server in Paketliste (SSH-Zugriff ab erstem Boot) - user-data: rene zur sudo-Gruppe, install-server: true - FreeCAD Snap: Fehler in chroot abfangen
This commit is contained in:
parent
d6049e6941
commit
4f75cd598c
2 changed files with 60 additions and 23 deletions
|
|
@ -32,13 +32,18 @@ echo "════════════════════════
|
||||||
echo " setup-base.sh für MBP $MODEL\" startet"
|
echo " setup-base.sh für MBP $MODEL\" startet"
|
||||||
echo "════════════════════════════════════════════"
|
echo "════════════════════════════════════════════"
|
||||||
|
|
||||||
|
# ── 0. Sleep/Suspend verhindern während Installation ─────────────────────
|
||||||
|
echo -e "\n=== 0/9 Sleep verhindern ==="
|
||||||
|
systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target 2>/dev/null || true
|
||||||
|
ok "Sleep/Suspend deaktiviert (für Installation)"
|
||||||
|
|
||||||
# ── 1. System aktualisieren ──────────────────────────────────────────────
|
# ── 1. System aktualisieren ──────────────────────────────────────────────
|
||||||
echo -e "\n=== 1/8 System aktualisieren ==="
|
echo -e "\n=== 1/9 System aktualisieren ==="
|
||||||
apt update && apt upgrade -y
|
apt update && apt upgrade -y
|
||||||
ok "System aktuell"
|
ok "System aktuell"
|
||||||
|
|
||||||
# ── 2. Pakete installieren ───────────────────────────────────────────────
|
# ── 2. Pakete installieren ───────────────────────────────────────────────
|
||||||
echo -e "\n=== 2/8 Pakete installieren ==="
|
echo -e "\n=== 2/9 Pakete installieren ==="
|
||||||
apt install -y \
|
apt install -y \
|
||||||
xubuntu-desktop \
|
xubuntu-desktop \
|
||||||
bcmwl-kernel-source \
|
bcmwl-kernel-source \
|
||||||
|
|
@ -51,6 +56,7 @@ apt install -y \
|
||||||
python3 python3-pip python3-venv \
|
python3 python3-pip python3-venv \
|
||||||
nodejs npm \
|
nodejs npm \
|
||||||
wireguard wireguard-tools \
|
wireguard wireguard-tools \
|
||||||
|
openssh-server \
|
||||||
libreoffice libreoffice-l10n-de \
|
libreoffice libreoffice-l10n-de \
|
||||||
thunderbird thunderbird-locale-de \
|
thunderbird thunderbird-locale-de \
|
||||||
keepassxc \
|
keepassxc \
|
||||||
|
|
@ -64,22 +70,26 @@ apt install -y \
|
||||||
ok "Pakete installiert (apt)"
|
ok "Pakete installiert (apt)"
|
||||||
|
|
||||||
# FreeCAD via Snap (nicht in Ubuntu 24.04 Repos verfügbar)
|
# FreeCAD via Snap (nicht in Ubuntu 24.04 Repos verfügbar)
|
||||||
snap install freecad
|
snap install freecad 2>/dev/null || warn "FreeCAD Snap übersprungen (chroot)"
|
||||||
ok "FreeCAD installiert (snap)"
|
ok "FreeCAD installiert (snap)"
|
||||||
|
|
||||||
# ── 3. Nvidia (nur MBP 16") ──────────────────────────────────────────────
|
# ── 3. Nvidia blacklisten (MBP 16") ─────────────────────────────────────
|
||||||
if [[ "$MODEL" == "16" ]]; then
|
if [[ "$MODEL" == "16" ]]; then
|
||||||
echo -e "\n=== 3/8 Nvidia Optimus (MBP 16\") ==="
|
echo -e "\n=== 3/9 Nvidia blacklisten (MBP 16\") ==="
|
||||||
apt install -y nvidia-driver-535 nvidia-prime bbswitch-dkms
|
cat > /etc/modprobe.d/blacklist-nvidia.conf <<NVEOF
|
||||||
prime-select intel
|
blacklist nouveau
|
||||||
ok "Nvidia installiert, Intel als Standard-GPU gesetzt"
|
blacklist nvidia
|
||||||
|
blacklist nvidia_drm
|
||||||
|
blacklist nvidia_modeset
|
||||||
|
NVEOF
|
||||||
|
ok "Nvidia-Module komplett geblockt"
|
||||||
else
|
else
|
||||||
echo -e "\n=== 3/8 Nvidia (MBP 13\") — übersprungen ==="
|
echo -e "\n=== 3/9 Nvidia (MBP 13\") — übersprungen ==="
|
||||||
ok "Kein Nvidia auf MBP 13\""
|
ok "Kein Nvidia auf MBP 13\""
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# ── 4. Brave Browser ─────────────────────────────────────────────────────
|
# ── 4. Brave Browser ─────────────────────────────────────────────────────
|
||||||
echo -e "\n=== 4/8 Brave Browser ==="
|
echo -e "\n=== 4/9 Brave Browser ==="
|
||||||
curl -fsSLo /usr/share/keyrings/brave-browser-archive-keyring.gpg \
|
curl -fsSLo /usr/share/keyrings/brave-browser-archive-keyring.gpg \
|
||||||
https://brave-keyring.s3.brave.com/brave-browser-archive-keyring.gpg
|
https://brave-keyring.s3.brave.com/brave-browser-archive-keyring.gpg
|
||||||
echo "deb [signed-by=/usr/share/keyrings/brave-browser-archive-keyring.gpg arch=amd64] \
|
echo "deb [signed-by=/usr/share/keyrings/brave-browser-archive-keyring.gpg arch=amd64] \
|
||||||
|
|
@ -89,7 +99,7 @@ apt update && apt install -y brave-browser
|
||||||
ok "Brave installiert"
|
ok "Brave installiert"
|
||||||
|
|
||||||
# ── 5. Konfigurationsdateien ─────────────────────────────────────────────
|
# ── 5. Konfigurationsdateien ─────────────────────────────────────────────
|
||||||
echo -e "\n=== 5/8 Systemkonfigurationen ==="
|
echo -e "\n=== 5/9 Systemkonfigurationen ==="
|
||||||
|
|
||||||
# Tastaturbelegung
|
# Tastaturbelegung
|
||||||
tee /etc/default/keyboard > /dev/null <<EOF
|
tee /etc/default/keyboard > /dev/null <<EOF
|
||||||
|
|
@ -110,17 +120,37 @@ cp /tmp/mbpfan.conf /etc/mbpfan.conf
|
||||||
wget -q -O /usr/local/bin/temp-watch.sh "$SETUP_RAW/temp-watch.sh"
|
wget -q -O /usr/local/bin/temp-watch.sh "$SETUP_RAW/temp-watch.sh"
|
||||||
chmod +x /usr/local/bin/temp-watch.sh
|
chmod +x /usr/local/bin/temp-watch.sh
|
||||||
|
|
||||||
# Nvidia blacklist (nur MBP 16", optional)
|
# GRUB: nomodeset für MBP 16" (Nvidia/GPU-Probleme verhindern)
|
||||||
if [[ "$MODEL" == "16" ]]; then
|
if [[ "$MODEL" == "16" ]]; then
|
||||||
wget -q -O /tmp/blacklist-nvidia.conf "$SETUP_RAW/blacklist-nvidia.conf"
|
sed -i 's/^GRUB_CMDLINE_LINUX_DEFAULT=.*/GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nomodeset"/' /etc/default/grub
|
||||||
warn "MBP 16\": blacklist-nvidia.conf liegt in /tmp — nur aktivieren wenn Nvidia nicht gebraucht wird"
|
update-grub 2>/dev/null || true
|
||||||
|
ok "GRUB: nomodeset gesetzt (MBP 16\")"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
update-initramfs -u
|
update-initramfs -u
|
||||||
ok "Systemkonfigurationen gesetzt"
|
ok "Systemkonfigurationen gesetzt"
|
||||||
|
|
||||||
# ── 6. Energieeinstellungen (systemd) ────────────────────────────────────
|
# ── 6. XFCE Compositor deaktivieren (MBP 16") ────────────────────────────
|
||||||
echo -e "\n=== 6/8 Energieeinstellungen ==="
|
if [[ "$MODEL" == "16" ]]; then
|
||||||
|
echo -e "\n=== 6/9 XFCE Compositor deaktivieren ==="
|
||||||
|
XFWM4_DIR="/home/rene/.config/xfce4/xfconf/xfce-perchannel-xml"
|
||||||
|
mkdir -p "$XFWM4_DIR"
|
||||||
|
cat > "$XFWM4_DIR/xfwm4.xml" <<XFEOF
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<channel name="xfwm4" version="1.0">
|
||||||
|
<property name="general" type="empty">
|
||||||
|
<property name="use_compositing" type="bool" value="false"/>
|
||||||
|
</property>
|
||||||
|
</channel>
|
||||||
|
XFEOF
|
||||||
|
chown -R 1000:1000 /home/rene/.config/xfce4
|
||||||
|
ok "XFCE Compositor deaktiviert (MBP 16\")"
|
||||||
|
else
|
||||||
|
echo -e "\n=== 6/9 XFCE Compositor — beibehalten (MBP 13\") ==="
|
||||||
|
fi
|
||||||
|
|
||||||
|
# ── 7. Energieeinstellungen (systemd) ────────────────────────────────────
|
||||||
|
echo -e "\n=== 7/9 Energieeinstellungen ==="
|
||||||
|
|
||||||
tee /etc/systemd/sleep.conf > /dev/null <<EOF
|
tee /etc/systemd/sleep.conf > /dev/null <<EOF
|
||||||
[Sleep]
|
[Sleep]
|
||||||
|
|
@ -134,31 +164,36 @@ EOF
|
||||||
|
|
||||||
ok "Energieeinstellungen gesetzt"
|
ok "Energieeinstellungen gesetzt"
|
||||||
|
|
||||||
# ── 7. Lokalisierung ────────────────────────────────────────────────────
|
# ── 8. Lokalisierung ────────────────────────────────────────────────────
|
||||||
echo -e "\n=== 7/8 Lokalisierung ==="
|
echo -e "\n=== 8/9 Lokalisierung ==="
|
||||||
locale-gen de_DE.UTF-8
|
locale-gen de_DE.UTF-8
|
||||||
update-locale LANG=de_DE.UTF-8 LC_ALL=de_DE.UTF-8
|
update-locale LANG=de_DE.UTF-8 LC_ALL=de_DE.UTF-8
|
||||||
timedatectl set-timezone Europe/Berlin 2>/dev/null || ln -sf /usr/share/zoneinfo/Europe/Berlin /etc/localtime
|
timedatectl set-timezone Europe/Berlin 2>/dev/null || ln -sf /usr/share/zoneinfo/Europe/Berlin /etc/localtime
|
||||||
ok "Lokalisierung: Deutsch / Berlin"
|
ok "Lokalisierung: Deutsch / Berlin"
|
||||||
|
|
||||||
# ── 8. Services aktivieren ──────────────────────────────────────────────
|
# ── 9. Services aktivieren ──────────────────────────────────────────────
|
||||||
echo -e "\n=== 8/8 Services aktivieren ==="
|
echo -e "\n=== 9/9 Services aktivieren ==="
|
||||||
systemctl enable mbpfan
|
systemctl enable mbpfan
|
||||||
systemctl enable thermald
|
systemctl enable thermald
|
||||||
systemctl enable tlp
|
systemctl enable tlp
|
||||||
|
systemctl enable ssh
|
||||||
# --now nur wenn nicht in chroot
|
# --now nur wenn nicht in chroot
|
||||||
if [[ "$(stat -c %d:%i /)" == "$(stat -c %d:%i /proc/1/root/.)" ]] 2>/dev/null; then
|
if [[ "$(stat -c %d:%i /)" == "$(stat -c %d:%i /proc/1/root/.)" ]] 2>/dev/null; then
|
||||||
systemctl start mbpfan
|
systemctl start mbpfan
|
||||||
systemctl start thermald
|
systemctl start thermald
|
||||||
|
systemctl start ssh
|
||||||
sensors-detect --auto 2>/dev/null || true
|
sensors-detect --auto 2>/dev/null || true
|
||||||
ok "mbpfan, thermald, tlp aktiv (gestartet)"
|
ok "mbpfan, thermald, tlp, ssh aktiv (gestartet)"
|
||||||
else
|
else
|
||||||
ok "mbpfan, thermald, tlp aktiviert (Start nach Reboot)"
|
ok "mbpfan, thermald, tlp, ssh aktiviert (Start nach Reboot)"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# ── zsh als Standard-Shell für rene ──────────────────────────────────────
|
# ── zsh als Standard-Shell für rene ──────────────────────────────────────
|
||||||
chsh -s /bin/zsh rene 2>/dev/null || true
|
chsh -s /bin/zsh rene 2>/dev/null || true
|
||||||
|
|
||||||
|
# ── Sleep wieder erlauben ────────────────────────────────────────────────
|
||||||
|
systemctl unmask sleep.target suspend.target hibernate.target hybrid-sleep.target 2>/dev/null || true
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
echo "════════════════════════════════════════════"
|
echo "════════════════════════════════════════════"
|
||||||
echo -e " ${GREEN}setup-base.sh abgeschlossen!${NC}"
|
echo -e " ${GREEN}setup-base.sh abgeschlossen!${NC}"
|
||||||
|
|
|
||||||
|
|
@ -10,11 +10,13 @@ autoinstall:
|
||||||
username: rene
|
username: rene
|
||||||
password: "$6$lXt4c5wub9FgGOj2$rjwW.UjraH2yYwxabXH.diOu86KSfW.AZvIVRmScbH7Nmh.zLbeMbNITGtRKfpGhe01nqgw4fL8QK67B1oWaq."
|
password: "$6$lXt4c5wub9FgGOj2$rjwW.UjraH2yYwxabXH.diOu86KSfW.AZvIVRmScbH7Nmh.zLbeMbNITGtRKfpGhe01nqgw4fL8QK67B1oWaq."
|
||||||
ssh:
|
ssh:
|
||||||
install-server: false
|
install-server: true
|
||||||
storage:
|
storage:
|
||||||
layout:
|
layout:
|
||||||
name: lvm
|
name: lvm
|
||||||
late-commands:
|
late-commands:
|
||||||
|
# User rene zur sudo-Gruppe hinzufuegen
|
||||||
|
- curtin in-target --target=/target -- usermod -aG sudo rene
|
||||||
# System-Setup in chroot (Pakete, Configs, Locale, Services)
|
# System-Setup in chroot (Pakete, Configs, Locale, Services)
|
||||||
- curtin in-target --target=/target -- bash -c 'curl -fsSL https://git.motocamp.de/rene/macbook-setup/raw/branch/main/setup-base.sh | bash -s -- 13'
|
- curtin in-target --target=/target -- bash -c 'curl -fsSL https://git.motocamp.de/rene/macbook-setup/raw/branch/main/setup-base.sh | bash -s -- 13'
|
||||||
# Desktop-Setup als Firstboot-Autostart einrichten
|
# Desktop-Setup als Firstboot-Autostart einrichten
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue