本帖最后由 zhangming 于 2014-1-13 16:31 編輯
什么是樹莓派(Raspberry Pi)樹莓派就是一個只有信用卡大小的微型電腦,ARM 的 CPU,512M內(nèi)存,可以安裝命令行或簡配的圖形的(ARM版)Linux 或 Android,計(jì)算能力相當(dāng)于普通Android手機(jī)(但比PC慢很多),播放1080p高清視頻沒問題(因?yàn)橛杏布铀伲?。表面上看就是一塊集成電路板,但具有電腦的所有功能,而且很小很便宜。
QQ圖片20140113163121.jpg (97.54 KB, 下載次數(shù): 177)
下載附件
保存到相冊
2014-1-13 16:31 上傳
QQ圖片20140109153017.jpg (80.37 KB, 下載次數(shù): 190)
下載附件
保存到相冊
2014-1-9 15:29 上傳
功能
你能想到的,有些很離譜,但是常用的就是XBMC、迅雷下載、BT下載,遠(yuǎn)程監(jiān)控,共享服務(wù)器,web服務(wù)器等,為什么要用這個?因?yàn)樗挥?.5W的功率,和鼠標(biāo)一樣大的身材,價格不會超過300軟妹幣。
安裝
你還需要以下這些東西:
一張SD記憶卡
一個SD讀卡器,用于將系統(tǒng)映像寫入到SD卡中供電來源。我們用的是一個舊的安卓手機(jī)充電器,你需要一個5V的micro USB接口充電器為它供電。
如果你是用的普通顯示器而不是高清電視,你需要一條HDMI連接線與HDMI-DVI轉(zhuǎn)換器。如果你的顯示器支持HDMI或者你打算使用電視機(jī)進(jìn)行連接,那么你就可以省去轉(zhuǎn)換器了。
USB接口的鍵盤和鼠標(biāo)
一條以太網(wǎng)線
可選設(shè)備:
用于保護(hù)Raspberry Pi的盒子
除了鍵盤和鼠標(biāo)之外,如果你打算要連接更多的USB設(shè)備,那么你需要一個USB Hub集線器。
我們在本文中使用的東西:
一個Model B Raspberry Pi
一張16GB Class 10 SanDisk Ultra SDHC記憶卡(傳輸率標(biāo)為300MB/s)
一個原本用于HTC Inspire的舊充電器
羅技K260無線鍵鼠套裝(兩件只用一個接收器,因此只占用一個USB口)
一條RJ-45網(wǎng)線
設(shè)置
當(dāng)你把上面的一切都準(zhǔn)備好以后,我們就可以開始設(shè)置Raspberry Pi了
將Raspbian映像安裝到SD卡中
Raspberry Pi出來已經(jīng)有一段時間了,也正因如此,無論你是在用Windows、Mac OS X還是Linux,都有好幾種方法將Raspbian的映像寫到你的SD卡中。然而為了讓這篇文章不變成介紹各種映像寫入軟件的文章,我們將會把最常用的方法展示給大家看:在OS X與Linux中我們將會用系統(tǒng)自帶的dd工具寫入,而在Windows中我們將會使用一個叫Win32DiskImager的工具進(jìn)行。
為了讓過程便得簡單,我們建議你在開始操作前,先把下載文件夾清空。然后,從這里下載Raspbian.zip。在里面,選擇最新的Raspbian來下載。當(dāng)然你也可以選擇使用BT來下載,為了能讓其他人繼續(xù)用BT下載,我們建議你在下載完成后繼續(xù)上傳。 把壓縮文件解壓以后,你將得到Raspbian的映像文件,這個時候打開終端窗口。如果你使用的是OS X 10.7或更高版本,你可以從應(yīng)用程序中的工具(10.7)或者其他(10.8)中找到終端窗口。打開后,使用”cd ~/Downloads”來進(jìn)入下載文件夾。 如果你在開始前清空了你的下載文件夾,那么現(xiàn)在里面應(yīng)該有兩個文件,輸入”ls”來確認(rèn)是否分別有一個img后綴與一個zip后綴的文件,如下圖: 接下來就要開始將解壓出來的映像文件寫到SD卡中了,很可惜這個操作并不是直接把文件拷到卡中那么簡單。首先,我們在把SD卡插到你的Mac之前,要把你電腦分區(qū)狀態(tài)先搞清楚。如果你已經(jīng)迫不及待把卡插了進(jìn)去,那么先把它安全移除吧。 在終端窗口中輸入”df –h”,你應(yīng)該會看到類似這樣的結(jié)果 現(xiàn)在,插入你的SD卡,再運(yùn)行一次剛才的命令,你會發(fā)現(xiàn)多了一個”/dev/disk1s1”的設(shè)備。把它先記下來,等一會兒把它轉(zhuǎn)換成原始設(shè)備名稱時會用到的。 接下來,你需要先從系統(tǒng)中把卡卸載掉,以便”dd”這個工具可以將映像寫入到SD卡中。在終端窗口輸入”sudo diskutil unmount /dev/disk1s1”,然后輸入你的系統(tǒng)密碼。 如果操作成功的話,你會看到最后那一行字:”Volume XXX unmounted”中的XXX是你SD卡的名稱?,F(xiàn)在我們就可以往卡上寫入映像了。 記得剛才讓你記下來的設(shè)備名么?現(xiàn)在就是用到它的時候了。將你的設(shè)備名(例如/dev/disk1s1)最后的s1去掉,然后在disk前面加上r,變成”/dev/rdisk1”,這樣你就得到SD卡的原始設(shè)備名稱了。 也就是說,”/dev/disk1s1” = “/dev/rdisk1”。懂了嗎? 然后在終端中輸入以下命令:”sudo ddb s=1m if=2012-06-15-wheezy-raspbian.img of=/dev/YOURDISKNAME”。將YOURDISKNAME改成你的原始設(shè)備名稱,通常這個都是/dev/rdisk1。 寫入的過程需要一點(diǎn)時間。當(dāng)”dd”完成了它的工作以后,將桌面的SD卡圖標(biāo)拖進(jìn)回收站中以將SD卡安全移除。 準(zhǔn)備工作就完成了!直接到“初次啟動你的Pi”部分吧。 Our prep work is finished! Skip ahead to "Booting your Pi for the first time." 如果你使用的是Linux 無論你使用的是哪一個發(fā)行版的Linux,”dd”這個工具通常都是默認(rèn)安裝的。對于接下來的操作,我們假設(shè): 1) 你的sudo程序已經(jīng)設(shè)置妥當(dāng),而且你知道如何使用它 2) 你的Linux中已安裝fdisk工具(大多數(shù)發(fā)行版都默認(rèn)安裝) 在這里我們使用的是最為流行的Linux發(fā)行版Ubuntu,其中”dd”, “fdisk”已默認(rèn)安裝,并且”sudo”也已預(yù)先為用戶配置好了。 首先,從這里下載Raspbian的最新版本壓縮包。同樣,你也可以選擇使用BT下載。在你下載完成以后,第一個操作自然就是解壓。 打開一個終端窗口,然后使用”cd ~”命令將工作目錄變更到你的主目錄中。輸入”unzip imagename.zip”,將imagename替換為剛才你下載文件的名字。 如果你找不到剛才下載的壓縮包,你可以嘗試使用”cd ~/Downloads/”進(jìn)入下載目錄尋找。 接下來,我們要確定你的SD卡在系統(tǒng)中的設(shè)備名稱。插入你的SD卡,然后在終端中輸入”sudo fdisk –l”。 注意看列出來的設(shè)備:你運(yùn)行命令后得出的結(jié)果跟上面顯示的應(yīng)該很相似 這里看到,/dev/sda是一個大小250.1GB的設(shè)備,而/dev/sdb是一個15.9GB的設(shè)備。很明顯,/dev/sdb就是我們的SD卡。留意一下/dev/sdb下面顯示的分區(qū):/dev/sdb1與/dev/sdb2,我們要在寫入映像之前將這兩個分區(qū)先從系統(tǒng)中卸載掉: sudo umount /dev/sdb1 sudo umount /dev/sdb2 接下來,我們使用”dd”將映像文件寫入到SD卡中:”sudo dd bs=1M if=2012-08-16-wheezy-raspbian.img of=/dev/sdb”。跟在Mac中操作相同,這個過程需要一些時間來完成。 如果你看到終端顯示跟上面類似的文字,那么寫入已經(jīng)完成了?,F(xiàn)在,你可以跳到“初次啟動你的Pi”部分繼續(xù)閱讀。
如果你正在使用Windows
如果你正在使用的是Windows系統(tǒng),有一個叫做Win32DiskImager的小工具可以幫你完成這項(xiàng)工作。把它下載下來以后,再把Raspbian的映像從這里下載下來。記得選擇最新版本的Raspbian。 當(dāng)你把Win32DiskImager和Raspbian映像文件都下載下來以后,把他們都解壓出來。你可以把所有文件都解壓到桌面的一個文件夾中,方便接下來的操作。 將你的SD卡插入到你的讀卡器中,留意一下讀卡器在電腦中的盤符。將讀卡器接到電腦以后,打開剛解壓出來的Win32DiskImager程序: 在啟動時,Win32DiskImager可能會提示以下錯誤:(至少在Windows 7中是這樣的) 這個錯誤可以忽略掉,點(diǎn)OK繼續(xù) 點(diǎn)擊右邊的藍(lán)色文件夾圖標(biāo),然后選中剛才解壓出來的Raspbian映像文件。確保最右邊Device中的盤符為你讀卡器的盤符。 打開映像文件以后,點(diǎn)Write,然后點(diǎn)一下Yes確定操作。整個寫入過程需要一些時間來完成。 寫入完畢以后,你會看到下面的信息,這時你就可以把你的SD卡安全移除了。 初次啟動你的Pi 初次啟動Raspberry Pi時,你會看到一個叫做raspi-config的配置工具。如果在日后使用過程中你需要更改這些設(shè)置,你可以通過在Pi的命令行中運(yùn)行raspi-config來使用這個工具。在這里,你需要進(jìn)行一些最基本的設(shè)置來繼續(xù)使用你的Pi。 首先,我們要選擇expand_rootfs。它的作用是將剛才寫入到SD卡中的映像文件大小擴(kuò)展到整張SD卡中。如果你使用的是一張較大的SD卡(例如16GB),那么你肯定像充分利用上面的空間。因?yàn)樵镜挠诚裰挥写蠹s2GB的大小,進(jìn)行該操作就能將它擴(kuò)展到與你的SD卡同樣的大小。 選中expand_rootfs選項(xiàng),然后按下回車。你會看到如下提示,只需要再按一下回車就可以回到raspi-config的主菜單中。 接下來就是overscan選項(xiàng)。你會發(fā)現(xiàn),屏幕顯示的圖像并沒有完全占用你的顯示器空間;所以,最后就是將overscan禁用掉,來讓系統(tǒng)充分利用整個屏幕。但如果你的屏幕顯示沒有問題,那么你就可以跳過這個步驟。假設(shè)你需要禁用overscan,那么將overscan選項(xiàng)選中后按下回車。 接下來的畫面能夠讓你選擇禁用(Disable)或者是啟用(Enable) overscan。如果你在往后使用的過程中更換顯示器或者電視機(jī),你或許需要重新啟用overscan。 接下來,我們要確保我們的鍵盤正常工作。Raspbian默認(rèn)的是英國鍵盤布局,而我們在中國使用的鍵盤布局與美國的相同,因此我們要對它進(jìn)行更改才能正常使用。 選中configure_keyboard,然后按下回車。下面顯示的畫面中你會看到一個很長的列表,里面都是不同的鍵盤類型。你可以根據(jù)你的需要來選擇,或者直接選擇Generic 105-key (Intl) PC鍵盤。 在選擇鍵盤類型以后,你需要為它選擇一個鍵盤布局。剛開始顯示的列表中,都只有英國的鍵盤布局,但是我們現(xiàn)在要選擇美國的鍵盤布局,因此我們選中其他(Other),然后再里面的列表選擇English (US)。
然后你會被問到關(guān)于輔助鍵的問題,選擇默認(rèn)的選項(xiàng),并且在下一個畫面中選擇No compose key選項(xiàng)。同樣,如果你需要更改這個設(shè)置,可以使用raspi-config來更改。 最后一個選項(xiàng)為是否打開CTRL+ALT+BACKSPACE的組合鍵。它可以在你的圖形界面崩潰時,不需重啟而將圖形界面進(jìn)程結(jié)束掉。 回到主菜單,下一步我們要設(shè)置一個用戶密碼。 選中change_pass然后按下回車。一個確認(rèn)窗口彈出以后,在屏幕的底下會提示你輸入一個新的UNIX用戶密碼。 到這里就差不多完成了。接下來設(shè)置你的“區(qū)域”,這個主要會決定系統(tǒng)使用的字符集和語言。同樣,如果你不想使用英國英語,那么你可以在這里更改這些設(shè)置。在演示中我們選擇的是美國英語,因此我們選擇en_US.UTF-8,并下翻列表將en_GB選項(xiàng)剔除 再下一個對話框中會讓你選擇默認(rèn)的區(qū)域,選擇你剛才選的區(qū)域然后按回車?yán)^續(xù)。 回到raspi-config的主菜單,設(shè)置適當(dāng)?shù)臅r區(qū)。選中change_timezone選項(xiàng)然后按下回車。你會先看到一個地區(qū)列表。 選擇一個地區(qū),然后下一個菜單中會顯示該區(qū)域的具體位置。 再次回到主菜單,剩下還沒選過的選項(xiàng)我們可以忽略,直接點(diǎn)擊完成(Finish)。系統(tǒng)會提示你,一些變更需要重啟才能生效。重啟以后,你會看到一個登錄界面,如下: 在這里,用戶名為”pi”,密碼就是你剛才設(shè)置的UNIX用戶密碼。 使用你的Raspberry Pi 現(xiàn)在,你已經(jīng)登錄到了你之前設(shè)置的Raspberry Pi中了。你要做的第一件事,就是在命令行中輸入”startx”來進(jìn)入圖形界面,以下我們會把這個界面稱之為“窗口管理器”。 屏幕快速閃爍幾次后,你應(yīng)該會看到如下畫面:(除了那個終端窗口以外) 歡迎使用LXDE窗口管理器。LXDE是一個非常輕量級,并且功能齊全的圖形界面,它能夠很好地運(yùn)行在Raspberry Pi中。如果你從來未使用過LXDE,別擔(dān)心,它用起來跟Windows非常相似。點(diǎn)擊最左下角的圖標(biāo),你會看到一個應(yīng)用程序列表。
主要配置方法 網(wǎng)絡(luò)配置
插入網(wǎng)線并啟動機(jī)器,默認(rèn)是 DHCP 分配的 IP,ifconfig 或者在路由器上查一下主機(jī)名是 raspberrypi 就能知道 IP 。不過為了以后遠(yuǎn)程連接方便,還是配置為靜態(tài) IP 比較好??梢栽诼酚善魃侠?mac 地址配置靜態(tài) IP 分配。也可以在 Pi 上做網(wǎng)絡(luò)設(shè)置,和 Debian Linux 網(wǎng)絡(luò)配置一樣,編輯 /etc/network/interfaces 文件,修改后重啟網(wǎng)絡(luò)。
掛載U盤
外接U盤或移動硬盤時,默認(rèn)不會自動掛載,所以需要用 mount 命令掛載。通常我們在 /mnt 或 /media 目錄下新建一個目錄作為掛載點(diǎn)。比如:
sudo mkdir /mnt/1GB_USB_flash
sudo mount -o uid=pi,gid=pi /dev/sda1 /mnt/1GB_USB_flash
//用完之后卸載
sudo umount /mnt/1GB_USB_flash
sda1 是取決于你的實(shí)際情況,a表示第一個硬盤,1表示第一個分區(qū)。
FAT 格式U盤 mount 本身就能支持,但如果你的U盤或移動硬盤使用的是 exFAT 格式,mount 會說不支持。沒關(guān)系,安裝 exfat-fuse 軟件之后 mount 就支持了。
sudo apt-get install exfat-fuse
如果想開機(jī)自動掛載,而不是每次手工執(zhí)行,可以編輯 /etc/fstab 文件。比如在末尾添加一行:
/dev/sda1 /mnt/usbdisk vfat rw,defaults 0 0
掛載U盤的更多細(xì)節(jié)請參考 RPi Adding USB Drives 。
使用 samba 文件共享
共享文件的方法很多,其中最常用是 samba ,并且Windows、Linux、Mac 都支持。讓樹莓派外接大容量移動硬盤,就可以把它作為一個低功耗的 NAS 來用了。
首先安裝 samba:
sudo apt-get install samba samba-common-bin
然后修改配置文件:/etc/samba/smb.conf 。下面的配置是讓用戶可以訪問自己的 home 目錄。
1)開啟用戶認(rèn)證,找到“##### Authentication #####”,將“# security = user ”的井號去掉。
2)配置每個用戶可以讀寫自己的 home 目錄,在“[homes]”節(jié)中,把 “read only = yes” 改為 “read only = no” 。
改好后重啟 samba 服務(wù):
sudo /etc/init.d/samba restart
把系統(tǒng)默認(rèn)用戶 pi 添加到 samba :
sudo smbpasswd -a pi
現(xiàn)在就可以從其它機(jī)器上訪問 pi 這個用戶的 home 目錄了。
還可以配置一個公共文件區(qū),任何用戶都可以訪問:
sudo mkdir /home/shares
sudo mkdir /home/shares/public
sudo chown -R root:users /home/shares/public
sudo chmod -R ug=rwx,o=rx /home/shares/public
然后編輯 /etc/samba/smb.conf 文件,在文件的末尾添加:
[public]
comment = Public Storage
path = /home/shares/public
valid users = @users
force group = users
create mask = 0660
directory mask = 0771
read only = no
保存文件,并重啟 samba 服務(wù)。
最后,把移動硬盤 mount 到 samba 可訪問目錄中就可以了。
更多信息請參考:R-Pi NAS
BT 下載服務(wù)器
既然現(xiàn)在我們已經(jīng)有了一臺低功耗的 NAS,讓它支持獨(dú)立的 BT 下載就更好了,這樣我外出或睡覺的時候就不用開著電腦下載了,而且更省電。很簡單,只要安裝 transmission 就可以了,更棒的是它還可以通過 Web 界面控制!
1)首先安裝 transmission :
sudo apt-get install transmission-daemon
2)然后創(chuàng)建下載目錄,一個是下載完成的目錄,一個是未完成的目錄,具體目錄根據(jù)你的情況決定:
mkdir -p /home/pi/incomplete # for incomplete downloads
mkdir /home/pi/complete # finished downloads
3)還要配置目錄的權(quán)限:
sudo usermod -a -G debian-transmission pi
#如果是 fat 格式的移動硬盤無需下面這么改,mount的時候指定用戶和讀寫權(quán)限就行
#這個是對 SD 卡上的目錄而言的
chgrp debian-transmission /home/pi/incomplete
chgrp debian-transmission /home/pi/complete
chmod 770 /home/pi/incomplete
chmod 770 /home/pi/complete
4)修改配置文件 /etc/transmission-daemon/settings.json ,這是一個 json 格式的文件,配置項(xiàng)很多,但重點(diǎn)改下面這些:
下載目錄位置:
"download-dir": "/home/pi/complete",
未完成的下載目錄
"incomplete-dir": "/home/pi/incomplete",
允許Web訪問的白名單地址
"rpc-whitelist": "192.168.1.*",
5)最后,配置好之后重啟 transmission,注意以下兩個命令按順序執(zhí)行,單獨(dú) restart 的話配置不會保存:
sudo service transmission-daemon reload
sudo service transmission-daemon restart
現(xiàn)在就好了,在瀏覽器中訪問 IP 加 9091端口:比如: http://192.168.1.3:9091/ 。訪問時輸入用戶名和密碼,默認(rèn)都是:transmission 。
你現(xiàn)在已經(jīng)有了一個獨(dú)立的 BT 下載服務(wù)器了!界面功能完備,可以做限速等設(shè)置。
關(guān)于 transmission 配置的詳細(xì)信息請參考:EditConfigFiles 。
修改 transmission 用戶名和密碼的方法:
1)先停止服務(wù): sudo service transmission-daemon stop
2)修改配置文件,下面兩項(xiàng)分別是用戶和密碼,你看到這個是加密的密碼,沒關(guān)系直接把密碼改為你想要的密碼明文就可以:
"rpc-username": "transmission",
"rpc-password": "{2dc2c41724aab07ccc301e97f56360cb35f8ba1fGVVRdHDX",
3)再此啟動服務(wù) :sudo service transmission-daemon start 。啟動的時候 transmission 會自動把新密碼加密。
另外,transmission 默認(rèn)監(jiān)聽 51413 端口,最好在路由器上做個端口轉(zhuǎn)發(fā),把這個端口轉(zhuǎn)到它的 IP 地址。
電驢可以用 mldonkey 支持。
安裝遠(yuǎn)程桌面
Windows 系統(tǒng)的遠(yuǎn)程桌面大家都用過,并且 Linux 和 Mac 上也可以使用遠(yuǎn)程桌面。讓樹莓派支持遠(yuǎn)程桌面訪問很簡單,首先安裝 xrdp:
sudo apt-get install xrdp
然后,使用遠(yuǎn)程桌面程序連接到對應(yīng)的 IP 即可!
播放視頻
樹莓派上可以播放 H264 和 mp4 等視頻格式,1080p也沒問題,因?yàn)檫@種格式的文件有硬件加速。
首先安裝 安裝 omxplayer ,這是一個命令行的播放器:
sudo apt-get install omxplayer
然后就可以播放了,當(dāng)然需要通過 HDMI 連接到顯示器看:
omxplayer -o hdmi /path/to/filename.mp4
-o hdmi 表示音頻直接通過 HDMI 播放,播放時按左右箭頭快進(jìn)、按 q 退出。更多命令行選項(xiàng)和播放時的控制快捷鍵請參考 omxplayer 的文檔。
實(shí)例 XBMC xbian系統(tǒng)就是xbmc和debian的結(jié)合體。xbmc是什么?xbmc是一個媒體中心,可以看電影,可以聽歌,可以看圖片,可以看天氣。界面做得非常炫,支持鍵盤鼠標(biāo)操作,有大神擴(kuò)充功能,用家里的遙控器就能進(jìn)行操作,完全可以做一個家庭媒體中心。里面有好多擴(kuò)展插件,可以增加國內(nèi)幾大視頻網(wǎng)站,比如優(yōu)酷,土豆,奇藝,迅雷看看,騰訊視頻,還有好多,記不清了。當(dāng)然感興趣的話可以在ubuntu上裝一個體驗(yàn)體驗(yàn)。音樂的話有酷狗音樂。要想增加這些插件的話首先要開啟中文支持,首先將一個中文字體復(fù)制到~/.xbmc/media/Fonts/arial.ttf,打開XBMC,進(jìn)入SETTING-Appearance -> Look and Feel -> Skin Fonts設(shè)置為arial,再將 region中的language設(shè)置為Chinese simplified即可,接下來就是安裝國內(nèi)視頻網(wǎng)站插件,插件可以在這里下載http://files.cnblogs.com/ma6174/raspberrypi.zip,不要解壓。安裝方法是這樣的:系統(tǒng)設(shè)置中->擴(kuò)展功能->從ZIP文件安裝,選擇下載的壓縮包安裝即可。xbian支持播放U盤中的文件,支持播放samba共享文件夾下文件,很方便的。以后看電影的時候不用開電腦了,直接用樹莓派,連上顯示器或者投影儀播放就可以。還有,上面提到的國內(nèi)視頻網(wǎng)站的視頻,大部分都是高清的,很給力,當(dāng)然你的網(wǎng)速需要給力,哈哈!當(dāng)然,你也可以通過ssh遠(yuǎn)程連接xbian,登錄之后可以進(jìn)行一些設(shè)置,默認(rèn)xbmc服務(wù)是開機(jī)自動啟動的,可以用命令開啟和停止,如果出現(xiàn)xbmc死機(jī)現(xiàn)象的話,可以用ssh連接,默認(rèn)用戶名是xbian,密碼是raspberry,用命令:sudo service xbmc restart 來重啟xbmc。還有一點(diǎn)比較重要,因?yàn)榇蟛糠钟脩綦娔X是VGA接口,但是樹莓派提供HDMI接口,可能有些用戶回去網(wǎng)上買些HDMI轉(zhuǎn)VGA轉(zhuǎn)換器,后來有位大神論證,這樣不安全,因?yàn)殡娏鬟_(dá)不到,可能會燒壞樹莓派。如果轉(zhuǎn)換的話最好是用有外接電源的,或者說用高清線。關(guān)于聲音問題,如果用高清線的話,聲音可能在高清線輸出,我們可以設(shè)置一下,讓聲音從3.5mm音頻接口輸出。這個完全可以當(dāng)作一個電視機(jī)頂盒來用了。除此之外,xbmc還有web控制工具,也有人開發(fā)手機(jī)控制工具,這樣就方便多了,我們就可以把自己的手機(jī)當(dāng)作遙控器進(jìn)行操作。
迅雷離線
下載地址:https://github.com/iambus/xunlei-lixian
詳細(xì)內(nèi)容請往下看:
xunlei-lixian
迅雷離線下載腳本。
安裝指南
安裝git(非github用戶應(yīng)該只需要執(zhí)行第一步Download and Install Git)
http://help.github.com/set-up-git-redirect
下載代碼(Windows用戶請?jiān)趃it-bash里執(zhí)行)
git clone git://github.com/iambus/xunlei-lixian.git
安裝Python 2.x(請下載最新的2.7版本。3.x版本不支持。)
http://www.python.org/getit/
在命令行里運(yùn)行
python lixian_cli.py
注:不方便安裝git的用戶可以選擇跳過前兩步,在github網(wǎng)頁上下載最新的源代碼包(選擇"Download as zip"或者"Download as tar.gz"):
https://github.com/iambus/xunlei-lixian/downloads
一些提示
你可以為python lixian_cli.py創(chuàng)建一個別名(比如lx),以減少敲鍵次數(shù)。
Linux上可以使用:
ln -s 你的lixian_cli.py路徑 ~/bin/lx
Windows上可以創(chuàng)建一個lx.bat腳本,放在你的PATH中:
@echo offpython 完整的lixian_cli.py路徑 %*
注:下文中提到的lx都是指python lixian_cli.py的別名。
你可以使用lx config保存一些配置。見“命令詳解”一節(jié)。
lx config deletelx config tool asynlx config username your-idlx config password your-password
注:密碼保存的時候會加密(hash)
使用lx download下載的文件會自動驗(yàn)證hash。其中ed2k和bt會做完整的hash校驗(yàn)。http下載只做部分校驗(yàn)(目前為止尚未發(fā)現(xiàn)迅雷離線能提供完整的hash碼)。
注:包含多個文件的bt種子,如果沒有完整下載所有文件,對于已下載的文件,可能有少量片段無法驗(yàn)證。如果很重視文件的正確性請選擇下載bt種子中的所有文件。(目前還沒有發(fā)現(xiàn)由于軟件問題而導(dǎo)致hash驗(yàn)證失敗的情況。)
如果覺得大文件的hash速度太慢,可以關(guān)掉:
lx download --no-hash ...
也可以使用lx config默認(rèn)關(guān)掉它:
lx config no-hash
lixian_hash.py可以用于手動計(jì)算hash。見“其他工具”一節(jié)。
命令詳解
注:下文中提到的lx都是指python lixian_cli.py的別名。
常用命令:
lx login
lx download
lx list
lx add
lx delete
lx pause
lx restart
lx rename
lx config
lx info
lx help
lx login
登錄,獲得一個有效session,默認(rèn)保存路徑是~/.xunlei.lixian.cookies。一般來說,除非服務(wù)器故障或者執(zhí)行了lx logout(或者你手動刪除了cookies文件),否則session的有效期是一天左右。session過期之后需要手動重新執(zhí)行l(wèi)ogin。但如果使用lx config password把密碼保存到配置文件里,則會自動重新登錄。后文會介紹lx config。
lx login接受兩個參數(shù),用戶名和密碼。第二次登錄可以只填密碼。
lx login username passwordlx login password
如果不希望明文顯示密碼,也可以直接運(yùn)行
lx login
或者使用-代替密碼
lx login username -
上面的命令會進(jìn)入交互式不回顯的密碼輸入。
可以用--cookies指定保存的session文件路徑。-表示不保存(在login這個例子里,沒什么實(shí)際意義)。
lx login username password --cookies some-pathlx login username password --cookies -
注意,除了lx login外,大多數(shù)lx命令,比如lx download,都需要先執(zhí)行登錄。這些命令大多支持--username和--password,以及--cookies參數(shù),根據(jù)傳遞進(jìn)來的參數(shù),檢查用戶是否已經(jīng)登錄,如果尚未登錄則嘗試登錄。一般來說不建議在其他命令里使用這些參數(shù)(因?yàn)槁闊?,除非你不希望保存session信息到硬盤。
lx download
下載。目前支持普通的http下載,ed2k下載,和bt下載??梢允褂胻hunder/flashget/qq旋風(fēng)的連接(bt任務(wù)除外)。在信息足夠的情況下(見“一些提示”一節(jié)的第3條),下載的文件會自動驗(yàn)證hash,出錯了會重新下載(我個人目前還沒遇到過下載文件損壞的情況)。見“一些提示”一節(jié)的第3條。
lx download idlx download #nlx download http://somewherelx download ed2k://somefilelx download bt://info-hashlx download link1 link2 link3 ...lx download --alllx download keywordslx download date
下載bt的時候需要加--bt參數(shù)(或者--torrent參數(shù))??梢灾付ū镜?torrent文件路徑,或者.torrent文件的http url,或者torrent文件的info hash。(很多網(wǎng)站使用info hash來標(biāo)識一個bt種子文件,這種情況你就不需要下載種子了,lx download可以自動下載種子,不過前提是之前已經(jīng)有人使用迅雷離線下載過同樣的種子。如后所述,你也可以使用lixian_hash.py --info-hash來手動生成bt種子的info hash。)
lx download --bt Community.S03E01.720p.HDTV.X264-DIMENSION.torrentlx download --bt http://tvu.org.ru/torrent.php?tid=64757lx download --bt 61AAA3C6FBB8B71EBE2F5A2A3481296B51D882F6lx download --bt bt://61AAA3C6FBB8B71EBE2F5A2A3481296B51D882F6
注意,如果你使用最后一種方式,--bt參數(shù)是可選的。因?yàn)閘x download可以從bt://識別出來這是一個bt任務(wù)。
可以把多個連接保存到文件里,使用--input參數(shù)批量下載:
lx download --input links.txt
注意:在斷點(diǎn)續(xù)傳的情況下,如果文件已經(jīng)存在,并且文件大小相等,并且使用了--continue,重新下載并不只是簡單的忽略這個文件,而是先做hash校驗(yàn),如果校驗(yàn)通過才忽略。如果文件比較多或者比較大,可能比較耗時。建議手動從--input文件里刪除已經(jīng)下載過的鏈接。也可以使用--mini-hash參數(shù),如下。
如果指定了--mini-hash參數(shù),對于已經(jīng)下載過的文件,并且文件大小正確(一般意味著這個文件的正確性已經(jīng)在前一次下載中驗(yàn)證過了),會做一個最簡單的校驗(yàn)。對于尚未下載完成的任務(wù),在完成之后還是會做完整的hash。
如果指定了--no-hash參數(shù),永遠(yuǎn)不會做完整的hash。但還是會做文件大小檢驗(yàn)和取樣hash(很快)。
可以使用--delete參數(shù)在下載完成之后刪除任務(wù)。
lx download link --delete
如果一個文件已經(jīng)存在,使用參數(shù)--continue支持?jǐn)帱c(diǎn)續(xù)傳,使用--overwrite覆蓋已存在的文件,重新下載。
你可能需要用--tool參數(shù)來指定下載工具。默認(rèn)的下載工具是wget,有些環(huán)境的wget是最低功能版本,不支持指定cookie或者斷點(diǎn)續(xù)傳。這種情況可以使用--tool asyn。這在“支持的下載工具”一節(jié)有說明。
lx download --tool=wget linklx download --tool=asyn link
--output和--output-dir分別用來指定保存文件的路徑和目錄。
如果要下載的文件尚未在離線任務(wù)里,會被自動添加。
你也可以使用指定要下載的任務(wù)id(lx list命令可以用來查看任務(wù)id):
lx download task-id
但是要注意,多任務(wù)下載的時候,不能混用id和url(以后可能會支持)。
類似任務(wù)id,也可以指定任務(wù)的序列號。序列號從0開始??梢允褂胠x list -n查看序列號。如果希望lx list默認(rèn)顯示序列號,可以使用lx config n。若要下載任務(wù)列表中的第一個任務(wù):
lx download #0
要下載前三個任務(wù):
lx download #0-2
注:#也可以省略。因?yàn)镾hell里#會被當(dāng)成注釋。所以可以lx download 0或者lx download "#0"。
對于bt任務(wù),如果只想下載部分文件,可以在task id后指定文件id:
lx download bt-task-id/file-id bt-task-id/file-id2
或者:
lx download bt-task-id/[1,3,5-7]
注:上面的命令下載對應(yīng)bt任務(wù)里文件id為1,3,5,6,7的五個文件。
也可以指定bt子文件的擴(kuò)展名:
lx download bt-task-id/.mkv
或者:
lx download bt-task-id/[.mkv,.mp4]
可以使用--all參數(shù)下載所有的任務(wù)(如果已經(jīng)在參數(shù)中指定了要下載的鏈接或者任務(wù)id,--all參數(shù)會被忽略):
lx download --all
也可以使用一個簡單的關(guān)鍵字匹配要下載的文件名:
lx download mkv
也可以搜索多個關(guān)鍵字(滿足其中一個就算匹配):
lx download mkv mp4
任務(wù)的添加日期也可以作為關(guān)鍵字:
lx download 2012.04.04lx download 2012.04.04 2012.04.05lx list
列出已存在的離線任務(wù)。默認(rèn)只會列出任務(wù)id,任務(wù)名,以及狀態(tài)。可以使用--original-url和--download-url參數(shù)來列出原始鏈接和下載鏈接。--completed參數(shù)用于忽略未完成任務(wù)。
lx listlx list --completedlx list --no-status --original-url --download-url
如果要列出bt任務(wù)的子文件,可以在任務(wù)id后面加上/:
lx list id/
詳細(xì)參數(shù)可以參考lx help list。
lx add
添加任務(wù)到迅雷離線服務(wù)器上。一般來說你可以直接使用lx download下載而無需手動添加。如果你認(rèn)為這個任務(wù)還沒人下載過,你可以先手動添加,稍后下載。
lx add url1 url2 url3lx add --input links.txtlx add --bt torrent-filelx add --bt torrent-urllx add --bt info-hashlx delete
從迅雷離線服務(wù)器上刪除任務(wù)。
lx delete id1 id2lx delete ed2k://...lxa> delete mkvlx delete --all mkvlx delete --all mkv mp4lx pause
暫停任務(wù)。
lx pause id1 id2lx pause --all mkvlx restart
重新開始任務(wù)。
lx restart id1 id2lx restart --all mkvlx rename
重命名任務(wù)
lx rename task-id task-namelx logout
不想保留session可以使用lx logout退出。一般用不著。
lx logout lx logout --cookies your-cookies-filelx config
保存配置。配置文件的保存路徑是~/.xunlei.lixian.config。雖然你可以差不多可以保存任何參數(shù),但是目前只有以下幾個參數(shù)會真正起作用:
username
password
tool
continue
delete
output-dir
hash
mini-hash
id
n
size
format-size
colors
wget-opts(見稍后的說明)
aria2-opts(見稍后的說明)(見支持的下載工具一節(jié))
axel-opts(見稍后的說明)
(因?yàn)橹挥羞@幾個參數(shù)我覺得是比較有用的。如果你覺得其他的參數(shù)有用可以發(fā)信給我或者直接open一個issue。)
不加參數(shù)會打印當(dāng)前保存的所有配置:
lx config
可以使用--print打印指定的配置:
lx config --print password
添加一個新的參數(shù):
lx config username your-usernamelx config password your-passwordlx config deletelx config no-delete
刪除一個參數(shù):
lx config --delete password
注:密碼是hash過的,不是明文保存。 注:如果不希望在命令行參數(shù)中明文保存密碼,可以運(yùn)行l(wèi)x config password,或者lx config password -,會進(jìn)入交互式不回顯密碼輸入(只支持password配置)。
關(guān)于wget-opts/aria2-opts/axel-opts,因?yàn)檫@些工具的命令行參數(shù)一般都包含-,所以需要用額外的--轉(zhuǎn)義。另外多個命令行參數(shù)需要用引號合并到一起:
lx config -- aria2-opts "-s10 -x10 -c"lx info
打印cookies文件里保存的迅雷內(nèi)部id,包括登錄的ID,一個內(nèi)部使用的ID,以及gdriveid。
關(guān)于gdriveid:理論上gdriveid是下載迅雷離線鏈接需要的唯一cookie,你可以用lx list --download-url獲取下載地址,然后用lx info獲取gdriveid,然后手動使用其他工具下載,比如wget "--header=Cookie: gdriveid=your-gdriveid" download-url。
lx help
打印幫助信息。
lx helplx help exampleslx help readmelx help download支持的下載工具
wget:默認(rèn)下載工具。注意有些Linux發(fā)行版(比如某些運(yùn)行在路由設(shè)備上的mini系統(tǒng))自帶的wget可能無法滿足功能要求??梢試L試使用其他工具。
asyn:內(nèi)置的下載工具。在命令行中加上--tool asyn可以啟用。注意此工具的下載表現(xiàn)一般,在高速下載或者設(shè)備性能不太好的情況(比如運(yùn)行在低端路由上),CPU使用可能稍高。在我的RT-N16上,以250K/s的速度下載,CPU使用大概在10%~20%。
urllib2:內(nèi)置下載工具。不支持?jǐn)帱c(diǎn)續(xù)傳錯誤重連,不建議使用。
curl:尚未測試。
aria2:測試通過。注意某些環(huán)境里的aria2c需要加上額外的參數(shù)才能運(yùn)行。可以使用lx config進(jìn)行配置:lx config -- aria2-opts --event-poll=select
axel: 測試通過。注意官方版本的axel有一個URL重定向長度超過255被截?cái)嗟腷ug,需要手動修改源代碼編譯。見issue #44.
其他工具,比如ProZilla,暫時都不支持。有需要請可以我,或者直接提交一個issue。
其他工具
lixian_hash.py可以用于手動計(jì)算hash。
python lixian_hash.py --ed2k filenamepython lixian_hash.py --info-hash torrent-filepython lixian_hash.py --verify-sha1 filename sha1python lixian_hash.py --verify-bt filename torrent-file
lixian_batch.py是我自己用的一個簡單的“多任務(wù)”下載腳本。其實(shí)就是多個--input文件,每個文件里定義的鏈接下載到文件所在的目錄里。
python lixian_batch.py folder1/links.txt folder2/links.txt .
|