# b43 Aircrack-ng Packet Injection 2.6.32-r8 mac80211 patch[S]

## darth88

Hola estimados, 

Estoy tratando de configurar el kernel 2.6.26-gentoo-r4, instale el entorno de escritorio sin mayores problemas, estoy con el kernel 2.6.31-gentoo-r10, tuve un problema con (device-mapper, LVM2, udev), y debido a eso no podía arrancar desde el cargador de arranque con la opción vesafb para el soporte de framebuffer.

```
title Gentoo Linux x86_64 2.6.31-r10 vesafb

root (hd0,4)

kernel /boot/kernel-x86_64-2.6.31-gentoo-r10 root=/dev/sdb6 video=vesafb:ywrap,mtrr vga=0x317 udev
```

Me aparecían problemas con dependencias circulares con device-mapper, después de unmerger varias cosas, downgradear y upgradear, pude cargar arrancar con el parametro vesafb y ahora si que me aparece la resolución que quería y hasta el logo que configure en el kernel, puedo loogearme. pero cuando intento arrancar con el kernel 2.6.26-gentoo-r4 con casi la mismas opciones y en la misma partición me aparecen errores. 

```
title Gentoo Linux Linux x86_64 2.6.26-r4 vesafb

root (hd0,4)

kernel /boot/kernel-x86_64-2.6.26-gentoo-r4 root=/dev/sdb6 video=vesafb:ywrap,mtrr vga=0x317 udev
```

Como explico, con el kernel x86_64-2.6.26-gentoo-r4 me aparece lo siguiente:

```
The superblock could not be read or does not describe a correct ext2 filesystem.  If the device is valid and it really contains an ext2 filesystem (and not swap or ufs or something else), then the superblock is corrupt, and you might try running e2fsck with an alternate superblock: 

    e2fsck -b 8193 <device> 
```

```
udevd[12195]: error initializing netlink socket
```

Incluso si tengo en .config.

```
# CONFIG_SYSFS_DEPRECATED_V2 is not set
```

Alguien sabe que debo hacer. Acaso tengo que downgradear udev para no tener problemas con 2.6.26-gentoo-r4?

Agradecido de antemano.Last edited by darth88 on Thu Apr 29, 2010 5:55 pm; edited 4 times in total

----------

## Inodoro_Pereyra

Solo por curiosidad, si el kernel mas nuevo funciona, para que necesitas el anterior?

Justo arriba de donde dice: The superblock could not be read te tiene que indicar a que partición hace referencia. Se está refiriendo a /dev/sdb6?

Podría ocurrir que para tu kernel 2.6.26 /dev/sdb6 en realidad sea /dev/sda6, has probado con esta posibilidad? De ser así, y de necesitar los dos kernel en funcionamiento, entonces hay que corregirlo por que si no tendrías que andar modificando tu fstab a cada reinicio.

Si no necesitas tu kernel viejo, entonces yo no me preocuparía tanto.

También podrías haberte topado con este bug. En ese caso:

```
rm -fr /sys/*
```

Eso mismo me pasó la semana pasada...  :Very Happy: 

Salud!

----------

## esteban_conde

 *Quote:*   

> title Gentoo Linux x86_64 2.6.31-r10 vesafb
> 
> root (hd0,4)
> 
> kernel /boot/kernel-x86_64-2.6.31-gentoo-r10 root=/dev/sdb6 video=vesafb:ywrap,mtrr vga=0x317 udev
> ...

 

(hd0,4)==sda5, si lo que pones root=/dev/sdb6 es correcto deberias poner root (hd1,5) ya que (hd1,5)==sdb6 al menos así me lo aprendí hace tiempo y aunque no lo descarto, no creo que haya cambiado.

----------

## quilosaq

Las dos causas mas probables para que no arranque son que no hayas incluido soporte para tu controladora de disco duro o que las particiones que encuentra las nombra de forma diferente a como las nombra el kernel que si te arranca (como te ha dicho Inodoro_Pereira) y la solución en ese caso es ir probando (directamente en el prompt de grub o modificando fstab).

En cuanto al comentario de esteban_conde, creo que la partición indicada en la linea root de menu.lst no tiene porque ser la misma que la indicada en la linea kernel cuando el contenido de /boot está en una partición distinta al resto del sistema.

----------

## darth88

1. Gracias por la respuesta tan rápida.   :Smile: 

 *Inodoro_Pereyra wrote:*   

> Solo por curiosidad, si el kernel mas nuevo funciona, para que necesitas el anterior?

 

2. Es debido a que quiero que funcione la inyección como si me funciona en ubuntu, de hecho en gentoo he probado con el kernel 2.6.31 y 2.6.32 y la inyeccion no funciona.

```
Monitor mode currently supported but injection may or may not work with bcm43xx. Apparently a new driver is coming out dubbed as b43 and is only available in either kernel >=2.6.24 and/or wireless-2.6 git. Injection will work after patching b43 via mac80211 stack. bcm43xx driver will soon be deprecated and for this chipset it will not indicate PWR levels with airodump-ng. 
```

```
 Bus options (PCI etc.)  -->

       < > PCCard (PCMCIA/CardBus) support  --->

 [*] Networking support  -->

       Wireless -->

         -*- Improved wireless configuration API

         -*- Wireless extensions

         <*> Generic IEEE 802.11 Networking Stack (mac80211)

 Device Drivers --> 

   Network device support --> 

     Wireless LAN

       [*] Wireless LAN (IEEE 802.11)

       <*>   Broadcom 43xx wireless support (mac80211 stack)

       [ ]     Broadcom 43xx PCMCIA device support

       [*]     Broadcom 43xx debugging

```

```
# cd /usr/src

# git clone git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.git

# cd /usr/src/linux/ wget http://patches.aircrack-ng.org/b43-injection-2.6.26-wl.patch 

# wget http://patches.aircrack-ng.org/mac80211_2.6.26-wl_frag.patch

# patch -p1 < b43-injection-2.6.26-wl.patch 

# patch -p1 < mac80211_2.6.26-wl_frag.patch 

# make && make modules_install 
```

 *esteban_conde wrote:*   

> (hd0,4)==sda5, si lo que pones root=/dev/sdb6 es correcto deberias poner root (hd1,5) ya que (hd1,5)==sdb6 al menos así me lo aprendí hace tiempo y aunque no lo descarto, no creo que haya cambiado.

  *Inodoro_Pereyra wrote:*   

> Justo arriba de donde dice: The superblock could not be read te tiene que indicar a que partición hace referencia. Se está refiriendo a /dev/sdb6?
> 
> Podría ocurrir que para tu kernel 2.6.26 /dev/sdb6 en realidad sea /dev/sda6, has probado con esta posibilidad? De ser así, y de necesitar los dos kernel en funcionamiento, entonces hay que corregirlo por que si no tendrías que andar modificando tu fstab a cada reinicio.

 

3. (Puede q me haya equivocado porque ahora no me aparece e2fsck -b 8193). Tengo 3 discos, resinstale el grub con los otros desconectados para no arriesgar perder su cargador de arranque(chameleon)(aunque ya aprendí a reinstalarlo con una imagen) y debido que grub2 no detectaba a gentoo en ubuntu, entonces al conectarlos de nuevo el que era "sda" aparece como "sdb" en fdisk -l, entonces lo que hice fue cambiar en fstab y grub eso desde el Live CD y puedo entrar sin problemas a los kernels de ubuntu y gentoo sin problemas desde la /boot compartida.

4. Así lo tengo particionado:

