1. 程式人生 > >樹莓派3到手摺騰筆記,完全新手指導。

樹莓派3到手摺騰筆記,完全新手指導。

買樹莓派本打算全年無休跑python爬蟲來著,不過既然到手了,就順便折騰一下。

本文比較簡單,完全適合新手入門。用於將樹莓派3配置為下載機並實現翻牆內網穿透。

安裝系統

下載系統

官網下載: https://www.raspberrypi.org/downloads/raspbian/

  • Raspbian Jessie with PIXEL

    RASPBIAN JESSIE WITH PIXEL

    Image with PIXEL desktop based on Debian Jessie Version:September 2016 Release date:2016-09-23 Kernel version:4.4
  • Raspbian Jessie Lite

    RASPBIAN JESSIE LITE

    Minimal image based on Debian Jessie Version:September 2016 Release date:2016-09-23 Kernel version:4.4

個人建議新手下載PIXEL的帶桌面的版本,愛折騰的也可以下載LITE然後裝個i3桌面之類的。

下載zip檔案,然後解壓出裡面的img映象

安裝系統

把解壓出來的系統映象img檔案,寫入到tf卡里,手頭有一張16G的tf卡直接拿來用了。寫卡用官方說的Win32diskimager工具或是其他都行,我這裡寫卡用的USB Duplicator Image Writer,綠色版省事。

tf放讀卡器上插到電腦,然後開啟工具勾選對應想映象檔案和tf卡,點選寫卡,等寫完就OK,也就5分鐘左右。

將tf卡插回樹莓派,然後插上電源,就用一般手機的2A充電器電源就行,用不著特意去找2.5A的。

連線樹莓派

最開始的時候要麼把樹莓派用網線連筆記本上,要麼把樹莓派用網線連到家裡路由器上。當然不論怎麼連,總之你還是需要一根網線的。

建議是後一種,因為樹莓派當下載器跑的話是要常年開著的。電腦連樹莓派只是個臨時方案。電腦連還有可用之處在於,如果你要折騰的軟體包需要翻牆下載,那麼你可以直接把筆記本翻牆,然後開啟全域性模式,比如用SS,然後用樹莓派網線插到筆記上,這時候的樹莓派就相當於翻牆聯網了。這個方法很適合更新軟體包卻要翻牆時應急用。

檢視ip

網線接電腦的話,電腦開啟cmd命令列,輸入arp -a

。找一個b8-27-開頭的mac實體地址,如果分不清哪個是的話,網線插拔前後分別執行一下arp -a。多出來那個ip就是。

網線接路由器話一樣,開啟路由器介面看一下客戶端列表,同上找到ip即可。有的列表顯示客戶端名,名稱叫raspberrypi的那個就是。(建議路由器繫結一個固定ip給樹莓派,因為ip是動態的,如果不繫結下次就可能是另一個ip了。綁了的話ip固定,就不用每次都看了)

連樹莓派

這裡我們用的的工具是putty,沒有的話下載一個,如果你想折騰樹莓派,這個你會常用的。

開啟putty。ip填進去,port埠 22,選SSH,點OPEN連結。第一次連會彈安全提示,直接點Y確認即可。

login as輸入使用者名稱pi

password輸入密碼raspberry

密碼是不顯示文字的,輸完回車即可。

這時會提示你:

Last login: Fri Sep 23 04:02:56 2016
[email protected]:~ $

這就算連結成功了

後面就不說這面多廢話了

開啟root賬號

為了方便折騰,第一時間啟用 ROOT 賬號
# 設定 root 賬號的密碼,會讓你輸入兩次新密碼 
sudo passwd root
# 啟用 root 賬號登入 
sudo passwd --unlock root
# 進入root賬戶
su root
# 修改ssh配置
nano /etc/ssh/sshd_config
修改 PermitRootLogin without-password 為 PermitRootLogin yes,crtl+o儲存,ctrl+x關閉。
# 儲存後重啟
reboot
# 重新開啟putty,輸入使用者名稱root和密碼
root
登陸完畢

擴充套件可用空間

