(DIR) <- Back # Getting the USB-powerline bridge to work on Linux Last modification on 2019-12-06 **NOTE: this guide is obsolete, a working driver is now included in the Linux (HTM) kernel tree (»since Linux 2.6.31«)** ## Introduction A USB to powerline bridge is a network device that instead of using an ordinary Ethernet cable (CAT5 for example) or wireless LAN it uses the powerlines as a network to communicate with similar devices. A more comprehensive explanation of what it is and how it works you can find here: (HTM) https://en.wikipedia.org/wiki/IEEE_1901. Known products that use the Intellon 51x1 chipset: * MicroLink dLAN USB * "Digitus network" * Intellon USB Ethernet powerline adapter * Lots of other USB-powerline adapters... To check if your device is supported: $ lsusb | grep -i 09e1 Bus 001 Device 003: ID 09e1:5121 Intellon Corp. If the vendor (09e1) and product (5121) ID match then it's probably supported. ## Installation Get drivers from the official site: (HTM) »http://www.devolo.co.uk/consumer/downloads-44-microlink-dlan-usb.html?l=en« or (BIN) mirrored here. The drivers from the official site were/are more up-to-date. Extract them: $ tar -xzvf dLAN-linux-package-v4.tar.gz Go to the extracted directory and compile them: $ ./configure $ make (TXT) Depending on the errors you got you might need to »download« and apply my patch: $ cd dLAN-linux-package-v4/ (or other path to the source code) $ patch < int51x1.patch Try again: $ ./configure $ make If that failed try: $ ./configure $ KBUILD_NOPEDANTIC=1 make If that went OK install the drivers (as root): # make install Check if the "devolo_usb" module is loaded: $ lsmod | grep -i devolo_usb If it shows up then it's loaded. Now check if the interface is added: $ ifconfig -a | grep -i dlanusb dlanusb0 Link encap:Ethernet HWaddr 00:12:34:56:78:9A ## Configuration It is assumed you use a static IP, otherwise you can just use your DHCP client to get an unused IP address from your DHCP server. Setting up the interface is done like this (change the IP address and netmask accordingly if it's different): # ifconfig dlanusb0 192.168.2.12 netmask 255.255.255.0 ## Checking if the network works Try to ping an IP address on your network to test for a working connection: $ ping 192.168.2.1 PING 192.168.2.1 (192.168.2.1) 56(84) bytes of data. 64 bytes from 192.168.2.1: icmp_seq=1 ttl=30 time=2.49 ms 64 bytes from 192.168.2.1: icmp_seq=2 ttl=30 time=3.37 ms 64 bytes from 192.168.2.1: icmp_seq=3 ttl=30 time=2.80 ms --- 192.168.2.1 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2005ms rtt min/avg/max/mdev = 2.497/2.891/3.374/0.368 ms You can now set up a network connection like you normally do with any Ethernet device. The route can be added like this for example: # route add -net 0.0.0.0 netmask 0.0.0.0 gw 192.168.2.1 dlanusb0 Change the IP address of your local gateway accordingly. Also make sure your nameserver is set in /etc/resolv.conf, something like: nameserver 192.168.2.1 Test your internet connection by doing for example: $ ping codemadness.org PING codemadness.org (64.13.232.151) 56(84) bytes of data. 64 bytes from acmkoieeei.gs02.gridserver.com (64.13.232.151): icmp_seq=1 ttl=52 time=156 ms 64 bytes from acmkoieeei.gs02.gridserver.com (64.13.232.151): icmp_seq=2 ttl=52 time=156 ms 64 bytes from acmkoieeei.gs02.gridserver.com (64.13.232.151): icmp_seq=3 ttl=52 time=155 ms --- codemadness.org ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 1999ms rtt min/avg/max/mdev = 155.986/156.312/156.731/0.552 ms If this command failed you probably have not setup your DNS/gateway properly. If it worked then good for you :) ## References (HTM) * Devolo download page with drivers (USB version). (BIN) * dLAN-linux-package-v4.tar.gz (TXT) * Patch for recent 2.6.x kernels (BIN) * INT51X1 datasheet