迅雷一直没有出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 ];
then
#加参数 -s是关闭
su $USERNAME -c "$XWARE_DIR/portal -s"
code=$? if [ $code -eq ];
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 ];
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

2015-04-16:

专门为迅雷添加的新用户居然在登录界面显示,这必须得隐藏啊。

xzc@xzc-HP-ProBook-4446s:~$ cat /etc/lightdm/users.conf
#
# User accounts configuration
#
# NOTE: If you have AccountsService installed on your system, then LightDM will
# use this instead and these settings will be ignored
#
# minimum-uid = Minimum UID required to be shown in greeter
# hidden-users = Users that are not shown to the user
# hidden-shells = Shells that indicate a user cannot login
#
[UserList]
minimum-uid=500
hidden-users=nobody nobody4 noaccess thunder
hidden-shells=/bin/false /usr/sbin/nologin

可以看到有hidden-users这一配置,只要在这里添加对应的用户,就会被隐藏。不过,由于ubuntu的一个bug一直没有修复,这个配置不会生效。

但是上面有个minimum-uid,如果玩家的uid小于这个值,则也会被隐藏。所以,需要改一下thunder的uid:

sudo usermod thunder -u 499

现在在登录界面应该看到thunder用户了。

2015-06-14

  昨天把系统上所有32bit库删除了,今天运行xware时提示portal not found。这才想起系统有还有这么个软件要用32bit库,于是又要装回来。

  sudo apt-get install gcc-multilib(g++不需要,不然要装g++-multilib)

装完再运行提示libz.so.1未找到,再装lib32z1,运行。

别人说装下面的就可以了:

  sudo apt-get install libc6-i386 lib32stdc++6 lib32gcc1 lib32ncurses5 lib32z1

ubuntu14.04折腾迅雷xware的更多相关文章

  1. ubuntu14.04+nvidia driver+cuda8+cudnn5+tensorflow0.12

    文章在简书里面编辑的,复制过来貌似不太好看,还是到简书的页面看吧: http://www.jianshu.com/p/c89b97d052b7 1.安装环境简介: 硬件: cpu:i7 6700k g ...

  2. Ubuntu14.04用apt在线/离线安装CDH5.1.2[Apache Hadoop 2.3.0]

    目录 [TOC] 1.CDH介绍 1.1.什么是CDH和CM? CDH一个对Apache Hadoop的集成环境的封装,可以使用Cloudera Manager进行自动化安装. Cloudera-Ma ...

  3. ubuntu14.04下的NVIDIA Tesla K80显卡驱动的安装教程

    搞深度学习如何能够不与浑身是“核”的显卡打交道呢? 人工智能的兴起除了数据量的大量提升,算法的不断改进,计算能力的逐步提高,还离不开软件基础设施的逐步完善.当下的主流的深度学习工具软件无论是Caffe ...

  4. ubuntu14.04显卡驱动问题(amd5600k集显7650d)

    安装ubuntu的时候,多次莫名其妙地黑屏,起初以为是最新得ubuntu14.04安装包不稳定,所以一直尝试了很多次. 重启-->安装-->黑屏(硬盘仍在转动,屏幕上什么都没有)--> ...

  5. 在ubuntu14.04上配置cuda_caffe_cudnn_anaconda_digits

    参考网上的很多网站,以这篇为主:http://blog.csdn.net/yhl_leo/article/details/50961542 这篇算是自己对caffe学习的一个总结系列的开头.首先因为c ...

  6. 在Ubuntu-14.04.3配置并成功编译Android6_r1源码

    折腾了一周,终于把Android6_r1的源码编译成功.先上图,这是在ubuntu中运行的Android模拟器: 由于我是在win8中安装虚拟机VMware,然后在虚拟机中安装Ubuntu进行编译,所 ...

  7. 戴尔笔记本win8.1+UEFI下安装Ubuntu14.04过程记录

    瞎扯:笔记本刚买不久就想装ubuntu来着,但结果发现BIOS启动方式为UEFI,网上一搜索发现跟曾经的双系统安装方法不一样,看详细教程感觉相当复杂,并且也有点操心折腾跪了这新本本所以一直没有动手.但 ...

  8. VisualBox ubuntu14.04 64位 android4.4.4源码编译总结

    转载请保留出处:http://www.cnblogs.com/wi100sh/p/4337907.html 折腾了好几天,今天终于编译通过,用了4个多小时,太不容易了.如下图所示: 软件环境 虚拟机: ...

  9. Ubuntu14.04 安装配置Hadoop2.6.0

    目前关于Hadoop的安装配置教程书上.官方教程.博客都有很多,但由于对Linux环境的不熟悉以及各种教程或多或少有这样那样的坑,很容易导致折腾许久都安装不成功(本人就是受害人之一).经过几天不断尝试 ...

随机推荐

  1. Android-自定义PopupWindow

    PopupWindow在应用中应该是随处可见的,很常用到,比如在旧版本的微信当中就用到下拉的PopupWindow,那是自定义的.新版微信5.2的ActionBar,有人已经模仿了它,但微信具体是使用 ...

  2. Win2 Socket(套接字)相关 API

    Socket(套接字) 作者信息 肖进 单位:南京中萃食品有限公司 资讯部 邮箱:xiaoj@njb.swirebev.com 电话:025-58642091 与socket有关的一些函数介绍 1.读 ...

  3. Cycling Label

    Cycling Label 来源: github/BBCyclingLabel Licence: Apache 2.0 作者: Bruno de Carvalho 分类: 标签(Label) 平台: ...

  4. Nginx 主配置文件参数详解

    Nginx 主配置文件参数详解 Nginx 安装完毕后,会有响应的安装目录,安装目录里 nginx.conf 为 nginx 的主配置文件, ginx 主配置文件分为 4 部分,main(全局配置). ...

  5. log4net根据日志类型写入到不同的文件中

    <?xml version="1.0"?> <configuration> <configSections> <!--log4net配置安 ...

  6. Senparc.Weixin.MP SDK 微信公众平台开发教程 索引

    Senparc.Weixin.MP SDK从一开始就坚持开源的状态,这个过程中得到了许多朋友的认可和支持. 目前SDK已经达到比较稳定的版本,这个过程中我觉得有必要整理一些思路和经验,和大家一起分享. ...

  7. 关于.net根目录路径的问题

    今天做了一个项目,用了url重写,但是在本地目录是localhost/BK/index.aspx,而其他目录也必须带bk,不带的话就找不到页面,(iis里正常) 应该主目录去掉bk,设置方法,右击网站 ...

  8. 64位系统 IIS不支持 Excel导入的问题

    64位系统不支持读取excel的问题: 应用程序池-常规选项 启用32应用程序 启用23应用程序是为了保证32应用程序能够正常运行

  9. POJ 1845

    接下来交给大家一个网上查不到的解题方法 题目是酱找出a^b的因子的和答案对9901取模 我们将a可变成这样e1^x1*e2^x2...(ei为素数) 答案就变成这样(e1^0+e1^1...e1^x1 ...

  10. WinFrm访问MVC数据

    WinFrm使用HttpWebRequest访问MVC中的Controller,以注册为例,客户端输入注册码后点击注册. WinFrm注册代码:代码中使用的是Post提交,UTF8编码方式. priv ...