首页 > 系统相关 >shell脚本一键编译WiFi配置需要的工具

shell脚本一键编译WiFi配置需要的工具

时间:2024-07-19 15:20:22浏览次数:9  
标签:shell tar Makefile WiFi 一键 COMPILE PLATFORM ROOT DIR

#! /bin/bash 
PLATFORM='hi3519dv500'
PLATFORM_COMPILE=aarch64-v01c01-linux-musl-
COMPILE_CC="$PLATFORM_COMPILE"gcc
COMPILE_STRIP="$PLATFORM_COMPILE"strip
COMPILE_AR="$PLATFORM_COMPILE"ar
COMPILE_RANLIB="$PLATFORM_COMPILE"ranlib

INSTALL_DIR=__install_$PLATFORM

ROOT_DIR=$(pwd)
LIBNL_DIR=$ROOT_DIR/libnl-3.2.25
OPENSSL_DIR=$ROOT_DIR/openssl-1.1.1w
HOSTAPD_DIR=$ROOT_DIR/hostapd-2.10
WPA_DIR=$ROOT_DIR/wpa_supplicant-2.10
WIRELESS_TOOLS_DIR=$ROOT_DIR/wireless_tools.29
OUT_PUT_DIR=$ROOT_DIR/output

build_libnl()
{
	cd $ROOT_DIR

	if [ ! -f libnl-3.2.25.tar.gz ];then
		wget https://www.infradead.org/~tgr/libnl/files/libnl-3.2.25.tar.gz
		if [ ! -f libnl-3.2.25.tar.gz ];then
			exit
		fi
	fi

	if [ ! -d libnl-3.2.25 ];then
		tar -xvf libnl-3.2.25.tar.gz
	fi

	cd $LIBNL_DIR
	mkdir -p $INSTALL_DIR
	./configure --host=arm CC=$COMPILE_CC --prefix=$(pwd)/$INSTALL_DIR --enable-static
	make clean
	make -j8
	make install
}

build_openssl()
{
	cd $ROOT_DIR

	if [ ! -f openssl-1.1.1w.tar.gz ];then
		wget https://www.openssl.org/source/old/1.1.1/openssl-1.1.1w.tar.gz
		if [ ! -f openssl-1.1.1w.tar.gz ];then
			exit
		fi
	fi

	if [ ! -d openssl-1.1.1w ];then
		tar -xvf openssl-1.1.1w.tar.gz
	fi

	cd $OPENSSL_DIR
	mkdir -p $INSTALL_DIR

	./config no-asm no-shared no-async --prefix=$PWD/$INSTALL_DIR

	#修改Makefile
	#PLATFORM=linux-x86
	sed -i s/^PLATFORM.*/PLATFORM="linux-armv7"/g ./Makefile
	#CROSS_COMPILE
	sed -i s/^CROSS_COMPILE.*/CROSS_COMPILE="$PLATFORM_COMPILE"/g ./Makefile
	#删除所有的 -m32 -m64选项
	sed -i "s/-m64//g" ./Makefile
	sed -i "s/-m32//g" ./Makefile

	make clean
	make -j8
	make install
}

create_patch()
{
	if [ `grep -c "PLATFORM_NAME" ./Makefile` -eq '0' ];then
		sed -i '5a PLATFORM_NAME='$PLATFORM ./Makefile
	else
		sed -i s/^PLATFORM_NAME.*/PLATFORM_NAME=$PLATFORM/g ./Makefile
	fi

#修改Makefile
cat > patch.txt << EOF
ifeq (\$(PLATFORM_NAME),$PLATFORM)
CC=$COMPILE_CC
CFLAGS += -I$LIBNL_DIR/$INSTALL_DIR/include
LIBS += -L$LIBNL_DIR/$INSTALL_DIR/lib -lnl-3
CFLAGS += -I$OPENSSL_DIR/$INSTALL_DIR/include
LIBS += -L$OPENSSL_DIR/$INSTALL_DIR/lib -lcrypto -lssl
LDFLAGS += -lpthread -lm -ldl
BINDIR := ./$INSTALL_DIR/bin
endif
EOF
	
	if [ `grep -c "$INSTALL_DIR" ./Makefile` -eq '0' ];then
		sed -i '6 r patch.txt' ./Makefile
	fi
}


build_hostapd()
{
	cd $ROOT_DIR

	if [ ! -f hostapd-2.10.tar.gz ];then
        	wget https://w1.fi/releases/hostapd-2.10.tar.gz
		if [ ! -f hostapd-2.10.tar.gz ];then
			exit
		fi
	fi

        if [ ! -d hostapd-2.10 ];then
                tar -xvf hostapd-2.10.tar.gz
        fi

	cd $HOSTAPD_DIR/hostapd
	mkdir -p $INSTALL_DIR
	cp defconfig .config
	export PKG_CONFIG_PATH=$LIBNL_DIR/$INSTALL_DIR/lib/pkgconfig/:$PKG_CONFIG_PATH
	
	create_patch

	make clean
	make -j8
	make install
	$COMPILE_STRIP -g ./$INSTALL_DIR/bin/* 
}

build_wpa_supplicant()
{
	cd $ROOT_DIR

	if [ ! -f wpa_supplicant-2.10.tar.gz ];then
        	wget https://w1.fi/releases/wpa_supplicant-2.10.tar.gz
		if [ ! -f wpa_supplicant-2.10.tar.gz ];then
			exit
		fi
	fi

        if [ ! -d wpa_supplicant-2.10 ];then
                tar -xvf wpa_supplicant-2.10.tar.gz
        fi

	cd $WPA_DIR/wpa_supplicant
	mkdir -p $INSTALL_DIR
	cp defconfig .config

	#edit .config
	#CONFIG_MACSEC=y
	#CONFIG_DRIVER_MACSEC_LINUX=y
	#CONFIG_CTRL_IFACE_DBUS_NEW=y
	#CONFIG_CTRL_IFACE_DBUS_INTRO=y

	sed -i s/^"CONFIG_MACSEC=y".*/"#CONFIG_MACSEC=y"/g .config
	sed -i s/^"CONFIG_DRIVER_MACSEC_LINUX=y".*/"#CONFIG_DRIVER_MACSEC_LINUX=y"/g .config
	sed -i s/^"CONFIG_CTRL_IFACE_DBUS_NEW=y".*/"#CONFIG_CTRL_IFACE_DBUS_NEW=y"/g .config
	sed -i s/^"CONFIG_CTRL_IFACE_DBUS_INTRO=y".*/"#CONFIG_CTRL_IFACE_DBUS_INTRO=y"/g .config

	export PKG_CONFIG_PATH=$LIBNL_DIR/$INSTALL_DIR/lib/pkgconfig/:$PKG_CONFIG_PATH

	create_patch

	make clean
	make -j8
	make install
	$COMPILE_STRIP -g ./$INSTALL_DIR/bin/* 
}

build_wireless_tools()
{
	cd $ROOT_DIR

	if [ ! -f wireless_tools.29.tar.gz ];then
        	wget https://hewlettpackard.github.io/wireless-tools/wireless_tools.29.tar.gz
		if [ ! -f wireless_tools.29.tar.gz ];then
			exit
		fi
	fi

        if [ ! -d wireless_tools.29.tar.gz ];then
                tar -xvf wireless_tools.29.tar.gz
        fi

	cd $WIRELESS_TOOLS_DIR
	mkdir -p $INSTALL_DIR

	sed -i "/PREFIX = /d" ./Makefile 
	sed -i '4a PREFIX = '$WIRELESS_TOOLS_DIR'/'$INSTALL_DIR ./Makefile
	sed -i s/^"CC = .*"/"CC = ""$COMPILE_CC"/g ./Makefile
	sed -i s/^"AR = .*"/"AR = ""$COMPILE_AR"/g ./Makefile
	sed -i s/^"RANLIB = .*"/"RANLIB = ""$COMPILE_RANLIB"/g ./Makefile

	sed -i s/^"# BUILD_STATIC = y".*/"BUILD_STATIC = y"/g ./Makefile

	make clean
	make -j8 
	make install
	$COMPILE_STRIP -g ./$INSTALL_DIR/sbin/*

}

build_all()
{
	build_libnl
	build_openssl
	build_wpa_supplicant
	build_hostapd
	build_wireless_tools
	cd $ROOT_DIR
	mkdir -p $OUT_PUT_DIR/$INSTALL_DIR

	cp $WPA_DIR/wpa_supplicant/$INSTALL_DIR/bin/* $OUT_PUT_DIR/$INSTALL_DIR -rf
	cp $HOSTAPD_DIR/hostapd/$INSTALL_DIR/bin/* $OUT_PUT_DIR/$INSTALL_DIR -rf
	cp $WIRELESS_TOOLS_DIR/$INSTALL_DIR/sbin/* $OUT_PUT_DIR/$INSTALL_DIR -rf
	
}

build_all

  

标签:shell,tar,Makefile,WiFi,一键,COMPILE,PLATFORM,ROOT,DIR
From: https://www.cnblogs.com/TiddlerYu/p/18311524

相关文章

  • 海外短剧系统搭建部署,全球短剧一键尽享
    今天我要通过分享亲身经历和大家来谈谈海外短剧市场到底好不好做?从去年九月份开始我就跟着风口进入了国内的短剧市场,短剧市场确实给我带来了丰厚的利益,随着短剧系统用户量的增加和活跃度的提升,逐渐实现了从免费到付费的商业模式转变。通过会员制度、广告分成、内容付费等多种......
  • Bash shell
    Bashshellvimfirst.sh#!/bin/bash#bash#!/bin/sh#shellviriable="nishidashabi"#变量间没有空格chmod-xfirst.sh./first.sh#执行shell语法shell解释器标志#!bin/bash#使用的是bashshell变量命名viriable="nishishui?"#变量定义没有空格for......
  • 如何一键删除iPhone相册所有照片?教你快速删除
    iPhone的摄影素质是业内第一梯队的水准,用户会用它拍摄大把大把的照片。使用iPhone拍摄了大量照片后,有时可能会想要一次性将它们全部删除。无论是为了释放手机内存,还是为了整理相册、清除不再需要的照片,能够快速、便捷地完成删除操作都是非常重要的。可惜iPhone没有一键全选,如果......
  • 【攻防技术系列+PowerShell】无文件落地攻击
    #红队#MSF#powershell虚拟机环境搭建:【Kali】,192.168.10.131【win7】,192.168.10.134接上文:【攻防技术系列】MSF进程迁移,用的是里面的1.exe。如果遇到端口占用情况,可以采用以下解决方案:之后在【win7】中使用powershell执行以下命令,实现无文件落地攻击powershell-nop......
  • 小技巧:通过命令行和网络连接获取电脑所连wifi密码
    方法一:命令行第一步,命令行输入下列命令,获取连接过的wifinetshwlanshowprofile第二步,输入以下命令查看你想看的wifi密码(红色改为你获取的任意一个wifi名称) netshwlanshowprofilehappykey=clear第三步,查看密码 方法二:网络连接第一步,搜索网络连接,点击进去......
  • Windows虚拟摄像头有哪些?分享5个方法,手机一键替换电脑摄像头!
    Windows虚拟摄像头怎么用?当我们的电脑缺少摄像头时,我们可以借助虚拟摄像头实现。手机作为电脑摄像头的需求日益增长,本文就来给大家详细介绍,关于电脑虚拟摄像头的使用和说明,一起来看看吧!(一)常见的Windows虚拟摄像头软件推荐金虚拟摄像头:支持WiFi/USB/IP多种连接方式,即开即连。......
  • shell
    一、shell概述shell是一个命令行解释器,它接收应用程序/用户命令,然后调用操作系统内核。Shell还是一个功能相当强大的编程语言,易编写、易调试、灵活性强。Linux提供的shell解析器root@zhangkun:~#cat/etc/shells/bin/sh/bin/bash/usr/bin/bash/bin/dash/usr/bin/dash......
  • vim网络和安全的操作及shell的使用
    目录vim模式一般模式下的基本操作:一般模式切换到编辑模式:一般模式切换到命令模式:Vim多窗口使用技巧横向切割打开:纵向切割打开:关闭多窗口:窗口的切换:网络:定义:作用:网络的类型:网络状态的查询:netstat常用的端口号:通过网络下载文件wgetvim模式Vim编辑器:vi与vim......
  • 全程电子化升级脚本SHELL
     黑龙江ICPSP_UP.sh#!/bin/bash#定义变量formatted_date=$(date+"%Y%m%d")#获取当前日期,格式为YYYYMMDDtomcat_dir="/opt/tomcat/apache-tomcat-9.0.70_icpsp/"#Tomcat的根目录ftp_dir="${tomcat_dir}sun"#FTP上传文件的目录war_file="ICPSP.......
  • 24年最新版工作流形AI绘画ComfyUI整合包一键安装教程(附安装包)
    今天我们带来了ComfyUI的整合安装包安装教程,可以创建工作流一键生成图片。如果你是一个初学者,建议从AI绘画StableDiffusion保姆级入门教程,看完连老奶奶都能上手!开始。ComfyUI简介ComfyUI是一个基于节点工作流的StableDiffusion用户界面。它通过将StableDiffusion......