HI, I found some issues, so I am tracing netcfg source code which is downloaded from http://archive.ubuntu.com/ubuntu/pool/main/n/netcfg/netcfg_1.142ubuntu7.tar.xz. I have some questions about the netcfg code flow, so I hope you can help to answer/explain for them.
I saw netcfg.c has defined the state machine in main loop. Depend on different state, the network interface will be up/down. For example, config a WPA wireless network and with DHCP method, I list the state flow, and the wlan0 status after this state as below: 1. GET_INTERFACE (wlan0 down) 2. WCONFIG (no change) 3. WCONFIG_ESSID (wlan0 is up first. If choose essid from the list, wlan0 will be down; if choose enter essid manually, wlan0 will keep up) 4. WCONFIG_SECURITY_TYPE (no change) 5. WCONFIG_WPA (no change) 6. START_WPA (no change) 7. GET_METHOD (no change) 8. GET_DHCP (wlan0 up) The issue I encountered is choosing essid from the list, wlan0 will be down, so I could see the below errors in syslog during START_WPA state: Dec 2 04:37:11 localhost netcfg[8076]: INFO: buf = wpa_state=INTERFACE_DISABLED#012address=00:16:01:80:8a:47#012uuid=c9148e48-dd38-516c-80e Dec 2 04:37:51 localhost netcfg[8076]: message repeated 8 times: [ INFO: buf = wpa_state=INTERFACE_DISABLED#012address=00:16:01:80:8a:47#0] Dec 2 04:37:53 localhost wpa_supplicant[4114]: wlan0: CTRL-EVENT-SCAN-FAILED ret=-100 And this causes the configuration is failed. But if I choose enter essid manually, it will be successful because wlan0 keeps up during START_WPA state. My first question is: Why not keeping the wlan0 is up for both use cases because it needs to send commands to wpa_supplicant daemon during START_WPA state? Another example is setting Open Network. I choose 'Open Network' and left wep key as blank. From syslog, I didn't see the association with access point during WCONFIG_WEP state. Is this expected? It will be failed due to wlan is carrier down: Dec 2 05:22:48 localhost netcfg[6898]: DEBUG: State is now 0 Dec 2 05:22:48 localhost netcfg[6898]: DEBUG: Want link on wlan0 Dec 2 05:22:48 localhost netcfg[6898]: INFO: Waiting time set to 3 Dec 2 05:22:49 localhost netcfg[6898]: INFO: ethtool-lite: wlan0: carrier down Dec 2 05:22:50 localhost netcfg[6898]: message repeated 5 times: [ INFO: ethtool-lite: wlan0: carrier down] My second question is: Is this expected without association with access point before doing DHCPDISCOVER? NOTE: I tried to sync and build the latest source from https://anonscm.debian.org/git/d-i/netcfg.git, but I could still encounter the same issues. Information of my environment: $ lshw -C network *-network description: Ethernet interface product: RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller vendor: Realtek Semiconductor Co., Ltd. physical id: 0 bus info: pci@0000:01:00.0 logical name: eth0 version: 15 serial: 00:04:4b:cc:2e:49 size: 10Mbit/s capacity: 1Gbit/s width: 64 bits clock: 33MHz capabilities: pm msi pciexpress msix bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation configuration: autonegotiation=on broadcast=yes driver=r8168 driverversion=8.045.08-NAPI duplex=half latency=0 link=no multicast=yes port=twisted pair speed=10Mbit/s resources: irq:406 ioport:1000(size=256) memory:13004000-13004fff memory:13000000-13003fff *-usb:1 description: Wireless interface product: WLI-U2-KG54 vendor: Buffalo physical id: 3 bus info: usb@1:2.2.3 logical name: wlan0 version: 0.01 serial: 00:16:01:80:8a:47 capabilities: usb-2.00 ethernet physical wireless configuration: broadcast=yes driver=rt2500usb driverversion=4.9.140-tegra firmware=N/A link=no maxpower=400mA multicast=yes speed=480Mbit/s wireless=IEEE 802.11 *-network:0 description: Ethernet interface physical id: 3 logical name: rndis0 serial: fe:99:ee:1d:5f:f1 capabilities: ethernet physical configuration: broadcast=yes driver=g_ether driverversion=29-May-2008 firmware=tegra-xudc link=yes multicast=yes *-network:1 description: Ethernet interface physical id: 4 logical name: usb0 serial: fe:99:ee:1d:5f:f3 capabilities: ethernet physical configuration: broadcast=yes driver=g_ether driverversion=29-May-2008 firmware=tegra-xudc link=yes multicast=yes *-network:2 description: Ethernet interface physical id: 5 logical name: l4tbr0 serial: fe:99:ee:1d:5f:f1 capabilities: ethernet physical configuration: broadcast=yes driver=bridge driverversion=2.3 firmware=N/A ip=192.168.55.1 link=yes multicast=yes *-network:3 DISABLED description: Ethernet interface physical id: 6 logical name: dummy0 serial: 46:1a:14:65:74:19 capabilities: ethernet physical configuration: broadcast=yes driver=dummy driverversion=1.0 $ lsb_release -a Distributor ID: Ubuntu Description: Ubuntu 18.04.3 LTS Release: 18.04 Codename: bionic $ uname -a Linux localhost.localdomain 4.9.140-tegra #7 SMP PREEMPT Thu Nov 28 14:01:51 CST 2019 aarch64 aarch64 aarch64 GNU/Linux Thanks a lot. Penny ----------------------------------------------------------------------------------- This email message is for the sole use of the intended recipient(s) and may contain confidential information. Any unauthorized review, use, disclosure or distribution is prohibited. If you are not the intended recipient, please contact the sender by reply email and destroy all copies of the original message. -----------------------------------------------------------------------------------