Chinaunix首页 | 论坛 | 博客
  • 博客访问: 299035
  • 博文数量: 40
  • 博客积分: 2500
  • 博客等级: 少校
  • 技术积分: 535
  • 用 户 组: 普通用户
  • 注册时间: 2009-02-17 14:08
文章分类

全部博文(40)

文章存档

2011年(1)

2010年(10)

2009年(29)

我的朋友

分类: LINUX

2009-05-03 12:43:57

硬件环境: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文件。
参考这里:
就是:删除第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分区就可以了。
具体可以参考这里 http://blog.chinaunix.net/u2/88438/showart_1755011.html

5. 实际在mini2440上跑的时候,发现下载时,ntfs-3g占用太多cpu,特别是在异常关机重启后transmission hash下载的数据时,基本上连transmisson-remote都连不上了,不是很实用,看来为了高速下载,只能下到ext分区了,完了再在主机上拷贝到ntfs分区上,稍微麻烦一点.
                



阅读(5978) | 评论(4) | 转发(0) |
给主人留下些什么吧!~~

cltnet2010-03-03 17:06:52

想问问transmission如何调试,查看日志信息。谢谢

cltnet2010-03-03 16:59:09

你好,我交叉编译transmission在mipsel下面是用, 执行transmissioncli *.torrent后出现 Transmission 1.91 (10268) - http://www.transmissionbt.com/ 就没有反应了 我在X86下面安装transmission是可以下载的,移植到mips下面怎么可以看到日志信息呢?

chinaunix网友2009-08-31 22:55:17

试试这里: https://forum.openwrt.org/viewtopic.php?id=12723

chinaunix网友2009-08-25 13:45:28

你好,我最近也在做rtorrent的移植,开发板是arm9,我已经把rtorrent移植到板子上,但是启动rtorrent的时候,提示错误:Error opening terminal: xterm.也就是rtorrent的运行需要终端程序的支持,我的板子上没有xterm,所以,我想知道你是怎么让rtorrent在板子上正常启动的,谢谢!