Raspberry Pi 初步配置教程


我是從最開始就聽說過這個東西,實際下手是12年的10月,不過由於我經常不用Linux,對於它的配置搞的是一塌糊塗。不過我對於它還是沒太大期望的,畢竟CPU的頻率在那擱着,但是它有GPIO,這就為各種硬件的交互提供了可能。廢話不多說,我來分享一下我的配置經歷。這里主要是搜網上各大資源,主要是英文資源,所以我寫這個也是一種翻譯,畢竟看中文還是比看英文順暢。

首先我列了一個表,代表我想要做哪些事情:為了方便 ,我使用了目錄來寫……

Contents

我的設置    1

Transmission webui設置    1

VNC設置    1

防火牆,網絡端口    1

我的iptables:    1

在網絡啟動之后自動載入iptables    1

更改ssh設置    1

SSH可能在輸入用戶名之后響應很慢:    1

屏蔽root登陸    1

更改登陸提示信息:    1

配置Samba    1

網關自動登陸    1

網卡問題    1

有線網卡問題:    1

無線網卡的問題    1

DNS設置    1

不要自動獲取DNS    1

自動掛載外接的USB移動硬盤    1

虛擬內存設置    1

omxplayer播放器設置/Raspberry Pi也可以播高清!    1

供電問題    1

雜項    1

總結    1

 

我的設置

Transmission webui設置

首先使用命令

sudo apt-get install transmission*

來安裝所有和Transmission有關的組件,安裝完成之后就會按默認的設置。注意在配置前需要關閉相關的服務,所以使用

sudo service transmission-daemon stop

來關閉后台進程,否則修改的配置文件是無效的,會被程序覆蓋回原來的文件。

這里主要注意一下幾點:

download-dir: 你的下載目錄

incomplete-dir: 下載不完全時候的目錄,一般是下載不完全放一個地方,下載完全之后移動到某個地方。如果移動速度不快的話,不推薦使用這個。

incomplete-dir-enabled: 是否開啟不完全下載目錄。視情況而定。

rpc-password: webui的密碼,設定的時候在這里設置明文密碼,Transmission會在登陸后自動改成一個加密后的密碼

rpc-username: webui的用戶名

rpc-whitelist: 白名單的IP

rpc-whitelist-enabled: 是否開啟白名單。如果不開啟,誰都可以訪問,如果開啟,只有白名單內的IP才能訪問。

通過以上幾個關鍵點設置,你就可以通過瀏覽器的方式來訪問這個Transmission了。同樣的,有人做了Transmission-remote-GUI來訪問這個資源。推薦 https://code.google.com/p/transmisson-remote-gui/ 不少發行版也包括了這個資源,名字為transgui使用這個就和普通Transmission差不多了。

 

參考自:https://trac.transmissionbt.com/wiki/HeadlessUsage

https://trac.transmissionbt.com/wiki/EditConfigFiles

 

VNC設置

因為對SSH不熟悉,VNC最開始是打算遠程操作Raspberry Pi的, 所以也就有了這一部分。但是這一部分因為現在不用了,直接導致我對這部分配置已經忘記了……只留下來這么多……

VNC加密碼:使用vncpassword

VNC限制IP訪問:使用iptables

防火牆,網絡端口

提醒:由於這個是對於網絡端口的操作,配置不當可能導致無法上網。

我的iptables:

*filter

:INPUT DROP [23:2584]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [1161:105847]

-A INPUT -i lo -j ACCEPT

#允許80端口的網頁訪問,如果你沒有建立網絡服務器,那就不要用這一條了

-A INPUT -i eth0 -p tcp -m tcp --dport 80 -j ACCEPT

#下面兩個samba需要的

-A INPUT -i eth0 -p tcp --dport 445 -j ACCEPT

-A INPUT -i eth0 -p tcp --dport 139 -j ACCEPT

#也是網頁訪問的要求

-A INPUT -i eth0 -p tcp -m tcp --dport 443 -j ACCEPT

#允許別人ping你這個機器

