| 안녕하세요? 말씀하신대로 해보고 있습니다. 잘 안되는 게 있어서요.
1. 우선 커널은 netfilter support할 수 있도록 옵션을 주고 컴파일했습니다. tftp로 받아서 구웠구요,
iptables소스를 구해서 크로스 컴파일까지는 됐습니다. iptables, iptables-save, iptables-restore, ip6tables 등 4개의 실행파일이 생겼는데요 각각의 파일 크기가 1.9M씩이더라구요(static library로 컴파일했습니다). 우선은 크로스컴파일에 성공했으니까 /nfs_resource 디렉토리에 넣고 EMPOS-II에서 nfs를 마운트한 뒤 iptables파일을 실행했습니다. 그런데 응답이 없더라구요.
램디스크에 넣고 테스트를 해보려고 했는데 파일 크기가 너무 커서요, 어떻게 넣어야 할지 모르겠습니다.
-> 램디스크에 1.9짜리 iptables, iptables-save, iptables-restore 세개를 넣으니까 가까쓰로 들어가긴 했습니다. 램디스크 부팅 후 동작하는 것도 확인하긴 했는데요, 거의 용량이 한계인것 같아요. 임베디드 장비라서 static으로 컴파일했는데, 파일 사이즈가 너무 커져버렸습니다. 파일 크기를 줄이도록 iptables를 포팅하는 방법이 없을까요?
2. busybox의 Config.h파일을 보니 route명령을 쓸 수 있도록 되어있었습니다. 그래서 그부분의 주석처리를 제거하고 Makefile을 다음과 같이 수정했습니다.
# If you are running a cross compiler, you may want to set this
# to something more interesting, like powerpc-linux-.
CROSS = arm-linux- // 수정한 부분
CC = $(CROSS)gcc
AR = $(CROSS)ar
STRIPTOOL = $(CROSS)strip
그런데 컴파일이 중간까지는 잘 되다가 에러메시지가 뜨면서 중단됩니다. 어디가 잘못된 것일까요?
EMPOS-II에 busybox를 포팅하셨던 방법을 알려주셨으면 좋겠습니다.
3. 크로스컴파일 부분을 수정하지 않고 컴파일하니까 bin, sbin, usr 디렉토리와 linuxrc라는 링크가 생겼습니다. 만일 크로스컴파일이 제대로 수행되어 위와 같은 결과가 나왔을 때, 이들을 ramdisk 루트 디렉토리로 복사한 후 이를 포팅하면 변경된 busybox가 실행되는지요?
답변 부탁드립니다. 즐거운 하루 되세요~
|