printk()의 출력은 텔넷에서 볼수없나요?
글쓴이: cjy1126 / 작성시간: 월, 2004/01/12 - 10:06오전
리눅스를 이용해서 L2장비(스위치허브)를 만들려고 합니다.
MAC address를 구분해서 해당하는 랜카드에만 데이터 출력을 시켜야하기때문에, 각 랜카드의 이름을 얻어오는 모듈을 작성하였습니다.
문제는 printk()로 출력되는것들이 서버에서는 나오는데, 정작 그걸 실행한 제 텔넷창으로는 안보인다는겁니다.
모듈을 한번 올릴때마다 제대로 올라왔나, 서버에가서 확인해야하네요 ㅜ.ㅜ
텔넷에서 printk()의 출력을 볼수있는 방법이 없을까요?
#define __KERNEL__ #define MODULE #include <linux/kernel.h> #include <linux/module.h> #include <linux/netdevice.h> char *dname = "eth1"; struct net_device* get_device_from_name(const char* name) { struct net_device *tmp_dev; for(tmp_dev = dev_base;tmp_dev;tmp_dev = tmp_dev->next) { if(strcmp(name,tmp_dev->name) == 0) return tmp_dev; } return 0; } static int __init net_dev_test_init() { struct net_device *tmp_dev; tmp_dev = get_device_from_name(dname); if(tmp_dev) printk("dev name : %s\n",tmp_dev->name); else printk("dev name : NULL\n"); return 0; } static void __exit net_dev_test_cleanup() { printk("Bye!\n"); } module_init(net_dev_test_init); module_exit(net_dev_test_cleanup); MODULE_LICENSE("GPL");
결과가...
dev name: lo dev name: sit0 << 이게 무엇을 뜻하는거죠? dev name: eth0 dev name: eth1 dev name: eth2 dev name: eth3 dev name: eth4
다른건 다 알겠는데, sit0를 모르겠습니다.
즐거운 하루되세요 ^^
Forums:
printk는 콘솔로만 출력하는걸로 알고 있습니다.모듈에서 pro
printk는 콘솔로만 출력하는걸로 알고 있습니다.
모듈에서 proc_read 함수를 구현하는게 낫겠네요....
cat /proc/xxxx 하시면 동작할 함수요...
proc_read에서 현재 모듈 정보들을 출력할 수 있게 구현하시면
텔넷으로 접속하셔도 확인이 가능합니다.
무식한 방법으로는 콘솔화면을 캠으로 찍어서 작업하는 곳에서 보시는 것은
무식한 방법으로는 콘솔화면을 캠으로 찍어서 작업하는 곳에서 보시는 것은 어떨런지요. --; 흐흐~
커널 메시지는 ....
dmesg로도 확인이 가능하지 않나요?
이렇게 디폴트로 사용하시면, dmesg로 확인 가능하니 리모트에서는
이방법을 사용하시면 될 듯 하네요[/code]
행복하세요 ^_^
dmesg로도 확인이 가능하고..시스템로거가 남긴 로그를 봐도 됩니다
dmesg로도 확인이 가능하고..
시스템로거가 남긴 로그를 봐도 됩니다 :D
metalog의 경우엔
tail -f /var/log/kernel/current
로 확인하면 되는데 다른거에선 잘 모르겠군요 =3=33
오랫동안 꿈을 그리는 사람은 그 꿈을 닮아간다...
http://mytears.org ~(~_~)~
나 한줄기 바람처럼..
tail -f /proc/kmsg 라고 하시면 현재 Kernel Mess
tail -f /proc/kmsg 라고 하시면 현재 Kernel Message를 볼수 있을것 같네요..
물론 tail -f /var/log/messages 도 되겠죠...
그럼 수고하세요.
댓글 달기