Usage Guidelines#
Configuration Parameters for Driver Package#
Download the si91x-rcp-driver
Unzip the driver using the following command.
# unzip SiWT917.x.x.x.x.zip
Enter the super user mode by giving the following command and providing the correct username and password.
# sudo su
The following section provides the steps to configure Wi-Fi station mode using startup script or manual commands. Users can choose any method.
Using Startup Scripts#
Users can use the script at path <system_path>/SiWT917.x.x.x.x/release/
to run Wi-Fi station mode.
# ./start_SiWT917.sh STA
Note:
<system_path>
is the location where the user has downloaded/placed the SiWT917 RCP driver in the system.
Manual Steps#
Compiling the Driver#
Change the working directory to the driver package directory and follow the compilation steps below.
Go to the driver package and copy all the files present in the
<system_path>/SiWT917.x.x.x.x/Firmware
folder to/lib/firmware
by following the commands below.# cd /SiWT917.x.x.x.x/Firmware/ # cp Firmware/* /lib/firmware
Configure the build flags in the driver source by navigating to the driver.
# cd <system_path>/SiWT917.x.x.x.x/
Build the driver using the make command.
# make
For compiling from kernel source or for other embedded platforms like the i.MX6 platform, the user can refer to the SiWT917 RCP Getting Started Guide under section Compilation steps.
After compilation is completed, the driver generates the following modules in the “release” folder according to the configuration.
rsi_91x.ko
rsi_sdio.ko
These are outlined in the following section.
Driver Installation#
To install the driver, use the following commands:
Before installing the driver, install the dependencies using the commands below:
# modprobe mac80211 # modprobe bluetooth # modprobe rfcomm
Insert rsi_91x.ko with the required module params (configuration) as shown below:
# insmod rsi_91x.ko dev_oper_mode=<mode> rsi_zone_enabled=<val> . . Example: insmod rsi_91x.ko dev_oper_mode=1 rsi_zone_enabled=0x1
Select dev_oper_mode as 1. For all other supported modes, refer to SiWT917 RCP Developer’s Guide.
In the above example, the module param rsi_zone_enabled is used to program the verbosity of the debug logs. More information can be found under Debug Prints.
Now install rsi_sdio.ko
by entering the below command :
# insmod rsi_sdio.ko sdio_clock = 50 Mhz
After a successful installation, a new wireless interface will be created as per the dev_oper_mode selection and it can be seen using the ifconfig command.
# ifconfig -a
Expect an output like the sample shown below with all other available interfaces included.
wlan0 flags = 4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::8da:1aff:fe1e:d1c8 prefixlen 64 scopeid 0x20<link>
ether 94:b2:16:98:ac:dc txqueuelen 1000 (Ethernet)
RX packets: 3 bytes 372 (372.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets: 6 bytes 696 (696.0 B)
TX errors 0 dropped 0 overruns 0 collisions:0
Note: WLAN interface (wlan0) name may vary across the systems.
Installation of the Wi-Fi Client Mode#
This section provides the steps to configure the Wi-Fi client mode using wpa_supplicant.
Before running wpa_supplicant, stop the existing network manager and unblock WLAN from rfkill. The commands below are used to stop the network-manager on different Linux distributions.
For ubuntu, we need to use the following command:
# service network-manager stop
For Fedora/Raspberry Pi, we need to use the following command:
# service NetworkManager stop
To stop rfkill blocking WLAN, we need to use the following command:
# rfkill unblock wlan (or) #rfkill unblock all
Bring up the Standard WLAN access point in the desired channel and security. For our setup, we have configured our ASUS TUF Gaming AX5400 Dual-band Wi-Fi 6 with the following configuration as shown in the figure below.
A few key parameters need to be enabled.
11ax feature should be enabled to get high throughput.
Edit the network block present in the
sta_settings.conf
file in the release folder with the credentials of the ASUS TUF Gaming AX5400 Dual-band Wi-Fi 6 access point. For our setup, we have updated in the following block.ctrl_interface=/var/run/wpa_supplicant update_config = 1 #Enable this network block for CCMP/TKIP mode network = { ssid = "SSID" pairwise = CCMP TKIP group = CCMP TKIP key_mgmt = WPA-PSK psk = "12345678" proto=WPA2 WPA }
For more details on how to update the network block for other security modes in the
sta_settings.conf
file, users must follow the SiWT917 RCP Developer’s Guide.Start the supplicant using the following command:
# wpa_supplicant -i wlan0 -D nl80211 –c sta_settings.conf –dddt > supp.log &
–i option specifies the Wi-Fi interface name.
<interface name> - This name as listed in iw dev output.
-D specifies the driver interface to be used. In open-source driver, it is nl80211.
-c specifies the supplicant configuration file.
-d specifies the log level of supplicant. You can append more d's to increase the verbose.
To check whether the connection is successful or not, use the following command:
# iwconfig wlan0
For example, if connection is successful, we will see the output below:
wlan0 IEEE 802.11bgn ESSID:"SSID" Nickname:"" Mode:Managed Frequency:2.412 GHz Access Point: B0:A7:B9:C4:52:CA Bit Rate:39 Mb/s Tx-Power = 16 dBm Retry short limit:7 RTS thr:2353 B Fragment thr:2352 B Encryption key:off Power Management:off Link Quality = 80/80 Signal level = -28 dBm Noise level:0 dBm Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0
If the connection is successful, then the connected Access point SSID along with the MAC address is displayed as shown above. If it is not connected to an Access point, a message "Not Associated" is displayed as shown below.
wlan0 IEEE 802.11 ESSID:off/any Mode:Managed Access Point: Not-Associated Tx-Power=0 dBm Retry short limit:7 RTS thr:off Fragment thr:off Encryption key:off Power Management:off
The IP address for the SiWT917-STA can be set in two ways: either get the IP address dynamically from AP or set a static IP address. To obtain a dynamic IP address from AP, use the following commands:
# dhclient wlan0 -r # dhclient wlan0 -v
To set the static IP address to SiWT917-STA, use the following command:
# ifconfig wlan0 192.168.0.14
To check whether IP address is assigned or not, use the following command:
# ifconfig wlan0
Output:
wlan0: flags = 4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.0.14 netmask 255.255.255.0 broadcast 192.168.1.255 inet6 fe80::224:d7ff:fe56:54dc prefixlen 64 scopeid 0x20<link> ether 94:b2:16:98:ac:dc txqueuelen 1000 (Ethernet) RX packets 31160 bytes 31082515 (29.6 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 23356 bytes 3367496 (3.2 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Now, users can perform data transfer tests like ping, iperf, and so on.