am335x system upgrade rootfs for dhcpcd cross compile(十三)
dhcpcd移植
【目的】
移植dhcpcd的目是在AM335X开发板上使用dhcp功能,获取WAN口设备的IP,并且可以通过参数指定其matric,matric值越小,其优先级越高。如设备可以以太网,WIFI,4G上网时,可定制外网功能,以太网优先级最高,WIFI次之,4G优先级最低。
【环境】
1、 Ubuntu 16.04发行版
2、 MC183平台
3、 交叉编译器arm-linux-gnueabihf-gcc-4.7.3
【步骤】
1、下载dhcpcd-6.7.1.tar.gz源码。
2. 交叉编译dhcpcd-6.7.1.tar.gz。
解压dhcpcd-6.7.1.tar.gz
tar zvxf dhcpcd-6.7.1.tar.gz
cd dhcpcd-6.7.1
配置:
./configure --libexecdir=/lib/dhcpcd --dbdir=/var/lib/dhcpcd
编译:
make CC=arm-linux-gnueabihf-gcc
报如下错误:
arm-linux-gnueabihf-gcc -o dhcpcd common.o control.o dhcpcd.o duid.o eloop.o if.o if-options.o script.o dhcp-common.o dhcpcd-embedded.o if-linux.o arp.o dhcp.o ipv4.o ipv4ll.o ipv6.o ipv6nd.o dhcp6.o if-linux-wext.o auth.o compat/arc4random.o compat/arc4random_uniform.o compat/closefrom.o compat/strlcpy.o crypt/hmac_md5.o crypt/md5.o crypt/sha256.o
common.o: In function `get_monotonic':
common.c:(.text+0x6a): undefined reference to `clock_gettime'
auth.o: In function `get_next_rdm_monotonic':
auth.c:(.text+0x12): undefined reference to `clock_gettime'
collect2: error: ld returned 1 exit status
Makefile:99: recipe for target 'dhcpcd' failed
make: *** [dhcpcd] Error 1
解决方法:在config.mk当中添加如下语句,重新make,即可编译通过。
LDADD+=-lrt
交叉编译之后,所需要的文件:
dhcpcd可执行文件
dhcpcd-run-hooks 需要给其赋可执行权限
hdcpcd-hooks dhcpcd运行行,会通过dhcpcd-run-hook,调用dhcpcd-hooks下面的脚本,如生成/etc/resolv.conf等。
如下所示为集成到系统当中的位置。其中resolv.conf.head, resolv.conf.tail为dns服务器的配置:
# cat dynamic-configure-network/etc/resolv.conf.head
nameserver 114.114.114.114
# cat dynamic-configure-network/etc/resolv.conf.tail
nameserver 8.8.8.8
├── bin
│ ├── dhcpcd
├── etc
│ ├── dhcpcd.conf
│ ├── resolv.conf.head
│ ├── resolv.conf.tail
├── lib
│ └── dhcpcd
│ ├── dhcpcd-hooks
│ │ ├── 01-test
│ │ ├── 02-dump
│ │ ├── 10-mtu
│ │ ├── 10-wpa_supplicant
│ │ ├── 15-timezone
│ │ ├── 20-resolv.conf
│ │ ├── 29-lookup-hostname
│ │ ├── 30-hostname
│ │ ├── 50-dhcpcd-compat
│ │ ├── 50-ntp.conf
│ │ ├── 50-ypbind.in
│ │ └── 50-yp.conf
│ └── dhcpcd-run-hooks
3. 测试:
获取以太网口IP地址:
dhcpcd eth0
指定默认路由的metric值
dhcpcd –m 1 eth0
如果网线没有插的话,运行dhcpcd 时,会退出,
通过指定参数-t 0,保证以网未插入时,dhcpcd服务不退出,
这样的支持以太网线的插拔时
dhcpcd –m 1 –t 0 eth0
am335x system upgrade rootfs for dhcpcd cross compile(十三)的更多相关文章
- am335x system upgrade rootfs for bridge-utils cross compile (十四)
bridge-utils移植 [目的] 移植bridge-utils的目是在AM335X开发板上使用bridge功能. [环境] 1. Ubuntu 16.04发行版 2. MC183平台 3. ...
- am335x system upgrade rootfs using yocto make rootfs(十二)
1 Scope of Document This document describes how to make am335x arago rootfs using ycoto project ...
- am335x system upgrade rootfs custom service using systemd script(十七)
1 Scope of Document systemd 是一个 Linux 系统基础组件的集合,提供了一个系统和服务管理器,运行为 PID 1 并负责启动其它程序.功能包括:支持并行化任务: ...
- am335x system upgrade set/get current cpufreq(二十一)
1 Scope of Document This document describes am335x cpufreq technology insider. 2 Requireme ...
- am335x system upgrade kernel tf(五)
1 Scope of Document This document describes TF hardware design 2 Requiremen 2.1 Functi ...
- am335x system upgrade uboot nand boot(三)
在uboot 下初始化nand,一般需要做如下工作: 第一: 配置默认从NAND boot Index: include/configs/am335x_evm.h=================== ...
- am335x system upgrade uboot ethernet(二)
系统可以通过SD卡引道之后,为了之后了调试方便 通过查看网卡的硬件设计 正常来说需要注意的有如下几点: 1) 网口 的接线方式: RMII 2) 网口的PHY地址两张网口,这里我们只需先初始化一张网卡 ...
- am335x system upgrade kernel ethernet(四)
1 Scope of Document This document describes ethernet hardware design and porting KZS8081 to ubo ...
- am335x system upgrade kernel ec20 simcom7600ce(十一)
1 Scope of Document This document describes 4G hardware design, support quectel ec20 4G module/ ...
随机推荐
- Shiro集成SSM基于动态URL权限管理(二)
这个案例基于上一个demo扩展而来.所以数据库表,在Shiro集成SSM基于URL权限管理(一)开篇的一致.如果上个demo操作的建议重新导入一次,避免出现问题. 而这次都不是通过固定写在方法上的注解 ...
- TCP协议(下)
TCP滑动窗口 发送端 LastByteAcked:第一部分和第二部分的分界线 LastByteSent:第二部分和第三部分的分界线 LastByteAcked + AdvertisedWindow: ...
- Python之TensorFlow的卷积神经网络-5
一.卷积神经网络(Convolutional Neural Networks, CNN)是一类包含卷积计算且具有深度结构的前馈神经网络(Feedforward Neural Networks),是深度 ...
- docker 入坑3
查看镜像 docker images [OPTIONS] [REPOSITORY[:TAG]] -a, --all=false -f, --filter=[] --no-trunc=false -q, ...
- vmware下的linux没有网络问题解决思路
这里几天一直在搞vm下的linux主机的网络问题,这里做个总结 这里使用的NAT连接方式 1.首先保证本机联网正常 2.检查虚拟机相应的服务(VMware NET Service 和 VMware W ...
- 大数据相关技术原理资料整理(hdfs, spark, hbase, kafka, zookeeper, redis, hive, flink, k8s, OpenTSDB, InfluxDB, yarn)
hdfs: hdfs官方文档 深入理解HDFS的架构和原理 https://blog.csdn.net/kezhong_wxl/article/details/76573901 HDFS原理解析(总体 ...
- DHCP服务器的架设
DHCP服务器的架设 一.DHCP服务器的安装要求: 搭建DHCP服务器需要一些必备条件支持,主要有以下方面: 需要一台运行Windows Server系统的服务器,并为其指定静态IP地址. 根据子网 ...
- 2.将多个元素设置为同一行?清除浮动有几种方式?【HTML】
1.将多个元素设置为同一行:float,inline-block 清除浮动的方式: 方法一:添加新的元素 .应用 clear:both: 方法二:父级div定义 overflow: hidden: 方 ...
- Jmeter学习笔记(十五)——常用的4种参数化方式
一.Jmeter参数化概念 当使用JMeter进行测试时,测试数据的准备是一项重要的工作.若要求每次迭代的数据不一样时,则需进行参数化,然后从参数化的文件中来读取测试数据. 参数化是自动化测试脚本的一 ...
- vue项目配置Mock.js
扯在前面 最近一直在忙跳槽的事情,博客也好久没有更新了,上次更新还是去年,不出意外的话,从今天起继续今年的博客之旅. 今天继续完善我之前的项目架构,从零开始搭建vue移动端项目到上线,有需要的同学可以 ...