Skip to content

Pamiro blog

Menu
  • Strona główna
Menu

openmediavault strikes back

Posted on 2025-06-162025-06-16 by forteller

Około lutego 2025 openmediavault7 dostał kernel 6.12 zamiast kernela 6.1 domyślnego dla Debiana 12. Oczywiście jak zwykle w przypadku openmediavault, sprawa jest zrobiona po macoszemu, nie ma żadnego metapakietu dla nagłówków kernela, więc dzieje się co następuje:

  1. Sterownik nvidia 535 jest kompatybilny z kernelem 6.1
  2. Potrzebna jest kompilacja modułu nvidia za pomocą dkms aby działał z kernelem 6.12
  3. Jako że nie ma metapakietu z nagłówkami kernela, trzeba każdorazowo doinstalować pakiet z nagłówkami dla wersji która akurat się zainstalowała
  4. Na koniec trzeba zrestartować usługi które korzystają z GPU

Oto zestaw który wypluł mi chatgpt, a który powinien zautomatyzować proces:

📁 Krok 1: Skrypt check-kernel-headers.sh

Utwórz plik:

sudo nano /usr/local/sbin/check-kernel-headers.sh

Wklej:

#!/bin/bash
set -e

KERNEL="$(uname -r)"
HEADERS_DIR="/lib/modules/$KERNEL/build"

echo "[INFO] Sprawdzam nagłówki dla kernela $KERNEL..."

if [ ! -d "$HEADERS_DIR" ]; then
  echo "[INFO] Brak nagłówków dla $KERNEL. Instaluję..."
  apt update
  apt install -y -t bookworm-backports "linux-headers-$KERNEL"
  echo "[INFO] Instalacja nagłówków zakończona. Wywołuję DKMS..."
  dkms autoinstall
else
  echo "[OK] Nagłówki już zainstalowane dla $KERNEL."
fi

Nadaj uprawnienia do uruchamiania:

sudo chmod +x /usr/local/sbin/check-kernel-headers.sh

⚙️ Krok 2: Jednostka systemd

Utwórz plik jednostki:

sudo nano /etc/systemd/system/check-kernel-headers.service

Wklej:

[Unit]
Description=Sprawdź i doinstaluj nagłówki kernela + uruchom DKMS
After=network-online.target
Wants=network-online.target

[Service]
Type=oneshot
ExecStart=/usr/local/sbin/check-kernel-headers.sh

⏲️ Krok 3: Timer systemd

Utwórz timer:

sudo nano /etc/systemd/system/check-kernel-headers.timer

Wklej:

[Unit]
Description=Automatyczne sprawdzanie nagłówków kernela i DKMS po starcie

[Timer]
OnBootSec=5min
OnUnitActiveSec=1d
Persistent=true

[Install]
WantedBy=timers.target

🚀 Krok 4: Aktywacja

sudo systemctl daemon-reexec
sudo systemctl daemon-reload
sudo systemctl enable --now check-kernel-headers.timer

✅ Gotowe!

Efekt:

  • Timer uruchamia się 5 minut po starcie systemu.
  • Sprawdza, czy są nagłówki dla aktualnego kernela.
  • Jeśli brakuje – doinstaluje i uruchomi dkms autoinstall.
  • Odpala się też raz dziennie, gdy masz system uruchomiony dłużej.

Dodaj komentarz Anuluj pisanie odpowiedzi

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Ostatnie wpisy

  • openmediavault strikes back
  • Używanie virt-manager spod wsl
  • Konfiguracja serwera Ubuntu część 3
  • Wygaszacz ekranu na tablecie na ścianie
  • Mody LiitoKala Lii-M4S

Najnowsze komentarze

  1. Pati - Mody LiitoKala Lii-M4S
  2. forteller - Serwer zlotowy 4.0
  3. Neo - Serwer zlotowy 4.0
  4. Jerrry - Arosa zagrożeniem pożarowym
  5. forteller - Zlot 3dfx.pl v11.0 i ciąg dalszy
© 2025 Pamiro blog | Powered by Minimalist Blog WordPress Theme