이 프로젝트는 Linux에서 펌웨어를 자동으로 안전하고 안정적으로 업데이트하는 것을 목표로 합니다.
추가 정보는 웹사이트에서 확인할 수 있습니다.
이 저장소의 GitHub 문제 및 토론
Libera IRC 채널 #fwupd
. Libera의 IRC 또는 Matrix의 IRC 브리지를 통해 참여할 수 있습니다.
fwupd 개발 환경을 구축하는 방법은 구축 및 디버깅을 참조하세요.
참고: 대부분의 경우 최종 사용자는 fwupd를 처음부터 컴파일해서는 안 됩니다. 수십 개의 종속성(및 많은 구성 옵션)이 있는 복잡한 프로젝트이며 잘못될 수 있는 것이 너무 많습니다.
사용자는 배포판에서 fwupd를 설치하고 업데이트하고 패키지 관리자가 관리하고 테스트해야 합니다. 또한 배포판은 fwupd가 GNOME 소프트웨어 등을 사용하여 시스템의 다른 소프트웨어와 상호 작용하는 방식에 대한 몇 가지 테스트도 수행했습니다.
Snap을 사용하거나 Flatpak을 사용하여 fwupd를 설치하는 것은 최첨단 fwupd 버전이 필요한 명령줄에서 특정 장치를 업데이트하는 데 유용할 수 있지만 distro에서 제공하는 시스템 버전을 대체하는 것으로 간주해서는 안 됩니다.
Tartan은 GLib 코드를 분석하기 위해 구축된 LLVM 정적 분석 플러그인입니다. 다음을 사용하여 설치하고 실행할 수 있습니다.
mkdir build-tartan CC=clang-17 meson ../ SCANBUILD=../contrib/tartan.sh ninja scan-build
이 프로젝트는 기본적으로 LVFS(Linux Vendor Firmware Service)에서 펌웨어를 다운로드하도록 구성됩니다.
이 서비스는 Linux 사용자에게 펌웨어를 제공하려는 모든 OEM 및 펌웨어 제작자가 사용할 수 있습니다.
fwupd 웹 사이트의 하드웨어 공급업체 섹션에서 펌웨어 캡슐 생성에 대한 기술 세부 사항에 대한 자세한 내용을 확인할 수 있습니다.
fwupd에서 지원하는 펌웨어가 있는 장치가 있는 경우 fwupd의 명령줄 도구를 사용하여 업데이트를 확인하고 적용할 수 있는 방법입니다.
# fwupdmgr get-devices
그러면 fwupd가 감지한 모든 장치가 표시됩니다.
# fwupdmgr refresh
그러면 LVFS에서 최신 메타데이터가 다운로드됩니다.
# fwupdmgr get-updates
시스템의 모든 장치에 대한 업데이트가 있으면 표시됩니다.
# fwupdmgr update
그러면 시스템에 대한 모든 업데이트가 다운로드되어 적용됩니다.
실시간으로 적용할 수 있는 업데이트는 즉시 진행됩니다.
부팅 시 실행되는 업데이트는 다음 재부팅을 위해 준비됩니다.
fwupd 웹사이트의 최종 사용자 섹션에서 업데이트 워크플로에 대한 자세한 내용을 확인할 수 있습니다.
Passim 프로젝트도 설치되어 활성화된 경우 fwupd는 기본적으로 0.0.0.0:27500
에 제공되도록 다운로드한 메타데이터 파일을 다시 게시합니다.
동일한 네트워크에 있는 다른 클라이언트는 mDNS/LLMNR을 통해 이를 활용하여 구성된 원격 장치에 대한 네트워크 대역폭을 줄일 수 있습니다.
이 기능을 비활성화하려면 /etc/fwupd/daemon.conf
에서 P2pPolicy=none
설정하거나 passim 패키지를 제거하거나 터미널에서 systemctl mask passim.service
사용하십시오.
fwupd는 사용자가 성공한 업데이트와 실패한 업데이트를 모두 LVFS에 보고하도록 권장합니다. 이는 선택 사항 기능이지만 펌웨어 업데이트 프로세스 효율성과 관련하여 LVFS 관리자 및 OEM 개발자에게 귀중한 피드백을 제공하므로 권장됩니다.
이 데이터에 관한 개인 정보 보호 정책은 lvfs readthedocs 사이트에서 확인할 수 있습니다.
업데이트 상태를 보고하려면 다음을 실행하세요.
# fwupdmgr report-history
LVFS에서 배포된 업데이트만 LVFS에 보고됩니다.
업데이트 흐름은 "승인된 업데이트" 기능을 사용하여 기업에서 제어할 수 있습니다. 이를 통해 도메인 관리자는 중앙 서버(예: LVFS 또는 미러)에서 가능한 업데이트를 조직에서 특별히 테스트된 펌웨어로만 필터링할 수 있습니다.
승인된 업데이트 목록은 원격 구성 파일(예: lvfs.conf
에 ApprovalRequired=true
추가하여 활성화할 수 있습니다. 활성화되면 승인된 업데이트 목록을 쉼표로 구분된 목록을 사용하여 fwupd.conf
에서 설정할 수 있습니다.
예를 들어:
ApprovedFirmware=foo,bar
여기서 foo,bar
메타데이터 파일의 두 업데이트에 해당하는 컨테이너 체크섬을 나타냅니다.
또한 승인된 펌웨어 목록은 fwupdmgr set-approved-firmware baz
또는 D-Bus 인터페이스를 사용하여 보완할 수 있습니다.
fwupdmgr은 명령줄 클라이언트이지만 다양한 추가 그래픽 프런트엔드가 fwupdmgr 매뉴얼 페이지에 나열되어 있습니다.
Coverity - Java, C/C++, C#, JavaScript, Ruby 및 Python 코드용 정적 분석기입니다.
PVS-Studio - C, C++, C# 및 Java 코드용 정적 분석기입니다.