fwupd를 통한 주변기기 펌웨어 업데이트

버전: 2.4.3
최종 업데이트: 2025년 7월 23일

개요

이 가이드의 목적은 ChromeOS UI에서 지원하는 fwupd 펌웨어 업데이트를 구성하는 방법을 설명하는 것입니다.

fwupd 플로 차트

배경

fwupd는 Linux 기반 시스템에서 주변기기 및 기타 시스템 펌웨어 업데이트를 실행하는 오픈소스 데몬입니다. fwupd는 ChromeOS가 주변기기 펌웨어를 업데이트하는 메커니즘입니다.

fwupd 업데이트 페이로드는 Linux 공급업체 펌웨어 서비스 (LVFS)에 저장된 .cab 파일로 구성됩니다. Linux에서는 fwupd 업데이트가 LVFS에 업로드되면 널리 제공될 수 있습니다. 하지만 ChromeOS에서 업데이트를 사용할 수 있으려면 ChromeOS팀에서 최적의 사용자 환경을 보장하기 위해 새로운 업데이트를 별도로 확인하고 허용 목록에 추가해야 합니다.

fwupd 프로세스

다음은 샘플이 Allion에 전송된 WWCB 인증 주변기기에만 적용됩니다.

ChromeOS의 현재 fwupd 버전이 주변기기를 아직 지원하지 않는 경우 사용 사례 1 사용 사례 2에 제공된 안내를 따르세요. ChromeOS의 현재 fwupd 버전이 이미 주변기기를 지원하는 경우 사용 사례 2로 건너뜁니다.

사용 사례 1: ChromeOS 현재 버전의 fwupd가 주변기기를 지원하지 않음

ChromeOS의 현재 fwupd 버전이 주변기기를 아직 지원하지 않습니다.

이미지

  1. ODM과 OEM은 칩셋 공급업체와 직접 협력하여 플러그인 변경사항을 fwupd 코드베이스에 제출해야 합니다.

    1. fwupd 통합 핸드북 (2단계 - fwupd 사용)을 참고하세요.
    2. 플러그인 변경사항: 예 1, 예 2
    3. .quirk 파일에서 VIDs:PIDs 일치: 예 3
      • 특이 파일 변경사항의 대안으로 USB 주변기기가 기존 플러그인에서 지원되는 경우 DS20 사양을 따를 수 있습니다.
    4. 결과 플러그인과 특이사항 변경사항을 fwupd의 관리자가 병합하도록 합니다.
    5. fwupd의 공식 포인트 출시 (예: 1.8.4) 버전을 기록해 둡니다.
  2. fwupd 버전은 정기적으로 ChromeOS에 미러링되며 Chromium 출시 일정을 따릅니다.

  3. 예정된 Chromium 출시의 기능 고정 컷오프 날짜 이후에 플러그인 변경사항, 버그 수정 또는 특이사항 파일 변경사항을 제출했지만 변경사항이 다음 ChromeOS 출시에서 우선순위가 높은 경우 다음을 충족해야 합니다.

    1. 파트너 문제 추적기로 이동합니다.
    2. Google 파트너 도메인 계정으로 로그인합니다.
    3. 왼쪽 메뉴에서 문제 만들기 버튼을 클릭하여 구성요소 (ChromeOS > External > WWCB > PERIPHERAL OEM > fwupd)에 버그를 만듭니다. 이렇게 하면 ChromeOS 팀에 ChromeOS의 fwupd 버전을 업그레이드하라는 알림이 전송됩니다.

      버그에 다음 정보를 제공하세요.

      1. 버그 제목:

        [PRODUCT NAME - fwupd]: New Plugin NAME OF THE PLUGIN requires fwupd X.Y.Z version uprev
        
      2. 버그 설명:

        1. 플러그인 변경사항으로 구성된 fwupd 버전 번호:
          • 어떤 기능이 추가되나요?
          • 어떤 버그가 수정되었나요?
          • 지원되는 하드웨어는 무엇인가요?
        2. 기기 제조업체/모델
        3. VID, PID
        4. GUID (전역적으로 고유한 식별자)
      3. 예시 스크린샷:

        fwupd uprev 버그 스크린샷

  4. 버그가 분류되고 선택적 버전의 fwupd가 Google 엔지니어에 의해 ChromeOS에 통합됩니다.

  5. fwupd의 업그레이드된 버전은 변경 목록이 승인되면 카나리아 채널로 승격됩니다.

    • 버그에 댓글을 남겨 fwupd의 업그레이드된 버전으로 구성된 ChromeOS 빌드 버전을 확인합니다. CL Finder를 사용하여 ChromeOS 파트너 콘솔 (CPCon)에서 빌드 버전을 검색할 수도 있습니다(Google corp 파트너 도메인 계정이 필요하며 CPCon 액세스 권한은 TAM에 문의하세요).

