실행 중인 커널에서 드라이버를 다시 활성화(다시 로드하는 대신)할 수 있습니까?

실행 중인 커널에서 드라이버를 다시 활성화(다시 로드하는 대신)할 수 있습니까?

자주 작동하지 않는 특정 장치로 인한 어려움정지시키다, SE U&L 문제가 있습니다드라이버 다시 로드.

제 경우에는 일부 장치가 감지되지 않았고 드라이버(displaylink-driver.service)가 로드되었지만 비활성/죽은 것을 볼 수 있었습니다. 그렇다면 드라이버를 다시 시작할 수 있습니까?

$ lsusb
# missing usb devices (detected by $ lsusb before the issue)
Bus 004 Device 005: ID 17ef:a357 Lenovo USB3.1 Hub             
Bus 004 Device 004: ID 17ef:a359 Lenovo ThinkPad Lan
Bus 004 Device 003: ID 17e9:6015 DisplayLink ThinkPad Hybrid USB-C with USB-A Dock
Bus 004 Device 002: ID 17ef:a356 Lenovo USB3.1 Hub

$ sudo systemctl status displaylink-driver.service 
● displaylink-driver.service - DisplayLink Driver Service
     Loaded: loaded (/lib/systemd/system/displaylink-driver.service; static)
     Active: inactive (dead)

May 26 14:50:56 debija systemd[1]: Starting DisplayLink Driver Service...
May 26 14:50:56 debija systemd[1]: Started DisplayLink Driver Service.
May 26 18:03:21 debija systemd[1]: Stopping DisplayLink Driver Service...
May 26 18:03:22 debija systemd[1]: displaylink-driver.service: Succeeded.
May 26 18:03:22 debija systemd[1]: Stopped DisplayLink Driver Service.
May 26 18:03:22 debija systemd[1]: displaylink-driver.service: Consumed 41min 25.761s CPU time.

답변1

예, sudo rmmod driver-name && sudo modprobe driver-name. 그러면 드라이버(모듈 또는 모듈 컬렉션이라고도 함)가 제거되고 다시 로드됩니다.

일부 장치는 Bluetooth 또는 오디오와 같은 여러 드라이버에 의해 제공되며, 이 경우 rmmod drv1 drv2 drv3. 지정된 명령에 대한 각 드라이버가 "로드되지 않음"을 표시할 때까지 이 작업을 반복해야 합니다.

rmmod어떤 이유로 실패 하면 일반적으로 다시 시작해야만 복원할 수 있습니다. 물론 있지만 rmmod -f시스템 충돌을 일으키는 경우가 많습니다.

와 달리 한 번에 하나의 드라이버만 사용할 수 있습니다 rmmod. 명령은 일반적으로 종속성을 처리하고 필요한 모든 드라이버를 자동으로 로드하므로 modprobe대부분의 경우 이것으로 충분합니다.modprobe drv-name

lsmod로드하고 실행 중인 모듈을 확인 하는 데 사용됩니다 .

어떤 드라이버가 장치를 제공하는지 알아보려면 sudo lspci -vvv어떤 PCI/PCIe 장치가 어떤 드라이버를 사용하는지 표시를 사용하세요. USB 장치의 경우 lshw cf를 사용할 수 있습니다.USB 장치와 연결된 모듈을 찾으십니까?.

그것은displaylink-driver.service아니요운전자. 이것은 서비스입니다. 그리고 systemctl아니요장치 드라이버와 함께 사용하기 위한 것입니다. 서비스 관리자입니다. 일반적으로 rmmod smth처음 실행하면 현재 로드되지 않은 것으로 표시됩니다. 이는 지정된 드라이버가 사용된 적이 없음을 의미할 수 있습니다. 서비스와 드라이버는 일반적으로 그렇지 않기 때문에 어떻게 관련되어 있는지 잘 모르겠습니다. 드라이버를 로드하는 매우 특정한 서비스가 있습니다. 예를 들어 vboxdrvVirtualBox의 일부이지만 그게 전부입니다. 이름에 "drv"도 포함되어 있습니다. Linux의 서비스는 다양한 백그라운드 작업(콘솔 애플리케이션, 데몬, 서버 등)을 시작하도록 설계되었습니다. systemd-modules-load.service자동으로 로드되지 않는 추가 모듈을 로드하는 서비스가 있습니다 .

관련 정보