Network adapter - Targus PA090 - 07a6:8511 ADMtek, Inc. ADM8511 Pegasus II Ethernet in Linux

The Targus PA090 port replicator contains an ethernet controller which can supply a standard wired network connection. The controller inside PA090 is identified as 07a6:8511 ADMtek, Inc. ADM8511 Pegasus II Ethernet by lsusb. 

The LED on the port replicator specifies the speed to "100M" as in 100 megabit, but the replicator itself is USB 1.1, which should limit the interface to 12 megabit. A test with iperf is a bit down on this page which resulted in about 3 megabit.

Driver used by Ubuntu (14.10) and Linux Mint is pegasus.
To make it show an interface you may need to probe for it:

$ modprobe pegasus

dmesg|tail will then show this:
[20044.836641] pegasus: v0.9.3 (2013/04/25), Pegasus/Pegasus II USB Ethernet driver
[20044.859031] pegasus 5-3.4:1.0: setup Pegasus II specific registers
[20044.998544] pegasus 5-3.4:1.0: eth2, ADMtek ADM8511 "Pegasus II" USB Ethernet, 00:00:00:00:00:00
[20044.998647] usbcore: registered new interface driver pegasus
[20045.012786] IPv6: ADDRCONF(NETDEV_UP): eth1: link is not ready

Unfortunately it refuses to work out of the box, due to the invalid mac address of 00:00:00:00:00:00:

$ ifconfig eth1
eth1      Link encap:Ethernet  HWaddr 00:00:00:00:00:00  
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

If you try to assign an IP with this, you will get: RTNETLINK answers: Cannot assign requested address

The solution to this is to set a mac address to the interface manually, then assign the IP or request by DHCP - all done by root ($) of course:

$ ifconfig eth1 hw ether 02:01:02:03:04:08
( details about mac change: )

Response should be empty, then request address by DHCP:

$ dhclient eth1

To make this change permanent you may edit /etc/network/interfaces but that conflicts with Network Manager in Ubuntu/Mint which does not like the default mac address filled with zeros.

It may be possible to use ndiswrapper to run the controller, but you are limited to 32-bit OS:es. Reason for this is that the 32-bit Windows XP-driver for the controller loads in ndiswrapper, but the 64-bit version results in an "Invalid Driver!" warning.

To use ndiswrapper - or barely use as I never got through the 64-bit problem above - I did this:

$ apt-get install ndisgtk ndiswrapper-dkms
Edited /etc/modprobe.d/some-file.conf, added:
blacklist pegasus

Rebooted, then ran ndisgtk and assigned the driver.

The 32-bit driver files you are looking for on a Windows installation are C:\Windows\Inf\oem15.inf and ADM8511.SYS - this is the driver that runs in Windows and they come with the installation file that installs the whole port replicator. Install that on a regular 32-bit Windows XP and then extract the files.

The LED on the replicator says 100M and running ethtool eth1 (or whatever name is assigned to the interface) results in 100 Mb/s:

Settings for eth1:
	Supported ports: [ TP MII ]
	Supported link modes:   10baseT/Half 10baseT/Full 
	                        100baseT/Half 100baseT/Full 
	Supported pause frame use: No
	Supports auto-negotiation: Yes
	Advertised link modes:  10baseT/Half 10baseT/Full 
	                        100baseT/Half 100baseT/Full 
	Advertised pause frame use: Symmetric
	Advertised auto-negotiation: Yes
	Link partner advertised link modes:  10baseT/Half 10baseT/Full 
	                                     100baseT/Half 100baseT/Full 
	Link partner advertised pause frame use: Symmetric Receive-only
	Link partner advertised auto-negotiation: Yes
	Speed: 100Mb/s
	Duplex: Full
	Port: MII
	Transceiver: internal
	Auto-negotiation: on
	Supports Wake-on: pg
	Wake-on: d
	Current message level: 0x00000007 (7)
			       drv probe link
	Link detected: yes

But as the replicator is connected through USB 1.1 it is theoretically limited to rougly 12 Mbit, which also proved to be too high.

To test it I disconnected all network connections on a laptop, both wired and wireless. Then i connected the port replicator and used the pegasus driver. I assigned an IP through DHCP and then put a gigabit ethernet cable of about 3 metres between the replicator and an ASUS RT-N15U router. To the router there was another quite up to date computer connected through another wire. On the other computer I ran a server instance of iperf:

iperf -s

On the laptop I ran the client instance:

iperf -c servername

I did the client request three times, all returned the same result, which was not even close to 10 megabit:
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.3 sec  3.75 MBytes  3.07 Mbits/sec

Testing the interface online using resulted in 5.74 Mbps down and 2.85 Mbps up, which made the replicator a bottleneck in the connection.

Downloading content from a network attached storage made a speed of 5.8 Mbit/s or 712 kb/s (the actual file transfer speed was 687 kb/s).

So conclusion of this is that either is something wrong with my testing configuration or this is a really slow interface.

On a troublesome computer I had a problem with a Targus PA090 USB port replicator.

Everytime the replicator was connected to the computer Ubuntu crashed and 
resulted in half-freezed desktop environment. Having the replicator connected at 
boot time made the computer not even willing to display a terminal prompt.

I solved this by blacklisting the mct_u232 driver. After that the problems went away.

Todo this I did the following:

Open a terminal - ALT+F2, write gnome-terminal or push CTRL+ALT+F1.
(Push CTRL+ALT+F7 to go back.)

sudo bash

(apt-get install jed if you don't have jed)

jed /etc/modprobe.d/blacklist.conf

Go down to bottom of file, make a new line:

blacklist mct_u232

Make an empty newline at bottom of file as some programs may complain.

Save file - ALT+F, go down to Save.

Quit - ALT+F, go down to quit.


This is a personal note. Last updated: 2015-06-12 00:01:13.


Don't forget to pay my friend a visit too. Joakim