Instalacja kart sieciowych na chipsecie TI acx100/111.

Archiwalne, stare wpisy FAQ i HowTo Użytkowników
el_carles
Junior Member
Posty: 560
Rejestracja: 02 lutego 2007, 17:32

Instalacja kart sieciowych na chipsecie TI acx100/111.

Post autor: el_carles »

Opiszę tutaj proces instalacji kart na chipsecie Texas Instruments (acx100/111) metodą (nazwijmy to) debianową.

1. Identyfikacja urządzenia.
2. Potrzebne pakiety.
3. Firmware.
4. Budowa modułu.
5. Konfiguracja interfejsu.
6. Problemy.
7. ¬ródła.



1. Identyfikacja urządzenia.

Jeżeli nie jesteś pewny czy Twoja karta jest wyposażona w "tajemniczy" chipset TI, zalecam sprawdzić czy znajduje się na liście wspieranych urządzeń:

Device list

lub poprzez wydanie komendy:

Kod: Zaznacz cały

$ lspci -n
U mnie:
k@debian:~$ lspci -n
...
02:06.0 0280: 104c:8400
...
W przypadku urządzenia usb polecenie lsusb powinno stać się pomocne.

Jeżeli w wyniku ww. komend na wyjściu dostajesz coś innego niż:

* 104c:8400 ->(acx100 CardBus)
* 104c:8401 ->(acx100 PCI)
* 104c:9066 ->(acx111 Cardbus/PCI)

najprawdopodobniej nie posiadasz karty z chipsetem acx100/111.


2. Potrzebne pakiety.

Do instalacji sterownika wymagane są następujące pakiety (wraz z zależnościami):

Nagłówki

odpowiednie dla posiadanego jądra. Jeżeli nie wiesz jaki kernel zainstalowany jest w Twoim systemie sprawdź wydając polecenie:

Kod: Zaznacz cały

$ uname -r
acx100-source
module-assistant
wireless-tools

Powyższe linki przeznaczone są dla stabilnej wersji Debiana. Pakiety dla wersji testowej lub niestabilnej mogą zostać pobrane z:

packages.debian.org

Kolejna ważna rzecz o której wspomniałem już wcześniej - zależności... mogą być zmorą dla początkujących użytkowników, tym bardziej, jeżeli instalowałeś system w wersji netinstall. Wówczas musisz patrzeć jakie pakiety będą Ci potrzebe do ich spełnienia, pobrać je z packages.debian.org i zainstalować z dpkg:

Kod: Zaznacz cały

# dpkg -i nazwa_pobranego_pakietu.deb
Posiadacze pełnej wersji Debiana (obecnie 3 płyty DVD lub 21 płyt CD) nie muszą pobierać żadnych pakietów z sieci.

Wystarczy zainstalować ww. pakiety z pomocą apt-get:

Kod: Zaznacz cały

# apt-get install nazwa_pakietu
lub z aptitude (osobiście polecam ten sposób):

Kod: Zaznacz cały

# aptitude install nazwa_pakietu

3. Firmware.

Do właściwego działania naszej karty będziemy potrzebowali odpowiedniego firmware.

Najprościej możemy zaopatrzyć sie w fw poprzez wejście na tą stronę:

acx_firmware

i pobranie odpowiednich plików w zależności od urządzenia.

W moim przekonaniu, lepiej będzie jeżeli skopiujesz i zmienisz nazwę odpowiednich plików z płyty instalacyjnej ze sterownikami windows.
Potrzebne pliki to:
FwRad16.bin ---> fw dla kart acx111 ---> wymagana nazwa: tiacx111c16
RADIO11.BIN ---> fw dla kart acx100 ---> wymagana nazwa: tiacx100r11
WLANGEN.BIN ---> fw dla kart acx100 ---> wymagana nazwa: tiacx100
RADIO0d.BIN ---> fw dla kart acx100 ---> wymagana nazwa: tiacx100r0D
??? ---> fw dla kart acx100-usb ---> wymagana nazwa: tiacx100usb
Dla przykładu, dla karty Planet wl-8305 jako fw potrzebne są pliki: tiacx100, tiacx100r11, tiacx100r0D;

Potrzebne pliki powinny zostać skopiowane do katalogu:

Kod: Zaznacz cały

/lib/firmware
(najprawdopodobniej trzeba będzie ten katalog utworzyć).


4. Budowa modułu.

Kolejnym krokiem będzie przygotowanie modułu acx dla naszego kernela z pomocą module-assistant (m-a)

Uruchamiamy m-a:

Kod: Zaznacz cały

# module-assistant
Kolejno zaznaczamy opcję SELECT [enter], na liście zaznaczamy spacją acx100 [enter], po czym dajemy opcję BUILD [enter].

M-a zbuduje za nas moduł po czym zapyta czy chcesz go zainstalować. Oczywiście odpowiesz tak.

