내 시스템에 어떤 드라이버가 없는지 어떻게 알 수 있나요?

내 시스템에 어떤 드라이버가 없는지 어떻게 알 수 있나요?

랩톱에 Linux를 설치하면 일반적으로 모든 드라이버가 즉시 설치되지만 최근 일부 작업을 수행할 때 pacman -Syu표시되는 메시지는 다음과 같습니다.

...
  -> Running build hook: [block]
==> WARNING: Possibly missing firmware for module: aic94xx
==> WARNING: Possibly missing firmware for module: wd719x
  -> Running build hook: [keyboard]
...

이로 인해 사용자로서 시스템의 어느 부분에 드라이버가 누락되었는지 어떻게 알 수 있을까요? 등을 사용하여 사용 중인 드라이버를 나열할 수 있다는 것을 알고 있지만 lspci -v위의 두 가지와 같이 펌웨어/드라이버가 설치되지 않은 구성 요소에 대해 구체적으로 묻고 있으므로 해당 정보를 사용하여 문제를 해결하는 방법을 검색할 수 있습니다. 문제.

답변1

모듈에 펌웨어가 없을 수 있다는 경고입니다. 이는 시스템에 모듈이 있지만 일부 바이너리 blob 또는 기타 배포 문제의 경우와 마찬가지로 일부 펌웨어가 설치되지 않았음을 의미합니다.

여기에서 aic94xx용 드라이버 펌웨어를 확인하세요.https://aur.archlinux.org/packages/aic94xx-firmware/오픈소스 라이선스는 없습니다. 따라서 경고는 설치한 모듈의 펌웨어가 존재하지 않으므로 해당 펌웨어와 호환되는 하드웨어를 감지할 수 있는 올바른 방법이 없음을 알려줍니다. 이러한 경고가 표시되면 모듈이 설치되었지만 현재 시스템에 해당 모듈을 사용할 수 있는 기능이 있을 수도 있고 없을 수도 있다는 의미입니다.

드라이버는 실제로 모듈의 일부이므로 각 장치 시나리오에 사용되는 드라이버 유형을 확인해야 합니다. 실제로 모듈은 서로 의존할 수도 있으며 커널 자체에는 일부 "드라이버"가 있습니다.

기술적으로 버스 장치는 커널에 새 장치를 알리고 해당 장치는 장치를 지원하는 모듈을 로드합니다. 그런 다음 장치 드라이버는 버스와 장치의 메이저 및 마이너 번호를 사용하여 DEVfs에 장치 노드를 생성하지만 이 시스템에는 상당한 제한이 있습니다. 실제로 모듈을 이벤트 및 규칙으로 자동 로드하려고 할 수도 있습니다. Udev는 버스/장치 이름에 모듈 별칭을 사용한 다음 필요에 따라 모듈을 로드하고 장치 파일을 생성합니다.

를 사용하면 udevadm info -a /dev/<device file>로드된 각 장치에 대한 정보가 제공됩니다. SUBSYSTEMS= 사용되는 Linux의 핵심 부분, DRIVERS= 사용되는 드라이버. 그런 다음 udev는 이 필드의 모든 이름을 "/lib/modules//modules.alias " uname -r의 별칭으로 사용합니다 .

보시다시피, 어떤 장치가 로드되지 않는지는 확실하지 않습니다. 예를 들어 수백 개의 장치(별칭)를 지원하는 모듈을 로드할 수 있지만 하나의 장치에 대해서만 로드할 수 있기 때문입니다.

관련 정보