Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
odroid_go_advance:application_note:sdio_wifi [2020/05/21 11:44]
joy.cho [Checking basic connection]
odroid_go_advance:application_note:sdio_wifi [2020/09/03 17:02]
joy.cho
Line 1: Line 1:
 ====== How to configure built-in WIFI module ====== ====== How to configure built-in WIFI module ======
-<WRAP info round> 
-**This wiki page will be updated soon!!!** (2020.05.21) 
-</​WRAP>​ 
  
 <WRAP info round> <WRAP info round>
Line 8: Line 5:
 </​WRAP>​ </​WRAP>​
  
-  - WIFI KEY Features +  - Module Key Features
-  - Checking basic connection+
   - Configuring WIFI station mode (1) - using [Configuration] Menu   - Configuring WIFI station mode (1) - using [Configuration] Menu
   - Configuring WIFI station mode (2) - using command line   - Configuring WIFI station mode (2) - using command line
   - Configuring WIFI AP mode   - Configuring WIFI AP mode
-  - Configuring ​Suspend/​Resume +  - Checking basic connection of wlan0 
-===== WIFI Key Features ===== +  - Workaround to support ​Suspend/​Resume ​with esp8089 module 
-  ​* ​ESP-WROOM-S2 ​that integrates ​ESP8266EX +===== Module ​Key Features ===== 
-  ​* ​WIFI Protocol ​802.11 b/g/n + 
-  Frequency Range 2.4 GHz ~ 2.5 GHz (2400 MHz ~ 2483.5 MHz) +^ Items            ^ Specifications ​                             ^ 
-  ​* ​SDIO interface up to 50 MHz, SDIO v2.0+| Module ​          ​| ​ESP-WROOM-S2 ​                               | 
 +| MCU              | ESP8266EX ​                                  | 
 +WIFI Protocol ​   ​| ​802.11 b/g/n, up to 72.2 Mbps of data rate  
 +Frequency Range  ​| ​2.4 GHz ~ 2.5 GHz (2400 MHz ~ 2483.5 MHz)   | 
 +| Interface ​       | SDIO interface up to 50MHz, SDIO v2.0       |
  
  
Line 27: Line 27:
  
 ===== Configuring WIFI station mode (2) - using command line ===== ===== Configuring WIFI station mode (2) - using command line =====
-Turn on radio.+Or you can establish WIFI network using the following instuctions.\\ 
 +\\ 
 +First, check **esp8089** module is loaded normally. 
 +<code bash target>​ 
 +$ lsmod 
 +Module ​                 Size  Used by 
 +esp8089 ​              ​266240 ​ 0 
 +sch_fq_codel ​          ​20480 ​ 5 
 +ip_tables ​             24576  0 
 +x_tables ​              ​32768 ​ 1 ip_tables 
 +ipv6                  372736 ​ 24 
 +</​code>​ 
 +Turn on wifi radio.
 <code bash target> <code bash target>
 # nmcli radio wifi on # nmcli radio wifi on
 </​code>​ </​code>​
-Check wifi list.+You can get all available WIFI list as following.
 <code bash target> <code bash target>
 $ nmcli dev wifi list $ nmcli dev wifi list
Line 39: Line 51:
         SSID_3 ​         Infra  11    130 Mbit/​s ​ 92      ▂▄▆█ ​ WPA2              SSID_3 ​         Infra  11    130 Mbit/​s ​ 92      ▂▄▆█ ​ WPA2     
 </​code>​ </​code>​
-Add connection.+Enter SSID and password data.
 <code bash target> <code bash target>
 $ nmcli dev wifi con '​SSID_1'​ password '​password_of_ssid1'​ $ nmcli dev wifi con '​SSID_1'​ password '​password_of_ssid1'​
 </​code>​ </​code>​
-Check ip configuration.+If there is no issue during network establishment,​ you will get IP information.
 <code bash target> <code bash target>
 $ ip addr $ ip addr
Line 65: Line 77:
  
 ===== Configuring WIFI AP mode ===== ===== Configuring WIFI AP mode =====
 +There is no GUI menu to configure WIFI AP mode for now.\\ 
 +Please use the following instruction via command line.
 === 1. Update & Upgrade === === 1. Update & Upgrade ===
 <code bash target> <code bash target>
Line 81: Line 94:
 $ sudo systemctl disable dnsmasq $ sudo systemctl disable dnsmasq
 </​code>​ </​code>​
-=== 3. Setup (1) - Configuration ​a static IP ===+=== 3. Setup (1) - Configuring ​a static IP ===
 To configure the static IP address, please edit a dhcpcd configuration file, /​etc/​dhcpcd.conf.\\ To configure the static IP address, please edit a dhcpcd configuration file, /​etc/​dhcpcd.conf.\\
 Go to the end fo this file and add the following lines.\\ Go to the end fo this file and add the following lines.\\
Line 126: Line 139:
 </​code>​ </​code>​
 <code bash target> <code bash target>
-# DAEMON_CONF=""​ 
 DAEMON_CONF="/​etc/​hostapd/​hostapd.conf"​ DAEMON_CONF="/​etc/​hostapd/​hostapd.conf"​
 </​code>​ </​code>​
Line 133: Line 145:
 Add the following information in the dnsmasq configuration file, /​etc/​dnsmasq.conf.\\ Add the following information in the dnsmasq configuration file, /​etc/​dnsmasq.conf.\\
 <code bash target> <code bash target>
-#stop DNSmasq from using resolv.conf+$ vi /​etc/​dnsmasq.conf 
 +</​code>​ 
 +<code bash target>​ 
 +If you don't want dnsmasq to read /etc/resolv.conf ​or any other 
 +# file, getting its servers from this file instead (see below), then 
 +# uncomment this.
 no-resolv no-resolv
-#Interface ​to use+ 
 +If you want dnsmasq ​to listen for DHCP and DNS requests only on 
 +# specified interfaces (and the loopback) give the name of the 
 +# interface (eg eth0) here. 
 +# Repeat the line for more than one interface.
 interface=wlan0 interface=wlan0
 +
 +# On systems which support it, dnsmasq binds the wildcard address,
 +# even when it is listening on only some interfaces. It then discards
 +# requests that it shouldn'​t reply to. This has the advantage of
 +# working even when interfaces come and go and change address. If you
 +# want dnsmasq to really bind only the interfaces it is listening on,
 +# uncomment this option. About the only time you may need this is when
 +# running another nameserver on the same machine.
 bind-interfaces bind-interfaces
 +
 +# Uncomment this to enable the integrated DHCP server, you need
 +# to supply the range of addresses available for lease and optionally
 +# a lease time. If you have more than one network, you will need to
 +# repeat this for each network on which you want to supply DHCP
 +# service.
 dhcp-range=192.168.4.3,​192.168.4.20,​12h dhcp-range=192.168.4.3,​192.168.4.20,​12h
 </​code>​ </​code>​
Line 152: Line 187:
 === 7. Start services === === 7. Start services ===
 <code bash target> <code bash target>
-service ​dnsmasq start +sudo systemctl enable ​dnsmasq 
-service ​hostapd start+$ sudo systemctl ​start dnsmasq 
 + 
 +sudo systemctl enable ​hostapd 
 +$ sudo systemctl ​start hostapd 
 +</​code>​ 
 +<code bash target>​ 
 +$ ip addr 
 +1: lo: <​LOOPBACK,​UP,​LOWER_UP>​ mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1 
 +    link/​loopback 00:​00:​00:​00:​00:​00 brd 00:​00:​00:​00:​00:​00 
 +    inet 127.0.0.1/8 scope host lo 
 +       ​valid_lft forever preferred_lft forever 
 +    inet6 ::1/128 scope host  
 +       ​valid_lft forever preferred_lft forever 
 +2: wlan0: <​BROADCAST,​MULTICAST,​UP,​LOWER_UP>​ mtu 1500 qdisc mq state UP group default qlen 1000 
 +    link/ether ab:​cd:​ef:​12:​34:​56 brd ff:​ff:​ff:​ff:​ff:​ff 
 +    inet 192.168.4.1/​24 brd 192.168.4.255 scope global noprefixroute wlan0 
 +       ​valid_lft forever preferred_lft forever 
 +    inet6 fe80::​1234:​1234:​1234:​1234/​64 scope link  
 +       ​valid_lft forever preferred_lft forever 
 +</​code>​ 
 +===== Checking basic connection ===== 
 +If you get fails during network setup, please check the followings using ssh with a USB-to-Ethernet adapter or UART console. 
 + 
 +=== mmc1 node === 
 +<code bash target>​ 
 +$ cat /​sys/​kernel/​debug/​mmc1/​ios 
 +clock: ​         50000000 Hz 
 +vdd:            21 (3.3 ~ 3.4 V) 
 +bus mode:       2 (push-pull) 
 +chip select: ​   0 (don't care) 
 +power mode:     2 (on) 
 +bus width: ​     2 (4 bits) 
 +timing spec:    2 (sd high-speed) 
 +signal voltage: 0 (3.30 V) 
 +driver type:    0 (driver type B) 
 +</​code>​ 
 +=== sdio id === 
 +<code bash target>​ 
 +$ cat /​sys/​bus/​sdio/​devices/​mmc1\:​0001\:​1/​modalias  
 +sdio:​c00v6666d1111 
 +</​code>​ 
 +=== module === 
 +<code bash target>​ 
 +$ lsmod 
 +Module ​                 Size  Used by 
 +esp8089 ​              ​266240 ​ 0 
 +sch_fq_codel ​          ​20480 ​ 5 
 +ip_tables ​             24576  0 
 +x_tables ​              ​32768 ​ 1 ip_tables 
 +ipv6                  372736 ​ 24
 </​code>​ </​code>​
  
-===== Configuring ​Suspend/​Resume =====+===== Workaround to support ​Suspend/​Resume ​with esp8089 module ​=====
  
 **/​lib/​systemd/​system-sleep/​sleep**\\ **/​lib/​systemd/​system-sleep/​sleep**\\