```
Device Boot      Start         End      Blocks   Id  System

/dev/sdb1   *           1        7661    61536951    7  HPFS/NTFS

/dev/sdb2            7662       14119    51873885    7  HPFS/NTFS

/dev/sdb3           14120       24084    80043862+   b  W95 FAT32

/dev/sdb4           24085       30401    50741302+   5  Extended

/dev/sdb5           24085       24147      506016   83  Linux

/dev/sdb6           24148       27086    23607486   83  Linux

/dev/sdb7           27087       30295    25776261   83  Linux

/dev/sdb8           30296       30401      851413+  82  Linux swap / Solaris
```

```
# diskutil list

/dev/disk0

   #:                       TYPE NAME                    SIZE       IDENTIFIER

   0:      GUID_partition_scheme                        *250.1 GB   disk0

   1:                        EFI                         209.7 MB   disk0s1

   2:                  Apple_HFS SnowII                  249.7 GB   disk0s2

/dev/disk1

   #:                       TYPE NAME                    SIZE       IDENTIFIER

   0:      GUID_partition_scheme                        *320.1 GB   disk1

   1:                        EFI                         209.7 MB   disk1s1

   2:                  Apple_HFS Snow                    319.7 GB   disk1s2

/dev/disk2

   #:                       TYPE NAME                    SIZE       IDENTIFIER

   0:     FDisk_partition_scheme                        *250.1 GB   disk2

   1:               Windows_NTFS                         63.0 GB    disk2s1

   2:               Windows_NTFS winXP                   53.1 GB    disk2s2

   3:                 DOS_FAT_32 VFAT                     82.0 GB    disk2s3

   4:                      Linux                         518.2 MB   disk2s5

   5:                      Linux                         24.2 GB    disk2s6

   6:                      Linux                         26.4 GB    disk2s7

   7:                 Linux_Swap                         871.8 MB   disk2s8

```

Entonces lo que hago es pasarme a:

disk1 --> para entrar a --> Snow y SnowII --> desde --> chameleon.

y a

disk2 --> para entrar a --> Windows y Linux --> desde --> grub.

Cambiando el orden desde la BIOS.

```
# nano /etc/fstab

/dev/sdb5       /boot           ext2            noauto,noatime  1 2

/dev/sdb6       /               ext3            noatime         0 1

/dev/sdb8       none            swap            sw              0 0

/dev/sdb3      /mnt/fat         vfat            users,owner,ro,umask=000 0 0

/dev/sdb7      /mnt/ubuntu      ext3            noauto,noatime         1 2
```

```
# nano /mnt/ubuntu/etc/fstab

/dev/sdb7       /               ext3    errors=remount-ro 0       1

/dev/sdb5      /boot           ext2    defaults        0       2

/dev/sdb6  /media/gentoo ext3 noatime 0 0

/dev/sdb3 /media/fat vfat users,owner,ro,umask=000 0 0
```

```
# gedit /boot/grub/menu.lst

title Gentoo Linux genkernel-x86_64-2.6.26-gentoo-r4

root (hd0,4)

kernel /boot/kernel-genkernel-x86_64-2.6.26-gentoo-r4 root=/dev/ram0 init=/linuxrc ramdisk=8192 real_root=/dev/sdb6 video=vesafb:ywrap,mtrr vga=0x317

initrd /boot/initramfs-genkernel-x86_64-2.6.26-gentoo-r4

title Gentoo Linux x86_64 2.6.26-r4 vesafb

root (hd0,4)

kernel /boot/kernel-x86_64-2.6.26-gentoo-r4 root=/dev/sdb6 video=vesafb:ywrap,mtrr vga=0x317 udev

title Gentoo Linux x86_64 2.6.31-r10 vesafb

root (hd0,4)

kernel /boot/kernel-x86_64-2.6.31-gentoo-r10 root=/dev/sdb6 video=vesafb:ywrap,mtrr vga=0x317 udev

 

title Ubuntu Edition kernel 2.6.31-20-generic

root (hd0,4)

kernel /boot/vmlinuz-2.6.31-20-generic root=/dev/sdb7 ro quiet splash

initrd /boot/initrd.img-2.6.31-20-generic

title windows 7

root (hd0,0)

makeactive

chainloader +1
```

