Powróciłem ostatnio do ubuntu (9.10), mając nadzieję spędzać mniej czasu przy konfiguracji systemu i instalacji oprogramowania. Przyjazd do domu na święta, dużo innych rzeczy do zrobienia i kłopot z dostępem do netu spowodował, że znów zacząłem psuć.

Tym razem dobrałem się do karty bezprzewodowej tp-link wn610g. Karta jest na pcmcia z wyprowadzonym łączem do zewnętrznej anteny. Oparta jest na chipsecie Athero, a w ubuntu obsługiwana jest przez sterownik ath5k. Po włożeniu karty jakość połączenia była co tu dużo mówić żenująca. Strony albo wczytywały się minutę albo w ogóle. To, że na windowsie wszystko działało tak jak trzeba (eh) zachęciło mnie tylko do tego żeby coś z tym zrobić. Kiedy jeszcze na dysku gościło u mnie gentoo kartę obsługiwał sterownik madwifi i połączenie było o wiele lepsze więc postanowiłem wykorzystać go w ubuntu.

Instalacja sterowników madwifi

Zacząłem od pobrania najnowszych sterowników ze strony projektu

wget http://snapshots.madwifi-project.org/madwifi-trunk-current.tar.gz

ich rozpakowania

tar xvzf madwifi-trunk-current.tar.gz

i przejścia do powstałego katalogu

cd madwifi-trunk-r4099-20091230

Przed dalszymi krokami warto się upewnić czy mamy wymagane pakiety: build-essential oraz checkinstall dzięki, któremu wygenerujemy paczkę deb łatwą do późniejszej, ewentualnej deinstalacji.

sudo apt-get install build-essential checkinstall

Budujemy i instalujemy

make
sudo checkinstll

Sterownik madwifi jest w ubuntu domyślnie zablokowany, aby móc z niego skorzystać musimy edytować plik /etc/modprobe.d/blacklist-ath_pci.conf wstawiając hasz przed poleceniem zabraniającym ładowania modułu ath_pci przy starcie systemu

##/etc/modprobe.d/blacklist-ath_pci.conf 

#blacklist ath_pci

jednocześnie blokując moduł ath5k przez dopisanie stosownej linii w /etc/modprobe.d/blacklist.conf

##/etc/modprobe.d/blacklist.conf

blacklist ath5k

Po restarcie karta działała już na sterowniku madwifi.

Niestety pojawił się problem, a mianowicie karta nie mogła znaleźć sieci mojego dostawcy. Polecenie iwlist ath0 chan pokazało, że dostępne kanały to 1 do 11 zaś ap chodzi na 13 kanale :/. Wymuszenie skanowania na 13 kanale (sudo iwconfig ath0 channel 13) skończyło się fiaskiem .

Próbowałem też za madwifi-project.org załadować moduł z określonym kodem państwa bo z tego co się orientuję z 13 kanału można swobodnie korzystać w Europie a w USA już chyba nie.

sudo rmmode ath_pci //usuwamy moduł
sudo modprobe ath_pci countrycode=616 //ładujemy z kodem Polski

Okazało się jednak, że kod państwa nie pasuje do ustawionego dla karty regionu (to samo np. z kodem Niemiec) więc została mi tylko próba zmiany tegoż regionu na inny co swoją drogą wydało mi się trochę dziwne, ale co tam.

Zmiana regdomain karty

Na wstępie należy zaznaczyć, że zmiana regionu karty nie jest czymś zalecanym. Panowie z madwifi piszą: kids, don’t do this at home! i pewno mają rację bo raz, że ingerujemy w wewnętrzne oprogramowanie karty i tu coś może pójść nie tak, dwa zmieniamy zakres warunków w jakich będzie pracować karta i wcale nie jest powiedziane, że będzie się w nich czuła dobrze.

Zacząłem od uśpienia interfejsu pod jakim jest widoczna karta

sudo ifconfig ath0 down

Później znalazłem adres pamięci, pod którym rezyduje urządzenie

grep ath_pci /proc/bus/pci/devices | cut -f4

Otrzymaną liczbę będącą adresem wykorzystałem w kolejnym poleceniu

sudo ath_info [adres]

Jeżeli otrzymałeś informacje o urządzeniu, które w moim przypadku wyglądały tak możemy przystępować do zmiany regionu, w przeciwnym razie lepiej to zostawić ;). Spotkałem się z radami by ustawić region na zero co pozwala na załadowanie modułu z jakimkolwiek kodem kraju i faktycznie tak jest. Po wykonaniu wcześnie przytoczonej komendy z Polskim kodem miałem dostęp do 13 kanału. Jednak po tej zmianie karta nie mogła znaleźć sieci na windowsie :D. Postanowiłem więc po potwierdzeniu, że jestem świadomy że mogę popsuć kartę, ustawić region na Francję gdzie mam 13 kanał a i windows poprawnie wykrywa sieć.

