Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Solaris 11.3 USB Ethernet

255 views
Skip to first unread message

Noel Hunt

unread,
Nov 1, 2017, 9:52:03 PM11/1/17
to
I am running Solaris 11.3 and trying to get a Huawei E353/E3131 modem
working. These devices are 'CDC-ECM' as far as I can work out, in that
they will present themselves to the operating system as an ethernet
device. At least, in 11.3 I can attach the usbecm driver to the device
and I get a physical link:

# dladm show-phys
LINK MEDIA STATE SPEED DUPLEX DEVICE
net0 Ethernet unknown 0 unknown e1000g0
net1 Ethernet down 10 full usbecm2

I am not sure how to proceed from here. The device should appear as
192.169.1.1, and the host is assigned 192.168.1.100. I am not sure
what combination of 'dladm' and 'ipadm' commands I should be using
to make this happen.

Any help appreciated.

Noel Hunt

Casper H.S. Dik

unread,
Nov 2, 2017, 4:04:06 AM11/2/17
to
Check the ipadm manual which has the examples which should serve
your purpose:

# ipadm create-ip usbecm2
# ipadm create-addr -T static -a local=192.169.1.1/24 usbecm2/v4static1

What is the "other host"? It is connected over the USB ethernet device?


Casper

Noel Hunt

unread,
Nov 2, 2017, 6:10:03 PM11/2/17
to
On Thursday, November 2, 2017 at 7:04:06 PM UTC+11, Casper H.S. Dik wrote:
# ipadm


Thanks for your response. This is sort of what I had already tried,
but with 192.168.1.100 as the interface address as this is what the
host is supposed to be. I've checked this with the device running on
a Windows machine. And the gateway is 192.168.1.1. It is confusing
because both addresses really refer to the same device it seems.

I have been using a different huawei modem for PPP up till now:

# ipadm
NAME CLASS/TYPE STATE UNDER ADDR
lo0 loopback ok -- --
lo0/v4 static ok -- 127.0.0.1/8
lo0/v6 static ok -- ::1/128
sppp0 ip ok -- --
sppp0/? static ok -- 10.90.144.91->192.168.1.1

This 192.168.1.1 is associated with a different modem/PPP setup not
the one I am trying to get set up with the usbecm device.

So, after plugging the device in, I have this:

# dladm show-phys
LINK MEDIA STATE SPEED DUPLEX DEVICE
net0 Ethernet unknown 0 unknown e1000g0
net1 Ethernet down 10 full usbecm2
# dladm show-phys -m
LINK SLOT ADDRESS INUSE CLIENT
net0 primary 0:23:7d:50:6d:6f no --
net1 primary ea:b6:b9:88:92:e0 no --

I don't have a real ethernet network, so can't use the e1000g0 device.
The following was done after unconfiguring the modem/PPP (unplugging).

When I tried what you suggested I got a very interesting error:

# ipadm create-ip usbecm2
ipadm: cannot create interface usbecm2: Insufficient memory

So, I tried just plain old net1:

# ipadm create-ip net1
# ipadm create-addr -T static -a local=192.168.1.100/24 net1/v4static1
# ipadm
NAME CLASS/TYPE STATE UNDER ADDR
lo0 loopback ok -- --
lo0/v4 static ok -- 127.0.0.1/8
lo0/v6 static ok -- ::1/128
net1 ip ok -- --
net1/v4static1 static ok -- 192.168.1.100/24

This looks fine so far, so I try to ping 192.168.1.1 and the problem
here is that ARP Who is 192.168.1.1 is being sent out, and it seems
the device isn't replying. I honestly don't if this is what is supposed
to happen or not. I might try to add to the arp table, the ethernet
address which appears on the 'dladm show-phys -m' output and see if
that works.

As you probably know, these devices normally appear, initially, as
storage, and they have to be 'switched' to 'rndis' mode. I assume
the usbecm driver is doing this.

And in answer to your questions, I don't think there is 'another'
host, like in a PPP link, since it is simply a USB device masquerading
as in ethernet interface. That is the extent of my knowledge.

Noel Hunt

Noel Hunt

unread,
Nov 3, 2017, 2:49:03 AM11/3/17
to
More experimentation leads me to think that whatever 'usbecm' is
doing, the device isn't being fully switched to ethernet mode
and that's why it isn't responding to 'ping 192.168.1.1' which
it should---I have an Oracle Linux running in which with a bit
of effort I got this USB ethernet modem to work. In Linux there
is a command 'usb_modeswitch' which sends a magic string to the
device to switch it and automagically the 'cdc_ether' driver
is attached and creates the interface, and 192.168.1.1 responds
to ping. So maybe I am out of luck. From some of the documentation
on the net, this 'usbecm' driver was intended for something
called 'ilom' in some Solaris servers and it may not be
appropriate for the particular 'hilink' model of device I have.

Chris

unread,
Nov 3, 2017, 11:14:41 AM11/3/17
to
Don't want to sound critical, but this sounds like hard work,
going through how many layers of networking just to talk to a
modem ?. Back in the days when we had only dialup internet
access, we used a 3 Com 56K modem with a single cable to the
serial port on the Sun machine. Sunos 4.1.3 at the time, with
ppp and dp dialup packages built from source. More less worked
out of the box, never any problem and still have the modem in
store somewhere. This is a Huawei product right ?, probably
with incomplete docs, Chinese consumer electronics quality and
hacked together internal firmware.

The other point is that it's really not safe to rely on
anything with usb on the box for 24/7 professional computing.
It was designed to be a cheap and cheerful interface for consumer
applications and even now, they still haven't sorted out the
overly complex protocol stack enough to make it really reliable.

May be completely off the wall here, but there must be an easier
way...

Regards,

Chris


0 new messages