2017年10月26日 星期四

移植 WG7833 最新 driver 至 kernel 3.14.49

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



http://processors.wiki.ti.com/index.php/WL18xx_System_Build_Scripts

上面是 wl18xx 的 build code script,TI 說最簡單的方法就是使用它們....,但是因為我的

 filesystem 以及 toolchain 不是用官方的....,所以不能一次 build 完所有 wifi 所需要的 tool 和

 library。對我來說還滿麻煩的,因為我 libnl 、iw、openssl、wpa_supplicant 必須額外抓

 source code 來移植到板子上。

  iw - 3.15
  iw 使用的 libnl-3.2.24
  wpa_supplicant - 2.0
  wpa_supplicant 使用的 openssl-1.0.1h
  wpa_supplicant 使用的? (網路上好像沒說需要 libnl) libnl-1.1.4

  =====================================================================

1  用 TI build script 來 build 出 wifi modules: compat.ko、cfg80211.ko、mac80211、
    wlcore.ko、wl18xx.ko 以及 wlcore_sdio.ko。

    mkdir wl18xx
    cd wl18xx
    git clone git://git.ti.com/wilink8-wlan/build-utilites.git
    cp setup-env.sample setup-env
    vim setup-env

             export TOOLCHAIN_PATH=/opt/poky/1.8/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi
             export ROOTFS=/opt/poky/1.8/sysroots/cortexa8hf-vfp-neon-poky-linux-gnueabi
             export KERNEL_PATH=/home/bernie/kernel-source
             export KERNEL_VARIANT=DEFAULT
             export CROSS_COMPILE=arm-poky-linux-gnueabi-
             export ARCH=arm

     先確認 verify_kernel_config.sh 內的 CONFIG 在你的 kernel 內有沒有選取,沒有的話要記得 enable,並且 kernel 要先 build 過。

     ./sudo_build_wl18xx.sh modules

     在 build code 中,會出現一些 error,原因是 toolchain 版本問題,我的是 4.9.2,會無法識別__TIMESTAMP__問題,只要用常數取代即可。另外,得到的 wlcore_sdio.ko要載入時,會出現 time_sync error,因為它程式內寫死用 gpio66,我們並沒有gpio66,所以到 compat_wireless/drivers/net/wireless/ti/wlcore/main.c 將 time_sync 內相關的 code 註解掉即可。

沒有留言: