樹莓派3B+新安裝系統+python+opencv要點
從買到樹莓派開始折騰,遇坑無數。雖然網上有教程,還是很難順利安裝,各種錯誤不斷。這裡概括寫下安裝步驟,以避開坑點。程式來源於網上整理僅供個人參考。
(一)新卡無屏開機前準備
一、新卡準備
1、SD Formatter格式化tf卡。
2、win32diskimager寫入官網img映象,不能選錯盤。
3、在windows下,在boot分割槽新建ssh空白檔案,這是為了首次開機能使用ssh方式登入樹莓派,避免許可權不足無法登入。
4、開機wifi
( a)第二個linux格式分割槽在window下打不開,下載綠色版DiskGenius開啟這個分割槽,提前將連線wifi的賬號和密碼寫到檔案wpa_supplicant.conf,格式為
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=CN
network={
ssid=" " #此處寫你的wifi賬號
psk=" " #此處寫wifi密碼
key_mgmt=WPA-PSK
priority=1 #此處表示wifi連線優先順序,可以不寫
}
network={
ssid=" " #此處寫你的wifi賬號
psk=" " #此處寫wifi密碼
key_mgmt=WPA-PSK
priority=2
}
將幾個常用的wifi都寫進去。
為了攜帶到別處時可用ssh,有個方法,用膝上型電腦的熱點,不管到哪都能用。
(b)用diskgenius將本檔案拷進/ect/wpa_supplicant/,這樣開機後能自動連線wifi
二、ssh登入樹莓派
1、有路由器密碼的話,在路由器管理介面檢視ip地址,沒有的話用ip地址掃描.找到ip地址。
2、開啟SecureCRT或者putty,輸入樹莓派ip(這裡假設地址為192.168.1.100)地址或者主機名稱(我改成rpi了),再輸入賬號和密碼,設定ssh登入樹莓派。
3、在windowd控制檯cmd命令列中輸入ssh -p22 pi@192.168.1.100,輸入密碼也可以登入操作。(輸入密碼時不顯示)
4、如果有筆記本熱點,就不擔心沒有密碼上不了網的問題。
5、在ssh介面輸入vncserver,記下最後的地址和埠。
6、開啟VNC-Viewer,生成可視桌面。
(二)開機後操作
一、更新升級源
1、擴充卡容量
sudo raspi-config
檢視tf卡容量的命令df -H(df -P也可以)
擴容後用df -H檢視容量還不對,或者擴容出錯,用
sudo resize2fs /dev/mmcblk0p2
重新整理下試試
2、在linux控制檯輸入
sudo vi /etc/apt/sources.list
第一行改
deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi
就可以使用清華映象源
再如中科大映象源
deb http://mirrors.ustc.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi
deb-src http://mirrors.ustc.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi
我在華東,用的是浙江大學的源
deb http://mirrors.zju.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi
deb-src http://mirrors.zju.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi
用”#“註釋掉原來的源
#deb http://raspbian.raspberrypi.org/raspbian/ stretch main contrib non-free rpi
3、再改另一處
sudo vi /etc/apt/sources.list.d/raspi.list
第一行改
deb http://mirrors.ustc.edu.cn/archive.raspberrypi.org/debian/ stretch main ui
4、執行更新
sudo apt-get update ; sudo apt-get upgrade ; sudo apt-get dist-upgrade ; sudo rpi-update -y
這裡很坑,rpi-update用各個映象源在家一晚沒升級成功,改映象為浙江大學,在學校裡5分鐘內升級完成。
二、系統備份
樹莓派系統安裝費時費力,一次不正常關機就可能啟動不了,所以備份很有必要。請參考
https://blog.csdn.net/zhshh123/article/details/85063916
這個指令碼是自動執行的,生成的備份映象預設儲存在U盤, 但是當映象檔案大小超過4G時,fat32格式U盤無法存放,我的樹莓派又無法寫入ntfs格式U盤。一個解決方法是U盤格式化為ext4,再用Ext2 Volume Manager開啟備份檔案複製到硬碟。一次備份約20分鐘,檔案大小約幾個G
(三)安裝程式和庫
一、linux命令備忘
- 一定要注意檔名的大小寫
- 當前目錄**.**/、上一級目錄../、根目錄/、使用者目錄~/
- 查詢目錄 sudo find ./ -type d -name “python*”
- 查詢檔案 sudo find ./ -type f -name “.log” -print #將轉義符“\”放在特殊符號“.”前面
- 刪除所有查詢結果 sudo find / -name “test*” |xargs rm -rf #慎用
- 輸入命令注意引號、斜槓、反斜槓
- 操作目錄和檔案:mkdir,cp,mv ,rm ,touch
- 檢視檔案資訊:which python3,ls -al /usr/bin/python3 ,
- 連結 ln -sf /usr/bin/python3.5 /usr/bin/python
- 命令列中游標操作 ↑、↓、ctrl+A、ctrl+E、ctrl+U,滑鼠左鍵選擇複製、右鍵貼上
- vi操作:esc→:進入命令模式,輸入冒號,w儲存,q退出,q!強制退出,set-nu顯示行號,dd刪除行,o新的一行
- 修改許可權 chmod 777 python3
- CTRL+C中斷執行命令
- 關機 sudo shutdown -h now
二、安裝必要的庫檔案*sudo apt-get install tk-dev libncurses5-dev sudo apt-get install libncursesw5-dev libreadline6-dev libdb5.3-dev libgdbm-dev sudo apt-get install libsqlite3-dev libbz2-dev libexpat1-dev sudo apt-get install liblzma-dev zlib1g-dev libffi-dev libssl-dev sudo apt-get install build-essential cmake pkg-config sudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev sudo apt-get install libxvidcore-dev libx264-dev sudo apt-get install libgtk2.0-dev libgtk-3-dev python3-dev sudo apt-get install libatlas-base-dev liblapack-dev gfortran
-y 表示不提示直接安裝
安裝包快取不夠時
sudo apt-get clean
三、新安裝python
1、如果想安裝新版python,要先刪除舊版python,這裡要慎重,新版相容可能不好,可能會安裝不了庫
刪除舊版python
sudo apt-get remove --purge python3 #pip3 uninstall 刪不掉
2、檢視pip支援的安裝包格式,確定是否能安裝再下載
python3
import pip._internal
print(pip._internal.pep425tags.get_supported())
很多情況,pip install無法安裝包,就要看版本支援
3、修改pip升級的包來源,使用國內映象源
sudo vi ~/.pip/pip.conf
輸入
[global]
index-url = https://pypi.mirrors.ustc.edu.cn/simple/
[install]
trusted-host=pypi.mirrors.ustc.edu.cn
4、下載安裝離線包Python
wget https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tar.xz
5、解壓編譯安裝
tar xf Python-3.6.8.tar.xz
cd Python-3.6.8
./configure --prefix=/usr/local/opt/python-3.6.8
make -j 4
sudo make install
6、修改python3.5和pip3.5的連結
7、多版本共存時,修改輸入python時預設的python版本
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.5 1
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 2
在更改預設版本時輸入命令選擇需要的版本
update-alternatives --list python
update-alternatives --config python
8、升級pip
sudo pip3 install --upgrade pip
如果出錯,下載好新版本安裝包,如pip-19.1.1-py2.py3-none-any.whl,輸入
sudo pip install --upgrade pip-19.1.1-py2.py3-none-any.whl
(四)、安裝科學工具包
在這幾個軟體安裝過程中遇坑無數,不是無法編譯,就是版本不相容、缺少庫檔案等,有時安裝一小時螢幕都不動,樹莓派假死了,ssh斷開連線了。
一、安裝numpy
先刪除舊版,不是用pip3 uninstall命令(解除安裝不掉),改為
sudo apt-get remove python3-numpy
pip3安裝新版numpy
sudo pip3 install --upgrade numpy
出錯的話,下載安裝
wget https://files.pythonhosted.org/packages/93/48/956b9dcdddfcedb1705839280e02cbfeb2861ed5d7f59241210530867d5b/numpy-1.16.3.zip
sudo pip3 install --upgrade numpy-1.16.3.zip
若還出錯,那隻能安裝舊版(一定要加上數字3)
sudo apt-get install python3-numpy
二、安裝scipy
sudo pip3 install --upgrade scipy
出錯就用
wget https://www.piwheels.org/simple/scipy/scipy-1.2.1-cp35-cp35m-linux_armv7l.whl
sudo pip3 install --upgrade scipy
三、安裝matplotlib
wget https://files.pythonhosted.org/packages/26/04/8b381d5b166508cc258632b225adbafec49bbe69aa9a4fa1f1b461428313/matplotlib-3.0.3.tar.gz
sudo pip install --upgrade matplotlib
四、安裝pyaudio
sudo apt-get install portaudio19-dev
pip3 install pyaudio
不要安裝python-pyaudio,因版本問題安裝會出錯,還導致其它包的安裝都提示錯誤
五、安裝opencv
1、更改swap檔案大小
(1)預設為 CON_SWAPSIZE= 100 M的交換空間, 更改為1024 M
sudo vi /etc/dphys-swapfile
修改CON_SWAPSIZE= 1024 M,記得要改回
(2)重新啟動dphys-swapfile 檔案服務
sudo /etc/init.d/dphys-swapfile stop
sudo /etc/init.d/dphys-swapfile start
2、cmake預編譯
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D BUILD_opencv_python2=OFF \
-D OPENCV_EXTRA_MODULES_PATH=/home/pi/opencv4_contrib/modules \
-D BUILD_EXAMPLES=ON ..
反斜槓“\”前面有空格,後面沒有空格,命令結尾有兩個點
此時會下載一些檔案,最後會提示generate成功
3、漫長的編譯
編譯命令
sudo make && make install
sudo ldconfig
如果中途斷開連線或者cpu假死,還要重來。
4、swap檔案改回100M
5、測試攝像頭
首先要raspi-config開啟攝像頭硬體camera
1) 拍照在終端執行:
raspistill -o image.jpg
2) 攝像在終端執行:
raspivid -o video.h264 -t 10000 # 拍10秒視訊
6、cv2呼叫攝像頭
import cv2
import numpy as np
cap = cv2.VideoCapture(0)
cap.set(3,640) # set Width
cap.set(4,480) # set Height
while(True):
ret, frame = cap.read()
frame = cv2.flip(frame, -1) # Flip camera vertically
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
cv2.imshow('frame', frame)
cv2.imshow('gray', gray)
k = cv2.waitKey(30) & 0xff
if k == 27: # press 'ESC' to quit
break
cap.release()
cv2.destroyAllWindows()
waitKey(30)可改大點waitKey(300),我用waitKey(30)時會自動重啟。
六、系統崩潰重啟和無法啟動
1、有時樹莓派工作中就重啟了,想知道是否溫度過高,用命令
cat /sys/class/thermal/thermal_zone0/temp
或者
vcgencmd measure_temp
watch -n 2 "vcgencmd measure_temp"
-n 2 表示顯示速度為2秒自動重新整理
2、如果樹莓派不能啟動,出現
KERNEL PANIC: VFS Unable to mount root fs on unknown-block(179,2)
這多數是分割槽壞了。要有兩張可啟動的tf卡,或者一個linux虛擬機器,嘗試啟動進入linux系統修復損壞卡的分割槽,啟動linux掛載損壞卡的讀卡器,輸入
fdisk -l
檢視分割槽標記為sda2,此處sda2由fsidk讀出,每次開機可能不一樣。分割槽掃描操作可能有風險。
先解除安裝分割槽sda2。
sudo umount /dev/sda2
再掃描分割槽sda2
sudo fsck -f -v -r /dev/sda2
3、樹莓派正常工作,足額輸出的電源很重要
劣質電源輸出電流不夠,會導致無法啟動,攝像頭不能正常工作,反覆重啟。即使5V2A電源加上攝像頭後都不一定夠用。
(六)、小結
到這裡總算能讓樹莓派工作了,前後花了兩週時間。想學習物聯網,要學的很多,第一步是熟悉linux系統。
相關文章
- 樹莓派3B+安裝64位ubuntu系統和docker工具樹莓派UbuntuDocker
- 「玩轉樹莓派」樹莓派 3B+ 配置無線WiFi樹莓派WiFi
- 樹莓派3B/3B+/4B 刷機裝系統燒錄映象教程樹莓派
- 樹莓派重新刷系統樹莓派
- 玩轉樹莓派之系統安裝篇樹莓派
- 樹莓派3B+ python第三方處理庫安裝樹莓派Python
- 如何在樹莓派中安裝 VoIP 系統:Asterisk樹莓派AST
- 樹莓派作業系統安裝和啟動樹莓派作業系統
- 樹莓派安裝nodejs樹莓派NodeJS
- 樹莓派安裝 vscode樹莓派VSCode
- 樹莓派使用buildroot生成系統映象樹莓派UI
- 使用樹莓派3b+和DHT11監控溫溼度。樹莓派
- 樹莓派 | 修改樹莓派3熱點的名稱和密碼樹莓派密碼
- 樹莓派建立WiFi熱點樹莓派WiFi
- 樹莓派基金會近日釋出了新版基於 Debian 的樹莓派作業系統樹莓派作業系統
- 樹莓派Linux——檔案系統認知樹莓派Linux
- 樹莓派使用入門:如何更新樹莓派樹莓派
- 樹莓派是什麼 樹莓派能做什麼 樹莓派的功能用途樹莓派
- 樹莓派3B安裝64位作業系統(樹莓派無需連線顯示器鍵盤滑鼠)樹莓派作業系統
- 樹莓派使用入門:用樹莓派學 Linux樹莓派Linux
- 樹莓派安裝QT5樹莓派QT
- 關於樹莓派64位作業系統樹莓派作業系統
- 樹莓派使用樹莓派
- 樹莓派安裝 ArchlinuxARM(aarch64)樹莓派Linux
- 樹莓派ubuntu系統下修改config.txt檔案 樹莓派config.txt檔案修改記錄樹莓派Ubuntu
- 樹莓派使用入門:慶祝樹莓派的 14 天樹莓派
- 樹莓派使用入門:如何用樹莓派來娛樂樹莓派
- 樹莓派使用入門:如何購買一個樹莓派樹莓派
- 樹莓派CM4(四):樹莓派映象替換核心樹莓派
- 樹莓派筆記樹莓派筆記
- 樹莓派配置watchdog樹莓派
- 樹莓派與FileZilla樹莓派
- 樹莓派使用入門:如何為樹莓派社群做出貢獻樹莓派
- 樹莓派搭建git伺服器 | 樹莓派小無相系列樹莓派Git伺服器
- 使用Lakka系統將樹莓派改造為遊戲機樹莓派遊戲
- 樹莓派+tomcat+mysql安裝及配置樹莓派TomcatMySql
- 樹莓派安裝 ubuntu 20.04 LTS 碰壁指南樹莓派Ubuntu
- 樹莓派4從系統安裝到samba,aria2服務啟動樹莓派Samba