PolicyKit w Debianie.

Wczoraj po krótkiej rozmowie na kanale IRC zostałem przekonany do przejścia na unstable pełną gębą (plus odrobinka testing…). Do tej pory korzystałem ze stable plus backporty plus testing plus unstable, gdzie ok. połowy pakietów było ze stable. Upgrade przebiegł pomyślnie i w sumie dość bezproblemowo: przestała działać karta wifi (kwestia zdjęcia blacklist odpowiednich modułów), odinstalowało fglrx (nie patrzyłem jeszcze czemu, grafika Intela działała od kopa) i… znowu system przestał pozwalać na wyłączenie, wstrzymanie i hibernację.

Piszę znowu, bo temat jest znany i stary, pamiętam odkąd używam Debiana z LXDE, że był z tym problem. Czyli chyba od Lenny’ego. Na pewno było w Squeeze. Do tej pory pomagało ubicie procesu  /usr/lib/policykit-1/polkitd, albo, trwalej, usunięcie pakietu policykit-1. Mało eleganckie, ale proste i skuteczne. Zresztą na żadnym z moich desktopów nie potrzebowałem takich wynalazków.

Problem z PolicyKit jest taki, że może i jest to fajne, ale wygląda na skomplikowane, a dokumentacja jest żenująca – wystarczy spojrzeć na opis PolicyKit na wiki Debina. No i co najgorsze, niespecjalnie są przykłady. Podobnie jest w wielu innych miejscach, a nawet jeśli coś jest, to często są to stare i nieaktualne dane. Ostatecznie pomógł ten wpis nt. PolicyKit i opis PolicyKit na wiki Arch. Po kolei, czyli najpierw wyświetlanie dostępnych w systemie akcji – polecenie pkaction. Jego wynik to u mnie:

com.ubuntu.pkexec.gparted
org.blueman.bluez.config
org.blueman.dhcp.client
org.blueman.hal.manager
org.blueman.network.setup
org.freedesktop.consolekit.system.restart
org.freedesktop.consolekit.system.restart-multiple-users
org.freedesktop.consolekit.system.stop
org.freedesktop.consolekit.system.stop-multiple-users
org.freedesktop.policykit.exec
org.freedesktop.policykit.lockdown
org.freedesktop.udisks.cancel-job-others
org.freedesktop.udisks.change
org.freedesktop.udisks.change-system-internal
org.freedesktop.udisks.drive-ata-smart-refresh
org.freedesktop.udisks.drive-ata-smart-retrieve-historical-data
org.freedesktop.udisks.drive-ata-smart-selftest
org.freedesktop.udisks.drive-detach
org.freedesktop.udisks.drive-eject
org.freedesktop.udisks.drive-set-spindown
org.freedesktop.udisks.filesystem-check
org.freedesktop.udisks.filesystem-check-system-internal
org.freedesktop.udisks.filesystem-lsof
org.freedesktop.udisks.filesystem-lsof-system-internal
org.freedesktop.udisks.filesystem-mount
org.freedesktop.udisks.filesystem-mount-system-internal
org.freedesktop.udisks.filesystem-unmount-others
org.freedesktop.udisks.inhibit-polling
org.freedesktop.udisks.linux-lvm2
org.freedesktop.udisks.linux-md
org.freedesktop.udisks.luks-lock-others
org.freedesktop.udisks.luks-unlock
org.freedesktop.upower.hibernate
org.freedesktop.upower.qos.cancel-request
org.freedesktop.upower.qos.request-latency
org.freedesktop.upower.qos.request-latency-persistent
org.freedesktop.upower.qos.set-minimum-latency
org.freedesktop.upower.suspend
org.kde.kcontrol.kcmremotewidgets.save

Jak widać uprawnienia odpowiedzialne za suspend i hibernację są w jednej grupie (czy też raczej gałęzi drzewa), a restartowanie i zatrzymywanie systemu – w innej. Ostatecznie utworzyłem plik /etc/polkit-1/localauthority/50-local.d/10-my-power-policy.pkla o zawartości:

[Let rozie shutdown]
Identity=unix-user:rozie
Action=org.freedesktop.upower.*;org.freedesktop.consolekit.system.*
ResultActive=yes

Jak widać z wildcardem, bo – jak wspomniałem – niespecjalnie zależy mi na ograniczaniu samego siebie. Ale można podać konkretne uprawnienia, po średniku. Podobnie, można przyznać uprawnienia grupie użytkowników, a nie tylko pojedynczemu. Wówczas linia odpowiedzialna za przyznanie uprawnień dla usera rozie i dodatkowo grupy będzie miała postać:

Identity=unix-user:rozie;unix-group:jakaśgrupa

Na wiki Debiana jest pokazany screenshot policykit-gnome, ale jakoś nie udało mi się na to natknąć, choć pakiet mam zainstalowany. Może Gnome only i dlatego na LXDE nie działa?

