Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[HOW-TO]BroadCom 4311 en Gentoo 64(21/09/2006)
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Spanish
View previous topic :: View next topic  
Author Message
AnFe
Tux's lil' helper
Tux's lil' helper


Joined: 28 Apr 2004
Posts: 138

PostPosted: Thu Sep 21, 2006 2:28 pm    Post subject: [HOW-TO]BroadCom 4311 en Gentoo 64(21/09/2006) Reply with quote

How-To BroadCom 4311 en Gentoo 64

Este how-to está hecho para aquellos que tenemos la tarjeta wifi que tiene esta salida de lspci:
Code:
01:00.0 Network controller: Broadcom Corporation Dell Wireless 1390 WLAN Mini-PCI Card (rev 01)

Y queremos usarla en Gentoo Linux de 64 bits. Sospecho que pueda funcionar también para la bcm4312.
Para hacerla funcionar vamos a usar los drivers que lleva el kernel de Linux a partir de la versión 2.6.17 llamados bcm43xx. Vamos a ver lo que necesitamos:
    - Por supuesto un kernel >= 2.6.17 .
    - El firmware de la tarjeta, vamos, el driver de Windows. Se llama BCMWL564.SYS . Para buscarlo podéis usar google: “BCMWL564 filetype:sys” . También podéis bajarlo de aquí: http://ubuntuforums.org/attachment.php?attachmentid=186
    - La herramienta bcm43xx-fwcutter para extraer el firmware.

Bueno, sólo necesitamos ésto para que funcione. Lo primero que tenemos que hacer es parchear el driver para que soporte esta tarjeta.
El parche es éste:
Code:
--- a/drivers/net/wireless/bcm43xx/bcm43xx.h
+++ b/drivers/net/wireless/bcm43xx/bcm43xx.h
@@ -202,6 +202,8 @@
 #define BCM43xx_COREID_USB20_HOST       0x819
 #define BCM43xx_COREID_USB20_DEV        0x81a
 #define BCM43xx_COREID_SDIO_HOST        0x81b
+#define BCM43xx_COREID_PCIE      0x820
+#define BCM43xx_COREID_CHIPCOMMON_NEW   0x900
 
 /* Core Information Registers */
 #define BCM43xx_CIR_BASE      0xf00
