ATM cxacru device driver¶
Firmware is required for this device: http://accessrunner.sourceforge.net/
While it is capable of managing/maintaining the ADSL connection without the module loaded, the device will sometimes stop responding after unloading the driver and it is necessary to unplug/remove power to the device to fix this.
Note: support for cxacru-cf.bin has been removed. It was not loaded correctly so it had no effect on the device configuration. Fixing it could have stopped existing devices working when an invalid configuration is supplied.
There is a script cxacru-cf.py to convert an existing file to the sysfs form.
Detected devices will appear as ATM devices named “cxacru”. In /sys/class/atm/ these are directories named cxacruN where N is the device number. A symlink named device points to the USB interface device’s directory which contains several sysfs attribute files for retrieving device statistics:
adsl_controller_version
adsl_headend
adsl_headend_environment
Information about the remote headend.
adsl_config
Configuration writing interface.
Write parameters in hexadecimal format <index>=<value>, separated by whitespace, e.g.:
“1=0 a=5”
Up to 7 parameters at a time will be sent and the modem will restart the ADSL connection when any value is set. These are logged for future reference.
downstream_attenuation (dB)
downstream_bits_per_frame
downstream_rate (kbps)
downstream_snr_margin (dB)
Downstream stats.
upstream_attenuation (dB)
upstream_bits_per_frame
upstream_rate (kbps)
upstream_snr_margin (dB)
transmitter_power (dBm/Hz)
Upstream stats.
downstream_crc_errors
downstream_fec_errors
downstream_hec_errors
upstream_crc_errors
upstream_fec_errors
upstream_hec_errors
Error counts.
line_startable
Indicates that ADSL support on the device is/can be enabled, see adsl_start.
line_status
“initialising”
“down”
“attempting to activate”
“training”
“channel analysis”
“exchange”
“waiting”
“up”
Changes between “down” and “attempting to activate” if there is no signal.
link_status
“not connected”
“connected”
“lost”
mac_address
modulation
“” (when not connected)
“ANSI T1.413”
“ITU-T G.992.1 (G.DMT)”
“ITU-T G.992.2 (G.LITE)”
startup_attempts
Count of total attempts to initialise ADSL.
To enable/disable ADSL, the following can be written to the adsl_state file:
“start”
“stop
“restart” (stops, waits 1.5s, then starts)
“poll” (used to resume status polling if it was disabled due to failure)
Changes in adsl/line state are reported via kernel log messages:
[4942145.150704] ATM dev 0: ADSL state: running
[4942243.663766] ATM dev 0: ADSL line: down
[4942249.665075] ATM dev 0: ADSL line: attempting to activate
[4942253.654954] ATM dev 0: ADSL line: training
[4942255.666387] ATM dev 0: ADSL line: channel analysis
[4942259.656262] ATM dev 0: ADSL line: exchange
[2635357.696901] ATM dev 0: ADSL line: up (8128 kb/s down | 832 kb/s up)