On Sun, Jun 05, 2016 at 01:26:41PM +0200, Remi Locherer wrote: > On Sun, Jun 05, 2016 at 09:48:47AM +0200, Stefan Sperling wrote: > > On Sat, Jun 04, 2016 at 11:16:32PM +0200, Remi Locherer wrote: > > > On my installation the upgrade process looks like this (snapshot bsd.rd > > > from Jun 2): > > > > > [...] > > > > > iwm0: no link ........... sleeping > > > > > My /etc/hostname.iwm0: > > > > > > nwid tsunami wpakey XXXX > > > dhcp > > > inet6 autoconf > > > !pkill -9 -lf wifinwid > > > !/etc/wifinwid \$if & > > > > Please add a 'debug' line at the top of your hostname.iwm0 file. > > That might reveal more of what's going on. > > There is no additional output with debug in hostname.iwm0 when > booting bsd.rd (snapshot Jun 2). When booting bsd.mp I see that iwm0 > does scanning and receives beacons and more.
Strange. ifconfig iwm0 debug definitely works in the ramdisk for me. Can we set aside the install script and hostname.if magic for a while, and just determine whether your device works at all in bsd.rd? Try the following: Boot bsd.rd Select the (S)hell option cd /dev sh MAKEDEV sd1 mount /dev/sd1a /mnt # for firmware ifconfig iwm0 debug ifconfig iwm0 scan Repeat the scan command a few times. I expect that, at least after a few tries, you should see the same behaviour you would see with GENERIC. Is that not the case? If the scan works, can you manually associate to a network and run dhclient iwm0? Does that work? All of the above works for me. > > Additionally, could you build a release with IWM_DEBUG defined > > in if_iwm.c and try bsd.rd from that? This would again print more. > > I'll try that next. Is it correct that I need to put the below line > in sys/arch/amd64/conf/RAMDISK_CD? > > option IWM_DEBUG=1 I believe it would be just 'option IWM_DEBUG'. You could also apply this patch. Index: if_iwm.c =================================================================== RCS file: /cvs/src/sys/dev/pci/if_iwm.c,v retrieving revision 1.86 diff -u -p -r1.86 if_iwm.c --- if_iwm.c 3 Jun 2016 16:16:25 -0000 1.86 +++ if_iwm.c 5 Jun 2016 17:23:44 -0000 @@ -148,6 +148,7 @@ #define le16_to_cpup(_a_) (le16toh(*(const uint16_t *)(_a_))) #define le32_to_cpup(_a_) (le32toh(*(const uint32_t *)(_a_))) +#define IWM_DEBUG #ifdef IWM_DEBUG #define DPRINTF(x) do { if (iwm_debug > 0) printf x; } while (0) #define DPRINTFN(n, x) do { if (iwm_debug >= (n)) printf x; } while (0)