hostapd源码编译与配置

hostapd是一个linux下的wifi管理程序

下载hostapd源码

首先需要从官网下载hostapd的源码,这里有两种方式

 一是从官方的git仓库里获取hostapd最新的开发版

git clone git://w1.fi/srv/git/hostap.gitcd hostap/hostapd

 二是从官网下载一个稳定版本,http://w1.fi/hostapd/

wget http://w1.fi/releases/hostapd-2.6.tar.gz
tar xzvf hostapd-2.6.tar.gz
cd hostapd-2.6/hostapd

然后,我们需要配置hostapd使得其能够获得nl80211驱动的支持。复制hostapd目录下的deconfig文件为.config,并进行编辑。

cp defconfig .config
vi .config

找到下面这行,去掉#注释

#CONFIG_DRIVER_NL80211=y

然后就可以对hostapd进行编译了。

make

在编译过程中,我们可能遇到几个问题

问题1:

driver_nl80211.c:21:31: warning: netlink/genl/genl.h: No such file or directory
driver_nl80211.c:22:33: warning: netlink/genl/family.h: No such file or directory
driver_nl80211.c:23:31: warning: netlink/genl/ctrl.h: No such file or directory
driver_nl80211.c:24:25: warning: netlink/msg.h: No such file or directory
driver_nl80211.c:25:26: warning: netlink/attr.h: No such file or directory

解决办法:

安装libnl和libssl库

sudo apt-get install linssl-dev libnl-3-dev

如果还是有问题,编辑.config文件,去掉以下语句的注释,然后再次make。

#CONFIG_LIBNL32=y

配置hostapd

在下载的hostapd目录中有默认的配置文件hostapd.conf,但配置太多,对于初学者来说不是太好理解,我们先自己创建一个简单的配置文件hostapd-minimal.conf,对hostapd的功能进行验证。

编辑hostapd-minimal.conf文件

#wlan0为你的无线网卡名称
interface=wlan0
driver=nl80211
ssid=test
hw_mode=g
channel=1

完成配置后,可以使用命令尝试开启hostapd

./hostapd ./hostapd-minimal.conf

可能会遇到如下错误

Configuration file: hostapd-minimal.conf
nl80211: Could not configure driver mode
nl80211: deinit ifname=wlp9s0b1 disabled_11b_rates=0
nl80211 driver initialization failed.
wlp9s0b1: interface state UNINITIALIZED->DISABLED
wlp9s0b1: AP-DISABLED
hostapd_free_hapd_data: Interface wlp9s0b1 wasn‘t started

这是因为有其他的网络程序在占用了无线网卡接口,你必须先关闭系统本身的无线网络管理程序

sudo nmcli radio wifi off
sudo rfkill unblock wlan
sudo ifconfig wlan0 192.168.1.1/24 up

然后再打开hostapd。如下所示,表示你已经成功启动了hostapd

Configuration file: hostapd-minimal.conf
Using interface wlp9s0b1 with hwaddr 68:94:23:8b:88:a3 and ssid "test"
wlan0: interface state UNINITIALIZED->ENABLED
wlan0: AP-ENABLED 

接下来用手机连接wifi,发现可以搜到wifi信号,但是手机连不上。这是因为电脑没有dhcp和路由功能。接下来,我将安装dhcp相关程序,配置软件路由。

时间: 2024-10-28 22:10:36

hostapd源码编译与配置的相关文章

yum/源码编译安装配置apache+svn

本次整理的比较急.源码编译和命令解释后续加上.不多说开始吧 系统环境:CentOS6.5_x86_64 minimal YUM版 1.检查是否安装了httpd.mod_dav_svn(实现apache+svn的一个模块).subversion(默认是安装的.需要yum remove subversion卸载掉) [[email protected] ~]# rpm -ql httpd package httpd is not installed [[email protected] ~]# rp

mysql 5.6单机单实例源码编译安装配置

