udev i udevadm – podręczniki po polsku

Ostatnio przetłumaczyłem dwa podręczniki z paczki udev. Z jednej strony chciałbym rozpowszechnić tę wiadomość wśród potencjalnych zainteresowanych użytkowaniem, z drugiej — znaleźć osoby chętne do wytknięcia niedoskonałości i propozycji zmian w tym tłumaczeniu — skonfrontowania polskiego tekstu zarówno z oryginalnym, jak i z solidnymi, udokumentowanymi doświadczeniami, by lepiej oddawał rzeczywiste działanie.

Polecenie udevadm pojawiło się w wersji 117 UDEV, zastępując kilka dotychczasowych (udevtrigger, udevinfo, udevtest, udevmonitor, udevsettle). Dla zachowania wstecznej kompatybilności stare polecenia pozostały jako linki do niego i można odwoływać się do nich w dotychczasowy sposób.

Zdaję sobie sprawę, że większość osób biorących się za grzebanie w UDEV i tak nie ma innego wyjścia jak znać angielski, a jednak liczę na to, że tym tłumaczeniem przybliżę komuś działanie tego podsystemu.

Wysłałem wprawdzie tłumaczenia na linux-hotplug@vger.kernel.org, ale widząc że paczki udev nie zawierają innych tłumaczeń podręczników nie liczę na razie, że trafi tam moje. Nic jednak nie przeszkadza, by tłumaczenie służyło i rozwijało się poza oficjalnymi wydaniami.

wersja HTML
wersja troff (czyli man)
wersja xml (punkt wyjścia)

udevadm:
wersja HTML,
wersja troff (czyli man),
wersja xml (punkt wyjścia),

całość w archiwum tar.gz

Oryginały wziąłem ze strony http://www.kernel.org/pub/linux/utils/kernel/hotplug/ .

żadnych reklam, sama wiedza.

Zarejestruj się na BEZPŁATNY NEWSLETTER i raz w tygodniu otrzymuj najważniejsze wiadmości
ze świata IT, nowych technologii i kryptowalut.

Bez reklam.

