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.

Dziś uaktualniłem xorg-server do wersji 1.4.2. Plik xorg.conf pozostał ze starszej wersji co przyczyniło się do tego że po uruchomieniu X-ów nie działała ani myszka ani touchpad. Po poszukiwaniach dotarłem do bugzilli gentoo. Okazało się że opcja "CorePointer" powinna występować tylko raz, więc sekcja "ServerLayout" powinna wyglądać mniej więcej tak:

InputDevice    "Mouse0" "CorePointer"
InputDevice    "Keyboard0"
InputDevice    "TouchPad"

Może komuś się przyda.

iriver e10

O to moje nowe cacko ;) Cud - miód odtwarzacz rozpisywać się o nim długo, ale inni zrobili to lepiej, chociażby KHRoN, a i sporo informacji wyczytać można w wątku prowadzonym na forum.mp3store.pl.

Niestety jest jedna irytująca rzecz. By utwory wrzucone na odtwarzacz były widoczne w przeglądarce tagów (tj. przeglądanie po albumach, artystach itp.) należy uaktualnić wewnętrzną bazę odtwarzacza za pomocą programu iRiverplus 3. Tyle, że ten program cechuje się:

  • skopanym, totalnie niepraktycznym interfejsem
  • brakiem wersji na linuksa

Dlatego też szukałem alternatywy. Trafiłem na stronę projektu PMPlib - biblioteki zarządzającej przenośnymi urządzeniami między innymi firm iRiver, Samsug, MSI, oraz skryptu e10update - wykorzystującego pmplib , dostarczającego GUI.

PMPlib niestety nie uraczy się w portage. Skorzystałem z przygotowanego ebuilda którego można znaleźć w bugzilli, kierując się przy tym instrukcją Instalacji ebuildów spoza Portage. Najnowsza wersja to 0.14, więc zmieniłem nazwę ebuilda tak by jej odpowiadała ( działa, ale czy tak się to robi ? ), pobrałem kod źródłowy pmplib-0.14.tar.gz do distfiles i zainstalowałem standardowo przez emerge.

Przed rozpoczęciem korzystania z e10update należy się upewnić że mamy zainstalowany pakiet zenity (jest w portage), to on właśnie zapewnia prosty interfejs. Pozostaje ściągnąć najnowszą wersję skryptu e10update ze strony twórcy i postępować z zawartymi tam instrukcjami :

Przerzucamy skrypt by mieć do niego łatwy dostęp

# mv e10update /usr/bin

nadajemy mu prawa do wykonywania

# chmod +x /usr/bin/e10update

Pozostaje podłączyć odtwarzacz i odpalić skrypt

$ e10update

Urządzenie powinno być montowane w /media/E10 ewentualnie można wyedytować skrypt jeżeli preferujemy inną lokalizację. No to tyle, skrypt może mieć czasem problem z odmontowaniem odtwarzacza, więc wtedy trzeba samemu to zrobić. To teraz jeszcze tylko coś do skrobowania na last.fm ;) bo raczej na rockboxa nie ma co liczyć.