UrządzeniaAdrian Pawlik niedziela, 26 wrzesień 2004 |
|
Linux od początku był pisany, aby można było w nim obsłużyć wiele
urządzeń różnego typu. Dlatego też powinieneś wiedzieć jak system je
traktuje. Z rozdziału tego dowiesz się przede wszystkim jak są one
reprezentowane i jak system się z nimi komunikuje...
Jak reprezentowane są urządzenia
w Linuksie?
W /dev (skrót od devices - urządzenia) znajdują się
pliki,
przez które następuje komunikacja ze sprzętem. Widoczne są tu takie
pliki, jak modem, mouse itp. Tak właśnie
Linux traktuje urządzenia. W ww. katalogu znajdują się jakby
informacje,
gdzie nasz sprzęt jest zainstalowany.W konfiguracji wielu programów musimy właśnie podać ścieżki do urządzeń z tego katalogu. A więc aby przesłać komunikat jakiemuś urządzeniu wystarczy przesłać go do odpowiedniego pliku. Sytuacja jest identyczna w przypadku odczytu komunikatów zwracanych przez sprzęt. Aby lepiej się temu przyjrzeć wystarczy na przykład napisać prosty program w c++:
#include <iostream> Program kompilujemy za pomocą g++: $ g++ modem.cpp -o modemOpcja -o określa plik wyjściowy (przekompilowany). I uruchamiamy: $ ./modemInną metodą, właściwie dużo łatwiejszą i szybszą, jest przesłanie komunikatu do modemu z poziomu Basha: $ echo "ATZ" > /dev/modemModem w odpowiedzi na pytanie powinien po prostu piknąć. Jeśli jednak tego nie wykonał, to bardzo prawdopodobne, że widnieje on pod innym adresem. Nie zapominajmy, że /dev/modem to tylko dowiązanie symboliczne, czyli "odsyłacz". Modem tak naprawdę jest (prawdopodobnie) pod /dev/ttySx, gdzie x to numer portu modemu ( UWAGA: w Uniksach liczenie zaczyna się od 0). Tak więc możesz poprawić dowiązanie: # ln -s /dev/ttySx /dev/modembądź po prostu zmienić w programie czy poleceniu echo adres... I tak na przykład możesz za pomocą echo odtwarzać muzykę! Tak, tak - trochę dziwnie to brzmi, ale to prawda... Jest tylko jedno ale - odtwarzane pliki nie mogą być kodowane, tak jak sławne ogg, czy mp3. A więc jak? cat /home/imoteph/sound.au > /dev/audio &Na koniec tego tematu wytłumaczę jeszcze dwa symbole, które się tu pojawiły: ">" i "&". Pierwszy z nich
oznacza przekierowanie standardowego wejścia na dany plik z jego
nadpisaniem. ">>" także oznacza przekierowanie,
tylko
z tą różnicą, że plik docelowy nie jest nadpisywany, lecz dane są do
niego dopisywane. "&" oznacza pracę procesu (programu) w tle. Dzięki
temu
będziemy mogli wykonywać inne czynności podczas słuchania muzyki
(oczywiście mowa o pracy na konsoli, z której został uruchomiony
proces).Na temat urządzeń nie musisz wiedzieć zbyt dużo. Na początek wystarczy Ci miejsce ich pobytu i sposób komunikacji z nimi, a wraz z każdym krokiem na przód sam poznasz tajniki obsługi sprzętu przez Linuksa. Winsprzęt - kłopot? Za pewne z samej nazwy domyślasz się co oznacza owa nazwa... No właśnie dziś sprzęt komputerowy tanieje na naszych oczach. Ale czy tanieje, bo wychodzą coraz to nowsze urządzenia? I tak, i nie... Producenci często wydają na rynek tak zwany winsprzęt - urządzenia "przystosowane" do pracy z Windows. Bardzo często widać to w modemach, które nabyć można już nawet za 60 zł! Z racji, że na dołączonej płycie znajdziemy tylko sterowniki dla Windows, możemy mieć kłopoty z zainstalowaniem sprzętu w Linuksie. W najlepszym wypadku możemy poszukać nieoficjalnych sterowników w Internecie, często się jednak zdarza, że zakupiony przez nas sprzęt będziemy musieli odłożyć na półkę. Kupując nowe urządzenia powinniśmy zapoznać się z informacją, z jakimi systemami sprzęt jest w pełni kompatybilny. Informację taką możemy uzyskać choćby od sprzedawcy w sklepie lub na oficjalnej stronie producenta. Dobrze jest także spytać na grupach dyskusyjnych (adresy na końcu), czy miał ktoś problemy, z wybranym przez nas sprzętem. Instalacja urządzeń Większość urządzeń wykryło odpowiednio juz skonfigurowane jądro Linuksa, bądź instalator dystrybucji. Zdarza się jednak, że instalator nie zainstaluje naszych wszystkich urządzeń, a jądro nie ma wkompilowanych odpowiednich modułów (czytaj dział Jądro Linuksa). W tym rozdziale pomogę zainstalować Ci kartę dźwiękową, modem, klawiaturę multimedialną i drukarkę. Dźwięk w Linuksie Rzadko zdarza się, że w systemie nie działa nasza karta dźwiękowa. Wiele częściej występuje problem praw dostępu do tych urządzeń, przez co programu nie mogę korzystać ze sprzętu. Pierwszym krokiem, który wykonamy, to właśnie sprawdzenie praw. W tym celu logujemy się na konto roota i sprawdzamy do jakiej grupy należą pliki urządzenie dźwięku:
woody:/home/imoteph# cd /dev/
Ujrzymy długą listę... teraz skupimy się na lini z plikem audio:
crw-rw---- 1 root
audio 14, 4 mar 14 2002 audio
Widać, że właścicielem pliku jest root. Plik należy także do grupy audio. Najlepszym sposobem jest teraz dodanie swojego użytkownika do tej grupy. Służy do tego polecenie adduser:
# adduser imoteph audio
Powinniśmy ujrzeć komunikat o dodaniu użytkiownika do grupy. Jeśli jednak adduser zwrócił informację, że użytkownik należy już do tej grupy, prowdopodobne jest, że to nie w prawach dostępu, lecz w sterownikach leży problem. Neleży teraz sprawdzić na jakim chipsecie jest nasza karta dźwiękowa. Najlepiej jest to zrobić przy pomocu polecenie lspci:
imoteph@woody:~$ lspci -vvv
Program wyświetli informacje o naszym sprzęci podłączonym do PCI, a także zintegrowanym z płytą główną. W moim przypadku podał, że kontroler dźwięku obsługuje chipset nvidii - nForce2. Teraz musimy sprawdzić jakie moduły mamy dostępne w jądrze. Wpisujemy:
woody:/dev# lsmod
Oto wyniki na moim Debianie, z rekompilowanym jądrze 2.4.20:
Module
Size Used by Tainted: P
Teraz wystarczy załadować odpowiedni moduł: i810_audio i możemy cieszyć się dźwiękiem. Zdarza się nieraz jednak, że nie mamy do dyspozycji modułów ze terownikami do naszego sprzętu. Rozwiązaniem okazuje się rekompilacja jądra (jak w moim przypadku). Oto lista dostępnych opcji w sekcji Sound jądra 2.4.20:
ALi5455 audio support
Modem Modem to podstawowe drzwi na świat Internetu. Linux bez sieci, nie jest już tym samym Linuksem, dlatego w systemie powinieneś skonfigurować także swój modem. Linux powinien bezproblemowo wykryć wszystkie modemu zewnętrzne, z racji, iż są to prawdziwe sprzętowe urządzenie, nie potrzebujące sterowników do swojej obsługi. Inaczej jest jednak z modememi wewnętrznymi. Bardzo często zdarza się, że są to urządzenia, które potrzebują wykorzystywać procesor głowny, zamiast swoich układów. Pisane są wtedy dla nich sterowniki, aby system mógł z nich korzystać. Niestety tylko pod jeden system zazwyczaj pisane są takie sterowniki - pod Windows, przez co inne systemy, w tym Linux nie mogą używać takich modemów. Na szczęście jest na rynku kilka modemów wewnętzrnych, które działąją pod Linuksem. Obecnie chyba tylko firma Pentagram produkuje tanie modemy, do których dołączają także starowiniki dla Linuksa. Innymi modemami dość dobrze pracującymi pod Linuksem są modemy firmy Zoltrix. Ta co prawda nie dostracza żadnych sterowników, ale znalazły się osoby, które napisały takie dla modemów pracyjących na chuipsecie Connexant. W ten sposób możemy łączyć się z Internetem modemami na tych układach. Przed pobraniem sterowników musimy sprawdzić jakim modemem jest nasz modem. Oczywiście posłużu nam do tego lspci. Oto wyniki na moim komputerze:
Communication controller: Conexant HCF 56k Data/Fax/Voice/Spkp
(w/Handset) Modem (rev 08)
Widać, że modem pracuje pod tym chipsetem. Dodatkowa informacja to typ - HCF. Udajemy się teraz pod www.linuxant.com i pobieramy najnowsze starowniki cla modemów Connexant HCF. Instalcja jest dziecinnie prosta. Musimy wykonać tylko parę poleceń i możemy sprawdzać modem. Najpierw upenijmy się ze w katalogu /usr/src/linux mamy źródła, bądź nagłówki obecnego jądra. Jeśli okaże się, że nie, sterowniki nie skompilują się. Dlatego też musimy wcześniej zainstalować paczkę z odpowiednimi plikami. Włączamy w tym celu dowolny manedżer pakietów i przeszukujemy listę ciągami: "kernel", "header" bądź "source". Po znalezieniu odpowiedniego pakietu oczywiście go instalujemy. Musimy sprawdzić jeszcze, czy napewno źródła dostępne będą w /usr/src/linux. Jeżeli tak nie jest tworzyly dowiązanie symboliczne:
# ln -s /usr/src/linux/ /usr/src/katalog_jądra/
Przechodzimy następnie do samej już instalacji sterowników:
Od tej chwili nasz modem powinien już bezproblemowo działać. Jedyne co powinniśmy teraz zrobić to odpowiedni link do niego:
# rm /dev/modem
Sprawdzamy czy wszytsko jest w porządku:
$ echo "ATZ" >> /dev/modem
Urządzenie w odpowiedzi powinno piknąć. Teraz możemy już surfować po sieci, używając do tego aplikacji z naszej dystrybucji! Klawiatura multimedialna Klawiatury multimedialne bardzo przydają się podczas słuchania muzyki, oglądania filmów, a także pracy w sieci. Dlatego też powinniśmy mieć dostępną obsługę tago urządzenia w Linuksie. Dość dobrym narzędziem do konfiguracji dodatkowych klawiszy jest program HotKeys. Powiniem być on dostępny w większości dystrybucji, więc uruchamiamy manadżer paketów i instalujemy go. Jedynum minusem programu jest fakt, że działa tylko z serwerem X, czyli w graficznym środowisku pracy, choć konfiguruje się go z poziomy powłoki. Za każdym razem, gdy zostaje uruchmowiany trzeba podawać mu nazwę klawiatury do obsługi. Lista obsługiwanych modeli dostępna jest pod opcją '-l'. Szybko zoriętujesz się ze program ma dostępnych zaledwie kilka modeli, a Twojej klawiatury prawdopodobnie wśród nich nie ma. Jedyne co nam pozostaje to stworzenie własnych definicji. Na początek może trochę ionformacji na temat plików HotKeys. Program posuada plik konfiguracyjny hotkeys.conf w /etc/. W /usr/share/hotkeys/ znajdują się pliki z definicjami różnych modeli. Pliki te mają postać zbliżoną do:
<Opcja keycode="numer"/>
Czyli abyśmy mogli kożystać z dodatkowych klawiszy, potrzebujemy ich kody. Pomoże nam teraz program Xev. Jeśli nie mamy go zainstalowaneg, to znajdziemy go na płytkach dystrybycji. Uruchamiamy program i wciskamy interesujące nas klawisze. Program następnie wyświetli potrzebne nam kody. Następnie edytujemy dowolny plik z katalogu z definicjami. W miejsca starych kodów podstawiamy, nowe. Zmieniamy jeszcze sekcję 'model', gdzie podajemu nazwę naszej klawiatury. Definicje dla mojej klawiatury przedstawiają się następująco:
<?xml version="1.0"?>
Plik zapisujemy do katalogu w postaci znawa.def. W moim przypadku - IBMkb-9930.def. Jeśli nic nie pomyliliśmy, to po wpisaniu w powłoce:
$ hotkeys -l IBM-kb9930
Powinniśmy ujrzeć ekran powitalny HotKeys, a system powinien reagować na wciskane klawisze dodatkowe. HotKeys posiada bardzo wygodny sposób definiowania skrótów. Dzieki temu mamy możliwość wykonywania operacji, których autor nie zawarł w programie. Definicji dokonuje się bardzo prosto, np:
<userdef keycode="230" command="/usr/bin/mozilla -remote
'openURL(http://google.com)'">Go to URL</userdef>
Linię taką oczywiście dołączamy do pliku definiującego. Jesli wszytsko działa tak jak chcieliśmy pora zabrać się za globalny plik konfiguracyjny. Edytujemy więc /etc/hotkeys.conf. W sekcji 'Kdb' warto podać naszą klawiaturę, dzięki czemu nie będziemy musieli podawać jej podczas startu programu. Opcje ustawiamy wedle naszych upodobań. Zatrzymajmy się jednak przy opcjach OSD (wytświetlania na ekranie). Domyślny kolor zielony lekko razi, proponuję więc wybrać inny, np. pomarańczowy. Kolor ustawiamy w sekcji osd_color. Wartość powinna być w postaci #xxxxxx. Także wyświetlanie na dole ekranu to nienajlepsze rozwiązanie. Aby to zmienić ustawiamy opcję osd_offset na 1/2 wysokości ekrany, czyli np. na 384. Zmienić możemy także czas wyświatlania. Dokonujemy tego za pomocą osd_timeout. Tak wygląda mój plik hotkeys.conf:
Kbd=IBMkb-9930
Ostatnim krokiem, jaki wykonamy, to utworzenie skryptu startowego, dzięki czemu program włączy sie automatycznie po starcie np. KDE. Uruchamiamy dowolny edytor umieszczamy w pliku:
#!/bin/bash
Skrypt zapisujemy do .kde/Autostart w naszym katalogu domowym. Restartujemy KDE i możemy cieszyć się naszą klawiaturą w Linuksie. Instalacja drukarki Drukarka jest bardzo przydatnym urządzeniem, czy to w biurze, czy tez w zwykłym domu. W instalacji pomoże nam system drukowania CUPS. Powstał w 1999 roku i oferuje mnustwo funkcji, zaczynając na sprawnym drukowaniu dokumentów na naszej maszynie, kończąc na bardzo dobrej obsłudze zadań drukowania w sieci lokalnej. Będziemy potzrebowali kilka pakietów, aby drukowanie było jak najbardziej wygodne. Uruchamiamy więc manadżer pakietów i instalujemy:
cupsys
Po instalacji system CUPS powinien być już gotowy do pracy. Możemy to sprawdzić wpisując w dowolnej przeglądarce adres http://127.0.0.1:631. Wszystkie opcje drukarmi możemy ustawić właśnie tutaj. Kolejny nasz krok, to instalacja drukarki w systemie. Najlepiej teraz udać się na stronę www.linuxprinting.org . Znajduje się tam ogromna baza sterowników do drukarek dla systemu CUPS. Możemy także sprawdzić jak nasza drukarka sprawuje się w Linuksie, czy może sprawia kłopoty, itp. Po odnalezieniu naszego modelu pobieramy odpowiedni dla niego plik PPD. Dla mojej drukarki HP 640c jest to plik HP-DeskJet_640C-hpijs.ppd. Następnie kopiujemy go do odpowiedniego katalogu z plikami CUPSa:
# cp HP-DeskJet_640C-hpijs.ppd /usr/share/cups/model/
i zmieniamy prawa na odczyt-zapis, odczyt, odczyt:
# chmod 644 HP-DeskJet_640C-hpijs.ppd
Teraz plik powinien być już dostępny w menu sterowników drukarek. Restarujemy jeszcze tylko CUPSa poleceniem
# /etc/init.d/cupsys restart
i możemy przejść do dodawania drukarki. W przeglądarce otwieramy panel CUPSa i przechodfzimy do zakładki Printers, następnie Add printer. W oknie podajemy login root i oczywiście hasło administratora. W polu Name podajemy nazwę dla drukarki, np. HP. Pozostałe pola możemy zostawić puste. Przechodzimy dalej. Z listy Device wybieramy typ podłączenia drukarki. W moim przypadku jest to port równoległy, więc wybieram Parallel Port#1. Jeśli nic nie pomyliliśmy podczas dodawania pliku PPD, to teraz na liście drukarek powinien być widoczny także nasz sprzęt. Po jego wybraniu i zatwierdzeniu nasz adrukarka powinna być już gotowa do pracy. Z powrotem przechodzimy do zakładki Printer, gdzie możemy wydrukować stronę testową. Dodatkowo w zakładce Configure printer możemy dokonać ustawień jakośći wydruku itp rzeczy. Jeśli coś pomyliliśmy podczas dodawania drukarki, możemy to poprawić w zakładce Modify Printer. Aby sprawnie drukować użyjemy dodatkowo prograu qtcups, dzieki któremu będziemy mogli odwoływać się do CUPSa z innych programów, takich jak OpenOffice, czy Mozilla. Wystarczy tylko zmianić polecenie drukowania w tych programach z lp lub lpr na qtcups z opcją -d określającą nazwę drukarki. Przykładowo może być to:
qtcups -d HP
Jak widać instalacja drukarki przy pomocy systemu CUPS nie jest taka trudna. System ten potrafi obsłużyć wiele modeli, także nie powininieneś mieć problemu z instalają swojej drukarki. Ten artykuł jest częścią dużego artykułu pod tytułem Wprowadzenie do systemu Linux. Pełny dokument Wprowadzenie do systemu Linux |