```
#

# grub

grub> find /boot/grub/stage1

(hd1,4)
```

Acá tengo el grub, lo raro es que solo entra con (hd0,4) :S

5. Al reiniciar udev me aparecía este error:

```
# /etc/init.d/udev restart 

* The udev init-script is written for baselayout-2! * Please do not use it with baselayout-1!
```

Esto lo solucione con:

```
# nano /etc/portage/package.keywords

sys-apps/baselayout-2 ~amd64

sys-apps/openrc ~amd64

# emerge -avt baselayout
```

Y con este doc.

http://gentoo.xblack.ru/doc/es/openrc-migration.xml

Luego de eso el kernel x86_64 2.6.31-r10 perfecto!

Pero el kernel x86_64 2.6.26-r4 sigue con el error:

```
udevd[12195]: error initializing netlink socket
```

Y de hecho no pasa de ahí. Pensando q me podía haber equivocado en el kernel compile genkernel y me pasa lo mismo. Estoy dispuesto a hacer un downgrade de lo que sea para tener funcionable el kernel 2.6 con udev en gentoo, que de hecho me encanta porque es muy facil cambiar de kernels cosa que es más engorrosa en otras distros. También pensé que las particiones estén distintas a como las nombra el kernel, pero son 2 kernels y uno si anda bien.

 *Inodoro_Pereyra wrote:*   

> También podrías haberte topado con este bug. En ese caso:
> 
> ```
> rm -fr /sys/*
> ```
> ...

 

Voy a probar eso, luego posteo. Gracias  :Very Happy: 

----------

## darth88

Estoy atrapado en estos 3 bugs  :Cool: 

https://bugs.gentoo.org/103296

Dice INVALID y he emerge sync'ed reiteradas veces y me aparece lo mismo NOT FOUND ERROR 404  :Evil or Very Mad:  con  # emerge -v glibc.

Y este solo con el kernel 2.6.26

https://bugs.gentoo.org/show_bug.cgi?id=294470

```
# /etc/init.d/udev restart

 * WARNING: you are stopping a sysinit service

 * Caching service dependencies ...                                            

  [ ok ]

 * Stopping udevd ...

 * start-stop-daemon: no matching processes found                              

  [ ok ]

 * Starting udevd ...

error initializing netlink socket

 * start-stop-daemon: failed to start `/sbin/udevd'                            

  [ !! ]

 * start-stop-daemon: no matching processes found

 * ERROR: udev failed to start

 * Starting udevd ...udevd[488]: error getting socket: Invalid argument
```

Y lo otro es con nvidia-settings.

https://forums.gentoo.org/viewtopic-t-824118-start-0.html

Un lastima porque ya me estaba empezando a entusiasmar  :Laughing:   :Razz: 

----------

## Inodoro_Pereyra

Ya probaste deshacerte del contenido de /sys como te decía mas arriba?

Salud!

----------

## darth88

Solucione el problema del nvidia-settings(ACCEPT_KEYWORDS=~amd64)  porque el error de libc fue temporal y ahora si que pude emerge sync'ed y el problema de sdb, simplemente cambia los cables sata y deje el disco de linux conectado al puerto 0, así que esta con sda y volví a dejar fstab y menu.lst como estaban.

 *Inodoro_Pereyra wrote:*   

> Ya probaste deshacerte del contenido de /sys como te decía mas arriba?
> 
> Salud!

 

Si, hice eso, desde ubuntu... 

```
# cd /media/gentoo