--linux 基础配置  指定机器名为sql1 --查看centos内核uname -acat /etc/issue --修改机器名 1. echo "192.168.33.190 sql1 localhost.localdomain localhost4 localhost4.localdomain4" >> /etc/hosts 2. vi /etc/sysconfig/networkNETWORKING=yesHOSTNAME=sql1 --修改ipvi /etc/

LAMP源码编译安装配置

系统环境CentOS6.5 一.编译安装Apache 关闭selinux和防火墙 1.解决依赖关系 [[email protected] ~]# yum install gcc gcc-c++ openssl openssl-devel 编译安装apr(The mission of the Apache Portable Runtime (APR) project is to create and maintain software libraries that provide a predic

rsync 3.1.1源码编译安装配置

http://rsync.samba.org/ rsync-3.1.1.tar.gz ---0.卸载rpm # yum remove rsync -----1.安装: tar -zxvf rsync-3.1.1.tar.gz cd rsync-3.1.1 ./configure --prefix=/usr/local/rsync --disable-ipv6 make make install ln -s /usr/local/rsync/bin/rsync /usr/local/bin/rsy

ubuntu 16.04源码编译和配置caffe详细教程 | Install and Configure Caffe on ubuntu 16.04

本文首发于个人博客https://kezunlin.me/post/b90033a9/,欢迎阅读! Install and Configure Caffe on ubuntu 16.04 Series Part 1: Install and Configure Caffe on windows 10 Part 2: Install and Configure Caffe on ubuntu 16.04 Guide requirements: NVIDIA driver 396.54 CUDA 8

PHP源码编译安装的简单整理

PHP源码编译安装配置   下载地址http://php.net/downloads.php CentOS下预装依赖,具体自己对应添加 一般情况下面足够yum install gcc make gd-devel libjpeg-devel libpng-devel libxml2-devel bzip2-devel libcurl-devel -y PHP常用配置添加 ./configure  --prefix=/usr/local/php \--with-config-file-path=/u

shell脚本和ansible实践MariaDB源码编译自动安装

在前面的博客中已经演示,通过脚本实现MySQL通用二进制的安装,下面通过演示用脚本实现源码编译MariaDB实现自动化,在大规模部署多台MariaDB时,这里使用ansible来实现其自动化部署,可以大大简化运维工程师的时间. 先讲解脚本在本地自动化安装MariaDB,结合上一篇博客和前面自动化实现的MySQL通用二进制格式的安装. 环境:Centos 6.6      mariadb-10.0.13.tar.gz    node5(hostname)   2块硬盘:1块是系统用.1块是作为My

Docker环境下编译android源码|编译可运行xposed

前言 因为我的电脑是Ubuntu18的版本,成功编译xposed刷入手机之后无法启动,检查了所有的环境,没有问题,发现可能是Ubuntu系统的兼容库的问题,但是我不可能重新安装系统吧,毕竟有点蠢,所以最好的方式就是在docker的Ubuntu容器中编译,统一环境问题,也可以隔离环境平时 工作开发环境,下面开始操作 安装配置docker docker加速,采用对国人友好的镜像地址 通过修改daemon配置文件/etc/docker/daemon.json来使用加速器,执行以下命令: 您可以配置 D

CentOS 7上源码编译安装和配置LNMP Web+phpMyAdmin服务器环境

什么是LNMP? LNMP(别名LEMP)是指由Linux, Nginx, MySQL/MariaDB, PHP/Perl/Python组合成的动态Web应用程序和服务器,它是一组Web应用程序的基础软件包,在这个基础环境上我们可以搭建任何使用PHP/Perl/Python等语言的动态网站,如商务网站.博客.论坛和开源Web应用程序软件等,它是互联网上被广泛使用的Web网站架构之一. 部署方式 从网站规模大小(访问流量.注册用户等)角度来看,LNMP架构可以使用单机部署方式和集群部署方式.单机部