# [WiFi] Ralink 2860 (Reloaded)

## versus8

Hello world !

J'ai un petit souci qui est devenu très vite bien ennuyeux.

Etant donné que les sources du noyau Gentoo sont misent à jour de façon régulière, j'ai pris l'habitude de compiler le driver de mon chipset WiFi.

Mais sur le dernier noyau officiel, j'ai beau essayé plusieurs options de configuration rien n'y fait, j'ai toujours une erreur de compilation sur le pilote de mon chipset WiFi concernant ioctl. J'ai donc téléchargé les sources à jour sur le site du constructeur, mais cela ne change rien.

Pouvez-vous me conseiller sur les options à prendre en considération pour la compilation du noyau, et, je ne sais pas si c'est possible mais y a t-il un moyen de récupérer les anciens noyaux gentoo-sources ?

Merci encore pour votre aide (je sais, en ce moment j'ai pas mal de problèmes :p )Last edited by versus8 on Tue Dec 07, 2010 6:32 pm; edited 2 times in total

----------

## ghoti

 *versus8 wrote:*   

> j'ai toujours une erreur de compilation sur le pilote de mon chipset WiFi concernant ioctl. 

 

Le message d'erreur est à ce point confidentiel, que tu n'oses pas nous le balancer ?  :Wink: 

Au fait, quelle est l'option qui pose problème ?  CONFIG_RT2860, j'imagine ?

----------

## versus8

Nan, rien de confidentiel  :Wink: 

```

make -C tools

make[1]: entrant dans le répertoire « /root/2010_07_16_RT2860_Linux_STA_v2.4.0.0/tools »

gcc -g bin2h.c -o bin2h

make[1]: quittant le répertoire « /root/2010_07_16_RT2860_Linux_STA_v2.4.0.0/tools »

/root/2010_07_16_RT2860_Linux_STA_v2.4.0.0/tools/bin2h

cp -f os/linux/Makefile.6 /root/2010_07_16_RT2860_Linux_STA_v2.4.0.0/os/linux/Makefile

make -C /lib/modules/2.6.34-gentoo-r6/build SUBDIRS=/root/2010_07_16_RT2860_Linux_STA_v2.4.0.0/os/linux modules

make[1]: entrant dans le répertoire « /usr/src/linux-2.6.34-gentoo-r6 »

  CC [M]  /root/2010_07_16_RT2860_Linux_STA_v2.4.0.0/os/linux/../../os/linux/sta_ioctl.o

/root/2010_07_16_RT2860_Linux_STA_v2.4.0.0/os/linux/../../os/linux/sta_ioctl.c: In function ‘rt_ioctl_siwencode’:

/root/2010_07_16_RT2860_Linux_STA_v2.4.0.0/os/linux/../../os/linux/sta_ioctl.c:1473: attention : suggest parentheses around operand of ‘!’ or change ‘&’ to ‘&&’ or ‘!’ to ‘~’

/root/2010_07_16_RT2860_Linux_STA_v2.4.0.0/os/linux/../../os/linux/sta_ioctl.c: Hors de toute fonction :

/root/2010_07_16_RT2860_Linux_STA_v2.4.0.0/os/linux/../../os/linux/sta_ioctl.c:2990: erreur: unknown field ‘private’ specified in initializer

/root/2010_07_16_RT2860_Linux_STA_v2.4.0.0/os/linux/../../os/linux/sta_ioctl.c:2990: attention : initialization from incompatible pointer type

/root/2010_07_16_RT2860_Linux_STA_v2.4.0.0/os/linux/../../os/linux/sta_ioctl.c:2991: erreur: unknown field ‘num_private’ specified in initializer

/root/2010_07_16_RT2860_Linux_STA_v2.4.0.0/os/linux/../../os/linux/sta_ioctl.c:2991: attention : éléments en excès dans l'initialisation de la structure

/root/2010_07_16_RT2860_Linux_STA_v2.4.0.0/os/linux/../../os/linux/sta_ioctl.c:2991: attention : (near initialization for ‘rt28xx_iw_handler_def’)

/root/2010_07_16_RT2860_Linux_STA_v2.4.0.0/os/linux/../../os/linux/sta_ioctl.c:2992: erreur: unknown field ‘private_args’ specified in initializer

/root/2010_07_16_RT2860_Linux_STA_v2.4.0.0/os/linux/../../os/linux/sta_ioctl.c:2992: attention : éléments en excès dans l'initialisation de la structure

/root/2010_07_16_RT2860_Linux_STA_v2.4.0.0/os/linux/../../os/linux/sta_ioctl.c:2992: attention : (near initialization for ‘rt28xx_iw_handler_def’)

/root/2010_07_16_RT2860_Linux_STA_v2.4.0.0/os/linux/../../os/linux/sta_ioctl.c:2993: erreur: unknown field ‘num_private_args’ specified in initializer

/root/2010_07_16_RT2860_Linux_STA_v2.4.0.0/os/linux/../../os/linux/sta_ioctl.c:2993: attention : éléments en excès dans l'initialisation de la structure

/root/2010_07_16_RT2860_Linux_STA_v2.4.0.0/os/linux/../../os/linux/sta_ioctl.c:2993: attention : (near initialization for ‘rt28xx_iw_handler_def’)

make[2]: *** [/root/2010_07_16_RT2860_Linux_STA_v2.4.0.0/os/linux/../../os/linux/sta_ioctl.o] Erreur 1

make[1]: *** [_module_/root/2010_07_16_RT2860_Linux_STA_v2.4.0.0/os/linux] Erreur 2

make[1]: quittant le répertoire « /usr/src/linux-2.6.34-gentoo-r6 »

make: *** [LINUX] Erreur 2

```

Les options de configuration où je me casse les dents sont les suivantes :

```

[ ] Wireless --->

The Wireless settings tree is as follows:

--- Wireless

< > Improved wireless configuration API

[ ] cfg80211 regulatory debugging

[ ] cfg80211 DebugFS entries

[ ] Old wireless static regulatory definitions

-*- Wireless extensions

[ ] Wireless extensions sysfs files

< > Common routines for IEEE802.11 drivers

[ ] lib80211 debugging messages

< > Generic IEEE 802.11 Networking Stack (mac80211)

[ ] enable powersave by default (NEW)

Rate control algorithm selection --->

Default rate control algorithm (Minstrel) --->

[ ] Enable LED triggers

[ ] Export mac80211 internals in DebugFS

[ ] Select mac80211 debugging features --->

--- Select mac80211 debugging features

[ ] Enable packet alignment debugging

[ ] Do not inline TX/RX handlers

[ ] Verbose debugging output

[ ] Verbose HT debugging

[ ] Verbose TKIP debugging

[ ] Verbose IBSS debugging

[ ] Verbose powersave mode debugging

[ ] Extra statistics for TX/RX debugging

```

Bon, bien sur les options de débogage verbeux ne sont vraiment utiles dans le cas où cela fonctionne mal, mais vu que moi cela ne fonctionne plus du tout...

```
< > RF switch subsystem support --->
```

J'ai activé cette option, mais je pense qu'elle est inutile pour mon chipset.

Et pour ceux que cela intéresse, j'ai trouvé un super site permettant de retrouver les anciens noyaux Gentoo, et plein d'infos sur les options du noyau.

Je n'ai pas encore saisi tout le principe de ce site, mais je suppose que seed sous-entend quelque chose  :Wink: 

----------

## ghoti

 *versus8 wrote:*   

> make[1]: entrant dans le répertoire «/root/2010_07_16_RT2860_Linux_STA_v2.4.0.0/tools»

 

Si je comprends bien, tu as été chercher un driver sur le site de ralink ?

C'est aussi ce que je faisais jusqu'il y a un an pour mon rt2870 !

Depuis lors, le support a été intégré dans le noyau de sorte que le driver "tiers" n'est plus nécessaire !  :Smile: 

Je constate que c'est la même chose pour ton chip (la fameuse option  CONFIG_RT2860 dont je parlais !  :Wink:  )

Pas besoin non plus d'aller chercher des vieux noyaux ...

Il faut activer Device Drivers ==> Staging drivers et choisir  "Ralink 2860/3090 wireless support (RT2860)" :

```
 .config - Linux Kernel v2.6.35-gentoo-r5 Configuration                                      

 ─────────────────────────────────────────────────────────────────────────────────────────── 

  ┌─────────────────────────────────── Search Results ───────────────────────────────────┐   

  │ Symbol: RT2860 [=n]                                                                  │   

  │ Prompt: Ralink 2860/3090 wireless support                                            │   

  │   Defined at drivers/staging/rt2860/Kconfig:1                                        │   

  │   Depends on: STAGING [=y] && !STAGING_EXCLUDE_BUILD [=n] && PCI [=y] && X86 [=y] && │   

  │   Location:                                                                          │   

  │     -> Device Drivers                                                                │   

  │       -> Staging drivers (STAGING [=y])                                              │   

  │         -> Exclude Staging drivers from being built (STAGING_EXCLUDE_BUILD [=n])     │   

  │   Selects: WIRELESS_EXT [=y] && WEXT_PRIV [=y] && CRC_CCITT [=m] && FW_LOADER [=y]   │   
```

Tu peux éventuellement aussi cocher l'option "Wireless extensions sysfs files" dans la parte Wireless de "Networking support"

En principe, tu n'as besoin de rien d'autre ...

----------

## versus8

 *ghoti wrote:*   

> 
> 
> Il faut activer Device Drivers ==> Staging drivers et choisir  "Ralink 2860/3090 wireless support (RT2860)"

 

En faisant une recherche ("/") dans menuconfig je trouve bien le mot clef RT2860, mais je ne retrouve aucune autres options dans Staging drivers.

Faut-il activer d'autres options dépendantes ou retirer celles qui peuvent-être incompatibles ?

----------

## versus8

Ah si j'ai trouvé :p

Fallait dé-commenter la 1ère ligne ^^

Mais en ce qui concerne les drivers RT28xx, je suppose qu'il ne faut pas les activer ?

----------

## ghoti

 *versus8 wrote:*   

> Mais en ce qui concerne les drivers RT28xx, je suppose qu'il ne faut pas les activer ?

 

Si tu parles des pilotes récupérés chez Ralink et donc étrangers au noyau, la réponse est clairement NON !

Tu peux les supprimer puisque les sources du noyau fournissent maintenant leur propre driver rt2860.ko !

----------

## versus8

Non je parlais des drivers dans la partie WLAN du noyau qui apparaissent en activant l'option MAC stack.

----------

## ghoti

Normalement, tu n'as besoin de rien d'autre que les drivers "Staging"

----------

## versus8

Salut !

J'ai recompilé le noyau avec les paramètres pré-cités, et un lsmod me fait bien apparaître rt2860sta.

Cependant ce module n'est pas utilisé (mais utilise crc_ccitt) et n'apparaît pas dans les interfaces réseaux !

```
# ls /lib/modules/`uname -r`/kernel/drivers/net

8139too.ko  phy  r8169.ko
```

J'ai bien commenter l'ancien module (dans "/etc/modules.autoload.d/kernel-2.6"), mais il semble être appelé le script type net.ra0. Je crois savoir qu'il faut en régénérer un autre, mais je ne me souviens plus de la commande.

Si quelqu'un peut m'aider, ce serait vraiment cool  :Wink: Last edited by versus8 on Tue Dec 07, 2010 7:29 pm; edited 3 times in total

----------

## versus8

J'ai effacé le script net.ra0 puis afin de déclarer la nouvelle interface :

```
cd /etc/init.d

ln -s net.lo net.ra0
```

Mais ... :

```
/etc/init.d/net.ra0 start

 * Caching service dependencies ...                                       [ ok ]

 * Service net.ra0 starting

 network interface ra0 does not exist

 Please verify hardware or kernel module (driver)                         [ !! ]

 * ERROR:  net.ra0 failed to start
```

Hmmm ...

----------

## versus8

```
iwconfig 

lo        no wireless extensions.

eth0      no wireless extensions.

wlan0     Ralink STA  ESSID:""  Nickname:""

          Mode:Auto  Frequency=2.412 GHz  

          Link Quality=10/100  Signal level:0 dBm  Noise level:-143 dBm

          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0

          Tx excessive retries:0  Invalid misc:0   Missed beacon:0
```

L'erreur était située entre la chaise et l'écran :p

Mais je n'ai pas tout à fait terminé :

```
/etc/init.d/net.wlan0 start

 * Caching service dependencies ...                                       [ ok ]

 * Service net.wlan0 starting

SIOCSIFFLAGS: Operation not permitted

SIOCSIFFLAGS: Operation not permitted

SIOCSIFFLAGS: Operation not permitted

Could not set interface wlan0 flags: Operation not permitted

Failed to initialize driver interface                                     [ !! ]

 * ERROR:  net.wlan0 failed to start
```

----------

## versus8

Bon, je n'ai toujours pas trouvé de solution, je devrais attendre un peu, peut-être que Ralink mettra à jour son code source...

----------

## YetiBarBar

Ca ressemble à un firmware manquant ton erreur...

Au hasard, les firmware ralink sont dans le paquet "linux-firmware", tente:

```
emerge linux-firmware
```

----------

