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?
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 :
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.
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.
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.
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.
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
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.
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.
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
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.
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.