USB Ethernet Device Registration

543 views
Skip to first unread message

Ryan Barnett

unread,
Jul 1, 2011, 5:16:55 PM7/1/11
to Android Linux Kernel Development
Hi,

I'm currently trying to get a USB ethernet device to appear as an
interface on a rooted Motorola Atrix 4G from AT&T. The build number
for this software is OLYFR_U4_1.2.6 with a kernel version of 2.6.32.9.
I have the multimedia docking station (which has USB ports available)
that Motorola has available for the phone. The USB ethernet device
that I'm plugging into the phone registers correctly on a laptop that
is running Ubuntu 10.10 and uses the generic cdc_ether driver.

Information I have gather thus far is from dmesg in which the
following shows up:

<6>[ 77.227517] usb 1-1.3: new high speed USB device using tegra-
ehci and address 4
<6>[ 77.276658] usb 1-1.3: New USB device found, idVendor=0525,
idProduct=a4a2
<6>[ 77.276669] usb 1-1.3: New USB device strings: Mfr=1, Product=2,
SerialNumber=0
<6>[ 77.276679] usb 1-1.3: Product: RNDIS/Ethernet Gadget
<6>[ 77.276687] usb 1-1.3: Manufacturer: Linux 2.6.33.7-rt29 with
musb_hdrc
<6>[ 77.277117] usb 1-1.3: configuration #1 chosen from 2 choices
<6>[ 77.288180] usb1: register 'cdc_ether' at usb-tegra-ehci.0-1.3,
CDC Ethernet Device, fa:b5:e8:b3:5c:34

Also I have found that the device is created at /sys/class/net/usb1
which really maps to /sys/devices/platform/tegra-ehci.0/
usb1/1-1/1-1.4/1-1.4:1.0/. If I do a cd into device (/sys/devices/
platform/tegra-ehci.0/usb1/1-1/1-1.4/1-1.4:1.0/net/usb1) the following
information is in uevent:

DEVTYPE=usb_interface
DRIVER=cdc_ether
DEVICE=/proc/bus/usb/001/021
PRODUCT=525/a4a2/316
TYPE=2/0/0
INTERFACE=2/6/0
MODALIAS=usb:v0525pA4A2d0316dc02dsc00dp00ic02isc06ip00

It seems that the cdc_ether driver is working correctly it is just
that it is not being mapped as an interface (as far as ifconfig is
concerned) since it doesn't appear if "busybox ifconfig" (or just
ifconfig) is run. I know with most embedded systems mdev is used to do
the mappings for the interface however it doesn't appear android uses
mdev. My question is how does Android do the equilivant of mdev or
mapping of interfaces? Or if that isn't pharse properly enough, how do
I get this USB ethernet device to show up as an interface? I
ultimately want these USB ethernet device to show up as "usb1" when I
run "ifconfig" and right now it doesn't and I don't know how to get it
to.

Thanks,
-Ryan

Steve Modica

unread,
Jul 1, 2011, 7:10:00 PM7/1/11
to android...@googlegroups.com
Did you run netcfg?

Sent from my iPhone

> --
> unsubscribe: android-kerne...@googlegroups.com
> website: http://groups.google.com/group/android-kernel
>

Ryan Barnett

unread,
Jul 6, 2011, 9:15:14 AM7/6/11
to Android Linux Kernel Development
Thanks! Running netcfg worked...that totally slipped my mind. Is there
a way to automate this mapping besides having a service daemon script
running looking for device to connect? Busybox is currently installed
on the phone which includes mdev. mdev doesn't handle any of the
device initialization since if I run "mdev -s" the phone will reboot.
How does the Android kernel handle new device connections and how
would I be able to have this USB ethernet device be automatically
registered as a network interface?

Thanks,
-Ryan

On Jul 1, 6:10 pm, Steve Modica <mod...@small-tree.com> wrote:
> Did you run netcfg?
>
> Sent from my iPhone
>
> > website:http://groups.google.com/group/android-kernel- Hide quoted text -
>
> - Show quoted text -

hedwin

unread,
Jul 6, 2011, 3:17:06 PM7/6/11
to android...@googlegroups.com
init is catching the kernel uevents. take a look at file devices.c in system/init directory

hedwin

Ryan Barnett

unread,
Jul 6, 2011, 6:23:29 PM7/6/11
to Android Linux Kernel Development
Thank you for information! I dont' have access to rebuild the
devices.c file in /system/init directory because that is a part of the
Android build so I have come up with a shell script that will
continously run and periodically check for the to see if the device
has been attached, then if it is attached I will run "netcfg". The
Motorola Atrix (the phone I'm currently working with) doesn't have
source or the ability to rebuild android (only replace the kernel).

-Ryan
> > > > website:http://groups.google.com/group/android-kernel-Hide quoted
Reply all
Reply to author
Forward
0 new messages