wpi error: bus_dmamem_alloc failed to align memory properly

Sam Leffler sam at errno.com
Tue Jan 8 11:56:54 PST 2008


vittorio wrote:
> Il Monday 07 January 2008 16:00:38 Tim Kellers ha scritto:
>   
>> vittorio wrote:
>>     
>>> Il Monday 07 January 2008 03:18:21 Benjamin Close ha scritto:
>>>       
>>>> vittorio wrote:
>>>>         
>>>>> Context: HP laptop DV6000, centrino duo, FreeBSD 7.0-BETA4
>>>>> When loading if_wpi I get the following line saying that
>>>>> "bus_dmamem_alloc failed to align memory properly"
>>>>> <SNIP>
>>>>> wpi0: <Intel(R) PRO/Wireless 3945ABG> mem 0xd8000000-0xd8000fff irq 16
>>>>> at device 0.0 on pci2
>>>>> bus_dmamem_alloc failed to align memory properly.
>>>>> last message repeated 30 times
>>>>> wpi0: Ethernet address: 00:19:d2:99:e3:cb
>>>>> wpi0: [ITHREAD]
>>>>> wpi0: 11a rates: 6Mbps 9Mbps 12Mbps 18Mbps 24Mbps 36Mbps 48Mbps 54Mbps
>>>>> wpi0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps
>>>>> wpi0: 11g rates: 1Mbps 2Mbps 5.5Mbps 11Mbps 6Mbps 9Mbps 12Mbps 18Mbps
>>>>> 24Mbps 36Mbps 48Mbps 54
>>>>> </SNIP>
>>>>>
>>>>> Therefore I'm unable to make wpi0 work at all.
>>>>>
>>>>> Could you please tell me what should I do?
>>>>>
>>>>> Ciao, Vittorio
>>>>>           
>>>> The bus_dmamem_alloc message is harmless in your case. Due to
>>>> limitations in the freebsd allocator, sometimes requesting a 16k aligned
>>>> block of dma memory fails. As a temporary work around the wpi driver
>>>> reattempts the allocation. If it truely does fail you'll not get a wpi0
>>>> device showing up, which clearly you did :).
>>>>
>>>> These warning messages will go away when I sync the next lot of updates
>>>> to the driver which aren't quite ready yet.
>>>>
>>>> Can you describe a little more what you mean by wpi doesn't work?
>>>>
>>>> Cheers,
>>>>     Benjamin
>>>>     wpi driver maintainer
>>>>         
>>> Ben,
>>> here you are a longer explanation
>>>
>>> Context:
>>> Router ZyXEL ADSL+2 with dhcp up and running
>>>
>>> Laptop HP Pavillion Entertainment DV6000 intel centrino duo 2GB of memory
>>> hpbsd# uname -a
>>> FreeBSD hpbsd.vic 7.0-BETA4 FreeBSD 7.0-BETA4 #0: Thu Dec 27 22:18:53 CET
>>> 2007 root at hpbsd.vic:/usr/obj/usr/src/sys/HP03  i386
>>> hpbsd#
>>> all wpi's necessary devices are compiled in the kernel
>>>            device wpi
>>>            device pci
>>>            device wlan
>>>            device wlan_amrr
>>>            device firmware
>>>
>>> /var/log/messages
>>> kernel: wpi0: <Intel(R) PRO/Wireless 3945ABG> mem 0xd8000000-0xd8000fff
>>> irq 16 at device 0.0 on pci2
>>> kernel: wpi0: Ethernet address: 00:19:d2:99:e3:cb
>>> kernel: wpi0: [ITHREAD]
>>> kernel: wpi0: 11a rates: 6Mbps 9Mbps 12Mbps 18Mbps 24Mbps 36Mbps 48Mbps
>>> 54Mbps kernel: wpi0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps
>>> kernel: wpi0: 11g rates: 1Mbps 2Mbps 5.5Mbps 11Mbps 6Mbps 9Mbps 12Mbps
>>> 18Mbps 24Mbps 36Mbps 48Mbps 54Mbps
>>>
>>> the line
>>>
>>> legal.intel_wpi.license_ack=1
>>>
>>> is in /boot/loader.conf
>>>
>>> BUT
>>> 1)
>>> it seems that sysctl is unable to find it and I have to set it via
>>> kenv legal.intel_wpi.license_ack=1 in a shell.
>>>
>>> Shouldn't this variable be set by either sysctl or by loader.conf (that
>>> is is a system variable) OR is it supposed to be set via kenv only?
>>>
>>> 2)
>>> dhclient is unable to get an IP address (BTW trying to set wpi0 up with a
>>> fixed IP makes wpi0 not associated to any AP)
>>>
>>> Here it is a session log
>>>
>>> <SNIP>
>>> hpbsd# sysctl -a|grep legal
>>> hpbsd#
>>> hpbsd# kenv legal.intel_wpi.license_ack=1
>>> legal.intel_wpi.license_ack="1"
>>> hpbsd# kenv legal.intel_wpi.license_ack
>>> 1
>>>
>>> hpbsd# ifconfig wpi0 ssid "my_wireless" weptxkey 1 wepmode on wepkey
>>> 0x1f7b0a5a0d
>>>
>>> hpbsd# dhclient wpi0
>>> DHCPDISCOVER on wpi0 to 255.255.255.255 port 67 interval 5
>>> DHCPDISCOVER on wpi0 to 255.255.255.255 port 67 interval 12
>>> DHCPDISCOVER on wpi0 to 255.255.255.255 port 67 interval 9
>>> DHCPDISCOVER on wpi0 to 255.255.255.255 port 67 interval 18
>>> DHCPDISCOVER on wpi0 to 255.255.255.255 port 67 interval 12
>>> DHCPDISCOVER on wpi0 to 255.255.255.255 port 67 interval 5
>>> No DHCPOFFERS received.
>>> No working leases in persistent database - sleeping.
>>>
>>> hpbsd# ifconfig wpi0
>>> wpi0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu
>>> 1500 ether 00:19:d2:99:e3:cb
>>>         inet 0.0.0.0 netmask 0xff000000 broadcast 255.255.255.255
>>>         media: IEEE 802.11 Wireless Ethernet autoselect (OFDM/36Mbps)
>>>         status: associated
>>>         ssid my_wireless channel 6 (2437 Mhz 11g) bssid 00:02:cf:61:81:fd
>>>         authmode OPEN privacy ON deftxkey 1 wepkey 1:40-bit txpower 50
>>>         bmiss 7 scanvalid 60 protmode CTS
>>>
>>>  </SNIP>
>>>
>>> Even giving an ip fixed address to wpi0 doesn't seem to work, - that is -
>>> I cannot ping anything and for netstat -rn wpi0 doesn't seem to exist.
>>>
>>> Please help
>>> Ciao from Rome
>>>
>>> _______________________________________________
>>> freebsd-questions at freebsd.org mailing list
>>> http://lists.freebsd.org/mailman/listinfo/freebsd-questions
>>> To unsubscribe, send any mail to
>>> "freebsd-questions-unsubscribe at freebsd.org"
>>>       
>> Vittorio,
>>
>> Do you have a line just like the below in your /etc/rc.conf?  I've found
>> DHCP a little tricky to set up on wireless laptops, and after a Lot of
>> testing, I got mine to work.  (This is getting a dhcp address from a
>> Linksys router)
>>
>> ifconfig_wpi0="ssid [your network name] nwkey [your network key] DHCP"
>>
>> Tim
>> _______________________________________________
>> freebsd-questions at freebsd.org mailing list
>> http://lists.freebsd.org/mailman/listinfo/freebsd-questions
>> To unsubscribe, send any mail to
>> "freebsd-questions-unsubscribe at freebsd.org"
>>     
>
> I added the line but the dhcp operation fails exactly in the same way as I 
> described in my original message.
>
> No DHCPOFFERS received.
> No working leases in persistent database - sleeping.
>
> Instead, a new error pops up in /var/log/messages
>
> wpi0: wpi_cmd: cmd 72 not sent, busy
> wpi0: wpi_cmd: cmd 72 not sent, busy
>
> What's going on?
>   

I cannot comment on the wpi errors but in general if you want to 
configure wireless for anything but open authentication you should use 
wpa_supplicant; e.g. add this to rc.conf:

ifconfig_wpi0="WPA DHCP"

then setup /etc/wpa_supplicant.conf w/ the network configuration.

FWIW the above config line is missing "deftxkey 1" or similar.

    Sam


More information about the freebsd-mobile mailing list