映象只佔了一部分,還有tf卡還有很多剩餘空間沒有利用。

# 進入配置面板
sudo raspi-config
選第1項 Expand Filesystem
# 擴充套件後重啟 reboot ,擴充套件後可以通過命令檢視SD卡的可用空間
df -h

更改時區

# 進入配置面板
sudo raspi-config
選第5項 Internationalisation Options 
選第2項 Change Timezone
選擇 Asia
選擇 Shanghai

連線桌面

自帶桌面

因為之前下載的是自帶桌面的系統,所以沒什麼可說的,很簡單。安裝下面兩個軟體就行。

sudo apt-get install tightvncserver
sudo apt-get install xrdp

如果提示Unable……apt-get update……之類的,就更新一下。

apt-get update

然後再執行之前的那兩條指令

安裝完成後,就可以用windows自帶的遠端桌面工具,連線進入樹莓派桌面

i3桌面(用不到)

官方系統是有自帶桌面的,不用裝這個,這個是是我自己折騰玩的,只做記錄用。

# 如果下載的是精簡版系統,是沒有桌面的,最好裝個i3之類的桌面
#(安裝之後Alt+1等數字切換介面,Alt+Enter新建介面,Alt+Shift+Q關閉介面)
apt-get install x-window-system-core 
apt-get install i3
mkdir ~/.i3
nano ~/.i3/config
# 貼上內容如下(等號線以內的部分)這個是配置檔案是網上找來的備份記錄一下:

# This file has been auto-generated by i3-config-wizard(1).
# It will not be overwritten, so edit it as you like.
#
# Should you change your keyboard layout somewhen, delete
# this file and re-run i3-config-wizard(1).
#

# i3 config file (v4)
#
# Please see http://i3wm.org/docs/userguide.html for a complete reference!

set $mod Mod1

# Font for window titles. Will also be used by the bar unless a different font
# is used in the bar {} block below. ISO 10646 = Unicode
#font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1
#font -wenquanyi-wenquanyi bitmap song-medium-r-normal--12-120-75-75-p-119-iso10646-1
font xft:monaco 10
# The font above is very space-efficient, that is, it looks good, sharp and
# clear in small sizes. However, if you need a lot of unicode glyphs or
# right-to-left text rendering, you should instead use pango for rendering and
# chose a FreeType font, such as:
# font pango:DejaVu Sans Mono 10

# Use Mouse+$mod to drag floating windows to their wanted position
floating_modifier $mod

# 自定義
bindsym $mode+m exec emacs
# 無邊框:$mod+u
# 普通模式:$mod+t
bindsym $mod+t border normal
bindsym $mod+u border none
# 自動把開啟的程式放到指定工作區
assign [class="(?i)firefox"] → 1
assign [class="(?i)emacs"] → 2
assign [class="(?i)amule"] → 3

# 暫存器使用
# mod shift -  隱藏當前視窗
# mod -	       現實第一個暫存的視窗	
bindsym $mod+Shift+minus move scratchpad
bindsym $mod+minus scratchpad show

# start a terminal
bindsym $mod+Return exec i3-sensible-terminal

# kill focused window
bindsym $mod+Shift+q kill

# start dmenu (a program launcher)
bindsym $mod+d exec dmenu_run
# There also is the (new) i3-dmenu-desktop which only displays applications
# shipping a .desktop file. It is a wrapper around dmenu, so you need that
# installed.
# bindsym $mod+d exec --no-startup-id i3-dmenu-desktop

# change focus
bindsym $mod+j focus left
bindsym $mod+k focus down
bindsym $mod+l focus up
bindsym $mod+semicolon focus right

# alternatively, you can use the cursor keys:
bindsym $mod+Left focus left
bindsym $mod+Down focus down
bindsym $mod+Up focus up
bindsym $mod+Right focus right

# move focused window
bindsym $mod+Shift+j move left
bindsym $mod+Shift+k move down
bindsym $mod+Shift+l move up
bindsym $mod+Shift+semicolon move right

# alternatively, you can use the cursor keys:
bindsym $mod+Shift+Left move left
bindsym $mod+Shift+Down move down
bindsym $mod+Shift+Up move up
bindsym $mod+Shift+Right move right

