apt install cockpit cockpit-bridge cockpit-machines cockpit-networkmanager cockpit-packagekit cockpit-system cockpit-ws
Po instalacji panel administracyjny dostępny jest w przeglądarce na porcie 9090 (<ip>:9090).
apt install cockpit cockpit-bridge cockpit-machines cockpit-networkmanager cockpit-packagekit cockpit-system cockpit-ws
Po instalacji panel administracyjny dostępny jest w przeglądarce na porcie 9090 (<ip>:9090).
Bus 002 Device 003: ID 05e3:0754 Genesys Logic, Inc. USB3.0 Card Reader
-device qemu-xhci,id=xhci \-device usb-host,vendorid=0x05e3,productid=0x0754
SUBSYSTEM=="usb", ATTR{idVendor}=="05e3", MODE="0666"
SUBSYSTEM=="usb", MODE="0666"
udevadm control --reloadsudo udevadm trigger
qemu-system-x86_64: warning: dbind: Couldn't connect to accessibility bus: Failed to connect to socket /root/.cache/at-spi/bus_0.0: Permission denied
gpasswd -a uzyszkodnik kvm
-fsdev local,id=nazwa,path=/sciezka/do/katalogu/,security_model=none -device virtio-9p-pci,fsdev=nazwa,mount_tag=nazwa.montowania
mount -t 9p nazwa.montowania sciezka.montowania
-nic user,hostfwd=tcp::1111-:22
sshfs -p 1111 Administrator@127.0.0.1:"C:/" punkt.montowania
C:\ProgramData\ssh\sshd_config
PasswordAuthentication yesPermitEmptyPasswords yesPermitRootLogin yes
gpedit.msc|-Computer Configuration|-Windows Setting|-Security Settings|-Local Policies|-Security Options|-Accounts: Limit local account use of blank passwords to console logon only
ssh -p 1111 Administrator@127.0.0.1
apt install vdeplug vdens vde2-cryptcab vde2 vde-wirefilter vde-switch
vde_switch
-netdev user,id=wan -device e1000,netdev=wan,mac=52:54:00:00:00:01 \-netdev vde,id=lan,sock=/tmp/vde.ctl/ -device e1000,netdev=lan,mac=52:54:00:00:00:02
uci set network.wan=interfaceuci set network.wan.device='eth0'uci set network.wan.proto='dhcp'uci set network.lan=interfaceuci set network.lan.device='eth1'uci set network.lan.proto='static'uci set network.lan.ipaddr='192.168.10.1'uci set network.lan.netmask='255.255.255.0'uci commit network/etc/init.d/network restartuci set dhcp.lan=dhcpuci set dhcp.lan.interface='lan'uci set dhcp.lan.start='100'uci set dhcp.lan.limit='150'uci set dhcp.lan.leasetime='12h'uci commit dhcp/etc/init.d/dnsmasq restartuci commitreboot
-netdev vde,id=lan,sock=/tmp/vde.ctl/ -device e1000,netdev=lan,mac=52:54:00:00:00:xx
Shift + F10
regedit
HKEY_LOCAL_MACHINE\SYSTEM\Setup
LabConfig
BypassTPMCheckBypassSecureBootCheckBypassRAMCheck
apt install wimtools chntpw xorriso
mkdir obraz wim
wimlib-imagex mountrw obraz/sources/boot.wim 2 wim
chntpw -e /dev/shm/win11vm.wim/Windows/System32/config/SYSTEM
cd Setupnk LabConfigcd LabConfignv 4 BypassTPMChecknv 4 BypassSecureBootChecknv 4 BypassRAMChecked BypassTPMCheck1ed BypassSecureBootCheck1ed BypassRAMCheck1qy
wimlib-imagex unmount wim --commit
xorriso \-as mkisofs \-iso-level 3 \-o obraz.bez.tpm.iso \-full-iso9660-filenames \-volid "obraz.bez.tpm" \-eltorito-boot boot/etfsboot.com \-no-emul-boot \-boot-load-size 8 \-boot-info-table \-eltorito-alt-boot \-e efi/microsoft/boot/efisys.bin \-no-emul-boot \-isohybrid-gpt-basdat obraz
qemu-system-x86_64 \
-cpu host -m 16G -smp 4 -enable-kvm \
-machine q35 \
-drive media=disk,format=raw,file=srv2025.img \
-drive if=pflash,format=raw,readonly=on,file=srv2025.code.fd \
-drive if=pflash,format=raw,file=srv2025.vars.fd \
-usb -device usb-tablet \
-audiodev alsa,id=snd0 -device ac97,audiodev=snd0 \
-vga std \
-display gtk,gl=on \
-device VGA,vgamem_mb=2048 \
-nic user
New-Item -Path HKLM:\Software\Microsoft\SystemCertificates\TrustedPublisher
aptitude install ovmf swtpm swtpm-libs swtpm-tools
qemu-img create -f raw win11.img 80G
swtpm socket \--tpm2 \--tpmstate dir=/dev/shm/ \--ctrl type=unixio,path=/dev/shm/win11.tpm \--daemon;
cp /usr/share/OVMF/OVMF_CODE_4M.secboot.fd win11.code.fdcp /usr/share/OVMF/OVMF_VARS_4M.fd win11.vars.fd
qemu-system-x86_64 \-cpu host -m 16G -smp 4 -enable-kvm \-machine q35 -usb -device usb-tablet \-device VGA,vgamem_mb=2048 \-drive media=disk,format=raw,file=win11.img \-drive if=pflash,format=raw,readonly=on,file=win11.code.fd \-drive if=pflash,format=raw,file=win11.vars.fd \-chardev socket,id=chrtpm,path=/dev/shm/win11.tpm \-tpmdev emulator,id=tpm0,chardev=chrtpm \-device tpm-tis,tpmdev=tpm0 \-nic user \-drive media=cdrom,file=/sciezka/do/obrazu.iso
qemu-system-x86_64 \-cpu host -m 16G -smp 4 -enable-kvm \-machine q35 -usb -device usb-tablet \-device VGA,vgamem_mb=2048 \-drive media=disk,format=raw,file=win11.img \-drive if=pflash,format=raw,readonly=on,file=win11.code.fd \-drive if=pflash,format=raw,file=win11.vars.fd \-chardev socket,id=chrtpm,path=/dev/shm/win11.tpm \-tpmdev emulator,id=tpm0,chardev=chrtpm \-device tpm-tis,tpmdev=tpm0 \-nic user
qemu-system-x86_64 \-cpu host -m 16G -smp 4 -enable-kvm \-machine q35 \-drive media=disk,format=raw,file=srv2025.img \-drive if=pflash,format=raw,readonly=on,file=srv2025.code.fd \-drive if=pflash,format=raw,file=srv2025.vars.fd \-usb -device usb-tablet \-device VGA,vgamem_mb=2048 \-nic user
Obszar wymiany danych (czy to poprawne określenie?) to takie "miejsce" na dysku, które rozszerza pamięć RAM o dodatkową pojemność na dysku twardym. W Windowsie jest to pagerfile, w Linuksie (i pochodnych) odpowiednikiem jest swap, a w Androidzie podobną funkcję oferuje RAM Boost.
W Linuksie obszar wymiany danych może być zarówno partycją (np na oddzielnym dysku nvme) jak i plikiem. Zajmiemy się utworzeniem ostatniej opcji (z roota):
dd if=/dev/zero of=/swap bs=1G count=64
Stworzy nam to plik swap o rozmiarze 64GB, znajdujący się na partycji systemowej. Zmieniamy uprawnienia:
chmod 0600 /swap
Tworzymy "ekosystem":
mkswap /swap
W /etc/fstab tworzymy wpis:
/swap none swap defaults 0 0
Wykonujemy:
systemctl daemon-reload
Następnie:
mount -a
Oraz włączamy swapa:
swapon -a
I to wszystko :D
ssh user@pc 'sudo systemctl stop lightdm.service; sudo chvt 1'
ssh -t user@pc htop
apt install knockd
[options]UseSyslogLogFile = /var/log/knockd.logInterface = eno1[echo]sequence = 1,1,1seq_timeout = 1command = echotcpflags = syn
# control if we start knockd at init or not# 1 = start# anything else = don't start# PLEASE EDIT /etc/knockd.conf BEFORE ENABLINGSTART_KNOCKD=1# command line optionsKNOCKD_OPTS="-i eno1"
apt install knockd
knock -v host port1 port2 port3
apt install fwknop-client
apt install fwknop-server
fwknop -a ip.klienta -D ip.serwera --key-gen -C /sciezka/do/zdalnej/komendy --save-rc-stanza
START_DAEMON="yes"DAEMON_ARGS="-f -U"
SOURCE ip.klientaKEY_BASE64 klucz1HMAC_KEY_BASE64 klucz2ENABLE_CMD_EXEC Y
fwknop -n docelowy.serwer -C /sciezka/do/komendy
gdebi shell2http_1.17.0_linux_amd64.deb
[Unit]Description=shell2http[Service]Type=oneshotExecStart=/bin/shell2http /polecenie1 "/sciezka/do/polecenia1" /polecenie2 "/sciezka/do/polecenia2"[Install]WantedBy=multi-user.target
systemctl enable shell2http.service
systemctl start shell2http.service
adres.ip.serwera:8080/polecenie1
adres.ip.serwera:8080/polecenie2
ssh -t user@pc htop
ssh user@pc 'sudo systemctl stop lightdm.service; sudo chvt 1'
ssh -X user@pc 'sudo -E polecenie'
ssh -X user@pc 'su -p -c "PATH=/usr/sbin:/sbin:$PATH polecenie"'
ssh -X user@pc przeglądarka
apt install xorgxrdp xrdp
cat /etc/ssh/sshd_config | grep -e X11Forwarding -e PermitUserEnvironment -e X11UseLocalhost
X11ForwardingPermitUserEnvironment yesX11UseLocalhost yes
systemctl restart ssh.service
Lata temu do zarządzania energią procesora korzystało się z cpufrequtils. Potem zaszły zmiany, wprowadzono intel_pstate i odpowiednik u AMD. Jest to rozwiązanie na pewno bardziej skuteczne w zarządzaniu energią procesora. U mnie wszystko było OK do czasu, aż podłączyłem pod TV starszego mini pc z Intelem. Jak się okazało, zintegrowana gpu bywa kapryśna bo w końcu jest w pełni zależna od cpu. U mnie w trakcie korzystania z serwisów streamingowych przeglądarka potrafiła znienacka zamknąć kartę i wywalić błąd :D (i to mimo wsparcia sprzętowego dla różnych kodeków)
Problem się objawiał tylko na starszych i trochę słabszych jednostkach jak i5-7500T, trochę mniej na i5-8500T a na zwykłym i5-11400 tego problemu nie zauważyłem.
Co ciekawe, kernel Liquorix na Debianie problemów nie sprawiał i w dodatku ma ustawioną stałą wartość częstotliwości pracy procesora. Z małą pomocą forumowego AI (jak na dzisiejsze standardy...) znalazłem sposób jak ustawić procesor na sztywno.
AI jak to AI, często się myli więc jeśli już musimy to trzeba korzystać bardzo ostrożnie i co najwyżej można się zasugerować ale nie można brać za pewnik.
Na tą chwilę (1.01.2026) rozwiązanie działa, ale jak długo tak będzie, nie wiadomo. Wygląda na to, że poniższa metoda działa również na linux-image-rt-amd64, czyli jednym z kerneli czasu rzeczywistego które zazwyczaj są odradzane w zastosowaniach "multimedialnych".
W Debianie instalujemy:
apt install linux-cpupower
Tworzymy plik z usługą systemową /etc/systemd/system/cpufreq.service:
[Unit]
Description=cpufreq max freq
[Service]
Type=oneshot
ExecStart=/bin/cpupower frequency-set --governor performance
[Install]
WantedBy=multi-user.target
Następnie:
systemctl enable cpufreq.service
Zanim zrestartujemy system, musimy w pliku /etc/default/grub znaleźć i dopisać pogrubiony wpis:
GRUB_CMDLINE_LINUX_DEFAULT="quiet iwlwifi.power_save=0 pcie_aspm=off intel_pstate=disable"
Po czym:
update-grub2; reboot
Po restarcie sprawdzamy:
cpupower frequency-info
Wynik jak niżej:
analyzing CPU 3:
driver: acpi-cpufreq
CPUs which run at the same hardware frequency: 3
CPUs which need to have their frequency coordinated by software: 3
maximum transition latency: 10.0 us
hardware limits: 800 MHz - 2.70 GHz
available frequency steps: 2.70 GHz, 2.70 GHz, 2.60 GHz, 2.40 GHz, 2.30 GHz, 2.20 GHz, 2.00 GHz, 1.90 GHz, 1.70 GHz, 1.60 GHz, 1.50 GHz, 1.30 GHz, 1.20 GHz, 1.10 GHz, 900 MHz, 800 MHz
available cpufreq governors: performance schedutil
current policy: frequency should be within 800 MHz and 2.70 GHz.
The governor "performance" may decide which speed to use
within this range.
current CPU frequency: 2.70 GHz (asserted by call to hardware)
boost state support:
Supported: yes
Active: yes
Oraz cat /proc/cpuinfo | grep MHz:
cpu MHz : 2700.001
cpu MHz : 2700.000
cpu MHz : 2700.119
cpu MHz : 2700.277
Odchyły mogą wystąpić, procesor czasami zejdzie poniżej 1000MHz ale generalnie trzyma się wysoko. Taktowanie, temperatury itd najwygodniej sprawdza mi się programem htop.
Nawiązując do poprzedniego posta.
YT-dlp url extractor ustawiamy na yt-dlp. API key, Client ID i Client Secret trzeba sobie ustawić według instrukcji dostarczanej przez panel administracyjny. Do kompletu należałoby włączyć YouTube Data API v3 w ustawieniach projektu aplikacja w Google Cloud.
Client Secret, inaczej Secret Key, przy tworzeniu musimy od razu sobie skopiować i zapisać w bezpiecznym miejscu bo później - według komunikatu który mi się wyświetlił - nie będzie możliwości ponownego wyświetlenia.
Oraz wcześniej wspomniany YouTube Data API v3:
Mając działającego Youtube'a, bibliotekę skompletowanej muzyki i dostęp do innych serwisów streamingowych (z których na tą chwilę nie korzystam) mamy tanie radio własnego "pomysłu".
Serwer możemy między innymi kontrolować z poziomu interfejsu webowego lub z poziomu Androida za pomocą aplikacji Squeezer.
Całkiem przez przypadek znalazłem ostatnio Lyrion Music Server. Jest to serwer muzyki z masą różnych opcji i dodatków. Okazało się, że instalacja jest cholernie prosta, soft bardzo użyteczny a i jak ktoś ma stary sprzęt grający (tudzież wzmacniacz, głośniki, cokolwiek innego) to wystarczy zainwestować np w jakiś mały komputerek (terminal, mini pc, raspberry pi, cokolwiek podobnego) i mamy na czym słuchać :D
https://lyrion.org/
Poza instalacją Debiana wystarczy zainstalować paczkę deb z powyższej strony (najlepiej z wykorzystaniem gdebi to i dociągnie zależności) oraz dodatkowo wymagany będzie poniższy odtwarzacz:
https://packages.debian.org/trixie/squeezelite
Dla stable instalujemy...:
apt install squeezelite
Pakiet w repo dostępny jest od wydania Debiana Bullseye do Unstable (na 22.12.2025).
Jako że docelowo chciałem mieć możliwość odtwarzania muzyki zgranej z płyt do katalogu domowego docelowego użyszkodnika, to musiałem trochę pokombinować. Serwer tworzy użytkownika squeezeboxserver, więc testowo dodałem go do następujących grup:
gpasswd -a squeezeboxserver users
gpasswd -a squeezeboxserver uzyszkodnik
Uprawnienia dla katalogu domowego:
chmod -R 755 /home/uzyszkodnik
Pozwoli nam to na dostęp do muzyki. Dla list odtwarzania zrobiłem osobny katalog m3u i dla niego inne uprawnienia:
chmod -R 777 /home/uzyszkodnik/m3u
Dodatkowo, w opcjach serwera:
Kilka tygodni temu potrzebowałem skonfigurować klienta Transmission w trybie systemowej usługi (tzw demona). Oto bardzo krótki poradnik na przykładzie Debiana Stable (wersja 13 w momencie pisania). U mnie usługa działa na użytkowniku na którym docelowo operuję.
Najpierw instalujemy:
apt install transmission-cli transmission-common transmission-daemon
Usługa po wystartowaniu ładuje sobie konfig i w trakcie wyłączania np systemu nadpisuje wcześniej zapamiętaną konfigurację. Niweluje nam to wprowadzone w między czasie zmiany także jeżeli po powyższej instalacji, o ile usługa sama z siebie wystartuje, wyłączamy:
systemctl stop transmission-daemon.service
Następnie musimy utworzyć następujący plik (katalog, jeśli nie istniejemy, również należy utworzyć)...:
nano /etc/systemd/system/transmission-daemon.service.d/user.conf
... o następującej zawartości:
[Service]
User=
User=xxx
Group=xxx
gpasswd -a xxx debian-transmission
mkdir .config/transmission-daemon
cp /etc/transmission-daemon/settings.json .config/transmission-daemon/
rm -R /etc/transmission-daemon/*
"download-dir": "/home/xxx/Pobrane","incomplete-dir": "/home/xxx/Pobrane",
"rpc-password": "jakies-haslo",
systemctl daemon-reload ; systemctl start transmission-daemon.service
Od jakiegoś czasu zachodziła potrzeba uruchomienia serwera vnc na kilku maszynach. Nie zawsze jest czas żeby biegać od ekranu do ekranu, nawet jeżeli są to jednostki do testów itp.
Naskrobałem (no dobra, podobne rozwiązanie można znaleźć...) usługę systemową (unit w systemd pod Debianem 13). Tworzymy plik /etc/systemd/system/x11vnc.service o następującej zawartości:
[Unit]
Description=x11vnc
After=display-manager.service network.target syslog.target
[Service]
Type=forking
ExecStart=/usr/bin/x11vnc -forever -display :0 -auth guess -rfbauth plik.z.haslem
ExecStop=/usr/bin/killall x11vnc
Restart=on-failure
[Install]
WantedBy=multi-user.target
Tworzymy plik.z.haslem (najwygodniej w katalogu /etc lub ewentualnie /opt):
x11vnc -storepasswd haslo plik.z.haslem
Następnie, oczywiście z uprawnieniami roota:
systemctl daemon-reload
systemctl enable x11vnc.service
systemctl start x11vnc.service
I to było na tyle.
Cześć!
Pokrótce. Na wifi6 Intela (AX200) sieć po dłuższym czasie zaczynała "ścinać" i pracować niestabilnie. Pomagało rozłączenie i połączenie na nowo.
Szczegóły znajdują się w tym (wątku)
Używam Network Managera i u mnie zadziałały dwie metody.
Pierwsza metoda jest dla NM. Robimy taki skrypcik (nazwa i zapis w pliku *.sh dowolnie):
wifi=`nmcli connection show --active | grep wifi | awk '{print $1}'`
sudo nmcli connection modify $wifi 802-11-wireless.powersave disable
Niestety składnia wiersza poleceń nmcli wymusza każdorazowe wykonanie skryptu po zmianie sieci więc trzeba zrobić to manualnie. Można wrzucić to też do cron'a lub napisać własną usługę żeby skrypt sprawdzał (w dodatkowej linijce) czy powersave jest włączony, jeśli tak to go wyłączamy jak wyżej i to wszystko.
Druga metoda jest bardziej pewna bo powersave jest wyłączony na poziomie "kernela" i jest to zrobione w trakcie uruchamiania się systemu. W swoim bootloaderze dopisujemy takie cudo jako opcję kernela:
iwlwifi.power_save=0
Dla gruba domyślnie będzie to plik /etc/default/grub i następująca linijka:
GRUB_CMDLINE_LINUX_DEFAULT="quiet iwlwifi.power_save=0"
Trzecią metodą, której nie sprawdzałem ale powinna zadziałać, jest utworzenie pliku /etc/modprobe.d/iwlwifi.conf z poniższą zawartością:
options iwlwifi power_save=0
I tyle.