You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
254 lines
9.0 KiB
254 lines
9.0 KiB
Introduction
|
|
============
|
|
|
|
This ebuild enables kernel-space support for Alcatel/Thomson SpeedTouch
|
|
USB modems, which first appeared in kernel 2.6.10.
|
|
|
|
Configuration
|
|
=============
|
|
|
|
Most SpeedTouch USB modems are connected via the ATM protocol, rather
|
|
than Ethernet. For ATM, run the following:
|
|
euse -E atm && emerge net-dialup/ppp net-dialup/speedtouch-usb
|
|
|
|
It is necessary to choose an interface number for the connection. This
|
|
is arbitrary - the only requirement is that the connection number is
|
|
not already in use. The first available number is 0, and it is usual to
|
|
choose the lowest unused number. For the purposes of this document, 0
|
|
will be chosen.
|
|
|
|
Add the following lines from the appropriate section below to
|
|
/etc/conf.d/net, then customize them as per the inline comments.
|
|
|
|
|
|
a) PPPoATM configuration:
|
|
|
|
config_ppp0='ppp' # Runs /lib/rcscripts/net/pppd.sh
|
|
# The 2 numbers represent the VPI & VCI of your ISP, and they are separated
|
|
# by a dot. Choose here, or ask your ISP:
|
|
# http://www.linux-usb.org/SpeedTouch/faq/index.html#q12
|
|
link_ppp0='0.38'
|
|
plugins_ppp0='pppoa'
|
|
# 'man pppd' shows other options. Compression is disabled because it is
|
|
# rarely taken advantage of, and may interfere with the connection.
|
|
# Add option 'usepeerdns' to populate /etc/resolv.conf
|
|
pppd_ppp0='updetach noauth debug defaultroute noaccomp nobsdcomp noccp
|
|
nodeflate nopcomp novj novjccomp child-timeout 60'
|
|
username_ppp0='username@isp.com' # ADSL login, assigned by your ISP
|
|
password_ppp0='password' # ADSL password, assigned by your ISP
|
|
|
|
# If the kernel modules are not built-in, then they must be loaded
|
|
# before starting the PPP daemon:
|
|
function preup() {
|
|
if [[ "$1" = "ppp0" ]] ; then
|
|
modprobe -q speedtch
|
|
return 0
|
|
fi
|
|
}
|
|
|
|
|
|
b) PPPoE configuration:
|
|
|
|
# Configure first the RFC2684 bridge interface
|
|
config_nas0='null'
|
|
# Use "-e 0" for LLC mux or "-e 1" for VC mux.
|
|
# The 2 numbers after "-a" represent the VPI & VCI of your ISP, and
|
|
# they are separated by a dot. Ask your ISP about those numbers.
|
|
br2684ctl_nas0='-e 0 -a 0.38'
|
|
|
|
config_ppp0='ppp' # Runs /lib/rcscripts/net/pppd.sh
|
|
link_ppp0='nas0' # The name of the RFC2684 bridge interface
|
|
plugins_ppp0='pppoe'
|
|
# 'man pppd' shows other options. Compression is disabled because it is
|
|
# rarely taken advantage of, and may interfere with the connection.
|
|
# Add option 'usepeerdns' to populate /etc/resolv.conf
|
|
pppd_ppp0='updetach noauth debug defaultroute noaccomp nobsdcomp noccp
|
|
nodeflate nopcomp novj novjccomp child-timeout 60'
|
|
username_ppp0='username@isp.com' # ADSL login, assigned by your ISP
|
|
password_ppp0='password' # ADSL password, assigned by your ISP
|
|
|
|
depend_ppp0() {
|
|
need net.nas0
|
|
}
|
|
|
|
# If the kernel modules are not built-in, then they must be loaded
|
|
# before starting the RFC2684 bridge:
|
|
function preup() {
|
|
if [[ "$1" = "nas0" ]] ; then
|
|
modprobe -q speedtch
|
|
return 0
|
|
fi
|
|
}
|
|
|
|
|
|
|
|
Configuration continued
|
|
=======================
|
|
|
|
Create a symlink for the new network interface, for it to be enabled by
|
|
baselayout:
|
|
cd /etc/init.d && ln -sfn net.lo net.ppp0
|
|
If you use PPPoE, you should also create the symlink for the RFC2684
|
|
bridge interface:
|
|
cd /etc/init.d && ln -sfn net.lo net.nas0
|
|
|
|
The "debug" option adds some extra commentary from pppd regarding the
|
|
connection to /var/log/messages, e.g.:
|
|
"sent [LCP ConfReq id=0x1 <magic 0x7bea6ef1>]". It is wise to keep the
|
|
option on permanently, due to its usefulness when debugging.
|
|
|
|
Set RC_NET_STRICT_CHECKING="yes" in /etc/conf.d/rc, to prevent Internet
|
|
services in /etc/init.d/ from starting before the Internet connection
|
|
is established. Other options are to start/stop programs in
|
|
/etc/ppp/ip-{up,down}.local, and to customize initscript dependencies
|
|
as described in:
|
|
http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=2&chap=4
|
|
|
|
|
|
Starting the Connection
|
|
=======================
|
|
|
|
To start manually, with the modem connected:
|
|
/etc/init.d/net.ppp0 start
|
|
|
|
To start automatically when the PC boots:
|
|
rc-update add net.ppp0 default
|
|
|
|
|
|
Kernel Configuration
|
|
====================
|
|
|
|
The ebuild, during an emerge, checks that the required kernel modules
|
|
are present.
|
|
|
|
Note that in the list below, "[*]" means that the option is compiled
|
|
into the kernel, whereas "[M]" means that the option can either be
|
|
compiled into the kernel, or as a module. Compiling them into the
|
|
kernel is recommended, to guarantee that the modules are already loaded
|
|
when they are needed, and it will improve the bootup time by a couple
|
|
of seconds.
|
|
|
|
In "make menuconfig", you can press "/" and search on e.g. "speedtouch"
|
|
to see exactly where an option is - the location of an option and its
|
|
dependencies can change between kernel versions.
|
|
|
|
Check that the following kernel options are configured as shown (this
|
|
list includes the prerequisites, e.g. USB_SPEEDTOUCH depends on USB):
|
|
|
|
Code maturity level options --->
|
|
[*] Prompt for development and/or incomplete code/drivers
|
|
- CONFIG_EXPERIMENTAL
|
|
|
|
General setup --->
|
|
[*] Kernel Userspace Events - CONFIG_KOBJECT_UEVENT
|
|
(for kernels < 2.6.16 *ONLY*)
|
|
|
|
Device Drivers --->
|
|
Generic Driver Options --->
|
|
[ ] Select only drivers that don't need compile-time external
|
|
firmware (*unselected*) - CONFIG_STANDALONE
|
|
[*] Hotplug firmware loading support - CONFIG_FW_LOADER
|
|
|
|
Networking --->
|
|
[*] Networking support - CONFIG_NET
|
|
Networking options --->
|
|
[*] Packet socket - CONFIG_PACKET
|
|
[M] Asynchronous Transfer Mode (ATM) - CONFIG_ATM
|
|
[M] RFC1483/2684 Bridged protocols - CONFIG_ATM_BR2684 (only needed for PPPoE)
|
|
|
|
Device Drivers --->
|
|
Network device support --->
|
|
[*] Network device support - CONFIG_NETDEVICES
|
|
[*] PPP (point-to-point protocol) support - CONFIG_PPP
|
|
[M] PPP Deflate compression - CONFIG_PPP_DEFLATE (only useful if
|
|
compression is supported - rare)
|
|
[M] PPP BSD-Compress compression - CONFIG_PPP_BSDCOMP (only useful
|
|
if compression is supported - rare)
|
|
[M] PPP over Ethernet - CONFIG_PPPOE (only needed for PPPoE)
|
|
[M] PPP over ATM - CONFIG_PPPOATM (only needed for PPPoATM)
|
|
USB support --->
|
|
[*] Support for Host-side USB - CONFIG_USB
|
|
[*] USB device filesystem - CONFIG_USB_DEVICEFS
|
|
[M] (O or U)HCI HCD support
|
|
USB DSL modem support --->
|
|
[M] USB DSL modem support - CONFIG_USB_ATM
|
|
[M] Speedtouch USB support - CONFIG_USB_SPEEDTOUCH
|
|
|
|
|
|
|
|
Troubleshooting
|
|
===============
|
|
|
|
Try "emerge speedtouch-usb" again, because the ebuild checks that the
|
|
required kernel modules are present (showing a warning message if
|
|
appropriate), and creates the firmware files and symlinks in
|
|
/lib/firmware/
|
|
|
|
If the modem is unresponsive, then run "/etc/init.d/net.ppp0 stop" and
|
|
unplug the modem for 30 seconds, to drain its memory. Then reconnect
|
|
the modem to the PC and run "/etc/init.d/net.ppp0 start"
|
|
|
|
To check the modem's connection progress, run:
|
|
tail -f /var/log/messages
|
|
/var/log/messages should show e.g.:
|
|
|
|
usb n-n: new full speed USB device using xxxx_hcd and address n
|
|
usb n-n: found stage 1 firmware speedtch-1.bin
|
|
usb n-n: found stage 2 firmware speedtch-2.bin
|
|
pppd[nnn]: Plugin pppoatm.so loaded.
|
|
pppd[nnn]: pppd n.n.n started by root, uid 0
|
|
pppd[nnn]: Using interface ppp0
|
|
pppd[nnn]: Connect: ppp0 <--> n.nn
|
|
ADSL line is synchronising
|
|
DSL line goes up
|
|
ADSL line is up (nnn Kib/s down | nnn Kib/s up)
|
|
pppd[nnn]: CHAP authentication succeeded
|
|
pppd[nnn]: local IP address nnn.nnn.nnn.nnn
|
|
pppd[nnn]: remote IP address nnn.nnn.nnn.nnn
|
|
|
|
|
|
If the authentification fails, then check username_ppp0 and
|
|
password_ppp0.
|
|
|
|
If the ADSL connection is not established, then check the options in
|
|
pppd_ppp0. "man pppd" explains all the options in that file.
|
|
|
|
If the ADSL connection seems to have worked, but no websites can be
|
|
contacted, then check that /etc/resolv.conf is populated, and possibly
|
|
add the "usepeerdns" option (to use the ISP's DNS) to pppd_ppp0 in
|
|
/etc/conf.d/net .
|
|
|
|
If the problem is still not resolved, post to the Gentoo Forums
|
|
at http://forums.gentoo.org/. If there is no answer, then
|
|
file a bug at http://bugs.gentoo.org/ .
|
|
|
|
|
|
Compression
|
|
===========
|
|
|
|
Some ISPs require compression to be disabled in order for the
|
|
connection to work, so the default configuration described above
|
|
disables compression. Few ISPs support ADSL compression anyway. If you
|
|
are lucky enough to have an ISP which *does* support compression
|
|
(Google is your best friend for determining this), then compression can
|
|
be enabled by following these steps:
|
|
|
|
* Compile the kernel modules CONFIG_PPP_DEFLATE and CONFIG_PPP_BSDCOMP
|
|
(only one is strictly necessary - pppd prefers "deflate" compression).
|
|
Add them to /etc/modules.autoload.d/kernel-2.6 or /etc/conf.d/net above
|
|
the "pppoatm" line, if they are not built-in.
|
|
* Remove the following options in pppd_ppp0:
|
|
noaccomp nobsdcomp noccp nodeflate nopcomp novj novjccomp
|
|
* Ensure that "debug" is in the pppd_ppp0 options, to check that
|
|
compression is being utilized. Note that "module registered" in
|
|
/var/log/messages only confirms that the kernel module is loaded -
|
|
it does not indicate that the connection is compressed.
|
|
|
|
|
|
Links
|
|
=====
|
|
|
|
SpeedTouch ebuilds: https://packages.gentoo.org/packages/search?q=speedtouch
|
|
SpeedTouch hardware: http://www.speedtouch.com/support.htm
|
|
SpeedTouch firmware: http://www.speedtouch.com/driver_upgrade_lx_3.0.1.2.htm
|