DHCP Client 관련 arm용으로 컴파일 하는 방법을 소개합니다.
이미 이와 관련한 자료들은 인터넷에서 찾아보면 자료가 많습니다.
하지만 다시 저희 포럼을 통해서 컴파일 하는 방법을 알려드립니다.

사용된 TEST ARM보드는 EZ-S3C6410 보드입니다.
따라서 크로스 컴파이러도 EZ-S3C6410 에서 사용하는 크로스 컴파일러 입니다.

크로스 컴파일러가 설치되어 있지 않다면 아래의 주소로 다운받아서 설치하시면 됩니다.

http://ftp.falinux.com/toolchain_ramdisk/recommendation/gcc-4.3.2/
arm-linux-gnueabi-4.3.2.tar.gz


1. DHCP Client 다운로드 사이트는 다음과 같습니다.

http://open-source.arkoon.net/gpl.php
http://www.ibiblio.org/pub/Linux/system/network/daemons/
2. 다운로드할 파일은 다음과 같습니다.

   dhcpcd-1.3.22-pl3.tar.gz
   
3. 압축 풀기

   작업 디렉토리는 /project/ 로 합니다.
   
   [project #] tar -zxvf dhcpcd-1.3.22-pl3.tar.gz
   [project #] cd dhcpcd-1.3.22-pl3

4. 컴파일 하기
  
    * 환경 설정
[dhcpcd-1.3.22-pl3 #] CC=arm-generic-linux-gnueabi-gcc ./configure --prefix=/project/dhcpcd-1.3.22-pl3/_install --host=arm-generic-linux-gnueabi
 
        또는

[dhcpcd-1.3.22-pl3 #] ./configure --prefix=/project/dhcpcd-1.3.22-pl3/_install --host=arm-generic-linux-gnueabi


    * Makefile 수정 
Makefile에서 CC 가 arm-generic-linux-gnueabi-gcc 로 되어 있지 않다면 이를 수정한다.

[dhcpcd-1.3.22-pl3 #]  vi Makefile

   57 AWK = gawk
   58 CC = gcc
   59 DEPDIR = .deps
    를 아래와 같이 수정한다.
57 AWK = gawk
58 CC = arm-generic-linux-gnueabi-gcc
59 DEPDIR = .deps


73 sbindir = ${exec_prefix}/sbin
74 mandir = /usr/man
를 아래와 같이 수정한다.
73 sbindir = ${exec_prefix}/sbin
74 mandir = ${prefix}/man

 
  116 configdir = ${sysconfdir}/dhcpc
117 docdir = /usr/doc
를 아래와 같이 수정한다.
116 configdir = ${sysconfdir}/dhcpc
117 docdir = ${prefix}/doc

    * 컴파일 하기

[dhcpcd-1.3.22-pl3 #] make
[dhcpcd-1.3.22-pl3 #] make install
    

5. 컴파일이 정상적으로 되면 _install 디렉토리가 생성되고, 관련 파일들이 생성됩니다.
   이 생성된 파일들을 ARM 보드에 올려서 사용하면 됩니다.
   파일시스템이 램디스크인 경우에는 램디스크이미지에 이 파일들을 포함해서 올리시면 됩니다.
   
   DHCP Client 는 busybox에서도 udhcpc 파일로 제공을 하고 있습니다. 
   

6. 실행하기

   컴파일한 파일들을 ARM 보드에 모두 올려다면 다음과 같이 실행합니다.
   
   $] cd /sbin
   sbin $] ./dhcpcd -d eth0