# split in horizontal orientation
bindsym $mod+h split h

# split in vertical orientation
bindsym $mod+v split v

# enter fullscreen mode for the focused container
bindsym $mod+f fullscreen

# change container layout (stacked, tabbed, toggle split)
bindsym $mod+s layout stacking
bindsym $mod+w layout tabbed
bindsym $mod+e layout toggle split

# toggle tiling / floating
bindsym $mod+Shift+space floating toggle

# change focus between tiling / floating windows
bindsym $mod+space focus mode_toggle

# focus the parent container
bindsym $mod+a focus parent

# focus the child container
#bindsym $mod+d focus child

# switch to workspace
bindsym $mod+1 workspace 1
bindsym $mod+2 workspace 2
bindsym $mod+3 workspace 3
bindsym $mod+4 workspace 4
bindsym $mod+5 workspace 5
bindsym $mod+6 workspace 6
bindsym $mod+7 workspace 7
bindsym $mod+8 workspace 8
bindsym $mod+9 workspace 9
bindsym $mod+0 workspace 10

# move focused container to workspace
bindsym $mod+Shift+1 move container to workspace 1
bindsym $mod+Shift+2 move container to workspace 2
bindsym $mod+Shift+3 move container to workspace 3
bindsym $mod+Shift+4 move container to workspace 4
bindsym $mod+Shift+5 move container to workspace 5
bindsym $mod+Shift+6 move container to workspace 6
bindsym $mod+Shift+7 move container to workspace 7
bindsym $mod+Shift+8 move container to workspace 8
bindsym $mod+Shift+9 move container to workspace 9
bindsym $mod+Shift+0 move container to workspace 10

# reload the configuration file
bindsym $mod+Shift+c reload
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
bindsym $mod+Shift+r restart
# exit i3 (logs you out of your X session)
bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -b 'Yes, exit i3' 'i3-msg exit'"

# resize window (you can also use the mouse for that)
mode "resize" {
        # These bindings trigger as soon as you enter the resize mode

        # Pressing left will shrink the window’s width.
        # Pressing right will grow the window’s width.
        # Pressing up will shrink the window’s height.
        # Pressing down will grow the window’s height.
        bindsym j resize shrink width 10 px or 10 ppt
        bindsym k resize grow height 10 px or 10 ppt
        bindsym l resize shrink height 10 px or 10 ppt
        bindsym semicolon resize grow width 10 px or 10 ppt

        # same bindings, but for the arrow keys
        bindsym Left resize shrink width 10 px or 10 ppt
        bindsym Down resize grow height 10 px or 10 ppt
        bindsym Up resize shrink height 10 px or 10 ppt
        bindsym Right resize grow width 10 px or 10 ppt

        # back to normal: Enter or Escape
        bindsym Return mode "default"
        bindsym Escape mode "default"
}

bindsym $mod+r mode "resize"

# Startups #
exec --no-startup-id fcitx
exec --no-startup-id volumeicon

# Start i3bar to display a workspace bar (plus the system information i3status
# finds out, if available)
bar {
	position top
        status_command conky -c ~/.conkyrc
    colors {
        background #555555
        statusline #ffffff
        focused_workspace  #4c7899 #285577 #ffffff
        active_workspace   #333333 #5f676a #ffffff
        inactive_workspace #333333 #222222 #888888
        urgent_workspace   #2f343a #900000 #ffffff
    }

}

裝i3還可以裝系統執行監視工具conky,很不錯

apt-get install conky
要折騰一個適合樹莓派下載機用的conky配置還是要花點時間的,先不弄了。

Aria2下載工具&webUI

Aria2安裝

# 安裝Aria2
sudo apt-get install aria2
# 新建資料夾 #新建session檔案 #新建配置檔案
mkdir ~/.aria2 
touch ~/.aria2/aria2.session 
nano ~/.aria2/aria2.conf
# 貼上內容如下:

#檔案儲存目錄自行修改 
dir=/root/Download
disable-ipv6=true
#開啟rpc的目的是為了給web管理端用 
enable-rpc=true
rpc-allow-origin-all=true
rpc-listen-all=true
#rpc-listen-port=6800
continue=true
# 路徑要絕對路徑
input-file=/root/.aria2/aria2.session
# 儲存你的下載列表
save-session=/root/.aria2/aria2.session
max-concurrent-downloads=3
# 儲存並執行以下命令:
sudo aria2c --conf-path=/root/.aria2/aria2.conf
# 執行下面指令,如果沒有錯誤,Ctrl+C終止並繼續下一步,把aria2做成系統服務:
sudo nano /etc/init.d/aria2c
# 貼上內容如下(從網上找來的,稍微改了點):
#!/bin/sh
### BEGIN INIT INFO
# Provides:          aria2
# Required-Start:    $remote_fs $network
# Required-Stop:     $remote_fs $network
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Aria2 Downloader
### END INIT INFO
case "$1" in
start)
    echo -n "Starting aria2c"
    sudo -u root aria2c --conf-path=/home/root/.aria2/aria2.conf -D
    #sudo -u後面的是你正在使用的使用者名稱,因為我用的root,別忘記改成自己的
;;
stop)
    echo -n "Shutting down aria2c "
    killall aria2c
;;
esac
exit

# 儲存後退出,然後設定這個檔案的許可權為755:
sudo chmod 755 /etc/init.d/aria2c
# 測試Aria2服務是否可以啟動:
sudo service aria2c start
# 如果沒有其他錯誤提示的話就說明成功了;如果提示錯誤reboot一下。最後新增aria2c服務到開機啟動:
sudo update-rc.d aria2c defaults

小常識

chmod 755的意思 
chmod是Linux下設定檔案許可權的命令,後面的數字表示不同使用者或使用者組的許可權。 一般是三個數字: 
第一個數字表示檔案所有者的許可權 。
第二個數字表示與檔案所有者同屬一個使用者組的其他使用者的許可權 。
第三個數字表示其它使用者組的許可權。 
許可權分為三種:讀(r=4),寫(w=2),執行(x=1) 。 綜合起來還有可讀可執行(rx=5=4+1)、可讀可寫(rw=6=4+2)、可讀可寫可執行(rwx=7=4+2+1)。 
所以,chmod 755 設定使用者的許可權為: 
7 -- 檔案所有者可讀可寫可執行
5 -- 與檔案所有者同屬一個使用者組的其他使用者可讀可執行
5 -- 其它使用者組可讀可執行
ls -la 檢視檔案許可權[email protected]:~# sudo ls -la /etc/init.d/aria2c
-rwxr-xr-x 1 root root 475 Nov 9 17:05 /etc/init.d/aria2c
許可權列表 
-rw------- (600) 只有所有者才有讀和寫的許可權 
-rw-r--r-- (644) 只有所有者才有讀和寫的許可權,組群和其他人只有讀的許可權 
-rwx------ (700) 只有所有者才有讀,寫,執行的許可權 
-rwxr-xr-x (755) 只有所有者才有讀,寫,執行的許可權,組群和其他人只有讀和執行的許可權 
-rwx--x--x (711) 只有所有者才有讀,寫,執行的許可權,組群和其他人只有執行的許可權 
-rw-rw-rw- (666) 每個人都有讀寫的許可權 
-rwxrwxrwx (777) 每個人都有讀寫和執行的許可權 
# 檢視程序,包含aria字串
ps -ef|grep aria
# 如果提示埠被佔用
killall aria2c

安裝nginx

# 安裝nginx,一款輕量級的Web 伺服器/反向代理伺服器及電子郵件(IMAP/POP3)代理伺服器
sudo apt-get install nginx
# 家用網路通常都是封80埠,所以得修改預設埠 
nano /etc/nginx/sites-available/default
# 改 listen 80; 為 listen 8080; # 8080便是新的監聽埠
#listen 80 default_server;
#listen [::]:80 default_server;
listen 8080 default_server;
listen [::]:8080 default_server;
# root /var/www/html; #網頁檔案存放位置(預設就是,不用改)
# 修改完配置後需要重新nginx服務
sudo service nginx start

