Hello. On Sep 6, 10:12pm, Thor Lancelot Simon wrote: } Subject: Re: Tips on programming usb devices? } On Thu, Sep 06, 2012 at 05:30:25PM -0700, Brian Buhrow wrote: } > hello Iain. Thank you again for your assistance in getting this } > Novatel modem working. I now have a working driver which, when activated } > through the modem interface, fires up the ethernet portion of the device } > and seems to work quite well. I'd like to commit this driver,aand probably } > the scripts to activate it, to -current, but I have a few style questions } } I don't understand. Why are userspace scripts required to "activate" a } kernel device driver? These types of devices seem to be a cross between a packet switched device and acircuit switched device. When you plug it in, all the devices show up in the system, but there is no active network connection configured on the ethernet device to talk to. Rather than configuring the ethernet through ifconfig commands, one must send traditional AT commands through the first serial port associated with the device to get it to establish a connection with the broad band provider. Once the connection with the provider is established, dhcp can be used to assign an address to the ethernet interface, and all other networking functions are normal. You can think of this is an evolutionary step to the process of getting ppp up and running on a serial port. Rather than using a chat script to talk to a modem and then turning the port over to the ppp driver once the connection is established, you talk to the modem with your traditional chat script, and when the connection is established, you talk to another port on the same device to exchange network packets instead. I think the primary reason for doing things this way is so that the overhead of PPPoE can be avoided and because most network stacks run much more efficiently when talking to ethernet chips than serial ports. Finally, the reason to use user-level scripts to do this is because the commands vary from modem to modem, and it seems like a very very bad idea to embed AT commands in kernel level code.
-Brian