요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
.. SPDX-License-Identifier: GPL-2.0
========================
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)
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
Firmware 요구 사항과 cxacru-cf.bin 제거
1-17ATM cxacru device driver
이 device에는 firmware가 필요합니다: http://accessrunner.sourceforge.net/
Module을 load하지 않아도 device가 ADSL connection을 관리하고 유지할 수는 있습니다. 하지만 driver를 unload한 뒤 가끔 device가 응답을 멈추며, 이 상태를 복구하려면 device를 뽑거나 전원을 차단했다가 다시 연결해야 합니다.
참고: `cxacru-cf.bin` 지원은 제거되었습니다. 이 파일은 올바르게 load되지 않아 device configuration에 아무 영향도 주지 못했습니다. 이를 고치면 잘못된 configuration이 제공될 때 기존 device가 작동을 멈출 수도 있었습니다.
기존 파일을 sysfs 형식으로 변환할 수 있도록 `cxacru-cf.py` script가 제공됩니다.
.. SPDX-License-Identifier: GPL-2.0
========================
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.
ATM device 탐색과 adsl_config interface
18-40감지된 device는 이름이 `cxacru`인 ATM device로 나타납니다. `/sys/class/atm/`에서는 device 번호 N에 따라 `cxacruN` directory로 표시됩니다.
`device`라는 symlink는 USB interface device directory를 가리킵니다. 이 directory에는 device statistic을 가져오는 여러 sysfs attribute file이 있습니다.
- `adsl_controller_version`
- `adsl_headend`
- `adsl_headend_environment`
`adsl_headend`와 `adsl_headend_environment`는 remote headend에 관한 정보를 제공합니다.
`adsl_config`
`adsl_config`는 configuration 쓰기 interface입니다. Parameter는 `<index>=<value>`의 hexadecimal 형식으로 쓰고 공백으로 구분합니다. 예를 들면 다음과 같습니다.
"1=0 a=5"
한 번에 parameter를 최대 7개까지 modem으로 보냅니다. 값을 하나라도 설정하면 modem이 ADSL connection을 restart합니다. 설정한 값은 나중에 참고할 수 있도록 log에 기록됩니다.
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
Downstream·upstream·error statistic
41-70Downstream statistic
- `downstream_attenuation` (dB)
- `downstream_bits_per_frame`
- `downstream_rate` (kbps)
- `downstream_snr_margin` (dB)
Upstream statistic
- `upstream_attenuation` (dB)
- `upstream_bits_per_frame`
- `upstream_rate` (kbps)
- `upstream_snr_margin` (dB)
- `transmitter_power` (dBm/Hz)
Error count
- `downstream_crc_errors`
- `downstream_fec_errors`
- `downstream_hec_errors`
- `upstream_crc_errors`
- `upstream_fec_errors`
- `upstream_hec_errors`
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.
ADSL line·link 상태와 modulation
71-99`line_startable`
`line_startable`은 device의 ADSL 지원이 활성화되어 있거나 활성화할 수 있음을 나타냅니다. `adsl_start`를 참고하십시오.
`line_status`
- `initialising`
- `down`
- `attempting to activate`
- `training`
- `channel analysis`
- `exchange`
- `waiting`
- `up`
Signal이 없으면 상태가 `down`과 `attempting to activate` 사이에서 바뀝니다.
`link_status`
- `not connected`
- `connected`
- `lost`
`mac_address`
`modulation`
- 연결되지 않았을 때 빈 문자열 `""`
- `ANSI T1.413`
- `ITU-T G.992.1 (G.DMT)`
- `ITU-T G.992.2 (G.LITE)`
* 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)"
ADSL 제어 command와 kernel 상태 log
100-120`startup_attempts`
ADSL 초기화를 시도한 총횟수입니다.
ADSL을 활성화하거나 비활성화하려면 `adsl_state` file에 다음 값을 쓸 수 있습니다.
- `start`: ADSL을 시작합니다.
- `stop`: ADSL을 중지합니다.
- `restart`: 중지하고 1.5초 기다린 뒤 다시 시작합니다.
- `poll`: 실패로 비활성화된 status polling을 다시 시작합니다.
ADSL·line 상태 변화는 kernel log message로 보고됩니다.
[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)
* 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)
요약·해설
cxacru.rst:1-120`cxacru`는 AccessRunner 계열 USB ADSL modem을 Linux ATM device로 노출합니다. 운영 관점에서는 firmware 준비, `/sys/class/atm/cxacruN/`의 상태·통계 확인, `adsl_config`를 통한 제한된 parameter 쓰기와 `adsl_state` 제어가 핵심입니다. Driver unload 뒤 장치가 멈추면 물리적인 전원 재연결이 필요할 수 있습니다.
ATM class device에서 실제 USB interface와 attribute로 이어지는 구조입니다.
값을 쓰면 configuration 전송과 connection restart가 함께 일어납니다.
읽기 attribute를 방향과 목적별로 묶었습니다.
정상적인 활성화 과정과 signal 부재 시 반복을 함께 표시합니다.
Line activation과 별도로 표시되는 연결·변조 상태입니다.
쓰기 command별 driver 동작입니다.
Line state 전이는 timestamp와 ATM device 번호를 포함해 기록됩니다.