HowTo:705es:LANWLAN

De Luispa

Configuración LAN y WLAN

LAN

La configuración de la tarjeta Fast Ethernet está descrita en el artículo Instalación de Gentoo GNU/Linux en Compaq Mini 705ES.



iPhone Tethering (Con kernel >=2.6.34)

  • Instalo el driver ipheth que viene con el kernel 2.6.34
Device Drivers-->Network device support-->USB Network Adapters--> <M> Apple iPhone USB Ethernet driver    
El driver se llama: ipheth
  • Rearranco el equipo
  • Instalo la librería libimobiledevice
# emerge -v libimobiledevice
  • Descargo e instalo el programa user-space que permitirá emparejar el iPhone con el linux.
# cd /root
# git clone git://github.com/dgiagio/ipheth.git
# cd ipheth/ipheth-pair
# make
# make install
install -m 0755 ipheth-pair /lib/udev/
install -m 0644 90-iphone-tether.rules /etc/udev/rules.d
/sbin/udevadm control --reload-rules
  • A partir de aquí basta con conectar el iPhone con el cable USB, la nueva regla de UDEV detectará el iPhone y cargará el módulo del kernel ipheth. La carga manual (modprobe ipheth) no debería ser necesaria.
  • Automáticamente verás una interfaz nueva, en mi caso "wwan0", que debería recibir una dirección IP vía dhcp desde el iPhone. Nota: debes tener un cliente dhcp o el networkmanager instalado. En mi caso tengo el networkmanager (/etc/init.d/NetworkManager y "nm-applet --sm-disable" al inicio).



WLAN

  • Conseguir que me funcionase la Broadcom BCM4312 no ha sido tarea fácil. Primero he intentado usar los drivers del kernel para descubrir que no funcionan todavía y que previsiblemente se podrán usar estos drivers con el kernel 2.6.32 cuando salga. Sí que he sido capaz de hacerla funcionar con los drivers ofrecidos por Broadcom.


Broadcom BCM4312 con drivers del Kernel: NO FUNCIONA <= 2.6.31

  • Broadcom BCM4312 802.11b/g (rev 01). El Kernel de linux soporta esta familia de tarjetas, dependiendo del modelo y revisión exáctos. Todas tienen la peculiardad de necesitar firmware, por lo que será necesario usar un programa llamado b43-fwcutter para ponerla operativa.
  • Según esta página el soporte de la que incluye el Compaq Mini E705ES está "in progress" y además dice "bcm4312 with a/b/g (only the 2.4GHz part and no low-power LP-PHY devices)"
:
14e4:4315  in progress BCM4312 802.11b/g - low power  b43 
:
  • Encontrarás el ID de tu tarjeta con el siguiente comando
# lspci -vnn | grep -i 14e4 
01:00.0 Network controller [0280]: Broadcom Corporation BCM4312 802.11b/g [14e4:4315] (rev 01)


  • Intenté activarla con el System Rescue CD sin éxito.
  • Tras realizar toda la instalación y arrancar el sistema, ahora es reconocida y se carga el driver.
$ lspci -vnn
:
01:00.0 Network controller [0280]: Broadcom Corporation BCM4312 802.11b/g [14e4:4315] (rev 01)
        Subsystem: Hewlett-Packard Company Device [103c:1508]
:
Kernel driver in use: b43-pci-bridge 
Kernel modules: ssb
  • Pero por desgracia tengo el "UNSUPPORTED PHY"
# dmesg | grep -i b43
[    4.375281] b43-pci-bridge 0000:01:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
[    4.375308] b43-pci-bridge 0000:01:00.0: setting latency timer to 64
[    6.113918] b43-phy0: Broadcom 4312 WLAN found (core revision 15)
[    6.129762] b43-phy0 ERROR: FOUND UNSUPPORTED PHY (Analog 6, Type 5, Revision 1)
[    6.129816] b43: probe of ssb0:0 failed with error -95
  • Según parece se soportará con el kernel 2.6.32.
# BCM4312 802.11b/g, AKA BCM 4310 USB - This device has an LP PHY. Work on this device has begun, 
and the device now works in wireless-testing (and will be supported in 2.6.32), but performance 
is sub-par, due to the lack of calibration support. Note: This card uses the PCI-E bus, despite its name.

