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)

Reply via email to