Hello everyone.

I'm sorry for late.

Complie our source code, you need to setup eclipse with CDT and SVN plugin.

In this project, development os must be linux and kernel version is 2.6.x upper.

 

1

 

first of all, get “thread_server_cpu_epoll” project from svn

 

if you don’t know svn account, ask me.

 

change your perspective to “C/C++” , if you don’t, complie menu is not appear.

 

expand project and click “Makefile”, then you can see enabled “hammer” build button

6

 

click that button and build project.

 

Project build is fail by missing of library. error message may be “-lcrypto is not found” or “-lpcap" is not found”.

 

Let’s see the Makefile

 

directory “lib” is for arm and “x86_lib” for x86.

 

./openssl and ./pcap is header file directory

 

complie openssl and pcap for x86 and arm and then cp *.a to lib and x86_lib

 

rebuild!

 

you can see “server2_x86”

 

if you want to complie arm version, modify Makefile to “all : server_x86 server_arm”

크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by dosuser(신대용) dosuser
아... 삽질의 기억들...

하지만 가장 심각했던 학과내 모든 임베디드 보드가지고 삽질한 장면은 너무 바빠서 사진찍을 겨를도 없었다...
왜 모든 장비가 고장나 있던 거냐...
정상 장비가지고 이틀동안.. 죽는줄 알았다.
무서운 타겟보드












아...정말 이거 뜰때는 기쁘더라....


밥먹을 시간 없어서 두부로 때우며 카메라 정품등록중;;


레코드락은 제외 시켰다. 역시 파일기반의 락은 너무 느리다.



아니.. 왜 이런 결과가.... 역시 테스트 할때는 재 부팅이 필요하다.
저작자 표시 비영리 동일 조건 변경 허락
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by dosuser(신대용) dosuser

물론 소켓수나 환경에 따라 다르긴 하지만

SOCK_PACKET소캣 하나 조낸 폴링 하고 싶을때는 LT가 낳다.

라고 한다.-_-

ET를 이번 테스트에서 사용할 수 없어서 알 수 없었다.
그런데 확실히 ET를 사용하면 버릴 패킷은 확실히 버릴수 있다는게 좋은점 같다.
ET를 사용하면 소켓과 버퍼를 정확하게 컨트롤 해야한다는게 단점이라고 누가 그러긴 했지만...
서버 프로그램에서 자신이 정확하게 컨트롤 하지 않으면 안되지 않는가...
버릴건 버리고 읽을것만 읽는게 나은거 아닌가...
SOCK_PACKET의 경우 어떻게 핸들링하는것이 가장 좋은지는 역시 wireshark처럼 하는게 답이라고 할 수도 있지만. 흠.. 글쎄-_-;;


아무튼 이번의 경우 내가 오랬동안 코딩을 놓고 있었다는것이 뼈저리게 느껴진 경우였다.
저작자 표시 비영리 동일 조건 변경 허락
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by dosuser(신대용) dosuser
출처 : http://www.xevious7.com/52

위 출처의 코드를 arm용으로 컴파일 해놨다.

도대체 왜 2.6 버전의 커널인데 epoll이 동작을 안하며.. 왜 타겟보드 제작사에서 "모르겠습니다"라는 말을 당당히 할 수 있는건지...

주의
ET,LT 테스트는 이 코드 가지고 되지 않는다.
기본적으로 LT는 대부분 구현되어 있으나 ET가 구현되어 있지 않은 경우가 있다.
이는 epoll의 해더 파일에서 알 수 있다.
나중에 시간나면? 만들어야지;;;

arm용 실행파일


epoll 테스트 코드

더보기

저작자 표시 비영리 동일 조건 변경 허락
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by dosuser(신대용) dosuser
TAG ARM, epoll, Test

잘못된 사항에 대한 지적은 언제든지 환영&감사드립니다.


아직도 bootp 때문에 고민 이십니까?
yum install bootp 해도 암것도 안되 십니까?
이제 dhcpd를 사용하십시오!

bootp를 요즘 나오는 몇몇의 배포판들에서 실행을 할 경우 segmentation fault 가 납니다. ㅎ
그래서 이 전 버전의 페도라나 레드헷 9등을 쓰는 경우도 있는데 이것 보다는 그래도 최신 버전의 리눅스에서 이클립스 가지고 임베디드 소프트웨어를 개발 해보는것이 낳지 않을까요?


환경
windows vista 64x
vmware 32bit
cent os 5.3


확인된 타겟 보드들
한백전자
EMPOS2
SM2

하이버스
PX255B

휴인스
PXA255pro 3


설치
dhcpd를 설치를 합니다-_-
source설치를 하셔도 되고요 yum을 이용하여 설치 하여도 되고용 다른 배포판에서도 나름의 패키지 관리 방법이 있으니 해당 방법을 이용하여 dhcpd를 설치하시면 됍니당.
기본적으로 source설치를 하실때는 구글에서 소스코드를 찾아서 다운로드 받으시고요 받아서 압축풀고 제발 README, INSTALL 파일을 읽어보시면 설치방법이 잘 나와있습니다.
yum으로 설치하는 것은 yum install dhcpd 머 이렇게 해서 설치 하시면 됩니다;;;

dhcpd의 기본적인 설정을 해 주시고요
host [아무이름] {
  hardware ethernet [이더넷 주소];
  fixed-address [장비의 IP주소];
  next-server [장비가 접속하게할  서버 주소];
}
이런 식의 내용을 추가 해 주십시오

그럼 됩니당-_-


예제 환경설정 파일

더보기




 

저작자 표시 비영리 동일 조건 변경 허락
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by dosuser(신대용) dosuser

http://www.linuxquestions.org/questions/linux-networking-3/dhcpd-tftp-config-help-please-57870/
Here's my setup:
PXE Boot:
MotherBoard: Intel 815i
eth0: 3Com 35905b
PXE ver: 2.0

DHCP Server:
SuSE 7.3
192.168.202.100

TFTP Server:
Red Hat 9.0
192.168.200.57

/ect/dhcpd.conf:
option netbios-name-servers 192.168.200.31;
option time-servers timserv.testnet.mydomain.com;
option domain-name-servers 192.168.200.31;
option domain-name "testnet.mydomain.com";
option broadcast-address 192.168.202.255;
option subnet-mask 255.255.255.0;
option routers 192.168.202.5;
ddns-update-style none;
allow booting;
allow bootp;
subnet 192.168.202.0 netmask 255.255.255.0 {
}
group {
host stg20 {
ddns-updates off;
hardware ethernet 00:01:02:23:31:EB;
next-server 192.168.200.57;
filename "pxelinux.0";
fixed-address 192.168.202.120;
}
}

/etc/xinit.d/tftp
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -v -l -s /tftpboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
저작자 표시 비영리 동일 조건 변경 허락
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by dosuser(신대용) dosuser
TAG dhcpd
vmware에 제너럴리눅스로 컴퓨터 만든후
centos 5.3설치 후 arm툴체인 깔고

glibc컴파일 -펌
기본 디렉토리에서 컴파일이 안된다.
glibc를 컴파일 할 때 glibc말고 glibc와 같이 있는 linuxthread 패키지도 같이 받아서 그것 먼저 configure하고 glibc를 configure해야한다.
다른 디렉토리를 만들고 해당 디렉토리에서 소스코드가 있는 디렉토리에 있는 configure를 실행한다.
그러면 Makefile이 생성되고 이후의 방법은 같다.

../glibc-2.3.2/configure --host=arm-linux --prefix=/usr/loca/arm-linux --enable-add-ons=linuxthreads --build=i386-pc-linux-gnu


libpcap 컴파일- 펌
ac_cv_linux_vers=2 ./configure --host=arm-linux CC=arm-linux-gcc --build=i386-pc-linux-gnu --with-pcap=linux
make


openssl - 잡지 마소 펌
① www.openssl.org에서 소스를 다운받아 압축을 해제한다.
② ./Configure linux-elf-arm --prefix=/usr/local/SSL --openssldir=/usr/ local/SSL/OPENSSL no-threads no-zlib no-asm
③ Makefile에서 CC를 크로스 컴파일러(ex. arm-linux-gcc)로 변경한다. Makefile이 여러 개인데 모두 변경해 주어야 한다.
④ apps 디렉토리 안에 있는 makefile에서 LIBSSL에 ‘-ldl’을 추가시킨다. 또 test 디렉토리의 makefile에 LIBCRYPTO에 ‘-ldl’을 추가시킨다.
⑤ make; make install을 통해서 컴파일한다.
⑥ arm-linux-gcc -print-search-dirs로 라이브러리 검색 디렉토리 목록을 찾은 후 액세스 가능한 디렉토리에 생성된 라이브러리 파일 2개와 pkgconfig 디렉토리를 복사한다.
저작자 표시 비영리 동일 조건 변경 허락
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by dosuser(신대용) dosuser