zoukankan      html  css  js  c++  java
  • ubuntu14.04折腾迅雷xware

      迅雷一直没有出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

    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

  • 相关阅读:
    前端代码规范
    使用CSS设置行间距,字间距.
    今天我们要说的画一个三角形,恩,画一个三角形,第一种呢是利用我们的html标签结合css来实现;而第二种方法就就是我们的html5新增的一个标签canves,这个canves就是网页画幕,那么顾名思义就是在网页里建造一个画板,用来画画,好,那接下来就和我一起去看看吧!
    javascript基础程序(算出一个数的平方值、算出一个数的阶乘、输出!- !- !- !- !- -! -! -! -! -! 、函数三个数中的最大数)
    css3 风车旋转
    css3简单的图片轮播
    css3 2D动画的基本用法和介绍
    Android 系统UI设计规则
    Android用户界面程序设计示例
    将博客搬至CSDN
  • 原文地址:https://www.cnblogs.com/coding-my-life/p/4430794.html
Copyright © 2011-2022 走看看