2017年10月26日 星期四

移植 iw 命令至 am335x

原文 http://onlybernie.blogspot.tw/2015/10/

TI Wlink 8 最新的 driver R8.6,不支援 Wireless Extentsion。所謂的 Wireless Extentsion,就是一組通用 API,要使用的話,也必須 wifi driver 有支援。所以我們另外使用 iw 來取代,TI 的 driver 有支援此命令。


iw-3.15
libnl-3.2.24

iw 需要 netlink library,所以我們先移植 libnl。進入 libnl 資料夾,打上

   source poky sdk env setup script
  ./configure --host=arm-poky-linux-gnueabi --prefix=/home/bernie/app/libnl-3.2.24

   make
   make install

   編譯 libnl 安裝完成
====================================================================

  接著不要 source poky sdk 環境,進入 iw 資料夾。打上

   export PKG_CONFIG_PATH=/home/bernie/app/libnl-3.2.24/lib/pkgconfig
   修改 Makefile 中的 CC 值

    CC=/opt/poky/1.8/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-gcc --sysroot=/opt/poky/1.8/sysroots/cortexa8hf-vfp-neon-poky-linux-gnueabi

   make
======================================================================
   error:  發現少了 libnl 的 gen.h 檔案

   solution: 修改 Makefile 的 CFLAGS,讓他增加指向
                  -I/home/bernie/app/libnl-3.2.24/include/libnl3

   make
=======================================================================
   error:
 /opt/poky/1.8/sysroots/x86_64-pokysdk-linux/usr/libexec/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.9.2/ld: error: iw uses VFP register arguments, version.o does not
/opt/poky/1.8/sysroots/x86_64-pokysdk-linux/usr/libexec/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.9.2/ld: failed to merge target specific data of file version.o
collect2: error: ld returned 1 exit status

  solution: 在 Makefile 中的  CC 變數加上 poky sdk 裡的 envsetup script 中的 CC 值即可。

編譯成功後,將 iw命令丟到目標板 /usr/sbin。

 

沒有留言: