본문 바로가기
임베디드SW/Embedded SW 상식

NVMe device가 PCIe에서 인식이 안될 때

by 진뚱 2023. 3. 9.
728x90

nvme device를 linux등의 환경에서 인식시키려고 할 때 pcie 인식이 되지 않는 경우가 있다.

 

이런 경우 디바이스가 죽었거나, linux가 device가 죽었다고 인지해서 kernel에서 버려버리는 경우가 있다.

 

이때는 pcie 를 제거하고 다시 인식시켜주면 인식이 가능하다.

 

방법은 간단하다. echo 명령을 통해 pci 디렉토리 파일에 write해줌으로써 pcie 장치를 재검색할 수 있다.

 

1. 리눅스에서 터미널 열기

2. sudo su 를 수행하여 루트 권한 얻기

3. echo 1 > /sys/bus/pci/rescan  수행

(여기서 이걸 수행하면 pcie 장치 재검색을 하게 된다. 모든 pcie 버스를 스캔하고 새로 추가되거나 제거된 장치를 감지한다.

 

 

 

 

아니면 BDF(Bus, Device, Function) 주소를 사용해서 특정 pcie 장치를 다시 스캔할수도 있다.

만약 이렇게 하려면

1. lspci 를 통해 장치의 BDF주소를 식별 (예를 들어 pdf 주소가 0000:01:00.0 이면 처음 4자리 (0000)은 pcie 도메인을 나타내고 01은 버스 번호를 나타내고 00은 장치번호를 나타내고 0은 기능 번호를 나타낸다.

2. echo 1 > /sys/bus/pci/devices/0000:01:00.0/rescan 을 수행하면 리스캔이 된다. (0000:01:00.0을 원하는 device의 주소로 변경하면된다.)

3. 완료되면 lspci를 통해 현재 값을 확인할 수 있다.

728x90

댓글