安裝webui-aria2

# https://github.com/ziahamza/webui-aria2下載壓縮包
wget https://github.com/ziahamza/webui-aria2/archive/master.zip
# 解壓,刪除壓縮包
unzip master.zip 
rm master.zip
# 改資料夾名為webui
mv webui-aria2-master webui
# 建立本機的HTML網頁根目錄,移動資料夾到該目錄下
mkdir -p /var/www/html/ 
mv webui /var/www/html/
# 設定許可權目錄許可權,讓其有許可權下載檔案到本地
chmod 755 /var/www/html/webui
# 設定完成後重啟
reboot
# 瀏覽器訪問即可(建議使用chrome瀏覽器或360極速模式,ie可能載入異常)
http:// IP :8080/webui/

內網穿透

家庭網路一般是內網,也就是沒有外網IP。

要想在外面也能連上家裡的下載器,方法不一。免費的比如:ssh反向代理,Ngrok;收費的就不說了,為了一個樹莓派不值得。

感興趣的可以自己研究,之前樹莓派放家裡玩的時候通過下面方法實現的,現在用不到了,只是記錄一下。

frp

實現的工具是frp和一臺VPS雲主機,因為vps是有外網ip的。

另外還在noip上申請了個免費域名,並將域名解析到vps的ip。

frp工具的原始碼和介紹 https://github.com/fatedier/frp/blob/master/README_zh.md ,感謝開源工具的奉獻者們做出的貢獻。

VPS端:
# cpu是intel的,下載386版
wget https://github.com/fatedier/frp/releases/download/v0.8.1/frp_0.8.1_linux_386.tar.gz
tar -zxf frp_0.8.1_linux_386.tar.gz
rm frp_0.8.1_linux_386.tar.gz
cd frp_0.8.1_linux_386

# 更改客戶端配置檔案

nano frps.ini

# 原有的刪掉,貼上,儲存

[common]
bind_port = 7000
vhost_http_port = 6800
dashboard_port = 7500
[ssh]
listen_port = 6000
auth_token = 123
[web]
type = http
custom_domains = xxx.xxx.xxx # 之前申請的域名。
auth_token = 123

# 執行

./frps -c ./frps.ini &

樹莓派端:
# cpu是arm的,下載arm版
wget https://github.com/fatedier/frp/releases/download/v0.8.1/frp_0.8.1_linux_arm.tar.gz
tar -zxf frp_0.8.1_linux_arm.tar.gz 
rm frp_0.8.1_linux_arm.tar.gz
cd frp_0.8.1_linux_arm

# 更改客戶端配置檔案

nano frpc.ini

# 原有的刪掉,貼上,儲存

[common]
server_addr = x.x.x.x  # vps主機ip
server_port = 7000
auth_token = 123
[ssh]
local_port = 22
[web]
type = http
local_port = 6800 #本地Aria2介面

# 執行

./frpc -c ./frpc.ini &


然後就OK了

SSH的話,可以通過 putty ip:6000連結。

下載的話,可以通過 http://ziahamza.github.io/webui-aria2/ 連線設定,主機直接填寫域名,然後就能連上,遠端建立下載了。也可以直接再vps上也部署一個webui,直接訪問域名開啟weiui頁面,實現遠端下載。

小常識

通過埠查佔用了埠的程式

# 下面以7500埠來看怎麼查詢到該程式,我們使用下面的命令

netstat -lnp|awk 'BEGIN{prt=":7500$"}{if ($4 ~ prt) print $0}'

其他

python相關

# 安裝python3(精簡版映象是沒有python3的所以安裝)
apt-get install python3
# 安裝pip、pip3(對應python2、python3)
apt-get install python-pip
apt-get install python3-pip
# python3安裝模組舉例
pip3 install requests

# 樹莓派預設python是python2.x。如果是用python3寫的指令碼在執行的時候,用python3 a.py這種方式就行了。

區域網共享檔案

比較實用的比如 samba,具體內容網上有很多,不做記錄了。困了,如果後續有空再補。