hisi平台Wireless_tools、libnl、wpa_supplicant和openssl移植

本文详细介绍在Hisi平台上移植Wireless_tools、libnl、wpa_supplicant和openssl的过程,包括下载、配置、编译及安装步骤,以及解决移植中遇到的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

hisi平台Wireless_tools、libnl、wpa_supplicant和openssl移植

一、Wireless_tools移植

1.当前使用wireless_tools_29

下载地址:https://hewlettpackard.github.io/wireless-tools/wireless_tools.29.tar.gz
2.解压下载的源码到指定目录。

tar -xvf wireless_tools.29.tar.gz
3.进入根目录,根据自己的平台更改Makefile文件,我当前使用hisiv300的如下:

设置安装路径:PREFIX = ./ #当前路径

#CC = gcc
            CC = arm-hisiv300-linux-gcc
            AR = arm
            RANLIB = arm-hisiv300-linux-ranlib
4.编译

make clean

make

make install

这样编译后的工具就会安装到指定的PREFIX目录。

二、openssl移植

openssl 下载地址:ftp://ftp.openssl.org/source/old/0.9.x/ 当然你可以根据自己的需求下载最新版本。

wpa_supplicant官方网站进行下载:http://w1.fi/releases/

当前我使用openssl-0.9.8za和wpa_supplicant-2.5

分别使用tar -xvf openssl-0.9.8za.tar.gz 和tar -xvf wpa_supplicant-2.5.tar.gz 解压到当前路径

1.打补丁

        cp wpa_supplicant-2.5/patches/openssl-0.9.8za-tls-extensions.patch openssl-0.9.8za/

        cd openssl-0.9.8za/

         patch -p1 < openssl-0.9.8za-tls-extensions.patch

        结果显示
        patching file ssl/s3_clnt.c
        patching file ssl/s3_srvr.c
        patching file ssl/ssl.h
        patching file ssl/ssl_err.c
        patching file ssl/ssl_sess.c
        patching file ssl/t1_lib.c
        patching file ssl/tls1.h
        patching file util/ssleay.num

        ./config --prefix=$PWD/out no-asm shared
        no-asm是在交叉编译过程中不使用汇编代码代码加速编译过程.原因是它的汇编代码是对arm格式不支持的

2.修改Makefile

        #CC= gcc
        #CFLAG= -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -Wa,--noexecstack -DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall
        CC= arm-hisiv300-linux-gcc
        CFLAG= -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -march=armv5 -DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall
        DEPFLAG= -DOPENSSL_NO_CAMELLIA -DOPENSSL_NO_CAPIENG -DOPENSSL_NO_CMS -DOPENSSL_NO_GMP -DOPENSSL_NO_JPAKE -DOPENSSL_NO_MDC2 -DOPENSSL_NO_RC5 -DOPENSSL_NO_RFC3779 -DOPENSSL_NO_SEED
        PEX_LIBS= 
        EX_LIBS= -ldl
        EXE_EXT= 
        ARFLAGS= 
        #AR= ar $(ARFLAGS) r
        #ARD=ar $(ARFLAGS) d
        #RANLIB= /usr/bin/ranlib
        AR = arm-hisiv300-linux-ar $(ARFLAGS) r
        RANLIB= arm-hisiv300-linux-ranlib
        NM= arm-hisiv300-linux-nm
        PERL= /usr/bin/perl
        TAR= tar
        TARFLAGS= --no-recursion --record-size=10240
        MAKEDEPPROG= gcc
        LIBDIR=lib

说明:

安装路径INSTALL_PREFIX=
INSTALLTOP=/home/lzq/hi3520d/tools/openssl-0.9.8za/out

3.编译安装

        make clean
        make
        make install

4.安装出错解决:

        smime.pod around line 272: Expected text after =item, not a number
  smime.pod around line 276: Expected text after =item, not a number
  smime.pod around line 280: Expected text after =item, not a number
  smime.pod around line 285: Expected text after =item, not a number
  smime.pod around line 289: Expected text after =item, not a number
  POD document had syntax errors at /usr/bin/pod2man line 71.

  解决方法:
  删除 pod2man文件:sudo rm /usr/bin/pod2man

三、libnl移植

下载地址:http://www.infradead.org/~tgr/libnl/

我使用的版本为libnl-1.1.tar.gz

tar -xvf libnl-1.1.tar.gz

cd libnl-1.1/

./configure  CC=arm-hisiv300-linux-gcc --prefix=$PWD/out --host=arm

make 

make install

安装路径默认在当前的 out文件夹。

四、wpa_supplicant移植

1.进入目录

cd wpa_supplicant-2.5/wpa_supplicant/

cp defconfig .config

2.更改Makefile

CC := arm-hisiv300-linux-gcc -L ../../openssl-0.9.8za/out/lib
ifndef CC
CC=gcc
 endif

添加相关链接库

CFLAGS += -I ../../libnl-1.1/out/include
CFLAGS += -I ../../openssl-0.9.8za/out/include
LIBS += -L ../../libnl-1.1/out/lib -lnl
LIBS += -L ../../openssl-0.9.8za/out/lib -lssl

#安装路径
LIBDIR := ../out/lib/
INCDIR := ../out/include/
BINDIR := ../out/sbin/
#export LIBDIR ?= /usr/local/lib/
#export INCDIR ?= /usr/local/include/
#export BINDIR ?= /usr/local/sbin/
PKG_CONFIG ?= pkg-config

3.编译安装

make clean
make
make install

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值