-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT

#允許當前已建立的連接

-A INPUT -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT

COMMIT

 

*nat

:PREROUTING ACCEPT [1:148]

:INPUT ACCEPT [1:148]

:OUTPUT ACCEPT [0:0]

:POSTROUTING ACCEPT [0:0]

#nat出口為eth0

-A POSTROUTING -o eth0 -j MASQUERADE

COMMIT

解釋一下,開那幾個端口是因為Samba要使用

-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT

是指開啟了ping響應。如果ACCEPT換為DROP則屏蔽ping

還有那些中括號里邊的數字,非常不了解……

在網絡啟動之后自動載入iptables

找到/etc/network/interface,查看里邊的內容,大致如下:

auto lo

 

iface lo inet loopback

 

iface eth0 inet dhcp

 

allow-hotplug wlan0

iface wlan0 inet manual

wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf

iface default inet dhcp

 

pre-up iptables-restore < /etc/network/iptables

最后一行就是自動導入iptables,也就是上面的iptables內容保存在了/etc/network/iptables這個位置當中。

 

參考自:http://www.simonthepiman.com/how_to_setup_your_pi_for_the_internet.php

http://wiki.debian.org/iptables

 

 

更改ssh設置

配置文件位置:/etc/ssh/sshd_config

 

SSH可能在輸入用戶名之后響應很慢:

在配置文件當中,最后一行加入:UseDNS no

重啟daemon:

sudo service ssh restart

就可以了。

參考自:http://ubuntuforums.org/showthread.php?p=10399729

http://www.ceyhunkirmizitas.net/linux/ssh-connection-wait-long-after-entering-username-ssh-password-prompt-delay/

 

屏蔽root登陸

同樣是在配置文件當中,默認情況會有這一行:

#PermitRootLogin no

把前面的星號去掉即可,如果沒有找到,那添加這一行就行了。

保存文件並重啟daemon即可。

http://www.howtogeek.com/howto/linux/security-tip-disable-root-ssh-login-on-linux/

 

更改登陸提示信息:

登陸信息文件位於/etc/motd

一個樣例:

^[[0;31m歡迎

^[[0m

^[是ESC的代碼,在vi中輸入的時候應該是按CTRL+V,之后再按esc按鍵即可。或者直接echo:

echo -en "\033[1;34m" > /etc/motd

\033 代表了ESC這個特殊字符。

顏色對應:

Code Color

-----------------------------

[0;30m | black text

[0;31m | red

[0;32m | green

[0;33m | blue

[0;34m | purple

[0;35m | cyan

[0;36m | silver

[0;40m | red back.

[0;41m | green back.

[0;42m | brown back.

[0;43m | blue back.

[0;44m | purple back.

[0;45m | cyan back.

[0;46m | silver back.

引用自:http://www.linuxquestions.org/questions/linux-software-2/adding-colors-to-your-motd-105038/

 

配置Samba

sudo apt-get install samba

配置文件是在/etc/samba/smb.conf

前面的都無所謂,因為我用不到那么多東西,就沒有管。只是新開了一個共享文件夾:在最后加入如下內容

[Photos]

comment = Photos

public = yes

path = /mnt/

valid users = pi

read only = yes

其中中括號內的東西是你在共享文件夾中看到的名字,valid users是哪些用戶可以訪問這個文件夾,因為pi用戶是默認用戶,可以直接使用。訪問文件夾的權限設置為只讀。

參考:http://elinux.org/R-Pi_NAS

 

網關自動登陸

由於目前使用的是需要登陸網關才能訪問外網的網絡,所以如何讓Raspberry Pi登陸就是一個問題。

最原始的方法:VNC遠程桌面,因為開了VNC,Raspbian自帶了瀏覽器,可以登陸網關來填寫用戶名密碼。

稍微省事點兒的:SSH下面的Lynx,但是網關需要cookie以及一些HTML表單特性,Lynx不支持那么多,所以放棄了

麻煩的:wget方法,將其作為一個腳本,wget網址並將參數發送到服務器當作,保存cookie,登陸的時候再用這個cookie。

需要遠端支持的:建立ssh端口影射,putty很容易做到putty/connection/proxy下面有相關設置,但是這個需要登陸ssh的為電腦設備,那樣才能用瀏覽器端口代理解決這個問題。

我現在用的:自己編寫了一個C#程序,在Raspberry Pi上面安裝了mono,編譯之后留着運行的。因為這樣我也可以在手機的ssh端來控制我的Raspberry Pi了。

而且利用crontab來達到每月月初自動登陸的需要。

網卡問題

有線網卡問題:

我沒有遇到過,但鑒於一些人遇到了所以拿來分享一下:

在/etc/sysctl.conf當中,找到

.min_free_kbytes = 8192

這一行,講8192改為16384或更高。如果這個不起作用,則嘗試在/boot/cmdline.txt當中添加一個參數:

smsc95xx.turbo_mode=N

這樣會降低網絡速率,但是提升了穩定性。不過經過我的實驗,兩個都改了之后,網絡使用Transmission下載依然可以達到最快9.7M的速率,所以我認為這個影響的是上傳下載同時進行時候的效率。

參考:http://elinux.org/R-Pi_Troubleshooting#Crashes_occur_with_high_network_load

 

無線網卡的問題

這個問題目前依然沒有解決。我的網卡是RTL8188CUS核心的Netcore網卡,當時圖便宜買的,目前Raspbian不能將這個設置為一個AP,所以hostapd軟件不起作用。看到有人用這類核心,但是Edimax牌子的無線網卡就做成這個了,所以不了解具體是什么情況。

(20131029之后升級什么的我也沒測試,因為拿回家了。找了個RT5xxx的來測試,是可以用hostapd來進行建立熱點的,所以終究是驅動問題,現在應該解決了吧?)

DNS設置

不要自動獲取DNS

在文件夾/etc/dhcp3/dhclient-enter-hooks.d/當中新建一個文件noDNSupdate,名字不重要。

在其中輸入以下內容:

#!/bin/sh

make_resolv_conf(){

:

}

 

保存之后並將該文件設置為可運行即可。

自動掛載外接的USB移動硬盤

有一種方法是在/etc/init.d/下面建立一個掛載腳本,我曾經那么做過,但是因為發現fstab也能做,所以那個腳本就扔那沒動過了。

在fstab當中加入如下一行:

/dev/sda1    /mnt    ext4    defaults,auto    0    0

我的硬盤是sda1分區就是數據分區,已經格式化成ext了。這里建議使用ext的分區來操作。因為在我實踐過程中發現,NTFS分區效率太低,還需要另外安裝ntfs-3g來進行讀寫數據。很奇怪的是,我在真機上面發現Win8對於硬盤NTFS分區的操作不是以前的那種方法了。正常關機(非快速關機)之后Linux掛載該分區並填寫數據之后,會導致Win8認為這塊分區有問題(這個已經被證實,Win8采用了新的方式,而Linux在那時候還沒有准備好對應的讀寫驅動,甚至於導致某些發行版直接采用只讀方式了)。之前Win7或者WinSvr2008R2都沒這問題的。

最重要的原因是我下載速度用NTFS的話會被嚴重干擾,只有2M左右,而且大部分CPU時間都被NTFS霸占了……所以Linux還是用ext比較好。Transmission校驗速度在10MB/s以上

還有一個重要的事情,我測試了一下,本來是想搞電路上面的一些測試,但是意外的一個結果,如果這個硬盤接在了Hub后面,系統在啟動的時候找不到該硬盤的……所以這個掛載就得手動實現了,也即是在開始說的用腳本實現。這個已經在最新的內核當中修改了,如果用的是#538及之后的內核,那么系統可以認出在Hub后面的硬盤並進行掛載的,不需要另外腳本設置了。(20131029)

虛擬內存設置

首先關掉虛擬內存,建議比如Transmission這類耗內存的可以先關掉

sudo service transmission-daemon stop

sudo swapoff -a

首先建立一個swapfile:http://rpi-blog.com/how-to-create-a-swap-file/

sudo dd if=/dev/zero of=/var/swap bs=1M count=256

sudo mkswap /var/swap    

sudo swapon /var/swap

sudo nano /etc/dphys-swapfile

在這個文件當中輸入:

CONF_SWAPFILE=/var/swap

CONF_SWAPSIZE=256

即可保證每次開啟之后自動使用/var/swap來做為虛擬內存。這個的位置有爭議。有人說不能放在SD卡上因為這個讀寫損耗比較大,於是我就放在了USB上面。但是有一次我不小心把硬盤放在了不通風的地方,硬盤溫度過高導致自我保護,硬盤關閉,從而虛擬內存無法讀取,最后導致了Raspberry Pi的花屏。說實話,除了顯卡原因,我真的很少見Linux花屏的。

omxplayer播放器設置/Raspberry Pi也可以播高清!

請用

sudo apt-get install omxplayer

來進行軟件的安裝。后面划掉的如果你想自己編譯的話就看吧……

這個倒是不難,就是耗時間……我是這樣的,沒有用那個現成的安裝包:

sudo apt-get install ca-certificates git-core binutils libboost1...-dev libva1 libpcre3-dev

git clone https://github.com/wrightrocket/omxplayer

獲得完源代碼之后,就開始編譯步驟了:

make sources

make -f Makefile.ffmpeg

sudo make -f Makefile.ffmpeg install

make

sudo make install

這個過程我花了2個多小時,主要是編譯比較慢,ffmpeg這個耗時間。

總之最后是可以調用omxplayer來播放影片了!它會在當前目錄留個小尾巴:omxplayer.log,我還不知道怎么讓它不出現。

經過我的測試,我使用了192/64的內存/顯存分配(32M顯存的話omxplayer自動退出,128/128因為有Transmission存在所以沒用),可以順暢播放720P的電影,碼率在11M之內的都可以播放。(羡慕512M版本的啊!)而1080P會卡的比較嚴重甚至於無法播放,估計原因在於顯存不夠,引用當中的URL也有人說了可以用來播放1080P的。至於藍光,我試了,當然不行,而通過Samba來播放藍光,看到了傳輸速度在40Mbps。普通的54Mbps無線已經陣亡或者150Mbps的無線帶寬也不夠了。我用的150Mbps路由和接收器,報告速度都是150Mbps但是實際傳輸速度也就30Mbps的樣子,所以還是有線才能播。

(20131029)之前的150Mbps不是不夠,而是我那時候用的是那種便攜式的路由器,150Mbps只是標稱。隨着后來有了真300的路由,無線播高清不是問題,所以這個是路由器的問題。

而且,通過apt-get更新omxplayer之后發現播放flac和wma居然是卡頓的!換了別的播放器(忘了名字了)可以順利播放。更新之前也就是一直用自己編譯的那個是沒有這個問題的,好奇怪,libavcodec的問題么?

參考:http://elinux.org/Omxplayer

http://omxplayer.sconde.net/

http://www.brianhensley.net/2012/07/how-to-get-1080p-videos-running-on-my.html?spref=fb

http://wrightrocket.blogspot.com/2012/08/building-omxplayer-for-raspbian-on.html

 

供電問題

因為手頭多了個移動電源,便想到拿那個做一個應急電源來維持Raspberry Pi,所以我也測試了一下Raspberry Pi各種電路的接入方式。這也導致了為啥我之前對虛擬內存的位置存疑點的原因。

很慶幸小蟲子給我的移動硬盤盒是可以倒灌電流的,也就是外接電源接移動硬盤,然后USB線是可以輸出電流的。也正是因為這一點,才使得我不用那么多設備線材也可以啟動Raspberry Pi了。

電源有兩個:一個是普通USB手機充電器那種的(移動電源也是USB口),一個是5vDC的移動硬盤外接電源。

用電設備為:Raspberry Pi(支持USB或者MicroUSB電源輸入),移動硬盤(支持5vDC或miniUSB輸入),USB Hub(可選,支持5vDc或者miniUSB輸入)

有以下2*2=4種方式:

 

5vDC接Hub

5vDC接移動硬盤

HDD接Hub

不能自動掛載可以自動掛載

USB必須供電給Raspberry Pi

這需要兩個供電線路,而且跟Hub的好壞有關,因為移動硬盤正好卡在500ma那個界限上,因此掉線的幾率偏大。

不宜使用

不能自動掛載可以自動掛載

USB必須供電給Raspberry Pi

這需要兩個供電線路。

需要一根USB2MicroUSB,兩根USB2miniUSB

HDD直接接到Raspberry Pi的兩個口當中的一個

USB供電給Raspberry Pi可以,但是會導致網卡隨機啟動不了,HDD是電源不足無法啟動。

不使用本方案。

目前我使用的方案。

測試當中,如果將USB供電給Raspberry Pi的MicroUSB口,拔掉5vDC的電源,硬盤會供電不足,又由於虛擬內存在硬盤上面,從而花屏。如果把虛擬內存放到SD卡上,頂多是Transmission不能正常跑了。但會有SD卡損耗問題。

總之,供電還是沒有采用雙線供電的,移動電源考慮到不能帶硬盤也就沒用上了。而且這個雙線都是在自己屋子里弄的,家里斷電那再雙路也不行的,索性就不弄這個了。

另外在測試過程中我使用我手機充電線,買USBHub時候送的線來比較,發現線材不同,影響很大,最明顯的就是網卡帶不起來。還好我有多功能電表,測量了一下,送的那根線電阻在8Ω左右,而手機充電線在1Ω左右,差距就在這里。所以如果有朋友看到我這篇文章,建議你去買跟好線,很多莫名其妙的錯誤也會與供電有關的

(20131029)測試過一段時間上面表格的左上角那個方案,因為新內核已經支持了Hub后面的硬盤。但是最終還是換回右下的方案了,純粹是因為布線想簡單些。

而且曾經試過在線的電源切換:原來是通過硬盤反向供電,首先把硬盤umount掉,使用USB充電器通過microUSB供電之后,從電路當中移除硬盤。此時沒有掉電,因為電路一直是有5V供電的。但是因為一個誤操作導致重啟了……

所謂的誤操作:因為沒事拿了個風扇玩,通過GPIO口直接取電,那次在把3.3V移出之后隨便放了,地線沒有拔掉,而旁邊放的SurfacePro是金屬外殼,那根線就碰了一下外殼,然后Pi重啟了……后來測量了一下,外殼和Pi的地線的電壓差是5V……這個大坑,怪不得有時候胳膊碰外殼會發麻……

 

雜項

內存卡建議選至少8G的,不一定要裝什么東西呢。我裝了latex之后就花了1G多,帶上系統2G,再有別的軟件什么的,現在已經用了5.3G了(20131029依然是這個容量,居然沒怎么變,太神奇了!)

 

總結

這個東西是一個很麻煩的東西,非常零碎的事情都會遇到,只能一點一點積累。目前我主要是用它來下載東西,相當於一個自建的離線文件存儲工具。而且有了Samba之后,這個就是一個簡易的NAS,花費的話,我買的時候是老版本,花了¥310.05而且是256M的內存。不到40元購買了8G內存卡,花了44買個帶供電的Hub,36買了個外殼(20131029必須吐槽,這個殼子真心沒用,插GPIO非常不方便,我現在裸奔了),還有之前花20買了個Hub卻發現供電那部分不行。還有15買了個HDMI2DVI的線,網線自備,找老呂借了個無線鍵盤(已經還了,目前大多用SSH了,網上買了個USB鍵盤以備不時之需,無線鍵盤信號有問題,會出現按了一下但是一直打字的奇怪問題)。總之花了不少周邊設施的錢。

 

(20131029修改了部分內容,才發現已經9個月沒有編輯過了)


免責聲明!

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



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