一、搭建环境描述:
1、编译所在平台:Ubuntu14.04
2、交叉编译工具:arm-2009q3
3、目标机平台:s5pv210
4、目标机内核版本:2.6.35.7
5、移植dhcp版本:dhcp4.2.5
二、移植步骤:
1、将下载好的dhcp4.2.5复制到ubuntu里自定义的目录里。dhcp4.2.5可以在https://ftp.isc.org/isc/dhcp/网站里找对应的版本,
下 载dhcp-4.2.5.tar.gz 。
2、解压dhcp压缩包,sudo tar -xvf dhcp-4.2.5-P1.tar.gz
3、进入dhcp目录,cd dhcp-4.2.5-P1
4、执行sudo ./configure --host=arm-linux ac_cv_file__dev_random=yes CC=/usr/local/arm/arm-2009q3/bin/arm-linux-gcc 配置。 (注:CC=/usr/local/arm/arm-2009q3/bin/arm-linux-gcc这里指的是你交叉编译工具gcc的路径,由于我没有把交叉编译工具的bin目录加到PATH里,所以这里我直接把赋值绝对路径)
/* 这里没加CC这个选项的话,我配置的时候会出现为gcc,编译完成后生成的dhclient可执行文件是Intel架构的。这里加上后CC后,下面的第7步骤也要加上CC,不然会报错。*/
5、进入到bing目录下,cd bind
6、修改Makefile,sudo gedit Makefile
7、找到./configure的位置并修改为 ./configure BUILD_CC=gcc ac_cv_file__dev_random=yes --host=arm-linux --disable-kqueue CC=/usr/local/arm/arm-2009q3/bin/arm-linux-gcc(这里的CC跟上面第4步骤的一样,指的是交叉编译工具gcc的路径)
未改之前
修改之后
8、解压bin目录下的bind.tar.gz,sudo tar -xvf bind.tar.gz
9、进入bind-9.8.4-P2目录,cd bind-9.8.4-P2
10、修改 lib/export/dns/Makefile.in,sudo gedit lib/export/dns/Makefile.in
将gen: ${srcdir}/gen.c
${CC} ${ALL_CFLAGS} ${LDFLAGS} -o $@ ${srcdir}/gen.c ${LIBS}
改为
gen: ${srcdir}/gen.c
${BUILD_CC} ${ALL_CFLAGS} ${LDFLAGS} -o $@ ${srcdir}/gen.c ${LIBS}
11、返回到根目录,cd../../
12、执行sudo make,生成的文件放在了client目录下
13、执行sudo make DESTDIR=$PWD/tmp install
14、至此、编译成功。
三、将所需要的文件放到开发板去。
1、将dhcp根目录下的client目录里的dhclient放到开发板的/bin目录下
2、进入到make install指定安装的目录下,cd tmp/usr/local/
①将该目录下的etc/dhclient.conf.example放到开发板的/etc目录下并改名为dhclient.conf,
②将该目录下的etc/dhcpd.conf.example放到开发板的/etc目录下并改名为dhcpd.conf
3、返回到dhcp根目录下,将client/scripts/linux放到开发板/etc目录下并改名为dhclient-script,打开这个dhclient-script文件, #!/bin/bash 改为 #!/bin/sh
4、至此、全部移植成功。
四、测试。
1、启动开发板、加载完uboot、kernel、rootfs进入到根目录下。插入usb wifi,我使用的是rt3070芯片网卡
2、执行mkdir -p /var/db(这一步执行一次就行,以后不用执行)
3、wpa_supplicant -B -c/root/wpa-wpa2.config -iwlan0 (/root/wpa-wpa2.config指的是你的wpa配置文件,里面放的是要连接的wifi信息、wlan0是我无线网卡的名字)
4、wpa_cli -iwlan0 status 查看连接状态
5、dhclient wlan0
6、ifconfig 查看IP地址
6、vi /etc/resolv.conf 查看dns信息
7、route 查看网关信息