sudo ath_info -w [adres] regdomain 0x32

Po podniesieniu interfejsu

sudo ifconfig ath0 up

bez problemu połączyłem się z ap dostawcy

Sterownik nie wykrył jednak poprawnie standardu w jakim nadawał ap, ustawiając dla karty g zamiast b. Wymusiłem zmianę przez

sudo iwpriv ath0 mode 11b

co było ostatnim krokiem do przyzwoitego połączenia.

Myślę, że przy ath5k może być ten sam problem z doborem standardu, ale nie da się na nim wymusić póki co korzystania z konkretnego kodowania ..i dobrze bo tyle się narobiłem że wkurzyłbym się gdyby jedną komendą to zrobić.

Nie jest to rozwiązanie idealne chociażby z tego względu że to właśnie nad ath5k skupili się twórcy madwifi, i to on będzie rozwijany. Pod ath5k miałem paru procentowy wzrost sygnału w stosunku do madwifi ale może to tylko inny sposób odczytu. Poza tym przy każdej aktualizacji jądra systemu czeka mnie reinstalacja sterowników madwifi.

Żyjąc w studenckim mieszkaniu, bywa tak, że każdy ma coś ciekawego na kompie co by i u mnie na dysku mogło się rozgościć, więc się co nie co udostępnia. Jako że jedyny użytkuje linuksa a reszta współlokatorów siedzi na windowsach korzystam z Samby. Thunar będący domyślnym menadżerem plików w Xfce nie posiada przeglądarki zasobów Samby więc wyglądało to zazwyczaj tak, że krzycząc przez całe mieszkanie "to w jakim to folderze udostępniłeś?!", montowałem przez polecenie w konsoli podając adres i nazwę udziału. Postanowiłem oszczędzić trochę struny głosowe i znaleźć narzędzie do przeglądania udostępnionych zasobów, do tego graficzne bo czemuż by nie ;)

W głównym drzewie Portage doszukałem się tylko LinNeighborhood, ale wydał mi się i brzydki i martwy (ostatnia aktualizacja bodajże z 2002 roku). Tak więc google wskazał mi drogę do pyNeighborhood - który ma na nowo przepisany kod wymienionego poprzednika. Wykorzystuje GTK+ 2 tak więc wygląda nie zgorzej:

zrzut ekranu prezentowanego programu

PyNeighborhood nie znajduje się w głównym drzewie Portage, więc żeby zainstalować go przez emerge należy skorzystać z mechanizmu overlays. (Ogólnie i szczególnie o tym mechanizmie w Dokumentacji Gentoo.) Program można znaleźć w overlayu Sunrise którego dodajemy w ten sposób:

# emerge -av layman
# layman -f -a sunrise
# echo "source /usr/portage/local/layman/make.conf" >> /etc/make.conf

Kiedy mamy już dostęp do ebuildów z Sunrise instalujemy pyNeighborhood standardowo przez emerge

#  emerge pyneighborhood

Po zainstalowaniu odszukujemy go w Menu Xfce --> Sieć --> pyNeighborhood. W oknie programu klikamy Edit --> Preferencje. W zakładce General w polu mount folder podajemy ścieżkę do katalogu w którym mamy prawo zapisu (oczywiście jeśli planujemy działać z konta zwykłego użytkownika) czyli np. /home/nazwa_użytkownika/lan. Przechodzimy do zakładki File Managers, usuwamy będący tam wpis i dodajemy nowy zawierający nazwę naszego menadżera plików, czyli w moim przypadku thunar. Jako że pyNeighborhood jest graficzną nakładką na narzędzia Samby, musimy mieć dostęp do niektórych z nich jeżeli chcemy używać go z konta użytkownika. Dobierzemy się do nich dzięki:

# chmod +s /usr/bin/smbmnt 
# chmod +s /usr/bin/smbumount 

Samo użytkowanie programu jest intuicyjne i proste. Po lewej stronie dwukliknięcie myszką na globusie powoduje wyszukanie grup roboczych w naszej sieci, dalsze klikanie na grupie wyszukuje komputery do niej należące. Gdy klikniemy dwukrotnie na, którymś z wyszukanych komputerów pojawi się okno dialogowe, w którym wybieram try to retrieve missing data a jeżeli nie przyniesie to efektu to ręcznie wprowadzamy ip dodawanego kompa. Po przerzuceniu się na lewą stronę, dwuklik powoduje wyszukanie udostępnionych folderów na danym komputerze a kolejny dwuklik je montuje we wskazanym przez nas wcześniej folderze. Prawe kliknięcie na udziale rozwija menu pozwalające otworzyć folder w menadżerze plików jak i od montowanie zasobu.

Niestety jak można przeczytać na stronie programu, jego rozwój się zatrzymał i raczej już nie ruszy. Nie mniej w obecnym kształcie spełnia on swoje podstawowe zadania bardzo dobrze i myślę, że warto się nim zainteresować.