硬件环境
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
硬件环境:ARM板-友善之臂mini2440
软件环境:买的时候光盘上带的Linux 2.6.13源码
主机编译环境: arm-linux-gcc 3.4.5,scrabox
过程:
1. 搭建编译环境,按照嵌入式Linux应用开发完全手册上(韦东山编著)讲的,一种是直接用arm-linux-gcc,设置环境变量,编译软件的时候需要修改源代码中的makefile,或者如果源代码支持,可以指定--host=arm-linux,这种方法我在编译rtorrent的时候,总是遇到不能找到对应的库等,搜索好久都没搞定,就放弃了,改用第二种方法,使用scratchbox,成功编译出了transmission和rtorrent.
2. 编译transmission:
需要源码包:curl-7.16.3.tar.bz2
openssl-0.9.8d.tar.gz
transmission-1.52.tar.bz2
openssl:
[sbox-arm: ~/transmission] > ./Configure --prefix=/usr shared --openssldir=/usr/openssl linux-generic32 -DL_ENDIAN
[sbox-arm: ~/transmission] > make
[sbox-arm: ~/transmission] > make install
curl:
[sbox-arm: ~/transmission] > ./configure --prefix=/usr
[sbox-arm: ~/transmission] > make
[sbox-arm: ~/transmission] > make install
transmission:
[sbox-arm: ~/transmission] > ./configure --prefix=/usr
[sbox-arm: ~/transmission] > make
[sbox-arm: ~/transmission] > make install
成功编译安装后,在/usr/bin下面就有了transmission-daemon,transmission-remote,transmissioncli
/usr/share下面有transmission文件夹,里面放的是web控制页面相关信息,把这些文件拷贝到arm板上去.
再把curl和openssl生成的依赖库文件也拷贝进去,就可以运行了.
为了简单的知道curl和openssl生成了哪些库文件,可以在前面指定prefix的时候指定一个临时目录,然后make;make install的时候会安装到临时目录里面,就可以知道生成哪些库文件了.
3. 编译rtorrent.
过程类似,需要源码包libsigc++-2.1.1.tar.bz2
ncurses.tar.gz (5.6版本就可以)
openssl-0.9.8d.tar.gz
libtorrent-0.12.4.tar.gz
rtorrent-0.8.4.tar.gz
编译类似,就是指定前缀--prefix=/usr就可以了,最后在编译rtorrent的时候,会出现一个segment错误的情况,要修改一下src/rpc/command.h文件。
参考这里:http://libtorrent.rakshasa.no/attachment/ticket/1271/rt_triple.patch 就是:删除第76,77行
template
rt_triple(const std::pair& b) : base_type(b), third() {}
改成rt_triple(const base_type& b) : base_type(b), third() {}
删除79行的template
这个是0.8.2的行数,0.8.4行数稍微不同.
编译后会生成rtorrent应用程序.
4. 因为我一般是在windows下面放下载的高清电影的,所以还想让支持NTFS分区,网上查了下,一般用ntfs-3g.
源码包:fuse-2.7.4.tar.gz
ntfs-3g-2009.4.4.tgz
英文fuse编译的时候需要内核头文件的支持,所以我就没有在scratchbox里面编译,而改为在外面用交叉编译环境编译。
编译的时候指定 ./configure --host=arm-linux --enable-kernel-module --with- kernel=/你的内核头文件所在地方
将生成的fuse.ko可以在arm上用insmod加载
然后用/usr/ntfs/bin/ntfs-3g /dev/sdc1 /mnt/ 挂载ntfs分区就可以了。
具体可以参考这里/u2/88438/showart_1755011.html 5. 实际在mini2440上跑的时候,发现下载时,ntfs-3g占用太多cpu,特别是在异常关机重启后transmission hash下载的数据时,基本上连transmisson-remote都连不上了,不是很实用,看来为了高速下载,只能下到ext分区了,完了再在主机上拷贝到ntfs分区上,稍微麻烦一点.