# rm -rf proc/* sys/*
```

Pero el kernel 2.6.26 sigue con el mismo problema de arriba, incluso falla la recompilación del modulo nuevo de nvidia con module-rebuild rebuild(eselect kernel set [kernel2.6.26]), el 31 bien  :Neutral: 

Salud.

----------

## pelelademadera

si estas en ~amd64, udev no soporta kernels menores a 2.6.27 segun el emerge...

por otra parte, yo tuve problemas similares, en el post 

fijate que device-mapper esta deprecated...(en desuso) se pasa a lvm2, pasa udev a runlevel sysinit y lvm a boot, y trata de bootear asi, yo tambien tube problemas con un raid despues de un update en ~amd64, y lo solucione asi,

otra forma de solucionarlo era bootear, (con el kernel 31) y te tira errores en el mount. entonces haces un dmsetup mknodes, mount -a y hace lo que quieras.

----------

## darth88

No, lo de udev fue antes de pasarme a ~amd64, lo de device-mapper a lvm2 lo hice antes de eso, en el 31 no aparece ningún error al bootear, udev restart todo bien, el problema es con el 26 que como dices udev no soporta kernels menores a 2.6.27, eso es, en todo caso pienso comprar una Usb Wifi 500mw que incluso en mac anda muy bien para hacer auditoria, lo que pasa que tengo además un notebook que también trae b43 incorporada, entonces por eso estaba tratando de hacerla andar con gentoo, lo de mknodes lo voy a probar. De todas formas, igual estoy contento con gentoo  :Very Happy:   :Twisted Evil: 

Gracias   :Smile: 

----------

## pelelademadera

yo en gral, no me complico la vida. compilo un solo kernel, y copio el ebuild a un overlay en mi disco y enmascaro las superiores. cuando quiero actualizar (solo si necesito, o si estoy de gusto xq la verdad si anda bien, no lo cambio) emerge, compilo pruebo, si anda, copio el ebuild al overlay y enmascaro superiores, xq portage te borra los ebuilds viejos, no se como mantenerlos, asi que simplemente x eso me quedo con el ebuild.

lo de mac y grub, yo booteo mac desde grub sin problemas, el entry en el menu.lst es asi:

 *Quote:*   

> title OSX86
> 
> root (hd2,0)
> 
> chainloader +1

  es muy simple, y anda perfectamente.

ahora, no termino de entender xq queres que ande 2.6.26...

----------

## darth88

 *pelelademadera wrote:*   

> yo en gral, no me complico la vida. compilo un solo kernel, y copio el ebuild a un overlay en mi disco y enmascaro las superiores. cuando quiero actualizar (solo si necesito, o si estoy de gusto xq la verdad si anda bien, no lo cambio) emerge, compilo pruebo, si anda, copio el ebuild al overlay y enmascaro superiores, xq portage te borra los ebuilds viejos, no se como mantenerlos, asi que simplemente x eso me quedo con el ebuild.

 

Si, de hecho eso hago también, lo del overlay también lo he hecho, hace poco cuando trate con gentoo, vengo de ubuntu y hay varias cosas que he aprendido recientemente.

 *pelelademadera wrote:*   

> lo de mac y grub, yo booteo mac desde grub sin problemas, el entry en el menu.lst es asi: 
> 
> ```
> title OSX86
> 
> ...

 

Tengo Chameleon-2.0-RC3-r658(también intente con Chameleon RC5) instalado en (hd1,0), en (hd0,0) el grub, y coloco eso mismo y no entra, y al querer entrar con chamaleon cambiando el orden en la Bios me aparecía grub y no entraba, y eso que lo instale en (hd0,0), así que ejecute:

```
# diskutil list

# fdisk440 -f boot0 -u -y /dev/rdisk2

# dd if=boot1h of=/dev/rdisk2s2

# cd /Support\ Files\ v1.2/Part\ 3/Chameleon/

# cp boot /Extra

# reboot
```

De hecho ya solucione ese problema y entra bien con chameleon y al reinstalarlo también puedo entrar ahora así a windows xp y 7, cosa q antes no se podía.

Trato colocando:

```
title OSX86

root (hd2,0)

chainloader +1
```

Y no funciona, no entra, pero eso es un detalle, no me aflige mayormente.

 *pelelademadera wrote:*   

> Ahora, no termino de entender xq queres que ande 2.6.26...

 

Es simplemente porque la inyección a mi por lo menos solo me ha funcionado con el kernel 2.6.26 después de parcharlo con mac80211_2.6.26-wl_frag.patch! (como explico arriba)

----------

## pelelademadera

agrega a la orden del grub

```
title OSX86 

map (hd0,0) (hd0,2)

map (hd0,2) (hd0,0)

root (hd0,0) 

chainloader +1

```

ahi deberia andar

la inyeccion para que es? no probaste con git-sources en vez de gentoo sources...

del 2.26.31-* tengo los ebuilds si queres

----------

## darth88

Hola  :Smile: 

 *pelelademadera wrote:*   

> agrega a la orden del grub
> 
> ```
> title OSX86 
> 
> ...

 

No no entra, ya había probado eso de map, pero como te digo puedo entrar a el cambiando desde la BIOS y entrando desde chameleon, así que no es mayor inconveniente, (hd0,2) esta con particiones GUID, en cambio (hd0,0) con MBR.

 *pelelademadera wrote:*   

> la inyeccion para que es?

 

http://www.aircrack-ng.org/doku.php?id=es:i_am_injecting_but_the_ivs_don_t_increase

http://en.wikipedia.org/wiki/Packet_injection

Ahí sale explicado.

El asunto del problema de device-mapper lo había solucionado con:

```
# emerge -C device-mapper && emerge -1 lvm2

# emerge --deep --update --newuse world -a
```

También edite varias cosas de udev y reinicie hald porque no tenía acceso a los discos.

Y el de la inyección, simplemente parche el kernel  linux-2.6.32-gentoo-r8 con mac80211_2.6.32.2-wl_frag+ack_radiotap.patch.

```
# emerge -av1 =sys-kernel/gentoo-sources-2.6.32-r8

# eselect kernel list

  [1]   linux-2.6.26-gentoo-r4

  [2]   linux-2.6.31-gentoo-r10

  [3]   linux-2.6.32-gentoo-r7

  [4]   linux-2.6.32-gentoo-r8 *

  [5]   linux-2.6.33-gentoo-r1

# eselect kernel set 4

# cd /usr/src/linux-2.6.32-gentoo-r8/

# cp /usr/src/linux-2.6.31-gentoo-r10/.config .

# make oldconfig && make prepare

# make menuconfig

# cd /usr/src/

# git clone git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.git

# cd /usr/src/linux/

# wget http://patches.aircrack-ng.org/mac80211_2.6.32.2-wl_frag+ack_radiotap.patch

# patch -p1 < mac80211_2.6.32.2-wl_frag+ack_radiotap.patch 

patching file include/net/ieee80211_radiotap.h

Reversed (or previously applied) patch detected!  Assume -R? [n]

# make clean

# make && make modules_install

# cp arch/x86_64/boot/bzImage /boot/kernel-2.6.32-gentoo-r8

# cp System.map /boot/System.map-2.6.32-gentoo-r8 

# module-rebuild rebuild
```

También seguí eso...

http://en.gentoo-wiki.com/wiki/NetworkManager

y

```
# ifconfig wlan0 down

# iwconfig wlan0 mode monitor

# ifconfig wlan0 up

# airmon-ng start wlan0

 #  aireplay-ng -9 mon0

07:08:30  Trying broadcast probe requests...

07:08:32  Injection is working!

07:08:32  Found 2 APs

.................
```

Estoy re contento porque en gentoo el asunto de compilar el kernel es simple. No paraba de tener errores al compilar el kernel a la manera de debian con http://www.kernel.org/pub/linux/kernel/ y nadie da una respuesta real al problema y eso que leí demasiado, lo parchaba, instalaba dependencias, muy engorroso. Amo gentoo.

Saludos   :Very Happy: 

----------

