Como posso conectar o BeagleBone à minha rede sem fio usando um adaptador WiFi USB ALFA AWUS036EW?

Como posso conectar o BeagleBone à minha rede sem fio usando um adaptador WiFi USB ALFA AWUS036EW?

Eu sou novo no Linux, então obrigado pela sua ajuda. Este adaptador WiFi não é comumente usado no mundo BeagleBone/Raspberry Pi, mas é útil porque me permitirá conectar uma antena direcional personalizada para comunicação de longa distância com o BeagleBone.

Para iniciar:

Posso facilmente fazer login no meu beaglebone como root conectando-me a ele através da interface USB e ssh. Quando digito, sudo cat /var/log/messagesobtenho a saída abaixo (parcial), que me indica que usb1-1 está conectado ao adaptador USB WiFi. Na verdade, o chipset usado por este dispositivo USB WiFi é o Realtek RTL8187.

Aprendi que o Ubuntu fornece os drivers para este chip Realtek como padrão, mas sei que o Beaglebone usa um tipo diferente de Linux.

Como posso diagnosticar o sistema e conectar-me à minha rede wifi e, se não conseguir, como posso obter esse driver e prosseguir? O driver provavelmente será o mesmo usado pelo Ubuntu para o chip Realtek 8187.

Além disso - ouvi falar de algo chamado 'gerenciador de rede' - é algo que preciso para começar? Em caso afirmativo, como posso baixá-lo e instalá-lo através do terminal neste sistema Linux embarcado?

Apr 23 20:24:04 beaglebone systemd-logind[700]: Linked /tmp/.X11-unix/X0 to /run/user/debian/X11-display.
Apr 23 20:24:07 beaglebone systemd[1]: Startup finished in 2s 663ms 344us (kernel) + 14s 900ms 121us (userspace) = 17s 563ms 465us.
Apr 23 20:24:14 beaglebone kernel: [   25.164174] net eth0: initializing cpsw version 1.12 (0)
Apr 23 20:24:14 beaglebone kernel: [   25.168656] net eth0: phy found : id is : 0x7c0f1
Apr 23 20:24:14 beaglebone kernel: [   25.190080] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
Apr 23 20:44:41 beaglebone kernel: [ 1251.610969] libphy: 4a101000.mdio:00 - Link is Up - 100/Full
Apr 23 20:44:41 beaglebone kernel: [ 1251.611096] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
Apr 23 20:44:55 beaglebone kernel: [ 1265.814467] net eth0: initializing cpsw version 1.12 (0)
Apr 23 20:44:55 beaglebone kernel: [ 1265.817260] net eth0: phy found : id is : 0x7c0f1
Apr 23 20:44:55 beaglebone kernel: [ 1265.833067] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
Apr 23 20:44:55 beaglebone kernel: [ 1266.187458] net eth0: initializing cpsw version 1.12 (0)
Apr 23 20:44:55 beaglebone kernel: [ 1266.190295] net eth0: phy found : id is : 0x7c0f1
Apr 23 20:44:55 beaglebone kernel: [ 1266.205991] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
Apr 23 20:44:57 beaglebone kernel: [ 1268.197080] libphy: 4a101000.mdio:00 - Link is Up - 100/Full
Apr 23 20:44:57 beaglebone kernel: [ 1268.197237] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
Oct 15 03:24:43 beaglebone kernel: [ 1528.071391] usb 1-1: new high-speed USB device number 2 using musb-hdrc
Oct 15 03:24:43 beaglebone kernel: [ 1528.197461] usb 1-1: New USB device found, idVendor=0bda, idProduct=8187
Oct 15 03:24:43 beaglebone kernel: [ 1528.197501] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Oct 15 03:24:43 beaglebone kernel: [ 1528.197536] usb 1-1: Product: RTL8187_Wireless
Oct 15 03:24:43 beaglebone kernel: [ 1528.197570] usb 1-1: Manufacturer: Manufacturer_Realtek_RTL8187_
Oct 15 03:24:43 beaglebone kernel: [ 1528.197603] usb 1-1: SerialNumber: 00C0CA6D703D
Oct 15 03:24:44 beaglebone kernel: [ 1528.378502] cfg80211: Calling CRDA to update world regulatory domain
Oct 15 03:24:44 beaglebone kernel: [ 1528.812425] ieee80211 phy0: hwaddr 00:c0:ca:6d:70:3d, RTL8187vB (default) V1 + rtl8225z2, rfkill mask 2
Oct 15 03:24:44 beaglebone kernel: [ 1528.829906] rtl8187: Customer ID is 0xFF
Oct 15 03:24:44 beaglebone kernel: [ 1528.852966] rtl8187: wireless switch is on
Oct 15 03:24:44 beaglebone kernel: [ 1528.853874] usbcore: registered new interface driver rtl8187

Quando digito ifup wlan0 recebo:

root@beaglebone:/# ifup wlan0
Ignoring unknown interface wlan0=wlan0

Quando digito iwconfig recebo:

root@beaglebone:/# iwconfig
wlan0     IEEE 802.11bg  ESSID:off/any  
          Mode:Managed  Access Point: Not-Associated   Tx-Power=0 dBm   
          Retry  long limit:7   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:on

lo        no wireless extensions.

eth0      no wireless extensions.

usb0      no wireless extensions.

root@beaglebone:/# 

Agradeço qualquer ajuda. Acho que a resposta será útil para mim e para outras pessoas que tentam usar esse tipo de WiFi USB com o BeagleBone.

ATUALIZAÇÃO: aprendi um pouco comaquie editei meu arquivo de interfaces via sudo nano /etc/network/interfaces. Descomentei a seção wifi .. adicionei o nome da rede e a senha ... então veja abaixo. Alguma ideia do que está acontecendo?

root@beaglebone:/# ifup wlan0
Internet Systems Consortium DHCP Client 4.2.2
Copyright 2004-2011 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/

Listening on LPF/wlan0/00:c0:ca:6d:70:3d
Sending on   LPF/wlan0/00:c0:ca:6d:70:3d
Sending on   Socket/fallback
DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 8
receive_packet failed on wlan0: Network is down
DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 9


Message from syslogd@beaglebone at Oct 15 04:05:13 ...
 kernel:[ 3957.594437] Internal error: Oops: 817 [#1] SMP THUMB2

Message from syslogd@beaglebone at Oct 15 04:05:13 ...
 kernel:[ 3957.676479] Process wpa_supplicant (pid: 2276, stack limit = 0xd5988240)

Message from syslogd@beaglebone at Oct 15 04:05:13 ...
 kernel:[ 3957.683943] Stack: (0xd5989da8 to 0xd598a000)

Message from syslogd@beaglebone at Oct 15 04:05:13 ...
 kernel:[ 3957.688819] 9da0:                   d5a3f520 00000000 11111111 d5989da8 d5a3f50c d5924548

Message from syslogd@beaglebone at Oct 15 04:05:13 ...
 kernel:[ 3957.697880] 9dc0: d5a3f500 d5924000 00008914 d5ac680c d5ac6800 c045a3db d5a3e400 bf9dc255

Message from syslogd@beaglebone at Oct 15 04:05:13 ...
 kernel:[ 3957.706919] 9de0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

Message from syslogd@beaglebone at Oct 15 04:05:13 ...
 kernel:[ 3957.715986] 9e00: d5a3f50c 00000000 00000000 d5a3e400 d5924548 00000000 d5924000 00008914

Message from syslogd@beaglebone at Oct 15 04:05:13 ...
 kernel:[ 3957.725032] 9e20: d5ac680c d5ac6800 00000000 bf958b2b 0000000d 00000000 00000001 00000000

Message from syslogd@beaglebone at Oct 15 04:05:13 ...
 kernel:[ 3957.734092] 9e40: d5ac680c d5924000 bf981034 00000000 d592402c 00008914 d5ac680c d5ac6800

Message from syslogd@beaglebone at Oct 15 04:05:13 ...
 kernel:[ 3957.743128] 9e60: 00000000 bf9591ff d5924000 c03bfd63 c03bfd03 d5924000 00001003 00001002

Message from syslogd@beaglebone at Oct 15 04:05:13 ...
 kernel:[ 3957.752177] 9e80: 00000001 c03bfeed 00008914 d5924000 00001002 d5924000 bea2aa54 c03bffa9

Message from syslogd@beaglebone at Oct 15 04:05:13 ...
 kernel:[ 3957.761223] 9ea0: 00000000 00000001 d5924000 c03f87a1 00000000 01000000 6e616c77 00000030

Message from syslogd@beaglebone at Oct 15 04:05:13 ...
 kernel:[ 3957.770279] 9ec0: 00000000 00000000 00001003 00000000 00000000 00000000 00000000 00008914

Message from syslogd@beaglebone at Oct 15 04:05:13 ...
 kernel:[ 3957.779332] 9ee0: bea2aa54 c081c740 d5060e40 00000007 00000000 00000000 00000005 c03b1cfd

Message from syslogd@beaglebone at Oct 15 04:05:13 ...
 kernel:[ 3957.788405] 9f00: c03b1bb1 d5060e60 bea2aa54 d5957800 00000007 c00b36ab d5060220 c00b58bf

Message from syslogd@beaglebone at Oct 15 04:05:13 ...
 kernel:[ 3957.797422] 9f20: d5150f60 00000000 d5150f60 00000000 d5150fb4 c00b5d13 00002710 d5904b40

Message from syslogd@beaglebone at Oct 15 04:05:13 ...
 kernel:[ 3957.806479] 9f40: 00000000 d5060c80 00000000 bea2a914 00000129 c000c1c4 d5988000 d5957800

Message from syslogd@beaglebone at Oct 15 04:05:13 ...
 kernel:[ 3957.815514] 9f60: 00000000 bea2aa54 00008914 00000007 00000000 00000000 00000005 c00b3727

Message from syslogd@beaglebone at Oct 15 04:05:13 ...
 kernel:[ 3957.824556] 9f80: 00000007 00000000 bea2aa54 000a5ae0 00000001 00000007 00000036 c000c1c4

Message from syslogd@beaglebone at Oct 15 04:05:13 ...
 kernel:[ 3957.833563] 9fa0: d5988000 c000c021 000a5ae0 00000001 00000007 00008914 bea2aa54 00001003

Message from syslogd@beaglebone at Oct 15 04:05:13 ...
 kernel:[ 3957.842606] 9fc0: 000a5ae0 00000001 00000007 00000036 00000007 bea2ab4c 000a5ae0 00000005

Message from syslogd@beaglebone at Oct 15 04:05:13 ...
 kernel:[ 3957.851646] 9fe0: 000a85c4 bea2aa50 0006a87b b6ce1f6c 60000010 00000007 00000000 00000000

Message from syslogd@beaglebone at Oct 15 04:05:13 ...
 kernel:[ 3957.985588] Code: 61a2 f8cd 8000 9301 (601a) 9702 
DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 15
send_packet: Network is down


DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 10
send_packet: Network is down




^Xc^Z
[1]+  Stopped                 ifup wlan0

Agora desta vez digitei ifconfig wlan0(chegando a algum lugar):

root@beaglebone:~# ifconfig wlan0
wlan0     Link encap:Ethernet  HWaddr 00:c0:ca:6d:70:3d  
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

Agora tentei isso com base em uma dicaaqui:

root@beaglebone:~# ip link set wlan0 up
RTNETLINK answers: Operation not possible due to RF-kill
root@beaglebone:~# 

Agora, tentando resolver este erro de RF-kill com base emessealimentar.

Uhoh - estou sendo "bloqueado"

root@beaglebone:~# rfkill list all
0: phy0: Wireless LAN
    Soft blocked: no
    Hard blocked: yes
root@beaglebone:~# 

Responder1

No final, isso foi bastante simples, graças à ajuda do Dbo. Não posso confirmar se o wpa_supplicant foi necessário para isso funcionar, pois já o tinha instalado quando começou a funcionar ( aptitude install wpasupplicant).

Isto é o que eu fiz:

1. sudo nano /etc/network/interfaces

  • Edite a parte do exemplo de WiFi, removendo comentários
  • Adicione o allow-hotplug wlan0 (ou certifique-se de que ele esteja lá e descomentado)
  • Mantenha o auto wlan0 comentado (obrigado ao Dbo por esta sugestão)
  • Adicione o nome da sua rede sem fio em texto simples (wpa-ssid)
  • Adicione sua senha em texto simples (wpa-psk)

insira a descrição da imagem aqui

2. reiniciar(opcional, mas por algum motivo foi necessário, e funcionou em todas as reinicializações subsequentes)

3.iwconfig insira a descrição da imagem aqui

Esselinkacabei fornecendo muitas informações úteis, mas por alguma razão não estou precisando digitar ip a, ip link set wlan0 up. Não posso confirmar se é porque já fiz isso anteriormente ou porque "simplesmente funciona". Cada vez que o BeagleBone inicializa, ele detecta automaticamente a rede WiFi. Digito curl www.google.compara confirmar.

ATUALIZAÇÃO: Então, eu queria testar o problema de up/down do ip link set wlan0. Para desligá-lo, você precisa desligá-lo duas vezes por qualquer motivo. Isso apaga a luz azul do dongle. Configurar o wlan0 novamente o traz de volta e se conecta automaticamente à rede (piscando).

insira a descrição da imagem aqui

Então, para testar mais, configurei o wlan0 para baixo e reiniciei. Desta vez, quando reiniciou, a luz do dongle USB piscou brevementeentão fiquei desligado.
insira a descrição da imagem aqui O "bloco rígido" de antes retornou como descobri quando tentei digitar ip link set wlan0 up, e rfkill list all.

Reiniciei o BeagleBone e isso desapareceu.

Portanto: para resumir a atualização, não a desligue com o wlan0 desativado e, se o fizer, pode ser necessário configurá-lo para o wlan0 (que falha) e reinicializar.

Finalmente, observe que este dongle USB WiFi funciona QUENTE! É ótimo porque possui uma antena poderosa que você pode trocar por uma personalizada, mas é pelo menos 5X mais quente que o próprio BeagleBone, o que significa vários Watts de calor sendo desperdiçados. Como usarei isso para uma configuração remota alimentada por bateria solar, precisarei aprender como ligar e desligar este dongle WiFi de maneira confiável. Não tenho certeza se ip link set wlan0 downserá bom o suficiente para isso. Na verdade, o comando funcionou para desconectar, fazendo com que a luz de status azul no dongle USB ficasse sólida (depois de piscar anteriormente), mas o consumo de energia ainda precisa ser testado (vai de acordo com o calor produzido por enquanto).

UPDATE2: por algum motivo tudo isso parou de funcionar. Acabei precisando usar o comando ifup (parte do wpa_supplicant, eu acho). ifup wlan0, ifdown wlan0, ifquery ... etc. no final ifdown -a (tudo desligado) desligou tudo, e ifup wlan0 me permitiu ligá-lo.

informação relacionada