A33芯片+Linux3.4内核+ap6210wifi模块

A33芯片+Linux3.4内核+ap6210wifi模块
开发板:全志a33-Vstar-dragonboard
linux:3.4内核
Ubuntu:16.04_amd64 & 16.04_i386 (wpa_supplicant在64位上编译没通过,可能是环境问题,最终在32位机上编译成功)
功能:开发板通过WiFi模块与Ubuntu连接同一路由,构成局域网,分别运行服务器和客户端程序,实现数据交换

一、为全志官方A33_vstar_linux.tar.gz2 搭建编译环境

  1. Ubuntu-16.04-amd64 上环境搭建
        首先备份自己的源:cp /etc/apt/sources.list /etc/apt/sources.list.old
        打开sources.list 文件,修改:vi /etc/apt/sources.list
        删除全部内容后,添加网易的源:
      deb http://mirrors.163.com/ubuntu/ precise main universe restricted multiverse
      deb-src http://mirrors.163.com/ubuntu/ precise main universe restricted multiverse
      deb http://mirrors.163.com/ubuntu/ precise-security universe main multiverse restricted
      deb-src http://mirrors.163.com/ubuntu/ precise-security universe main multiverse restricted
      deb http://mirrors.163.com/ubuntu/ precise-updates universe main multiverse restricted
      deb http://mirrors.163.com/ubuntu/ precise-proposed universe main multiverse restricted
      deb-src http://mirrors.163.com/ubuntu/ precise-proposed universe main multiverse restricted
      deb http://mirrors.163.com/ubuntu/ precise-backports universe main multiverse restricted
      deb-src http://mirrors.163.com/ubuntu/ precise-backports universe main multiverse restricted
      deb-src http://mirrors.163.com/ubuntu/ precise-updates universe main multiverse restricted
      
        保存退出之后,跟新一下,使网易的源生效:apt-get update
      2. 安装Uboot镜像制作工具
        在官方源上找不到这个软件包,网易上有:apt-get install uboot-mkimage
        
      3. 安装编译环境所需要的库
        apt-get install
        git gnupg flex bison gperf build-essential
        zip curl libc6-dev libncurses5-dev x11proto-core-dev
        libx11-dev:i386 libreadline6-dev:i386
        libgl1-mesa-glx-lts-quantal:i386 libgl1-mesa-dev-lts-quantal
        g+±multilib mingw32 tofrodos lib32ncurses5-dev
        python-markdown libswitch-perl libxml2-utils xsltproc zlib1g-dev:i386
        注:lib32ncurses5-dev 这是32位运行库,有可能找不到软件包,自行百度解决。
        创建库的链接:
          ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
          
      4. 编译器的安装与配置(非必需)
      注:安装完Ubuntu-16.04-amd64之后,先查看一下GCC 的版本,gcc -v

我的是 5.4.0 比要求的 4.4.7 高,所以没有安装,可正常编译。
  低于4.4.7版本请自行验证
  安装GCC:
    apt-get install gcc-4.4 g+±4.4 g+±4.4-multilib
  
  配置GCC:
    mv -f /usr/bin/gcc /usr/bin/bak_gcc
    mv -f /usr/bin/g++ /usr/bin/bak_g++
    ln -s /usr/bin/gcc-4.4 /usr/bin/gcc
    ln -s /usr/bin/g+±4.4 /usr/bin/g++
  
二、编译全志A33官方SDK

  1. 解压官方SDK包,复制到a33_linux文件夹下
        tar -vxf A33_vstar_linux.tar.bz2
        
      2. 使用默认配置
        cd a33_linux/dragonboard/linux-3.4/
        cp a33_vstar_defconfig .config
        
      3. 编译参数
        cd …
        ./build.sh config

4. 编译系统
    ./build.sh

出现以上内容,代表编译成功
  
  5. 编译uboot,SDK默认不编译
    cd a33_linux/dragonboard/brandy/u-boot-2011.09
    make distclean
    make sun8iw5p1_config
    make -j4
    出错可以不带 -j4 ,主要是为了多线程编译,提高编译效率

出现以上内容,即代表uboot编译完成。
  
  6. 镜像打包
    ./build.sh pack

按照提示的路径找到 .img 镜像文件,烧录到开发板。
-----------------------至此,全志官方SDK已全部编译完成,接下来开始WiFi模块移植------------------------------------
  
ap6210 WiFi模块移植
根据A33官方文档,开发板上搭载的ap6210模组使用SDIO接口,802.11b/g/n 协议,支持Station、Softap、wifi direct 功能。
官方SDK在编译时会默认编译所有的 realtek wifi 驱动,会造成生成的镜像体积很大。
    所以:在进入 a33_linux/dragonboard/linux-3.4 之后
    make ARCH=arm menuconfig
    【】Networking support —>
    < > Bluetooth subsystem support —> 取消选中
    < > RF switch subsystem support —> 取消选中
    Wireless —>
      <
> cfg80211 - wireless configuration API
      [ * ] nl80211 testmode command //这个选项要选上,协议支持的原因
    Device Drivers —>
      Network device support —>
        Wireless LAN —>
           Broadcom 4329/30 wireless cards support
            此项会生成 /system/vendor/modules/fw_bcmxxx.bin和 /system/vendor/modules/nvram_apxxxx.txt
            Interrupt type (Out-of-Band Interrupt)—>
              < > Low level trigger for OOB interrupt 此项是否打开取决于 原理图 中,模组的 WL-WAKE-HOST 脚
                  与主控中间是否接反相器,若有则选中,实际中并没有看到这个选项。
若要实现WiFi工作于AP模式,即作热点,需要把 IEEE 802.11 for Host AP (Prism2/2.5/3 and WEP/TKIP/CCMP)选上。

执行:make
  之后再对内核进行编译 ./build.sh
  
• WiFi模块移植
  1. 新建文件夹 WiFi_AP
  2. 下载OpenSSL下载地址 https://www.openssl.org/source/old/,在这里我所下载的版本是openssl-1.0.2l.tar.gz 下载地址https://www.openssl.org/source/old/1.0.2/openssl-1.0.2l.tar.gz ,将下载到的文件拷贝到WiFi_AP,并解压。
  3. 下载libnl,下载地址http://www.infradead.org/~tgr/libnl/,在这里我所下载的版本是libnl-1.1.4.tar.gz 下载地址http://www.infradead.org/~tgr/libnl/files/libnl-1.1.4.tar.gz 将下载到的文件拷贝到WiFi_AP,并解压。
  4. 最好手动下载hostap,在线克隆的版本可能会比较高,有时会出现一些问题,所以手动下载hostap1.0,编译通过。
  5. 下载dnsmasq,http://www.thekelleys.org.uk/dnsmasq/dnsmasq-2.75.tar.gz ,将下载到的文件拷贝到WiFi_AP,并解压。
  6. 下载wpa_supplicant-0.7.3,http://w1.fi/releases/wpa_supplicant-0.7.3.tar.gz
  
  注:使用WiFi模块搭建热点AP模式,需要 libnl 和 openssl 库支持,即libnl+openssl+hostap
  
  
  ------------------------在32位环境下----------------------------
编译OpenSSL
  1、进入openssl 目录:cd WiFi_AP/openssl-1.0.2l
  2、配置openssl:./config no-asm shared --prefix=$(pwd)/__install
  
    no-asm: 是在交叉编译过程中不使用汇编代码代码加速编译过程,原因是它的汇编代码是对arm格式不支持的。
    shared :生成动态连接库。
    --prefix :指定make install后生成目录的路径,不修改此项则默认为OPENSSLDIR目录(/usr/local/ssl)。
  3、修改Makefile:
  (1)修改编译工具CC=/home/fan/tool_chain/external-toolchain/bin/arm-linux-gnueabi-gcc交叉编译工具链路径
  (2)删除 CFLAG= 中的-m64
  (3)将AR= ar $(ARFLAGS) r改为AR= /home/fan/tool_chain/external-toolchain/bin/arm-linux-gnueabi-ar ( A R F L A G S ) r     ( 4 ) 将 R A N L I B = / u s r / b i n / r a n l i b 改 为 R A N L

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值