Questions on libertas driver

Holger Schurig hs4233 at
Thu Jan 24 06:59:13 EST 2008

> It is possible that you send me a snapshot archive of your
> entire libertas directory ? I will be sure to have the same
> thing as you.

No, don't want this. You should update your git (e.g., when 
you're a Debian Etch user, get git from If you
can't or don't want to do this, then you can get all the files
via the web interface of git:

Go to

Then at the end, below "heads", search the line "everything". 
Click there to the right on "tree".

Navigate to drivers/net/wireless/libertas. All files have a "raw" 
entry. If your browser doesn't give them to you in a text 
format, you can use the link with wget, e.g.

$ wget -O 
main.c ";a=blob_plain;f=drivers/net/wireless/libertas/main.c;hb=everything"

> The driver works but a last problem persists :
> During ftp transfer I have these errors :
> NETDEV WATCHDOG: eth0: transmit timed out
> libertas: tx watch dog timeout
> NETDEV WATCHDOG: eth0: transmit timed out
> libertas: tx watch dog timeout
> ...
> Something the file is successfully dowloaded anyway, but
> sometime not, and I need to restart the board to have network
> working again.
> Have you an idea of where this error can come from ?

I'd say you have a problem with hardware interaction. Get

$ git clone 
git:// tools

and compile lbsdebug. Then set some lbsdebug parameters, e.g. 
enter, leave, host, cs/usb/sdio (depending on your hardware). 
Maybe the slowdown of the driver because of excessive debug info 
hides your problem, you have to experiment a while.

For example, in the CF part there are some timeout values that I
put there by "hindsight". They work for my hardware, but maybe 
your hardware is slower.

I have a shell script "mrv_reload", which I use while programming 
the driver. Maybe it's handy for you (or others) as well:

set -x

# Bring interface down and give it time to settle while we
# install the newest compiled libertas driver. Then remove the
# modules and again give it time to settle.
ifdown eth1 2>/dev/null
ifconfig eth1 down 2>/dev/null
pccardctl eject

# The "make install" below installes the drivers to
# lib/modules/XXX/extra/, so remove any drivers from a regular
# install
rm -rf /lib/modules/`uname -r`/kernel/drivers/net/wireless/libertas
cd /usr/src/m8k/wireless-2.6
make modules_install SUBDIRS=drivers/net/wireless/libertas
rmmod usb8xxx     2>/dev/null
rmmod libertas_cs 2>/dev/null
rmmod libertas    2>/dev/null

# "mrv_reload XX"     just removes all stuff
test -z "$1" || exit 0
sleep 0.2

# Start with a clean syslog file
rm -f /var/log/syslog
killall -HUP syslogd

# Load driver, set debug options, and the bring make
# the HW available
modprobe libertas

# Set wanted debugging, then "insert" the card:
#lbsdebug +enter +leave +scan >/dev/null
#lbsdebug +cs >/dev/null
lbsdebug +assoc +wext +scan >/dev/null

# Monitor syslog activity
tail -f /var/log/syslog # | grep libertas | \
  cut -d: -f4- | cut -c2-

More information about the libertas-dev mailing list