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));