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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM