vermin.eu.org

Specjalista IT na tru^Hopie

Entries Comments



Instalacja pakietu/modułu ze źródeł - debian style, czyli ipw2200 na amilo v8010

8 October, 2005 (16:32) | amilo, debian(ized), linux | By: vermin

Czasem zdarza się, iż ze względu na wymagania licencyjne niezgodne z DFSG niektóre pakiety nie są dostępne lub też są dostępne w postaci pakietu źródłowego a nie binarnego. W takim wypadku pozostaje nam tylko albo stworzyć własną paczkę albo skorzystać z pakietu źródłowego - czym zająłem się w ramach instalacji karty sieciowej w amilo pro v8010.
Cała procedura wyglądała następująco - po identyfikacji urządzenia za pomocą lspci -v przeszukałem archiwum repozytoriów Debiana w celu znalezienia odpowiedniego sterownika. Ten się oczywiście znalazł, ale przy jego nazwie świecił się napis contrib co oznaczało, że znajduje się poza repozytorium main… i poza moimi dotychczasowymi poszukiwaniami za pomocą apt-cache search. Aktualizacja /etc/apt/sources.list o sekcję contrib a następnie aktualizacja apt-a przez apt-get update zakończyła fazę przygotowań…
No to do roboty!
apt-get source ipw2200-source ściągnęło mi pakiet. Gdyby tylko tyle miało się dziać, to cała operacja nie miałaby sensu i można by sobie samemu ściągnąć tarballa. Możliwości systemu zarządzania pakietami Debiana pokazuje następna komenda - apt-get build-dep ipw2200-source, która wypluła kilka linijek tekstu, coś ściągnęła z sieci… i już.
Żeby cała instalacja działa się możliwie najprościej, zassane pliki powinny być w odpowiednim katalogu, czyli /usr/src bo to w koncu mają być moduły jądra - niestety w moim przypadku nie były. W tej sytuacji oczywiście należało działać dalej - i tu także debian był pomocny.
Najpierw niestety jednak trzeba było rozpakować tarballa (tar -xvf ipw2200-source.tar.gz) a potem wejść do katalogu o wydać komendy tworzące pakiet: dpkg-source -x ipw2200-source_version-revision.dsc oraz dpkg -i ../ipw2200-source_version-revision_arch.deb. Specjalnie nie użyłem tu wprost wersji, ponieważ w stable i testing wersje sterownika są różne a poza tym warto pamiętać jaką wersję się ma - o czym dalej. Wracając do użytych komend - pierwsza z nich tworzy pakiet zgodnie z opisem w pliku dsc zaś druga dokonała samej instalacji pliku, który jest już przechowywany lokalnie.
Ok - skoro pakiety w końcu są zainstalowane poprawnie w systemie, czyli właściwe pliki w końcu leżą w /usr/src to warto przejść do kolejnego narzędzia, czyli do module-assistant.
Jest ono akurat tworem specyficznym w pracy z modułami, ponieważ normalny program zazwyczaj już by działał :) (i notabene zazwyczaj miał swój tracker dzięki któremu można być up2date jeśli chodzi o bezpieczeństwo systemu). Wstępnie można sprawdzić czy jest on gotowy do kompilowania wobec aktualnego jądra - module-assistant prepare. Module assistant sprawdzi czy mamy pakiety pozwalające kompilować moduły - czyli źródła jądra i nagłówki. Oczywiście można te pakiety ściagnąc samemu, ale miło patrzec jak komputer pracuje :-)
No to czas dokonać ostatecznej kompilacji.
module-assistant a-i ipw2200
chrum, chrum…
No i problem z zależnościami, bo brak pakietu ieee80211 (ale na szczęście przewidzieliśmy fakt, że bez stosu protokołów bezprzewodowych karta nie wstanie - albo sprawdzilismy na packages.debian.org). Chwila pracy żeby dociągnąć powyższy moduł (też w wersji source), przekompilować, przekompilować raz jeszcze ipw2200 i… niestety nadal jest problem, bo choć są wszystkie moduły to niestety trzeba ściągnąć firmware ze stron intela. Ot, znów taka miła polityka Debiana…
Ponieważ pliki readme kierują nas na strony projektu http://ipw2200.sourceforge.net, a dokładniej na podstronę firmware.php, to warto pamietać którą wersję drivera mamy, żeby pobrac właściwe oprogramowanie. Kilkadziesiąt kilo do ściągnięcia, a potem to już tylko wrzucenie plików *.fw po rozpakowaniu tarballa do odpowiedniego katalogu - (ja wybrałem /usr/lib/hotplug/firmware, bo karta zostaje włączona przez hotplug) i ten artykuł już jest pisany dzięki połączeniu bezprzewodowemu.
BTW - dziwne jest, że nowy interfejs pojawil sie jako eth[n] a nie wlan[n]… Trzeba będzie sobie spatchować źródła, ale to zupełnie inny temat…

I na sam koniec mała uwaga - żeby sie tak nie mordować, w tym przypadku wystarczyłoby dodać repozytorium debian unofficial (korzystam z etch, a backports jeszcze sarge nie wspierają), w którym jest sporo ciekawego softu… ale przecież nie w tym rzecz, prawda?

Comments

Comment from Kasjan
Time: 13/02/06, 22:27

Mam ten sam sprzet i ten sam system… jednak nie moge tego zainstalowac :/ skad wziac ipw2200-source? apt-get nie znajduje mi tego, a nie wiem jakie repozytoria dodac… :(

Comment from vermin
Time: 13/02/06, 23:47

Taaak - odpowiedzi jest oczywiście kilka:
a) jeśli dystrybucja jest w wersji stable (a wygląda na to, że jest), to pakiet jest w dystrybucji w wersji 1.0.3 (sekcja contrib). W wydaniach testing oraz unstable jest nowszy, czyli można go ściągnąć poprzez stronę http://packages.debian.org/testing/net/ipw2200-source lub też, jeśli mamy odpowiednio skonfigurowanego apt’a możemy mając wciąż stable posiłkowac się innym rodzajem (postaram się napisać kilka słów o tym wkrótce).
Strona packages.debian.org nie działa aktualnie, więc zamieszczam jeszcze adres ftp - http://ftp.pl.debian.org/debian/pool/contrib/i/ipw2200/ipw2200-source_1.0.8-2_all.deb Po ściągnięciu pliku instalacja za pomoca polecenia dpkg -i pw2200-source_1.0.8-2_all.deb Po zainstalowaniu pakietu polecam lekturę /usr/share/doc/ipw2200-source/README.Debian w uzupełnieniu do mojego artykułu

b) mozna ściągnąć pakiet ze strony http://ipw2200.sourceforge.net/#downloads - jest to niestety archiwum tgz, więc polecam lekturę http://ipw2200.sourceforge.net/INSTALL. Niemniej jest to bardzo niedebianowe rozwiązanie :)

c) w backports tego niestety nie ma…

Comment from vermin
Time: 03/09/06, 8:06

Od wersji jądra 2.6.16 sterownik do IPW2200 jest już domyślną częścią jądra. Koniec ręcznych zabaw z jajkami ;-)

Pingback from vermin.eu.org » Archiwum » Kernel 2.6.17 i ipw2200 razem nie lubią działać
Time: 18/12/06, 23:03

[...] Ponieważ jednocześnie owe jądro wnosiło sterownik w wersji 1.1.1 należało także zmienić firmware z wersji 2.4 na 3.0. Niestety - pomimo tych zmian sterownik ipw2200 w jądrze nie działał poprawnie z ieee80211. Pozostawało jedynie ściągnąć nowszą wersję sterownika i samemu znów skompilować moduł ipw2200-source lub rekompilować jądro. Co ciekawe, to zachowanie nie występowało w poprzedniej wersji jądra - 2.6.16, gdzie wszystko działało poprawnie. [...]

Write a comment