Raspi & Time Capsule & Transmission-Daemon


繼續記錄我的Raspi探索之旅。
(我發現使用5.3V電源供應會讓系統不太穩,所以乾脆把我的Xperia Z2的5V-1500mA電源供應器拿來用了。)

這次是關於讓Raspi裝載網路硬碟,並且使其能夠跑BT將檔案存入該硬碟的故事。

搭建好我的Raspi之後,接著馬上要讓他能夠存取我的時光膠囊(Time Capsule)。這邊需要的套件cifs.utils在Raspbian裡面已經內建,否則可以sudo apt-get install cifs.utils進行安裝或檢查更新。手動掛載時光膠囊的硬碟,可以這麼做:

sudo mkdir /mnt/timcapsule
sudo mount.cifs //TC_IP/timecapsule /mnt/timecapsule -o user=USERNAME,pass=USERPASS

其中TC_IP是膠囊的IP位址(可以開AirPort Utility來確認),USERNAME和USERPASS當然就是代入時光膠囊的使用者帳戶名稱和密碼。時光膠囊預設出廠用的名稱似乎是Data,我覺得這個名稱非常混淆視聽所以我就把他改名叫做timecapsule了,如果沒有改過名的記得應該是卦mount.cifs //TC_IP/Data...這樣。

為了一勞永逸,所以利用/etc/fstab來進行開機掛載的設定,這樣以後就不用手動來:
(這一動需要root來執行,預設帳號pi的sudo權限不夠。)

sudo su
echo “//TC_IP/timecapsule /mnt/timecapsule cifs user=USERNAME,pass=USERPASS,rw,uid=1000,iocharset=utf8 0 0" >> /etc/fstab


【2014-05-23 update】
上面的方法當我在做一次sudo apt-get upgrade之後突然就失效了,在掛載的時候會出現以下的錯誤:

mount error(22): Invalid argument
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)

查了一下,在這串找到答案,是跟samba套件有關。我確實有裝這個套件。解法就是在fstab裡面加入sec=ntlm這個參數來指定一個看來是比較舊的密碼安全性檢查方法。也就是改成

//TC_IP/timecapsule /mnt/timecapsule cifs user=USERNAME,pass=USERPASS,rw,sec=ntlm,uid=1000,iocharset=utf8 0 0

就對了。


接下來就是準備妙蛙程序了。
首先下載transmission-daemon:

sudo apt-get install transmission-daemon

裝好後修改設定檔,位置是在/etc/transmission-daemon/settings.json(就我裝的版本,/var/lib/transmission-daemon/info/settings.json是連結到這個位置),主要設定的部分包括下載的目標路徑,這邊可以針對完成的檔案和未完成的檔案分別指定,還有使用者名稱和密碼,這是要用來登入transmission portal的時候需要的資訊。另外在白名單的部分預設是開啟的,並且只允許本地端登入(127.0.0.1),如果是將Raspi作為server,這部分需要更動否則會無法異地登入portal。當然,極端一點的作法是把白名單功能關掉。

設定的詳細項目可以去官方查詢
設定完成之後,重跑服務:

sudo service transmission-daemon reload
sudo service transmission-daemon restart

可以確認是否開始運作:

sudo service transmission-daemon status

確認正常運作中之後,就可以從「你的RASPI_IP:9091/transmission」登入服務介面了!其中9091這個port是預設的,路徑名稱transmission也是預設的,兩者都可以在settings.json裡修改。這邊我是把下載檔案的目標路徑設定到時光膠囊的硬碟裡,馬上測試看看,


就會發現失敗惹。


我發現transmission-daemon要存取時光膠囊的時候會遇到權限問題,稍微搜尋了一下網路論壇,有使用者把這件事情直接歸類為transmission的蟲。簡單地說,你無法讓transmission程序取得將新檔案寫入網路硬碟的權限,即使你把目標路徑改成777也沒用。(真是WTF)

好吧,針對這條蟲我們得做一些處理:

# 先停止服務
sudo service transmission-daemon stop
# 把你的使用者帳號加入debian-transmission這個群組(這個帳戶也必須own整個目標路徑)
sudo adduser USERNAME debian-transmission
# 修改/etc/init.d/transmission-daemon裡面的USER值(起始帳戶),讓他變成前面的USERNAME
# 把設定檔的所有者全部改成前面的USERNAME
sudo chown USERNAME -R /var/lib/transmission-daemon/info/
sudo chown USERNAME /etc/transmission-daemon/settings.json
# 重開
sudo service transmission-daemon start

搞定!
這邊做法是參考這個討論串,可以發現會遇到這個問題的人很多,但解法可能不只一種,如果上面的流程不WORK,可能得要追這串看看其他人的建議了。

順利通過測試之後,發現跑BT對Raspi的CPU造成很大的負擔,在跑的時候SSH過去下指令會面臨很嚴重的LAG。嘛,畢竟是一台低成本低規格的小小電腦。不過現在這樣我們還是只能在本地區網登入transmission portal來丟種子,我接下來的目標是希望可以從外部網路投放種子給他跑,這樣這台小小伺服器的價值才會被彰顯出來﹍﹍

0 comment(s):

Post a Comment

回應文章前請注意下列三勿原則:

1)勿拍照;(→會有靈異的照片從你的相機裡跑出來...
2)勿餵食;(→會有飢渴的猛獸從我的網誌裡跑出來...
3)勿告白。(→會有奇怪的東西從站長體內裡跑出來...

謝謝大家的配合。
( > ー <)b