Solaar – parowanie urządzeń bezprzewodowych Logitech

Urządzenie bezprzewodowe podłączane do komputera składa się z właściwego urządzenia, oraz odbiornika, podłączanego do komputera. Ten ostatni jest niewielki, przez co łatwo go zgubić. Bywa też, że w środowisku, gdzie podobnych urządzeń jest wiele, urządzenia zostaną zamienione. Z racji częstego przenoszenia, niewielkich rozmiarów urządzeń i braku elementów charakterystycznych, opisywany problem dotyczy raczej myszy bezprzewodowych.

Mysz bezprzewodowa Logitech

Źródło: https://www.mwave.com.au/

Zatem tam, gdzie jest sporo bezprzewodowych urządzeń podobnego typu, na przykład w biurach, często zdarza się, że stopniowo pojawiają się zdekompletowane lub przemieszane zestawy bezprzewodowe. Teoretycznie niesprawne, ponieważ szybki test polegający na włożeniu nowej baterii i podłączeniu urządzenia nie da żadnych efektów – urządzenie nie zadziała ze względu na nieprawidłowe parowanie urządzenia z odbiornikiem.

Jak dowiedziałem się niedawno podczas rozmowy o przydasiach, użytkownicy systemu Linux mają rozwiązanie na tego typu problemy, przynajmniej dla wielu urządzeń firmy Logitech. Istnieje bowiem program Solaar, czyli narzędzie pozwalające na zarządzanie parowaniem urządzeń bezprzewodowych tej firmy.

W przypadku Ubuntu i Debiana wystarczy zainstalować pakiet solaar, a następnie uruchomić program. Użycie jest bardzo proste, wystarczy włączyć urządzenie, które ma być sparowane.

Poza umożliwieniem parowania z dowolnym odbiornikiem tego samego typu, daje ono – na niektórych urządzeniach – dostęp funkcji, do których standardowo nie ma dostępu. Praktycznie dla wszystkich urządzeń pozwala na odczyt stanu baterii (akumulatora!), dzięki czemu można zawczasu przygotować się do wymiany i uniknąć przykrej niespodzianki w postaci niespodziewanego rozładowania.

Dodatkowo program można teoretycznie wykorzystać do zmniejszenia ilości podłączonych urządzeń USB – do jednego odbiornika można przypisać kilka urządzeń, np. mysz i klawiaturę, o ile korzystają z odbiornika tego samego typu. Nie testowałem jednak konfiguracji z podłączonymi jednocześnie kilkoma urządzeniami.

Tak czy inaczej, posiadając „niesprawne” lub zdekompletowane urządzenie firmy Logitech, niekoniecznie warto je od razu wyrzucać, może się ono jeszcze komuś przydać. Jeśli istnieją podobne rozwiązania dla innych systemów, dajcie znać w komentarzach.

Ubuntu 14.04 LTS, apt-dater i restart usług

Jakiś czas temu zachwalałem apt-dater jako narzędzie do aktualizacji większej ilości systemów. Jak pisałem w późniejszych uwagach, apt-dater nieźle integruje się z programem needrestart. Tyle teorii…

Niestety, o ile na Debianie Jessie wyglądało to naprawdę dobrze i sprawdzenie przez checkrestart (inne polecenie realizujące podobne zadanie) dawało spójne wyniki z needrestart, o tyle na Ubuntu 14.04 LTS needrestart pokazywał często, że do restartu nic nie ma, o tyle checkrestart był zupełnie innego zdania... I – co gorsza – miał rację.

Przyczyną okazała się różnica w wersji needrestart. W Jessie jest to 1.2, w Ubuntu 14.04 LTS – 0.5. Ponieważ to skrypt perlowy, to dałem szansę i wrzuciłem wersję z Debiana (stable). Instaluje się czysto, działa bardzo dobrze – w połączeniu z apt-dater wykrywa więcej usług do restartu i także tu wyniki needrestart są teraz spójne z checkrestart.

Nawiasem, checkrestart w Jessie ma problem z mysql i zawsze pokazuje, że należy go zrestartować. Jest na to zgłoszony bug. Ale to tak nawiasem, kto korzysta, ten wie, zresztą można dopisać mysql do wyjątków w konfigu.

Korzystając z apt-dater – parę uwag

Od pewnego czasu korzystam z opisywanego kiedyś narzędzia apt-dater do aktualizacji hostów w środowiskach większych, niż kilka własnych testowych maszyn. Garść praktycznych uwag nt. używania w takich środowiskach.

  1. W okolicy wersji 1.0 zmienił się format pliku (teraz jest XML), przez co linkowany wyżej opis jest nieaktualny. Zmian wymagał też skrypt generujący konfigurację apt-datera na podstawie danych z Chefa.
  2. Warto podzielić hosty na grupy – raz, że łatwiej decydować, gdzie wykonujemy aktualizację w danym momencie, dwa, że każdy host to osobne procesy w momencie działań więc… może być tego za dużo, jeśli zaczniemy aktualizować listę pakietów wszędzie jednocześnie (tak, mam skonfigurowane limits na workstacji, tak walnąłem w limity, jak leciałem hurtem).
  3. Sama aktualizacja to nie wszystko, trzeba jeszcze zrestartować procesy korzystające ze starych bibliotek. Kiedyś był checkrestart, teraz jest bardziej popularny –  i nieźle współpracujący z apt-daterneedrestart.
  4. Niezależnie od podziału na grupy, można ad hoc zaznaczyć hosty do wykonania operacji (polecenie tag). Sposób niezbyt intuicyjny, bo najpierw zaznaczamy hosty [t], następnie zatwierdzamy je do wykonania [;], a na końcu wybieramy polecenie do wykonania.
  5. Apt-dater przyspiesza pracę, ale nie udało mi się (i nie tylko mi), uniknąć podłączania do każdej sesji po zakończeniu aktualizacji i zamykania jej. Nawet, jeśli cała aktualizacja przeszła pomyślnie, bez interaktywnych pytań i nie ma nic do restartu. Gdyby się komuś udało – proszę o komentarz.
  6. Odpowiednio ustawione hold lub apt_preferences to podstawa, jeśli ma się jakieś dziwne (czytaj: 3rd party) pakiety, których autorzy niezupełnie umieją paczkować Debian way.

W każdym razie apt-dater bardzo ułatwia i przyspiesza pracę. Generalnie polecam.

Automatyczny wybór najlepszego mirrora w Debianie

Co prawda pisałem o tym blisko trzy lata temu, ale warto przypomnieć, że jest nowa metoda wyboru najlepszego mirrora pakietów deb w Debianie. Okazja tym lepsza, że z http.debian.net awansowało na httpredir.debian.org. Czyli jest pełnoprawną, oficjalną częścią Debiana. Jest też możliwość wyboru tego repozytorium podczas instalacji, przynajmniej od wersji Jessie.

Wiele się nie zmieniło, więc po szczegóły odsyłam do starego opisu albo na stronę projektu. Ze zmian: pojawił się adres IPv6, debootstrap też nie ma od jakiegoś czasu problemów z redirectorem. Ja korzystałem przez te trzy lata na różnych systemach (także produkcyjnych) i nie zauważyłem większych problemów, przynajmniej w wersji podstawowej, bo z niszami typu debootstrap czy apt-p2p kiedyś problemy były. Polecam.

Powtarzalne budowanie pakietów w Debianie

Dyskusji nt. zgodności pakietów binarnych z dostarczanymi źródłami teraz nie znajdę (podrzucenie mile widziane), ale Półtora roku temu pisałem o braku weryfikacji, czy kod źródłowy jest zgodny z wersją binarną. Pamiętam, że w różnych dystrybucjach wyglądało to różnie, a chyba w żadnej dobrze. IIRC na testowanym pakiecie różnice w Debianie były minimalne, bo dotyczyły tylko timestampu ale… były. W praktyce dla użytkownika końcowego oznacza to brak możliwości łatwego zweryfikowania, czy dostarczony (bardziej: deklarowany) kod źródłowy odpowiada dostarczonej wersji binarnej pakietu[1].

Implikacje są oczywiste: możemy uruchamiać co innego, niż sądzimy, że uruchamiamy. Z jednej strony może dojść do naruszenia licencji (zwł. GPL) i użytkownik może mieć problemy z modyfikacją oprogramowania, z drugiej, bardziej praktycznej: mogą pojawić się problemy z bezpieczeństwem. Nie tylko developer może dołożyć coś od siebie (developerom ufamy), ale nawet atakujący może w wyniku włamania przejąć klucze jakiegoś developera i wprowadzić zmodyfikowaną wersję binarną pakietu do repozytorium.

Wiadomo, że dokładna i systematyczna kontrola podstawą zaufania, w związku z tym w Debianie ogłoszono projekt Reproducible Builds, który ma na celu dostarczenie narzędzi i środowisk do kontroli oraz poprawę pakietów tak, aby można było w prosty sposób sprawdzić zgodność pakietu binarnego ze źródłem. Czyli każdy będzie mógł łatwo odpowiedzieć na pytanie: czy dany pakiet powstał z deklarowanego źródła?

Projekt dotyczy raczej przyszłych wersji Debiana, ale na pewno jest krokiem w kierunku zwiększenia wolności użytkowników i bezpieczeństwa.

Wg danych projektu w chwili obecnej udało się potwierdzić powtarzalność budowy ponad 83% pakietów z repozytorium main dla Debiana unstable.

[1] Nie miejsce na dyskusję nad wyższością dystrybucji pakietów w źródłach nad wersją binarną i odwrotnie.