USB hub with Ethernet

Hello,

I have a 3-port USB hub with Ethernet that works, and one that
doesn't. The one that works is silver, and says
"3-port Hub with Ethernet Adapter" and "USB 2.0" on it, and has 2
status LEDs built into the Ethernet jack.

The one that doesn't work says "USB 3port HUB+Ethernet adapter" and is
red. It has one LED that is not
part of the Ethernet jack. It has a small silver label with "EDUP"
and the r in a circle symbol.
I have not tested the USB hub function, what I care about more is the
Ethernet.

Anyone have any comments on why one works and one doesn't, or how to
know which ones to get?

Thanks,

Jon

Any idea as to the chipset in each of these hubs?

Gerald

The one that works has an NEC 720117 for the hub and an ASIX
AX88772ALF.
I don't want to take the other one apart yet as I might get my money
back, but
probably not. Grumble.

Anyway, on the one that doesn't work, I see the hub ID when it is
plugged in, but
not the Ethernet adapter.
/proc/bus/usb/devices shows :

P: Vendor=1a40 ProdID=0101 Rev= 1.00
S: Product=USB 2.0 Hub [MTT]

and
P: Vendor=9710 ProdID=7830 Rev= 2.00
C:* #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr=500mA

Apparently a MosChip 7830. I found a procedure to download and
compile a kernel module for
this chip, but it seems like a big hassle to do this for every unit in
the future.

Jon

If it’s any consolation, the ASIX 88772 and 88772A chips weren’t always in the main stream kernel either…

Commodity PC hardware has a really short half-life. If the MosChip device can be had cheaper than anything else on the market, then you will likely see it patched into the kernel shortly.

  • dan

You should be able to get the supplier via the product ID and do some research on the drivers that are available. My best advice is look under the standard desktop Linux offerings for drivers they support and buy those hubs.

Gerald

Yup, MosChip has a Linux driver on their web site. But, I need the
kernel
source to compile a .ko Any hints on how to do that? (I know, this
isn't
strictly a BB problem.) I am using a Debian 2.6.29 kernel, and
getting all
sorts of problems finding the kernel-source for that kernel with apt-
get.

Yes, obviously the the silver jobs with the ASIX chip are already
supported.
But, they are 4 x more expensive.

Thanks,

Jon

Yeah it's not upstream...

for 2.6.29: https://code.launchpad.net/~beagleboard-kernel/+junk/2.6-stable

but give 2.6.31.6 a try, it might already have the later vid/pid already..

https://code.launchpad.net/~beagleboard-kernel/+junk/2.6-dev

2.6.31.6 quick install scripts...

Lenny: http://www.rcn-ee.net/deb/kernel/beagle/lenny/v2.6.31.6-x6.0/install-me.sh
Squeeze: http://www.rcn-ee.net/deb/kernel/beagle/squeeze/v2.6.31.6-x6.0/install-me.sh

Regards,

unfortunately, I'm not a kernel guru, I just barely know how to use
apt-get,
so I don't know how to use your repositories. Can you give me a hint?

Thanks,

Jon

Hi Jon,

After some more research, i don't think that's going to help anyways..

There have been no commits to the mcs driver in quite awhile.

http://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6-stable.git;a=history;f=drivers/net/usb/mcs7830.c;h=10873d96b2dacf675e9e523f3158004826689367;hb=HEAD

The driver does work on mine: (same Vendor=9710 ProdID=7830 )

voodoo@beagle-256mb-0:~$ lsusb
Bus 002 Device 003: ID 1058:1100 Western Digital Technologies, Inc.
Bus 002 Device 004: ID 9710:7830 MosChip Semiconductor MCS7830 Ethernet

voodoo@beagle-256mb-0:~$ dmesg | grep MOS
[52005.285644] usbcore: registered new interface driver MOSCHIP
usb-ethernet driver
[52007.156036] eth0: register 'MOSCHIP usb-ethernet driver' at
usb-musb_hdrc-1.4, MOSCHIP 7830/7730 usb-NET adapter,
00:13:3b:04:02:8f

voodoo@beagle-256mb-0:~$ uname -a
Linux beagle-256mb-0 2.6.31.6-x6.0 #1 PREEMPT Sat Nov 14 01:11:14 UTC
2009 armv7l GNU/Linux

So a little stumped..

Regards,

I sell the silver one to help the community get going quickly:
https://specialcomp.com/beagleboard/

Bill Mar
Special Computing

Well, that's not the problem. I think the guy who built this kernel
made it monolithic.
/proc/modules is empty, and so is /lib/modules. So, I couldn't just
compile a
module and have it work.

I had no idea he did that.

Jon

Hi Jon,

btw what kernel are you running? /lib/modules should be filled.. when
you installed my linux-image *.deb file..

uname -r

Yeah, I've always left the mcs driver as builtin, that way it's very
easy to run a netinstall from a blank sd card.

To change it to an external..

install bzr (sudo apt-get install bzr)

bzr branch lp:~beagleboard-kernel/+junk/2.6-dev

edit build_kernel.sh, change CC to your cross compiler location

then run . build_kernel.sh, after it downloads/patches, menuconfig will pop up..

Device Drivers -> Network Device Support -> USB network adapters ->
MosChip * to m (spacebar)... esc

new uImage and modules will be in deploy..

Regards,

btw what kernel are you running? /lib/modules should be filled.. when
you installed my linux-image *.deb file..

uname -r

reports :
2.6.29-omap1

I see some errors while booting referring to not being able to find
/lib/modules/2.6.29-omap1/modules.dep
I cloned this system from the original one built by a friend, so it is
possible
something got lost. I was also astonished to find nothing in /lib/
modules, and
surprised that it ran at all. But, it obviously is a monolithic
kernel, as lsmod
gives an empty result, too.

I guess the logic was to reduce boot time or something. But, it sure
isn't flexible
that way.

Yeah, I've always left the mcs driver as builtin, that way it's very
easy to run a netinstall from a blank sd card.

To change it to an external..

install bzr (sudo apt-get install bzr)

bzr branch lp:~beagleboard-kernel/+junk/2.6-dev

edit build_kernel.sh, change CC to your cross compiler location

then run . build_kernel.sh, after it downloads/patches, menuconfig will pop up..

Device Drivers -> Network Device Support -> USB network adapters ->
MosChip * to m (spacebar)... esc

new uImage and modules will be in deploy..

Thanks for all these instructions, but we probably are going to move
to a newer
(and more flexible) kernel at some time. But, maybe I'll try it.

Thanks,

Jon

Well, your instructions seem to have built a 2.6.31.6 version of the
driver. I still
get this message from modprobe :

FATAL: Could not load /lib/modules/2.6.29-omap1/modules.dep: No such
file or directory

And if I try to insmod the mcs7830.ko file, I get "-1 invalid module
format".

Jon

Yeap, you'll have to run the *.uImage generated in the deploy
directory.. then it'll find /lib/modules/2.6.31.6/*

Regards,

This doesn't seem to be an elf executable file. Is there something
else
I need to do to "run" this file? The file I found is :
..../deploy/2.6.31.6-x6.0.uImage

Thanks,

Jon

sorry, run/boot on the beagleboard, it's the 2.6.31.6 kernel..

mount your fat mmc partition, (/tmp)

sudo cp 2.6.31.6-x6.0.uImage /tmp/uImage

Regards,

Sorry to be so dense, I'm not a kernel developer, not even a
wannabe....

Anyway, the beagle is booted, the sd card file system is mounted, and
the
uImage file has been copied to /tmp/uImage, but that doesn't seem to
change
anything. I still get :
bash: /tmp/uImage: cannot execute binary file

I still think there must be something wrong with trying to insmod a
kernel module
compiled against the 2.6.31 kernel into a 2.6.29 kernel.

Thanks,

Jon

That's okay one step at a time..

Lets mount your mmc card on your x86.

insert sd card, ubuntu/desktop will automount, right click it, and
'eject/umount/remove'

Next

"sudo fdisk -l" should list all devices

assuming your main drive is 'sda' so leave that alone, and assuming
your sd card is 'sdb' (replace with what yours actually is)

cd deploy
mkdir ./tmp
sudo mount /dev/sdb1 ./tmp/
sudo cp *.uImage ./tmp/uImage
sudo umount ./tmp

remove sd card, place in beagle and reboot..

Regards,

That's okay one step at a time..

Lets mount your mmc card on your x86.

insert sd card, ubuntu/desktop will automount, right click it, and
'eject/umount/remove'

Next

"sudo fdisk -l" should list all devices

assuming your main drive is 'sda' so leave that alone, and assuming
your sd card is 'sdb' (replace with what yours actually is)

cd deploy
mkdir ./tmp
sudo mount /dev/sdb1 ./tmp/
sudo cp *.uImage ./tmp/uImage
sudo umount ./tmp

remove sd card, place in beagle and reboot..

OK, there is no deploy directory on this x86 system, as the kernel
headers were installed directly on
the Beagle Board's Debian system. I have everything so mucked up now
I'm amazed the Beagle
even boots. Oh, spoke too soon, it DOESN'T boot any more. Hopefully,
when I take out the stuff
I did, I can get it working again.

Jon