기본 콘텐츠로 건너뛰기

ldd3 Source

소스 위치
https://github.com/martinezjavier/ldd3

리눅스 바로 다운
#wget https://github.com/martinezjavier/ldd3/archive/master.zip
#master.zip

zip이 없는 경우
#apt-get install unzip
#unzip master.zip 
특정위치에 풀기
#unzip master.zip -d ./ldd3

#make

.. 오류

추가
vi /etc/networks
snullnet0       192.168.0.0
snullnet1       192.168.1.0

#vi /etc/hosts:
192.168.0.1   local0
192.168.0.2   remote0
192.168.1.2   local1
192.168.1.1   remote1

You may need to add the netmask 255.255.255.0 parameter if the address range chosen is not a class C range.

#ifconfig sn0 local0 #ifconfig sn1 local1

#morgana% ping -c 2 remote0


커널 버전이 3.10 보다 크면  오류가 있는것 같습니다.


네트워크 드바이스 드라이버 등록

alloc_netdev



network device 를 등록할때 커널의 alloc_netdev 함수를 호출하게 됩니다.
이때 장비의 이름을 eth%d 와 같은 형식으로 넘겨주게 됩니다.
eth%d가 eth0, eth1등으로 reslove 되는 것은 언제일까요?
드라이버가 로딩되면 드라이버의 등록 함수(attach)에서 dev_alloc_name 함수를 이용해서 이름을 완성하게 됩니다.
따라서 디바이스 드라이버가 등록 되기전에 dev->name 을 사용하면
eth0, eth1이 아니라 eth%d 로 proc 등의 디렉토리를 만들게 되어 에러의 원인이 됩니다.





아래 오류는 해결

snull/snull.c:726:18: error: ‘alloc_netdev’ undeclared (first use in this function)
  snull_devs[0] = alloc_netdev(sizeof(struct snull_priv), "sn%d", NET_NAME_UNKNOWN,

아래로 수정하면 됩니다.
NET_NAME_UNKNOWN 제거
dev = alloc_netdev(sizeof *netIf, deviceName, VNetNetIfSetup);
to 
dev = alloc_netdev(sizeof *netIf, deviceName, NET_NAME_UNKNOWN, VNetNetIfSetup);

댓글

이 블로그의 인기 게시물

톰캣 세션 타임 아웃 설정

web.xml 파일이 있습니다. 이 파일을 열어서 session이라고 검색해 보십시오. <session-config>   <session-timeout>360</session-timeout> </session-config> 위 단락을 찾을 수 있습니다. session-timeout 시간 360이 바로 자동로그아웃 세션 시간입니다.  단위는 분이고요. 30분으로 하고 싶으시면 30으로 바꿔서 저장해주시면 되는 것이죠~ Tomcat 내에서 Session Timeout 를 설정하는 우선 순위가 존재 한다. session.setMaxInactiveInterval() 프로그램내에서 time out 를 설정했을 경우 Web application 내의 WEB-INF/web.xml Tomcat 내의 conf/web.xml 실제로 Tomcat(conf/web.xml)내에 Default 로 설정되어 있는 것은 다음과 같다. < HttpSession 메서드 > getCreationTime() - 세션 생성 시간 getLastAccessedTime() - 마지막 요청 시간 setMaxInactiveInterval() - 최대허용시간 설정 (초) getMaxInactiveInterval() - 최대허용시간 invalidate() - 세션 제거 < 타임아웃 설정하기 > - 일정 시간 동안 요청이 없으면 세션을 제거한다  1. DD에서 전체 세션 타임아웃 설정       web.xml 1. DD에서 전체 세션 타임아웃 설정       web.xml <web-app ... >     <servlet>          ...     </servlet>     <session-config>         <session-timeout>30</session-timeout>

dmesg 메시지 실시간으로 보기

참조사이트 http://imitator.kr/Linux/556 # tail -f /var/log/messages # tail -f |dmesg //기본 2초 단위로 갱신 된다. # watch "dmesg | tail -f" //1초 단위로 갱신하면서 보여준다. # watch -n 1 "dmesg | tail -f" // 보여주는 줄을 20으로 늘린다. (기본 10줄) # watch -n 1 "dmesg | tail -f -n 20"

kernel Hello World

리눅스 커널 모듈 프로그래밍 가이드 참조:http://www.tldp.org/LDP/lkmpg/2.6/html/lkmpg.html 커널 모듈 가이드 아래 테스트는 우분투 14.04에서 테스트 되었습니다. 모듈 유틸리티 insmod:모듈을 커널에 적재한다. rmmod:커널에서 모듈을 제거한다. lsmod:커널에서 적재된 모듈 목록을 보여준다. depmod: 모듈간 의존성 정보를 생성한다. modprobe:모듈을 커널에 적재하거나 제거한다. modinfo rdma_ucm 모듈 정보 보기: #lsmod #cat /etc/modprobe.conf #modinfo ib_core 커널에서 제공하는 심볼 테이블 :커널 내부의 함수나 변수 중 외부에서 참조할 수 있는 함수의 심볼과 주소를 담은 테이블 #cat /proc/kallsyms 커널 모듈 제작해 보기 kernel ver 3.16 hello.c /*  *  hello.c - The simplest kernel module.  */ # #include <linux/module.h> #include <linux/kernel.h> int init_module(void) { printk("<1>Hello World 1.\n"); return 0; } void cleanup_module(void) { printk(KERN_ALERT "Goodbye world 1.\n"); } Makefile obj-m += hello.o all:         make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules clean:         make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean #make make -C /lib/modules/3