NUC980webServer开发

目录

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 = yifeq ($(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-gnueabihfmakemake 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.hqwc.cn/news/105855.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VBA技术资料MF52:VBA_在Excel中突出显示前 10 个值

【分享成果,随喜正能量】一言之善,重于千金。善良不分大小,有时候你以为的一句话,小小的举手之劳,也可能就是别人的救赎!不要吝啬你的善良,因为你永远不知道那小小的善良能给多少人带来光明。。…

leetcode687. 最长同值路径(java)

最长同值路径 题目描述DFS 深度遍历代码演示 题目描述 难度 - 中等 LC - 687. 最长同值路径 给定一个二叉树的 root ,返回 最长的路径的长度 ,这个路径中的 每个节点具有相同值 。 这条路径可以经过也可以不经过根节点。 两个节点之间的路径长度 由它们之…

Docker安装

一、CentOS7安装Docker 1、安装 Docker CE 支持 64 位版本 CentOS 7,并且要求内核版本不低于 3.10, CentOS 7 满足最低内核的要求,所以我们在CentOS 7安装Docker。 ①如果虚拟机存在Docker 先卸载 yum remove docker \ …

怎样获取字符串数组的长度_使用sizeof(array) / sizeof(array[0])

使用sizeof() C、C中没有提供直接获取数组长度的函数,对于存放字符串的字符数组提供了一个strlen函数获取长度,那么对于其他类型的数组如何获取他们的长度呢? 其中一种方法是使用sizeof(array) / sizeof(array[0]), 在C语言中习惯上在使用时…

排序算法:快速排序(三种排序方式、递归和非递归)

朋友们、伙计们,我们又见面了,本期来给大家解读一下有关排序算法的相关知识点,如果看完之后对你有一定的启发,那么请留下你的三连,祝大家心想事成! C 语 言 专 栏:C语言:从入门到精通…

美业创新之路:广告电商模式让你的品牌脱颖而出

美业是一个巨大的市场,但也面临着激烈的竞争和消费者的多样化需求。如何在这个市场中脱颖而出,实现品牌的增长和盈利呢?答案就是广告电商模式。 广告电商模式是一种结合了社交电商和广告分佣的新型电商模式,它可以让消费者在购物的…

MATLAB入门-字符串操作

MATLAB入门-字符串操作 注:本篇文章是学习笔记,课程链接是:link MATLAB中的字符串特性: 无论是字符还是字符串,都要使用单引号来‘’表示;在MATLAB中,字符都是在矩阵中存储的,无论…

CFTC可能比SEC更可怕,将监管炮口直接对准DeFi?

还未开始享受Uniswap在法庭上为DeFi行业带来的“胜利果实”,美国商品期货委员会(CFTC)在一个星期之后立即将其无情砸碎,并将其监管大炮直接对准了DeFi衍生品市场,乃至整个DeFi行业。 2023年9月7日,CFTC宣布…

Spring Reactive:响应式编程与WebFlux的深度探索

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…

前端绘制地铁路线图

前端绘制地铁路线图 前端可以使用多种技术绘制二维地图,以下是几种常见的方法: SVG:SVG是一种基于XML的矢量图形格式,可以使用SVG元素绘制各种形状和路径,包括线、圆、多边形等。可以使用JavaScript库如D3.js来绘制SV…

vscode c++解决包含头文件红色波浪线问题

安装c/c插件后,按ctrlshiftp, 点击打开了c_cpp_properties.json文件,对其中的IncludePath进行编辑,示例如下: "includePath": ["${workspaceFolder}/**","${workspaceFolder}/include/**&q…

百度飞桨(武汉)人工智能产业赋能中心签约,推动AI技术与汉阳“1+6”产业深度融合

9月1日,“文心中国行”首站落地武汉汉阳。活动现场,武汉市汉阳区与百度正式签约,共同打造百度飞桨(武汉)人工智能产业赋能中心,助力武汉产业高质量跨越式发展。活动围绕“深入解读大模型产业实践&#xff0…