페도라 6 입니다. 설치된 하드 디스크의 타입(IDE/SCSI 등등)과 설치된 디스크의 모델정도등을 알아올수 있는 방법이 어떻게 되나요? 리눅스 명령어가 아니라 프로그램 소스차원에서 도움이 될만한 자료가 있을까 해서요....
또한 데비안과 페도라가 다른 코드로 작성이 되어야 하나요? 그건 절대 아닌거 같은데요..
다음 몇가지 방법이 있습니다.
1. ioctl명령어로 얻어오기.
네크로멘서님께서 말씀하셨다시피 hdparm소스를 참조하시면 될 것 같습니다.
2. sysfs와 procfs에서 얻어오기
ide장치의 정보는 /proc/ide/hd?/ 디렉토리에 있는 파일을 읽으면 어느정도 얻을 수 있습니다.
scsi장치의 정보는 /sys/block/sd?/device/ 디렉토리에 있는 파일을 읽으면 됩니다.
3. hal데몬에게서 얻어오기
최근 리눅스 배포판에는 대부분 hal데몬이 설치되어 있을 것입니다. hal데몬에게 쿼리하는 프로그램을 만들어서 얻으면 될겁니다.
dbus api만 조금 익혀두면 금방 만들 수 있을 것입니다.
제가 잘은 모르지만,
제가 잘은 모르지만, block device 가 controller 에 의해서 abstracted 되어서 알아낼수 있는지 잘 모르겠네요?
dmesg 로 ata 나 ide 타입정도는 볼수 있을지 모르겠지만, 그 밑으로 내려갈수 있을까요?
삽질의 대마왕...
삽질의 대마왕...
hdparm 소스를
hdparm 소스를 보십시오.
장치정보를 긁는 데는 ioctl() 시스템콜을 많이 쓰는데,
이건 긁어오는 장치 정보마다 인수도 다르고 문서화도 잘 안되어 있습니다.
주고받는 인수가 장치마다 다 제각각이라는거죠.
Written By the Black Knight of Destruction
Written By the Black Knight of Destruction
다음 몇가지 방법이
다음 몇가지 방법이 있습니다.
1. ioctl명령어로 얻어오기.
네크로멘서님께서 말씀하셨다시피 hdparm소스를 참조하시면 될 것 같습니다.
2. sysfs와 procfs에서 얻어오기
ide장치의 정보는 /proc/ide/hd?/ 디렉토리에 있는 파일을 읽으면 어느정도 얻을 수 있습니다.
scsi장치의 정보는 /sys/block/sd?/device/ 디렉토리에 있는 파일을 읽으면 됩니다.
3. hal데몬에게서 얻어오기
최근 리눅스 배포판에는 대부분 hal데몬이 설치되어 있을 것입니다. hal데몬에게 쿼리하는 프로그램을 만들어서 얻으면 될겁니다.
dbus api만 조금 익혀두면 금방 만들 수 있을 것입니다.
----
데스크탑 프로그래머를 꿈꾸는 임베디드 삽질러
대단히 감사 합니다.
대단히 감사 합니다.
참고 후 잘 안되면 다시 도움을 요청 하겠습니다.
댓글 달기