Jeżeli m-a odpadnie przy budowie modułu zaznacz mu opcję PREPARE [enter], wówczas m-a sprawdzi czy posiada wszystkie wymagane pakiety, w razie braku któregoś z nich sam go zainstaluje lub poinformuje Cię o braku jakiegoś pakietu. W przypadku ostatniej opcji udaj się na packages.debian.org, pobierz wymagany pakiet i zainstaluj go z dpkg; kolejno powtórz proces budowania modułu.

Jeżeli wszystko poszło dobrze możemy uruchomić kartę:

Kod: Zaznacz cały

# modprobe acx
Brak reakcji to dobra reakcja..

Dla pewności:

Kod: Zaznacz cały

# lsmod | grep acx
5. Konfiguracja interfejsu.

Powoli zbliżamy się do końca...
Na tym etapie skonfigurujemy interface modyfikując pliki: /etc/network/interfaces oraz /etc/resolv.conf

Do /etc/network/interfaces proponuję dodać następujące linijki:

a) dla IP przydzielanego statycznie
allow-hotplug wlan0
auto wlan0
iface wlan0 inet static
address xxx.xxx.xxx.xxx
netmask xxx.xxx.xxx.xxx
network xxx.xxx.xxx.xxx
broadcast xxx.xxx.xxx.xxx
gateway xxx.xxx.xxx.xxx

wireless_mode managed
wireless_channel kanał
wireless_essid nazwa
wireless_rate 22M
wireless_key klucz
b) dla dhcp
allow-hotplug wlan0
auto wlan0
iface wlan0 inet dhcp

wireless_mode managed
wireless_channel kanał
wireless_essid nazwa
wireless_rate 22M
wireless_key klucz
gdzie:

adress - Twoje IP
netmask - maska podsieci
network - pierwszy adres w sieci np. 192.168.0.0
broadcast - ostatni adres w sieci np. 192.168.0.255
gateway - brama sieci
wireless_mode - tryb (w większości przypadków "managed"; więcej informacji - man iwconifg)
wireless_channel - kanał
wireless_essid - nazwa AP (opcjonalnie)
wireless_rate- prędkość połączenia (opcjonalnie)
wireless_key - klucz dla sieci zabezpieczonych (jeżeli klucz jest w ASCII przed kluczem dajemy s:wartość)

Opcjonalnie można również podać MAC adres AP:
wireless_AP

Plik /etc/resolv.conf to plik z serwerami DNS który najprawdopodobniej będziemy musieli utworzyć i którego zawartość wygląda w ten sposób:
nameserver xxx.xxx.xxx.xxx
nameserver xxx.xxx.xxx.xxx
nameserver xxx.xxx.xxx.xxx
Dla głównych serwerów DNS tp sa plik ten wyglądał będzie w ten sposób:

Kod: Zaznacz cały

nameserver 194.204.152.34
nameserver 194.204.159.1
natomiast dla net24:

Kod: Zaznacz cały

nameserver 195.114.161.61
nameserver 195.114.181.130
Jeżeli wyedytowaliśmy oba pliki możemy zrestartować sieć:

Kod: Zaznacz cały

# /etc/init.d/networking restart
Po tej operacji system powinien uruchomić nowy interfejs wlan0. W tej chwili powinniśmy mieć możliwość surfowania.

Po wydaniu polecenia iwconfig (jako root) powinny ukazać się nam informacje odnośnie nadajnika do którego jesteśmy podłączeni, szybkości połączenia, ilości przesłanych pakietów, etc.


6. Problemy.

Możliwe że po wydaniu polecenia:

Kod: Zaznacz cały

# /etc/init.d/networking restart
otrzymamy wiadomość o niemożności postawienia interfejsu wlan0, np.:
Reconfiguring network interfaces...ifup: interface lo already configured
Error for wireless request "Set Mode" (8B06) :
SET failed on device wlan0 ; No such device.
Error for wireless request "Set Frequency" (8B04) :
SET failed on device wlan0 ; No such device.
Error for wireless request "Set ESSID" (8B1A) :
SET failed on device wlan0 ; No such device.
SIOCSIFADDR: No such device
wlan0: ERROR while getting interface flags: No such device
SIOCSIFNETMASK: No such device
SIOCSIFBRDADDR: No such device
wlan0: ERROR while getting interface flags: No such device
wlan0: ERROR while getting interface flags: No such device
Failed to bring up wlan0.
done.
Najprawdopodobniej spowodowane jest to złym firmware. Pobierz i wypróbuj inne.

Możliwe również że karta uruchomi się i będzie działać, jednak pierwsza konsola będzie zasypywana błędami w stylu:
tx: err 0x20, buf 01!
tx: err 0x20, buf 02!
tx: err 0x20, buf 03!
...
To również wina firmware... (jednak dotychczas nie udało mi się znaleźć fw przy którym ten błąd się nie pojawia)

Alternatywą dla projektu acx może być instalacja sterowników windowsowych z pomocą pakietu ndiswrapper.

