<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Debian on Morfitronik</title>
    <link>https://morfikov.github.io/tags/debian/</link>
    <description>Recent content in Debian on Morfitronik</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>pl-PL</language>
    <lastBuildDate>Fri, 07 Aug 2026 02:42:00 +0200</lastBuildDate><atom:link href="https://morfikov.github.io/tags/debian/feed.xml" rel="self" type="application/rss+xml" />
    <item>
	  <author>Mikhail Morfikov</author>
      <title>Jak zmusić jeden proces do korzystania z VPN na linux (Wireguard)</title>
      <link>https://morfikov.github.io/post/jak-zmusic-jeden-proces-do-korzystania-z-vpn-na-linux-wireguard/</link>
      <pubDate>Fri, 07 Aug 2026 02:42:00 +0200</pubDate>
      
      <guid>https://morfikov.github.io/post/jak-zmusic-jeden-proces-do-korzystania-z-vpn-na-linux-wireguard/</guid>
      <description>&lt;p&gt;Jakiś już dłuższy czas temu opisywałem mechanizm &lt;a href=&#34;https://morfikov.github.io/post/jak-zmusic-jeden-proces-do-korzystania-z-vpn-na-linux-openvpn/&#34;&gt;przekierowania ruchu sieciowego jednego lub
wybranych procesów do VPN na przykładzie OpenVPN&lt;/a&gt; pod moim Debianem. Zawarta w tamtym artykule
konfiguracja jak najbardziej działa do tej pory, choć minęło już prawie 6 lat od jej wdrożenia w
życie. Od tamtego momentu jednak, sporo się zmieniło w świecie linux&#39;a, a konkretnie pojawił się
&lt;a href=&#34;https://www.wireguard.com/&#34;&gt;wireguard&lt;/a&gt;, który jest nieco bardziej dostosowany do otaczającej nas rzeczywistości i kładzie
na łopatki wysłużonego już OpenVPN. Nie mam nic do OpenVPN ale przydałoby się zrobić podobne
rozwiązanie opisane w powyżej podlinkowanym artykule ale na przykładzie właśnie wireguard.
Samo &lt;a href=&#34;https://www.wireguard.com/quickstart/&#34;&gt;skonfigurowanie do pracy VPN na bazie wireguard&lt;/a&gt; jest w zasadzie dość proste i nie trzeba
pisać kolejnego artykułu na ten temat. Niemniej jednak, stawiając VPN w opisany na stronie
wireguard sposób będziemy przesyłać przez to połączenie cały ruch sieciowy, czego raczej nie chcemy.
To tutaj właśnie zaczynają się problemy z wireguard, których w OpenVPN nie szło zaobserwować, a
które uniemożliwiają poprawne działanie (zapętlanie się) połączenia VPN. Postaramy się zatem
przyjrzeć nieco bliżej samej konfiguracji wireguard i spróbować sprawić, by ruch sieciowy tylko
wybranych przez nas procesów był kierowany w tunel VPN.&lt;/p&gt;</description>
    </item>
    
    <item>
	  <author>Mikhail Morfikov</author>
      <title>Jak Video DownloadHelper (VDH) zabija dyski SSD (Firefox/Chrome)</title>
      <link>https://morfikov.github.io/post/jak-video-downloadhelper-vdh-zabija-dyski-ssd-firefox-chrome/</link>
      <pubDate>Thu, 22 Jan 2026 14:55:00 +0100</pubDate>
      
      <guid>https://morfikov.github.io/post/jak-video-downloadhelper-vdh-zabija-dyski-ssd-firefox-chrome/</guid>
      <description>&lt;p&gt;Jakiś już czas temu naskrobałem kawałek artykułu na temat &lt;a href=&#34;https://morfikov.github.io/post/trim-discard-przy-luks-lvm-na-dysku-ssd-pod-debian-linux/&#34;&gt;mechanizmu Trim/discard w kontekście
LUKS/LVM na dysku SSD pod Debian linux&lt;/a&gt;, przy okazji poruszając tam kwestie nieco daleko
idącej &lt;a href=&#34;https://morfikov.github.io/post/trim-discard-przy-luks-lvm-na-dysku-ssd-pod-debian-linux/#odci%C4%85%C5%BCenie-dysku-ssd-przez-wykorzystanie-ramdysk%C3%B3w&#34;&gt;optymalizacji systemu pod kątem przedłużenia żywotności tego typu dyskom opartym o
technologię flash&lt;/a&gt;. Opisane w tym powyższym artykule zabiegi sprawiły, że zapis danych na tym
dysku systemowym waha się w okolicy 3 GiB na dzień (średnia za rok 2024 i 2025). Gdyby ten stan
rzeczy utrzymać, to ten dysk SSD posłużyłby jeszcze przez około 160 lat i taka żywotność nośnika
SSD mnie jak najbardziej zadowala... Przez te dwa ostatnie lata tylko kilka aplikacji chciało
zapisywać ogromne ilości danych na dysku systemowym bez wyraźnej przyczyny, np &lt;a href=&#34;https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1058022&#34;&gt;QuiteRSS&lt;/a&gt;, a tak
poza tym, to ten dysk SSD nie wykazywał większych odchyłów od normy w kwestii zapisu danych.
Niestety ten stan rzeczy uległ zmianie kilka dni temu. Szukając przyczyny udało się zawęzić krąg
podejrzanych do przeglądarki Firefox (ewentualnie też Google Chrome i Chromium). Okazało się, że
jeden z jej dodatków, a konkretnie &lt;a href=&#34;https://github.com/aclap-dev/video-downloadhelper&#34;&gt;Video DownloadHelper&lt;/a&gt; (VDH), z jakiegoś powodu zapisuje
ogromne ilości danych w katalogu profilu tej przeglądarki (tj. w &lt;code&gt;~/.mozilla/firefox/&lt;/code&gt; ).
Pobierając dużo materiałów audio/video, np. z YouTube czy CDA, bardzo szybko nam taki dysk SSD
padnie i to bez znaczenia czy docelowy katalog zapisu pobranych danych z internetu mamy ustawiony,
np. na osobnym dysku HDD. Czy istnieje zatem jakiś sposób, który by powstrzymał dodatek Video
DownloadHelper od zniszczenia nam dysku SSD?&lt;/p&gt;</description>
    </item>
    
    <item>
	  <author>Mikhail Morfikov</author>
      <title>Aktualizacja firmware odbiornika Logitech Unifying na Debian Linux</title>
      <link>https://morfikov.github.io/post/aktualizacja-firmware-odbiornika-logitech-unifying-na-debian-linux/</link>
      <pubDate>Fri, 16 May 2025 18:20:00 +0200</pubDate>
      
      <guid>https://morfikov.github.io/post/aktualizacja-firmware-odbiornika-logitech-unifying-na-debian-linux/</guid>
      <description>&lt;p&gt;Od wielu lat próbowałem rozstać się z moją leciwą już klawiaturą Logitech Media Keyboard Elite,