18 odpowiedzi na „udev i udevadm – podręczniki po polsku”
  1. Awatar likemandrake
    likemandrake

    Napewno społeczność doceni Twoje starania 🙂 Ja niestety więcej mógłbym zaszkodzić niż pomóc, więc że tak powiem, nie będę się pchał w kolejkę 😀

  2. Awatar p84
    p84

    Zajebiste 😉 Ja miałem się wziąć za tłumaczenie ostatniego LFS, bo ostatnie polskie tłumaczenie jest z leksza nieaktualne, oraz fragmentów BLFS, ale mam tyle na głowie, ze nie mam kiedy siąść do tego.

  3. Awatar rturturt
    rturturt

    Fajne. Nawet nie wiedzialem, ze to takie latwe. szczegolnie ten udev_root. Dziękuję.

    Przy okazji jak bys jeszcze zajrzal do dokumentacji openSSL tego chyba nikt nie tlumaczyl. przykladow jak na lekarstwo.
    Ja szukam szyfrowania AES symetrycznego

  4. Awatar jarek
    jarek

    Zawsze przy takich inicjatywach mam mieszane uczucia.
    Raz: enduser i tak z tego nie skorzysta bo taka dokumentacja mu niepotrzebna.
    Dwa: czlowiek ktory ma ambicje poznawac technikalia i tak bedzie musial siegnac
    do anglojezycznych zrodel – a jak nie zna angielskiego, to albo bedzie musial
    go wczesniej czy pozniej poznac, albo inaczej nie pozna technikaliow.

    1. Awatar fyjkfyjk
      fyjkfyjk

      te Tlumacz słyszał? Nic nie rób, sieć cicho to nikt cie nie bedzie krytykować.
      A w ogóle to niczego nie tłumacz bo jarek ma pomieszane uczucia.

    2. Awatar i
      i

      ordynarnemu juzerowi najlepiej zainstalować łyndołsy

    3. Awatar kocio
      kocio

      Ja bym raczej się tak nie mieszał. =} Fajnie, że ktoś znalazł czas na tłumaczenie — ja np. rozumiem wystarczająco po angielsku, żeby sobie poradzić z większością tego typu dokumentacji, ale po polsku czyta się po prostu dużo szybciej.

      Zresztą — nie takie rzeczy były już tłumaczone w ramach PTM: http://ptm.linux.pl/

  5. Awatar adwol
    adwol

    Błąd jest już w drugiej linijce oryginalnego XMLa.

    s/DOCTYPEarticle/DOCTYPE article/

  6. Awatar rawn
    rawn

    Świetne tłumaczenie ! Myślę, że nie będzie w nim wiele do poprawiania. Tak na szybko, poniżej, moje sugestie poprawek dla udev:

    "Puste ich linie oraz linie zaczynające się od '#' są ignorowane."
    Puste linie oraz linie zaczynające się od '#' są ignorowane.

    "Pliki z katalogu /etc/udev/rules.d/ mają przewagę nad plikami o tej samej nazwie z katalogu /lib/udev/rules.d/."
    Pliki z katalogu /etc/udev/rules.d/ mają pierwszeństwo nad plikami o tej samej nazwie z katalogu /lib/udev/rules.d/.

    "Reguły mogą składać się z list jednej lub więcej lub więcej.."
    Reguły mogą składać się z list jednej lub więcej..

    "!=

    Sprawdzanie różności."
    !=

    Sprawdzanie braku równości.

    "=

    Przypisanie wartości do klucza. Klucz reprezentujący listę wartości zostaje zredukowany do jednej określonej w tym przypisaniu."
    =

    Przypisanie wartości do klucza. Klucz reprezentujący listę wartości zostaje zredukowany do jednej wartości określonej w tym przypisaniu.

    (czy na pewno tutaj nie można przypisać od razu listy wartości, tylko pojedyńczą wartość ?)

    "Dodaj program do listy programów mających być wykonanymi dla określonego urządzenia."
    Dodaj program do listy programów, które mają być wykonane dla określonego urządzenia.

    "Długo pracujące zadania potrzebują być natychmiast odłączone od obsługi zdarzenia"
    Długo pracujące zadania muszą być natychmiast odłączone od obsługi zdarzenia

    "(od tłum. zapewne to zdanie wymaga lepszej polskiej wersji i bez testów się nie obędzie ;))."
    – takie komentarze, nie powinny być umieszczane w treści podręcznika

    "Etykieta, do której można skoczyć za pomocą GOTO."
    Etykieta, do której można skoczyć za pomocą klucza GOTO.

  7. Awatar arctgx
    arctgx

    Dziękuję za odpowiedzi, szczególnie te krytyczne i konkretne 🙂 O jakiejś mniej powalającej porze postaram się więcej odpowiedzieć. Teraz rzucę tylko, że w wypowiedzi jarka (małą literą piszę odmianę nicka zgodnie z oryginałem) nie znalazłem niczego uciszającego – w końcu podzielił on moje wątpliwości, o których wspomniałem w artykule 😉

    Decyzja o napisaniu tłumaczenia była czysto spontaniczna – wynikała z problemu ze stworzeniem pewnej reguły dla tabletu. Jak nie udało się przed, tak i teraz głowię się czemu nie mogę stworzyć 😉 Artykułu "Writing UDEV rules" już raczej nie przetłumaczę (większość byłaby dublowaniem roboty), choć tez polecam ze względu na przykłady i opisy zastosowań, dla których nie znalazło się miejsce w manualu.

    Mi też po polsku czyta się nieporównywalnie szybciej.

  8. Awatar arctgx
    arctgx

    Czasem zwykły użytkownik (czy jak ktoś nazwał – "end user") staje przed problemem braku pliku urządzenia lub dowiązania do niego – sam to zauważy lub ktoś mu podpowie że tego właśnie brak. Część z tych osób słyszała coś o UDEV i zapewne będzie chciała napisać sobie regułę samodzielnie. Dla części z tych z kolei angielski tekst może być nie tyle rzeczą problemową, co zniechęcającą.

    Sam liczę na to, że wśród tak zwanych zwykłych użytkowników można znaleźć grupę osób, która nie tylko chciałaby rozwiązać pojedynczy problem, ale i stać się świadoma, dlaczego miał on miejsce i zrozumieć działanie, poznać podręcznikowe opisy, porównać z doświadczeniami.

    Wiem jak potrzebne są artykuły przybliżające działanie takich mechanizmów. Gdyby nie seria artykułów Piotra Wolnego w Linux+, (włącznie z opisem UDEV z 02.2006: http://dug.net.pl/texty/udev.pdf ), zapewne sporo minęłoby czasu nim dowiedziałbym się o jego istnieniu, a przynajmniej zwrócił uwagę – wtedy nie przyglądałem się tak dokładnie listom usług w rcS.d.

    Odniosę się do Waszych uwag.

    DOCTYPEarticle – poprawione

    "Puste ich linie…" – to "ich" było, że tak powiem, zmienną przechowującą ostatnio używany podmiot, czyli "pliki konfiguracyjne" 😉 (moja wiedza gramatyczna jest poniżej podstawówki, więc nie wiem czy można zwać to zaimkiem, przyimkiem lub innym tworem…). Moim zdaniem, pozostawienie tego odniesienia do ostatniego podmiotu jest potrzebne, choć pewnie idzie się domyślić i w wersji bez niego o co chodzi.

    Dalej dla odmiany, rawn sugeruje operację w druga stronę (dodanie podmiotu lub zamiennika), ale niech tam dojdę 🙂

    OK, "pierwszeństwo" zamiast "przewagi" lepiej chyba oddaje chociaż, chociaż… odbiorca może mylnie wyobrazić sobie że pliki z /etc/… są rozważane jako pierwsze, a z /lib/… w dalszej kolejności. Wybrnę więc z tego tak:
    "W przeciwnym razie duplikaty są ignorowane: plik z katalogu /etc/udev/rules.d/ brany jest pod uwagę zamiast jego odpowiednika z katalogu /lib/udev/rules.d/." To chyba jest trafniejszy opis.

    Powtórka "lub więcej" usunięta.

    "Różność" czyli przeciwieństwo równości, to powszechne określenie w matematyce – zapewne i komuś z Was trafiło się czytać o "dwóch różnych elementach". Z tym się tak łatwo nie poddam 😉

    OK, niech będzie "jednej wartości" – dodaję domyślny podmiot.

    Prawdopodobnie to czy można przypisać listę, czy pojedynczy element, zależy od klucza (choćby SYMLINKowi można dać). Wtedy zamiast mówić o zredukowaniu, napisałbym o zastąpieniu. Zapewne nie sprawdzę tego, póki nie rozpracuję problemu opisanego tu: http://www.linuxquestions.org/questions/linux-har…

    Dwie następne propozycje oraz ostatnią z dodanym podmiotem przyjąłem bez dyskusji. Zgodzę się, że mój komentarz w nawiasie nie powinien tam się znajdować, a jednak niech straszy i prowokuje do zweryfikowania i skasowany niech będzie, kiedy do poprzedzającego go tekstu znikną wątpliwości. We wspomnianym "Writing UDEV rules" czytałem ostatnio o różnicy między RUN a PROGRAM ( http://reactivated.net/writing_udev_rules.html#ex… ), niech tylko wymyślę dobry i bezpieczny test z poleceniem dla RUN lub PROGRAM, które będzie blokowało demona UDEV nim zostanie wykonana następna reguła.

    Dam znać po wpuszczeniu zmodyfikowanej wersji. Swoją drogą, wyszła wersja 129 i nowe opcje dla triggera.

    P.S. Nie mam pojęcia, dlaczego będąc zalogowanym na jakilinux.org, nie mogę doszukać się możliwości wpisu jako użytkownik, tylko jako gość 😉

  9. Awatar rawn
    rawn

    Być może w nazewnictwie matematycznym zmieniło się coś ostatnio, ale ja nie spotkałem się z tym, żeby używało się sformułowania "różność". Mówiło się raczej o równości lub jej braku lub nierówności, ale to już co innego. Dla mnie sprawdzenie różności brzmi trochę sztucznie i kojarzy się bardziej ze sprawdzaniem rozmaitości, różnych rzeczy.. 🙂

  10. Awatar arctgx
    arctgx

    Klepnąłem do gugla frazę "dwa różne elementy" i wypluł mi już na pierwszej stronie kilka matematycznych tekstów. A "różność" jest tylko rzadko spotykaną odmianą ( ale spotykaną: zerknij choćby <a>tu czy <a>tu ) 😀

    Słowo "różność" w tym miejscu oznacza wynik porównania dwóch elementów (stron operatora), stąd wiadomo że chodzi o "bycie różnym", a nie choćby "rozmaitość", "wielorakość" czy co by tam jeszcze wymyślić 😀

    Próbowałem ugryźć ten prowokacyjny kawałek. Zapewne gdzieś na forum trafi opis podobny do poniższego.

    Utworzyłem reguły tworzące dowiązanie do /dev/null o nazwie heaven-mm-ss, gdzie mm-ss to aktualna minuta i sekunda pobrana z polecenia date. Głównym bohaterem jest jednak polecenie sleep, nakazujące czekać 2 sekundy do zakończenia PROGRAMu.

    <code>KERNEL=="null", PROGRAM="/bin/bash -c '{ date +%%M.%%S; }' &", SYMLINK+="heaven-%c"
    KERNEL=="null", PROGRAM="/bin/bash -c 'sleep 2s &'"
    KERNEL=="null", PROGRAM="/bin/bash -c '{ date +%%M.%%S; }' &", SYMLINK+="heaven-%c"</code>

    po czym odpaliłem

    <code> udev # time { udevadm control –reload_rules; udevadm test –force /class/mem/null | grep -v ^parse_file; }
    This program is for debugging only, it does not run any program,
    specified by a RUN key. It may show incorrect results, because
    some values may be different, or not available at a simulation run.

    add_matching_files: unable to open '/lib/udev/rules.d': No such file or directory
    import_uevent_var: import into environment: 'MAJOR=1'
    import_uevent_var: import into environment: 'MINOR=3'
    udevtest: looking at device '/class/mem/null' from subsystem 'mem'
    get_format_len: format parsing error '0Rs'
    udev_rules_apply_format: unknown format char '0'
    match_rule: set ENV 'TIMEFORMAT=%0Rs'
    run_program: '/bin/bash -c '{ date +%M.%S; }' &'
    run_program: '/bin/bash' (stdout) '29.57'
    run_program: '/bin/bash' returned with status 0
    udev_rules_get_name: add symlink 'heaven-29.57'
    run_program: '/bin/bash -c 'sleep 2s &''
    run_program: '/bin/bash' returned with status 0
    run_program: '/bin/bash -c '{ date +%M.%S; }' &'
    run_program: '/bin/bash' (stdout) '29.59'
    run_program: '/bin/bash' returned with status 0
    udev_rules_get_name: add symlink 'heaven-29.59'
    udev_rules_get_name: no node name set, will use kernel name 'null'
    udev_device_event: device '/class/mem/null' already in database, cleanup
    name_index: removing index: '/dev/.udev/names/null/x2fclassx2fmemx2fnull'
    name_index: removing index: '/dev/.udev/names/heaven-26.26/x2fclassx2fmemx2fnull'
    name_index: removing index: '/dev/.udev/names/heaven-26.28/x2fclassx2fmemx2fnull'
    udev_node_add: creating device node '/dev/null', major=1, minor=3, mode=0666, uid=0, gid=0
    udev_node_mknod: preserve file '/dev/null', because it has correct dev_t
    name_index: creating index: '/dev/.udev/names/heaven-29.57/x2fclassx2fmemx2fnull'
    name_index: creating index: '/dev/.udev/names/heaven-29.59/x2fclassx2fmemx2fnull'
    name_index: creating index: '/dev/.udev/names/null/x2fclassx2fmemx2fnull'
    udev_node_update_symlinks: update symlink 'heaven-29.57' of '/class/mem/null'
    udev_db_get_devices_by_name: found index directory '/dev/.udev/names/heaven-29.57'
    update_link: found 1 devices with name 'heaven-29.57'
    update_link: found '/class/mem/null' for 'heaven-29.57'
    update_link: compare (our own) priority of '/class/mem/null' 0 >= 0
    update_link: 'heaven-29.57' with target 'null' has the highest priority 0, create it
    node_symlink: creating symlink '/dev/heaven-29.57' to 'null'
    udev_node_update_symlinks: update symlink 'heaven-29.59' of '/class/mem/null'
    udev_db_get_devices_by_name: found index directory '/dev/.udev/names/heaven-29.59'
    update_link: found 1 devices with name 'heaven-29.59'
    update_link: found '/class/mem/null' for 'heaven-29.59'
    update_link: compare (our own) priority of '/class/mem/null' 0 >= 0
    update_link: 'heaven-29.59' with target 'null' has the highest priority 0, create it
    node_symlink: creating symlink '/dev/heaven-29.59' to 'null'
    udev_node_update_symlinks: update old symlink 'heaven-26.26' no longer belonging to '/class/mem/null'
    udev_db_get_devices_by_name: no index directory '/dev/.udev/names/heaven-26.26': No such file or directory
    update_link: found -1 devices with name 'heaven-26.26'
    update_link: no reference left, remove 'heaven-26.26'
    udev_node_update_symlinks: update old symlink 'heaven-26.28' no longer belonging to '/class/mem/null'
    udev_db_get_devices_by_name: no index directory '/dev/.udev/names/heaven-26.28': No such file or directory
    update_link: found -1 devices with name 'heaven-26.28'
    update_link: no reference left, remove 'heaven-26.28'
    udevtest: run: 'socket:/org/freedesktop/hal/udev_event'
    udevtest: run: 'socket:@/org/kernel/udev/monitor'

    real 0m2.142s
    user 0m0.025s
    sys 0m0.014s</code>

    Na czym może polegać odłączenie programu od obsługi zdarzenia? Pozwoliłem sobie jedynie puścić w tło polecenie sleep, ale i tak UDEV czekał aż się wykona. Wyrzucenie ampersanda między apostrof obejmujący polecenie basha, a cudzysłów kończący opis PROGRAMu też niczego nie daje w praktyce.

  11. Awatar arctgx
    arctgx

    P.S. 1. Coś te linki do "różności" w tagu "a" nie działają, więc powtórzę je ręcznie:
    http://www.cs.put.poznan.pl/rwrembel/dbs_DQL_hand… http://www.calculemus.org/lect/Logika04-05/r-rela…

    2. Na linuxnews trzeba być osobno zalogowanym – nie wystarczy na jakilinux…

  12. Awatar rawn
    rawn

    Zastosowanie standardowego, ogólnie przyjętego słownictwa zwiększa czytelność tekstu.

  13. Awatar arctgx
    arctgx

    Na tej stronie

    http://arctgx.ovh.org/lin/udev/udev.html

    umieściłem tłumaczenie dla wersji 129 oraz poprawione tłumaczenie dla wersji 128.

  14. Awatar Jimmy Landevos
    Jimmy Landevos

    I loved as much as you’ll receive carried out right here. The sketch is attractive, your authored subject matter stylish. nonetheless, you command get got an impatience over that you wish be delivering the following. unwell unquestionably come more formerly again since exactly the same nearly very often inside case you shield this increase.

  15. Awatar Jamika Hrbek
    Jamika Hrbek

    Excellent blog here! Also your web site loads up very fast! What host are you using? Can I get your affiliate link to your host? I wish my site loaded up as fast as yours lol

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *