무선 네트워크에 자동으로 연결(Ångström Linux)

무선 네트워크에 자동으로 연결(Ångström Linux)

나는 사용하고있다옹스트롬리눅스에서비글보드-xM. 하나 설치했어요RTL8188SU USB Wi-Fi 어댑터올바르게 구성하십시오. 하지만 auto파일에서 인터페이스를 하나로 표시했는데도 자동으로 연결되지 않습니다. /etc/network/interfaces/etc/network/interfaces파일은 다음과 같습니다( wlan0설정만 붙여넣음).

auto wlan0
iface wlan0 inet static
    address 192.168.2.50
    netmask 255.255.255.0
    gateway 192.168.2.1
    wireless_mode managed
    wireless_essid MY NETWORK ESSID
    wireless_key   MY_PASS

ifconfig다음은 시스템 시작 후 명령의 출력입니다.

root@beagleboard:~# ifconfig
lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:24 errors:0 dropped:0 overruns:0 frame:0
          TX packets:24 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:1632 (1.5 KiB)  TX bytes:1632 (1.5 KiB)

wlan0     Link encap:Ethernet  HWaddr XX:XX:XX:XX:XX:XX
          inet6 addr: fe80::2e0:4cff:fe03:cbb1/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:241 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

보시다시피 inet인터페이스에는 연결이 없습니다 wlan0. 을 계속 입력하면 ifdown wlan0인터페이스 ifup wlan0설정에 따라 무선 연결이 성공적으로 설정됩니다. ifconfig다시 시작한 후의 출력은 wlan0다음과 같습니다.

wlan0     Link encap:Ethernet  HWaddr XX:XX:XX:XX:XX:XX
          inet addr:192.168.2.50  Bcast:192.168.2.255  Mask:255.255.255.0
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:974 errors:0 dropped:0 overruns:0 frame:0
          TX packets:22 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

시스템 시작 시(바람직하게는 Wi-Fi 어댑터를 다시 연결한 후) 무선 연결이 자동으로 설정되기를 원합니다. 내가 그리워하는 것이 있나요?

편집하다:

부팅 로그를 추적한 결과 ESSID 설정에 대해 불평하는 메시지가 표시되었습니다.

Error for wireless request "Set ESSID" (8B1A) :
    SET failed on device wlan0 ; Operation not permitted.

그러나 나는 문제의 원인을 깨닫지 못했습니다. 시스템이 부팅된 후 네트워크를 다시 시작하여 연결을 설정할 수 있습니다.

답변1

아니면 내 메모를 활용하는 것이 더 좋습니다...

  1. 커넥터 비활성화:

    # systemctl disable connman.service
    
  2. $ cat > /etc/network/interfaces <<EOF
    auto lo
    iface lo inet loopback
    
    auto eth0
    iface eth0 inet static
    address 192.168.0.99
    netmask 255.255.255.0
    gateway 192.168.0.1
    dns-nameservers 192.168.0.1
    
    iface usb0 inet static
    address 192.168.7.2
    netmask 255.255.255.0
    gateway 192.168.7.1
    dns-nameservers 192.168.7.1
    
    iface wlan0 inet static
    address 192.168.0.98
    netmask 255.255.255.0
    gateway 192.168.0.1
    dns-nameservers 192.168.0.1
    wireless_mode managed
    wireless_essid “VM275247-2G”
    wpa-driver wext
    wpa-conf /etc/wpa_supplicant.conf
    pre-up wpa_supplicant -B -Dwext -iwlan0 -c/etc/wpa_supplicant.conf
    post-down killall -q wpa_supplicant
    EOF
    
  3. 만들다resolv.conf

    $ cat >/etc/resolv.conf <<EOF
    search local
    nameserver 192.168.0.1
    EOF
    
  4. wpa_supplicant.conf비밀번호로 생성

    $ cat >/etc/wpa_supplicant.conf <<EOF
    ap_scan=2
    
    network={
    ssid="VM275247-2G"
    proto=WPA RSN
    key_mgmt=WPA-PSK
    pairwise=CCMP TKIP
    group=CCMP TKIP
    psk=xxxxxxxxxxxxxxxxxxxxxxxxxxxxx1
    }
    EOF
    
  5. Wi-Fi 서비스 만들기

    $ cat >/etc/systemd/system/net.service <<EOF
    [Unit]
    Description=Network interfaces
    Wants=network.target
    Before=network.target
    BindsTo=sys-subsystem-net-devices-wlan0.device
    After=sys-subsystem-net-devices-wlan0.device
    
    [Service]
    Type=oneshot
    RemainAfterExit=yes
    ExecStart=/bin/sh -c "sleep 5;ifup wlan0"
    ExecStop=/bin/sh -c "ifdown wlan0"
    
    [Install]
    WantedBy=multi-user.target
    EOF
    
  6. ~할 수 있게 하다systemctl

    # systemctl enable net.service
    

답변2

이와 같이? 농담처럼 느껴지지만, 안녕하세요

