USB를 연결하면 Linux Mint에서 제거된 드라이버가 계속 로드됩니다.

USB를 연결하면 Linux Mint에서 제거된 드라이버가 계속 로드됩니다.

PPA에서 USB 장치용 DKMS 드라이버를 설치했습니다. 코드를 변경하고 apt-get --purge 제거를 사용하여 드라이버를 제거하려고 하는데 장치를 연결하면 커널 모듈이 계속 로드됩니다...왜 그럴까요? 그들은 어디에 숨어 있나요?

미리 감사드립니다

답변1

귀하(또는 DKMS)가 커널 모듈을 빌드하고 설치할 때 로 이동하므로 /lib/modules/$(uname -r)/...그곳을 확인하십시오. 내 시스템의 한 예:

/lib/modules/3.2.0-36-generic-pae/updates/dkms/nvidia_current_updates.ko

답변2

DKMS를 사용하여 설치된 커널 모듈을 설치하고 사용하려면 다음과 같은 몇 가지(대부분 자동화된) 단계가 필요합니다.

  1. (귀하의 경우) PPA 소스를 추가하고 패키지 목록을 새로 고칩니다.
  2. apt-get소스와 자동 설치 지침을 표준 디렉터리( /usr/src/<module name>-<version>) 에 복사하여 시작하는 패키지 관리자( )를 사용하여 DKMS 패키지를 설치합니다.
  3. DKMS는 파일을 개인 디렉터리에 복사합니다.
  4. DKMS는 개인 디렉터리에서 커널 모듈의 소스 코드를 컴파일합니다.
  5. DKMS는 컴파일된 커널 모듈 파일을 모듈 디렉터리(일반적으로 /lib/modules/<kernel version>/updates) 에 복사합니다.
  6. modprobe <modname>DKMS는 .NET 대신 사용할 수 있도록 모듈 종속성을 업데이트합니다 insmod /lib/modules/<kernel version>/updates/<modname>.ko.
  7. 커널 모듈을 수동으로 로드하거나( modprobe <modname>) USB 장치를 연결할 때 시스템 구성 요소(udev)가 이를 수행합니다.

패키지를 제거하면 1~6단계가 실행 취소됩니다. 7단계는 자동으로 취소되지 않습니다. 일반적으로 모듈은 를 사용하여 수동으로 제거하지 않는 한 로드된 후에 로드된 상태로 유지됩니다 sudo rmmod <modname>. 모듈의 이름이 무엇인지 알아내는 데 사용합니다 lsmod. 일반적으로 이는 와 동일 <modname>하지만 적어도 Ubuntu의 nvidia 드라이버의 경우 이는 다르게 수행됩니다( 을 사용 modprobe nvidia-current하지만 를 사용합니다 rmmod nvidia).

관련 정보