7. ¬ródła.

Strona główna projektu
Craig's ACX100/111 Guide for Linux

W przypadku błędów etc. proszę o wiadomość na pm lub posty w tym temacie.
zolter
Posty: 6
Rejestracja: 18 marca 2007, 18:24

Post autor: zolter »

witam. karta została wykryta, ale... no właśnie podczas startu systemu są problemy ze znalezieniem sieci. po uruchomieniu systemu karta nie moze znaleźć żadnej sieci. Pod windą jest ok. W czym może być problem?
el_carles
Junior Member
Posty: 560
Rejestracja: 02 lutego 2007, 17:32

Post autor: el_carles »

Spróbuj pod konsolą dać:

Kod: Zaznacz cały

# iwlist scan
Jeżeli nic nie wykryje, może poda jakieś informacje.

Co mówi:

Kod: Zaznacz cały

#iwconfig
Zobacz też co wypluwa dmesg:

Kod: Zaznacz cały

$ dmesg | grep acx
lub

Kod: Zaznacz cały

$ dmesg | grep wlan0
Ewentualnie co mówi /var/log/syslog.

Spróbuj przełączyć się na pierwszą konsole [ctrl+alt+f1] i popatrz czy nie jest zasypywana błędami (aby wrócic do x'ów daj [alt+f7]).

Spróbuj zmienić firmware. Zły firmware jest najczęstszą przyczyną błędów.

Zaznaczam że driver acx jest ciągle w fazie eksperymentalnej i nie musi z każdą kartą działać jak należy.
hilsim
Posty: 5
Rejestracja: 24 września 2006, 00:17

Post autor: hilsim »

Witam, mam problem z zainstalowaniem sterowników do karty D-Link DWL 520+. Robię wszystko jak opisano powyżej. Niestety przy tworzeniu modułów jądra m-a zwraca mi taki błąd
touch config.mk \
&& /usr/bin/make -C "/lib/modules/2.6.21-1-multimedia-486/build" M="/usr/src/modules/acx100" clean
make[1]: Wejście do katalogu `/usr/src/linux-headers-2.6.21-1-multimedia-486'
make[1]: Opuszczenie katalogu `/usr/src/linux-headers-2.6.21-1-multimedia-486'
dh_clean
/usr/bin/make -f debian/rules kdist_clean kdist_config binary-modules
make[1]: Wejście do katalogu `/usr/src/modules/acx100'
touch config.mk \
&& /usr/bin/make -C "/lib/modules/2.6.21-1-multimedia-486/build" M="/usr/src/modules/acx100" clean
make[2]: Wejście do katalogu `/usr/src/linux-headers-2.6.21-1-multimedia-486'
make[2]: Opuszczenie katalogu `/usr/src/linux-headers-2.6.21-1-multimedia-486'
dh_clean
dh_clean: cannot read debian/control: Nie ma takiego pliku ani katalogu

make[1]: [kdist_clean] Błąd 1 (zignorowany)
for templ in ; do \
cp $templ `echo $templ | sed -e 's/_KVERS_/2.6.21-1-multimedia-486/g'` ; \
done
for templ in `ls debian/*.modules.in` ; do \
test -e ${templ%.modules.in}.backup || cp ${templ%.modules.in} ${templ%.modules.in}.backup 2>/dev/null || true; \
sed -e 's/##KVERS##/2.6.21-1-multimedia-486/g ;s/#KVERS#/2.6.21-1-multimedia-486/g ; s/_KVERS_/2.6.21-1-multimedia-486/g ; s/##KDREV##/2.6.21-2/g ; s/#KDREV#/2.6.21-2/g ; s/_KDREV_/2.6.21-2/g ' < $templ > ${templ%.modules.in}; \
done
# Build modules
/usr/bin/make -C "/lib/modules/2.6.21-1-multimedia-486/build" M="/usr/src/modules/acx100"
make[2]: Wejście do katalogu `/usr/src/linux-headers-2.6.21-1-multimedia-486'
LD /usr/src/modules/acx100/built-in.o
CC [M] /usr/src/modules/acx100/wlan.o
/usr/src/modules/acx100/wlan.c:40:26: error: linux/config.h: Nie ma takiego pliku ani katalogu
make[3]: *** [/usr/src/modules/acx100/wlan.o] Błąd 1
make[2]: *** [_module_/usr/src/modules/acx100] Błąd 2
make[2]: Opuszczenie katalogu `/usr/src/linux-headers-2.6.21-1-multimedia-486'
make[1]: *** [binary_modules] Błąd 2
make[1]: Opuszczenie katalogu `/usr/src/modules/acx100'
make: *** [kdist_build] Błąd 2
¯eby nie było wszystkie wyżej wymienione pakiety mam zainstalowane.

[ Dodano: 2008-03-12, 15:01 ]
Problem rozwiązany zainstalowałem acx100-source z repo testing i udało się.
Zablokowany