BB-Black 内核编译并加载WL18(wifi)驱动

BB-Black 内核编译并加载WL18(wifi)驱动

这篇文章主要是将TI公司提供的官方资料(http://processors.wiki.ti.com/index.php/Using_the_WL18xx_Cape_with_BeagleBone_Black)执行了一遍。

执行命令式一定要看清它在哪个目录下去执行


操作前的准备:
1. BeagleBone Black  2.Wlink18(wifi)  3.虚拟机(我用的是Ubuntu14.04)4. 串口调试工具(我用的是Xshell)5. 一张4G大小的SD卡

BB-Black SD卡启动,SD卡内存有最新的Angstrom系统镜像文件,启动后信息如下:

image0

这步我是检测下载的最新的镜像文件(Linux 内核版本为 3.8.13)有没有正常工作,很显然没问题。


一:安装ARM交叉编译器

安装git    输入命令:sudoapt-get install git     

image1
成功标志如下:
image2

为自己配置身份信息:

输入命令:

      git config --global user.email "your@email.com"

      git config --global user.name "yourname"
image3

image4

 安装ARM交叉编译器

   输入命令:sudoapt-get install gcc-arm-linux-gnueabi

image5

image6

交叉编译器安装在了  /usr/bin/  目录下。

二:BB-Black Angstrom linux kernel(3.8.13)的构建过程

1.创建一个文件夹用来存放内核与wl18xx模块

输入命令mkdir ti-wl18xx

image7

image8

export "ti-wl18xx" as "BUILD_DIR"

输入命令export BUILD_DIR=/home/xs/ti-wl18xx

image9

路径按自己的来,我的ti-wl18xx 创建在了/home/xs/ 目录下了,所以我的BUILD_DIR=/home/xs/ti-wl18xx  。(export BUILD_DIR=/home/xs/ti-wl18xx  这个命令说白了就是用BUILD_DIR这个名字替代/home/xs/ti-wl18xx,当你想进入/home/xs/ti-wl18xx目录下时,只需输入:cd $BUILD_DIR  。这样使命令简单,不用记很长的路径名)

在/home/xs/ti-wl18xx目录下创建partial_rootfs文件夹。

输入命令mkdir -p $BUILD_DIR/partial_rootfs

image10

在/home/xs/ti-wl18xx目录下创建partial_rootfs文件夹。

输入命令 mkdir-p $BUILD_DIR/partial_rootfs

image11

export WILINK8_PARTIAL_ROOTFS_DIR to "partial_rootfs"

输入命令export WILINK8_PARTIAL_ROOTFS_DIR=$BUILD_DIR/partial_rootfs

image12

2. 下载内核源代码与WL18xx补丁,进入wl18目录下

输入命令cd$BUILD_DIR

image13

Checkout updated kernel source for Beaglebone Black frombelow github

  输入以下几个命令

  git clone git://github.com/TI-Wilink8/kernel.git

  cd kernel

  git checkout wl18xx_bbb_support

  ./patch.sh

image14

image15

image17

image17

image18

./patch.sh 命令执行完后有警告,警告的原因我也没搞清楚,但不影响使用,只要不出错误就好。

安装LZO,输入命令:sudo apt-get install lzop  (LZO  compression  is  being used  for  the uImage

image19


安装mkimage

输入命令 sudoapt-get install u-boot-tools  uboot-mkimage  14.04 版本的 ubuntu 下找不到,但是可以用 u-boot-tools 代替。 mkimage is being used forthe uImage
image20

三:编译带有WL18XX补丁的内核

Copy configs file to kernel

输入命令cp configs/beaglebone kernel/arch/arm/configs/beagleboneblack_defconfig
image21

Copy firmware.bin to kernel

image22

Building kernel and modules

  输入命令cd kernel
image23

Build the config

输入命令make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi-beagleboneblack_defconfig

这个命令在运行时有可能会出现错误,错误现象:

image24

出现错误的原因自己百度,解决方法是:修改/home/xs/ti-wl18xx/kernel/kernel/drivers/gpu/drm/tilcdc/Kconfig  配置文件,按下图所示修改(下图是已经修改好的)。

image24

修改后执行命令,错误消失,但是依然有警告。我们不用管警告,只要没错误就好。如图:

image25

Build uImage and dtb

输入命令make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j4 uImage dtbs
image26

image27


Build modules

输入命令make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j4 modules
image28

image29

Install kernel modules into rootfs

输入命令make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- INSTALL_MOD_PATH=$WILINK8_PARTIAL_ROOTFS_DIR modules_install
image30
image31

Build uImage-dtb:

输入命令make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- uImage-dtb.am335x-boneblack
image32

四:编译WL18XX相关组件过程

回到ti-wl18xx目录下,输入命令:cd $BUILD_DIR

image33

Download components and checkout appropriatecommit

下载wl18xx相关组件

1. 输入命令git clone git://github.com/TI-OpenLink/wl18xx.git

image34

进入刚刚下载好的文件夹下,输入命令: cd wl18xx

image35

在该目录下输入命令git checkout ol_r8.a7.01 -b working-branch
image36

返回ti-wl18xx目录下,输入命令cd ..
image37

以下几个命令跟上面这一个步骤基本一样,我就不传图片了。

2.输入命令git clone git://github.com/TI-OpenLink/hostap.git

     
     
进入下载的hostap目录,输入命令cd hostap

       
       
在该目录下输入命令git checkout ol_r8.a7.01 -b working-branch

         
         
返回ti-wl18xx目录下,输入命令cd ..

3.输入命令git clone git://github.com/TI-OpenLink/compat-wireless.git

         
         
进入compat-wireless目录下,输入命令cd compat-wireless
在该目录下输入命令git checkout ol_r8.a7.01 -b working-branch
返回ti-wl18xx目录下,输入命令cd ..


         
         

         
         
进入18xx-ti-utils目录下,输入命令cd 18xx-ti-utils
在该目录下输入命令git checkout ol_r8.a7.01 -b working-branch
返回ti-wl18xx目录下,输入命令cd ..

5.输入命令git clone git://github.com/TI-OpenLink/wl18xx_fw.git

         
         
进入wl18xx_fw目录下,输入命令cd wl18xx_fw
在该目录下输入命令: git checkout ol_r8.a7.01 -b working-branch
返回ti-wl18xx目录下,输入命令cd ..


         
         
6.输入命令git clone git://github.com/TI-OpenLink/wl12xx_target_scripts.git
           
           
进入wl12xx_target_scripts目录下,输入命令cd wl12xx_target_scripts
在该目录下输入命令git checkout ol_r8.a7.01 -b working-branch
返回ti-wl18xx目录下,输入命令cd ..

           
           
7.输入命令git clone git://github.com/TI-Wilink8/compat.git
进入compat目录下,输入命令cd compat
在该目录下输入命令git checkout wl18xx_bbb_support
在该目录下输入命令git reset --hard 5cc37a00cc395a59f54344b04c86aa3e322c0117
返回ti-wl18xx目录下,输入命令cd ..

五.构建系统脚本

  在ti-wl18xx目录下创建utility文件夹,并进入该文件夹下,输入命令mkdir utility && cd utility
image38

             
             
进入build_utilites目录下,输入命令cd build-utilites/你会看到有以下内容:
image39
image40

创建编译环境脚本文件,将setup-env.sample复制一份并以setup-env命名。输入命令cp setup-env.samplesetup-env

image41
对setup-env文件进行编辑,编辑后的内容如下图:
image42

输入命令sudo vi setup-env 对环境脚本文件进行编辑

image43

修改后结果如下图:

image44

修改完后,保存并退出。

 

安装corkscrew:

输入命令sudo apt-get install corkscrew
image45


下面的几个工具安装基本和上面那个基本相同我也不截图了。

安装python-m2crypto,输入命令:sudo apt-get install python-m2crypto

安装bison工具,输入命令sudo apt-get install bison

安装flex工具,输入命令sudo apt-get install flex

至于上面这几个工具的作用,可以百度一下。


编译wl18xx模块,输入命令./wl18xx_build.sh wl18xx_modules build
image46

image47

image49

将wl18xx模块安装进内核,输入命令sudo ./wl18xx_build.sh wl18xx_modules install
image48

编译WLAN-wl18xx的相关组件,

image49

1.下载libnl 输入命令./wl18xx_build.sh libnl download

image50

 编译libnl 输入命令./wl18xx_build.sh libnl build

image51
image52

安装libnl 输入命令sudo ./wl18xx_build.shlibnl install

image53
image54

2.下载openssl 输入命令./wl18xx_build.sh openssl download

编译openssl输入命令./wl18xx_build.sh opensslbuild

安装openssl 输入命令sudo ./wl18xx_build.sh openssl install

3.下载iw  输入命令./wl18xx_build.sh iwdownload

编译iw  输入命令./wl18xx_build.sh iw build

安装iw  输入命令sudo ./wl18xx_build.sh iw install

4.编译hostapd 输入命令./wl18xx_build.sh hostapd build

安装hostapd 输入命令sudo ./wl18xx_build.sh hostapd install

5.编译wpa_supplicant 输入命令./wl18xx_build.sh wpa_supplicant build

安装wpa_supplicant 输入命令sudo ./wl18xx_build.sh wpa_supplicantinstall

6.下载crda  输入命令./wl18xx_build.sh crda download

 编译crda  输入命令./wl18xx_build.sh crda build

安装crda  输入命令sudo ./wl18xx_build.sh crda install

7.编译calibrator 输入命令./wl18xx_build.sh cablibrator build

安装calibrator 输入命令sudo ./wl18xx_build.sh calibrator install

8.编译wlconf  输入命令./wl18xx_build.sh wlconf build

安装wlconf  输入命令sudo ./wl18xx_build.sh wlconf install

进入/home/xs/ti-wl18xx/ partial_rootfs 目录下,你会看到以下信息:

image55

六:将编译好的文件拷贝到SD卡中

下图所示是我的SD卡在linux下的识别信息(红点的那两个),注意一下SD卡的挂载名称可能不一样。

image56

进入/home/xs/ti-wl18xx/kernel/kernel 目录下,输入命令cd $BUILD_DIR/kernel/kernel

删除SD卡中/media/xs/Angstrom/boot  目录下的uImage文件,输入命令:rm -f /media/xs/Angstrom/boot/uImage

拷贝新的uImage文件到/media/xs/Angstrom/boot目录下,输入命令:cp arch/arm/boot/uImage /media/xs/Angstrom/boot/


copy am335x-bone.dtb to sdcard 输入命令sudocp arch/arm/boot/dts/am335x-bone.dtb /media/xs/Angstrom/boot/

copy am335x-boneblack.dtb to sdcardcp输入命令sudo cp arch/arm/boot/dts/am335x-boneblack.dtb /media/xs/Angstrom/boot/

copy kernel modules to sdcard 输入命令sudo cp -rf $WILINK8_PARTIAL_ROOTFS_DIR/lib/modules/ 3.8.13-00726-g13f520f-dirty /media/xs/Angstrom/lib/modules/

这个有点问题,网页上给的命令是cp -rf $WILINK8_PARTIAL_ROOTFS_DIR/lib/modules/3.8.13-dirty /media/Angstrom/lib/modules/     但是我的那个目录下只有这个东西:
image57

所以把3.8.13-dirty 改成3.8.13-00726-g13f520f-dirty。具体是什么,看看你的那个目录下就可以了。

image58


进入/home/xs/ti-wl18xx/ partial_rootfs目录下,输入命令cd $WILINK8_PARTIAL_ROOTFS_DIR

create aseparate folder "wl18xx_modules" on the target root filesystem andcopy compat-wireless modules in it

输入命令sudomkdir -p /media/xs/Angstrom/home/root/wl18xx_modules/
image59

     
     
输入命令cp -rf lib/modules/3.8.13-00726-g13f520f-dirty/updates/* /media/xs/Angstrom/home/root/wl18xx_modules/
image60

Finally after copy, following directories exitsunder 'wl18xx_modules' directory

image61

Copy firmware into SD card

输入命令
mkdir -p /media/xs/Angstrom/lib/firmware/ti-connectivity
 

cp -rf$BUILD_DIR/wl18xx_fw/*.bin /media/xs/Angstrom/lib/firmware/ti-connectivity

这个命令执行后,ti-connectivity文件夹下会有wl18xx-fw-2.bin这个文件,这个文件wl18xx驱动版本有点高,不适合,wlan启动不起来。不信的话,这个命令可以执行试试。直接拷贝我提供的那个wl18xx-fw-2.bin文件(http://pan.baidu.com/s/1gdGeOa3)


cpusr/sbin/wlconf/wl18xx-conf-default.bin /media/xs/Angstrom/lib/firmware/ti-connectivity/wl18xx-conf.bin

image62

image63


Copy libnl into sdcard 输入命令sudocp -rf etc/libnl/* /media/xs/Angstrom/etc/libnl

image64


Copy libnl library files into SD card 输入命令sudocp -rf lib/libnl* /media/xs/Angstrom/lib/

Copy udev rules to SD card 输入命令sudo cp etc/udev/rules.d/85-regulatory.rules /media/xs/Angstrom/etc/udev/rules.d/

Copy crda and regdbdump into SD card 输入命令sudocp -rf sbin/* /media/xs/Angstrom/sbin/

Copy crda regulatory.bin into SD card 输入命令sudocp -rf usr/lib/crda /media/xs/Angstrom/usr/lib/

Copy crda man page into SD card 输入命令sudo cp -rf usr/share/man/man8 /media/xs/Angstrom/usr/share/man/

Copy iw into SD card 输入命令sudocp usr/sbin/iw /media/xs/Angstrom/usr/sbin/

Copy wpa_supplicant into SD card 输入命令sudocp usr/local/sbin/wpa_supplicant /media/xs/Angstrom/usr/sbin/

Copy hostapd into SD card 输入命令sudocp -rf usr/local/bin/hostapd /media/xs/Angstrom/usr/sbin/


将SD卡拔出,插入到BB-Black插槽中,上电启动,启动完成后的信息如下图:

image65

这时你会看到WL18(WIFI)的板子上有个蓝灯(LED1)会亮起来。这就说明WL18板成功驱动起来了。下面进行WIFI的连接测试:


dmesg这个命令我执行过,出不来他显示的信息,可能是因为我删除过它里面的一个东西,但不影响使用。

下面启动WIFI输入以下命令

ifconfig eth0 down

ifconfig wlan0 up

iw wlan0 scan |grep SSID

image67

image68

SSID是检测到的无线网 输入命令:

iw wlan0 connect TP-LINK_QIU1

iw wlan0 link

image69


输入命令: udhcpc -i wlan0

image70

连接上后,获得的IP地址,输入:ifconfig 查看IP地址信息。可以看到路由器给我的板子分配的IP地址为192.168.1.120:image71


现在就可以上网了,ping一下路由,输入命令ping 192.168.1.1
image72

可以ping通,至此我们的BB-Black+Wl18组成的网关就可以上网了。



























 
 




 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值