r6300v2梅林固件7.4装的transmission异常退出和aria2怎么导入旧pt资源问题

ERROR 404 - Not Found!
发生以下错误:
您打开的地址出错,先不要关闭本页,可能原因和解决办法如下:
第一种原因:链接地址中有大写字母,改成小写即可,譬如Forum 改成 forum;
第二种原因:复制地址栏里面“tid=”后面的那串数字(譬如tid=161324,那就只要复制161324),然后点击下面链接打开本论坛,在论坛内打开任意一个帖子,将刚才复制的数字覆盖当前地址栏内“tid=”后面的数字,即可打开你需要浏览的网页。如果你打开的任意帖子地址栏内没有“tid=xxxxxx”这种字符段、而是“thread-xxxxxx-1-1.html”那么只要用先前复制的数字去覆盖“xxxxxx”数字段即可。在dd-wrt(R6300v2)上使用aria2远程下载QQ旋风离线资源
在dd-wrt(R6300v2)上使用aria2远程下载QQ旋风离线资源
前段时间买了 netgear 的电磁炉
R6300v2,买之前就打算刷dd-wrt,不过回来后先尝试了下官方固件自带的脱机下载,完全稀烂,大部分的 torrent
文件都不能用,于是果断刷 KONG 大的&,刷完后先装了远程迅雷,这个教程已经非常多了,照着做安装非常简单,但是很遗憾我没有迅雷会员,没有离线加速的迅雷下载慢如龟速……因为一直有QQ会员因此早就转投旋风,于是想到如果能在
R6300 上像用迅雷一样用旋风该多好。
说干就干,安装过程记录如下。路由器的先期设置可以参考,如果已经成功安装了远程迅雷,那么下面的过程应该也没什么难度。
1. 体验dd-wrt的opkg
要做远程下载,首先得有个下载工具,像迅雷一样已经编译好的 dd-wrt
版QQ旋风显然是没有了,那只能用别的工具替换,而且为了使用离线下载工具必须支持指定 Cookie,还需要支持远程管理,于是 aria2
登场!&是命令行环境下很好用的一个下载工具,支持多源/协议下载,还有方便的远程管理功能,于是在
R6300 上装一个 aria2 成了第一个任务。
首先看下 dd-wrt 自带的 opkg 软件列表中是否有 aria2,如果有,一切就简单了。先 SSH
连接到路由器上,用什么终端都可以,其他安装迅雷的教程里经常推荐用 putty,我自己用。
按照 KONG 大的
rom&里的说明,使用 opkg 安装软件首先要把 /opt
目录挂载到一个分区上,可以挂到 /jffs
上,也可以挂到移动硬盘上,我选择了移动硬盘,登录路由器后执行下面的命令就完成了第一步。
mount /mnt/sda1/ /opt
运行命令&bootstrap&安装
opkg,稍等片刻就完成了安装 opkg。执行命令&opkg
list,可以查看 opkg 支持安装的所有软件,可以看到支持的常用软件还是很多的,python、php、mysql
什么的都有,可惜就是没有 aria2!如果想安装其他软件,用&opkg
install &命令就可以完成。
没办法,只能自己动手编译一个了。
2. 准备编译环境
因为 aria2 的源码是 C++ 的,因此要编译 aria2 首先要有 aria2 的源代码和 R6300v2 的 dd-wrt
可用的 C++ 编译器。aria2 的源码好办,官网就可以下载,但是编译器成了问题,从 KONG 大的 dd-wrt
发布网站上没有找到编译器相关的资料,唯一的线索是在 change log 的版本 Build 24500
中提到过一句,说为了提高性能并减少内存占用,系统的 libc 库已经从 uclib 转为 musl,加上 R6300 的 CPU 是
arm 架构,因此找一个 musl 的 arm 交叉编译器应该就可以解决问题。
Google 了一下,找到了,由好心人 GregorR 建立的 musl
交叉编译器的专门站点,当中提到的如何造一个交叉编译器出来的内容就不管它了,直接用里面提供的现成已建好的编译器,所有版本的编译器都可以在这个上下到。
根据我们的需要,下载 arm 版本的交叉编译器即可。另外在编译环境方面,我这里使用的操作系统是 Ubuntu 14.04.1
64bit server版,放在虚拟机里跑的,其他 linux 发行版也类似。还有编译过程依赖的
patch、gcc、make、wget,都是平时linux常用的程序,没有的话拿 apt-get 给装上就行。
有了编译器和环境,就可以正式开始编译 dd-wrt 可用的 aria2 了。
3. 编译aria2
从上面提到的 Google Drive 地址上下载
crossx86-arm-linux-musleabi-1.1.2.tar.xz 编译器压缩包;
把交叉编译器从压缩包里用 tar
解压出来,随便丢在什么地方(我放在 /home/esonic/arm-linux-musleabi/
下),然后把编译工具目录加到环境变量里去:
export PATH=/home/esonic/arm-linux-musleabi/bin:$PATH
根据官网的描述,编译 aria2 需要
c-ares、libxml2、openssl、sqlite、zlib 这几个库,所以要先下载编译这些库,首先创建所需目录:
cd ~; mkdir -p aria2/ cd aria2/ mkdir c-ares libxml2
openssl sqlite zlib
下载所需的库和 aria2:
wget --prefer-family=IPv4 http://zlib.net/zlib-1.2.8.tar.gz &
cd openssl
wget --prefer-family=IPv4 http://www.openssl.org/source/openssl-1.0.1i.tar.gz &
wget --prefer-family=IPv4 http://sqlite.org/2014/sqlite-autoconf-3080500.tar.gz &
cd libxml2
wget --prefer-family=IPv4 ftp://xmlsoft.org/libxml2/libxml2-2.9.1.tar.gz &
wget --prefer-family=IPv4 http://c-ares.haxx.se/download/c-ares-1.10.0.tar.gz &
wget --prefer-family=IPv4 http://downloads.sourceforge.net/project/aria2/stable/aria2-1.18.7/aria2-1.18.7.tar.gz &
全部文件下载完成后,在
~/aria2/patches 目录下创建文件 libxml2-pthread.patch,内容如下,稍候编译 libxml
时会用到,主要是为了解决 libxml 与 musl 的兼容问题
--- libxml2-2.9.1/threads.c.orig
+++ libxml2-2.9.1/threads.c
@@ -47,7 +47,7 @@
#ifdef HAVE_PTHREAD_H
static int libxml_is_threaded = -1;
-#ifdef __GNUC__
+#if defined(__GNUC__) && defined(__GLIBC__)
#ifdef linux
#if (__GNUC__ == 3 && __GNUC_MINOR__ &= 3) || (__GNUC__ & 3)
extern int pthread_once (pthread_once_t *__once_control,
在 ~/aria2 目录下,建立
compile_aira.sh 脚本,内容如下,用于一次性编译所需的库以及 aria2
#!/bin/bash
BASE=`pwd`
SRC=$BASE/src
DEST=$BASE/opt
CC=arm-linux-musleabi-gcc
CXX=arm-linux-musleabi-g++
LDFLAGS="-L$DEST/lib"
CPPFLAGS="-I$DEST/include"
MAKE="make -j`nproc`"
CONFIGURE="./configure --prefix=/opt --host=arm-linux"
PATCHES=$(readlink -f $(dirname ${BASH_SOURCE[0]}))/patches
######## ####################################################################
# ZLIB # ####################################################################
######## ####################################################################
cd $SRC/zlib
tar zxvf zlib-1.2.8.tar.gz
cd zlib-1.2.8
LDFLAGS=$LDFLAGS \
CPPFLAGS=$CPPFLAGS \
CROSS_PREFIX=arm-linux-musleabi- \
./configure \
--prefix=/opt
make install DESTDIR=$BASE
########### #################################################################
# OPENSSL # #################################################################
########### #################################################################
cd $SRC/openssl
tar zxvf openssl-1.0.1i.tar.gz
cd openssl-1.0.1i
cat && "EOF" & openssl-musl.patch
--- a/crypto/ui/ui_openssl.c
2013-09-08 11:00:10. +0200
+++ b/crypto/ui/ui_openssl.c
2013-09-08 11:29:35. +0200
@@ -190,9 +190,9 @@
-#if defined(linux) && !defined(TERMIO)
-# define TERMIO
+#if defined(linux)
+# define TERMIOS
patch -p1 & openssl-musl.patch
./Configure linux-armv4 \
--prefix=/opt shared zlib zlib-dynamic \
-D_GNU_SOURCE -D_BSD_SOURCE \
--with-zlib-lib=$DEST/lib \
--with-zlib-include=$DEST/include
make CC=$CC
make CC=$CC install INSTALLTOP=$DEST OPENSSLDIR=$DEST/ssl
########## ##################################################################
# SQLITE # ##################################################################
########## ##################################################################
cd $SRC/sqlite
tar zxvf sqlite-autoconf-3080500.tar.gz
cd sqlite-autoconf-3080500
CXX=$CXX \
LDFLAGS=$LDFLAGS \
CPPFLAGS=$CPPFLAGS \
$CONFIGURE
make install DESTDIR=$BASE
########### #################################################################
# LIBXML2 # #################################################################
########### #################################################################
cd $SRC/libxml2
tar zxvf libxml2-2.9.1.tar.gz
cd libxml2-2.9.1
patch & $PATCHES/libxml2-pthread.patch
CXX=$CXX \
LDFLAGS=$LDFLAGS \
CPPFLAGS=$CPPFLAGS \
$CONFIGURE \
--without-python
make install DESTDIR=$BASE
########## ##################################################################
# C-ARES # ##################################################################
########## ##################################################################
cd $SRC/c-ares
tar zxvf c-ares-1.10.0.tar.gz
cd c-ares-1.10.0
CXX=$CXX \
CPPFLAGS=$CPPFLAGS \
LDFLAGS=$LDFLAGS \
$CONFIGURE
make install DESTDIR=$BASE
######### ###################################################################
# ARIA2 # ###################################################################
######### ###################################################################
cd $SRC/aria2
tar zxvf aria2-1.18.7.tar.gz
cd aria2-1.18.7
CXX=$CXX \
LDFLAGS=$LDFLAGS \
CPPFLAGS=$CPPFLAGS \
$CONFIGURE \
--enable-libaria2 \
--without-libuv \
--without-appletls \
--without-gnutls \
--without-libnettle \
--without-libgmp \
--without-libgcrypt \
--without-libexpat \
--with-xml-prefix=$DEST \
ZLIB_CFLAGS="-I$DEST/include" \
ZLIB_LIBS="-L$DEST/lib" \
OPENSSL_CFLAGS="-I$DEST/include" \
OPENSSL_LIBS="-L$DEST/lib" \
SQLITE3_CFLAGS="-I$DEST/include" \
SQLITE3_LIBS="-L$DEST/lib" \
LIBCARES_CFLAGS="-I$DEST/include" \
LIBCARES_LIBS="-L$DEST/lib" \
ARIA2_STATIC=yes
LIBS="-static -lz -lssl -lcrypto -lsqlite3 -lxml2 -lcares"
make install DESTDIR=$BASE/aria2
万事具备,开始编译!在 ~/aria2
目录下,执行&./compile_aira.sh,经过漫长的等待,dd-wrt
可用的 aria2 编译完成了!
4. 配置及部署aria2
编译好的 aria2 可执行文件位于 ~/aria2/aria2/opt/bin 目录下,怀着激动的心情赶快进去看一下~
drwxrwxr-x 2 esonic esonic 4.0K Sep
2 09:58 ./
drwxrwxr-x 6 esonic esonic 4.0K Sep
2 09:46 ../
-rwxr-xr-x 1 esonic esonic
2 09:46 aria2c*
看到这个我就郁闷了,72MB!虽说 R6300v2 的 jffs 目录有
96MB,那也不能这么拿来浪费啊……如果部署在USB移动硬盘里的话硬盘休眠了唤醒又很慢,所以翻了翻编译器的目录,看到了工具
arm-musl-linuxeabi-strip,赶紧对 aria2c
执行&arm-musl-linuxeabi-strip
-rwxrwxr-x 1 esonic esonic 5.9M Sep
2 09:56 aria2c_strip*
嗯,strip 过后看上去好多了,5.9MB能接受。接下来就开始在路由器上的部署过程了。
把 strip 过的 aria2c 放到路由器的 /jffs/opt/bin 目录下,用 winscp 还是 sftp
之类的随意了;
在 /jffs/opt/bin
目录下执行&./aria2c
'',先看看 aria2 工作正常不,结果报错……告诉我“Name
resolution for
failed:No address
returned”,看上去是DNS问题,怀疑是 aria2 的异步DNS引起的,因此加上参数
async-dns,再次执行&./aria2c
--async-dns=false '':
root@esonic's router:/jffs/opt/bin# ./aria2c --async-dns=false ''
09/18 20:52:01 [NOTICE] Download complete: /jffs/opt/bin/index.html
Download Results:
|stat|avg speed
======+====+===========+=======================================================
223KiB/s|/jffs/opt/bin/index.html
Status Legend:
(OK):download completed.
下载百度首页成功了!
为了不每次运行 aria2
都加参数,因此可以把参数写到配置文件里,我放在 /jffs/etc/aria.conf 文件里,内容如下:
enable-rpc=true
rpc-allow-origin-all=true
rpc-listen-all=true
async-dns=false
dir=/mnt/sda1/
file-allocation=none
daemon=true
参数的主要意义分别是启用远程控制、允许所有来源远程控制、监听所有网卡、关闭异步DNS、下载目录为USB移动硬盘、不预先分配文件空间(开启的话下载前可能比较慢)、以守护进程执行、默认10连接并发。
配置好后执行&/jffs/opt/bin/aria2c
--conf-path=/jffs/etc/aria.conf&就可以启动 aria2
了。为了每次重启路由器时能自动启动
aria2,可以把这句命令加到路由器管理页面的“Administration”-&“Commands”-&“Startup”中。
5. 远程管理aria2
现在 aria2 已经部署好了,随时可以使用,但我们不可能每次SSH到路由器在命令行里用它,所以RPC功能就派上用场了,aria2
的远程管理界面有不少。
如果是 Chrome 的话,可以安装应用&
如果是 Android 系统可以安装&
这样不管在 PC 还是手机上,都可以控制和查看路由器的下载。
只要配置好自己路由器的 IP 或者域名就可以远程控制 aria2
下载了,可以查看下载进度,也可以添加任务,和迅雷远程下载类似,下载效果如下图。配合旋风离线下载,基本上可以100%完全利用起来带宽,100M的网总算是没白办……
为了能够不在家时也方便进行远程管理,可以在路由器里设置DDNS,用域名访问路由器,省去记 IP 地址的烦恼。我使用的是
的服务,如果用花生壳之类的也可以,只不过不像 No-IP 这种 dd-wrt 内置的用起来方便。
6. 使用旋风离线下载
说了这么多,最重要的还没有提到……那就是用 aria2 来下载QQ旋风的离线资源,这里可以给 Chrome 安装一个,只要把下载的 js 文件拖动到 Chrome
的扩展页面里即可安装,安装后进入网页版的QQ旋风离线下载页面会是下图中的效果。
配置好RPC中的地址后,以后只需要选中需要下载的任务,点击RPC按钮,就可以一键添加到 aria2
的下载队列中进行远程脱机下载,非常方便。最后配合 dd-wrt 的 samba 和 dlna
功能就可以实现家中各种设备远程播放路由器下载的内容,家里的小米电视2可以直接识别 R6300v2
的媒体服务,远程播放上面的内容。这样一个比较完整的NAS也算是搭起来了。
最后附上我编译好的 aria2c 文件:
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。OpenWRT/DD-WRT路由器BT:不開電腦也可下載torrent – by Upsangel
OpenWRT/DD-WRT路由器BT:不開電腦也可下載torrent
第三方固件OpenWRT和DD-WRT都可以實現路由器BT:不開電腦也可下載torrent,這特別適合一些以下的情況
BT種子特別慢,如果連續開着電腦下載要幾天時間(近來發現大陸的種子因為網絡封鎖和HKBN鏈接大陸出海網速很慢的原因,都有機會出現這種情況)
方便BT回來的文件:例如我依賴路由器BT和samba文件共享的功能搭建了家裡的XMBC媒體播放,方便在大電視播放HD高清電影,詳情請參考我另外的一篇文章。
由於DD-WRT使用transmission都是基於Optware的支援,所以我也用OpenWRT為基礎,介紹如何在路由器上安裝好BT下載功能。
1. usb儲存裝置的準備
理論上移動硬盤,usb flash drive或者各種記憶卡通過讀卡器連接都能勝任。我比較偏向用u盤或記憶卡,因為其體積小耗電量少,而且由於需要格式化為linux專用的ext3/4格式,基本上插上去了就比較少拔下來,基本上奉獻了(我只有一個移動硬盤,奉獻不起)。
關於如何格式化,如果你和我一樣沒有Linux的環境,可以用 在另一隻USB 手指安裝了一個叫
的用來分區的系統(作為usb啟動盤進入linux環境),再對SD卡分區,第一次不熟悉搞了很久。注意格式化有ext2,ext3,ext4可以選擇:
ext2:速度快,但是單個文件不能超過2GB
ext3:文件能超過2GB,但是journal功能一定開啟,會拖慢BT套件的讀寫
ext4:可以關閉journal從而達到提高讀寫效率
顯而易見,我們要選擇ext3或ext4,BT電影輕易就超過2GB
如果你熟悉linux,可以用像這裡那樣關閉ext4的journalling
然後就要讓openwrt識別你的Usb設備:請根據中的Required Packages安裝你需要的套件,由於我是用SD卡+讀卡器+EXT4分區格式,我安裝的套件是:
kmod-usb-storage
kmod-usb-storage-extras
block-mount
kmod-fs-ext4
安裝好了重啟路由,在網頁路由管理界面(192.168.1.1)中的system應該出現mount point一個選單,把SD卡(/dev/sda1)掛在進/mnt/sda1目錄就OK了!
2. 安裝Transmission
Transmission是很多人用的一個BT套件,我不敢說他是最快最好,但起碼他多人用,使用過程有什麼問題在網上也比較容易找到答案。 OpenWRT的wiki:
去安裝和設置。我安裝的套件是:
transmission-daemon
transmission-web
luci-app-transmission (超好用的直接在LuCI中設置參數)
3. 設置Transmission
我維持了多數設置為默認值,但是有幾個重要的設置是不能少的:
Config file directory:/etc/transmission (默認是在/tmp目錄,也就是說理論上一斷電所有設置和未完成的任務都會丟失)
Download directory:不解釋
Watch directory:就是一把種子torrent放進這個文件夾就自動啟動任務,我覺得很方便的說,啟用!
最後是BT的常見問題:監聽端口。Transmission默認是支持UPnP和NAT自動增加轉發端口的,但是不知道我的設置出了什麼問題沒有成,最後是通過手動的端口轉發達到目的:跟着Transmission自己的常見問題指導做就可以了, 注意可以用他給的 網站測試端口是否有打開成功。
最後附上文字版的Transmission安裝教程, 你可以看到openwrt的使用友好程度是比dd-wrt高很多的說!
Upsangel爲大家奉上玩轉路由器附加強大功能的攻略(架設vpn server,共享printer,scanner, 離線BT等),請參考小弟在hkepc的得獎文章:OpenWRT, DD-WRT資源彙總索引 –
更新:更爲成熟的迅雷BT獨立Server 迅雷下載寶已經引入,詳細介紹可以移步:
您的分享係對我最大的支持
Related Articles
Send to Email Address
Your Email Address
Post was not sent - check your email addresses!
Email check failed, please try again
Sorry, your blog cannot share posts by email.

我要回帖

更多关于 网件r6300v2 的文章

 

随机推荐