--- a/drivers/net/wireless/bcm43xx/bcm43xx_main.c
+++ b/drivers/net/wireless/bcm43xx/bcm43xx_main.c
@@ -130,6 +130,8 @@ MODULE_PARM_DESC(fwpostfix, "Postfix for
    { PCI_VENDOR_ID_BROADCOM, 0x4301, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 },
    /* Broadcom 4307 802.11b */
    { PCI_VENDOR_ID_BROADCOM, 0x4307, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 },
+   /* Broadcom 4312 80211a/b/g */
+   { PCI_VENDOR_ID_BROADCOM, 0x4312, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0},
    /* Broadcom 4318 802.11b/g */
    { PCI_VENDOR_ID_BROADCOM, 0x4318, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 },
    /* Broadcom 4319 802.11a/b/g */
@@ -2580,7 +2582,8 @@ static int bcm43xx_probe_cores(struct bc
    core_vendor = (sb_id_hi & 0xFFFF0000) >> 16;
 
    /* if present, chipcommon is always core 0; read the chipid from it */
-   if (core_id == BCM43xx_COREID_CHIPCOMMON) {
+   if (core_id == BCM43xx_COREID_CHIPCOMMON ||
+       core_id == BCM43xx_COREID_CHIPCOMMON_NEW) {
       chip_id_32 = bcm43xx_read32(bcm, 0);
       chip_id_16 = chip_id_32 & 0xFFFF;
       bcm->core_chipcommon.available = 1;
@@ -2614,7 +2617,8 @@ static int bcm43xx_probe_cores(struct bc
 
    /* ChipCommon with Core Rev >=4 encodes number of cores,
     * otherwise consult hardcoded table */
-   if ((core_id == BCM43xx_COREID_CHIPCOMMON) && (core_rev >= 4)) {
+   if (((core_id == BCM43xx_COREID_CHIPCOMMON) && (core_rev >= 4)) ||
+        core_id == BCM43xx_COREID_CHIPCOMMON_NEW) {
       core_count = (chip_id_32 & 0x0F000000) >> 24;
    } else {
       switch (chip_id_16) {
@@ -2686,6 +2690,7 @@ static int bcm43xx_probe_cores(struct bc
       core = NULL;
       switch (core_id) {
       case BCM43xx_COREID_PCI:
+      case BCM43xx_COREID_PCIE:
          core = &bcm->core_pci;
          if (core->available) {
             printk(KERN_WARNING PFX "Multiple PCI cores found.\n");
@@ -2724,6 +2729,7 @@ static int bcm43xx_probe_cores(struct bc
          case 6:
          case 7:
          case 9:
+         case 10:
             break;
          default:
             printk(KERN_ERR PFX "Error: Unsupported 80211 core revision %u\n",
@@ -3002,7 +3008,7 @@ static int bcm43xx_setup_backplane_pci_c
    if (err)
       goto out;
 
-   if (bcm->core_pci.rev < 6) {
+   if (bcm->core_pci.rev < 6 && bcm->core_pci.id != BCM43xx_COREID_PCIE) {
       value = bcm43xx_read32(bcm, BCM43xx_CIR_SBINTVEC);
       value |= (1 << backplane_flag_nr);
       bcm43xx_write32(bcm, BCM43xx_CIR_SBINTVEC, value);
@@ -3024,7 +3030,7 @@ static int bcm43xx_setup_backplane_pci_c
    value |= BCM43xx_SBTOPCI2_PREFETCH | BCM43xx_SBTOPCI2_BURST;
    bcm43xx_write32(bcm, BCM43xx_PCICORE_SBTOPCI2, value);
 
-   if (bcm->core_pci.rev < 5) {
+   if (bcm->core_pci.rev < 5 && bcm->core_pci.id != BCM43xx_COREID_PCIE) {
       value = bcm43xx_read32(bcm, BCM43xx_CIR_SBIMCONFIGLOW);
       value |= (2 << BCM43xx_SBIMCONFIGLOW_SERVICE_TOUT_SHIFT)
           & BCM43xx_SBIMCONFIGLOW_SERVICE_TOUT_MASK;
@@ -3351,7 +3357,7 @@ static int bcm43xx_read_phyinfo(struct b
       bcm->ieee->freq_band = IEEE80211_24GHZ_BAND;
       break;
    case BCM43xx_PHYTYPE_G:
-      if (phy_rev > 7)
+      if (phy_rev > 8)
          phy_rev_ok = 0;
       bcm->ieee->modulation = IEEE80211_OFDM_MODULATION |
                IEEE80211_CCK_MODULATION;

Lo he sacado de aquí: http://www.kernel.org/git/?p=linux/kernel/git/bcollins/ubuntu-dapper.git;a=commitdiff_plain;h=1373a8487e911b5ee204f4422ddea00929c8a4cc;hp=04eadace1d95e9bcd21ace34cf1a38314f6b0052
Por lo que sé, el parche añade el soporte para la bcm4312, pero añadiendo al fichero /usr/src/linux/drivers/net/wireless/bcm43xx/bcm43xx_main.c estas dos líneas:
Code:
/* Broadcom 4311 802.11a/b/g */
        { PCI_VENDOR_ID_BROADCOM, 0x4311, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 },

En la sección de PCI ID (Línea 133) tendremos soporte también para nuestra bcm4311.
Luego tenemos que compilar el kernel con estas opciones:
Code:
Networking -->
     <M>   Generic IEEE 802.11 Networking Stack
     [*]     Enable full debugging output
     <M>     IEEE 802.11 WEP encryption (802.1x)
     <M>     IEEE 802.11i CCMP support
     <M>     IEEE 802.11i TKIP encryption
     <M>     Software MAC add-on to the IEEE 802.11 networking stack
     [*]       Enable full debugging output

Device Drivers --> Network device support --> Wireless LAN drivers (non-hamradio) & Wireless Extensions
     <M>   Broadcom BCM43xx wireless support
     [*]     Broadcom BCM43xx debugging (RECOMMENDED)

Cuando termine, lo agregamos a nuestro grub.conf y reiniciamos.
Para instalar bcm43xx-fwcutter tenemos primero que añadir una línea a nuestro package.keywords con
Code:
# echo “net-wireless/bcm43xx-fwcutter ~amd64” >> /etc/portage/package.keywords

Y lo instalamos:
Code:
# emerge bcm43xx-fwcutter

Ahora tenemos que crear el directorio /lib/firmware , si no existe aún. Y el firmware va a ir allí:
Code:
# bcm43xx-fwcutter –w /lib/firmware BCMWL564.SYS

Tenéis que hacerlo en el directorio donde tengáis el BCMWL564.SYS o si no poned la ruta completa. La opción –w sirve para que extraiga el firmware en la carpeta especificada.
Ya sólo queda cargar el módulo bcm43xx. Si ya estaba cargado lo quitamos y volvemos a cargarlo:
Code:
# rmmod bcm43xx && modprobe bcm43xx

Y ya iniciamos la red:
Code:
# ifconfig eth1 up

Ya está, todo listo. A disfrutar de vuestra wifi.
Back to top
View user's profile Send private message
darkevil
Tux's lil' helper
Tux's lil' helper


Joined: 02 May 2006
Posts: 105
Location: mv "en la capital Malacitana" "Marbella"

PostPosted: Tue Sep 26, 2006 7:34 pm    Post subject: Reply with quote

hola, he intentado configurar mi tarjeta, es la broadcom 4319.

Al intentar hacer bcm43xx-fwcutter -w /lib/firmware/ BCMWL564.SYS, me da un fallo

Code:

bcm43xx-fwcutter can cut the firmware out of BCMWL564.SYS

  filename :  bcmwl564.sys
  version  :  3.100.64.10
  MD5      :  b8d76da338ecf2c650f5f7ca226ccf89

extracting bcm43xx_microcode2.fw ...
extracting bcm43xx_microcode4.fw ...
extracting bcm43xx_microcode5.fw ...
*****: Sorry, it's not posible to extract "bcm43xx_microcode11.fw".
*****: Extracting firmware from an old driver is bad. Choose a more recent one.
*****: Luckily bcm43xx driver doesn't include microcode11 uploads at the moment.
*****: But this can be added in the future...
extracting bcm43xx_pcm4.fw ...
extracting bcm43xx_pcm5.fw ...
extracting bcm43xx_initval01.fw ...
extracting bcm43xx_initval02.fw ...
extracting bcm43xx_initval03.fw ...
extracting bcm43xx_initval04.fw ...
extracting bcm43xx_initval05.fw ...
extracting bcm43xx_initval06.fw ...
extracting bcm43xx_initval07.fw ...
extracting bcm43xx_initval08.fw ...
extracting bcm43xx_initval09.fw ...
extracting bcm43xx_initval10.fw ...

y no consigo configurarla. He visto la que en el archivo bcm43xx_main.c no hace referencia a mi tarjeta tampoco, pero el parche para la mia no sirve. He buscado en www.kernel.org pero no encuentro nada al respecto.

Alguien tiene idea de como configurar esta tarjeta para usar el modulo bcm43xx?
EDITADO: haciendo dmesg, tan solo me pone: bcm43xx driver
Back to top
View user's profile Send private message
darkevil
Tux's lil' helper
Tux's lil' helper


Joined: 02 May 2006
Posts: 105
Location: mv "en la capital Malacitana" "Marbella"

PostPosted: Wed Sep 27, 2006 2:03 am    Post subject: Reply with quote

Medio solucionado.
Encontre un partche, pero me daba un fallo cuando lo aplicaba

http://dufo.tugraz.at/~prokop/grml-kernel/2.6.17-patches/4005_bcm4319.patch

Tengo el kernel 2.6.17 y por casualidad me dio por mirar el archivo correspondiente al kernel 2.6.18, y BINGO, ya viene el soporte para la 4319..... asi ke make al canto.

Ahora mismo ya estoy conectado usando el modulo bcm43xx, pero una cosa rara ocurre... esto sale en dmesg cuando cargo el modulo:
Code:

bcm43xx: Chip ID 0x4318, rev 0x2
bcm43xx: Number of cores: 4
bcm43xx: Core 0: ID 0x800, rev 0xd, vendor 0x4243, enabled
bcm43xx: Core 1: ID 0x812, rev 0x9, vendor 0x4243, enabled
bcm43xx: Core 2: ID 0x804, rev 0xc, vendor 0x4243, enabled
bcm43xx: Core 3: ID 0x80d, rev 0x7, vendor 0x4243, enabled
bcm43xx: PHY connected
bcm43xx: Detected PHY: Version: 3, Type 2, Revision 7
bcm43xx: Detected Radio: ID: 8205017f (Manuf: 17f Ver: 2050 Rev: 8)
bcm43xx: Radio turned off
bcm43xx: Radio turned off
bcm43xx: PHY connected
bcm43xx: Radio turned on
bcm43xx: ASSERTION FAILED (radio_attenuation < 10) at: drivers/net/wireless/bcm43xx/bcm43xx_phy.c:1490:bcm43xx_find_lopair()
bcm43xx: ASSERTION FAILED (radio_attenuation < 10) at: drivers/net/wireless/bcm43xx/bcm43xx_phy.c:1490:bcm43xx_find_lopair()
bcm43xx: ASSERTION FAILED (radio_attenuation < 10) at: drivers/net/wireless/bcm43xx/bcm43xx_phy.c:1490:bcm43xx_find_lopair()
bcm43xx: Chip initialized
bcm43xx: DMA initialized
bcm43xx: 80211 cores initialized
bcm43xx: Keys cleared
bcm43xx: ASSERTION FAILED (radio_attenuation < 10) at: drivers/net/wireless/bcm43xx/bcm43xx_phy.c:1490:bcm43xx_find_lopair()
SoftMAC: Associate: Scanning for networks first.
SoftMAC: Associate: failed to initiate scan. Is device up?
SoftMAC: empty ratesinfo?
SoftMAC: empty ratesinfo?
SoftMAC: Associate: Scanning for networks first.
SoftMAC: Start scanning with channel: 1
SoftMAC: Scanning 14 channels
bcm43xx: set security called, .active_key = 0, .level = 1, .enabled = 1, .encrypt = 1
bcm43xx: set security called, .level = 1, .enabled = 1, .encrypt = 1, .auth_mode = 0
SoftMAC: Canceling existing associate request!
SoftMAC: Associate: Scanning for networks first.
SoftMAC: Associate: failed to initiate scan. Is device up?
SoftMAC: Scanning finished
SoftMAC: Queueing Authentication Request to XX:XX:XX:XX:XX:XX
SoftMAC: Cannot associate without being authenticated, requested authentication
SoftMAC: Already requested authentication, waiting...
SoftMAC: Already requested authentication, waiting...
SoftMAC: Sent Authentication Request to XX:XX:XX:XX:XX:XX
SoftMAC: Open Authentication completed with XX:XX:XX:XX:XX:XX
SoftMAC: sent association request!
SoftMAC: associated!


sale un fallo por ai arriba, pero me asocia al AP. El caso es que, por un lao me detecta la tarjeta como una 4318 y por otro, que como se me ocurre hacer
Code:
/etc/init.d/net.eth0 restart

no consigue asociar el AP, falla,
Code:

bcm43xx: Radio turned off
bcm43xx: DMA 0x0200 (RX) max used slots: 1/64
bcm43xx: DMA 0x0260 (TX) max used slots: 0/512
bcm43xx: DMA 0x0240 (TX) max used slots: 0/512
bcm43xx: DMA 0x0220 (TX) max used slots: 32/512
bcm43xx: DMA 0x0200 (TX) max used slots: 0/512
SoftMAC: Associate: Scanning for networks first.
SoftMAC: Associate: failed to initiate scan. Is device up?
bcm43xx: Radio turned on
bcm43xx: Chip initialized
bcm43xx: DMA initialized
bcm43xx: 80211 cores initialized
bcm43xx: Keys cleared
SoftMAC: Queueing Authentication Request to XX:XX:XX:XX:XX:XX                             <<<<<------- OTRO AP
SoftMAC: Cannot associate without being authenticated, requested authentication
SoftMAC: Sent Authentication Request to XX:XX:XX:XX:XX:XX                                    <<<<<------- OTRO AP
SoftMAC: Already requested authentication, waiting...
bcm43xx: set security called, .active_key = 0, .level = 1, .enabled = 1, .encrypt = 1
bcm43xx: set security called, .level = 1, .enabled = 1, .encrypt = 1, .auth_mode = 0
SoftMAC: Canceling existing associate request!
SoftMAC: Associate: Scanning for networks first.
SoftMAC: Start scanning with channel: 1
SoftMAC: Scanning 14 channels
SoftMAC: Scanning finished
SoftMAC: Queueing Authentication Request to XX:XX:XX:XX:XX:XX                <<<<<<<<<---- mi AP
SoftMAC: Cannot associate without being authenticated, requested authentication
SoftMAC: Already requested authentication, waiting...
SoftMAC: Sent Authentication Request to XX:XX:XX:XX:XX:XX                        <<<<<<< ------ mi AP
SoftMAC: Already requested authentication, waiting...
bcm43xx: Radio turned off
bcm43xx: Radio turned off
bcm43xx: DMA 0x0200 (RX) max used slots: 0/64
bcm43xx: DMA 0x0260 (TX) max used slots: 0/512
bcm43xx: DMA 0x0240 (TX) max used slots: 0/512
bcm43xx: DMA 0x0220 (TX) max used slots: 2/512
bcm43xx: DMA 0x0200 (TX) max used slots: 0/512


Tan solo consigue conectarse a mi AP haciendo modprobe bcm43xx.
Puede ser esto por el fallo que me daba cuando hice el bcm43xx-fcutter?
Back to top
View user's profile Send private message
AnFe
Tux's lil' helper
Tux's lil' helper


Joined: 28 Apr 2004
Posts: 138

PostPosted: Wed Sep 27, 2006 11:47 am    Post subject: Reply with quote

Pues a mi ma pasa exactamente lo mismo. Y la verdad es que creo que puede ser por le firmware... Probe el driver en windows 64bits y no me funcionaba, sin embargo, me bajé uno que si me iba pero como era la version 4.10 no funcionaba con el fwcutter.

Así que si consigues solucionarlo avisame :wink:

Un saludo!
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Spanish All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum