Linux에서 하드웨어 감지는 어떻게 작동합니까?

Linux에서 하드웨어 감지는 어떻게 작동합니까?

Linux에서 "wifi가 작동하지 않음", "비디오가 작동하지 않음" 등의 문제를 해결해야 할 때마다 저는 이를 올바르게 수행하는 방법을 정말로 이해하지 못합니다. 내 접근 방식은 지저분합니다. 시도하고 lspci, 살펴보고 dmesg, 일부 로그를 살펴보고, Google을 검색하면 해결책을 찾을 수 있기를 바랍니다. 내가 정말로 원하는 것은 무슨 일이 일어나고 있는지 이해하고 전체 경로를 추적하여 정확히 무엇인가 잘못되고 있는 시기를 알아내는 것입니다.

Wi-Fi가 끊어졌다고 가정해 보겠습니다.

나는 lspci내 컴퓨터에 어떤 종류의 네트워크 카드가 있는지 알아보기 위해 달려갑니다. 일반적으로 lspci의 출력 에서 ​​Wi-Fi와 관련된 내용을 볼 수 있습니다 . 이 "무언가"에는 내 카드의 이름과 모델이 포함됩니다. 하지만 어떻게 작동하나요? 이 명령은 이전에 다른 것에 의해 성공적으로 검색된 장치만 나열합니까(udev가 있을 수 있습니까?) 장치의 이름/설명은 어디에 있습니까? 하드웨어 내부 어딘가에 저장되어 있습니까? lspci이전 단계에서 문제가 발생한 경우 내 하드웨어를 보고하지 않을 수 있습니까 ?

이제 내 하드웨어에 적합한 커널 모듈이 있는지 이해해야 합니다. 내가 하는 일은 커널 소스로 가서 make menuconfig하드웨어 이름을 실행하고 검색하는 것입니다. 커널이 지구상의 모든 네트워크 카드 모델을 알아야 한다는 뜻인가요? 그러한 모델이 너무 많기 때문에 이상해 보입니다. 모든 네트워크 카드는 유사한 인터페이스를 가져야 한다고 생각합니다. 서로 다른 유형의 카드에 대해 서로 다른 모듈을 가질 필요가 있도록 만드는 차이점은 무엇입니까?

내 카드에 적합한 커널 모델을 찾는 더 좋은 방법이 있습니까? 찾은 모듈을 컴파일하고 설치한 후에도 카드가 여전히 작동하지 않으면 어떻게 해야 합니까? 모듈이 올바른지 어떻게 확인할 수 있나요? (이는 문제가 이후 단계에서 발생한다는 의미입니다)

이제 나는 ifconfig또는 iwconfig. 다음 명령은 다음과 같이 표시됩니다.네트워크 인터페이스. 결과에 wifi 인터페이스가 보이면 커널이 하드웨어를 성공적으로 감지하고상호 작용이제 다른 프로그램에서 사용할 수 있도록 하시겠습니까? 이제 문제가 더 높은 수준(예: 잘못된 비밀번호 또는 이와 유사한 smthn)이라는 의미입니까?

디렉토리 의 내용이 /dev/무엇이 잘못되고 있는지 이해하는 데 도움이 됩니까(또는 확실히 올바르게 진행되고 있는지 확인하는 데)?

이 질문이 지저분해 보인다면 죄송합니다. 제 머릿속의 혼란을 반영하는 것입니다. 이 혼란을 없애도록 도와주세요.

관련 정보