Skip to content

Instantly share code, notes, and snippets.

@n-west
Last active December 12, 2015 02:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save n-west/4696606 to your computer and use it in GitHub Desktop.
Save n-west/4696606 to your computer and use it in GitHub Desktop.
Debugging the hso kernel module for use on Option GlobeTrotter Icon 322
$ modinfo hso
filename: /lib/modules/3.2.28/kernel/drivers/net/usb/hso.ko
license: GPL
description: USB High Speed Option driver
author: Option Wireless
alias: usb:v0AF0pC100d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0pD058d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0pD357d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0pD257d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0pD157d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0pD057d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0pD255d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0pD155d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0pD055d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0pD035d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p9000d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p8900d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p8800d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p8600d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p8400d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p8304d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p8302d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p8300d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p8201d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p8200d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p7A05d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p7A01d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p7901d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p7801d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p7706d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p7701d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p7601d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p7501d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p7401d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p7381d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p7361d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p7301d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0pD033d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0pD031d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0pD013d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0pC031d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p7311d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p7271d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p7251d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p7211d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p7111d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p7071d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p7051d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p7031d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p7011d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p6971d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p6951d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p6911d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p6811d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p6791d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p6771d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p6751d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p6731d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p6711d*dc*dsc*dp*ic*isc*ip*
depends: rfkill
intree: Y
vermagic: 3.2.28 mod_unload modversions ARMv7 thumb2 p2v8
parm: debug:Level of debug [0x01 | 0x02 | 0x04 | 0x08 | 0x10] (int)
parm: tty_major:Set the major tty number (int)
parm: disable_net:Disable the network interface (int)
filename: /lib/modules/3.2.34/kernel/drivers/net/usb/hso.ko
license: GPL
description: USB High Speed Option driver
author: Option Wireless
alias: usb:v0AF0pC100d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0pD058d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0pD357d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0pD257d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0pD157d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0pD057d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0pD255d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0pD155d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0pD055d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0pD035d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p9000d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p8900d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p8800d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p8600d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p8400d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p8304d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p8302d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p8300d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p8201d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p8200d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p7A05d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p7A01d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p7901d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p7801d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p7706d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p7701d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p7601d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p7501d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p7401d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p7381d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p7361d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p7301d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0pD033d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0pD031d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0pD013d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0pC031d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p7311d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p7271d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p7251d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p7211d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p7111d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p7071d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p7051d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p7031d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p7011d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p6971d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p6951d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p6911d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p6811d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p6791d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p6771d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p6751d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p6731d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p6711d*dc*dsc*dp*ic*isc*ip*
depends: rfkill
intree: Y
vermagic: 3.2.34 mod_unload modversions ARMv7 thumb2 p2v8
parm: debug:Level of debug [0x01 | 0x02 | 0x04 | 0x08 | 0x10] (int)
parm: tty_major:Set the major tty number (int)
parm: disable_net:Disable the network interface (int)

#Introduction# We've been trying to get this 3G modem to work on a beaglebone. At some point it was working near Christmas 2012, then I took an adventure down building custom images in OE using the angstromv2012.12-yocto1.3 branch. Then the modem stopped working. The symptom is the light flashes blue. The hso module gets loaded and /dev/ttyHS[0-4] shows up. We can talk AT to the modem, but it gets stuck in AT+CFUN=4, meaning the RX/TX are off. Sswitching to AT+CFUN=1 lets the modem try to connect to the network, but fails and returns to turning off TX/RX.

This guy had the same problem in the beginning of January: http://www.draisberghof.de/usb_modeswitch/bb/viewtopic.php?f=3&t=1227

#Feb 1# The current theory is that the hso module got mucked up somewhere between December and now. I am currently building an cloud9-image from angstromv2012.05. After that, I'll go back to my custom image. Results to come...

The two files here are the dump of modinfo hso from the beaglebone: $ uname -a Linux beaglebone 3.2.28 #1 Mon Dec 24 14:29:59 CST 2012 armv7l GNU/Linux

and my Ubuntu laptop: $ uname -a Linux ginger 3.2.0-24-generic #39-Ubuntu SMP Mon May 21 16:52:17 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

The laptop can use the modem to send texts and other network functions, the beaglebone cannot when using Angstrom images built from the v2012.12 branch.

#Feb 2# Found some potentially relevant kernel patches if the issue is hso. git history of hso

That's mostly it. I've been working to build an image using Angstrom v2012.05 (Yocto 1.2). Been having some issues.

#Feb 3# I used the Angstrom v2012.05 branch using a custom image based on core-image-minimal. The modem is detected and connects to the network. I can send texts. So something that Angstrom uses is broken between May and December. I had this discussion on #beagle with Russ:

<coldsoup> so I'm using OE to build angstrom images for my 'bone. I've got this USB 3G modem I'm playing with that uses the hso kernel module.
<coldsoup> in angstromv2012.05 everything is grand. When I build with angstromv2012.12 the module detects the modem, opens up the serial ports and everything, but the modem refuses to connect to the network
<coldsoup> I've noticed one or two others reporting the same thing
<coldsoup> I suspect it's a change in the module over those 7 months. Any ideas on where to check what might have changed, or  who to tell?
<coldsoup> I saw that there was a commit to the main linux kernel dealing with link power management about 10 months ago. Not sure if that has any effect on this or not.
<Russ> check the network manager/modem manager code base
<Russ> they deal with all kinds of quirks
<coldsoup> right now I'm just messing with AT over the tty the module opens up. Does the network manager touch that?
<Russ> networkmanager/modemmanager does connect to the network

This leads me to think maybe it's not the hso module, but the network manager. TBH I don't know what network manager I'm using :-)

More to come.

$ modinfo hso
filename: /lib/modules/3.2.0-24-generic/kernel/drivers/net/usb/hso.ko
license: GPL
description: USB High Speed Option driver
author: Option Wireless
srcversion: 4FE076FEE4DAA4884B2C9A5
alias: usb:v0AF0pC100d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0pD058d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0pD357d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0pD257d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0pD157d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0pD057d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0pD255d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0pD155d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0pD055d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0pD035d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p9000d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p8900d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p8800d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p8600d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p8400d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p8304d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p8302d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p8300d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p8201d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p8200d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p7A05d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p7A01d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p7901d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p7801d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p7706d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p7701d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p7601d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p7501d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p7401d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p7381d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p7361d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p7301d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0pD033d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0pD031d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0pD013d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0pC031d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p7311d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p7271d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p7251d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p7211d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p7071d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p7051d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p7031d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p7011d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p6971d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p6951d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p6911d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p6811d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p6791d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p6771d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p6751d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p6731d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0AF0p6711d*dc*dsc*dp*ic*isc*ip*
depends:
intree: Y
vermagic: 3.2.0-24-generic SMP mod_unload modversions
parm: debug:Level of debug [0x01 | 0x02 | 0x04 | 0x08 | 0x10] (int)
parm: tty_major:Set the major tty number (int)
parm: disable_net:Disable the network interface (int)
@bewest
Copy link

bewest commented Feb 2, 2013

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment