[드라이버 개념 질문] nvidia-drivers를 설치하면, 사용중인 GPU모델에 대한 드라이버만 설치됩니까? 아니면 모든 nvidia GPU모델에 대한 드라이버가 설치됩니까?
글쓴이: k1d0bus3 / 작성시간: 수, 2016/05/25 - 10:14오후
특정GPU(Nvidia GF119)가 달린 젠투에서, nvidia-driver-361.28을 emerge 했습니다.
이때, 제가 가진 특정GPU(Nvidia GF119)를 감지하여, 해당 드라이버만 설치가 됩니까?
아니면
모든(대부분) Nvidia GPU에 대한 드라이버들이 일단 설치가 되고, 젠투를 부팅할 때마다 제가 가진 GPU모델을 감지하여 드라이버를 사용하는 것입니까?
젠투가 아닌 우분투나 윈도우 같은 경우는 어떤식인가요?
nvidia가 아닌 다른 디바이스 드라이버들은 어떤식인가요?( nouveau/intel/radeon, 사운드, NIC, wireless 등등)
Forums:
배포판과 관계 없이 리눅스 커널 드라이버는 자기가
배포판과 관계 없이 리눅스 커널 드라이버는 자기가 어떤 장치에 붙을 지를 선언할 수 있습니다. 가령 엔비디아 드라이버 같은 경우에는 다음과 같이 확인할 수 있습니다.
modinfo 명령으로 모듈 정보를 봤을 때 alias에 있는 장치와 일치하는 게 있다면 커널 모듈을 불러옵니다. 다른 장치 드라이버도 마찬가지고, 버스 종류에 따라서 이게 달라집니다. 예로 든 엔비디아 드라이버는 PCI 제조사 ID가 엔비디아고, 장치 클래스가 비디오 카드, 3D 가속 카드라면 저 드라이버를 불러오게 됩니다. PCI 장치 ID까지 같이 명시해 두는 드라이버도 있습니다.
일단 저렇게 어떤 장치를 사용하겠다고 리눅스 커널에 알려 주면 그 다음부터는 드라이버의 영역입니다. 예로 든 엔비디아처럼 모든 엔비디아 비디오 카드에 일치한다고 되어 있다면 드라이버 내에서 PCI 장치 ID를 불러 와서 각각 그래픽 카드 모델명에 맞는 부분을 사용하는 거죠. 다른 드라이버가 궁금하다면 modinfo (커널 모듈 이름) 명령으로 알아 볼 수 있습니다.
적어도 장치 ID를 읽어 와서 장치 ID별로 드라이버를 불러오는 시스템 그 자체는 구현 방식은 다를지라도 모든 OS에 다 들어 있습니다. 윈도우 드라이버의 inf 파일을 열어 보면 modinfo 명령으로 본 장치 alias와 비슷한 게 들어 있는 걸 알 수 있습니다. 애시당초 장치 ID는 그러라고 만들어져 있는 거거든요.
댓글 달기