나는 이더넷 고정 IP로 임베디드 프로젝트를 설정하여 쉽게 SSH로 연결할 수 있도록 하는 것을 좋아합니다. WiFI는 유선보다 낫기 때문에 프로젝트를 모바일로 만들 수 있습니다. 이것의 가장 좋은 점은 BBB가 내가 가지고 있는 Edimax USB WiFi 모듈과 작동하기 위해 드라이버가 필요하지 않다는 것입니다. 이것은 Raspberry Pi에서 자주 사용되는 것과 동일합니다. Angstrom의 공로로(때로는 손해를 끼치기도 함) 그들은 패키지와 드라이버의 최신 개정판을 매우 잘 따라잡습니다.

먼저 Angstrom과 함께 제공되는 네트워크 관리자인 Connman을 사용해 보았습니다. Connman은 문제 없이 DHCP용 WiFi를 설정할 수 있었습니다. 단점은 부팅 시 인터페이스를 불러오지 않는 것 같고 고정 IP로 구성할 수 없다는 것입니다. 나는 GUI를 통해 이를 달성하고 무선 인터페이스용 Connman 구성 파일을 작성하려고 했습니다. 그래서 콘맨을 포기했습니다. 아직 전성기를 맞이할 준비가 되지 않았습니다. 어떤 사람들은 우분투의 채택이 우분투의 준비가 되었음을 입증했다고 주장합니다. 그러나 수년 동안 우분투에서 열악한 네트워크 관리를 경험한 사람들은 이것을 받아들이는 것보다 더 잘 알고 있습니다. 하지만 더 중요한 것은 BBB가 노트북이 아닌 임베디드 시스템이라는 점입니다. GUI 인터페이스에 관심을 두어서는 안 되며, 사용자가 이동 중에도 무선 인터페이스를 지속적으로 재구성할 수 있습니다. 나는 이것을 무언가로 만들 계획이며 인터페이스가 매번 같은 방식으로 안정적으로 나타나기를 원합니다.

그래서 나는 기본으로 돌아가기로 결심했다. 먼저, 방해가 되지 않도록 Common이 필요합니다. 다음과 같이 비활성화할 수 있습니다.

$ systemctl disable connman.service

다음으로 유무선 인터페이스를 구성하기 위한 인터페이스 파일을 작성해야 합니다.

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 192.168.0.xxx
netmask 255.255.255.0
gateway 192.168.0.1
dns-nameservers 192.168.0.xxx,8.8.8.8

iface usb0 inet static
address 192.168.10.xxx
netmask 255.255.255.0
gateway 192.168.10.1
dns-nameservers 192.168.10.1,8.8.8.8

auto wlan0
iface wlan0 inet static
address 192.168.0.xx
netmask 255.255.255.0
gateway 192.168.0.xxx
dns-nameservers 192.168.0.1,8.8.8.8
wireless_mode managed
wireless_essid NAME_OF_AP
wpa-driver wext
wpa-conf /etc/wpa_supplicant.conf
pre-up wpa_supplicant -B -Dwext -iwlan0 -c/etc/wpa_supplicant.conf
post-down killall -q wpa_supplicant

무선 네트워크에서 암호화를 사용하고 있다면(그리고 그래야만 한다면) 연결하는 데 도움이 되는 wpa_supplicant 파일이 필요합니다. 이 파일에 대한 키가 필요합니다. 다음과 같이 네트워크에 대한 정보를 얻을 수 있습니다.

$ wpa_passphrase

출력을 복사하여 wpa_supplicant 파일( /etc/wpa_supplicant.conf)에 붙여넣으면 됩니다. 다음과 같아야 합니다.

ap_scan=2

network={
ssid=
proto=WPA RSN
key_mgmt=WPA-PSK
pairwise=CCMP TKIP
group=CCMP TKIP
psk=Big long string of hex number
}

마지막으로 Angstrom은 init.d를 사용하지 않으므로 부팅 시 인터페이스를 시작하려면 인터페이스 파일에 auto wlan0 이상이 필요합니다. Angstrom은 초기화 시 systemd를 사용합니다. systemd가 이전 버전과의 호환성을 위해 init.d 폴더에서 스크립트를 실행한다는 내용을 읽었지만 그렇지 않은 것 같습니다. 그럼에도 불구하고 새로운 시스템 접근 방식을 채택하는 것이 타당해 보입니다. 따라서 시작 시 인터페이스를 불러오도록 빠른 서비스 구성을 작성했습니다. 그것은 살아있다 /etc/systemd/system/net.service.

서비스 파일의 내용은 다음과 같습니다.

[Unit]
Description=Network interfaces
Wants=network.target
Before=network.target
BindsTo=sys-subsystem-net-devices-wlan0.device
After=sys-subsystem-net-devices-wlan0.device

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/bin/sh -c "sleep 5;ifup wlan0"
ExecStop=/bin/sh -c "ifdown wlan0"

[Install]
WantedBy=multi-user.target

드라이버가 로드된 후 네트워크 대상(주로 네트워크를 사용하는 모든 항목) 이전에 WiFi가 시작됩니다.

시작 시 실행되도록 하려면 다음을 수행하십시오.

$ systemctl enable net.service

그게 다야. WiFi는 시작 시 고정 IP를 제공합니다. SSH를 통해 BBB에 로그인하고 원격으로 드라이브를 마운트할 수 있습니다.

관련 정보