Nota: Tendré que esperar al kernel 2.6.32 y seguir esta guía para intentarlo


Broadcom BCM4312 con broadcom-mta: FUNCIONA

A través de este hilo y este otro comentan que con el paquete "net-wireless/broadcom-sta" (Broadcom's IEEE 802.11a/b/g/n hybrid Linux device driver) parece que es posible hacer que la tarjeta "Broadcom BCM4312 802.11b/g (rev 01)" funcione.

  • Preparar el kernel (recuerdo que estoy con 2.6.30-gentoo-r6) para wireless y no seleccionar el driver b43 (famoso).
[*] Networking support  --->
   [*] Wireless  --->
      -*-   Improved wireless configuration API
      [ ]     cfg80211 regulatory debugging    
      [*]   Old wireless static regulatory definition
      -*-   Wireless extensions
      [*]       Wireless extensions sysfs files
      <*> Common routines for IEEE802.11 drivers
      [*] lib80211 debugging messages
      <*> Generic IEEE 802.11 Networking Stack (mac80211)          <===FIXME: Probar a quitarlo
            Rate control algorithm selection  --->  
      [ ]   Enable mac80211 mesh networking (pre-802.11s) support
      [*]   Enable LED triggers
      [ ]   Export mac80211 internals in DebugFS       
      [*]   Select mac80211 debugging features  --->

 [*] Device Drivers  --->
   [*] Network device support  ---> 
       Wireless LAN  --->  
        [*] Wireless LAN (IEEE 802.11) 
        [ ] TODOS DESMARCADOS (No selecciono ninguno)


  • Recompilo e instalo el kernel
- Compilo el kernel
# cd /usr/src/linux
# make 

- Elimino los módulos antiguos (así elimino el ssb, b43, ... por si acaso)
# rm -fr /lib/modules/2.6.30-gentoo-r6

- Instalo los módulos
# make modules_install

- Copio el kernel a /boot
# cp arch/x86/boot/bzImage /boot/bzImage-2.6.30-gentoo-r6
# cp System.map /boot/System.map-2.6.30-gentoo-r6


  • Instalar broadcom-sta (siempre después de compilar el kernel).
El último ebuild está desactualizado, así que creo un overlay para usar un nuevo ebuild: broadcom-sta-5.10.91.9.3-r6.ebuild
# mkdir -p /usr/local/portage/net-wireless/broadcom-sta
# echo "PORTDIR_OVERLAY=/usr/local/portage" >> /etc/make.conf
# cd /usr/local/portage/net-wireless/broadcom-sta
!! Creo el fichero broadcom-sta-5.10.91.9.3-r6.ebuild
# cp /usr/portage/net-wireless/broadcom-sta/files/* files/
# ebuild broadcom-sta-5.10.91.9.3-r6.ebuild digest
  • Modifico el Keywords
Fichero: /etc/portage/package.keywords
# Para broadcom
=net-wireless/broadcom-sta-5.10.91.9.3-r6                ~x86
# emerge -v broadcom-sta
>>> /etc/modprobe.d/wl.conf
>>> /lib/modules/2.6.30-gentoo-r6/net/wireless/wl.ko
  • Instalo las herramientas para wireless
# emerge -v net-wireless/wireless-tools
  sbin/iwevent
  sbin/iwgetid
  sbin/ifrename
  sbin/iwspy
  sbin/iwconfig
  sbin/iwpriv
  sbin/iwlist
  • Rearranco el equipo
# reboot

Activar el driver

  • Al hacer boot compruebo que el driver ha cargado.
# lsmod
Module                  Size  Used by
sky2                   39100  0 
i2c_i801                7600  0 
wl                   1260204  0             <==== !!!
# iwconfig 
:
eth1      IEEE 802.11bg  ESSID:""  Nickname:""
          Mode:Managed  Frequency:2.412 GHz  Access Point: Not-Associated   
          Bit Rate:54 Mb/s   Tx-Power:32 dBm   
          Retry min limit:7   RTS thr:off   Fragment thr:off
          Power Managementmode:All packets received
          Link Quality=5/5  Signal level=0 dBm  Noise level=0 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0
:
  • Notar que se le ha asignado "eth1" en vez de "wlan0", algo que parece normal al no ser un driver del propio kernel. Se crea automáticamente una entrada en el fichero udev:
Fichero: /etc/udev/rules.d/70-persistent-net.rules
 # PCI device 0x14e4:0x4315 (wl)
 SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:24:2b:84:fa:d3", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"
                                                                                                                           ^^^^^
  • Modifico USE
Fichero: /etc/portage/package.use
net-wireless/wpa_supplicant   readline ssl dbus -debug eap-sim gnutls -madwifi -ps3 -qt3 qt4 wps
  • Instalo wpa_supplicant
# emerge -v wpa_supplicant


  • Modifico el fichero net
Fichero: /etc/conf.d/net
modules=( "wpa_supplicant" )
modules_eth1=( "wpa_supplicant" )
wpa_supplicant_eth1="-Dwext" 

# Configuración para WiFi
config_eth1=( "192.168.1.20/24 brd 192.168.1.255" )
routes_eth1=( "default via 192.168.1.1" )
dns_servers_eth1=( "192.168.1.1" )
dns_search_domains_eth1="parchis.org"
  • Creo el link
# cd /etc/init.d
# ln -s net.lo net.eth1

Scan

  • El siguiente paso es opcional, pero muy útil para comprobar que la cosa va bien...
Código: # iwlist wlan0 scanning
wlan0     Scan completed :
          Cell 01 - Address: 00:1E:52:79:C6:0B
                    ESSID:"luispa"
                    Mode:Managed
                    Frequency:2.412 GHz (Channel 1)
                    Quality:5/5  Signal level:-35 dBm  Noise level:-79 dBm
                    IE: IEEE 802.11i/WPA2 Version 1
                        Group Cipher : TKIP
                        Pairwise Ciphers (2) : CCMP TKIP
                        Authentication Suites (1) : PSK
                    IE: WPA Version 1
                        Group Cipher : TKIP
                        Pairwise Ciphers (1) : TKIP
                        Authentication Suites (1) : PSK
                    Encryption key:on
                    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 6 Mb/s; 9 Mb/s
                              11 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s; 36 Mb/s
                              48 Mb/s; 54 Mb/s
          Cell 02 - Address: 00:1C:B3:AA:F5:45
                    ESSID:"luispa"
                    Mode:Managed
                    Frequency:2.432 GHz (Channel 5)
                    Quality:1/5  Signal level:-80 dBm  Noise level:-90 dBm
                    IE: IEEE 802.11i/WPA2 Version 1
                        Group Cipher : TKIP
                        Pairwise Ciphers (2) : CCMP TKIP
                        Authentication Suites (1) : PSK
                    IE: WPA Version 1
                        Group Cipher : TKIP
                        Pairwise Ciphers (1) : TKIP
                        Authentication Suites (1) : PSK
                    Encryption key:on
                    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s
                              9 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s; 36 Mb/s
                              48 Mb/s; 54 Mb/s
          Cell 03 - Address: 00:24:36:9A:13:9F
                    ESSID:"luispa"
                    Mode:Managed
                    Frequency:2.432 GHz (Channel 5)
                    Quality:4/5  Signal level:-63 dBm  Noise level:-90 dBm
                    IE: IEEE 802.11i/WPA2 Version 1
                        Group Cipher : TKIP
                        Pairwise Ciphers (2) : CCMP TKIP
                        Authentication Suites (1) : PSK
                    IE: WPA Version 1
                        Group Cipher : TKIP
                        Pairwise Ciphers (1) : TKIP
                        Authentication Suites (1) : PSK
                    Encryption key:on
                    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s
                              9 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s; 36 Mb/s
                              48 Mb/s; 54 Mb/s
          Cell 04 - Address: 00:80:5A:22:F1:DE
                    ESSID:"luispa"
                    Mode:Managed
                    Frequency:2.457 GHz (Channel 10)
                    Quality:2/5  Signal level:-70 dBm  Noise level:-92 dBm
                    IE: WPA Version 1
                        Group Cipher : TKIP
                        Pairwise Ciphers (1) : TKIP
                        Authentication Suites (1) : PSK
                    Encryption key:on
                    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s
                              12 Mb/s; 24 Mb/s; 36 Mb/s; 9 Mb/s; 18 Mb/s
                              48 Mb/s; 54 Mb/s
          Cell 05 - Address: 00:1D:7E:B3:53:71
                    ESSID:"TITONA"
                    Mode:Managed
                    Frequency:2.452 GHz (Channel 9)
                    Quality:1/5  Signal level:-82 dBm  Noise level:0 dBm
                    IE: IEEE 802.11i/WPA2 Version 1
                        Group Cipher : TKIP
                        Pairwise Ciphers (2) : CCMP TKIP
                        Authentication Suites (1) : PSK
                    IE: Unknown: DD0E0050F204104A0001101044000102
                    Encryption key:on
                    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s
                              9 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s; 36 Mb/s
                              48 Mb/s; 54 Mb/s
          Cell 06 - Address: 00:19:E3:33:37:E7
                    ESSID:"TITONA"
                    Mode:Managed
                    Frequency:2.462 GHz (Channel 11)
                    Quality:4/5  Signal level:-63 dBm  Noise level:-92 dBm
                    IE: IEEE 802.11i/WPA2 Version 1
                        Group Cipher : TKIP
                        Pairwise Ciphers (2) : CCMP TKIP
                        Authentication Suites (1) : PSK
                    IE: WPA Version 1
                        Group Cipher : TKIP
                        Pairwise Ciphers (1) : TKIP
                        Authentication Suites (1) : PSK
                    Encryption key:on
                    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 6 Mb/s; 9 Mb/s
                              11 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s; 36 Mb/s
                              48 Mb/s; 54 Mb/s
De lo anterior se deduce que hay 2 ESSID's

- "luispa" con IE: IEEE 802.11i/WPA2 Version 1
                       Group Cipher : TKIP
                       Pairwise Ciphers (2) : CCMP TKIP
                       Authentication Suites (1) : PSK
                   IE: WPA Version 1
                       Group Cipher : TKIP
                       Pairwise Ciphers (1) : TKIP
                       Authentication Suites (1) : PSK
 
 - "TITONA" con IE: IEEE 802.11i/WPA2 Version 1
                       Group Cipher : TKIP
                       Pairwise Ciphers (2) : CCMP TKIP
                       Authentication Suites (1) : PSK
                   IE: WPA Version 1
                       Group Cipher : TKIP
                       Pairwise Ciphers (1) : TKIP
                       Authentication Suites (1) : PSK


Configuración wpa

  • Creo el fichero wpa_supplicant.conf
Fichero: /etc/wpa_supplicant/wpa_supplicant.conf

ctrl_interface=/var/run/wpa_supplicant
eapol_version=1
ap_scan=1
fast_reauth=1

# Config. para red Wifi con Airport Extreme/Express de Apple con seguridad "WPA/WPA2 Personal"
network={
        scan_ssid=0
	ssid="luispa"
	proto=WPA RSN
	key_mgmt=WPA-PSK
	pairwise=CCMP TKIP
	group=CCMP TKIP
	psk="<CLAVE DE TU RED WIFI>"
	priority=1
}


Arrancar net.eth1

  • Arrancamos
# /etc/init.d/net.eth1 start
 * Starting eth1
 *   Starting wpa_supplicant on eth1 ...                                                               [ ok ]
 *   Starting wpa_cli on eth1 ...                                                                      [ ok ]
 *     Backgrounding ...

  • Al cabo de unos segudos veremos lo siguiente (puede tardar varios segundos, dado que wpa_supplicant está trabajando en el background contra el Access Point).
 # iwconfig eth1
eth1      IEEE 802.11bg  ESSID:"luispa"  Nickname:""
          Mode:Managed  Frequency:2.412 GHz  Access Point: 00:1E:52:79:C6:0B   
          Bit Rate=54 Mb/s   Tx-Power:32 dBm   
          Retry min limit:7   RTS thr:off   Fragment thr:off
          Power Managementmode:All packets received
          Link Quality=5/5  Signal level=-37 dBm  Noise level=-85 dBm
          Rx invalid nwid:0  Rx invalid crypt:100  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

# ifconfig eth1
eth1      Link encap:Ethernet  HWaddr 00:24:2b:84:fa:d3  
          inet addr:192.168.1.20  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::224:2bff:fe84:fad3/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:161 errors:0 dropped:0 overruns:0 frame:3496
          TX packets:186 errors:31 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:70108 (68.4 KiB)  TX bytes:25529 (24.9 KiB)
          Interrupt:16 Base address:0xc000 



Broadcom BCM4312 con drivers del Kernel 2.6.32-r1

Como dije al principio, voy a probar con los nuevos drivers.

  • Instalo el nuevo kernel 2.6.32-r1
Este kernel soporta la tarjeta, PCI ID: 14e4:4315, con chipset BCM4312, modos b/g, PHY: LP, y el driver a utilizar es el b43.
  • Configuro el Kernel
Añado el driver B43 Low PHY (experimental) como módulo. 
Recompilo, instalo el kernel 
  • NO INSTALO broadcom-sta, comento el fichero o desinstalo
Comento el fichero /etc/modprobe.d/wl.conf
# update-modules
No se instala ni se cargará /lib/modules/2.6.30-gentoo-r6/net/wireless/wl.ko
:
O bien desinstalo:
# emerge -C broadcom-sta
  • Descargo e instalo GIT
Añadir la variable USE=curl para git a package.use
# emerge -v git
  • Preparar el firmware. Las tarjetas Broadcom tienen un firmware propietario, sigo esta guía para instalarlo.
MI CONFIGURACIÓN
Driver: b43
Kernel: Linux-2.6.32-r1 para tarjetas LP-PHY
Versión: Utilizar la versión de los fuentes GIT 4.174.64.19
Extractor del firmware: b43-fwcutter
Descargar y extraer b43-fwcutter, después compilarlo:
 # cd $HOME
 mkdir wifi
 cd wifi
 git clone http://git.bu3sch.de/git/b43-tools.git
 cd b43-tools/fwcutter
 make
 cd ..

Usar la versión 4.174.64.19 del driver propietario de Broadcom. El tarball está mal etiquetado como "4.178.10.4", pero es la 4.174.64.19
 export FIRMWARE_INSTALL_DIR="/lib/firmware"
 mkdir /lib/firmware
 wget http://downloads.openwrt.org/sources/broadcom-wl-4.178.10.4.tar.bz2
 tar xjf broadcom-wl-4.178.10.4.tar.bz2
 cd broadcom-wl-4.178.10.4/linux
 sudo ../../fwcutter/b43-fwcutter -w "$FIRMWARE_INSTALL_DIR" wl_apsta.o
  • Rearranco el equipo con el nuevo kernel



Auto-Selección de LAN (eth0) y WLAN (eth1) (OBSOLETO)

Mi objetivo es que el equipo utilice la tarjeta LAN siempre que este conectada, y en su defecto que use la tarjeta WLAN. Para conseguirlo he intentado la opción de ifplugd pero no me convence demasiado. Al final voy a usar un interfaz bridge.

  • Configuro el kernel para que soporte bridge
Networking Support --->
  Networking Options --->
     <M> 802.1d Ethernet Bridging
  • bridge
# emerge -v bridge-utils
  • Modifico el fichero de configuración /etc/conf.d/net
Fichero: /etc/conf.d/net
modules_eth0=( "!plug" )

modules=( "wpa_supplicant" )
modules_eth1=( "wpa_supplicant" )
modules_eth1=( "!plug" )
wpa_supplicant_eth1="-Dwext" 

bridge_br0="eth0 eth1"
config_eth0=("null")
config_eth1=("null")

config_br0=( "192.168.1.20/24 brd 192.168.1.255" )
routes_br0=( "default via 192.168.1.1" )
dns_servers_br0=( "192.168.1.1" )
dns_search_domains_br0="parchis.org"

RC_NEED_br0="net.eth0 net.eth1"
brctl_br0=( "setpathcost br0 eth0 10" )
brctl_br0=( "setpathcost br0 eth1 20" )


Trabajo con LAN y WAN (Network Manager)

  • Esta es la última opción que estoy usando, pero tengo que documentarla.
  • /etc/init.d/NetworkManager



Enlaces y Créditos

[1] http://linuxwireless.org/en/users/Drivers/b43 Sobre el driver necesario para la tarjeta Wifi icluida
[2] http://en.gentoo-wiki.com/wiki/Acer_Aspire_One_A110L Equipo parecido con doc. interesante


Volver a Página inicial del Compaq Mini 705ES

--Luis 17:54 20 sep 2009 (CEST)