Автор Тема: WPA/WPA2 WiFi мрежа и Slackware 13 [РЕШЕН]  (Прочетена 3703 пъти)

vstoykov

  • Напреднали
  • *****
  • Публикации: 1286
  • Distribution: Ubuntu
  • Window Manager: Fluxbox
    • Профил
    • WWW
Това е продължение на темата отворена WiFi мрежа и Slackware 13. Пускам това в нова тема за по-добро SEO (за да излиза в търсачките когато някой търси с подходящи ключови думи).

Целта ми беше да намеря начин за настройка на мрежата без графични инструменти и по възможно най-простия начин. Скриптовете са подходящи (може би след лека преработка) за вграждане в живи дистрибуции (в същност те са модификация на скрипта от живата дистрибуция Slax за настройка на мрежата).

Код
GeSHi (Bash):
  1. #! /bin/sh
  2. # /etc/rc.d/rc.inet1
  3. # This script is used to bring up the various network interfaces.
  4. #
  5. # Modified for SLAX by Tomas M. <http://slax.linux-live.org>
  6. #
  7.  
  8. if [ "$1" = "start" -o "$1" = "" ]; then
  9.  
  10.   ifconfig lo down 2>/dev/null
  11.   /sbin/ifconfig lo 127.0.0.1 2>/dev/null
  12.   /sbin/route add -net 127.0.0.0 netmask 255.0.0.0 lo 2>/dev/null
  13.  
  14.   # here is how to setup winfi device easily.
  15.   # First type 'iwconfig' command to see which devices are WIFI-enabled
  16.   #
  17.       # find out which device is WIFI-enabled
  18.          eth=$(iwconfig 2>&1 | grep IEEE | cut -d " " -f 1)
  19.          ifconfig $eth down
  20.  
  21.       # mac address of your access point
  22.       #   iwconfig $eth ap 11:23:b5:13:43:16
  23.  
  24.       # channel value. You may skip this one, but some drives require this
  25.       #   iwconfig $eth channel 11
  26.  
  27.       # security key for WEP, if you are using it
  28.       #   iwconfig $eth key a43b436a3c6236b4a3c5d2b5a3
  29.  
  30.       # WPA/WPA2 ************************************
  31.  
  32.       key=""
  33.       essid=""
  34.       driver="wext"
  35.  
  36.       # drivers:
  37.       #  wext = Linux wireless extensions (generic)
  38.       #  nl80211 = Linux nl80211/cfg80211
  39.       #  hostap = Host AP driver (Intersil Prism2/2.5/3)
  40.       #  atmel = ATMEL AT76C5XXx (USB, PCMCIA)
  41.       #  ndiswrapper = Linux ndiswrapper
  42.       #  ipw = Intel ipw2100/2200 driver (old; use wext with Linux 2.6.13 or newer)
  43.       #  wired = wpa_supplicant wired Ethernet driver
  44.       #  ralink = Ralink Wireless Client driver
  45.  
  46.       if [ "$essid" == "" ]; then
  47.        echo -n "Enter ESSID: "
  48.        read essid
  49.       fi
  50.  
  51.       if [ "$key" == "" ]; then
  52.        echo -n "Enter WPA key: "
  53.        read key
  54.       fi
  55.  
  56.       if [ "$driver" == "" ]; then
  57.        echo -n "Enter wpa_supplicant driver: "
  58.        read driver
  59.       fi
  60.  
  61.       echo > /tmp/wpa_supplicant.conf
  62.       chmod 600 /tmp/wpa_supplicant.conf
  63.       chown root:root /tmp/wpa_supplicant.conf
  64.       wpa_passphrase "$essid" "$key" > /tmp/wpa_supplicant.conf
  65.       wpa_supplicant -D$driver -i$eth -c/tmp/wpa_supplicant.conf -B
  66.  
  67.       # your network name
  68.       #   iwconfig $eth essid $essid
  69.  
  70.       # now enable the device so dhcpcd can see it in the next step
  71.          ifconfig $eth up
  72.   #
  73.   # end of wifi sample configuration
  74.  
  75.   for eth in `ls /sys/class/net | grep -v sit`; do
  76.      # bring all interfaces up and start dhcpcd for all of them
  77.      # use -t 0 to keep it running indefinitely
  78.      if [ "$eth" != "lo" ]; then
  79.         echo "Auto Configure IP address for $eth: /sbin/dhcpcd -t 60 $eth &"
  80.         kill $(cat /etc/dhcpc/dhcpcd-$eth.pid 2>/dev/null) 2>/dev/null
  81.         rm -f /etc/dhcpc/dhcpcd-$eth.pid
  82.         /sbin/ifconfig $eth up 2>/dev/null
  83.         /sbin/dhcpcd -t 0 $eth >/dev/null 2>&1 &
  84.      fi
  85.   done
  86.  
  87. fi
  88.  
  89. if [ "$1" = "stop" ]; then
  90.   killall dhcpcd
  91.   killall wpa_supplicant
  92. fi

Добре е да редактирате редовете:

Код
GeSHi (Bash):
  1.       key=""
  2.       essid=""

за да не се налага да въвеждате тези данни при всяко стартиране на компютъра.

В някои случаи може да се наложи и редакция на този ред:
Код
GeSHi (Bash):
  1.       driver="wext"

Списък с драйверите:

Код:
wext = Linux wireless extensions (generic)
nl80211 = Linux nl80211/cfg80211
hostap = Host AP driver (Intersil Prism2/2.5/3)
atmel = ATMEL AT76C5XXx (USB, PCMCIA)
ndiswrapper = Linux ndiswrapper
ipw = Intel ipw2100/2200 driver (old; use wext with Linux 2.6.13 or newer)
wired = wpa_supplicant wired Ethernet driver
ralink = Ralink Wireless Client driver


Внимание! Преди да редактирате файла /etc/rc.d/rc.inet1 направете резервно копие. Същите настройки вероятно може да се направят и както пише в документацията за Slackware (чрез редакция на rc.inet1.conf,  /etc/wpa_supplicant.conf и може би други файлове). След редакция на файла /etc/rc.d/rc.inet1 мрежовите настройки, които сте направили преди това (записани в rc.inet1.conf) няма да важат и мрежата няма да работи! Този скрипт е подходящ повече за вграждане в живи дистрибуции отколкото за инсталирани системи.
« Последна редакция: Jun 03, 2010, 21:38 от vstoykov »
Активен