microblaze 아키텍처를위한 cpufreq 드라이버 (로드 가능한 커널 모듈로)를 개발 중입니다. 나는 시스템 클럭을 스케일 할 수있는 FPGA 로직을 가지고 있으며, 이것은 꽤 잘 작동한다. 나는 Documentation/cpu-freq/cpu-drivers.txt
에있는 정보를 따라 blackfin cpufreq 드라이버에서 모델을 살펴 보았습니다./sys/devices/system/cpu/cpuX를 만드는 리눅스 커널 코드는 무엇입니까?
커널 (모듈 아님)에 cpufreq 옵션을 내장하기 위해 필요한 변경 사항을 arch/microblaze/Kconfig
으로 변경했습니다.
드라이버를 처음로드했을 때 cpufreq_register_driver()
이 -ENODEV를 반환 했으므로 CPU를 찾을 수 없다는 의미입니다. 드라이버 플래그를 CPUFREQ_STICKY로 설정하고 모듈을 삽입 할 수있었습니다.
그러나이 시점에서 나는 /sys/devices/system/cpu/cpu0
이 존재하지 않는다는 것을 알았지 만 (/sys/devices/system/cpu/cpufreq
이 있지만). 그래서, 왜 그런가요? 커널 코드에서 그 디렉토리를 생성하는 부분은 무엇입니까?