On Sat, Apr 19, 2014 at 09:51:59PM -1000, Felix Johnson wrote: > I'm a bit new to OpenBSD and want to configure wireless networking, > as a client to an existing access point. > > The box has a clean install of 5.4-release from install54.iso. > The wireless device is a Belkin F5D7050 wireless G USB network > adapter, which shows up as zyd0. > > I can scan the network with 'ifconfig zyd0 scan' and the ESSID I'm > looking for shows up, but the radio keeps going up and down and I > can't get dhcp working on it. > > The /etc/hostname.zyd0 file looks like: > nwid "What does the Mo'o say" > wpakey sillypassword > dhcp > > This network id shows up when I use 'ifconfig zyd0 scan', so I'm > pretty sure the wireless device is up and listening. > e.g. > zyd0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 > lladdr 00:17:3f:52:1d:f3 > priority: 4 > groups: wlan > media: IEEE802.11 autoselect (DS1 mode 11g) > status: active > ieee80211: nwid "What does the Mo'o say" chan 1 bssid > 1c:c6:3c:4c:3e:67 33dB wpakey 0xblah wpaprotos wpa1,wpa2 > wpaakms psk wpaciphers tkip,ccmp wpagroupcipher tkip 100dBm > nwid fatsole chan 6 bssid 00:14:bf:f9:60:34 39dB 54M > privacy,short_slottime > ... (many more) ... > nwid "What does the Mo'o say" chan 1 bssid 1c:c6:3c:4c:3e:67 > 43dB 54M privacy > > Soo... how do I get dhcp working? I tried using 'dhclient zyd0' but > all I get is > DHCPDISCOVER on zyd0 to 255.255.255.255 port 67 interval 9 > ... (several more) ... > DHCPDISCOVER on zyd0 to 255.255.255.255 port 67 interval 4 > No acceptable DHCPOFFERS received. > No working leases in persistent database - sleeping. > > Any help would be appreciated. > Felix
Hi Felix, I've received a zyd hardware donation and could diagnose the problem. The diff below should fix the problem. Index: if_zyd.c =================================================================== RCS file: /cvs/src/sys/dev/usb/if_zyd.c,v retrieving revision 1.97 diff -u -p -r1.97 if_zyd.c --- if_zyd.c 19 Mar 2014 10:09:19 -0000 1.97 +++ if_zyd.c 3 Jun 2014 12:27:08 -0000 @@ -1913,7 +1913,7 @@ zyd_rx_data(struct zyd_softc *sc, const } /* compute actual frame length */ - len -= sizeof (*plcp) - sizeof (*stat) - IEEE80211_CRC_LEN; + len -= sizeof (*plcp) + sizeof (*stat) + IEEE80211_CRC_LEN; if (len > MCLBYTES) { DPRINTFN(2, ("frame too large (length=%d)\n", len));