1*4882a593Smuzhiyun.. SPDX-License-Identifier: GPL-2.0 2*4882a593Smuzhiyun 3*4882a593Smuzhiyun======================== 4*4882a593SmuzhiyunATM cxacru device driver 5*4882a593Smuzhiyun======================== 6*4882a593Smuzhiyun 7*4882a593SmuzhiyunFirmware is required for this device: http://accessrunner.sourceforge.net/ 8*4882a593Smuzhiyun 9*4882a593SmuzhiyunWhile it is capable of managing/maintaining the ADSL connection without the 10*4882a593Smuzhiyunmodule loaded, the device will sometimes stop responding after unloading the 11*4882a593Smuzhiyundriver and it is necessary to unplug/remove power to the device to fix this. 12*4882a593Smuzhiyun 13*4882a593SmuzhiyunNote: support for cxacru-cf.bin has been removed. It was not loaded correctly 14*4882a593Smuzhiyunso it had no effect on the device configuration. Fixing it could have stopped 15*4882a593Smuzhiyunexisting devices working when an invalid configuration is supplied. 16*4882a593Smuzhiyun 17*4882a593SmuzhiyunThere is a script cxacru-cf.py to convert an existing file to the sysfs form. 18*4882a593Smuzhiyun 19*4882a593SmuzhiyunDetected devices will appear as ATM devices named "cxacru". In /sys/class/atm/ 20*4882a593Smuzhiyunthese are directories named cxacruN where N is the device number. A symlink 21*4882a593Smuzhiyunnamed device points to the USB interface device's directory which contains 22*4882a593Smuzhiyunseveral sysfs attribute files for retrieving device statistics: 23*4882a593Smuzhiyun 24*4882a593Smuzhiyun* adsl_controller_version 25*4882a593Smuzhiyun 26*4882a593Smuzhiyun* adsl_headend 27*4882a593Smuzhiyun* adsl_headend_environment 28*4882a593Smuzhiyun 29*4882a593Smuzhiyun - Information about the remote headend. 30*4882a593Smuzhiyun 31*4882a593Smuzhiyun* adsl_config 32*4882a593Smuzhiyun 33*4882a593Smuzhiyun - Configuration writing interface. 34*4882a593Smuzhiyun - Write parameters in hexadecimal format <index>=<value>, 35*4882a593Smuzhiyun separated by whitespace, e.g.: 36*4882a593Smuzhiyun 37*4882a593Smuzhiyun "1=0 a=5" 38*4882a593Smuzhiyun 39*4882a593Smuzhiyun - Up to 7 parameters at a time will be sent and the modem will restart 40*4882a593Smuzhiyun the ADSL connection when any value is set. These are logged for future 41*4882a593Smuzhiyun reference. 42*4882a593Smuzhiyun 43*4882a593Smuzhiyun* downstream_attenuation (dB) 44*4882a593Smuzhiyun* downstream_bits_per_frame 45*4882a593Smuzhiyun* downstream_rate (kbps) 46*4882a593Smuzhiyun* downstream_snr_margin (dB) 47*4882a593Smuzhiyun 48*4882a593Smuzhiyun - Downstream stats. 49*4882a593Smuzhiyun 50*4882a593Smuzhiyun* upstream_attenuation (dB) 51*4882a593Smuzhiyun* upstream_bits_per_frame 52*4882a593Smuzhiyun* upstream_rate (kbps) 53*4882a593Smuzhiyun* upstream_snr_margin (dB) 54*4882a593Smuzhiyun* transmitter_power (dBm/Hz) 55*4882a593Smuzhiyun 56*4882a593Smuzhiyun - Upstream stats. 57*4882a593Smuzhiyun 58*4882a593Smuzhiyun* downstream_crc_errors 59*4882a593Smuzhiyun* downstream_fec_errors 60*4882a593Smuzhiyun* downstream_hec_errors 61*4882a593Smuzhiyun* upstream_crc_errors 62*4882a593Smuzhiyun* upstream_fec_errors 63*4882a593Smuzhiyun* upstream_hec_errors 64*4882a593Smuzhiyun 65*4882a593Smuzhiyun - Error counts. 66*4882a593Smuzhiyun 67*4882a593Smuzhiyun* line_startable 68*4882a593Smuzhiyun 69*4882a593Smuzhiyun - Indicates that ADSL support on the device 70*4882a593Smuzhiyun is/can be enabled, see adsl_start. 71*4882a593Smuzhiyun 72*4882a593Smuzhiyun* line_status 73*4882a593Smuzhiyun 74*4882a593Smuzhiyun - "initialising" 75*4882a593Smuzhiyun - "down" 76*4882a593Smuzhiyun - "attempting to activate" 77*4882a593Smuzhiyun - "training" 78*4882a593Smuzhiyun - "channel analysis" 79*4882a593Smuzhiyun - "exchange" 80*4882a593Smuzhiyun - "waiting" 81*4882a593Smuzhiyun - "up" 82*4882a593Smuzhiyun 83*4882a593Smuzhiyun Changes between "down" and "attempting to activate" 84*4882a593Smuzhiyun if there is no signal. 85*4882a593Smuzhiyun 86*4882a593Smuzhiyun* link_status 87*4882a593Smuzhiyun 88*4882a593Smuzhiyun - "not connected" 89*4882a593Smuzhiyun - "connected" 90*4882a593Smuzhiyun - "lost" 91*4882a593Smuzhiyun 92*4882a593Smuzhiyun* mac_address 93*4882a593Smuzhiyun 94*4882a593Smuzhiyun* modulation 95*4882a593Smuzhiyun 96*4882a593Smuzhiyun - "" (when not connected) 97*4882a593Smuzhiyun - "ANSI T1.413" 98*4882a593Smuzhiyun - "ITU-T G.992.1 (G.DMT)" 99*4882a593Smuzhiyun - "ITU-T G.992.2 (G.LITE)" 100*4882a593Smuzhiyun 101*4882a593Smuzhiyun* startup_attempts 102*4882a593Smuzhiyun 103*4882a593Smuzhiyun - Count of total attempts to initialise ADSL. 104*4882a593Smuzhiyun 105*4882a593SmuzhiyunTo enable/disable ADSL, the following can be written to the adsl_state file: 106*4882a593Smuzhiyun 107*4882a593Smuzhiyun - "start" 108*4882a593Smuzhiyun - "stop 109*4882a593Smuzhiyun - "restart" (stops, waits 1.5s, then starts) 110*4882a593Smuzhiyun - "poll" (used to resume status polling if it was disabled due to failure) 111*4882a593Smuzhiyun 112*4882a593SmuzhiyunChanges in adsl/line state are reported via kernel log messages:: 113*4882a593Smuzhiyun 114*4882a593Smuzhiyun [4942145.150704] ATM dev 0: ADSL state: running 115*4882a593Smuzhiyun [4942243.663766] ATM dev 0: ADSL line: down 116*4882a593Smuzhiyun [4942249.665075] ATM dev 0: ADSL line: attempting to activate 117*4882a593Smuzhiyun [4942253.654954] ATM dev 0: ADSL line: training 118*4882a593Smuzhiyun [4942255.666387] ATM dev 0: ADSL line: channel analysis 119*4882a593Smuzhiyun [4942259.656262] ATM dev 0: ADSL line: exchange 120*4882a593Smuzhiyun [2635357.696901] ATM dev 0: ADSL line: up (8128 kb/s down | 832 kb/s up) 121