사용 사례 2: ChromeOS 현재 버전의 fwupd가 주변기기를 지원함

ChromeOS의 현재 fwupd 버전이 주변기기를 이미 지원하며 새 펌웨어가 제공됩니다.

이미지

  1. .cab 파일을 만듭니다.

    모든 펌웨어는 캐비닛 보관 파일로 업로드됩니다. LVFS는 펌웨어 바이너리와 함께 보관 파일에 타겟 기기와 펌웨어를 설명하는 .metainfo.xml 파일이 하나 이상 포함되어야 합니다. Linux에서는 gcab (캐비닛 파일을 만드는 라이브러리)을 사용하여 캐비닛 보관 파일을 만들 수 있습니다.

  2. 테스트를 거친 최종 펌웨어 업데이트 (.cab 파일)를 LVFS에 업로드합니다.

    1. 안정적인 원격에서 업데이트를 사용할 수 있는지 확인합니다.

      비공개, 엠바고 또는 테스트 원격에 있는 경우 ChromeOS 미러에 추가되지 않습니다.

    2. 서명된 보고서를 통해 LVFS에서 검증된 것으로 표시된 업데이트

      기기 테스트가 추가되었는지 확인합니다.

    3. 첫 번째 펌웨어 업로드인 경우 다운그레이드 테스트를 위한 기본 펌웨어와 업그레이드 테스트를 위한 새 펌웨어 등 최소 2개의 펌웨어가 LVFS의 안정적인 원격에 있는지 확인합니다.

  3. 펌웨어 업그레이드는 서명된 보고서를 통해 ChromeOS에서 테스트해야 합니다.

    1. 인증서를 LVFS에 업로드하여 DUT를 계정에 연결합니다.

      1. 계정으로 LVFS에 로그인합니다.
      2. 오른쪽 상단의 '사람' 아이콘을 클릭하거나 https://fwupd.org/lvfs/profile{:.external}을 클릭합니다.
      3. 프로필 설정을 클릭합니다.
      4. Chromebook에서 클라이언트 인증서를 찾습니다.

        • 참고: Chromebook이 개발자 모드여야 합니다.
        • ctrl+alt+t를 눌러 ChromeOS 개발자 셸을 실행합니다.
        • 유형:

          shell
        • /var/lib/fwupd/pki로 이동합니다.

          cd /var/lib/fwupd/pki
        • client.pem을 Chromebook의 폴더에 복사합니다(예: Downloads).

          cp client.pm /home/chronos/user/MyFiles/Downloads/
    2. LVFS 웹사이트의 클라이언트 인증서 섹션에서 인증서 업로드 버튼을 클릭하고 인증서를 업로드합니다.

      1. 테스트에 사용하는 각 Chromebook에서 이 단계를 반복합니다 (다른 컴퓨터의 인증서를 여러 개 업로드할 수 있음).
    3. DUT를 통해 업그레이드를 테스트하고 서명된 보고서를 업로드합니다.

      1. 보고서를 테스트하고 업로드하려면 다음 명령어를 실행하고 메시지가 표시되면 인증합니다.

        fwupdmgr refresh
        fwupdmgr update
        fwupdmgr report-history --sign
      2. 참고: --sign 플래그 없이 보고서를 이미 업로드한 경우 fwupdmgr report-history --sign --force를 사용하여 동일한 보고서를 LVFS에 다시 업로드할 수 있습니다.

        fwupdmgr report-history --sign --force
        • --verbose를 전달하여 서버 응답을 확인할 수 있습니다.

          fwupdmgr report-history --force --verbose
      3. 확인 대화상자에서 를 클릭합니다.

        • 이렇게 하면 서명된 보고서가 계정에 업로드됩니다.
        • 이를 확인하려면 https://fwupd.org/lvfs/dashboard로 이동하여 왼쪽 상단의 섹션에서 서명된 보고서를 클릭합니다.
    4. LVFS의 펌웨어 버전에 서명된 보고서가 있는지 확인

      • LVFS에서 주변기기를 검색합니다.
      • 업로드된 서명된 보고서가 Chromebook을 사용하여 주변기기의 펌웨어 버전을 성공적으로 업그레이드한 후인 경우 테스트한 사람 섹션에 ChromeOS 버전, fwupd 버전, 엔티티가 표시됩니다. 예시를 참고하세요.
      • 출시 게이트에 녹색 체크표시 'ChromOS 사용자에게 제공됨'이 표시되는지 확인합니다.
    5. M126부터 펌웨어에 LVFS의 서명된 보고서 (ChromeOS로 테스트됨)가 있는 경우에만 ChromeOS 사용자에게 펌웨어 업데이트가 제공됩니다.

      • 24시간이 지나면 사용자가 주변기기를 Chromebook에 연결하고 ChromeOS UI를 통해 펌웨어를 업그레이드할 수 있습니다. 설정 > ChromeOS 정보 > 펌웨어 업데이트로 이동합니다.
      • 참고: 펌웨어 업데이트는 특정 주요 버전의 ChromeOS에서 필요한 모든 플러그인 변경사항이 제공된다고 가정할 때 제공됩니다.