UPDATE: Skoro już o naprawianiu błędów po upgrade do unstable, to jeszcze jedna ważna rzecz, którą „zepsuł” upgrade – po odłączeniu zasilania dysk co chwilę zatrzymuje się i rozpędza. Czyli co kilkadziesiąt sekund spin down i spin up. Tradycyjne miejsca (hdparm, apmd itp.) okazały się niewinne, rozwiązaniem okazało się odinstalowanie upower dostarczającego upowerd, który wygląda na słabo konfigurowalny. dodanie wpisu w /etc/hdparm.conf:

/dev/sda {
        apm = 254
        apm_battery = 254
}


UPDATE2: We wpisie o policykit był błąd: nie ResultAny=yes a ResultActive=yes (poprawione we wpisie). Po jakimś czasie zauważyłem, że nie działa, ale zwaliłem winę na lxpolkit, który w międzyczasie pojawił się w systemie (uroki unstable). Po bliższym przyjrzeniu – j.w. Nie żebym wnikał, czym to się dokładnie różni.



Debian – flash 11.2.202.228 dla i386 zepsuty.

Jeśli ktoś posiada Debiana w wersji 32bit (architektura i386) i korzysta z niewolnego pluginu flash (pakiet flashplugin-nonfree), to niech uważa z aktualizacją flasha do wersji 11.2.202.228. Wygląda, ze jest bug i po aktualizacji do ww. wersji flash przestaje działać i to we wszystkich przeglądarkach (sprawdzone w Iceweasel, Opera, Chromium). Problem objawia się tak, że sam plugin jest widoczny w przeglądarce, ale po prostu obiekty flash nie są uruchamiane.

Sprawdzone na 2 niezależnych systemach, z czego jeden to praktycznie czysty Squeeze, a drugi „mieszaniec” (Squeeze + backports + unstable). Pierwotnie podejrzewałem kombinację Iceweasel 11 + upgrade flash, ale nie o to chodzi. No i z kanału #debian wiem, że nie jestem jedyną ofiarą błędu.

PS Dla architektury amd64 błąd nie występuje – wszystko działa poprawnie, można spokojnie aktualizować. Jak będę znał rozwiązanie, to pojawi się aktualizacja.

UPDATE: Z tego co widzę w sieci, problem dotyczy wszystkich dystrybucji Linuksa i tylko architektury i386: https://bugbase.adobe.com/index.cfm?event=bug&id=3154276 https://bugbase.adobe.com/index.cfm?event=bug&id=3161034 http://forums.gentoo.org/viewtopic-t-918560-postdays-0-postorder-asc-start-0.html Adobe nie spieszy się do naprawy, jako, że plugin dla Linuksa oficjalnie nie jest wspierany. W którymś wątku pojawiła się sugestia, że wyłączenie akceleracji video rozwiązuje problem (nie weryfikowałem).

UPDATE: Widzę w pytaniach do wyszukiwarki pytanie o alternatywy dla flash, więc dla porządku: jest GNU Gnash, który działa średnio, że tak to ujmę (mało wydajny przede wszystkim z tych paru chwil, kiedy korzystałem) i jest Lightspark, z którym zupełnie nie miałem styczności, a który może być bardziej wydajny, bo przepisany od zera z myślą o wydajności na współczesnym sprzęcie.

UPDATE: Wygląda, że bug występuje tylko na procesorach bez SSE2 (grep –color sse2 /proc/cpuinfo aby sprawdzić, czy procesor ma obsługę SSE2), czyli głównie Athlon i okolice a Adobe nie kwapi się z wypuszczeniem wersji skompilowanej bez tego zestawu instrukcji. Ostatecznie zostaję z Gnash.

UPDATE: 2012.08.12 – Dochodziły mnie słuchy, że na oryginalnym Chrome od Google jest inny Flash, więc sprawdziłem zarówno stable 21.0.1180.75, jak i betę 22.0.1229.2. Nie działa na żadnym.

Nowy laptop

Dell 1440

Źródło zdjęcia (i recenzja, co prawda trochę inny model, bez grafiki AMD, ale reszta się zgadza): http://www.laptopreviews.com/dell-vostro-1440-review-2011-12

W końcu, po latach kupiłem sobie nowy laptop. Ostatnio jakoś cały czas korzystałem albo ze służbowego, albo z różnych starych. Nie da się ukryć, że stary laptop spisywał się dobrze do zadań podstawowych, ale… Tłumaczenie dla FSF z użyciem virtaal było ciut mało komfortowe, a zupełnie irytujące, gdy dorzuciłem do tego muzykę z YT. Zresztą YT ogólnie średnio działało, przynajmniej w przeglądarce. Bo z użyciem minitube to i owszem, ale jednak znowu – nie ten komfort. Tak więc po dwóch latach przyszła pora na zakup.

Po krótkim wyszukiwaniu w porównywarkach cen stanęło na Dellu Vostro 1440. Czemu taki nowy laptop? Matowy ekran (czemu, ach czemu nie ma tego do wyboru jako kryterium w żadnej porównywarce?!), jest mniejszy niż 15″ (tu miałem dylemat – albo 17″ i całkiem stacjonarnie, albo jednak trochę z zachowaniem mobilności – wybrałem to drugie rozwiązanie). Dużo – szczególnie jak na moje standardy – RAM, duży dysk. Chwilę wahałem się, czy wybrać wersję ze znienawidzoną kartą ATI (obecnie AMD), czy Intel. Ostatecznie stwierdziłem, że ATI gorzej tj. wolniej od Intela działać nie powinien, nawet na otwartych sterownikach, więc wziąłem tę z AMD. No i była wersja bez systemu. Znaczy z Linuksem.

