自從樹莓派發布後,所有在網際網路上的網站為此激動人心的裝置提供了很多有趣和具有挑戰性的使用方法。雖然這些想法都很棒,但樹莓派( RPi )最明顯卻又是最不吸引人的用處是:建立你的完美家用伺服器。
如果你有幾個不同的電腦需要同步和自動化備份,RPi可以做到。如果你想通過家中的任意螢幕來訪問你的音樂和影片,RPi也能實現。也許你有一個或兩個印表機,你想要簡單與大家共享,樹莓派在硬體和時間上用最小投資就能滿足你的這些需求。
低成本:35美元(約合242元RMB),B型的RPi接近一臺完整的電腦,512M記憶體,100Mb乙太網,SD卡插槽,2個USB介面,音訊輸出和HDMI或RCA影片輸出。我知道HDMI電纜就比樹莓派貴。
能源效率:硬體成本只是伺服器費用的一部分,因為你需要考慮能源成本去不斷執行裝置。家用伺服器所需要的服務不會佔用太多CPU,大部分時間它都處於空閑狀態,等待發揮功效。RPi's超低功率元件非常適合這個工作負載,這有助於降低你的電費消耗。我的一個B型的RPi加上外部硬碟消耗總共只有8瓦,然而用老式速龍代替的機器在閑置時消耗54瓦。假設10美分每千瓦一小時,這使得一個RPi每年的電費在7美元。一個基於速龍的機器是47美元。在不到一年的時間裡,RPI基本上能夠收回成本。
低噪音:因為RPi沒有風扇和移動部件,在你最終配置中的唯一能生成噪音或明顯熱量的元件就是硬碟。如果你擔心噪音,像Silent PC Review發燒友網站經常在他們的評論中涉及到雜訊基準。我的體會是現代驅動器足夠安靜,要比其他的裝置安靜的多(如媒體中心,遊戲機或其他電腦)。如果你家裡沒有為布線提供更多的靈活性選擇,RPi的小尺寸、少量發熱和低噪音也許讓你走過它旁邊都很難發現。
圖1,一個簡潔高效的家用伺服器
新機會:一個不怎麼實際的好處是-簡單快樂的嘗試新事物!對我來說,這是我第一次真正工作在基於Debian的發行版,很可能也是許多Linux愛好者們第一次有機會嘗試一個基於ARM的體系結構。
對於一個家庭伺服器來說,你將需要一個中等容量的SD快閃記憶體卡作為本地儲存。它可以使用一個USB引導,但那會佔用兩個寶貴的USB插槽之一。快閃記憶體卡不需要很大容量,但是速度越快越好。我選擇了一個名牌SD卡,8GB容量和CLASS 10的速度等級。對於備份和儲存多媒體檔案,一個有USB連線插槽的硬碟驅動器是必須的。我選擇一個1.5TB的硬碟和一個Calvary EN-CAHDD-D 2-bay USB 2.0硬碟連線基座。這個連線基座有個功能,在RAID-0模式中連線兩個硬碟,總有一天會有用的。最後,RPi不帶電源線,但可以用大多數智慧手機充電器所用的5v微型USB。看看RPi是否挑剔電源,我為電源已換了三個不同的微型USB手機充電器。我在這周內嘗試了每一個,在任何一個上都沒有問題。
安裝RPi作業系統包括了許多方面的大量細節,但這裡有一些家用特定伺服器的安裝提示,大致按需要的順序講述。
1)直接通過http://www.raspberrypi.org/downloads獲取Raspbian "Wheezy"安裝映象,並複製到SD卡,用網站上已列出的步驟。
2)第一次引導RPi時,連線一個鍵盤、滑鼠和顯示器。在引導RPi之前別忘開啟顯示器,可以檢測到正確的HDMI或混合輸出埠。
3)RPi有一個很好的"raspi-config"螢幕,在第一次啟動時你會看到。對於家庭伺服器來說,以下選擇將會有用:
完成後,你將在出現 pi@raspberrypi
提示符下。安裝指令碼可以在任何時間通過 sudo raspi-config
重新執行。
還有一些其他配置,然後作業系統就可以用了。
1)一個靜態IP讓一切變得更容易,切換eth0的網路設定:
>> sudo nano -w /etc/network/interfaces
更改eth0的那行 iface eth0 inet dhcp
,如下所示(根據你的家庭網路設定修改):
======/etc/network/interfaces====== ... iface eth0 inet static address 192.168.1.10 netmask 255.255.255.0 gateway 192.168.1.1 ... ======/etc/network/interfaces======
2)建立本地使用者並加入到users組和sudo組:
>> sudo adduser YOURUSERIDHERE >> sudo usermod -a -G users YOURUSERIDHERE >> sudo usermod -a -G sudo YOURUSERIDHERE
3)更新系統確保所有的庫是最新最好的:
>> sudo apt-get update; sudo apt-get upgrade
4)好了,準備重新啟動吧!先關閉PI:
>> sudo /sbin/shutdown -h now
一旦關閉(注意RPi電路板上的綠色LED狀態指示燈,可以知道什麼時候完成關閉了),拔下顯示器,鍵盤,滑鼠和電源線。插入USB埠上的硬碟,然後插回電源重啟RPi。
5)一旦RPi開啟(這些綠色LED指示燈用來描述狀態),你可以從遠端網路上從任何其他機器ssh到RPi並完成所有的配置(更改以下命令裡的IP為你的靜態IP):
>> ssh YOURUSERIDHERE@192.168.1.10
祝賀你,有了一個可以工作的樹莓派!
第一件事是要連線外設。用dmesg來尋找你的儲存裝置,會發現——幾乎可以肯定是/dev/sda。我喜歡使用自動掛載去掛載移動儲存裝置,這樣更靈活,因為在啟動時這些裝置也許沒有或者沒準備好:
>> sudo apt-get install autofs >> sudo nano -w /etc/auto.master ======/etc/auto.master====== ... /misc /etc/auto.misc ... ======/etc/auto.master====== >> sudo nano -w /etc/auto.misc
注意,我的外部儲存裝置是ext4格式,如果需要話可以在下面更改:
======/etc/auto.misc====== ... storage -fstype=ext4:/dev/sda1 ... ======/etc/auto.misc====== >> sudo /etc/init.d/autofs restart >> ls -lat /misc/storage
可選的,建立一個符號連結的短路徑:
>> ln -s /misc/storage /storage
在任何家庭伺服器功能列表裡面最重要的是提供堅如磐石的備份。對於RPi來說,這很簡單而優美,在Linux中有豐富的網路共享選項:Samba/CIFS用於Windows機器,NFS用於基於UNIX的裝置,並且甚至SFTP可以用於更多新的備份客戶端,如deja-dup。由於RPi只有100MB乙太網介面和USB上的儲存裝置,它沒有非常快的傳送速度。不過在另一方面,好的備份客戶端是在後臺自動執行的,所以你不會注意略微緩慢的傳輸速度。
我的家庭網路包括一臺Windows 7電腦。對於它,我通過Samba在RPi's外部USB儲存裝置上匯出一個備份目錄。因為備份程式在Windows7基礎版上不支援網路裝置作為備份目標,我使用SyncBack Free去設定使其自動化,每日備份。
配置Samba是容易的。
1)安裝samba和common-bin庫(具有smbpasswd效用)
>> sudo apt-get install samba samba-common-bin
2)使用 smbpasswd
讓你的本地ID能訪問:
>> sudo smbpasswd -a YOURUSERIDHERE
3)編輯samba配置檔案:
>> sudo nano -w /etc/samba/smb.conf
4)更改 workgroup = WORKGROUP
行以匹配你的Windows工作組名稱。
5)註釋掉或刪除[homes]和[printers]共享。(印表機共享稍後將通過直接CUPS訪問來完成。)
6)為Windows備份路徑增加一個條目。這是我的示例,放置在該檔案的底部:
======/etc/samba/smb.conf====== ... [win7pc] comment=Backup for windows PC path=/storage/win7pc writeable=Yes create mask=0777 directory mask=0777 browsable=Yes public=Yes valid users=YOURUSERIDHERE ... ======/etc/samba/smb.conf======
7)重啟Samba使你的編輯生效:
>> sudo /etc/init.d/samba restart
8)從Windows機器檔案資源管理器通過對映一個網路裝置測試連通。
對Linux裝置來說,設定和使用deja-dup非常簡單。它被預設安裝在我的Fedora 18和Ubuntu 12.10上。包的名稱是「deja-dup」,程式名簡單的稱為「Backup(備份)」。雖然RPi很容易支援NFS匯出,我發現使用deja-dup的SSH選項更容易,更方便,在RPi上它不需要額外服務的支援。指定一個deja-dup加密密碼是一個好主意,除非你不在意一旦丟失了儲存器,別人就可以拿走全部資料:
>> sudo mkdir /storage/linuxlaptop >> sudo chown -R YOURUSERIDHERE:YOURUSERIDHERE /storage/linuxlaptop
從linux客戶端啟動備份程式,選擇「SSH」作為備份位置,輸入RPi的IP地址和你建立的儲存位置。首次備份會很慢,但是以後的執行將只傳送增量變化,速度更快。
圖2,Deja-dup客戶端設定
現在每個人的檔案都已安全備份。讓我們繼續看些有趣的!一個DLNA伺服器可以讓你集中儲存你的電影、音樂和圖片。通過這個中心庫,家中每一個螢幕的DLNA客戶端都可以輕鬆重放此內容。
至少,這是一個宣稱。事實是這樣的,DNLA規格並不太確定一些重要的事情,如支援哪些格式或編碼。每個客戶端通常對於支援什麼格式和伺服器功能都有略微不同的想法。很多高功率的伺服器也許能轉碼本地內容到移動裝置支援的格式,但是在RPi上是不可能的,在即時轉碼上經常擾亂其他功能,如暫停,快進和倒帶。一般情況下,高功率裝置如PS3、Xbox和WD TV裝置支援大多數格式,而無需任何轉碼。低端裝置如智慧TVs或Blu-ray播放器只支援更有限的編碼列表。
對於RPi來說,最好的辦法是支援你的主要的DLNA裝置的標準編碼,然後測試你的其他DLNA客戶端。如果沒有完美播放,在下一節的提示也許有幫助。在我的情況下,我的PlayStation 3充當DLNA客戶端,PS3能夠流暢播放經Handbrake製作後的.m4v檔案。
對於RPi的DLNA伺服器來說,Minidlna是個很好的選擇。它已經在Raspbian發行版中,易於設定和使用最小服務資源執行:
>> sudo apt-get install minidlna >> sudo nano -w /etc/minidlna.conf
這是我/etc/minidlna.conf檔案的相關部分:
... # I found keeping video + audio in different paths helpful media_dir=V,/storage/dlna/video media_dir=A,/storage/dlna/music ... presentation_url=http://192.168.1.10:8200/ ... friendly_name=MyRPi ... # Since I add new media infrequently, turning off # inotify keeps minidlna for polling for # content changes. It's simple enough to run # sudo /etc/init.d/minidlna force-reload # when new content is added. inotify=no
一旦完成編輯,重啟minidlna以載入新配置:
>> sudo /etc/init.d/minidlna force-reload
Minidlna能夠為你的裝置支援的電影提供電影海報縮圖(像PS3)。這讓我能夠更方便地在幾十個電影檔案中滾屏查詢我想要的那個電影。我發現每個電影一個目錄是最相容的檔案佈局,只包含影片檔案和縮圖,影象命名為「Cover.jpg」。使用像"MovieName.m4v"和"MovieName.jpg"的格式在PS3上工作的很好,但它不太適合VLC(除非你能讓VLC uPNP外掛首先查詢伺服器的話)。
通過PS3,你可以通過轉到在XMB欄上的"Video"測試連通性。當影片列表向下翻頁時,你以前設定的"friendly_name"應該是可見的,測試確保Minidlna是通過瀏覽器轉到http://192.168.1.10:8200/。
當你讓DNLA與你的一些裝置一起工作時,你可能會發現有些裝置並不適合它,所以多媒體計劃B是個好主意。Nginx網站伺服器有一個MP4外掛嘗試在舊式的HTTP連線上改善流媒體傳輸,但是瀏覽器回放的效能差別很大,在一部電影裡快進也一直不工作。看起來多媒體共享或非 DLNA 裝置的最低共同特性是使用傳統Samba共享的訪客只讀訪問。
這是/etc/samba/smb.conf的部分示例:
[dlna] path=/storage/dlna read only=yes browsable=yes public=yes
定義了共享設定後重啟Samba( sudo /etc/init.d/samba restart
),你可以開始測試你的客戶端。
我用一個混合的編碼m4v影片檔案測試了以下客戶端:
Android 4.0.4手機:"ES File Explorer"與"ES Media Player"(播放器附帶安裝)。
Android 4.1.2平板電腦:"ES File Explorer"與"ES Media Player"(播放器附帶安裝)。
Linux裝置:自動掛載://192.168.1.10/dlna,然後使用VLC或MPlayer。
Windows:掛載//192.168.1.10:/dlna,然後使用VLC。
所有裝置都能幾乎立即開始播放和快進沒有延遲的情況。
RPi執行CUPS相當不錯,所以它容易共享一個較舊的沒有本地網路介面的印表機。
安裝你的印表機所需的CUPS和任何軟體包。我需要hplip-cups,因為我有一個HP噴墨印表機:
>> sudo apt-get install cups hplip-cups
更新「Listen」行和增加 Allow @LOCAL
到位置指令,如下所示(你可以使用其他機器在你的LAN上去管理CUPS):
======/etc/cups/cupsd.conf====== #Listen localhost:631 #Comment this out Listen 192.168.1.10:631 #Add this line ...Order allow,deny Allow @LOCAL # Restrict access to the admin pages... Order allow,deny Allow @LOCAL # Restrict access to configuration files...AuthType Default Require user @SYSTEM Order allow,deny Allow @LOCAL ======/etc/cups/cupsd.conf======
新增你的本地ID到lpadmin組就能管理CUPS:
>> sudo usermod -a -G lpadmin YOURUSERIDHERE
重啟CUPS:
>> sudo /etc/init.d/cups restart
然後轉到http://192.168.1.10:631/並點選 "Adding Printers and Classes"去設定你的印表機。我的印表機是自動發現的USB裝置,所以,我只需點選「share」就可以。同樣訪問https://192.168.1.10:631/admin,確保檢查「Share printers connected to this system(共享連線至這個系統的印表機)」。
完成後,你可以用通常的方式設定你的客戶端。當我輸入主機名,我的Linux客戶端就能夠自動發現印表機,並選擇正確的驅動程式。在我的Windows7的機器上,一旦我選擇「Network Printer(網路印表機)」,我必須點選「The printer that I want isn't listed(我想要的印表機未列出)」,選擇「Select a shared printer by name(通過名稱選擇共享的印表機)」,然後從CUPS網路介面輸入URL:http://192.168.1.10:631/printers/HP_J4500。
用最少的額外的硬體和配置,樹莓派是高效、簡潔的家用伺服器。它能夠花最小的硬體費用來為你的家庭環境帶來由Linux提供的廣泛企業服務。
via: http://www.linuxjournal.com/content/raspberry-pi-perfect-home-server
本文由 LCTT 原創翻譯,Linux中國 榮譽推出
[火星人 ] Raspberry Pi:完美的家用伺服器已經有20622次圍觀