1.1 項目介紹 1.2 硬體介紹 1.2.1 散熱片安裝 1.2.2 風扇安裝 附件1 1.2.3 屏幕安裝 1.3 系統介紹 目前很對公司或組織都為樹莓派開發了操作系統,常用的操作系統如下,可根據自己的具體需求燒錄安裝,下載地址:https://www.raspberrypi.org/downl ...
- 樹莓派系統介紹
- 安裝操作系統及網路\遠程式控制制配置
- 安裝常用軟體
- 構建web伺服器(nginx + php + sqlite)
- 構建web伺服器(appach+mysql+php)
- 構建NAS伺服器
- 其餘功能環境開發
- ……
- 樹莓派介紹
1.1 項目介紹
1.2 硬體介紹
1.2.1 散熱片安裝
1.2.2 風扇安裝 附件1
1.2.3 屏幕安裝
1.3 系統介紹
目前很對公司或組織都為樹莓派開發了操作系統,常用的操作系統如下,可根據自己的具體需求燒錄安裝,下載地址:https://www.raspberrypi.org/downloads/
第一類樹莓派原生操作系統:基於linux內核。有2種:raspbian官方的基礎版本操作系基於Debian系統。PIXEL是包含桌面的版本,LITE是單純的OS;NOOBS New Out of Box Software,是樹莓派官方發佈的工具可以拋開各種複雜的網路和鏡像安裝軟體,甚至可以拋開電腦就能讓你安裝上你想要的系統。NOOBS是離線安裝版,LITE是網路安裝版。
第二類第三方操作系統:包含了UBUNTU MATE;SNAPPY UBUNTU CORE;WINDOWS 10 IOT CORE;OSMC;RISC OS等等。
- 安裝操作系統及網路\遠程式控制制配置
2.1 系統安裝
2.1.1 下載系統的鏡像,根據需要選擇;我用的raspbin;下載到本地並用7zip解壓出img文件。
2.1.2 下載鏡像燒錄工具Win32DiskImager;並格式化tf卡
2.1.3 以管理員身份運行Win32DiskImager,找到解壓縮之後的系統img文件,寫入……
2.1.4 寫入完成之後取出tf卡,插入樹莓派卡槽,上電開機。
2.1.5 通常預設情況下樹莓派的系統是打開ssh的,因此在沒有安裝屏幕的情況下可以通過以下步驟連接上樹莓派進行操作:
- 樹莓派使用網線連上路由器
- 使用同一網段的PC段putty,直接連接樹莓派,預設用戶名:pi;密碼:raspberry;
- 如果能夠ping通,但是無法ssh連上,那有可能是預設系統沒有開啟ssh;下麵只需要在tf卡的boot目錄下(也就是tf卡根目錄)創建一個名稱為SSH的文件即可;重啟後就可以正常使用ssh了。
2.1.6 設置expand_rootfs 把整個系統的可用空間擴展到儲存卡的大小(樹莓派預設不使用SD卡的全部空間,有一部分保留,建議選中):
- sudo raspi-config
- 進入:
- 按tab鍵切換到:<Select> 選中後,sudo reboot;就可以了
- 附1:raspi-config的說明
2.1.7 開啟root賬戶:
- sudo passwd root
- 系統會提示輸入兩遍的root密碼
- 接著輸入下麵命令,用來解鎖root賬戶sudo passwd --unlock root
- 設置ssh遠程root登錄:sudo nano /etc/ssh/sshd_config ///Ctrl + W 快捷鍵 搜索 PermitRootLogin without-password ///修改 PermitRootLogin without-password 為 PermitRootLogin yes;reboot重啟
2.1.8 更新軟體源及系統:
- cd /etc/apt/
- 備份原來的源:cp sources.list sources.list_back
- 編輯新源sudo nano sources.list
- 更改為:中國科技大學源,把wheezy 改成jessie這樣大部分源是在中國。網址末尾的raspbian重覆兩次是必須的。因為Raspbian的倉庫中除了APT軟體源還包含其他代碼。APT軟體源不在倉庫的根目錄,而在raspbian/子目錄下。
deb http://mirrors.ustc.edu.cn/raspbian/raspbian/ jessie main contrib non-free rpi
deb-src http://mirrors.ustc.edu.cn/raspbian/raspbian/ jessie main contrib non-free rpi
- 更新:sudo apt-get update && sudo apt-get upgrade(# 更新軟體源sudo apt-get update/#更新軟體sudo apt-get upgrade)
- 附2:國內主要的源
2.2 網路及遠程式控制制配置
2.2.1 配置及使用VNC
A. 安裝sudo apt-get install tightvncserver
B. 設置密碼vncpasswd
C. 下載客戶端:https://www.realvnc.com/download/vnc/
D. 樹莓派開啟vnc server:vncserver :1 -geometry 800x600
E. 樹莓派關閉vnc server:vncserver -kill :1
F. 客戶端訪問桌面:vncviwer:192.168.1.***:1
G. 開機啟動vnc桌面: sudo nano /etc/init.d/tightvncserver 寫入附件2:
H. 設置支持中文:sudo apt-get install ttf-wqy-zenhei—不需要可以選擇不安裝,安裝之後要去setting裡面設置中文界面
2.2.2 配置自動登錄wifi
- lsusb #如果無效,查看驅動是否載入
- lsmod#如果未載入,進行載入 modprobe xxx
- sudo nano /etc/network/interfaces
- 修改並寫入附件4
2.2.3 配置固定IP
- 安裝常用軟體
3.1 安裝FTP server:
3.1.1 安裝vsftpd伺服器 (約400KB):sudo apt-get install vsftpd
3.1.2 啟動ftp服務:sudo service vsftpd start
3.1.3 編輯vsftdp的配置文件:sudo nano /etc/vsftpd.conf
配置:找到以下行,定義一下
anonymous_enable=NO
表示:不允許匿名訪問
local_enable=YES
設定本地用戶可以訪問。
write_enable=YES
設定可以進行寫操作
local_umask=022
設定上傳後文件的許可權掩碼。
存檔退出
3.1.4 重啟vsftpd服務:sudo service vsftpd restart
3.1.5 測試一下:通過ftp連接樹莓派系統,以用戶名pi登錄,密碼是raspberry
ftp的根目錄是/home/pi,即pi用戶的HOME目錄。可上傳或下載文件了
3.2 安裝ufw網路防火牆
3.2.1 安裝 :sudo apt-get install ufw
3.2.2 啟用(使用ssh登錄的請註意,請先開啟22埠,否則重啟機器後會導致ssh無法連接)
sudo ufw enable
sudo ufw default deny
作用:開啟了防火牆並隨系統啟動同時關閉所有外部對本機的訪問(本機訪問外部正常)。
3.2.3 關閉:sudo ufw disable
3.2.4 查看防火牆狀態:sudo ufw status
3.2.5 開啟/禁用常用埠或服務:
sudo ufw allow 80 允許外部訪問80埠
sudo ufw delete allow 80 禁止外部訪問80 埠
sudo ufw allow from 192.168.1.1 允許此IP訪問所有的本機埠
sudo ufw deny smtp 禁止外部訪問smtp服務
sudo ufw delete allow smtp 刪除上面建立的某條規則
sudo ufw deny proto tcp from 10.0.0.0/8 to 192.168.0.1 port 22 要拒絕所有的TCP流量從10.0.0.0/8 到192.168.0.1地址的22埠
可以允許所有RFC1918網路(區域網/無線區域網的)訪問這個主機(/8,/16,/12是一種網路分級):
sudo ufw allow from 10.0.0.0/8
sudo ufw allow from 172.16.0.0/12
sudo ufw allow from 192.168.0.0/16
3.2.6 常用埠:
21 :FTP
22 :ssh
25 :SMTP 發送郵件
80 :HTTP
110 :POP3 接收郵件
143 :IMAP 接收郵件
3306:SQL資料庫
3.3 安裝samba文件共用
3.3.1 安裝:
sudo apt-get update
sudo apt-get install samba samba-common-bin
3.3.2 配置samba:sudo nano /etc/samba/smb.conf (去掉#的註釋,否則samba會啟動失敗)
修改:[share] #共用文件的名稱,將在網路上以此名稱顯示
path = /home/pi/samba #共用文件的路徑
valid users = root pi #允許訪問的用戶,這裡我用的是root 和 pi 兩個用戶
browseable = yes #允許瀏覽
public = yes #共用開放
writable = yes #可寫
3.3.3 添加賬戶
3.3.3.1 啟用賬戶sudo smbpasswd -e pi
3.3.3.2 添加賬戶sudo smbpasswd -a pi
3.3.3.3 已添加賬戶 pi;密碼raspberry
3.3.4 重啟:sudo /etc/init.d/samba restart
- 構建web伺服器(nginx + php + sqlite)
4.1 安裝nginx web伺服器 :sudo apt-get install nginx
nginx的www預設根目錄:/var/www/html
修改預設目錄:
--sudo nano /etc/nginx/sites-available/default
--修改 root /var/www/html 和 fastcgi_param SCRIPT_FILENAME var/www/html$fastcgi_script_name;
--sudo /etc/init.d/nginx reload
4.2 安裝php和sqlite: sudo apt-get install php5-fpm php5-sqlite
4.3 修改nginx的配置文件
--sudo nano /etc/nginx/sites-available/default
--找到listen行,將其前面的#號註釋去掉,修改後內容如下
listen 80; ## listen for ipv4.
--找到index行,加入index.php,修改後內容如下
index index.php index.html index.htm
--找到php的定義段,將這些行的註釋去掉 ,修改後內容如下
location ~ \.php$ {
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_index index.php;
include fastcgi_params;
}
--重新載入nginx的配置: sudo /etc/init.d/nginx reload
4.4 測試php網頁
<?PHP
phpinfo();
?>
4.5 網頁訪問出現403錯誤,修改文件夾許可權;
- 構建web伺服器(appach+mysql+php)
5.1 安裝Apache(配置見附件)
Apache可以用下麵的命令來安裝
sudo apt-get install apache2
Apache預設路徑是/var/www/
其配置文件路徑為: /etc/apache2/
可以通過:sudo vi /etc/apache2/ports.conf修改監聽埠號
重啟服務生效:sudo service apache2 restart
5.2 安裝mysql(Sqlserver轉mysql方法:見附件5)
sudo apt-get install mysql-server
安裝過程中,會出現一個提示符讓你輸入一個密碼。
這個密碼是mysql root用戶的密碼。
連接MYSQL:
格式: mysql -h主機地址 -u用戶名 -p用戶密
5.2.1 mysql並開啟遠程訪問(開啟3306埠):
開啟mysql遠程訪問: 修改/etc/mysql/my.cnf文件
找到下麵這行,並用#註釋掉,
bind-address = 127.0.0.1
或者修改為bind-address = 0.0.0.0
登錄mysql,輸入下麵命令
mysql>grant all privileges on *.* to username@"%" identified by "password";(username一般是root,password是新的密碼)
mysql> FLUSH PRIVILEGES;
開啟3306埠遠程訪問
這裡的iptable命令和centos中命令不一樣,所以參考了一下文檔,使用 ufw軟體來開啟3306埠
5.3 安裝PHP
輸入下麵的命令,就可以安裝PHP 5,以及PHP訪問mysql資料庫所需要的庫。
sudo apt-get install php5
sudo apt-get install php5-mysql
sudo apt-get install php5-gd
sudo apt-get install libapache2-mod-php5
- 構建NAS伺服器
6.1 安裝samba(見3.3節)
6.2 安裝minidlna
sudo apt-get install minidlna
設置/etc/minidlna.conf文件,在文件尾部添加如下內容:
================================================================
media_dir=A,/home/pi/External_Disk/samba/DLNA/Music #A表示這個目錄是存放音樂的,當minidlna讀到配置文件時,它會自動載入這個目錄下的音樂文件
media_dir=P,/home/pi/External_Disk/samba/DLNA/Picture
media_dir=V,/home/pi/External_Disk/samba/DLNA/Video
db_dir=/home/pi/External_Disk/samba/DLNA/db #配置minidlna的數庫數據的存放目錄
log_dir=/home/pi/External_Disk/samba/DLNA/log #配置日誌目錄
================================================================
重啟minidlna:/etc/init.d/minidlna restart
測試:/etc/init.d/minidlna status
6.3 掛載 usb移動硬碟
6.3.1 MiniTool格式化硬碟為ext4格式
6.3.2 df -h
umount /dev/sda5
mount /dev/sda5 /home/pi/External_Disk/usbdisk
6.3.3 自動掛載:/etc/fstab 添加一行
第一列:磁碟分區名/捲標,一般是/dev/sdaN(N表示正整數)
第二列:掛載點,我們在這裡把/dev/sda1掛到/samba上。
第三列:預設設置,一般用defautls。
第四列:是否備份:0——表示不做 dump 備份;1——表示要將整個 <fie sysytem> 里的內容備份;2 也表示要做 dump 備份,但該分區的重要性比 1 小。
第五列:檢測順序:0——不進行檢測;根分區(/),必須填寫 1,其它的都不能填寫 1。如果有分區填寫大於 1 的話,則在檢查完根分區後,從小到大依次檢查下去。
*******************************************************************************
附件1
*******************************************************************************
附1:raspi-config的說明:***************************************************
1 Expand Filesystem 擴展文件系統(同舊版)。
2 Change User Password 改變預設pi用戶的密碼,按回車後輸入pi用戶的新密碼。
3 Enable Boot to Desktop/Scratch 啟動時進入的環境選擇
Console Text console, requiring login(default)
啟動時進入字元控制台,需要進行登錄(預設項)。
Desktop log in as user 'pi' at the graphical desktop
啟動時進入LXDE圖形界面的桌面。
Scratch Start the Scratch programming environment upon boot
啟動時進入Scratch編程環境。
4 Internationalisation Options 國際化選項,可以更改預設語言
I1 Change Locale
語言和區域設置,建議不要改,預設英文就好。想改中文,最好選安裝了中文字體再進行這步,安裝中文字體的方法:
sudo apt-get update
sudo apt-get install ttf-wqy-zenhei ttf-wqy-microhei
移動到屏幕底部,用空格鍵選中zh-CN GB2312,zh-CN GB18030,zh-CN UTF-8,然後按回車,然後預設語言選中zh-cn然後回車
I2 Change Timezone
設置時區,如果不進行設置,PI的時間就顯示不正常。選擇Asia(亞洲)再選擇Chongqing(重慶)即可。
I3 Change Keyboard Layout
改變鍵盤佈局
5 Enable Camera
啟動PI的攝像頭模塊,如果想啟用,選擇Enable,禁用選擇Disable就行了
6 Add to Rastrack
把你的PI的地理位置添加到一個全世界開啟此選項的地圖,建議還是不要開了,免得被跟蹤。
7 Overclock
None 不超頻,運行在700Mhz,核心頻率250Mhz,記憶體頻率400Mhz,不增加電壓
Modest 適度超頻,運行在800Mhz,核心頻率250Mhz,記憶體頻率400Mhz,不增加電壓
Medium 中度超頻,運行在900Mhz,核心頻率250Mhz,記憶體頻率450Mhz,增加電壓2
High 高度超頻,運行在950Mhz,核心頻率250Mhz,記憶體頻率450Mhz,增加電壓6
Turbo 終極超頻,運行在1000Mhz,核心頻率500Mhz,記憶體頻率600Mhz,增加電壓6
8 Advanced Options 高級設置
A1 Overscan 是否讓屏幕內容全屏顯示
A2 Hostname 在網上鄰居或者路由器能看到的主機名稱
A3 Memory Split 記憶體分配,選擇給GPU多少記憶體
A4 SSH 是否運行SSH登錄,建議開戶此選項,以後操作PI方便,有網路就行,不用開屏幕了。
A5 SPI 是否預設啟動SPI內核驅動,新手就不用管了。
A6 Audio 選擇聲音預設輸出到模擬口還是HDMI口
0 Auto 自動選擇
1 Force 3.5mm ('headphone') jack強制輸出到3.5mm模擬口
2 Force HDMI 強制輸出到HDMI
A7 Update 把raspi-config這個工具自動升級到最新版本
9 About raspi-config 關於raspi-config的信息。
附2:國內主要的源
中山大學
Raspbian http://mirror.sysu.edu.cn/raspbian/raspbian/
中國科學技術大學
Raspbian http://mirrors.ustc.edu.cn/raspbian/raspbian/
清華大學
Raspbian http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/
華中科技大學
Raspbian http://mirrors.hustunique.com/raspbian/raspbian/
Arch Linux ARM http://mirrors.hustunique.com/archlinuxarm/
大連東軟信息學院源(北方用戶)
Raspbian http://mirrors.neusoft.edu.cn/raspbian/raspbian/
重慶大學源(中西部用戶)
Raspbian http://mirrors.cqu.edu.cn/Raspbian/raspbian/
新加坡國立大學
Raspbian http://mirror.nus.edu.sg/raspbian/raspbian
牛津大學
Raspbian http://mirror.ox.ac.uk/sites/archive.raspbian.org/archive/raspbian/
南韓KAIST大學
Raspbian http://ftp.kaist.ac.kr/raspbian/raspbian/
附件3:
#!/bin/sh
### BEGIN INIT INFO
# Provides: tightvncserver
# Required-Start: $local_fs
# Required-Stop: $local_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start/stop tightvncserver
### END INIT INFO
# More details see:
# http://www.penguintutor.com/linux/tightvnc
### Customize this entry
# Set the USER variable to the name of the user to start tightvncserver under
export USER=’pi’
### End customization required
eval cd ~$USER
case ”$1” in
start)
# 啟動命令行。此處自定義解析度、控制台號碼或其它參數。
su $USER -c ’/usr/bin/tightvncserver -geometry 800x600 :1’
echo ”Starting TightVNC server for $USER ”
;;
stop)
# 終止命令行。此處控制台號碼與啟動一致。
su $USER -c ’/usr/bin/tightvncserver -kill :1’
echo ”Tightvncserver stopped”
;;
*)
echo ”Usage: /etc/init.d/tightvncserver {start|stop}”
exit 1
;;
esac
exit 0
附件4:
auto lo
iface lo inet loopback
iface eth0 inet dhcp
auto wlan0
allow-hotplug wlan0
iface wlan0 inet dhcp
wpa-ssid “你的wifi名稱”
wpa-psk “你的wifi密碼”
#wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf #註釋掉這一行
iface default inet dhcp
auto lo //表示使用localhost
iface eth0 inet dhcp //表示如果有網卡ech0, 則用dhcp獲得IP地址 (這個網卡是本機的網卡,而不是WIFI網卡)
auto wlan0 //表示如果有wlan設備,使用wlan0設備名
allow-hotplug wlan0 //表示wlan設備可以熱插撥
iface wlan0 inet dhcp //表示如果有WLAN網卡wlan0 (就是WIFI網卡), 則用dhcp獲得IP地址
wpa-ssid “你的wifi名稱”//表示連接SSID名
wpa-psk “你的wifi密碼”//表示連接WIFI網路時,使用wpa-psk認證方式,認證密碼
附件5:
apache2 配置多埠多站點:
1. 修改:apache2.conf,添加新根目錄訪問許可權:
<Directory /home/pi/docpicroot/note/>
Options Indexes Followsymlinks
AllowOverride None
Require all granted
</Directory>
2. 修改ports.conf,監聽新埠
NameVirtualhost localhost:8080
Listen 8080
3. 修改sites-available/000-default.conf,添加虛擬埠
<virtualhost *:8383>
serveradmin webmaster@localhost
documentroot /home/pi/docpicroot/note-tmp
<directory />
options followsymlinks
allowoverride none
</directory>
<directory /home/pi/docpicroot/note-tmp/>
options indexes followsymlinks multiviews
allowoverride none
order allow,deny
allow from all
</directory>
errorlog /home/pi/docpicroot/note-tmp/logs/error.log
# possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
loglevel warn
customlog /home/pi/docpicroot/note-tmp/logs/access.log combined
</virtualhost>