System Information:
I installed non-free Debian 9 (current stable) with the full ISO, not the netinstall ISO.
First prepare the bootable USB:
$ wget -c https://cdimage.debian.org/images/unofficial/non-free/images-including-firmware/9.9.0-live+nonfree/amd64/iso-hybrid/debian-live-9.9.0-amd64-lxde+nonfree.iso $ dd if=debian-live-9.9.0-amd64-lxde+nonfree.iso of=/dev/sdb1 bs=4M status=progress; sync/dev/sdb1 is the location of a USB with > 8 GB. (The ISO file is about 2.2 GB.)
(Commands starting with a $ can be run as a user; those with # need to be run as root or using sudo.)
Earlier I had tried the official netinstall ISO, and the wifi did not work, because the iwlwifi firmware was not present. The installer asked for the firmware, so I copied the .ucode files in a separate USB, which the installer didn't seem to read.
The installation went smoothly. Wifi works.
$ uname -a Linux laptop2 4.9.0-9-amd64 #1 SMP Debian 4.9.168-1 (2019-04-12) x86_64 GNU/Linux # sudo dmesg | grep -w iwlwifi [ 30.265020] iwlwifi 0000:02:00.0: firmware: failed to load iwlwifi-8265-26.ucode (-2) [ 30.265081] iwlwifi 0000:02:00.0: Direct firmware load for iwlwifi-8265-26.ucode failed with error -2 [ 30.265101] iwlwifi 0000:02:00.0: firmware: failed to load iwlwifi-8265-25.ucode (-2) [ 30.265138] iwlwifi 0000:02:00.0: Direct firmware load for iwlwifi-8265-25.ucode failed with error -2 [ 30.265152] iwlwifi 0000:02:00.0: firmware: failed to load iwlwifi-8265-24.ucode (-2) [ 30.265197] iwlwifi 0000:02:00.0: Direct firmware load for iwlwifi-8265-24.ucode failed with error -2 [ 30.265209] iwlwifi 0000:02:00.0: firmware: failed to load iwlwifi-8265-23.ucode (-2) [ 30.265255] iwlwifi 0000:02:00.0: Direct firmware load for iwlwifi-8265-23.ucode failed with error -2 [ 30.272587] iwlwifi 0000:02:00.0: firmware: direct-loading firmware iwlwifi-8265-22.ucode [ 30.273498] iwlwifi 0000:02:00.0: loaded firmware version 22.361476.0 op_mode iwlmvm [ 30.289187] iwlwifi 0000:02:00.0: Detected Intel(R) Dual Band Wireless AC 8265, REV=0x230 [ 30.291902] iwlwifi 0000:02:00.0: L1 Enabled - LTR Enabled [ 30.293310] iwlwifi 0000:02:00.0: L1 Enabled - LTR Enabled [ 30.418044] iwlwifi 0000:02:00.0: wlp2s0: renamed from wlan0 # grep wireless_interface /etc/wicd/manager-settings.conf wireless_interface = wlp2s0Ah! Since I was using the non-free version, the installer itself installed the drivers, realized that wlan0 has been renamed as wlp2s0 and wrote that value in /etc/wicd/manager-settings.conf. Hence as soon as I logged in, I was able to open the wicd and connect to the network.