펌웨어 업데이트 (rbln-flash)¶
rbln-flash는 RBLN NPU의 펌웨어를 업데이트하기 위한 명령줄 유틸리티입니다. 이 도구는 병렬 업데이트를 지원하며 두 가지 업데이트 모드를 제공합니다:
- CP: 커맨드 프로세서(Command Processor) 펌웨어 업데이트
- MCU (SMC): 마이크로컨트롤러(SMC) 펌웨어 업데이트
Warning
펌웨어 업데이트는 시스템 작업을 중단시킵니다. 업데이트 전에 모든 워크로드를 중지하십시오. 드라이버 처리 방법은 여기를 참조하십시오.
Note
이 도구가 올바르게 작동하려면 드라이버가 언로드되어 있어야 합니다.
빠른 시작 (Quick Start)¶
디렉토리에서 CP 펌웨어 업데이트 (모든 장치)
$ sudo systemctl stop rbln_daemon.service
$ sudo modprobe -r rebellions
$ sudo rbln-flash --cp -d /PATH/TO/FIRMWARE_DIR -s all
$ sudo modprobe rebellions
$ sudo systemctl start rbln_daemon.service
주요 개념 및 용어¶
업데이트 선택 요소¶
- 업데이트 모드 (Update mode): CP (
--cp) 또는 MCU (SMC) (--mcu). - 이미지 소스 (Image source): 단일 펌웨어 이미지 파일 (
-f) 또는 펌웨어 디렉토리 (-d). - 대상 (Targets) (CP 업데이트): 하나의 PCI BDF (예:
-s 01:00.0) 또는 전체 (-s all).
정확한 플래그 구문과 제약 사항(예: "--cp/--mcu 중 하나만 선택")은 명령어 참조를 확인하십시오.
명령어 참조 (Command Reference)¶
rbln-flash 실행 전¶
사전 조건 (Preconditions)¶
rebellions 드라이버가 로드되어 있거나 rbln_daemon이 실행 중인 경우(일반적으로 SDK 패키지가 설치된 경우), 업데이트 전에 서비스를 중지하고 드라이버를 언로드해야 합니다:
업데이트 후¶
드라이버를 언로드하고 데몬을 중지했다면, 업데이트 후 시스템을 복구하십시오:
기본 사용법 (General usage)¶
$ sudo rbln-flash --cp -f <FILE_PATH> -s <PCI_ADDR | all>
$ sudo rbln-flash --cp -d <DIR_PATH> -s <PCI_ADDR | all>
$ sudo rbln-flash --mcu -f <FILE_PATH> -s <PCI_ADDR | all>
$ sudo rbln-flash --mcu -d <DIR_PATH> -s <PCI_ADDR | all>
옵션 (Options)¶
| 옵션 | 설명 | 예시 |
|---|---|---|
--cp |
CP(Command Processor) 업데이트 모드를 선택합니다. | --cp -f image.gpt |
--mcu |
MCU(SMC) 업데이트 모드를 선택합니다. | --mcu -f smc_fw.bin |
-d, --dir <DIR_PATH> |
업데이트에 사용할 펌웨어 디렉토리입니다. | -d /lib/firmware/3.0/ |
-f, --file <FILE_PATH> |
업데이트에 사용할 펌웨어 이미지 파일입니다. | -f /lib/firmware/3.0/image.bin |
-s, --pci_addr <PCI_BDF \| all> |
PCI BDF 또는 all로 대상 장치를 지정합니다. 현재 rbln-flash --help는 이 플래그를 CP 업데이트용으로 설명하고 있습니다. |
-s 01:00.0 / -s all |
-l, --logfile <LOG_PATH> |
상세 로그를 파일에 기록합니다. 생략하면 로그는 표준 출력(stdout)으로만 출력됩니다. | -l update.log |
Note
--cp또는--mcu중 정확히 하나를 지정해야 합니다.-d또는-f중 정확히 하나를 지정해야 합니다.
디렉토리 모드 바이너리 요구 사항¶
-d 옵션 사용 시, 디렉토리는 다음과 같은 정확한 이름의 펌웨어 파일들을 포함해야 합니다:
| 구성 요소 | 필수 파일명 |
|---|---|
| ATOM-CP | atom-cp.bin 및 atom-cp-secure.bin |
| ATOM-SMC | atom-smc.bin |
| REBEL-CP | rebel-q-cp.bin |
| REBEL-SMC | rebel-smc.bin |
이 도구는 감지된 장치 플랫폼과 업데이트 모드(--cp 또는 --mcu)에 따라 올바른 파일을 자동으로 선택합니다.
반환 코드 (Return codes)¶
이 도구는 다음 종료 코드를 반환합니다:
| 값 유형 | 의미 |
|---|---|
0 |
모든 장치가 성공적으로 업데이트되었습니다. |
| 음수 정수 | Linux errno 스타일 오류 코드 (예: -EINVAL, -ENODEV). |
| 양수 정수 | 업데이트에 실패한 장치 수입니다. |
스크립트 작성 예제는 CLI 예제 → 종료 코드 처리를 참조하십시오.
CLI 예제¶
펌웨어 업데이트 워크플로우¶
요약
단일 펌웨어 이미지 파일을 사용하여 특정 장치의 CP 펌웨어를 업데이트합니다.
명령어
출력 (예시)
요약
펌웨어 디렉토리를 사용하여 모든 장치의 CP 펌웨어를 업데이트합니다 (다중 장치 시스템에 권장).
명령어
출력 (예시)
요약
단일 펌웨어 이미지 파일을 사용하여 특정 장치의 MCU (SMC) 펌웨어를 업데이트합니다.
명령어
출력 (예시)
요약
펌웨어 디렉토리를 사용하여 모든 장치의 MCU (SMC) 펌웨어를 업데이트합니다.
명령어
참고
이 예제는 원본 가이드를 따릅니다. 설치된 rbln-flash와 일치하지 않는 경우(지원되는 플래그/필수 인자), rbln-flash --help를 따르십시오.
출력 (예시)
문제 해결 (Troubleshooting)¶
드라이버를 언로드할 수 없음¶
- 데몬 중지:
sudo systemctl stop rbln_daemon.service - 드라이버 언로드:
sudo modprobe -r rebellions - 장치를 사용하는 프로세스가 없는지 확인하십시오.
디렉토리 모드 실패¶
- 펌웨어 디렉토리에 명령어 참조 → 디렉토리 모드 바이너리 요구 사항에 나열된 필수 파일 이름이 포함되어 있는지 확인하십시오.
- 의도한 업데이트 모드(
--cpvs--mcu)를 선택했는지 확인하십시오.
일부 장치 업데이트 실패¶
- 반환 코드를 확인하십시오 (명령어 참조 → 반환 코드 참조).
--logfile옵션과 함께 다시 실행하고 로그에서 장치별 오류를 검사하십시오.
참고 사항 (Notes)¶
- 이 도구는 선택된 모든 장치에 대해 병렬 펌웨어 업데이트를 수행합니다.
- 각 장치는 자체 결과인
SUCCESS(성공),FAILED(실패), 또는TIMEOUT(시간 초과)을 보고합니다. - 펌웨어 이미지가 대상 업데이트 모드(
--cp또는--mcu)와 일치하는지 확인하십시오. - 업데이트가 중단되거나 유효하지 않은 이미지를 사용하면 장치 오동작이 발생할 수 있습니다.
-l이 지정되면 로그는 파일에 기록됨과 동시에 표준 출력(stdout)에도 표시됩니다. 생략하면 로그는 표준 출력으로만 인쇄됩니다.
참고 (See also)¶
rblnBandwidthLatencyTest: 호스트-NPU 및 NPU-NPU 성능 벤치마크rblnvs: 시스템 검증rbln-smi: 장치 모니터링 및 토폴로지 검사