Kali Linux: Resolver problemas USB Raspberry Pi 4 4GB
Hace unos días desempolvé una de las Raspberry´s Pi 4 que tengo…estaba instalada con Kali Linux y dispongo de una antena Alfa AWUS036AC, de la que hemos hablado en alguna entrada:
Para mi sorpresa, no me detectaba la antena Alfa al arrancarla, no salía ni en los listados de dispositivos USB:
1 2 3 4 |
elblogdenegu@kali:~ $ lsusb Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub |
Veía los módulos cargados:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
elblogdenegu@kali:~ $ lsmod Module Size Used by rfcomm 53248 4 snd_seq_dummy 12288 0 snd_hrtimer 12288 1 snd_seq 81920 7 snd_seq_dummy snd_seq_device 16384 1 snd_seq cmac 12288 3 algif_hash 12288 1 aes_arm64 12288 3 aes_generic 32768 1 aes_arm64 algif_skcipher 12288 1 af_alg 24576 6 algif_hash,algif_skcipher bnep 24576 2 brcmfmac_wcc 12288 0 vc4 376832 10 snd_soc_hdmi_codec 20480 2 drm_display_helper 16384 1 vc4 cec 53248 1 vc4 brcmfmac 348160 1 brcmfmac_wcc drm_dma_helper 24576 2 vc4 binfmt_misc 16384 1 drm_kms_helper 212992 2 drm_dma_helper,vc4 hci_uart 49152 0 brcmutil 24576 1 brcmfmac v3d 90112 4 btbcm 24576 1 hci_uart bluetooth 598016 33 hci_uart,btbcm,bnep,rfcomm gpu_sched 49152 1 v3d snd_soc_core 286720 2 vc4,snd_soc_hdmi_codec rpivid_hevc 45056 0 cfg80211 978944 1 brcmfmac drm_shmem_helper 24576 1 v3d bcm2835_v4l2 40960 0 bcm2835_codec 45056 0 bcm2835_isp 28672 0 bcm2835_mmal_vchiq 36864 3 bcm2835_codec,bcm2835_v4l2,bcm2835_isp v4l2_mem2mem 45056 2 bcm2835_codec,rpivid_hevc videobuf2_vmalloc 12288 1 bcm2835_v4l2 videobuf2_dma_contig 16384 3 bcm2835_codec,rpivid_hevc,bcm2835_isp videobuf2_memops 12288 2 videobuf2_vmalloc,videobuf2_dma_contig ecdh_generic 16384 2 bluetooth snd_compress 16384 1 snd_soc_core videobuf2_v4l2 32768 5 bcm2835_codec,bcm2835_v4l2,rpivid_hevc,v4l2_mem2mem,bcm2835_isp snd_bcm2835 24576 1 snd_pcm_dmaengine 16384 1 snd_soc_core ecc 36864 1 ecdh_generic videodev 303104 6 bcm2835_codec,videobuf2_v4l2,bcm2835_v4l2,rpivid_hevc,v4l2_mem2mem,bcm2835_isp rfkill 32768 6 bluetooth,cfg80211 libaes 12288 3 aes_arm64,bluetooth,aes_generic raspberrypi_hwmon 12288 0 videobuf2_common 69632 9 bcm2835_codec,videobuf2_vmalloc,videobuf2_dma_contig,videobuf2_v4l2,bcm2835_v4l2,rpivid_hevc,v4l2_mem2mem,videobuf2_memops,bcm2835_isp snd_pcm 139264 5 snd_bcm2835,snd_soc_hdmi_codec,snd_compress,snd_soc_core,snd_pcm_dmaengine i2c_brcmstb 12288 0 mc 61440 7 videodev,bcm2835_codec,videobuf2_v4l2,videobuf2_common,rpivid_hevc,v4l2_mem2mem,bcm2835_isp vc_sm_cma 28672 2 bcm2835_mmal_vchiq,bcm2835_isp snd_timer 36864 3 snd_seq,snd_hrtimer,snd_pcm raspberrypi_gpiomem 12288 0 snd 110592 12 snd_seq,snd_seq_device,snd_bcm2835,snd_soc_hdmi_codec,snd_timer,snd_compress,snd_soc_core,snd_pcm nvmem_rmem 12288 0 uio_pdrv_genirq 12288 0 uio 20480 1 uio_pdrv_genirq panel_waveshare_dsi 16384 0 drm 643072 18 gpu_sched,panel_waveshare_dsi,drm_kms_helper,drm_dma_helper,v3d,vc4,drm_shmem_helper,drm_display_helper i2c_dev 16384 0 dm_mod 143360 0 fuse 139264 5 drm_panel_orientation_quirks 28672 1 drm backlight 24576 3 panel_waveshare_dsi,drm_kms_helper,drm ip_tables 32768 0 x_tables 49152 1 ip_tables ipv6 569344 42 |
Pero seguía sin aparecer en el hardware:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
root@kali:~# lshw -short H/W path Device Class Description ====================================================== system Raspberry Pi 4 Model B Rev 1.4 /0 bus Motherboard /0/1 processor cpu /0/1/0 memory 32KiB L1 Cache /0/2 processor cpu /0/2/0 memory 32KiB L1 Cache /0/3 processor cpu /0/3/0 memory 32KiB L1 Cache /0/4 processor cpu /0/4/0 memory 32KiB L1 Cache /0/5 processor l2-cache0 /0/6 memory 2849MiB System memory /0/0 bridge BCM2711 PCIe Bridge /0/0/0 bus VL805/806 xHCI USB 3.0 Controll /0/0/0/0 usb1 bus xHCI Host Controller /0/0/0/0/1 bus USB2.0 Hub /0/0/0/1 usb2 bus xHCI Host Controller /1 mmc0 bus MMC Host /1/59b4 /dev/mmcblk0 disk 128GB GD2S5 /1/59b4/1 volume 512MiB Windows FAT volume /1/59b4/2 /dev/mmcblk0p2 volume 118GiB EXT4 volume /2 mmc1 bus MMC Host /2/1 generic SDIO Device /2/1/1 mmc1:0001:1 network 43430 /2/1/2 mmc1:0001:2 generic 43430 /2/1/3 mmc1:0001:3 communication 43430 /3 card0 multimedia Headphones /4 card1 multimedia vc4hdmi0 /5 card2 multimedia vc4hdmi1 /6 input0 input vc4-hdmi-0 /7 input1 input vc4-hdmi-0 HDMI Jack /8 input2 input vc4-hdmi-1 /9 input3 input vc4-hdmi-1 HDMI Jack /a eth0 network Ethernet interface |
Aparentemente era un tema de drivers o de kernel, que suelen tener el problema de que no se detecte, si el dispositivo funciona correctamente en otros sistemas, como validé. Así que me puse a instalar los controladores necesarios:
1 2 3 |
apt update apt install dkms apt install realtek-rtl88xxau-dkms |
Validando su instalación:
1 |
find /lib/modules/`uname -r`/ -name "88XXau.ko" |
Aún con esto, seguía sin detectarse nada. De hecho, pasaba con la antena Alfa y con cualquier dispositivo USB (llave memoria, ratón y teclado). Así que me puse a actualizar el sistema e instalar otro kernel y su complemento kernel-headers. Primero actualizo y reinicio el sistema:
1 2 3 4 |
apt update apt upgrade apt dist-upgrade reboot |
Posteriormente, reviso los kernels que puedo instalar:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
──(root㉿kali-raspberry-pi)-[~] └─# apt search linux-image linux-headers-6.8.11-arm64/kali-rolling 6.8.11-1kali2 arm64 Header files for Linux 6.8.11-arm64 linux-headers-6.8.11-cloud-arm64/kali-rolling 6.8.11-1kali2 arm64 Header files for Linux 6.8.11-cloud-arm64 linux-headers-6.8.11-rt-arm64/kali-rolling 6.8.11-1kali2 arm64 Header files for Linux 6.8.11-rt-arm64 linux-image-6.8.11-arm64/kali-rolling 6.8.11-1kali2 arm64 Linux 6.8 for 64-bit ARMv8 machines linux-image-6.8.11-arm64-dbg/kali-rolling 6.8.11-1kali2 arm64 Debug symbols for linux-image-6.8.11-arm64 linux-image-6.8.11-cloud-arm64/kali-rolling 6.8.11-1kali2 arm64 Linux 6.8 for arm64 cloud linux-image-6.8.11-cloud-arm64-dbg/kali-rolling 6.8.11-1kali2 arm64 Debug symbols for linux-image-6.8.11-cloud-arm64 linux-image-6.8.11-rt-arm64/kali-rolling 6.8.11-1kali2 arm64 Linux 6.8 for 64-bit ARMv8 machines, PREEMPT_RT linux-image-6.8.11-rt-arm64-dbg/kali-rolling 6.8.11-1kali2 arm64 Debug symbols for linux-image-6.8.11-rt-arm64 linux-image-arm64/kali-rolling 6.8.11-1kali2 arm64 Linux for 64-bit ARMv8 machines (meta-package) linux-image-arm64-dbg/kali-rolling 6.8.11-1kali2 arm64 Debugging symbols for Linux arm64 configuration (meta-package) linux-image-cloud-arm64/kali-rolling 6.8.11-1kali2 arm64 Linux for arm64 cloud (meta-package) linux-image-cloud-arm64-dbg/kali-rolling 6.8.11-1kali2 arm64 Debugging symbols for Linux cloud-arm64 configuration (meta-package) linux-image-rt-arm64/kali-rolling 6.8.11-1kali2 arm64 Linux for 64-bit ARMv8 machines (meta-package) linux-image-rt-arm64-dbg/kali-rolling 6.8.11-1kali2 arm64 Debugging symbols for Linux rt-arm64 configuration (meta-package) |
Y lanzo la instalación del nuevo kernel y kernel-headers del mismo:
1 2 |
apt install linux-image-6.8.11-arm64 apt install linux-headers-6.8.11-arm64 |
En un sistema normal tendrías la tentación de actualizar grup:
1 2 3 4 5 6 7 8 9 10 11 12 |
apt install update-grub ┌──(root㉿kali-raspberry-pi)-[~] └─# update-grub Generating grub configuration file ... Found theme: /boot/grub/themes/kali/theme.txt Found linux image: /boot/vmlinuz-6.8.11-arm64 Found initrd image: /boot/initrd.img-6.8.11-arm64 Warning: os-prober will not be executed to detect other bootable partitions. Systems on them will not be added to the GRUB boot configuration. Check GRUB_DISABLE_OS_PROBER documentation entry. Adding boot menu entry for UEFI Firmware Settings ... done |
Y reiniciar:
1 |
reboot |
Aunque compruebes que que disponemos del kernel y kernel-headers instalados, el proceso es diferente:
1 2 3 |
┌──(root㉿kali-raspberry-pi)-[~] └─# dpkg --list | grep linux-image ii linux-image-6.8.11-arm64 6.8.11-1kali2 arm64 Linux 6.8 for 64-bit ARMv8 machines |
Modificar kernel por defecto en el arranque en una Raspberry Pi con Kali Linux
En una Raspberry Pi, como no se utiliza GRUB 2 para gestionar el arranque, el proceso para cambiar el kernel por defecto es diferente al de un sistema tradicional de PC. En lugar de editar el archivo de configuración de GRUB, en la Raspberry Pi el kernel que se usa al arrancar se especifica en el archivo config.txt en la partición boot.
Revisamos que ficheros tenemos en esa ruta:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
┌──(root㉿kali-raspberry-pi)-[~] └─# ls /boot/ bcm2708-rpi-b.dtb cmdline.txt initrd.img-6.8.11-arm64 bcm2708-rpi-b-plus.dtb config-5.15.44-Re4son+ kernel7.img bcm2708-rpi-b-rev1.dtb config-5.15.44-Re4son-v7+ kernel7l.img bcm2708-rpi-cm.dtb config-5.15.44-Re4son-v7l+ kernel8-alt.img bcm2708-rpi-zero.dtb config-5.15.44-Re4son-v8+ kernel8l-alt.img bcm2708-rpi-zero-w.dtb config-5.15.44-Re4son-v8l+ kernel.img bcm2709-rpi-2-b.dtb config-6.8.11-arm64 LICENCE.broadcom bcm2710-rpi-2-b.dtb config.txt overlays bcm2710-rpi-3-b.dtb COPYING.linux start4cd.elf bcm2710-rpi-3-b-plus.dtb fixup4cd.dat start4db.elf bcm2710-rpi-cm3.dtb fixup4.dat start4.elf bcm2710-rpi-zero-2.dtb fixup4db.dat start4x.elf bcm2710-rpi-zero-2-w.dtb fixup4x.dat start_cd.elf bcm2711-rpi-400.dtb fixup_cd.dat start_db.elf bcm2711-rpi-4-b.dtb fixup.dat start.elf bcm2711-rpi-cm4.dtb fixup_db.dat start_x.elf bcm2711-rpi-cm4s.dtb fixup_x.dat System.map-6.8.11-arm64 bootcode.bin grub vmlinuz-6.8.11-arm64 |
Mi kernel actual:
1 2 3 |
┌──(root㉿kali-raspberry-pi)-[~] └─# uname -r 5.15.44-Re4son-v8l+ |
La idea es que arranque del fichero initrd.img-6.8.11-arm64. Para ello deberemos modificar la línea del fichero “config.txt”:
1 2 3 4 5 6 7 8 9 |
kernel=NOMBRE-KERNEL En mi caso, debo cambiar kernel=kernel8l-alt.img Por kernel=vmlinuz |
Y reiniciar para ver aplicados los cambios:
1 |
reboot |
Y volvéis a comprobar con “uname -r” y revisa si detecta el dispositivo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
┌──(kali㉿kali)-[~] └─$ iwconfig lo no wireless extensions. eth0 no wireless extensions. wlan0 IEEE 802.11 ESSID:off/any Mode:Managed Access Point: Not-Associated Tx-Power=31 dBm Retry short limit:7 RTS thr:off Fragment thr:off Power Management:on wlan1 unassociated ESSID:"" Nickname:"<WIFI@REALTEK>" Mode:Managed Frequency=2.412 GHz Access Point: Not-Associated Sensitivity:0/0 Retry:off RTS thr:off Fragment thr:off Power Management:off Link Quality:0 Signal level:0 Noise level:0 Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0 ┌──(kali㉿kali)-[~] └─$ lsusb Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub Bus 001 Device 003: ID 0bda:8812 Realtek Semiconductor Corp. RTL8812AU 802.11a/b/g/n/ac 2T2R DB WLAN Adapter Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub |
Te ha gustado la entrada SGUENOS EN TWITTER O INVITANOS A UN CAFE?