码迷,mamicode.com
首页 > 系统相关 > 详细

ubuntu14.04折腾迅雷xware

时间:2015-04-16 06:37:26      阅读:996      评论:0      收藏:0      [点我收藏+]

标签:

  迅雷一直没有出linux版,wine不想去弄。linux下虽然也有各种bt软件,无奈我试用后却发现速度远比不上迅雷,甚至有些资源根本找不到。而有些迅雷的专用链接,更是没法下(原谅我2M的小水管,却喜欢看美剧)。随着各种电视盒子、智能路由的出现,迅雷弄了一个远程下载,即xware。远程下载其实就是在电视盒子、路由器上架一个极简的迅雷核心,然后通过迅雷提供的网页端来控制,实现下载。由于电视盒子多半是android系统,智能路由也是android或linux核心,所以迅雷要想支持各种设备,就必须提供各种版本的xware,其中就有一个glibc 32bit版本。这个版本即可支持在大部分linux系统(32或64位)运行。

  要运行xware,有几个条件:

  1. 下载好xware
  2. 运行xware
  3. 绑定xware
  4. 挂载一个存储设备

  xware可以到迅雷的论坛去下载(http://luyou.xunlei.com/forum.php?mod=forumdisplay&fid=51&filter=typeid&typeid=1),在产品发布里,下载最新的glibc_32版本即可。如Xware1.0.31_x86_32_glibc.zip。下载好后解压到一下目录中,如Xware1.0.31。里面的文件如下:

xzc@xzc-HP-ProBook-4446s:~/Xware1.0.31$ ls -lh
总用量 4.2M
-rwxrwxr-x 1 xzc xzc 4.1M 8月 27 2014 EmbedThunderManager
-rwxrwxr-x 1 xzc xzc 24K 8月 27 2014 ETMDaemon
-rwxrwxr-x 1 xzc xzc 111K 8月 27 2014 portal
-rwxrwxr-x 1 xzc xzc 23K 8月 27 2014 vod_httpserver

  运行xware很简单,进入当前目录,运行./portal即可。运行出输出如下:

xzc@xzc-HP-ProBook-4446s:~/Xware1.0.31$ ./portal
initing...
try stopping xunlei service first...
killall: ETMDaemon: no process killed
killall: EmbedThunderManager: no process killed
killall: vod_httpserver: no process killed
setting xunlei runtime env...
port: 9000 is usable.

YOUR CONTROL PORT IS: 9000

starting xunlei service...
etm path: /home/xzc/Xware1.0.31
execv: /home/xzc/Xware1.0.31/lib/ETMDaemon.

getting xunlei service info...
Connecting to 127.0.0.1:9000 (127.0.0.1:9000)
the active key is not valid.

try again...(has tried 1 time(s)).
getting xunlei service info...
Connecting to 127.0.0.1:9000 (127.0.0.1:9000)

THE ACTIVE CODE IS: xxxbbb

go to http://yuancheng.xunlei.com, bind your device with the active code.
finished.

运行时需要根据你的网络情况而定,有时try again...N多次才能连上迅雷的服务器,也有过连不上的。连不上再重新运行一次就好。

  接着需要绑定你的设备到网页版迅雷远程控制。登录http://yuancheng.xunlei.com(没帐号就注册一个),然后将上面运行得到的一个code(THE ACTIVE CODE IS: xxxbbb),这里是xxxbbb。输入这个code,你刚刚运行的迅雷就与远程下载绑定了。

技术分享

然后,就是熟悉的迅雷界面了

技术分享

  现在,迅雷基本算是跑起来了。但是还有一个问题,下载的文件存在哪里呢。远程下载只是一个网页客户端,它没有办法知道你电脑上硬盘的情况。它只能通过与运行在电脑上的迅雷通讯才能了解电脑上有多少空间,有哪些盘。可是迅雷开发xware的初衷并不是给电脑用的,而是给各种盒子、路由使用的。这些设备几乎是没有硬盘或者只有固定很小的空间,没有办法用来下载的。但它们都是linux核心,同时很多设备也提供了USB接口把U盘、移动硬盘接入。这些设备几乎都会挂载到/media目录下。所以xware只会检测挂载到/media目录下可写的设备。比如我把我的U盘插到电脑上,点击远程下载中的新建,即可看到迅雷已经检测到我的U盘,并在里面自动创建了一些必要的文件夹。

xzc@xzc-HP-ProBook-4446s:~$ df
文件系统 1K-blocks 已用 可用 已用% 挂载点
/dev/sda6 24475012 5982676 17226008 26% /
none 4 0 4 0% /sys/fs/cgroup
udev 3760900 4 3760896 1% /dev
tmpfs 754340 1324 753016 1% /run
none 5120 0 5120 0% /run/lock
none 3771696 652 3771044 1% /run/shm
none 102400 64 102336 1% /run/user
/dev/sda7 26866740 5797352 19681564 23% /home
/dev/sda1 307032 37920 269112 13% /boot/efi
/dev/sdb1 7135728 4606340 2529388 65% /media/xzc/APACER
xzc@xzc-HP-ProBook-4446s:~$ ls /media/xzc/APACER -lh
总用量 48K
drwx------ 2 xzc xzc 4.0K 12月 13 22:18 GHO
drwx------ 3 xzc xzc 4.0K 3月 13 23:22 system_tools
drwx------ 2 xzc xzc 4.0K 4月 15 20:57 TDDOWNLOAD
drwx------ 2 xzc xzc 4.0K 4月 15 20:57 ThunderDB

电脑上使用迅雷肯定希望直接下载到硬盘上啊。那么我们可以使用mount --bind来将一个文件夹挂载到/media下,这样迅雷就可以下载了。对,没错,一切都OK。可是又有一个问题,假如我正在下载,突然要用到U盘。接到电脑上,迅雷二话不说,直接在U盘上创建两个文件夹,这让我情何以堪。要让迅雷忽略我的U盘,没有别的办法,只有取消迅雷在U盘上的写权限。但是U盘我还要往里面拷东西啊。所以我们只好给迅雷创建一个用户,然后用这个用户运行迅雷。这样,迅雷在我的U盘上就没有写权限了。

先创建一个叫thunder的用户

sudo useradd --no-create-home --user-group thunder

然后把xware的目录改为thunder所有,这样thunder才有权限运行xware(直接通过sudo给权限也行)

su chown thunder:thunder -R Xware1.0.31

再创建一个用来挂载的目录和一个下载的目录,这些目录也归thunder所有,不然它没权限写,怎么行。而这个下载目录你当前的用户也是有权限读的,不然下载的东西你没法看,有什么用?

sudo mkdir /home/xzc/TDDOWNLOAD -p
sudo mkdir /media/thunder/TDDOWNLOADS -p
sudo chown thunder:thunder /home/xzc/TDDOWNLOAD
sudo chown thunder:thunder /media/thunder/TDDOWNLOADS

然后我们把下载目录挂载到另一个目录

sudo mount --bind /home/xzc/TDDOWNLOAD /media/thunder/TDDOWNLOADS/

再重新以thunder用户运行迅雷(先获取root权限,再转换到thunder用户可以免去输入thunder的密码,因为刚刚就没给thunder创建密码,输入什么都不对的)

sudo su thunder -c ./portal

这样,迅雷会检测到/media/thunder/TDDOWNLOADS目录,下载的东西却是放到/home/xzc/TDDOWNLOAD中去了。现在,如果你点“新建”任务,可以看到剩余空间,则说明挂载成功。

技术分享

折腾到此,总算是可以下载了,不过既然是在linux下,怎么也得写个脚本吧

#!/bin/sh

XWARE_DIR=./Xware1.0.31

USERNAME="thunder"

DOWN_DIR=/home/xzc/TDDOWNLOAD
MOUNT_DIR=/media/thunder/TDDOWNLOADS

if [ $# -gt 0 ];
then
    #加参数 -s是关闭
    su $USERNAME -c "$XWARE_DIR/portal -s"
    code=$?

    if [ $code -eq 0 ];
    then
        umount $MOUNT_DIR
        echo "xware stop sucess..."
    else
        echo "xware stop fail,code $code"
    fi

else
    #不加参数默认是启动
    su $USERNAME -c $XWARE_DIR/portal
    code=$?

    if [ $code -eq 0 ];
    then
        mount --bind $DOWN_DIR $MOUNT_DIR
        echo "xware start sucess..."
    else
        echo "xware start fail,code $code"
    fi

fi

这样,把这个文件放到Xware1.0.31的上一层,名为xware.sh。这个脚本会自动挂载文件夹,或者取消挂载,需要root权限。

运行 sudo ./xware.sh

关闭 sudo ./xware.sh -s

ubuntu14.04折腾迅雷xware

标签:

原文地址:http://www.cnblogs.com/coding-my-life/p/4430794.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!