[드라이버 개념 질문] nvidia-drivers를 설치하면, 사용중인 GPU모델에 대한 드라이버만 설치됩니까? 아니면 모든 nvidia GPU모델에 대한 드라이버가 설치됩니까?

k1d0bus3의 이미지

특정GPU(Nvidia GF119)가 달린 젠투에서, nvidia-driver-361.28을 emerge 했습니다.

이때, 제가 가진 특정GPU(Nvidia GF119)를 감지하여, 해당 드라이버만 설치가 됩니까?
아니면
모든(대부분) Nvidia GPU에 대한 드라이버들이 일단 설치가 되고, 젠투를 부팅할 때마다 제가 가진 GPU모델을 감지하여 드라이버를 사용하는 것입니까?

젠투가 아닌 우분투나 윈도우 같은 경우는 어떤식인가요?
nvidia가 아닌 다른 디바이스 드라이버들은 어떤식인가요?( nouveau/intel/radeon, 사운드, NIC, wireless 등등)

익명 사용자의 이미지

배포판과 관계 없이 리눅스 커널 드라이버는 자기가 어떤 장치에 붙을 지를 선언할 수 있습니다. 가령 엔비디아 드라이버 같은 경우에는 다음과 같이 확인할 수 있습니다.

$ modinfo nvidia-364
filename:       /lib/modules/4.6.0-040600-generic/updates/dkms/nvidia_364.ko
alias:          char-major-195-*
version:        364.19
supported:      external
license:        NVIDIA
srcversion:     58F05ADDFD67EA273694722
alias:          pci:v000010DEd00000E00sv*sd*bc04sc80i00*
alias:          pci:v000010DEd*sv*sd*bc03sc02i00*
alias:          pci:v000010DEd*sv*sd*bc03sc00i00*
depends:        
vermagic:       4.6.0-040600-generic SMP mod_unload modversions

modinfo 명령으로 모듈 정보를 봤을 때 alias에 있는 장치와 일치하는 게 있다면 커널 모듈을 불러옵니다. 다른 장치 드라이버도 마찬가지고, 버스 종류에 따라서 이게 달라집니다. 예로 든 엔비디아 드라이버는 PCI 제조사 ID가 엔비디아고, 장치 클래스가 비디오 카드, 3D 가속 카드라면 저 드라이버를 불러오게 됩니다. PCI 장치 ID까지 같이 명시해 두는 드라이버도 있습니다.

일단 저렇게 어떤 장치를 사용하겠다고 리눅스 커널에 알려 주면 그 다음부터는 드라이버의 영역입니다. 예로 든 엔비디아처럼 모든 엔비디아 비디오 카드에 일치한다고 되어 있다면 드라이버 내에서 PCI 장치 ID를 불러 와서 각각 그래픽 카드 모델명에 맞는 부분을 사용하는 거죠. 다른 드라이버가 궁금하다면 modinfo (커널 모듈 이름) 명령으로 알아 볼 수 있습니다.

적어도 장치 ID를 읽어 와서 장치 ID별로 드라이버를 불러오는 시스템 그 자체는 구현 방식은 다를지라도 모든 OS에 다 들어 있습니다. 윈도우 드라이버의 inf 파일을 열어 보면 modinfo 명령으로 본 장치 alias와 비슷한 게 들어 있는 걸 알 수 있습니다. 애시당초 장치 ID는 그러라고 만들어져 있는 거거든요.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.