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查看连接的设备
相关文章:

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/目录…...

驱动开发--day2
实现三盏灯的控制,编写应用程序测试 head.h #ifndef __HEAD_H__ #define __HEAD_H__#define LED1_MODER 0X50006000 #define LED1_ODR 0X50006014 #define LED1_RCC 0X50000A28#define LED2_MODER 0X50007000 #define LED2_ODR 0X50007014#endif mychrdev.c #inc…...

用户促活留存新方式——在APP中嵌入小游戏
随着APP同类产品的不断出现,APP开发者们面临着激烈的竞争,很多APP下载后被新的APP取代,获客成本越来越高。同时开发者还会面临用户粘性差、忠诚度低、用完即走、留存困难,商业化价值被大大缩减。 在APP中植入小游戏来提高用户活跃…...

MySQL 8.0.34(x64)安装笔记
一、背景 从MySQL 5.6到5.7,再到8.0,版本的跳跃不可谓不大。安装、配置的差别也不可谓不大,特此备忘。 二、过程 (1)获取MySQL 8.0社区版(MySQL Community Server) 从 官网 字样 “MySQL …...
物流供应商实现供应链自动化的3种方法
当前影响供应链的全球性问题(如新冠肺炎疫情)正在推动许多物流供应商重新评估和简化其流程。运输协调中的摩擦只会加剧供应商无法控制的现有延误和风险。值得庆幸的是,供应链专业人员可以通过端到端的供应链自动化消除延迟,简化与合作伙伴的沟通…...
Mysql更新时间列只改日期为指定日期不更改时间
场景 Mysql分表后同结构不同名称表之间复制数据以及Update语句只更新日期加减不更改时间: Mysql分表后同结构不同名称表之间复制数据以及Update语句只更新日期加减不更改时间_霸道流氓气质的博客-CSDN博客 上面通过如下方式实现日期列增加指定天数。 UPDATE bus…...

实时测试工具 Visual Studio 扩展 NCrunch 4.18 Crack
NCrunch Visual Studio 扩展 .NET 的终极实时测试工具 在编码时查看实时测试结果和内联指标。 下载v4.18 发布于 2023 年 7 月 17 日 跳过视频至: 代码覆盖率 指标 分布式处理 配置 发动机模式 Visual Studio 自动并发测试 NCrunch 是一个完全自动化的测试扩展&a…...
Neo4j 基本语法
一、基本语法 1、新建节点 (1)基本语法: () 代表节点 示例: CREATE (u:User {uid:970939424 }) // 节点类型为User,属性值为uid970939424CREATE (u:Round {rid:7194842697444819113 }) // 节点类型为Rou…...
docker常见面试题
1.什么是docker docker是一个容器化平台,类似于一个集装箱,集装箱与集装箱之间互不影响,docker平台就是一个软件集装箱平台,我们可以构建应用程序,将其所有的依赖打包到一个容器中,然后就很方便的可以在其…...

静态路由:配置和使用详解
文章目录 一、静态路由的配置和使用详解1. 配置要点1.1 点到点接口配置1.2 以太网接口配置 2. 默认路由3. 静态路由的配置命令4. 静态路由实现路由备份和负载分担 二、静态路由的优先级和比较1. 静态路由的优先级设置2. 静态路由与动态路由的比较2.1 静态路由优缺点2.2 动态路由…...
玩转Mysql系列 - 第15篇:详解视图
这是Mysql系列第15篇。 环境:mysql5.7.25,cmd命令中进行演示。 需求背景 电商公司领导说:给我统计一下:当月订单总金额、订单量、男女订单占比等信息,我们啪啦啪啦写了一堆很复杂的sql,然后发给领导。 …...
0065__git fetch, git pull, git merge, git rebase
git fetch, git pull, git merge, git rebase_git pull和merge_送你一朵小莲花的博客-CSDN博客...
AJAX学习笔记4解决乱码问题
AJAX学习笔记3练习_biubiubiu0706的博客-CSDN博客 在Tomcat10来说,AJAX GET或者POST接收响应都不存在乱码问题 对于Tomcat9来说 前端测试代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>测试A…...
【23种设计模式】享元模式【⭐】
个人主页:金鳞踏雨 个人简介:大家好,我是金鳞,一个初出茅庐的Java小白 目前状况:22届普通本科毕业生,几经波折了,现在任职于一家国内大型知名日化公司,从事Java开发工作 我的博客&am…...
语音信号的仿真原理
利用MATLAB对语音信号进行分析和处理,采集语音信号后,利用MATLAB软件 平台进行频谱分析;并对所采集的语音信号加入干扰噪声,对加入噪声的信号进行频 谱分析,设计合适的滤波器滤除噪声,恢复原信号。语音信…...