서명된 보고서에 대한 자세한 내용은 LVFS에서 확인할 수 있습니다.

FAQ

Q: fwupd를 지원하는 Chromebook은 무엇인가요?

M101 이상의 모든 ChromeOS 기기

Q: ChromeOS와 통합된 fwupd 버전을 확인하려면 어떻게 해야 하나요?

  1. 브라우저를 통해 chrome://system를 엽니다 (M109 이상).
    1. fwupd_version로 이동합니다.
  2. 또는 개발자 모드, 루트 콘솔을 통해
    1. fwupdmgr --version을 입력합니다.
    2. runtime org.freedesktop.fwupd 찾기

Q: fwupd uprev 프로세스는 얼마나 걸리나요?

fwupd uprev는 Chromium 출시 일정을 따르므로 브랜치 기능 고정 마감일 전에 fwupd uprev 요청을 제출해야 합니다.

Q: ChromeOS 출시 일정에 대한 자세한 내용은 어디에서 확인할 수 있나요?

Chromium 출시 일정

Q: Chromebook을 개발자 모드로 전환하는 방법은 무엇인가요?

  1. Chromebook을 끕니다.
  2. esc+새로고침을 길게 누른 상태에서 전원 버튼을 누릅니다.
    • 참고: 일부 Chromebook에서는 Esc+ (오른쪽 화살표 키)을 누른 다음 전원 버튼을 누릅니다.
  3. 기기가 켜지고 복구 화면 / 모드가 표시됩니다.
  4. 그런 다음 ctrl+d를 누르고 Enter를 눌러 확인합니다.
    • 참고: ctrl+d를 누르기 전에 키를 누르면 기기가 개발자 모드로 전환되지 않습니다.
  5. 기기가 재부팅되고, 신호음이 울리고, '시스템이 개발자 모드로 전환 중입니다'라는 메시지가 표시됩니다.
  6. 약 30초 후에 '개발자 모드를 위해 시스템 준비 중'이 표시됩니다.
  7. 결국 (디스크 크기에 따라 10분에서 1시간 이상 소요될 수 있음) 기기가 일반적인 시작 화면으로 재부팅됩니다.
  8. 명령 프롬프트를 가져오려면 ctrl+alt+(오른쪽 화살표 키)를 누릅니다.
    • 참고: 일부 Chromebook에서는 Ctrl+Alt+새로고침 키입니다.
    • 브라우저 뷰로 돌아가려면 Ctrl+Alt+ (왼쪽 화살표 키)를 누릅니다.
  9. 자세한 내용은 [개발자 모드]를 참고하세요.

Q: Chromebook을 일반 모드로 전환하는 방법 (즉, 개발자 모드 사용 중지)은 무엇인가요?

기기를 재부팅하고 펌웨어 화면에서 스페이스바를 누릅니다.

자세한 내용은 [개발자 모드]를 참고하세요.

Q: ChromeOS는 fwupd를 통한 다운그레이드를 지원하나요?

아니요. fwupd 또는 펌웨어의 프로덕션 버전이 중단되면 https://fwupd.org/lvfs/dashboard를 통해 서명된 보고서를 삭제해야 합니다. 플러그인 변경사항을 제출하거나 새 펌웨어가 제공될 때마다 테스트하는 것이 중요합니다. 펌웨어의 기본 버전이 항상 LVFS의 안정적인 원격에서 제공되도록 합니다.

Q: 어떤 버전의 ChromeOS에서 어떤 fwupd 업데이트를 지원하는지 어떻게 알 수 있나요?