No właśnie, laptop przyszedł z zainstalowanym Ubuntu (IIRC 10.10), które zrobiło naprawdę rewelacyjne wrażenie na pierwszy rzut oka. Wszystko działa: i wifi, i grafika, i dźwięk, i hibernacja. I wyglądało całkiem elegancko. Przeszła mi myśl, czy nie zostawić tego systemu. Niestety, po bliższych oględzinach i próbie aktualizacji wyszły wady: synaptic zawiesił się na aktualizacji pythona (czy też jego modułów). Program do testowania systemu uruchomiony w międzyczasie zawiesił się na sztywno, gdy odmówiłem mu podania hasła do roota i żadną miarą nie dawał się w cywilizowany sposób wyłączyć. W niecywilizowany (kill z konsoli) też nie, bo nie mogłem skorelować nazwy procesu z tymże programem. Czarę goryczy przepełnił Firefox w wersji 3.6 oraz zainstalowany Skype (i pewnie masa innego non-free syfu). Stwierdziłem, że mam gdzieś taki system, nad którym nie panuję, nagrałem płytę rescue na wszelki wypadek i zabrałem się za instalację Debiana przy pomocy debootstrap (stąd m.in. tamten wpis).

Sam zakup też nie jest trywialny w naszym pięknym kraju. Pierwszy sklep, po potwierdzeniu dostępności towaru, wymaganej obowiązkowej rejestracji (nie lubię) i złożeniu zamówienia skontaktował się… W celu poinformowania, że nie obsługują osób fizycznych, wyłącznie firmy i instytucje. Nie rozumiem idei takiego postępowania (przychodzi mi jedynie na myśl chęć uniknięcia 10 dni na zwrot towaru przy zakupie zdalnym), ale drugi sklep, z ceną o kilka zł wyższą nie miał takiego problemu. Warto jedynie odnotować, że w sumie zakup zajął mi tydzień.

Po dość długiej synchronizacji danych (uroki karty wifi bez anteny w starym laptopie, kabla nie chciało mi się szukać…) system w zasadzie działał. Istnieje parę przyjemniejszych rzeczy, niż migracja z 32 bit na 64 bit. Chodzi o parę pakietów, którym zmieniają się nazwy. I całkiem sporo pakietów (w tym Bloxer2), które nie są popaczkowane, a które trzeba było przeinstalować na wersję 64 bit. Niemniej ostatecznie wszystko działało OK. Sprzęt działa praktycznie od kopa na kernelu 3.2.x , włączając wifi i hibernację (po konfiguracji, którą musiałem sobie odświeżyć). Akceleracja 3D w karcie AMD też działała po instalacji fglrx, ale stabilność pozostawiała nieco do życzenia. Znaczy raz się zwiesił (ale podczas gry w Nerdquiz!), więc fglrx poszły w odstawkę. Na chwilę, bo później do nich wróciłem i było OK.

Żeby nie było za fajnie – przy lspci okazało się, że laptop ma dwie karty graficzne. Wspomnianą AMD oraz… zintegrowanego Intela. Co ciekawe, domyślnie korzysta ze zintegrowanego Intela. I działa to całkiem wystarczająco – YT jest płynne. Tym bardziej wystarczająco, że zabawa z vgaswitcheroo to jakaś masakra i rzeźba. I nie działa. I są zwisy (podobnie, jak przy fglrx).

Dowiedziałem się też, że kernele serii rt w ogóle z fglrx nie działają. A sterowanie prędkością wiatraka to zupełna abstrakcja. Niby i8kfan pozwala na coś, ale to coś działa po chwili mocno losowo i zupełnie niezgodnie z konfigiem. Nie wiem, czy ACPI się wdaje w paradę czy o co chodzi, ale ustawienie do którego przywykłem korzystając ze starego laptopa, czyli totalna cisza, a w okolicy bliskiej gotowania totalne wycie chwilowo wydaje mi się nieosiągalne. Przy okazji – osiągnięcie temperatury bliskiej gotowania nie było tam takie proste… Być może chodzi o kartę graficzną? W każdym razie będzie nad czym posiedzieć.

Z innych wad, które ma nowy laptop: spacja jest przesunięta trochę w prawo, co powoduje, że odruchowo naciskałem spację, zamiast prawego alt przy pisaniu pl-znaków. Na szczęście przesunięcie jest minimalne, a trochę głębsze podwijanie kciuka weszło mi już w krew. Dokładniejszy opis jak działa Debian na tym sprzęcie pewnie pojawi się za jakiś czas. Generalnie wygląda całkiem dobrze. No i skoro mam sprawną baterię, to mogę korzystać bardziej mobilnie. Ale jeszcze się nie przestawiłem mentalnie i nadal klikam przy biurku.