- Shell 100%
|
|
||
|---|---|---|
| iso | ||
| .gitignore | ||
| build-iso.sh | ||
| Debian Testing Plan.md | ||
| debian-kde-setup.sh | ||
| README.md | ||
| system-report.sh | ||
| test-vm.sh | ||
Debian Testing KDE — HP EliteBook 845 G7
Lekki desktop KDE Plasma na Debianie Testing: bez snapów, aplikacje z Flathuba, migawki Btrfs przy każdej aktualizacji, dopasowany do HP EliteBook 845 G7 (Ryzen 4000, iGPU Vega).
Repozytorium: https://git.adamus.cloud/kamil/KDE_Debian_Desktop_Elitebook
Projekt składa się z jednego skryptu konfiguracyjnego (debian-kde-setup.sh) i z narzędzi, które
budują z niego własne ISO instalacyjne. Uzasadnienie decyzji i pełna lista zmian:
Debian Testing Plan.md.
Stan (2026-10-09): działa. Przetestowane w maszynie wirtualnej (dwa pełne przebiegi z ISO) i zainstalowane na HP EliteBook 845 G7 z ISO przez Ventoy — wyniki niżej, w sekcji Wyniki na EliteBooku.
Spis treści
- Co dostajesz
- Pliki w projekcie
- Instalacja z własnego ISO (zalecana)
- Instalacja ręczna: netinst + skrypt
- Skrypt
debian-kde-setup.sh - Po instalacji
- Skrypty na działającym laptopie
- Codzienne użytkowanie
- Blokady pakietów w APT
- Wyniki na EliteBooku
- Rozwiązywanie problemów
- Utrzymanie projektu
Co dostajesz
| Obszar | Rozwiązanie |
|---|---|
| Pulpit | KDE Plasma w wersji minimalnej (kde-plasma-desktop), bez Akonadi, Discover i PackageKit |
| Aplikacje systemowe | Dolphin, Konsole, Kate, Ark, Okular, Gwenview, Spectacle, KCalc, Partition Manager, Synaptic |
| Aplikacje użytkownika | Flathub: Firefox (zapasowa przeglądarka), Warehouse (menedżer Flatpaków) |
| Spoza Debiana | Brave Origin (domyślna przeglądarka, repo APT z kontrolą klucza), Antigravity CLI, Claude Code |
| Migawki | Btrfs + snapper: migawka przed i po każdej operacji apt, przywracanie przez Btrfs Assistant |
| Wydajność | TLP + tlp-pd (EliteBook 845 G7 nie ma CPPC) albo power-profiles-daemon z amd_pstate (gdy CPPC jest); zram; cichy rozruch z logo HP |
| Usypianie | Tylko suspend — hibernacja wyłączona (swap 4 GB jest mniejszy niż RAM) |
| Multimedia | Sprzętowe dekodowanie wideo (VA-API), pełne kodeki z Debiana |
| Czcionki | Noto, emoji, zamienniki Office (Liberation, Carlito, Caladea), oryginały Microsoftu |
| Bezpieczeństwo | Zapora ufw, apt-listbugs, bez automatycznych aktualizacji, powiadomienia o aktualizacjach |
| Sprzęt HP | fwupd (BIOS), czytnik linii papilarnych (jeśli obsługiwany), wykrywanie modemu WWAN |
Pliki w projekcie
| Plik | Do czego |
|---|---|
debian-kde-setup.sh |
Główny skrypt — cała konfiguracja systemu |
build-iso.sh |
Buduje ISO instalacyjne z oficjalnego netinst Debiana |
test-vm.sh |
Testuje ISO w maszynie wirtualnej QEMU z UEFI |
system-report.sh |
Raport diagnostyczny z działającego systemu (w ISO instalowany jako debian-kde-report) |
iso/preseed.cfg |
Odpowiedzi dla instalatora Debiana |
iso/late.sh |
Uruchamiany na końcu instalacji: subwoluminy Btrfs, usługa pierwszego startu |
(preseed.cfg i iso/ trafiają do ISO oraz do doklejonego initrd instalatora) |
|
iso/debian-kde-setup-firstboot(.service) |
Uruchamia skrypt przy pierwszym starcie systemu |
iso/test/ |
Dodatki tylko do ISO testowego (bez pytań, dysk /dev/vda) |
Debian Testing Plan.md |
Plan: co, dlaczego i jakie decyzje podjęto |
build/ |
Tworzony przez build-iso.sh i test-vm.sh: netinst, ISO, dysk maszyny testowej (~5 GB). Nie jest częścią projektu — można go usunąć w każdej chwili |
Instalacja z własnego ISO (zalecana)
1. Zbuduj ISO tuż przed instalacją
ISO opiera się na tygodniowym obrazie Debiana Testing, który po kilku tygodniach przestaje działać (Testing zmienia jądro). Dlatego buduj je zawsze na świeżo:
./build-iso.sh --refresh
Skrypt pobiera najnowszy netinst, sprawdza podpis Debiana i sumę kontrolną, dokłada pliki projektu
i zapisuje build/debian-testing-kde-elitebook.iso. Bez --refresh używa pobranego wcześniej obrazu;
jeśli Debian wydał nowszy, sam to wykryje i poprosi o --refresh.
Wymagania: curl, gpg oraz xorriso — albo Docker (wtedy xorriso działa w kontenerze).
2. (Zalecane) Sprawdź ISO w maszynie wirtualnej
./build-iso.sh --test
./test-vm.sh install
./test-vm.sh boot
ISO testowe instaluje się bez żadnych pytań (użytkownik kamil, hasło test, dysk /dev/vda).
install kończy się wyłączeniem maszyny; boot uruchamia zainstalowany system — przy pierwszym
starcie instaluje się KDE. Wymagania: qemu, edk2-ovmf.
3. Zapisz na pendrive
Uwaga: kasuje całą zawartość pendrive'a. Sprawdź nazwę urządzenia przez
lsblk.
sudo dd if=build/debian-testing-kde-elitebook.iso of=/dev/sdX bs=4M status=progress conv=fsync
3a. Albo skopiuj na pendrive z Ventoy
ISO można też po prostu skopiować na pendrive z Ventoy. Odpowiedzi dla instalatora i skrypty są wbudowane w initrd instalatora, więc nie zależą od tego, jak Ventoy podłącza obraz.
- Secure Boot: przy pierwszym starcie Ventoy trzeba raz zarejestrować jego klucz (ekran MOK, „Enroll key”) albo chwilowo wyłączyć Secure Boot w BIOS-ie.
- Jeśli instalator mimo to pyta o plik z ustawieniami: wybierz ISO w Ventoy w trybie GRUB2
(Ctrl+R / „Boot in grub2 mode”), a w ostateczności zapisz ISO przez
dd. - Sprawdzone na EliteBooku: instalacja z Ventoy w zwykłym trybie działa.
- Przed wyjęciem pendrive'a kliknij „Wysuń” w Dolphinie — inaczej system może nie dokończyć zapisu.
4. Zainstaluj
- W EliteBooku uruchom pendrive (F9 przy starcie → menu rozruchu). Tryb UEFI.
- Wybierz pierwszą pozycję: Automatyczna instalacja: Debian Testing KDE (EliteBook).
- Instalator zapyta tylko o:
- sieć Wi-Fi i hasło (jeśli nie ma kabla),
- imię i nazwisko, nazwę użytkownika i hasło (użytkownik dostaje
sudo, konto roota jest wyłączone), - dysk do instalacji i zatwierdzenie układu partycji — sprawdź uważnie, cały dysk zostanie wyczyszczony.
- Układ dysku: EFI 1 GB, Btrfs na resztę, swap 4 GB. Subwoluminy (
@home,@var_log,@var_cache,@flatpak,@snapshots) tworzone są automatycznie na końcu instalacji.
5. Pierwsze uruchomienie
Po restarcie na ekranie (konsola tty8, przełącza się sama) pojawi się „Debian Testing KDE — pierwsze uruchomienie”. Skrypt czeka na internet (do 5 minut), a potem instaluje KDE i całą resztę — 20–60 minut, zależnie od łącza. Nie wyłączaj komputera.
- W trakcie pojawi się licencja Microsoftu na czcionki — przeczytaj i zaakceptuj ją sam (Tab, Enter).
- Na końcu komputer sam się zrestartuje do ekranu logowania KDE.
- Przebieg zapisuje się w
/var/log/debian-kde-setup.log.
Instalacja ręczna: netinst + skrypt
Gdy nie chcesz budować ISO:
- Zainstaluj Debiana z oficjalnego netinst Testing:
- system plików Btrfs (instalator utworzy subwolumin
@rootfs), - w wyborze oprogramowania odznacz wszystko poza standard system utilities,
- tryb UEFI.
- system plików Btrfs (instalator utworzy subwolumin
- Po pierwszym uruchomieniu zaloguj się na konsoli tekstowej, przejdź na roota i uruchom skrypt:
su - bash /ścieżka/do/debian-kde-setup.sh --dry-run bash /ścieżka/do/debian-kde-setup.sh - Skrypt przeniesie dane do subwoluminów Btrfs i zatrzyma się z prośbą o restart (kod wyjścia 3). Po restarcie uruchom go jeszcze raz — kontynuuje od miejsca przerwania.
Skrypt debian-kde-setup.sh
Opcje
| Opcja | Działanie |
|---|---|
--dry-run |
Pokazuje, co zostałoby zrobione, bez zmian w systemie |
--only a,b |
Uruchamia tylko wybrane sekcje |
--skip a,b |
Pomija wybrane sekcje |
--force |
Uruchamia ponownie sekcje oznaczone jako zrobione |
--user NAZWA |
Użytkownik docelowy (domyślnie pierwszy z UID ≥ 1000) |
--no-msfonts |
Bez czcionek Microsoftu (wymagają akceptacji licencji) |
--list |
Lista sekcji |
Kody wyjścia: 0 — sukces, 3 — potrzebny restart (po zmianie układu Btrfs), inne — błąd.
Sekcje (w kolejności)
| Sekcja | Co robi |
|---|---|
preflight |
Sprawdza: root, Debian, amd64, UEFI, Btrfs, internet, sprzęt; doinstalowuje narzędzia skryptu |
apt_sources |
Źródła testing (deb822), blokady pakietów, pełna aktualizacja, sudo dla użytkownika |
btrfs_layout |
Subwoluminy Btrfs, opcje noatime,compress=zstd:1 (restart, jeśli coś przenosi) |
snapper |
Migawki przy apt, limity, Btrfs Assistant, comiesięczny btrfs scrub |
kde |
Minimalna Plasma, aplikacje, czcionki, PipeWire, Synaptic, zapora ufw |
power |
Bez CPPC: TLP + tlp-pd; z CPPC: power-profiles-daemon + amd_pstate. Wyłączenie hibernacji |
boot |
Plymouth (logo HP), ukryte menu GRUB (Esc w ciągu 2 s), parametry jądra |
zram |
Swap w RAM (połowa pamięci, zstd), swap na dysku jako zapas |
firmware |
Firmware AMD, mikrokod, Wi-Fi wg wykrytej karty, VA-API |
media |
ffmpeg i wtyczki GStreamer |
flatpak |
Flathub, portale KDE, Firefox, Warehouse, motyw Breeze dla GTK |
third_party |
Brave Origin (domyślna przeglądarka), Antigravity CLI, Claude Code |
testing_safety |
apt-listbugs, apt-listchanges, powiadomienia o aktualizacjach |
hp_extras |
fwupd, czytnik linii papilarnych, ModemManager tylko przy modemie WWAN |
slim |
Wyłączenie zbędnych usług, Baloo bez indeksowania treści, sprzątanie |
network_handover |
Przekazanie sieci NetworkManagerowi (z przeniesieniem Wi-Fi z instalatora) |
summary |
Podsumowanie: zrobione, pominięte, ostrzeżenia, co zrobić ręcznie |
Bezpieczeństwo działania
- Można uruchamiać wielokrotnie. Zrobione sekcje są zapisywane w
/var/lib/debian-kde-setup/i pomijane; każda sekcja sprawdza też stan systemu przed zmianą. - Kopie plików. Każdy zmieniany plik trafia najpierw do
/var/backups/debian-kde-setup/<data>/. - Bez
curl | sh. Instalatory Antigravity i Claude Code są pobierane do pliku (suma SHA-256 w logu) i uruchamiane jako użytkownik, nie root. Klucz Brave jest porównywany z odciskami z brave.com/signing-keys — przy niezgodności skrypt przerywa pracę.
Po instalacji
Sprawdź, czy wszystko działa:
sudo tlp-stat -s -p # TLP: tryb i profil (EliteBook bez CPPC)
vainfo # profile H.264/HEVC dla radeonsi
zramctl; swapon --show # zram0 z priorytetem 100
sudo snapper list # migawki
sudo ufw status # Status: active
powerprofilesctl # profile zasilania
Raport z całego systemu do diagnozy (hasła Wi-Fi, numery seryjne i adresy MAC są zamazywane):
debian-kde-report # w systemie z ISO; albo: bash system-report.sh
Wynik trafia do ~/raport-debian-kde-<data>.txt.
Do zrobienia ręcznie:
- Odcisk palca: Ustawienia systemowe → Użytkownicy → Odciski palców (jeśli czytnik jest obsługiwany).
- BIOS HP:
fwupdmgr refresh && fwupdmgr get-updates. - Profil zasilania: ikona baterii w Plasmie — Wydajność / Zrównoważony / Oszczędzanie (pod spodem TLP).
Skrypty na działającym laptopie
Najnowsze wersje skryptów można pobrać prosto z repozytorium — bez przenoszenia przez pendrive.
Działa, dopóki repozytorium jest publiczne (przy prywatnym curl wymaga logowania).
Pojedynczy plik do bieżącego katalogu:
curl -fsSLO https://git.adamus.cloud/kamil/KDE_Debian_Desktop_Elitebook/raw/branch/main/debian-kde-setup.sh
curl -fsSLO https://git.adamus.cloud/kamil/KDE_Debian_Desktop_Elitebook/raw/branch/main/system-report.sh
Cały projekt (wygodne przy częstszych zmianach; potem git pull pobiera nowości):
git clone https://git.adamus.cloud/kamil/KDE_Debian_Desktop_Elitebook.git
Przykłady użycia:
sudo bash debian-kde-setup.sh --only power --force # ponownie tylko wybrana sekcja
sudo bash debian-kde-setup.sh --dry-run # podgląd, bez zmian
bash system-report.sh # raport → ~/raport-debian-kde-<data>.txt
Zawsze możesz też skopiować pliki na pendrive z Ventoy (partycja z ISO to zwykły dysk exFAT) — przed wyjęciem kliknij „Wysuń”.
Codzienne użytkowanie
| Zadanie | Jak |
|---|---|
| Aktualizacja systemu | sudo apt update && sudo apt full-upgrade (z ostrzeżeniami apt-listbugs i migawką) |
| Aktualizacja Flatpaków | Warehouse albo flatpak update |
| Instalacja programu | Flatpak: flathub.org lub Warehouse; systemowy: Synaptic lub apt |
| Powiadomienia | Plasma pokazuje liczbę dostępnych aktualizacji APT i Flatpak (sprawdzane raz dziennie) |
| Przywrócenie systemu | Btrfs Assistant → Snapper → wybierz migawkę → Restore, potem restart |
| Menu GRUB (starsze jądro) | Naciśnij Esc w ciągu 2 sekund od startu |
Brave, Antigravity CLI i Claude Code aktualizują się same (Brave przez apt, pozostałe w tle).
Przywrócenie migawki nie cofa /home, logów ani Flatpaków — to osobne subwoluminy.
Blokady pakietów w APT
Plik /etc/apt/preferences.d/99-debian-kde-setup nadaje priorytet −10 („nigdy nie instaluj”)
pakietom, które wróciłyby jako zalecane zależności KDE:
| Pakiet | Powód |
|---|---|
snapd, plasma-discover-backend-snap |
Tylko Flatpak, bez snapów |
plasma-discover |
W Debianie wymaga PackageKit |
firefox-esr |
Przeglądarki: Brave (APT) i Firefox (Flatpak) |
fonts-noto, fonts-noto-cjk* |
Kilkaset MB czcionek CJK |
Plik /etc/apt/preferences.d/50-brave ogranicza repozytorium Brave do pakietów Brave — nie może
ono podmienić żadnego pakietu Debiana.
Sprawdzenie: apt-cache policy NAZWA. Odblokowanie: usuń pakiet z linii Package: w pliku.
Wyniki na EliteBooku 845 G7
Instalacja 2026-10-09 z ISO przez Ventoy; pierwszy start bez błędów. Ze sprawdzenia system-report.sh:
| Element | Wynik |
|---|---|
| Sprzęt | Ryzen 7 PRO 4750U, 30 GB RAM, Radeon (Renoir), Wi-Fi Intel AX200, NVMe Toshiba 512 GB, BIOS 01.24.02 |
| Start systemu | ~27 s, Plymouth z logo HP, KDE Plasma na Wayland |
| Dysk | EFI 976 MB, swap 3,8 GB, Btrfs 472 GB (6 subwoluminów); po instalacji zajęte ~6 GB |
| Pamięć | zram 15,3 GB + swap na dysku jako zapas |
| Procesor | brak CPPC w BIOS-ie → acpi-cpufreq → TLP + tlp-pd; 3 profile w Plasmie działają |
| Wideo | Sprzętowe dekodowanie i kodowanie H.264/HEVC, dekodowanie VP9 (VA-API) |
| APT | Blokady działają, 0 zepsutych pakietów; migawka przed i po każdej operacji apt |
| Firmware | fwupd: BIOS i dysk aktualne |
| Czytnik linii papilarnych | brak w tym egzemplarzu |
| Usługi z błędem | 0 |
Niegroźne komunikaty w dzienniku (journalctl -p 3), których nie trzeba naprawiać:
| Komunikat | Znaczenie |
|---|---|
ACPI BIOS Error … \_SB.PEP._STA, \_TZ.GTTP |
Błędy w firmware HP; jądro je omija |
amdgpu … psp gfx command LOAD_TA failed |
Moduł HDCP na Renoirze |
iwlwifi … iwl-debug-yoyo.bin |
Plik debugowania Wi-Fi, niepotrzebny |
powerdevil … /dev/i2c-* Brak dostępu |
Sterowanie jasnością zewnętrznego monitora (DDC/CI); jeśli potrzebne: sudo usermod -aG i2c $USER |
kscreenlocker … pam_sss.so, obexd … evolution |
Nieużywane moduły (domeny firmowe, kontakty przez Bluetooth) |
Rozwiązywanie problemów
Pierwsze uruchomienie zatrzymało się z błędem.
Przeczytaj komunikat na ekranie (konsola tty8) i /var/log/debian-kde-setup.log. Przejdź do logowania
(Ctrl+Alt+F1), usuń przyczynę i uruchom sudo debian-kde-setup.sh. Przy następnym starcie komputera próba zostanie też
powtórzona automatycznie. Zrobione sekcje są pomijane.
Brak internetu przy pierwszym starcie. Usługa czeka do 5 minut. Przy Wi-Fi sprawdź, czy sieć podana w instalatorze jest w zasięgu.
Czcionki Microsoftu się nie pobrały (serwer SourceForge niedostępny):
sudo dpkg-reconfigure ttf-mscorefonts-installer.
System nie startuje po aktualizacji.
Naciśnij Esc przy starcie → wybierz starsze jądro. Jeśli to nie pomaga, uruchom pendrive z systemem
live i przywróć migawkę (subwolumin @rootfs z migawki w @snapshots).
Synaptic nie uruchamia się w sesji Wayland.
Programy graficzne uruchamiane jako root bywają tam problemem — jeszcze niesprawdzone na EliteBooku.
Zastępczo: sudo apt … w terminalu.
Profile zasilania nie działają po zmianie sprzętu.
Skrypt wybiera TLP albo power-profiles-daemon według CPPC procesora. Po zmianie ustawień BIOS-u:
sudo debian-kde-setup.sh --only power --force.
Klucz Brave ma nieoczekiwany odcisk.
Brave dodał nowy klucz. Porównaj go z https://brave.com/signing-keys/ (kanał Release) i dopisz
odcisk do BRAVE_FPRS w debian-kde-setup.sh.
Utrzymanie projektu
- Przed każdą instalacją:
./build-iso.sh --refresh, najlepiej z testem w maszynie wirtualnej. ISO żyje kilka tygodni (instalator Testing przestaje pasować do jądra na serwerach), więc nie warto go trzymać. - Diagnoza:
system-report.sh(debian-kde-report) — zbiera stan systemu do jednego pliku tekstowego. - Zmiana jednej sekcji na działającym systemie:
sudo debian-kde-setup.sh --only <sekcja> --force(np.power), migawka snappera robi się sama przyapt. - Zmiana nazwy pakietu w Testing objawi się błędem
apt— popraw listę w odpowiedniej sekcji skryptu i w planie. - Kontrola jakości:
bash -nishellcheckdla wszystkich skryptów (shellcheck -s sh iso/late.sh— działa w busyboksie instalatora, bezbashi beztee). - Pułapki instalatora Debiana, na które już trafiliśmy:
- parametr
console=ttyS0przełącza instalator w tryb tekstowy bez polskiego, - busybox w instalatorze nie ma
tee, preseed/file=/cdrom/…zawodzi przy Ventoy — dlategopreseed.cfgi/kde-setupsą doklejone do initrd instalatora (instalator sam wczytuje/preseed.cfgz initrd),- na karty
allow-hotplugnetwork-online.targetnie czeka — stąd czekanie na internet w usłudze. - usługa pierwszego startu nie może blokować
multi-user.target(DefaultDependencies=no): pakiety, których usługi startują „po multi-user.target” (np.power-profiles-daemon), czekałyby na nią w nieskończoność.
- parametr