[완료]커널메세지에 저만의 디버그문을 출력시키고 싶습니다.(upstart)
글쓴이: k1d0bus3 / 작성시간: 일, 2012/06/24 - 11:02오전
upstart를 사용하는 ubuntu입니다.
예를들어 /etc/init/iptable.conf 파일에
console output
exec echo "--------my debug msg-----------"
이런 구문을 추가해보았지만, 콘솔화면에서만 디버그메세지가 보일뿐,
dmsg에는 보이지 않더군요....
어떡게 해야 할까요?
Forums:
printk 함수를 사용하시면 됩니다.
printk 함수를 사용하시면 됩니다.
하지만 printk 함수는 user level 에서 사용할수있지않고 커널레벨에서 사용할수있습니다.
그러려면 커널레벨에서 작동하는 프로그램을 작성하셔야하는데요 , device driver 앞부분 1,2 챕터 보시면 코드 30줄 이내로 작성하실수있습니다.
device driver 을 짜서 컴파일하신다음 .ko 파일이 생성되면 그것을 insmod 으로 커널에 넣으시면됩니다.
이때 요점은 userlevel 에서 어떻게 원하는 시점에 device driver 의 printk 문을 호출할것인가 하는것인데요.
이것은 device driver 작성하실떄 블록디바이스 파일을 임의로 하나만드시고 , 그파일의 오퍼레이션을 변경하시면됩니다. 그중에서 write 를 변경하시면 적당할것으로 생각됩니다.
후에 유저레벨에서 그파일에 내용을 쓰게되면 device driver 의 write 함수가 호출되게됩니다.
예를들어 echo "test msg" > /tmp/mydevice 하시게되면 dmesg 하셨을때 test msg 가 나올것입니다.
자세한 내용은 커널 디바이스 드라이버 프로그래밍 1,2,3 챕터 정도 참조하세요
그렇게 하는거엿군요
감사합니다.
echo "test msg" > /dev/kmsg
댓글 달기