Chinaunix首页 | 论坛 | 博客
  • 博客访问: 285028
  • 博文数量: 91
  • 博客积分: 1772
  • 博客等级: 上尉
  • 技术积分: 930
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-17 19:49
文章分类

全部博文(91)

文章存档

2012年(1)

2011年(36)

2010年(50)

2008年(4)

我的朋友

分类: LINUX

2010-07-26 17:55:47

嵌入式arm linux蓝牙文件传输移植 收藏http://blog.csdn.net/feiyinzilgd/archive/2010/02/09/5303149.aspx document.body.oncopy = function () { if (window.clipboardData) { setTimeout(function () { var text = clipboardData.getData("text"); if (text && text.length > 300) { text = text + "\r\n\n本文来自CSDN博客,转载请标明出处:" + location.href; clipboardData.setData("text", text); } }, 100); } } function StorePage() { d = document; t = d.selection ? (d.selection.type != 'None' ? d.selection.createRange().text : '') : (d.getSelection ? d.getSelection() : ''); void (keyit = window.open('' + escape(d.title) + '&u=' + escape(d.location.href) + '&c=' + escape(t), 'keyit', 'scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes')); keyit.focus(); } 嵌入式arm linux蓝牙文件传输移植 目前,蓝牙技术已经比较成熟,特别是基于手机和PC得蓝牙文件传输。 本文主要讲述基于嵌入式arm linux的蓝牙文件传输。      现行2.6.x的linux内核都已经集成了bluez蓝牙驱动,对于2.4版本内核的需要到bluez官方网站下载并安装bluez蓝牙驱动。    本为基于2.6版本的内核讲述。对于2.4下载bluez后安装即可。有了bluez蓝牙驱动还需要安装bluez-libs库和bluez-utils 工具    蓝牙文件传输应用开发分为2部分,On  pc  和on ARM。    我用linux系统配置    fedora 9    内核版本 2.6.25    gcc:4.0.0 做嵌入式开发用新版本的内核总是会遇到很多问题。2.6.11的内核比较适合做嵌入式开发。      首先:在pc上安装bluez-libs库和bluez-utils工具。    1,在bluez官方网站下载bluez-libs和bluez-utils 我下载的是bluez-libs-3.36和bluez-utils-3.36。 2.编译PC的linux内核 view plaincopy to clipboardprint?#cd /usr/src/kernels/2.6.25-14.fc9.i686/  #make menuconfig  Networking -->                Bluetooth subsystem support-->                         L2CAP protocl support                         SCO links support                         RFCOMM protocol support                        [*] RFCOMM TTY support                         BENP protocol support                        [*] Multicast filter support                        [*] Protocol filter support                         CMTP protocol support                         HIDP protocol support                            Bluetooth devices drivers-->                                  HCI USB driver  #cd /usr/src/kernels/2.6.25-14.fc9.i686/ #make menuconfig Networking --> Bluetooth subsystem support--> L2CAP protocl support SCO links support RFCOMM protocol support [*] RFCOMM TTY support BENP protocol support [*] Multicast filter support [*] Protocol filter support CMTP protocol support HIDP protocol support Bluetooth devices drivers--> HCI USB driver 3.安装libs和utils。 libs和bluez得安装都是安装linux软件正常方式安装    安装libs view plaincopy to clipboardprint?#tar xzvf bluez-libs-3.36.tar.gz  #cd bluez-libs-2.25  #./configure  #make  #make install  #tar xzvf bluez-libs-3.36.tar.gz #cd bluez-libs-2.25 #./configure #make #make install 注意:如果你是fedora 9或者是内核是2.6.25及以上的版本在安装utils的时候会出现某些文件没有或者是参数没定义的问题。    第二,移植libs库和utils工具到arm开发板 我的开发板配置: linux内核:2.6.29(主要是我的开发板自带内核带了很多工具,如果换底版本的内核的话,会比较麻烦,所以就是用了其自带核) arm-linux-gcc:4.3.2 我把所有的压缩包都放在了/opt/arm/下,我下面讲述的都是针对这个目录下。大家可以针对自己的喜好来选择目录       1,安装交叉编译工具arm-linux-gcc view plaincopy to clipboardprint?#tar xzvf arm-linux-gcc /usr/local  #vi /root/.bashrc         # .bashrc                 # User specific aliases and functions                 alias rm='rm -i'         alias cp='cp -i'         alias mv='mv -i'                 # Source global definitions        if [ -f /etc/bashrc ]; then                . /etc/bashrc        fi               export PATH=$PATH:/usr/local/arm/4.3.2/bin  #tar xzvf arm-linux-gcc /usr/local #vi /root/.bashrc # .bashrc # User specific aliases and functions alias rm='rm -i' alias cp='cp -i' alias mv='mv -i' # Source global definitions if [ -f /etc/bashrc ]; then . /etc/bashrc fi export PATH=$PATH:/usr/local/arm/4.3.2/bin 2,解压编译配置内核     由于我使我开发板光盘自带的内核源码,所以不需要修改源码中的Makefile。如果是从网上下载的内核源码,在编译的时候需要修改Makefile。需 要对 view plaincopy to clipboardprint?#tar xzvf linux-2.6.29  #cd linux-2.6.29  #make menuconfig  #tar xzvf linux-2.6.29 #cd linux-2.6.29 #make menuconfig 配置内核的时候,需要把蓝牙的部分配置加上去。 然后就开始交叉编译内核。 view plaincopy to clipboardprint?#make zImage  #make zImage 3.移植bluez-libs. 创建一个文件夹用来安装libs,然后交叉编译,并安装,流程如下: 我是把所有的都安装包都放在/opt/arm下,可根据自己的情况自己选择。 交叉编译的libs库和utils分别安装在/opt/arm/libs和/opt/arm/utils view plaincopy to clipboardprint?#cd /opt/arm  #mkdir libs  #tar xzvf bluez-libs-2.25.tar.gz  #cd bluez-libs-2.25  #./configure --prefix=/home/libs --target=arm-linux CC="arm-linux-gcc" --build=arm-linux  --host=arm-linux  #vi config.h  加入以下内容:  #ifndef UCHAR_MAX  #define UCHAR_MAX 256  #endif     #ifndef USHRT_MAX  #define USHRT_MAX 65536  #endif     #ifndef PATH_MAX  #define PATH_MAX 4095  #endif  #cd /opt/arm #mkdir libs #tar xzvf bluez-libs-2.25.tar.gz #cd bluez-libs-2.25 #./configure --prefix=/home/libs --target=arm-linux CC="arm-linux-gcc" --build=arm-linux --host=arm-linux #vi config.h 加入以下内容: #ifndef UCHAR_MAX #define UCHAR_MAX 256 #endif #ifndef USHRT_MAX #define USHRT_MAX 65536 #endif #ifndef PATH_MAX #define PATH_MAX 4095 #endif 然后就:wq保存。 在命令行输入 view plaincopy to clipboardprint?#cd /opt/arm/bluez-libs-2.25  #export PKG_CONFIG_PATH=/usr/lib/pkgconfig  #make  #make install  #cd /opt/arm/bluez-libs-2.25 #export PKG_CONFIG_PATH=/usr/lib/pkgconfig #make #make install 交叉编译utils工具。 view plaincopy to clipboardprint?#cd /opt/arm  #tar xzvf bluez-utils-2.25  #cd bluez-utils-2.25  #./configure --prefix=/opt/arm/utils --includedir=/opt/arm/libs/include --libdir=/opt/arm/libs/lib --with-bluez=/opt/arm/libs  --disable-test --disable-cups --disable-pcima  --host=arm-linux --target=arm-linux --build=i686  CC="arm-linux-gcc"  然后修改config.h  #cd /opt/arm/utils/  #vi config.h  在config.h末尾加入以下内容     ifndef UCHAR_MAX  define UCHAR_MAX 256  endif     ifndef USHRT_MAX  define USHRT_MAX 65536  endif     ifndef PATH_MAX  define PATH_MAX 4095  endif  然后保存  #pwd  /opt/arm/utils  #make  #make install  #cd /opt/arm #tar xzvf bluez-utils-2.25 #cd bluez-utils-2.25 #./configure --prefix=/opt/arm/utils --includedir=/opt/arm/libs/include --libdir=/opt/arm/libs/lib --with-bluez=/opt/arm/libs --disable-test --disable-cups --disable-pcima --host=arm-linux --target=arm-linux --build=i686 CC="arm-linux-gcc" 然后修改config.h #cd /opt/arm/utils/ #vi config.h 在config.h末尾加入以下内容 ifndef UCHAR_MAX define UCHAR_MAX 256 endif ifndef USHRT_MAX define USHRT_MAX 65536 endif ifndef PATH_MAX define PATH_MAX 4095 endif 然后保存 #pwd /opt/arm/utils #make #make install 由于蓝牙配对时有一个passcode或者是pin.当蓝牙设备A向蓝牙设备B发出连接请求时,A会想B发出一个配对密码,只有当B向A发送相同的 配对密码后才会建立连接。这个发送配对密码是通过/utils/etc/bluetooth/hcid.conf的配置来完成的 view plaincopy to clipboardprint?#vi /utils/etc/bluetooth/hcid.conf  #vi /utils/etc/bluetooth/hcid.conf 到此,libs和utils工具都已经交叉结束。需要一直的libs库和utils工具都在/opt/arm/libs和/opg/arm /utils下了。 接下来要做的就是重做文件系统 将开发板光盘自带的文件系统压缩包复制到/opt/arm下 view plaincopy to clipboardprint?#cd /opt/arm  #tar xzvf root.tar.gz  #cd ..  #cd libs  #ls  include lib  ..(还有其他的目录或者文件夹)  #cd lib  #pwd  /opt/arm/libs/lib  将此 lib下的所有文件都复制到上面加压的文件系统的/usr/lib和/usr/local/lib中。  #cd /opg/arm/utils  #ls    bin  sbin   etc  将此处的 bin和sbin里面的所有文件复制到上面解压的文件系统的/usr/bin、/usr/sbin  #cd ..  #cd etc  #pwd  /opt/arm/utils/etc  #cp -rif bluetooth  /opt/arm/root/etc  
阅读(1715) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~