버그에 댓글을 남겨 변경사항이 통합된 빌드 버전을 물어보면 Google 엔지니어가 해당 정보를 제공해 드릴 수 있습니다. CL Finder를 사용하여 ChromeOS 파트너 콘솔 (CPCon)에서 빌드 버전을 검색할 수도 있습니다 (Google corp 파트너 도메인 계정이 필요함. CPCon 액세스 권한은 TAM에 문의). ChromeOS 파트너 프런트엔드 (CPFE)에서 빌드 버전을 상호 참조하여 어떤 마일스톤에 해당하는지 확인할 수 있습니다.

Q: LVFS 계정을 만들려면 어떻게 해야 하나요?

계정 가져오기 LVFS 문서를 참고하세요.

Q: LVFS에 cab 파일을 업로드하려면 어떻게 해야 하나요?

펌웨어 업로드 LVFS 문서를 참고하세요.

Q: 펌웨어가 특정 주변기기용인지 어떻게 확인할 수 있나요?

이는 가장 잘 알려진 구성 파일을 통해 가능합니다. 자세한 내용은 fwupd Best Known Configuration을 참고하세요.

Q: LVFS에 업로드하기 전에 fwupd 업데이트를 테스트하려면 어떻게 해야 하나요?

플러그인 변경사항이 제출되고 fwupd의 선택적 버전이 ChromeOS 테스트 이미지에 통합되면 ChromeOS 파트너 프런트엔드 (CPFE)를 통해 테스트 이미지에 액세스할 수 있습니다(Google 회사 파트너 도메인 계정 필요, CPFE 액세스 권한은 TAM에 문의).

LVFS 문서 ChromeOS의 펌웨어 테스트를 참고하세요. 또는 Moblab으로 fwupd 테스트를 실행할 수도 있습니다.

Q: 사용자에게 주변기기 펌웨어 업데이트가 제공된다는 알림은 어떻게 전송되나요?

사용자는 업데이트가 LVFS에서 할당된 긴급성에 따라 업데이트가 제공된다는 알림을 받습니다. 동작은 다음과 같습니다.

긴급 알림 동작
낮음 사용자에게 알림이 전송되지 않으며 업데이트를 수동으로 확인해야 합니다.
보통
높음
심각 업데이트가 완료될 때까지 부팅할 때마다 알림이 표시됩니다.

Q: fwupd 업데이트는 자동으로 진행되나요?

아니요. 모든 fwupd 업데이트는 사용자가 시작하며 부팅 중에 또는 자동으로 발생하지 않습니다.

Q: DS20 사양의 장점은 무엇인가요?

현재 USB 주변기기만 확인되었으며 다른 하드웨어에서 사용한 것과 동일한 프로토콜을 사용하는 경우 DS20 설명자와 함께 작동합니다.

공급업체는 특이사항 파일 데이터를 fwupd 프로젝트가 아닌 USB 설명자에 넣을 수 있습니다. 이렇게 하면 USB 기기가 삽입되고 fwupd가 설명자 데이터를 읽고 플러그인을 일치시키고 공급업체가 fwupd에 패치를 제출하고 fwupd uprev를 기다리지 않고도 기기를 열거합니다.

Q: DS20은 특이사항 파일 변경사항의 대체 옵션인가요?

예. 대부분의 경우 실제 코드 변경보다는 기존 플러그인에 VID와 PID를 추가하기만 하면 됩니다. 코드 변경이 필요한 경우 공급업체는 플러그인 변경사항을 fwupd에 제출해야 합니다.

부록

  1. 개발자 가이드
  2. 개발자 지원
  3. CrOS 참여자를 위한 Git 및 Gerrit 소개
  4. 소스 코드 변경하기
  5. Gerrit 검토/승인 절차
  6. fwupd 통합 핸드북

업데이트 기록

날짜 버전 참고
2025-07-23 2.4.3 사용 사례 1 워크플로 업데이트
2024-10-18 2.4.2 클라이언트 인증서를 업로드하도록 fwupd 워크플로 이미지 및 단계 업데이트
2024-07-23 2.4.1 형식 업데이트
2024-06-26 2.4 fwupd uprev 워크플로 업데이트 (사용 사례 1)(2.4.1과 함께 게시됨)
2024-06-17 2.3 서명된 보고서 워크플로 업데이트 (2.4.1과 함께 게시됨)
2024-02-01 2.2 새 플랫폼에 다시 게시, 사소한 문구 업데이트
2023-10-12 2.1 케이스 1과 케이스 2에 이미지 추가, 파트너 사이트에 호스팅된 fwupd 통합 핸드북
2022-08-14 2.0 초기 파트너 사이트 게시