Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Release Date: 2009-0825, ver 0003
- RTL8192SU Linux driver
- --This driver supports RealTek rtl8192SU USB Wireless LAN NIC
- for
- 2.6 kernel:
- Fedora Core 2/3/4/5, Debian 3.1, Mandrake 10.2/Mandriva 2006,
- SUSE 9.3/10.1/10.2, Gentoo 3.1, Ubuntu 7.10/8.04, etc.
- 2.4 kernel:
- Redhat 9.0/9.1
- ===============================================================================
- Component
- ===============================================================================
- The driver is composed of several parts:
- 1. Firmare to make nic work
- 1.1 firmare/RTL8192SU
- 2. Module source code
- 2.1 ieee80211
- 2.2 HAL/rtl8192u
- 2.3 wpa_supplicant-0.5.10 (User can download the latest version from
- internet also, but it is suggested to use default package contained
- in the distribution because there should less compilation issue.)
- 3. Script to build the modules
- 3.1 Makefile
- 4. Script to load/unload modules
- 4.1 wlan0up
- 4.2 wlan0down
- 5. Script and configuration for DHCP
- 5.1 wlan0dhcp
- 5.2 ifcfg-wlan0
- 6. Example of supplicant configuration file:
- 6.1 wpa1.conf
- 7. Script to run wpa_supplicant
- 7.1 runwpa
- ===============================================================================
- Installation
- ===============================================================================
- <<Method 1>>
- Runing the scripts accomplish all operations including building up modules
- from the source code, installing driver to the kernel and starting up the nic.
- 1. Build up the drivers from the source code
- make
- 2. Install the driver to the kernel
- make install
- reboot
- 3. bring up wlan if nic is not brought up by GUI, such as NetworkManager
- ifconfig wlan0 up
- Note: use ifconfig to check whether wlan0 is brought up and use iwconfig to check your wlan interface name,
- since it may change wlan0 to wlan1,etc.
- <<Method 2>>
- Or only load the driver module to kernel and start up nic.
- 1. Build up the drivers from the source code
- make
- 2. Copy firmware to /lib/firmware/ or /lib/firmware/(KERNEL_VERSION)/
- cp -rf firmware/RTL8192SU /lib/firmware
- or
- cp -rf firmware/RTL8192SU /lib/firmware/(KERNEL_VERSION)
- Note: This depends on whether (KERNEL_VERSION) subdirectory exists under /lib/firmware
- 3. Load driver module to kernel and start up nic.
- ./wlan0up
- Note: when "insmod: error inserting 'xxxx.ko': -1 File exists" comes out
- after run ./wlan0up, please run ./wlan0down first, then it should
- be ok..
- Note: If you see the message of "unkown symbol" during ./wlan0up, it
- is suggested to build driver by <<Method 1>>.
- ===============================================================================
- Set wireless lan MIBs
- ===============================================================================
- This driver uses Wireless Extension as an interface allowing you to set
- Wireless LAN specific parameters.
- Current driver supports "iwlist" to show the device status of nic
- iwlist wlan0 [parameters]
- where
- parameter explaination [parameters]
- ----------------------- -------------
- Show available chan and freq freq / channel
- Show and Scan BSS and IBSS scan[ning]
- Show supported bit-rate rate / bit[rate]
- For example:
- iwlist wlan0 channel
- iwlist wlan0 scan
- iwlist wlan0 rate
- Driver also supports "iwconfig", manipulate driver private ioctls, to set
- MIBs.
- iwconfig wlan0 [parameters] [val]
- where
- parameter explaination [parameters] [val] constraints
- ----------------------- ------------- ------------------
- Connect to AP by address ap [mac_addr]
- Set the essid, join (I)BSS essid [essid]
- Set operation mode mode {Managed|Ad-hoc}
- Set keys and security mode key/enc[ryption] {N|open|restricted|off}
- For example:
- iwconfig wlan0 ap XX:XX:XX:XX:XX:XX
- iwconfig wlan0 essid "ap_name"
- iwconfig wlan0 mode Ad-hoc
- iwconfig wlan0 essid "name" mode Ad-hoc
- iwconfig wlan0 key 0123456789 [2] open
- iwconfig wlan0 key off
- iwconfig wlan0 key restricted [3] 0123456789
- Note: Better to set these MIBS without GUI such as NetworkManager and be sure that our
- nic has been brought up before these settings. WEP key index 2-4 is not supportted by
- NetworkManager.
- ===============================================================================
- Getting IP address
- ===============================================================================
- After start up the nic, the network needs to obtain an IP address before
- transmit/receive data.
- This can be done by setting the static IP via "ifconfig wlan0 IP_ADDRESS"
- command, or using DHCP.
- If using DHCP, setting steps is as below:
- (1)connect to an AP via "iwconfig" settings
- iwconfig wlan0 essid [name] or
- iwconfig wlan0 ap XX:XX:XX:XX:XX:XX
- (2)run the script which run the dhclient
- ./wlan0dhcp
- or
- dhcpcd wlan0
- (Some network admins require that you use the
- hostname and domainname provided by the DHCP server.
- In that case, use
- dhcpcd -HD wlan0)
- ===============================================================================
- WPAPSK/WPA2PSK
- ===============================================================================
- Wpa_supplicant helps to secure wireless connection with the protection of
- WPAPSK/WPA2PSK mechanism.
- If the version of Wireless Extension in your system is equal or larger than 18,
- WEXT driver interface is recommended. Otherwise, IPW driver interface is advised.
- Note: Wireless Extension is defined us "#define WIRELESS_EXT" in Kernel
- Note: To check the version of wireless extension, please type "iwconfig -v"
- If IPW driver interface is used, it us suggested to follow the steps from 1 to 6.
- If wpa_supplicant has been installed in your system, only steps 5 and 6 are required
- to be executed for WEXT driver interface.
- To see detailed description for driver interface and wpa_supplicant, please type
- "man wpa_supplicant".
- (1)Download latetest source code for wpa supplicant or use wpa_supplicant-0.5.10
- attached in this package. (It is suggested to use default package contained
- in the distribution because there should less compilation issue.)
- Unpack source code of WPA supplicant:
- tar -zxvf wpa_supplicant-0.5.10.tar.gz (e.g.)
- cd wpa_supplicant-0.5.10
- (2)Create .config file:
- cp defconfig .config
- (3)Edit .config file, uncomment the following line if ipw driver interface
- will be applied:
- #CONFIG_DRIVER_IPW=y.
- (4)Build and install WPA supplicant:
- make
- cp wpa_cli wpa_supplicant /usr/local/bin
- NOTE:
- 1. If make error for lack of <include/md5.h>, install the openssl lib(two ways):
- (1) Install the openssl lib from corresponding installation disc:
- Fedora Core 2/3/4/5(openssl-0.9.71x-xx),
- Mandrake10.2/Mandriva10.2(openssl-0.9.7x-xmdk),
- Debian 3.1(libssl-dev), Suse 9.3/10.0/10.1(openssl_devl),
- Gentoo(dev-libs/openssl), etc.
- (2) Download the openssl open source package from www.openssl.org, build and
- install it.
- 2. If make errors happen in RedHat(and also Fedora Core) for kssl.h,
- please add lines below into Makefile
- CPPFLAGS+=-I/usr/kerboros/include
- (5)Edit wpa_supplicant.conf to set up SSID and its passphrase.
- For example, the following setting in "wpa1.conf" means SSID
- to join is "BufAG54_Ch6" and its passphrase is "87654321".
- Example 1: Configuration for WPA-PWK
- network={
- ssid="BufAG54_Ch6"
- #scan_ssid=1 //see note 3
- proto=WPA
- key_mgmt=WPA-PSK
- pairwise=CCMP TKIP
- group=CCMP TKIP WEP104 WEP40
- psk="87654321"
- priority=2
- }
- Example 2: Configuration for LEAP
- network={
- ssid="BufAG54_Ch6"
- key_mgmt=IEEE8021X
- group=WEP40 WEP104
- eap=LEAP
- identity="user1"
- password="1111"
- }
- Example 3: Linking to hidden ssid given AP's security policy exactly.(see note 3 below)
- ap_scan=2
- network={
- ssid="Hidden_ssid"
- proto=WPA
- key_mgmt=WPA-PSK
- pairwise=CCMP
- group=CCMP
- psk="12345678"
- }
- Example 4: Linking to ad-hoc (see note 4 below)
- ap_scan=2
- network={
- ssid="Ad-hoc"
- mode=1
- proto=WPA
- key_mgmt=WPA-NONE
- pairwise=NONE
- group=TKIP
- psk="12345678"
- }
- Note: 1. proto=WPA for WPA, proto=RSN for WPA2.
- 2. If user needs to connect an AP with WPA or WPA2 mixed mode, it is suggested
- to set the cipher of pairwise and group to both CCMP and TKIP unless you
- know exactly which cipher type AP is configured.
- 3. When connecting to hidden ssid, explicit security policy should be given with
- ap_scan=2 being setting.
- 4. It is suggested setting ap_scan to 2 and mode to 1 when linking to or creating an ad-hoc. Group and pairwise
- cipher type should also be explicit, always with group setting to TKIP or CCMP and pairwise setting
- to NONE. Lower version wpa_supplicant may not allow setting group to CCMP with pairwise setting to NONE.
- So if any problem, you may try to set both group and pairwise to CCMP, leaving other setting unchanged, when
- connecting to an CCMP-encrypted ad-hoc.
- 5. More config setting option, please refer to wpa_supplicant.conf in wpa_supplicant.tar.gz that we provide.
- (6)Execute WPA supplicant (Assume rtl8192E and related modules had been
- loaded):
- ./runwpa
- Note: The script runwpa will check Wireless Extension version automatically.
- If the version of Wireless Extension is equal or larger than 18, the
- option of "-D wext" is selected. If the version of Wireless extension
- is less than 18, the option of "-D ipw" is selected.
- ===============================================================================
- For kernel 2.4 notes
- ===============================================================================
- First of all, we have to install the necessary tools for building the driver. In the RedHat9 installation, please
- choose the "Customize the set of packages to be install" and include two packages "Development Tools", "Kernel Development".
- The RedHat 9 (kernel 2.4.20-8) just suppports the WEP security for Wifi. We have to patch the kernel with updating
- wireless extension so that the kernel just supports the WPA, WPA2 functionalities by stardard wireless extension. This
- driver had been verified on the patched 2.4.20-8 kernel and the WPA/WPA2 PSK works fine on the patched kernel.
- First of all, we must have three patch file to update the wireless extension.
- 1. iw241_we16-6.diff (http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/iw241_we16-6.diff)
- 2. iw249_we17-13.diff (http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/iw249_we17-13.diff)
- 3. iw240_we18-5.diff (http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/iw240_we18-5.diff)
- Copy these three patch files to the patient directory of the linux kernel source folder and use the following
- command to patch the RedHat 9 kernel.
- $> patch -p0 < ./iw241_we16-6.diff
- $> patch -p0 < ./iw249_we17-13.diff
- $> patch -p0 < ./iw240_we18-5.diff
- After patching the kernel, please remember to re-build the updated kernel/modules and use it for your target platform.
- Now, the patched kernel had got the ability to support the WPA/WPA2 PSK functionalities with wireless extension interface.
- Reminding: At the first time to use the wpa_supplicant, pleasee remember to compile the wpa_supplicant with the updated
- kernel so that the wpa_supplicant will get the latest wireless extension version for supporting more functionalities.
- Finally, the kernel 2.4 can't support the WPS functionality.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement