Via VT6656 USB WiFi has been out-of-tree because of non-GPLness. The new driver is a candidate for inclusion supposedly but for now you need to build your own driver in most cases. I want it for Debian 5 on my DT360.
The biggest problem is getting enough of the system to compile the driver without having to download full kernel sources and patching them to current. The answer is in section 4 of the Debian Linux Kernel Handbook.
Download the source, unpack it, and run the following:
sudo aptitude install linux-headers-`uname -r` build-essential
(If you're trying to build stuff you probably already installed build-essential, but I include it here for the newbies)
Once this is done you can just run sudo make to get a driver (needs root at one point) or sudo make install to install it. driver/vntwusb.ko gets installed to /lib/modules/`uname -r`/kernel/drivers/net
as root with mode 644. Run depmod -a
and you should be able to modprobe vntwusb
. The result on my Dt360 is an ethn device (in this case eth0) and a device called vntwpa
.
Both the prior (1.19) and current (1.20) driver work fine as far as I can tell. Wifi, here I am!
However
If the device is not up then you cannot configure the essid. Therefore I found it necessary to modify
/etc/network/if-pre-up.d/wireless-tools
. For example:IWCONFIG=/sbin/iwconfig
Add a line immediately above or below it reading:
IFCONFIG=/sbin/ifconfig
Then travel down to the following:
if [ -n "$IF_WIRELESS_ESSID" ]; then
$IWCONFIG "$IFACE" essid "$IF_WIRELESS_ESSID"
fi
And make it look like:
if [ -n "$IF_WIRELESS_ESSID" ]; then
$IFCONFIG "$IFACE" up
sleep 5
$IWCONFIG "$IFACE" essid "$IF_WIRELESS_ESSID"
fi
This makes sure the interface is up and pauses for it to settle before setting the essid. It will happen only on wireless interfaces and there's only one of them on the system so it's an acceptable delay.
suspend/resume
The NIC loses ESSID on suspend/resume. So put this in
/etc/pm/sleep.d
as an executable file (chmod 755 filename
) to bounce the interface.#!/bin/sh
case $1 in
hibernate|suspend)
ifdown eth0
;;
thaw|resume)
ifup eth0
;;
esac
I called it "wlan"