NUC980webServer开发

news2024/9/22 7:35:34

目录

1.RTL8189FTV驱动移植

 2.wifi配置工具hostapd移植

1.openssl-1.0.2r交叉编译

 2.libnl-3.2.25.tar.gz交叉编译

3.hostapd-2.9.tar.gz交叉编译

4.移植相关工具到开发板

 


1.RTL8189FTV驱动移植

1. 把驱动文件源码放在linux源码的drivers/net/wireless/realtek/rtlwifi/目录下,并且驱动文件源码目录更名为rtl8189

2.进入drivers/net/wireless/realtek/rtlwifi/rtl8189目录 

打开Makefile进行修改,加入下面的话

CONFIG_PLATFORM_NEW = y

ifeq ($(CONFIG_PLATFORM_NEW), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
ARCH := arm
CROSS_COMPILE := /usr/local/arm_linux_4.8/bin/arm-linux-
KSRC := /NUC980-linux-4.4.y
MODULE_NAME := wlan
endif



3.进入上级目录drivers/net/wireless/realtek/rtlwifi并打开Makefile

加入

obj-$(CONFIG_RTL8189) += rtl8189/

4.进入drivers/net/wireless/,打开Kconfig

在最下面加入

source "drivers/net/wireless/realtek/rtlwifi/rtl8189/Kconfig"

5.返回linux源码的顶层目录

make menuconfig进行配置

配置80211 ,mmc 以及rtl8189

然后make编译即可

 2.wifi配置工具hostapd移植

hostapd是Linux系统上的一个带加密功能的无线接入点(access point : AP)程序。hostapd能够使得无线网卡切换为master模式,模拟AP(路由器)功能,作为AP的认证服务器,负责控制管理stations的接入和认证。hostapd 是用于接入点和身份验证服务器的用户空间守护进程。它实现了IEEE 802.11接入点管理,当前版本支持Linux(Host AP、madwifi、mac80211-based驱动)和FreeBSD(net80211)。

注意:在移植hostapd时必须获取libnl源码和openssl的源码

相关源码获取

hostapd-2.9.tar.gz,  wpa_supplicant-2.9.tar.gz    http://w1.fi/releases/
libnl-3.2.25.tar.gz       http://www.infradead.org/~tgr/libnl/
openssl-1.0.2r  https://ftp.openssl.org/source/old/1.0.2/openssl-1.0.2r.tar.gz
 

1.openssl-1.0.2r交叉编译

 1.openssl源码获取

https://ftp.openssl.org/source/old/1.0.2/openssl-1.0.2r.tar.gz

2. 解压openssl,进入openssl目录,并创建_install目录用于获取编译后的库文件和相关头文件

3. 生成Makefile

./config no-asm shared --prefix=$(pwd)/_install

4.修改Makefile 

CROSS_COMPILE= arm-linux-
CC= $(CROSS_COMPILE)gcc
CFLAG= -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H  -DL_ENDIAN -O3 -Wall
DEPFLAG= -DOPENSSL_NO_EC_NISTP_64_GCC_128 -DOPENSSL_NO_GMP -DOPENSSL_NO_JPAKE -DOPENSSL_NO_LIBUNBOUND -DOPENSSL_NO_MD2 -DOPENSSL_NO_RC5 -DOPENSSL_NO_RFC3779 -DOPENSSL_NO_SCTP -DOPENSSL_NO_SSL_TRACE -DOPENSSL_NO_SSL2 -DOPENSSL_NO_STORE -DOPENSSL_NO_UNIT_TEST -DOPENSSL_NO_WEAK_SSL_CIPHERS
PEX_LIBS=
EX_LIBS= -ldl
EXE_EXT=
ARFLAGS=
AR= $(CROSS_COMPILE)ar $(ARFLAGS) r
RANLIB= $(CROSS_COMPILE)ranlib
RC= $(CROSS_COMPILE)windres
NM= $(CROSS_COMPILE)nm
PERL= /usr/bin/perl
TAR= tar
TARFLAGS= --no-recursion
MAKEDEPPROG= makedepend
LIBDIR=lib

 去掉CFLAG参数中的 -m64 ,SHARED_LDFLAGS参数中的 -m64

5.编译安装

make && make install 

 2.libnl-3.2.25.tar.gz交叉编译

1.源码获取 http://www.infradead.org/~tgr/libnl/

2.解压 

tar -xvf libnl-3.2.25.tar.gz
cd libnl-3.2.25/
 mkdir _install
./configure CC=arm-linux-gnueabihf-gcc --prefix=$(pwd)/_install --host=arm-linux-gnueabihf
 make
 make install

3.创建_install文件夹


 mkdir _install

4.生成Makefile

./configure CC=arm-linux-gcc --prefix=$(pwd)/_install --host=arm-linux

5.make && make install

3.hostapd-2.9.tar.gz交叉编译

 1.解压文件

tar -xvf hostapd-2.9.tar.gz

2.生成.config文件

cd hostapd-2.9/hostapd
cp defconfig .config

3.修改.config文件

 加入以下语句

CFLAGS += -I/home/wpa_tools/libnl-3.2.25/_install/include/libnl3
LIBS += -L/home/wpa_tools/libnl-3.2.25/_install/lib
CFLAGS += -I/home/wpa_tools/openssl-1.0.2r/_install/include/openssl
LIBS += -L/home/wpa_tools/openssl-1.0.2r/_install/lib

4. 修改Makefile

修改此处

5.输出环境变量

 export PKG_CONFIG_PATH=/home/wpa_tools/libnl-3.2.25/_install/lib/pkgconfig/

6.编译

make CC=arm-linux-gcc

4.移植相关工具到开发板

1.拷贝libnl相关库到开发板/lib目录下

 2.拷贝openssl相关库到/lib目录下 

3.移植hostapd相关工具到/sbin目录下 ,移植配置文件到/etc目录下

 4.修改配置文件hostap.conf

interface=wlan0

ssid=123456789    //此处为wifi名称

channel=1      //信道

wpa=2        //加密等级

wpa_passphrase=123456789  //wifi密码

3.开启wifi

直接用hostapd工具虽然可打开热点,但是设备无法连接,因为没有为连接热点的设备配置ip,要想自动配置IP就要用到udhcpd工具

使用udhcpd之前必须在/etc下创建udhcpd.conf文件

以下是可直接用的udhcpd.conf文件

start 192.168.175.2
end 192.168.175.254
interface wlan0
max_leases 234
opt router 192.168.175.1

1.加载wifi驱动

insmod wlan0.ko

2.检查wlan0是否存在

ifconfig -a

3.开启 wlan0

ifconfig wlan0 up

4.给wlan0 配置ip地址

ifconfig wlan0 192.168.175.1

5.开启hostapd工具

hostapd /etc/hostapd.conf 

6.开启udchpcd为设备分配IP

udhcpd /etc/udhcpd.conf &

7.可以用 cat /proc/net/arp查看连接的设备

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/986993.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LeetCode //C - 114. Flatten Binary Tree to Linked List

114. Flatten Binary Tree to Linked List Given the root of a binary tree, flatten the tree into a “linked list”: The “linked list” should use the same TreeNode class where the right child pointer points to the next node in the list and the left child …

在Android和iOS上设置手机ip详细教程

大家好!今天我们将分享一个关于如何在Android和iOS设备上设置手机ip(Layer 2 Tunneling Protocol)的简易教程。如果你想要通过安全且可靠的方式连接到远程网络,那么跟着本文一起学习吧!无需复杂操作,让我们…

KUKA机器人后台控制程序(SPS)介绍

KUKA机器人后台控制程序(SPS)介绍 KUKA机器人后台控制程序主要包括以下几部分: RC:运动控制、机器人轨迹规划 优先级1 I/O刷新:输入输出信号的控制 优先级1 SPS:用户可编辑的后台逻辑程序 优先级2 显示界面刷新:示教器显示画面的控制 优先级3 以上的程序需要12ms(固定…

企业架构LNMP学习笔记19

Nginx 第三方模块的使用: Nginx官方没有的功能,开源开发人员定制开发了一些功能,把代码公布出来,可以通过编译加载第三方模块的方式,使用新功能。 NGINX 3rd Party Modules | NGINX shell > tar xvf ngx-fancyinde…

CVE-2017-12149

春秋云镜 CVE-2017-12149 JBoss反序列化漏洞 靶标介绍 2017年8月30日,厂商Redhat发布了一个JBOSSAS 5.x 的反序列化远程代码执行漏洞通告。该漏洞位于JBoss的HttpInvoker组件中的 ReadOnlyAccessFilter 过滤器中,其doFilter方法在没有进行任何安全检查…

Win10怎么设置待机时间

我们在使用电脑的过程中,经常因为有事需要离开电脑,长时间不操作电脑就会进行待机睡眠状态,那么Win10怎么设置待机时间呢,下面小编就给大家详细介绍一下Win10设置待机时间的方法,大家感兴趣的话可以来看一看。 设置方…

新华社《中国扫描十年发展图鉴》:扫描全能王为3亿用户带去“掌心里的便利”

扫描设备从“两手搬”到“进口袋”的过程中经历了什么? 近日,新华社发布了《中国扫描十年发展图鉴》(简称《图鉴》),对扫描设备、技术、应用领域的发展历史进行了深入盘点。《图鉴》显示,扫描一度是价格接…

MySQL——数据的删除以及MySQL中的约束

删除数据 删除表中的一行数据,也必须加上 WHERE条件,否则整列的数据都会被删除。删除语句: delete from 表名 where 条件; 他会将所有的符合条件的数据删除,如果不写条件,则表中的数据全部删除: 如果不添…

软件测试/测试开发丨学会与 AI 对话,高效提升学习效率

点此获取更多相关资料 简介 ChatGPT 的主要优点之一是它能够理解和响应自然语言输入。在日常生活中,沟通本来就是很重要的一门课程,沟通的过程中表达越清晰,给到的信息越多,那么沟通就越顺畅。 和 ChatGPT 沟通也是同样的道理&…

方向介绍:基于深度学习的轨迹预测

方向介绍:基于深度学习的轨迹预测 文章目录 方向介绍:基于深度学习的轨迹预测问题定义典型方法挑战未来展望参考 基于深度学习的轨迹预测是一种利用神经网络模型来预测移动物体的未来位置和运动状态的技术。这种技术在许多领域都有重要的应用&#xff0c…

Jetpack Compose 入门教程之Text

这个文本显示组件应该是我们最常用的组件,下面会非常细 归纳 实例 下面一一演示这些属性与控制逻辑 文本的展示 Text组件 所有构造方法都是text:String,要想用string.xml里面的字符串资源 得使用 stringResource方法,其相似方法如下/** Copyright 2019 The Android Open Sou…

如何挑选低值易耗品管理系统?优化企业管理效率与成本控制

在现代企业管理中,低值易耗品的管理是一个容易被忽视但却十分重要的环节。低值易耗品包括办公用品、耗材、工具等,它们虽然单价不高,但数量庞大且频繁使用,对企业的日常运营和成本控制有着重要影响。为了提高管理效率、降低成本&a…

Linux与shell命令行学习

文章目录 走进shell基本的bash shell命令2.1 遍历目录 cd2.2 查看文件和目录列表 ls2.3 创建文件 touch2.4 复制文件 cp2.5 自动补全 tab2.6 链接文件 ln2.7 文件重命名 mv2.8 删除文件 rm2.9 创建目录 mkdir2.10 删除目录 rmdir2.11 查看文件类型 file2.12 查看整个文件 cat、…

flume1.11.0安装部署

1、准备安装包apache-flume-1.11.0-bin.tar.gz; 上传; 2、安装flume-1.11.0; 解压; tar -zxvf apache-flume-1.11.0-bin.tar.gz -C /opt/server 进入conf目录,修改flume-env.sh,配置JAVA_HOME&#xff1b…

docker 生成镜像的几个问题

docker 生成镜像的几个问题 根据jdk8.tar.gz 打包Jdk8 镜像失败运行镜像报错差不多是网络ip错误,在网上说重启docker即可解决运行mysql5.7.25 镜像失败向daemon.json文件添加内容导致docker重启失败docker run 命令常用参数根据jdk8.tar.gz 打包Jdk8 镜像失败 首选做准备工作…

有向图和无向图的表示方式(邻接矩阵,邻接表)

目录 一.邻接矩阵 1.无向图​编辑 2.有向图 补充:网(有权图)的邻接矩阵表示法 二.邻接表 1.无向图 2.有向图 三.邻接矩阵与邻接表的关系 一.邻接矩阵 1.无向图 (1)对角线上是每一个顶点与自身之间的关系&…

智慧能源方案:TSINGSEE青犀AI算法中台在能源行业的应用

一、方案背景 互联网、物联网、人工智能等新一代信息技术引领新一轮产业革命,加快能源革命步伐。尤其是随着人工智能技术的不断发展,AI智能检测与识别技术在能源行业的应用也越来越广泛。与此同时,国家出台多项政策,将智慧能源纳…

【HTML5高级第三篇】drag拖拽、音频视频、defer/async属性、dialog应用

文章目录 一、拖拽事件1.1 拖拽事件1.2 案例:拖拽丢弃图片 二、音频和视频三、defer 与 async 属性3.1 概述3.2 示例一:3.3 示例二: 四、dialog 元素 一、拖拽事件 原生JavaScipt案例合集 JavaScript DOM基础 JavaScript 基础到高级 Canvas…

LabVIEW利用局部放电分析高压电气设备状态诊断

LabVIEW利用局部放电分析高压电气设备状态诊断 目前,高压电气设备状态的监控系统解决了早期故障检测的问题。局部放电起源于电力电气装置的绝缘。局部放电会导致绝缘层逐渐磨损和加速老化,因此可能导致绝缘完全击穿。因此,局部放电检测及其特…

gitLab(git)误提交命令

1.先使用下面命令查看一下分支上已提交的信息 git log 2.回退到之前的版本 git reset —hard 你要删除的提交哈希码(一般是离这个命令最近的一串数字) 3.覆盖掉远端的版本信息,使远端的仓库也回退到相应的版本 注意:切换到你提…