루트는 /sys/bus/pci/devices/0000:03:00.1 아래에 새 파일을 생성할 수 없습니다.

루트는 /sys/bus/pci/devices/0000:03:00.1 아래에 새 파일을 생성할 수 없습니다.

기본적으로 amd GPU 패스스루에 대한 공급업체 재설정 버그를 수정하려고 하므로 qemu용 후크 파일을 만들고 GPU 및 HDMI 장치를 수동으로 재설정합니다.

    echo 'device_specific' > /sys/bus/pci/devices/0000:03:00.0/reset_method
    echo 'device_specific' > /sys/bus/pci/devices/0000:03:00.1/reset_method

이상한 점은 두 번째 에코가 작동하지 않는다는 것입니다. 그런 다음 sudo/root에 /sys/bus/pci/devices/0000:03:00.1/ 아래에 새 파일을 생성할 수 있는 권한이 없다는 것을 발견했습니다.

ls -al은 다음을 표시합니다.

lrwxrwxrwx root root 0 B Sun Feb  5 22:31:46 2023  0000:03:00.0 ⇒ ../../../devices/pci0000:00/0000:00:01.0/0000:01:00.0/0000:02:00.0/0000:03:00.0
lrwxrwxrwx root root 0 B Sun Feb  5 22:31:46 2023  0000:03:00.1 ⇒ ../../../devices/pci0000:00/0000:00:01.0/0000:01:00.0/0000:02:00.0/0000:03:00.1

루트에 폴더에 대한 rwx 권한이 있는 것으로 표시되는데 왜 폴더에 파일을 만들 수 있나요?

답변1

  • 기호 링크( l목록의 첫 번째 열에 표시됨)에는 실제 권한이 없으므로 해당 권한은 의미가 없습니다. 실제 파일을 보거나 -L옵션을 사용하여 ls실제 권한을 얻으십시오.
  • /sys 파일 시스템은 스토리지를 지원하지 않는 가상 파일 시스템입니다. 이는 커널과 커널의 장치 드라이버에 의해 동적으로 생성됩니다. 파일이 없으면 해당 파일을 지원하는 하드웨어가 존재하지 않거나 드라이버가 파일이 나타내는 기능을 지원하지 않을 수 있습니다. 문제를 해결하려면 커널을 업그레이드하거나 드라이버를 로드하거나 하드웨어를 추가해야 합니다.
  • /sys는 가상이기 때문에 파일의 실제 권한을 살펴보더라도 가상 파일 시스템이 이를 존중할 필요가 없기 때문에 여전히 큰 의미가 없습니다.
  • 잘못된 형식으로 데이터를 쓰려고 하거나 잘못된 값을 쓰려고 하면 /sys 및 /proc의 많은 파일이 쓰기를 무시합니다. 이 데이터는 자체적으로 저장되지 않고 드라이버나 커널로 전송되어 내부 설정이 변경될 수 있으며 실제 결과 설정이 동일하거나 다른 형식으로 다시 게시될 수 있다는 점을 명심하세요.

내 시스템에서 임의의 장치를 확인하면 /sys/bus/pci/devices/*/일부 장치에는 Reset_method가 있고 일부 장치에는 없습니다.

/usr/share/doc/linux-doc/ABI/testing/sysfs-bus-pci.gz를 보고 Reset_method를 검색하여 특정 장치만 이 기능을 지원한다는 항목을 찾으세요. 파일을 읽으면 메서드 목록이 제공됩니다. . 파일에 기록된 올바른 데이터에는 이 목록의 내용, 빈 문자열 및 "기본값"이 포함됩니다.

관련 정보