VLDB 2023 | CDSBen: 字节跳动 veDB 数据库存储系统性能测试模型
背景 随着业务爆炸式增长与云原生技术的日渐成熟,大量云原生分布式数据库产品如雨后春笋般涌现,其中一部分主打 OLTP 场景的分布式数据库强调的是从计算-存储分离架构获得弹性收益;对于业界各种计算-存储分离架构的数据库而言,怎么…...
crontab的配置参数和基础使用教程
crontab基本格式 crontab文件的基本格式如下: * * * * * command 这5个*代表: 第一个* :分钟(0-59)第二个* :小时(0-23)第三个* :一个月中的第几天(1-31)第四个* :月份(1-12)第五个* :一周中的第几天(0-6,其中0代表星期天) command代表要执行的命令。 crontab常用时间设置…...

基于Python开发的玛丽大冒险小游戏(源码+可执行程序exe文件+程序配置说明书+程序使用说明书)
一、项目简介 本项目是一套基于Python开发的玛丽冒险小游戏程序,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Python学习者。 包含:项目源码、项目文档等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试…...
K8S之使用yaml格式定义pod
mysql-pod.yaml # overView: # 1. web服务与db打包放在同一个pod中,本地通过localhost来访问,并附带存活性/可用性检测 # 2. 补充重启策略/镜像拉去策略 # 3. 对容器资源进行限制apiVersion: apps/v1 kind: Pod metadata:name: pub-oanamespace: hunte…...
SSH命令详解
本文转载于:https://blog.csdn.net/m0_60873746/article/details/130843325 SSH命令详解 SSH(Secure Shell)是一种用于安全登录远程计算机的网络协议。通过 SSH,可以在不受干扰的情况下,传输服务器操作系统和网络管理…...

利用最小二乘法找圆心和半径
#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...

Cinnamon修改面板小工具图标
Cinnamon开始菜单-CSDN博客 设置模块都是做好的,比GNOME简单得多! 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...

Psychopy音频的使用
Psychopy音频的使用 本文主要解决以下问题: 指定音频引擎与设备;播放音频文件 本文所使用的环境: Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...
Robots.txt 文件
什么是robots.txt? robots.txt 是一个位于网站根目录下的文本文件(如:https://example.com/robots.txt),它用于指导网络爬虫(如搜索引擎的蜘蛛程序)如何抓取该网站的内容。这个文件遵循 Robots…...
【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具
第2章 虚拟机性能监控,故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令:jps [options] [hostid] 功能:本地虚拟机进程显示进程ID(与ps相同),可同时显示主类&#x…...

SAP学习笔记 - 开发26 - 前端Fiori开发 OData V2 和 V4 的差异 (Deepseek整理)
上一章用到了V2 的概念,其实 Fiori当中还有 V4,咱们这一章来总结一下 V2 和 V4。 SAP学习笔记 - 开发25 - 前端Fiori开发 Remote OData Service(使用远端Odata服务),代理中间件(ui5-middleware-simpleproxy)-CSDN博客…...
Spring是如何解决Bean的循环依赖:三级缓存机制
1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间互相持有对方引用,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...
Go语言多线程问题
打印零与奇偶数(leetcode 1116) 方法1:使用互斥锁和条件变量 package mainimport ("fmt""sync" )type ZeroEvenOdd struct {n intzeroMutex sync.MutexevenMutex sync.MutexoddMutex sync.Mutexcurrent int…...

HubSpot推出与ChatGPT的深度集成引发兴奋与担忧
上周三,HubSpot宣布已构建与ChatGPT的深度集成,这一消息在HubSpot用户和营销技术观察者中引发了极大的兴奋,但同时也存在一些关于数据安全的担忧。 许多网络声音声称,这对SaaS应用程序和人工智能而言是一场范式转变。 但向任何技…...

鸿蒙Navigation路由导航-基本使用介绍
1. Navigation介绍 Navigation组件是路由导航的根视图容器,一般作为Page页面的根容器使用,其内部默认包含了标题栏、内容区和工具栏,其中内容区默认首页显示导航内容(Navigation的子组件)或非首页显示(Nav…...