Using 3G USB mobile network sticks with USB 3.0 ports (Ubuntu/Linux)

I struggled for a while with my new laptop with Ubuntu 14.04: I could not understand why none of my 3G USB keys worked on it.

UPDATED (see bottom)

In /var/log/syslog I could see it being recognized, and a line mentioning usb_modeswitch… except no mode switching was happening: the ProductId was did not change, and so obviously no network.

I have the latest usb-modeswitch-data installed, and my card’s VendorId and ProductID are in it (It’s a Huawei Vodafone K4605, 12d1:14c1), apparently… but nope, no mode switching: I get a usb-storage device, and that’s all.

Long story short, this is the workaround I found, until some permanent fix is issued by Ubuntu: after inserting the card wait for a few seconds and then run a command like this one:

sudo usb_modeswitch -v 12d1 -p 14c1 -M '55534243123456780000000000000011062000000100000000000000000000'

(all on one line, substitute the VendorID and ProductID with your key’s)

This is pretty much what udev should be doing on itself, but for some reason it’s not.

…and bam! After a few more seconds you will be able to configure and use the Mobile Broadband connection in NetworkManager.

It took me some time to figure this out, so I hope it will help someone else, too.


 

Update: I got my hands on a more recent 3G key (a Vodafone Huawei K4201) and lo and behold, it works out of the box… it’s a weird device though; it presents itself to the system as a wired connection (ethernet), has a DHCP server and assigns a 192.168.9.0/24 address, which could be a problem (not in my case, but… horrible choice of network, Vodafone!).

Using an EMC CX3-10 Storage with CentOS5

I have had the mixed pleasure of setting up an EMC CX3-10 Storage (fibrechannel and iSCSI) on a couple of CentOS5 machines, lately, and I’m going to share here the tweaks I had to make to the provided software. I hope this will come handy to someone else on the planet.

Before you proceed, the standard disclaimer:
If you break your costly servers and storage appliances using these instructions, you can keep the pieces. This is simply my experience, use at your own risk, and don’t come crying if you mess up 🙂

The Drivers

CentOS5 recognized the HBA cards right away, so no sweat here. Hey, it’s RedHat Enterprise 5, after all, under the hood.

The EMC CX3-10 Storage comes with a couple of packages (namely NaviSphere and PowerPath) that install drivers and stuff so that the system can see the disks correctly. And here comes the quirky part: the software has to ensure that it’s been installed on a supported platform, and while RHEL5 is officially supported, CentOS5 is not: the software refuses to start, and if started manually it spews a phrase like “Ensure to install this software on a RedHat Enterprise machine”, or something.

Now, we all know CentOS is binary compatible with RHEL… what’s missing?

I’ll tell you what: the software is performing some tests that are a wee bit too clever… to work around them, perform these steps:

First things first, edit the file /etc/redhat-release and put in the single line
Red Hat Enterprise Linux Server release 5 (Tikanga)
so that the system is now identifying itself as a RHEL machine.

But it’s not enough for PowerPath;

Edit the file /etc/opt/emcpower/EMCpower.LINUX-5.0.1/enable, and substitute the lines that say

rhel_version=`rpm -qf /etc/issue | \
sed 's/redhat-release-\([0-9]\)Server.*/\1/'`

with these:

rhel_version=`rpm -qf /etc/issue | \
sed 's/centos-release-\([0-9]\).*/\1/'`

This way the script will be able to find the ‘5’ version number in the name of the package it is seeking (which is centos-release, instead of redhat-release).

The init scripts

The provided init scripts are a bit amateurish, to say the least, but proprietary software vendors are not really known for their ability to comply to the LSB specifications… even when they want them as mandatory…

So, edit the file /ect/init.d/PowerPath and add the line
# chkconfig: 345 20 40
just above the one that starts with # description:. Then, use the command chkconfig --add PowerPath to make that service manageable from the standard LSB tools. Just to be sure, also use
chkconfig PowerPath reset

chkconfig PowerPath on
chkconfig --list | grep PowerPath
and check that the service is configured as on.

Other than that, follow the normal instructions, and make sure that the naviagent service starts before the PowerPath service, which it should if you are using my numbers: naviagent already has LSB start and stop priorities, and they by default 25 and 35.