uinput_beeper, czyli jak zrobiłem sobie biperka w nowym laptopie

Podczas mojego pobytu w Reptach mój stary laptop umarł. Do zacinającej się klawiatury dołączyła wysiadająca grafika i w końcu zupełnie nie dało się z niego korzystać. No cóż, przeżył swoje. Tak więc w zeszłym tygodniu kupiłem sobie na allegro nowego, ślicznego i fajniusiego Della D620, a od poniedziałku już się nim bawię.

W laptopie właściwie wszystko działało od razu bez zarzutu. No, mały hack był potrzebny, żeby framebuffer działał w natywnej rozdzielczości. Niestety jeden feler wydał mi się poważniejszy: głośności pc-speakera nie da się kontrolować. Gdy nie załadowałem modułu pcspkr nie brzęczał w ogóle, gdy załadowałem – odzywał się na cały głos, co było nie do przyjęcia. Musiał zostać niezaładowany, ale bez biperka jest ciężko. Dla mnie konsola tekstowa to wciąż podstawowe narzędzie i mam tam np. odpalonego klienta Jabbera. I gdy przychodzi wiadomość, to klient pika… a mnie nie pikał. I było mi smutno. ;-)

Z wcześniejszego goolania wynikło, że to ograniczenie sterowników ALSA do tej wypasionej karty muzycznej HD, którą mam w laptopie i że właściwie powinienem się cieszyć, że mnie gra za głośno, albo wcale, bo innym tylko wcale.

Dzisiaj postanowiłem poszukać jakiejś alternatywy dla standardowego dźwięku, którego nie da się zciszyć. Uznałem, że powinno się dać podpiąć jakąś własną akcję w miejsce tego co robi moduł pcspkr. Okazało się, że mam rację. Jednak, o dziwo, wygodnego gotowca nie znalazłem. Znalazłem tylko dodatkowy moduł do kernela beeper, który współpracował z odpowiednimi demonami w userspace, ale z kompilacją dodatkowych modułów zawsze jest problem. A przecież dowiedziałem się też, że standardowy kernel ma już funkcjonalność potrzebną do obsługi bipania w userspace, bez potrzeby dodawania niestandardowych modułów. Można to zrobić przez interfejs uinput. Nawet znalazłem jakiś przykładowy kod.

Przykładowy kod okazał się być chyba pisanym z pamięci – brakowało includów itp. i się nawet nie kompilował. Do tego używał API esd, a to przecież bez sensu. Na szczęście przykładowy kod zawierał co najważniejsze i po przejrzeniu go i zerknięciu do źródeł kernela byłem w stanie napisać coś użytecznego.

Tak więc powstał uinput_beeper – prosty programik mojego autorstwa, który uruchamia zewnętrzny program za każdym razem, gdy terminal ma zabibczeć. Domyślnie jest to aplay beep.wav. I działa to świetnie, a przy okazji, z przygotowanym przeze mnie na szybko plikiem beep.wav, jest nawet zabawne (ale pewnie nie długo). :-) Kod oczywiście dostępny na GPL, może jeszcze komuś się przyda.

Niech ktoś coś zrobi z tymi obrońcami dzieci

Czytając ostatnie newsy mam wrażenie, że świat kompletnie zwariował na punkcie pedofilii. Oto trzy przykłady:

Wszystko oczywiście w imię ochrony dzieci. Tyle, że dzieci na tych regulacjach nic nie zyskują, a kupa uczciwi obywatele są traktowani jak przestępcy. Przyjrzyjmy się sprawą nieco bliżej:

W przypadku Wikipedii poszło o okładkę płyty Virgin Killer zespołu Scorpions. Samozwańcza organizacja Internet Watch Foundation uznała ją za prawdopodobnie nielegalną i na tej podstawie umieściła na swojej liście blokowanych stron. Lista ta jest wykorzystywana przez największych ISP w Wielkiej Brytanii do ograniczania dostępu do nielegalnych treści. Do niedawna myślałem, że takie rzeczy jak cenzura Internetu to tylko w Chinach i krajach islamskich… ale jednak nie, Europa nie lepsza. Tyle, że zamiast bezpieczeństwa państwa, czy wartości religijnej jako pretekstu używa się ochrony najmłodszych. Przynajmniej na razie…

Jedno, to cenzura prowadzona przez jakąś podejrzaną organizację. Druga to podstawy do uznania strony za niebezpieczną. Chodzi tylko o obrazek nagiej dziewczynki, do tego z zasłoniętymi genitaliami (niektórzy znawcy twierdzą, że nieprzyzwoite są tam odsłonięte piersi… ciekawe czy u chłopczyka też byłyby nieprzyzwoite, skoro wyglądałyby tak samo). Przecież dla normalnego człowieka jest to obrazek zupełnie nie erotyczny. To specjaliści z Internet Watch Foundation robią z tego niewinnego dziecka obiekt seksualny. Moim zdaniem to ich należałoby leczyć!

Co gorsza, niedawno w telewizyjnych Wiadomościach słyszałem entuzjastyczny reportaż o tym, jak u nas podobno chce się wprowadzić jakąś ochronę przez niebezpiecznymi treściami. Dziennikarze przy tym słowem nie wspomnieli o szczegółach rozwiązania, czy potencjalnych zagrożeniach.

Druga sprawa, Simpsonowie. Obawiam się, że w moje ręce też parę razy trafiły podobne obrazki czy animacje. W życiu nie uznałbym ich za pornografię… tym bardziej za jakieś materiały pedofilskie. A jednak australijski sąd uznał. Co gorsza, w naszym prawie ostatnio też wprowadzono penalizację posiadania treści pornograficznych przedstawiających wytworzone albo przetworzone wizerunki małoletnich uczestniczących w czynnościach seksualnych (patrz: np. artykuł Tak, tak, nowelizują kodeks karny… wizerunki małoletnich, hacking, 269b… u Vagli). Może ktoś mi udowodni, jak narysowanie kreskówki z pieprzącymi się dzieciakami krzywdzi jakieś dziecko? A tym bardziej posiadanie czegoś takiego?

Trzecia sprawa: podniesienie wieku ochronnego do 18 lat. Zgadzam się, że wiele dzieci za wcześnie rozpoczyna współżycie, ale nierozsądne zachowania seksualne są równie powszechne u dorosłych. No i zapisanie w prawie, że seks przed osiemnastką jest nielegalny wcale do seksu dzieciaków nie zniechęci, najwyżej zrujnuje życie wielu ludziom, którym to ktoś kiedyś wytknie, żeby wykorzystać prawo dla swoich korzyści… Zdaje się, że u nas też się takie pomysły pojawiały, na szczęście szybko zostały porzucone.