która działała u mnie od początków przesiadki na linux&#39;a, czyli ponad 15 lat. Nic tej klawiaturze
nie dolega i dalej sprawnie działa ale ma jedną cechę, której nie da się wyeliminować. Mianowicie
jest ona przewodowa. Przez te wszystkie lata próbowałem znaleźć klawiaturę bezprzewodową ale nie
dało się. Takie klawiatury kosztowały blisko 500-1000zł, a te tańsze były pod względem jakości
typowo chińskie. Do tego doszła nowa technologia komplikująca niesamowicie budowę klawiszy, przez co
te klawiatury praktycznie są nierozbieralne, np. na potrzeby czyszczenia. Nie wiem ile razy przez te
prawie 20 lat czyściłem mojego Logitech&#39;a (kompletne rozkręcenie i powyciąganie klawiszy) ale
obstawiam, że co najmniej kilkanaście razy (średnio raz do roku). Z przycisków nawet jedno
oznaczenie się nie starło. Dlatego też miałem ogromne problemy znaleźć coś bezprzewodowego, w miarę
taniego, co by mi posłużyło kolejne dwie dekady. Gdy straciłem już wiarę w producentów klawiatur,
udało mi się za 50zł dorwać klawiaturę (używaną) od Logitech. Jest to &lt;a href=&#34;https://www.logitech.com/en-us/eol/keyboards-eol/k350-keyboard.920-001996.html&#34;&gt;model Logitech K350&lt;/a&gt;,
który jest bardzo podobny do tej mojej starej klawiatury, z tą różnicą że jest on bezprzewodowy.
Do tej klawiatury jest dostarczony &lt;a href=&#34;https://www.logitech.com/pl-pl/resource-center/what-is-unifying.html&#34;&gt;odbiornik Logitech Unifying&lt;/a&gt; i całość w zasadzie działa
bezproblemowo na moim Debianie, choć trzeba było parę rzeczy skonfigurować. Nie obyło się także bez
aktualizacji firmware w tym odbiorniku, bo czynił on to urządzenie podatne na atak typu MouseJack.&lt;/p&gt;</description>
    </item>
    
    <item>
	  <author>Mikhail Morfikov</author>
      <title>Segfault i debug procesu z GDB/coredumpctl w Debian Linux</title>
      <link>https://morfikov.github.io/post/segfault-i-debug-procesu-z-gdb-coredumpctl-w-debian-linux/</link>
      <pubDate>Sun, 02 Feb 2025 23:25:00 +0100</pubDate>
      
      <guid>https://morfikov.github.io/post/segfault-i-debug-procesu-z-gdb-coredumpctl-w-debian-linux/</guid>
      <description>&lt;p&gt;Każdy z nas korzysta z całej masy aplikacji na swoich linux&#39;ach. Na ogół te appki działają w sposób
oczekiwany i nie ma z nimi większych problemów. Czasem jednak zdarza się tak, że z jakiegoś powodu
taki program niespodziewanie kończy swoje działanie i w konsoli (czy logu systemowym) zostaje
wydrukowany komunikat zawierający frazę &lt;code&gt;segfault&lt;/code&gt; (segmentation fault, naruszenie ochrony pamięci).
Ostatnio taki problem dotknął jedną z moich ulubionych aplikacji, z których korzystam na co dzień,
tj. &lt;code&gt;strawberry&lt;/code&gt; . Gdyby ta sytuacja wystąpiła raz, to pewnie nawet bym się nią bardziej nie
zainteresował ale w tym przypadku ten cały &lt;code&gt;segfault&lt;/code&gt; potrafił wyskoczyć kilka-kilkanaście razy w
ciągu godziny, co trochę zaczęło mnie irytować. Postanowiłem poszukać przyczyny i nawet &lt;a href=&#34;https://github.com/strawberrymusicplayer/strawberry/issues/1633&#34;&gt;znalazłem
stosowny bug na git projektu strawberry&lt;/a&gt;, no ale sytuacja niby nowa, a mi ta appka crash&#39;owała
od dobrych kilku tygodni, jeśli nie miesięcy. Dlatego też zacząłem udzielać się w tamtym wątku i
przy okazji nauczyłem się jak przy pomocy &lt;code&gt;gdb&lt;/code&gt; (GNU Debugger) pozyskać nieco bardziej użyteczne
informacje i podesłać je deweloperowi aplikacji, tak by był on w stanie namierzyć przyczynę i
wyeliminować zaistniały problem. W tym artykule została zebrana garść użytecznych informacji, które
mogą przydać się użytkownikowi Debiana, na wypadek gdyby i jego aplikacje cierpiały na podobne
problemy.&lt;/p&gt;</description>
    </item>
    
    <item>
	  <author>Mikhail Morfikov</author>
      <title>TRIM/UNMAP w dyskach SSD podłączonych via adapter USB-SATA na linux</title>
      <link>https://morfikov.github.io/post/trim-unmap-w-dyskach-ssd-podlaczonych-via-adapter-usb-sata-na-linux/</link>
      <pubDate>Sun, 16 Jun 2024 16:30:00 +0200</pubDate>
      
      <guid>https://morfikov.github.io/post/trim-unmap-w-dyskach-ssd-podlaczonych-via-adapter-usb-sata-na-linux/</guid>
      <description>&lt;p&gt;Jakiś czas temu opisywałem &lt;a href=&#34;https://morfikov.github.io/post/trim-discard-przy-luks-lvm-na-dysku-ssd-pod-debian-linux/&#34;&gt;jak na Debianie włączyć obsługę mechanizmu TRIM&lt;/a&gt; (realizowanego
przez polecenie &lt;code&gt;fstrim&lt;/code&gt; ) na podpiętych do komputera dyskach SSD. Problem w tym, że dyski SSD, z
którymi będziemy wchodzić w interakcję, nie zawsze będą podłączane do dedykowanych portów
SATA/mSATA. Jak zachowa się zatem nasz linux, gdy będziemy chcieli podłączyć po portu USB
zewnętrzny dysk SSD? Przez zewnętrzny dysk USB nie mam na myśli dedykowanych zewnętrznych dysków
USB, bo te raczej nie powinny sprawiać kłopotów. Chodzi mi bardziej o wewnętrzne dyski SSD (np. ze
starego laptopa), które zamkniemy w dedykowanej obudowie USB, lub też będziemy taki dysk podłączać
na krótko za pomocą adaptera USB-SATA. W takich przypadkach zwykle kernel linux&#39;a nie odważy się
włączyć wsparcia dla TRIM dla nośników SSD i tak właśnie się stało w przypadku mojego nowo
zakupionego dysku od Goodram, a konkretnie jest to model &lt;code&gt;SSDPR-CX400-02T-G2&lt;/code&gt; , który to został
podłączony do portu USB3 mojego Raspberry PI (i Debiana) przy pomocy kabelka USB-SATA (Unitek
USB3.1 USB-A to 2.5&amp;quot; SATA6G). Przez kilka miesięcy dysk sprawował się bez zarzutu ale ostatnio przy
próbie wgrania na niego danych (przez sieć), transfer spadł do dosłownie pojedynczych MiB/s.
Poszukałem trochę informacji i okazało się, że dla tego typu nośników &lt;a href=&#34;https://www.jeffgeerling.com/blog/2020/enabling-trim-on-external-ssd-on-raspberry-pi&#34;&gt;trzeba ręcznie włączyć
TRIM&lt;/a&gt;, o ile będzie to w ogóle możliwe.&lt;/p&gt;</description>
    </item>
    
    <item>
	  <author>Mikhail Morfikov</author>
      <title>Przestrzeń wymiany SWAP tylko na potrzebny hibernacji w Debian linux</title>
      <link>https://morfikov.github.io/post/przestrzen-wymiany-swap-tylko-na-potrzebny-hibernacji-w-debian-linux/</link>
      <pubDate>Wed, 10 Jan 2024 20:05:00 +0100</pubDate>
      
      <guid>https://morfikov.github.io/post/przestrzen-wymiany-swap-tylko-na-potrzebny-hibernacji-w-debian-linux/</guid>
      <description>&lt;p&gt;W obecnych czasach, rola przestrzeni wymiany w zasadzie ograniczyła się z grubsza do umożliwienia
nam przeprowadzenia procesu hibernacji. Inne aspekty pracy systemu, w których SWAP brał udział
zostały albo zepchnięte na margines (bardzo stare maszyny z niewielką ilością RAM), albo zupełnie
wyeliminowane za sprawą nowszych technologi lub/i posiadania większej ilości pamięci operacyjnej w
takich systemach. Obecnie domowy komputer z 32 GiB pamięci RAM to nic niezwykłego i przestrzeń
wymiany na takich maszynach nie jest już nam w zasadzie do niczego potrzebna, bo raczej jest mało
prawdopodobne, że nam tej pamięci zabraknie przy codziennym użytkowaniu naszego linux&#39;a. Niemniej
jednak, hibernacja systemu jest czymś pozytywnym z perspektywy użytkownika, bo umożliwia mu
zapisanie stanu pracy przed wyłączeniem komputera i odtworzenie tego stanu po ponownym uruchomieniu
systemu. Jeśli chcielibyśmy się cieszyć urokami hibernacji, to bez konfiguracji SWAP&#39;a się nie
obejdzie. Problem jednak zaczyna się, gdy mamy dysk SSD i taka przestrzeń wymiany zostanie na nim
skonfigurowana. Chodzi generalnie o pewne aplikacje, które są w stanie generować bardzo dużo cache
w pamięci operacyjnej, czego efektem będzie przenoszenie danych z RAM do SWAP, a to może bardzo
szybko wykończyć taki nośnik flash. Dlatego też przydałoby się nieco zabezpieczyć przestrzeń
wymiany przed tego typu sytuacjami, tak by można było jej używać jedynie w przypadku hibernacji.&lt;/p&gt;</description>
    </item>
    
    <item>
	  <author>Mikhail Morfikov</author>
      <title>Trim/discard przy LUKS/LVM na dysku SSD pod Debian linux</title>
      <link>https://morfikov.github.io/post/trim-discard-przy-luks-lvm-na-dysku-ssd-pod-debian-linux/</link>
      <pubDate>Fri, 15 Dec 2023 17:00:00 +0100</pubDate>
      
      <guid>https://morfikov.github.io/post/trim-discard-przy-luks-lvm-na-dysku-ssd-pod-debian-linux/</guid>
      <description>&lt;p&gt;Z okazji zbliżającego się końca roku, postanowiłem nieco ogarnąć swojego Debiana, tj. postawić go
na nowo. Jakby nie patrzeć 4 lata korzystania z tego linux&#39;a z włączonymi gałęziami unstable i
experimental sprawiło, że trochę syfu się nazbierało. Nie chciałem też czyścić całego kontenera
LUKS czy samej struktury LVM z systemowymi voluminami logicznymi na starym dysku HDD, bo
zainstalowany tam system zawsze może się do czegoś przydać, np. do odratowania tego nowego linux&#39;a.
Dlatego też postanowiłem zakupić niedrogi dysk SSD (MLC, używany) i to na nim &lt;a href=&#34;https://morfikov.github.io/post/instalacja-debiana-z-wykorzystaniem-debootstrap/&#34;&gt;postawić świeżego
Debiana z wykorzystaniem narzędzia debootstrap&lt;/a&gt;. Sama instalacja linux&#39;a na dysku SSD nie różni
się zbytnio od instalacji na dysku HDD, za wyjątkiem skonfigurowania w takim systemie mechanizmu
trim/discard. Standardowi użytkownicy linux&#39;a nie muszą zbytnio nic robić, aby ten mechanizm został
poprawnie skonfigurowany. Sprawa się nieco komplikuje, gdy wykorzystywany jest &lt;a href=&#34;https://en.wikipedia.org/wiki/Device_mapper&#34;&gt;device-mapper&lt;/a&gt;,
który mapuje fizyczne bloki urządzenia na te wirtualne, np. przy szyfrowaniu dysku z wykorzystaniem
LUKS/dm-crypt, czy korzystaniu z voluminów logicznych LVM. Dlatego też postanowiłem przyjrzeć się
nieco bliżej zagadnieniu konfiguracji mechanizmu trim/discard na dysku SSD w przypadku
zaszyfrowanego systemu na bazie LUKS+LVM.&lt;/p&gt;</description>
    </item>
    
    <item>
	  <author>Mikhail Morfikov</author>
      <title>Zablokowanie możliwości ładowania modułów kernela na Debian linux</title>
      <link>https://morfikov.github.io/post/zablokowanie-mozliwosci-ladowania-modulow-kernela-na-debian-linux/</link>
      <pubDate>Tue, 13 Dec 2022 13:03:00 +0100</pubDate>
      
      <guid>https://morfikov.github.io/post/zablokowanie-mozliwosci-ladowania-modulow-kernela-na-debian-linux/</guid>
      <description>&lt;p&gt;Kernele oferowane przez różne dystrybucje linux&#39;a, np. Debian czy Ubuntu, są tak budowane by
możliwie jak największa ilość sprzętu na takim jądrze operacyjnym nam zadziałała bez zbędnego
przerabiania systemu. Takie podejście sprawia, że nowo nabyty przez nas sprzęt możemy od razu
podłączyć do komputera, a stosowne moduły po rozpoznaniu urządzenia zostaną załadowane do pamięci
operacyjnej, przez co my będziemy mogli wejść w interakcję z takim kawałkiem elektroniki. Problem w
tym, że kernel ma bardzo dużo tych modłów. Dużo modułów, to więcej kodu, a więcej kodu to więcej
błędów, które na poziomie jądra mogą być bardzo opłakane w skutkach. Z zagrożeniem, jakie niosą
moduły zewnętrzne (te spoza drzewa kernela linux), można sobie poradzić &lt;a href=&#34;https://morfikov.github.io/post/jak-dodac-wlasne-klucze-dla-secure-boot-do-firmware-efi-uefi-pod-linux/#podpisywanie-kernela&#34;&gt;podpisując kernel kluczami
od firmware EFI/UEFI&lt;/a&gt;. W takim przypadku załadowanie niepodpisanego modułu już się nie powiedzie.
Niemniej jednak, dystrybucyjne kernele mają całą masę modułów do różnorakiego sprzętu, które na
etapie budowania kernela są podpisywane, co otwiera im drogę do bycia załadowanymi w naszym
systemie nawet jeśli nie posiadamy urządzeń, które by użytek z tych modułów robiły. Przydałoby się
zatem zabezpieczyć możliwość ładowania modułów kernela w taki sposób, by jedynie administrator
systemu miał możliwość określenia jakie moduły i na którym etapie pracy systemu mogą one zostać
załadowane.&lt;/p&gt;</description>
    </item>
    
    <item>
	  <author>Mikhail Morfikov</author>
      <title>Oblivious DoH (ODoH) z dnscrypt-proxy na Debian Linux</title>
      <link>https://morfikov.github.io/post/oblivious-doh-odoh-z-dnscrypt-proxy-na-debian-linux/</link>
      <pubDate>Mon, 21 Nov 2022 17:42:00 +0100</pubDate>
      
      <guid>https://morfikov.github.io/post/oblivious-doh-odoh-z-dnscrypt-proxy-na-debian-linux/</guid>
      <description>&lt;p&gt;Parę miesięcy temu natrafiłem na taki oto &lt;a href=&#34;https://blog.cloudflare.com/oblivious-dns/&#34;&gt;artykuł na blogu Cloudflare&lt;/a&gt;, który poświęcony jest
poprawie prywatności wykonywanych przez klientów zapytań DNS za sprawą wykorzystania mechanizmu
zwanego Oblivious DoH (ODoH). Oczywiście postanowiłem już wtedy zbadać czym ten ODoH jest ale
standardowe narzędzia dostępne w linux&#39;ie (Debian/Ubuntu) jeszcze (przynajmniej wtedy) nie dojrzały
do obsługi ODoH. Obecnie już jest trochę lepiej ale Oblivious DoH wciąż jest w fazie
eksperymentów (&lt;a href=&#34;https://datatracker.ietf.org/doc/html/rfc9230&#34;&gt;RFC9230&lt;/a&gt;). Póki co, jedynym znanym mi narzędziem, które posiada wsparcie dla
ODoH jest &lt;a href=&#34;https://dnscrypt.info/&#34;&gt;dnscrypt-proxy&lt;/a&gt;, którego instalację i konfigurację do współpracy z &lt;code&gt;dnsmasq&lt;/code&gt;
już &lt;a href=&#34;https://morfikov.github.io/post/szyfrowany-dns-z-dnscrypt-proxy-i-dnsmasq-na-debian-linux/&#34;&gt;jakiś czas temu opisywałem&lt;/a&gt;. Mając wsparcie dla ODoH w &lt;code&gt;dnscrypt-proxy&lt;/code&gt; możemy pokusić się
o wdrożenie Oblivious DoH w swoim systemie i sprawdzić czy faktycznie taki zabieg przyczyni się do
poprawy prywatności wykonywanych przez nas zapytań DNS i właśnie temu zagadnieniu będzie poświęcony
niniejszy wpis.&lt;/p&gt;</description>
    </item>
    
    <item>
	  <author>Mikhail Morfikov</author>
      <title>Rekalibracja baterii w laptopach Lenovo ThinkPad pod linux</title>
      <link>https://morfikov.github.io/post/rekalibracja-baterii-w-laptopach-lenovo-thinkpad-pod-linux/</link>
      <pubDate>Tue, 01 Feb 2022 18:09:00 +0100</pubDate>
      
      <guid>https://morfikov.github.io/post/rekalibracja-baterii-w-laptopach-lenovo-thinkpad-pod-linux/</guid>
      <description>&lt;p&gt;Jakiś już czas temu opisywałem temat &lt;a href=&#34;https://morfikov.github.io/post/jak-ograniczyc-ladowanie-baterii-w-laptopie-thinkpad-t430/&#34;&gt;konfiguracji progów ładowania baterii w laptopie Lenovo
ThinkPad T430&lt;/a&gt;, tak by przedłużyć parokrotnie jej żywotność. Niemniej jednak, ustawienie na
dłuższy czas progów 30-40% nie pozostaje bez wpływu na pracę maszyny. Może i same baterie
litowo-jonowe nie posiadają efektu pamięci ale elektronika, która tymi bateriami zarządza, już tę
pamięć może posiadać. Chodzi generalnie o to, że brak pełnych cyklów baterii (rozładowanie do 0% i
ładowanie do 100%) może powodować różne błędy w ocenie ile faktycznie tego ładunku w takim
akumulatorze pozostało. Efektem tych błędów są wskazania sugerujące, że nasz laptop może jeszcze
popracować, np. 20-30 minut dłużej, gdy stan faktyczny na to nie pozwala, co skończyć może się
utratą niezapisanych danych w skutek nagłego odcięcia zasilania. Dlatego też jeśli wykorzystujemy
jedynie pewien zakres pojemności baterii w laptopie, to co pewien czas (co 30-50 takich niepełnych
cykli albo raz na 2 miesiące) przydałoby się przeprowadzić w laptopie proces rekalibracji baterii
(a raczej rekalibrację jej kontrolera/elektroniki), tak by ewentualne straty pojemności zostały
uwzględnione w szacunkach systemu. Zabieg rekalibracji baterii można bez większego problemu
przeprowadzić z poziomu dowolnej dystrybucji linux&#39;a, np. Debian/Ubuntu, i tym zagadnieniem się
zajmiemy w niniejszym artykule.&lt;/p&gt;</description>
    </item>
    
    <item>
	  <author>Mikhail Morfikov</author>
      <title>Chroot do 32-bit systemu ARM z poziomu 64-bit linux&#39;owego hosta</title>
      <link>https://morfikov.github.io/post/chroot-do-32-bit-systemu-arm-z-poziomu-64-bit-linuxowego-hosta/</link>
      <pubDate>Sun, 07 Nov 2021 10:20:00 +0100</pubDate>
      
      <guid>https://morfikov.github.io/post/chroot-do-32-bit-systemu-arm-z-poziomu-64-bit-linuxowego-hosta/</guid>
      <description>&lt;p&gt;Eksperymentując ostatnio z moją maszynką Raspberry Pi 4B, zaszła potrzeba, by zejść do systemu
RasPiOS/Raspbian przy pomocy mechanizmu chroot. Problem w tym, że system wyrzuca  komunikat:
&lt;code&gt;chroot: failed to run command ‘/bin/bash’: Exec format error&lt;/code&gt; . Niby wszystko jest na swoim
miejscu ale ta widoczna wyżej wiadomość nie chce zniknąć uniemożliwiając tym samym dalszą zabawę z
RPI. Okazało się, że winna jest tutaj architektura CPU. Mój laptop działa pod kontrolą 64-bitowego
Intel&#39;owskiego procesora (x64, x86-64, AMD64), na którym uruchomiony jest również 64-bitowy Debian
linux. Z kolei Raspberry Pi ma 64-bitowy procesor ARM (ARMv8-A) działający pod kontrolą 32-bitowego
systemu operacyjnego. Te dość spore rozbieżności sprawiają, że nie damy rady skorzystać z chroot,
przynajmniej nie bez zaprzęgnięcia do tego celu emulatora QEMU.&lt;/p&gt;</description>
    </item>
    
    <item>
	  <author>Mikhail Morfikov</author>
      <title>Drukowanie zeskanowanych dokumentów tekstowych na drukarce laserowej</title>
      <link>https://morfikov.github.io/post/drukowanie-zeskanowanych-dokumentow-tekstowych-na-drukarce-laserowej/</link>
      <pubDate>Tue, 26 Oct 2021 19:57:00 +0200</pubDate>
      
      <guid>https://morfikov.github.io/post/drukowanie-zeskanowanych-dokumentow-tekstowych-na-drukarce-laserowej/</guid>
      <description>&lt;p&gt;Posiadacze monochromatycznych (czarnobiałych) drukarek laserowych zapewne spotkali się z problemem
drukowania kolorowych dokumentów na tego typu urządzeniach. Nie chodzi tutaj o drukowanie obrazków
czy innych elementów graficznych ale o wydrukowanie, np. zeskanowanej książki. Ostatnio przyszło mi
wydrukować dokumentację techniczną dość starego urządzenia. Problem w tym, że nie był to zwykły
kawałek książki, a jedynie jej skany, z których ktoś postanowił zrobić plik PDF . Takiego
dokumentu &amp;quot;tekstowego&amp;quot; za bardzo nie da się wydrukować na drukarce laserowej, przynajmniej nie bez
pchania się w ogromne koszty. Dla przykładu, w miejsce pożółkniętej kartki ze skanu, taka drukarka
wstawi jakiś odcień szarości i w ten sposób zadrukuje tą szarością całą stronę marnując przy tym
niesamowite ilości toneru, za który my będziemy musieli później zapłacić, co czyni cały proces
drukowania zeskanowanych dokumentów bardzo kosztownym. Postanowiłem jednak znaleźć jakiś sposób, by
tę dokumentację wydrukować, choć trzeba było pierw zająć się samymi skanami, tj. doprowadzić je do
stanu, w którym można by mówić o ewentualnym ich wydrukowaniu. Okazało się, że nie jest to jakoś
specjalnie trudne zadanie, zwłaszcza, gdy na linux zaprzęgnie się do tego celu ImageMagick.&lt;/p&gt;</description>
    </item>
    
    <item>
	  <author>Mikhail Morfikov</author>
      <title>Jak wyłączyć mapowanie adresów IPv4 na IPv6 w Debian linux</title>
      <link>https://morfikov.github.io/post/jak-wylaczyc-mapowane-adresow-ipv4-na-ipv6-w-debian-linux/</link>
      <pubDate>Thu, 14 Oct 2021 23:52:00 +0200</pubDate>
      
      <guid>https://morfikov.github.io/post/jak-wylaczyc-mapowane-adresow-ipv4-na-ipv6-w-debian-linux/</guid>
      <description>&lt;p&gt;Przeglądając ostatnio połączenia w swoim telefonie z Androidem, natknąłem się na wpisy mające w
swoich adresach źródłowych ustawione IP takie, jak &lt;code&gt;::ffff:192.168.1.188&lt;/code&gt; . Podobnie sprawa wygląda
w przypadku adresów docelowych tego samego połączenia, tj. widnieje tam np. &lt;code&gt;::ffff:216.58.215.1&lt;/code&gt; .
Na pierwszy rzut oka taka konstrukcja adresu IP przypomina IPv6, przynajmniej jej pierwsza część,
tj. &lt;code&gt;::ffff:&lt;/code&gt; , natomiast drugi kawałek już bardzo przypomina adres IPv4. Okazuje się, że za taki
format adresów IP odpowiada &lt;a href=&#34;https://en.wikipedia.org/wiki/IPv6#IPv4-mapped_IPv6_addresses&#34;&gt;mechanizm mapowania adresów IPv4 na adresy IPv6&lt;/a&gt;. Nie jest to
jednak tożsame z &lt;a href=&#34;https://morfikov.github.io/post/implementacja-protokolu-ipv6-za-pomoca-tunelu-6to4/&#34;&gt;6to4&lt;/a&gt; czy &lt;a href=&#34;https://morfikov.github.io/post/konfiguracja-tunelu-6in4-w-openwrt-ipv6/&#34;&gt;6in4&lt;/a&gt;, gdzie host ze stałym publicznym adresem IPv4 jest w
stanie komunikować się z hostami nadającymi po IPv6. W przypadku mapowania adresów IPv4 na IPv6,
połączenia ze zdalnymi hostami mogą odbywać się zarówno po IPv4 jak i IPv6, a to z którego z tych
protokołów nasz linux skorzysta zależy od tego czy taka maszyna dysponuje przydzielonym adresem
IPv6. Jeśli ISP nie zapewnia nam adresu IPv6, to wtedy pakiety sieciowe będą przesyłane z
wykorzystaniem protokołu IPv4. Wciąż jednak te mieszane konstrukcje adresów IP będą widoczne na
wykazie połączeń w &lt;code&gt;netstat&lt;/code&gt;/&lt;code&gt;ss&lt;/code&gt; . Okazuje się jednak, że ten mechanizm mapowania adresów może
powodować szereg problemów związanych z bezpieczeństwem systemu. Dlatego też tam gdzie to możliwe
przydałoby się go wyłączyć.&lt;/p&gt;</description>
    </item>
    
    <item>
	  <author>Mikhail Morfikov</author>
      <title>Jak zaktualizować firmware custom ROM&#39;ów w smartfonach Xiaomi</title>
      <link>https://morfikov.github.io/post/jak-zaktualizowac-firmware-custom-rom-w-smartfonach-xiaomi/</link>
      <pubDate>Thu, 30 Sep 2021 02:43:00 +0200</pubDate>
      
      <guid>https://morfikov.github.io/post/jak-zaktualizowac-firmware-custom-rom-w-smartfonach-xiaomi/</guid>
      <description>&lt;p&gt;Te bardziej szanujące się marki produkujące smartfony zwykle zapewniają wsparcie dla swoich
urządzeń przez co najmniej dwa lata (a czasem nawet i dłużej) od momentu ich wypuszczenia na rynek.
Po wgraniu sobie alternatywnego ROM&#39;u na nasz telefon, oprogramowanie w nim może być aktualizowane
przez opiekuna czy dewelopera takiego ROM&#39;u znacznie dłużej niż producent przewidział. W ten sposób
nie musimy wydawać pieniążków na nowy sprzęt, oczywiście zakładając, że mu nic nie dolega, np. pod
względem wydajności, czy też ewentualnie nie zużył on się nam jakoś bardziej podczas eksploatacji.
Jedną rzeczą, o której posiadacze smartfonów z Androidem zapominają po wgraniu custom ROM&#39;ów na
bazie AOSP/LineageOS, to fakt, że o ile ROM faktycznie dostaje aktualizacje czy to bezpieczeństwa,
czy też upgrade do nowszej wersji Androida, o tyle sam firmware zwykle pozostaje nietknięty. W
przypadku mojego modelu smartfona Redmi 9, Xiaomi od czasu do czasu wypuszcza aktualizacje firmware
do tego urządzenia i przydałoby się ten firmware co jakiś czas zaktualizować. Na szczęście nie
trzeba w tym celu powracać do stock&#39;owego oprogramowania, a cały proces możemy przeprowadzić z
poziomu dowolnej dystrybucji linux&#39;a.&lt;/p&gt;</description>
    </item>
    
    <item>
	  <author>Mikhail Morfikov</author>
      <title>Kopia zapasowa danych smartfona z Androidem (OAndBackupX, Syncthing)</title>
      <link>https://morfikov.github.io/post/kopia-zapasowa-danych-smartfona-z-androidem-oandbackupx-syncthing/</link>
      <pubDate>Sun, 26 Sep 2021 16:44:00 +0200</pubDate>
      
      <guid>https://morfikov.github.io/post/kopia-zapasowa-danych-smartfona-z-androidem-oandbackupx-syncthing/</guid>
      <description>&lt;p&gt;Jak to zwykło się mawiać w świecie IT: ludzie dzielą się na te osobniki, które robią backup i
te, co backup robić będą. Jakiś czas temu pochyliłem się nad zagadnieniem &lt;a href=&#34;https://morfikov.github.io/post/czy-smartfon-z-androidem-bez-google-apps-services-ma-sens/&#34;&gt;czy smartfon z
Androidem bez Google Play Services ma sens&lt;/a&gt;. Poruszyłem tam problem tworzenia kopi zapasowej
danych użytkownika zgromadzonych w telefonie. W tym podlinkowanym artykule zostało przestawione jak
przy pomocy TWRP dokonać pełnego backupu całego systemu urządzenia i o ile pod względem technicznym
takie podejście było jak najbardziej w pełni do zaakceptowania, to jednak to rozwiązanie miało dość
istotną wadę, tj. na czas backup&#39;u trzeba było wyłączyć smartfon. Parę dni temu natrafiłem
na &lt;a href=&#34;https://github.com/machiav3lli/oandbackupx&#34;&gt;narzędzia OAndBackupX&lt;/a&gt;, które jest w stanie zrobić kopię zapasową wszystkich zainstalowanych
w Androidzie aplikacji (oraz ich ustawień), wliczając w to nawet appki systemowe. OAndBackupX jest
o tyle lepszym rozwiązaniem w stosunku do TWRP, że można przy jego pomocy robić kopię danych
pojedynczych aplikacji, a nie od razu całego ROM&#39;u, co nie tylko jest czasochłonne ale również
zjada sporo miejsca na dysku komputera, czy gdzie ten backup zamierzamy przechowywać. Niestety
OAndBackupX wymaga uprawnień root, zatem na stock&#39;owym ROM&#39;ie producenta naszego telefonu nie damy
rady z tego narzędzia skorzystać. Jeśli jednak mamy alternatywny ROM na bazie AOSP/LineageOS, to
przydałoby się rzucić okiem na ten kawałek oprogramowania, bo zdaje się ono być wielce użyteczne,
zwłaszcza w przypadku osób mojego pokroju, czyli linux&#39;iarzy, którzy o backup swoich danych chcą
zatroszczyć się tylko i wyłącznie we własnym zakresie, zaprzęgając do pracy choćby &lt;a href=&#34;https://github.com/syncthing/syncthing&#34;&gt;Syncthing&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    
    <item>
	  <author>Mikhail Morfikov</author>
      <title>Kontrola podświetlenia klawiatury via UDEV (backlight)</title>
      <link>https://morfikov.github.io/post/kontrola-podswietlenia-klawiatury-via-udev-backlight/</link>
      <pubDate>Sat, 04 Sep 2021 12:36:00 +0200</pubDate>
      
      <guid>https://morfikov.github.io/post/kontrola-podswietlenia-klawiatury-via-udev-backlight/</guid>
      <description>&lt;p&gt;Ostatnio na &lt;a href=&#34;https://forum.linuxmint.pl/showthread.php?tid=1739&amp;amp;pid=13156&#34;&gt;polskim forum linux mint pojawił się wątek&lt;/a&gt;, w którym jeden z użytkowników miał
problem z ogarnięciem podświetlania klawiatury. Chodzi generalnie o start komputera z włączonym
backlight&#39;em klawiatury, przez co trzeba to podświetlenie manualnie wyłączać za każdym razem po
uruchomieniu się systemu. W przypadku mojego laptopa Lenovo ThinkPad T430, taka sytuacja co prawda
nie występuje i system uruchamia się naturalnie ze zgaszoną klawiaturą. Niemniej jednak,
zainteresował mnie ten problem tyle, że w drugą stronę -- chodzi o możliwość startu systemu z
włączonym podświetleniem klawiatury, bo ustawienia BIOS/EFI/UEFI mojego laptopa tego aspektu pracy
komputera nie są w stanie w żaden sposób skonfigurować. Okazało się, że zaimplementowanie tego typu
funkcjonalności nie jest jakoś specjalnie trudne i można bez większego trudu ogarnąć backlight
klawiatury przy pomocy prostej reguły dla UDEV&#39;a.&lt;/p&gt;</description>
    </item>
    
    <item>
	  <author>Mikhail Morfikov</author>
      <title>Jak odblokować bootloader w Xiaomi Redmi 9 (galahad/lancelot)</title>
      <link>https://morfikov.github.io/post/jak-odblokowac-bootloader-w-xiaomi-redmi-9-galahad-lancelot/</link>
      <pubDate>Fri, 27 Aug 2021 22:26:00 +0200</pubDate>
      
      <guid>https://morfikov.github.io/post/jak-odblokowac-bootloader-w-xiaomi-redmi-9-galahad-lancelot/</guid>
      <description>&lt;p&gt;Jakiś czas temu wpadł w moje łapki smartfon Xiaomi Redmi 9 (galahad albo lancelot, bo w różnych
częściach systemu jest to inaczej określone), który miał preinstalowanego Androida 10 oraz MIUI 11.
Przez parę miesięcy używania telefonu, dostał on dwa albo trzy większe update całego ROM&#39;u,
wliczając w to aktualizację MIUI do 12.0.1 ze stanem zabezpieczeń na dzień 2021-01-05. Zatem
ostatnia aktualizacja zabezpieczeń tego telefonu miała miejsce zaraz na początku Stycznia. Od tego
czasu cisza. Niby w przypadku tego modelu telefonu aktualizacje miały być wydawane &lt;a href=&#34;https://www.mi.com/global/service/support/security-update-1.html&#34;&gt;co trzy
miesiące do roku 2023&lt;/a&gt; ale najwyraźniej coś jest nie tak i urządzenie od ponad pół roku nie
dostało żadnych aktualizacji. Niby pod tym linkiem można wyczytać informację, że planowana jest
aktualizacja do Androida 11 ale prawdę mówiąc jestem nieco zawiedziony opieszałością Xiaomi. Tak
się złożyło, że przez przypadek trafiłem w &lt;a href=&#34;https://forum.xda-developers.com/f/redmi-9-poco-m2-roms-kernels-recoveries-dev.11175/&#34;&gt;to miejsce na forum XDA&lt;/a&gt;, gdzie z kolei znalazłem
m.in. &lt;a href=&#34;https://forum.xda-developers.com/t/rom-unofficial-11-0-pixel-plus-ui-for-redmi-9-lancelot-galahad.4243813/&#34;&gt;ten wątek&lt;/a&gt;. Zatem alternatywne ROM&#39;y na mój smartfon istnieją i tego faktu nie byłem
świadomy, bo w zeszłym roku jeszcze nic nie szło znaleźć. Postanowiłem zatem odblokować bootloader
w swoim Xiaomi Redmi 9 i spróbować wgrać na niego TWRP i jeden (a może nawet kilka) przykładowy ROM
na bazie AOSP/LineageOS. Proces odblokowania bootloader&#39;a w urządzeniach Xiaomi nie wymaga zbytnio
wysiłku i da się go przeprowadzić w całości pod linux korzystając czy to z XiaoMiTool, czy też przy
pomocy &lt;a href=&#34;https://morfikov.github.io/post/wirtualizacja-qemu-kvm-libvirt-na-debian-linux/&#34;&gt;maszyn wirtualnych na bazie QEMU/KVM&lt;/a&gt;. Ten proces nie do końca jest dla każdego taki
oczywisty, dlatego postanowiłem go dokładnie opisać.&lt;/p&gt;</description>
    </item>
    
    <item>
	  <author>Mikhail Morfikov</author>
      <title>Migracja z apt-key w Debian linux</title>
      <link>https://morfikov.github.io/post/migracja-z-apt-key-w-debian-linux/</link>
      <pubDate>Sat, 21 Aug 2021 14:35:00 +0200</pubDate>
      
      <guid>https://morfikov.github.io/post/migracja-z-apt-key-w-debian-linux/</guid>
      <description>&lt;p&gt;Z okazji wypuszczenia parę dni temu nowego Debiana, przeglądałem sobie &lt;a href=&#34;https://www.debian.org/releases/bullseye/amd64/release-notes/ch-information.en.html&#34;&gt;notki dla wydania
stabilnego&lt;/a&gt; pod kątem aktualizacji z buster (10) -&amp;gt; bullseye (11). Niby ja i tak korzystam cały
czas z unstable/experimental i zwykle jestem na bieżąco ze zmianami wprowadzanymi w tej dystrybucji
linux&#39;a ale też zawsze coś może umknąć uwadze z perspektywy wielu miesięcy czy nawet kilku lat
(a dokładnie 25 miesięcy). Sporo z tych rzeczy, które w tych podlinkowanych notatkach wyczytałem,
miałem już załatwione wcześniej ale zapomniałem rozprawić się z repozytoriami APT. Konkretnie
chodzi tutaj o odejście od &lt;code&gt;apt-key&lt;/code&gt; , czyli narzędzia, które w Debianie używane jest do dodawania
kluczy GPG do systemowego keyring&#39;a APT. Te klucze zwykle wykorzystywane są do weryfikacji sygnatur
złożonych pod zewnętrznymi repozytoriami, a że ja mam ich sporo, to musiałem się nieco zagłębić w
temat i ustalić w jaki sposób od następnego wydania Debiana (bookworm/12) będzie się te klucze GPG
od takich repozytoriów ogarniać. No i właśnie o tym będzie ten poniższy kawałek artykułu.&lt;/p&gt;</description>
    </item>
    
    <item>
	  <author>Mikhail Morfikov</author>
      <title>Analiza systemu plików EXT4 pod kątem formatowania większych dysków pod linux</title>
      <link>https://morfikov.github.io/post/analiza-systemu-plikow-ext4-pod-katem-formatowania-wiekszych-dyskow-pod-linux/</link>
      <pubDate>Sun, 25 Jul 2021 18:40:00 +0200</pubDate>
      
      <guid>https://morfikov.github.io/post/analiza-systemu-plikow-ext4-pod-katem-formatowania-wiekszych-dyskow-pod-linux/</guid>
      <description>&lt;p&gt;Zapewne każdy użytkownik linux&#39;a tworzył na dysku HDD/SSD partycje sformatowane systemem plików
EXT4. Prawdopodobnie też zastanawiało nas pytanie odnośnie ilości zajmowanego miejsca przez
strukturę samego systemu plików, zwłaszcza w przypadku dysków o sporych rozmiarach (setki GiB, czy
nawet kilka TiB). Jako, że musiałem ostatnio zmigrować kolekcję filmów ze strych dysków na
jeden większy, który miał zostać podłączony pod Raspberry Pi z działającym Kodi na bazie LibreELEC,
to przy okazji postanowiłem ten dysk sformatować w taki sposób, w jaki powinno się do tego zadania
podchodzić wiedząc, że ma się do czynienia z dużym dyskiem, na którym będą przechowywane głównie
duże pliki. Celem tego artykułu jest pokazanie jakie błędy przy tworzeniu systemu plików EXT4 można
popełnić przez posiadanie niezbyt wystarczającej wiedzy z jego zakresu, oraz jak te błędy
wyeliminować przed rozpoczęciem korzystania z tak nie do końca poprawnie przygotowanego do pracy
dysku twardego&lt;/p&gt;</description>
    </item>
    
    <item>
	  <author>Mikhail Morfikov</author>
      <title>Aktualizacja firmware drukarki HP LaserJet P2055dn pod linux</title>
      <link>https://morfikov.github.io/post/aktualizacja-firmware-drukarki-hp-laserjet-p2055dn-pod-linux/</link>
      <pubDate>Wed, 27 Jan 2021 19:10:00 +0100</pubDate>
      
      <guid>https://morfikov.github.io/post/aktualizacja-firmware-drukarki-hp-laserjet-p2055dn-pod-linux/</guid>
      <description>&lt;p&gt;Bawiąc się ostatnio drukarką laserową Hewlett Packard (HP) LaserJet P2055dn, zauważyłem, że ma ona
wgrany dość stary firmware. Naturalnie sama drukarka do najmłodszych nie należy, bo została
wyprodukowana w 2011 roku ale skoro na stronie producenta jest dostępna nowsza wersja
oprogramowania dla tego urządzenia, to przydałoby się je do tej drukarki wgrać. Problem jednak
pojawia się w przypadku takich osób jak ja, tj. tych, które korzystają w swoim środowisku pracy z
maszyn mających na pokładzie system operacyjny z rodziny jakieś dystrybucji linux&#39;a, np. Debian czy
Ubuntu. Producent drukarki udostępnia stosowne narzędzia do aktualizacji firmware ale tylko i
wyłącznie dla OS z gatunku Windows. Co mają zrobić osoby, które z Windows&#39;a nie korzystają, a
chciałyby przy tym mieć aktualny firmware w drukarkach HP? Możemy spróbować postawić maszynę
wirtualną na bazie QEMU/KVM, tam zainstalować Windows&#39;a i udostępnić w obrębie tej maszyny
wirtualnej drukarkę, której firmware mamy zamiar aktualizować.&lt;/p&gt;</description>
    </item>
    
  </channel>
</rss>
