在Linux下用buildroot搭建mips/arm的交叉编译平台
在Linux下用buildroot搭建mips/arm的交叉编译平台
这个编译环境是不能编译for开源无线路由器的程序的,因为内核是2.6的
建议参考这篇: http://www.felix021.com/blog/read.php?1467
前两天买了NetGear WRT614 V9,搭载的是Broadcom的200MHz MIPS处理器。
由于使用的是开源操作系统Linux,所以可以刷网上一些NB的固件,比如dd-wrt, tomato, openwrt ...
于是决定把武大校园网的newstar ( felicia修改自superstar修改自mystar ) 集成进去。
想要自己编译newstar,就必须搭建一个交叉编译(cross-compile)平台
也有一种说法是cross compile toochain,交叉编译工具链
反正一个意思:就是能在你现在用的机器上(一般是x86)编译出mips架构的目标代码,很NB。
网上搜了一下,发现有一个好东西阿,它的名字是buildroot
它把制作交叉工具链的整个过程都包干了,你只要选择你想要什么东西就好了
详细介绍和使用见 http://buildroot.uclibc.org/buildroot.html
下面是我的搭建过程:
0. 先安装需要安装的东西
包括: build-essential bison flex ...
# sudo apt-get install build-essential bison flex
1. 下载buildroot
我下载的是最新的版本
http://buildroot.uclibc.org/downloads/snapshots/buildroot-snapshot.tar.bz2
当然你也可以在这里找早期的版本 http://buildroot.uclibc.org/downloads/snapshots/
我把它放在了 /cross 这个目录下面,你可以自己选择,但是下面都以 /cross 为例。
2. 打开terminal,解压buildroot
# su root //然后输入密码
# mkdir /cross
# cd /cross
# mv /{你把它放在哪里了?}/buildroot-snapshot.tar.bz2 ./
# tar jxvf buildroot-snapshot.tar.bz2 //得到 /cross/buildroot 目录
# cd buildroot
3. 配置你需要的东西
# make menuconfig //然后看到了熟悉的界面了吧~~和编译Kernel的一样噢~~
在Target Architecture里面,选择MIPS (当然,你也可以选择ARM,下面还是以MIPS为例 =.=)
在Toolchain里面选上你需要的编译工具,比如g++(编译newstar需要g++),是
[ ] Build/install c++ compiler and libstdc++?
移动到上面,按一下空格,就会变成
[*] Build/install c++ compiler and libstdc++?
全部确定OK以后选择Exit,点击YES,程序会自动生成一个.config文件
p.s. 建议不要加入对jffs2的支持(默认没有),因为我这里出现编译错误,有个函数没
相关文档:
例一:发送Signaling Packet:
Signaling Command是2个Bluetooth实体之间的L2CAP层命令传输。所以得Signaling Command使用CID 0x0001.
多个Command可以在一个C-frame(control frame)中发送。
如果要直接发送Signaling Command.需要建立SOCK_RAW类型的L2CAP连接Socket。这样才有机会自己填充Command Code,Identi ......
Service Discovery Protocol(SDP)提供一种能力,让应用程序有方法发现哪种服务可用以及这种服务的特性。
服务发现协议(SDP或Bluetooth SDP)在蓝牙协议栈中对蓝牙环境中的应用程序有特殊的含意,发现哪个服务是可用的和确定这些可用服务的特征。SDP定义了bluetooth client发现可用bluetooth server服务和它们的特征的方法。 ......
dd 是 Linux/UNIX 下的一个非常有用的命令,作用是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。
dd 的主要选项:
指定数字的地方若以下列字符结尾乘以相应的数字:
b=512, c=1, k=1024, w=2, xm=number m
if=file
输入文件名,缺省为标准输入。
of=file
输出文件名,缺省为标准输出。
ibs=bytes
一 ......
有时候nginx,apache,mysql,php编译完了想看看编译参数可以用以下方法
nginx编译参数:
#/usr/local/nginx/sbin/nginx -V
CODE:
nginx version: nginx/0.6.32
built by gcc 4.1.2 20071124 (Red Hat 4.1.2-42)
configure arguments: --user=www --group=www --prefix=/usr/local/nginx/ --with-http_stub_status_mo ......
对于国内的Linux用户,经常烦恼的一个问题是:系统常常在需要显示中文的时候却显示成了乱码,而由于某些原因,需要英文界面的系统的时候,却苦于系统不能正常输入和显示中文.另外,由于大部分主要Linux发行版都是以英语为主体的,英文界面的系统和应用程序不管在界面的美观程度和稳定程度上都比中文的略好一些,各种奇怪的BUG也要少 ......