博客 / 詳情

返回

【樹莓派個人筆記】在使用樹莓派之前需要做的一系列準備工作

樹莓派是我們在做一些小項目的時候常會用到的,因為教程豐富同時社區也比較完善,對初學者比較友好,不過在用樹莓派來做項目之前,往往還需要一些準備工作,比如系統的燒錄,ssh功能的設置等等,本篇博客就對這個需要的流程進行總結

參考資料:
樹莓派實驗室
設置樹莓派wifi的幾種方式
樹莓派設置靜態IP地址
樹莓派學習筆記——更換國內源
修改樹莓派用户密碼
Windows下用串行連接控制樹莓派
Raspberry Pi zero_串口登錄
樹莓派入門操作及VNC顯示 cannot currently show the desktop 解決方法

樹莓派安裝Ubuntu系統的參考資料:
樹莓派安裝Ubuntu系統
超詳細樹莓派4B安裝Ubuntu Server無屏幕
樹莓派系統安裝(ubuntu版本)無需屏幕

關於樹莓派

對於初學者,我們燒錄到樹莓派的是樹莓派官方的操作系統:Raspberry Pi OS(Raspbian),繼承自Debian操作系統,主要分為以下三種:

  • Raspberry Pi OS with desktop and recommended software:桌面版(含常用軟件)
  • Raspberry Pi OS with desktop:桌面版
  • Raspberry Pi OS Lite:Lite版(無桌面)

同時操作系統的默認賬號和密碼是:

  • pi
  • raspberry

現在是2024.12.6,現在的raspberry pi imager軟件可以自行配置賬號和密碼

Shell

Shell是運行在終端中的文本互動程序(sudo提供以系統管理員的身份來執行後面的命令),可以説Shell就是一個運行着的程序,這個程序接收到兩次單擊enter鍵之間的輸入,就會對輸入的文本進行分析

Shell命令的種類(可以通過type命令瞭解命令的類型,一個命令是可執行文件,將打印出文件的路徑):

  • Shell內建函數:保存在Shell內部的腳本
  • 可執行文件:保存在Shell之外的腳本,Shell必須在系統中找到對應命令名的可執行文件,才能正確執行,因此可以用絕對路徑來告訴Shell可執行文件所在的位置,但是如果用户只給出了命令名,沒有給出準確的位置, 那麼Shell必須自行搜索一些特殊的位置, 也就是所謂的默認路徑,Shell會執行第一個和命令名相同名字的可執行文件

    • 可以通過which命令確定命令名對應的是哪個可執行文件
  • 別名:alias xx="命令",因此別名就是給某個命令起的一個簡稱,以後在Shell中就可以通過這個簡稱來調用對應的命令,Shell會記住我們的別名定義

可以採用type命令來了解命令的類型,如果一個命令是可執行文件,則type將打印出文件的路徑

Shell是文本解釋器程序的統稱,樹莓派中安裝了sh和bash兩個Shell解釋器

  • echo $SHELL:查看當前shell類型

命令的文檔信息:

  • whatis:用很簡短的一句話來介紹命令
  • man:返回命令的幫助手冊
  • info:返回更詳細的幫助信息

Shell使用技巧:

  • 命令補齊(只有一種可能,Tab鍵會把命令補齊;不止一種,第一次按Tab鍵沒有反應,第二次按Tab鍵後輸出提示)
  • 歷史命令:向上箭頭/history命令
  • 中止與暫停命令:ctrl+c中途停止,ctrl+z暫停

常用命令

Linux通用查詢命令:

  • lscpu:查詢CPU信息
  • free:查詢內存使用狀況(free -h:-h表示human readable,不使用-h,free命令會以字節為單位顯示結果,有了-h選項,free可以將結果轉換成更適合顯示的單位)
  • fdisk:查詢SD卡的存儲情況(sudo fdisk -l:-l表示列出所有磁盤,此命令前面增加了sudo,這説明某些命令的運行需要特殊權限)
  • lsusb:找到所有的USB外設
  • uname:打印操作系統的信息(uname -a:打印所有的相關信息)
  • ifconfig:查看網絡接口
  • pwd:顯示工作目錄

樹莓派專用查詢命令:

  • vcgencmd:用於與樹莓派硬件直接互動

    • vcgencmd measure_temp:返回CPU的温度
    • vcgencmd measure_volts core:返回核心電壓
    • vcgencmd get_camera
  • raspi-config:配置樹莓派命令

文件操作

  • ls:顯示Shell當前目錄下的文件
  • cp:複製文件
  • rm:刪除文件
  • mv:移動文件(重命名)

軟件的升級與安裝:

  • sudo apt-get update:獲得最新的軟件列表
  • sudo apt-get upgrade:升級已安裝的軟件
  • sudo apt-get install xxx:安裝軟件
  • sudo apt-get remove/purge(徹底刪除,刪除配置文件) xxx:刪除軟件

修改軟件源:/etc/apt/sources.list

操作系統和SD卡的燒錄

首先需要準備一張SD卡,如果是之前用過的則要對其進行格式化,格式化可以使用軟件SDFormatter:
SDFormatter

接着我們需要將樹莓派使用的操作系統燒錄到SD卡中,一般而言我們用的是樹莓派官方提供的操作系統Raspbian,可在樹莓派官網下載:
樹莓派官網

下載完後獲得了.img文件,需要燒錄到SD卡中,需要用到軟件win32diskimager:
win32diskimager

不過樹莓派官方還給我們提供了一個鏡像燒錄工具Raspberry Pi Imager,這個工具集成了常用的操作系統以及燒錄到SD卡的功能,因此可以直接使用這個軟件:
Raspberry Pi Imager
Raspberry Pi Imager軟件
其中可以選擇要燒錄的操作系統和存儲設備

功能的基礎配置

在燒錄操作系統後,我們就要通過操作系統控制樹莓派,因此我們還需要配置網絡以及ssh:

  • ssh是專為遠程登錄會話和其他網絡服務提供安全性的協議,我們用ssh來遠程使用樹莓派的命令行,通過同一個局域網內的另一台機器即可實現控制樹莓派,而2016年以後的Raspbian默認關閉ssh服務,因此需要手動開啓

    • 在SD卡的根目錄創建一個沒有任何擴展名的ssh文件即可,在樹莓派開機時會自動查找這個ssh文件,找到了就會開啓ssh,樹莓派以後的每次啓動都會自動ssh,無需重複上述操作
      ssh
  • 上面説過ssh需要同一局域網的機器,因此我們還要設置WIFI的無線連接,然後將我們使用的機器也連接到同時WIFI上(樹莓派3代和4代可以使用以太網,不過我現在手上只有樹莓派zero,等後面有了再更新)

    • 在SD卡根目錄新建一個名為wpa_supplicant.conf的文件
      wpa_supplicant.conf
    • 在文件中寫入如下內容:

      ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
      update_config=1
      network={
      ssid="WiFi的SSID"
      psk="WiFi密碼"
      }

接下來將SD卡插入樹莓派的卡槽中上電即可
在使用ssh進行遠程登陸之前,我們需要獲取樹莓派的IP地址,我的手機可以直接看到連接到熱點的IP地址:
IP地址

如果手機上看不到,可以用Advanced IP Scanner找一下:
Advanced IP Scanner
找IP

獲取到了IP地址後就可以進行遠程登陸了,最常用的軟件是putty:
putty
在putty中輸入剛剛獲取的IP地址:
putty軟件
在登陸時需要輸入用户名和密碼,樹莓派操作系統的默認用户名是pi,默認密碼是raspberry,輸入後就成功登陸,接下來就可以根據自己的需求做一些開發的工作:
登陸

在2023.10.13的一些修改

需要注意的是,在2023.10.23,我按照這篇文章提供的方法重新安裝了一下樹莓派的官方操作系統,發現樹莓派無法連接到WIFI,我查閲了一些資料後發現下面這篇博客可以解決問題

樹莓派raspberry pi 4 SSH默認密碼無法登錄解決辦法

在2024.12.5的一些修改

現在重新看樹莓派官方提供的鏡像燒錄器工具,發現工具中就可以對上述的WIFI以及ssh進行配置,十分方便:
樹莓派鏡像燒錄器1
樹莓派鏡像燒錄器2

一些其他的配置和工具

設置靜態IP地址

命令行操作如下:

  • sudo nano /etc/dhcpcd.conf
  • 在/etc/dhcpcd.conf文件底部添加如下代碼:

    interface wlan0  #網卡名
    inform 192.168.2.218/24    #樹莓派IP
    static routers=192.168.2.1  #路由器IP
    static domain_name_servers=192.168.2.1  #DNS,這裏也是路由器IP
  • sudo reboot重啓系統

dhcpcd.conf

更改樹莓派的密碼

命令行操作如下:

  • sudo passwd pi #修改 pi 密碼
  • sudo passwd root #設置 root 密碼
    修改密碼

樹莓派換源

命令行操作如下:

  • sudo nano /etc/apt/sources.list
    sources.list
  • sudo nano /etc/apt/sources.list.d/raspi.list
    raspi.list
  • sudo apt-get update進行同步更新
  • sudo apt-get upgrade更新升級軟件包

串口

如果沒有鍵盤鼠標顯示器,又沒有網卡(比如樹莓派zero),可以通過串口來連接控制樹莓派,需要一個usb轉ttl模塊,同時還需要根據引腳圖找到哪一個是串口:
樹莓派引腳

首先要使用sudo raspi-config來使能串口登陸:
使能串口登陸
然後將usb轉ttl模塊連接到樹莓派上,在此電腦->右鍵屬性->設備管理器中查看COM口,再用putty選擇serial,波特率選擇115200即可登陸:
putty串口登陸
下方有一個Saved Sessions可以起一個自己名字保存配置,下次就可以直接登陸

另外,在使用串口登陸時,如果是先插上了ttl模塊再給樹莓派上電的話,就可以看到樹莓派上電輸出的信息,然後登陸的界面也和使用ssh登陸沒有什麼區別;但是如果是先給樹莓派上電,然後才插上ttl模塊的話,就可能什麼都看不到,這時候輸入pi(即要登陸的用户名)然後回車即可,而且串口不用重新登陸,退出了再進可以直接輸入命令

MobaXterm

MobaXterm軟件也可以用於遠程控制樹莓派,而且可以通過軟件直接查看樹莓派內部的文件,可以在官網下載,直接選擇Free版本的Portable edition即可
MobaXterm下載
下載的壓縮包打開後就直接打開了MobaXterm軟件,無需安裝

選擇Session:
Session
選擇ssh:
ssh
輸入IP地址以及用户名和密碼即可
進入軟件
這個軟件最大的好處就是可以直接查看或操作文件(當然有些需要權限),而缺點就是有時很卡,可以作為putty的替代品使用

VNC Viewer

VNC也可以用於遠程操作,而且他可以顯示圖形界面,因此如果沒有屏幕又對命令行不是很熟的話,可以用VNC試試看
首先要開啓樹莓派的VNC:

  • 首先輸入sudo raspi-config
    raspi-config
  • 在Interface Options中開啓VNC
    VNC
    使能VNC
    使能成功

然後在VNC Viewer這個軟件上面輸入樹莓派的IP地址:
VNC Viewer1
VNC Viewer2
輸入用户名和密碼即可
成功登陸

查看樹莓派的硬件版本號

  • 新版本的Raspbian系統添加了pinout命令,可以查看樹莓派的很多信息
    pinout1
    pinout2
  • 讀取cpuinfo文件:cat /proc/cpuinfo

樹莓派安裝Ubuntu系統

上面的內容都是在樹莓派官方的操作系統下完成的,其實樹莓派也可以安裝其他的操作系統,比如Ubuntu,在這一部分就記錄一下如何在樹莓派上安裝Ubuntu系統
我使用的樹莓派是zero 2w,如下圖所示:
樹莓派zero 2w
Ubuntu操作系統的鏡像文件可以由Raspberry Pi Imager軟件直接燒錄到SD卡上,如下面這篇文章中所講:
保姆級教程:樹莓派4B 安裝Ubuntu 22.04 Server操作系統
也可以在Ubuntu官網中獲取,在這裏我就採用在Ubuntu官網中下載的方法來為樹莓派安裝鏡像,Ubuntu官網中對應樹莓派的鏡像如下:
Install Ubuntu on a Raspberry Pi
 
首先需要對這裏的不同操作系統類型進行理解(在這裏我直接複製了官網對這三種類型的描述,我覺得像這種有英文全文的最好還是直接看英文,比翻譯成中文更好理解些):

  • Ubuntu Desktop:The full Ubuntu Desktop image contains everything you need to turn a Raspberry Pi into your main PC, from surfing the web and writing documents to developing software. Because of its size, it only works on the Raspberry Pi 4 models with 2GB of RAM or more.
  • Ubuntu Server:The Ubuntu Server image is much smaller than the Desktop version, although you can install flavours of the Ubuntu Desktop on top of it. It gives you access to the Ubuntu CLI and by extension, all of the latest open source. Ubuntu Server works on the Raspberry Pi 2, 3 and 4.
  • Ubuntu Core:Ubuntu Core is a leaner, containerised operating system built on snaps, our universal packaging format. It supports Secure Boot and Full Disk Encryption for added security as well as OTA updates. Develop your IoT software on your Ubuntu Desktop and deploy it to an Ubuntu Core device with ease, even at scale.

我這裏使用的是Ubuntu Server 22.04.3 LTS,首先在官網中下載32-bit版本,可以看到可以採用樹莓派zero 2w:
Ubuntu官網下載樹莓派鏡像
下載的文件是.xz文件,需要先進行解壓獲得.img文件,然後使用win32diskimager軟件把鏡像燒錄到sd卡上:
win32diskimager
燒錄完成後,由於這裏沒有為樹莓派提供屏幕或以太網連接,因此需要通過ssh來連接樹莓派,在使用ssh之前需要進行一些配置,首先在燒錄好的sd卡中找到network-config文件:
network-config文件
其中需要找到如下的內容,刪掉#號,並將自己的熱點的名稱和密碼填上:

#  wifis:
#    wlan0:
#      dhcp4: true
#      optional: true
#      access-points:
#        myhomewifi:
#          password: "S3kr1t"

以下是改好後的文件,其中"nihao"是我的手機熱點名稱,"12345678"是我的手機熱點密碼:
修改後的network-config文件
值得注意的是,在Ubuntu的官網有關ssh的內容中,可以發現在Ubuntu系統中默認安裝了OpenSSH client(對於SSH服務器和客户端,可以這樣理解它們的關係:如果A機器想被B機器遠程控制,那麼,A機器需要安裝SSH服務器,B機器需要安裝SSH客户端),如下面的鏈接和圖所示:
Ubuntu官網中的ssh説明
Ubuntu系統中默認安裝的OpenSSH client

和之前樹莓派官方的操作系統不同,Ubuntu的默認用户名為ubuntu,對應的默認密碼為ubuntu,在第一次登陸後需要修改密碼,我的第一次登陸後的界面如下:
樹莓派第一次登陸ubuntu界面
上圖中的最後一行就是終端的提示符,可以在後面輸入命令:
ubuntu@ubuntu:~$
 
其中@符號前面的ubuntu就是當前的用户名字,@符號後面ubuntu是機器的名字(即主機名),$符號代表當前的用户是普通用户(相應的,#符號表示root用户登錄),~符號代表每個非root用户的自己的home目錄(如果是root用户則~目錄是/root/),即為/home/your_name/,在這個目錄中可以為所欲為,但是出了這個目錄就只有只讀權限

 
根據上述的不同目錄,可以引申出幾個常用的cd(change directory)命令形式:

cd /:跳轉到根目錄
cd或cd ~:切換到用户主目錄
cd -:切換到上次訪問的目錄
cd .:單純表示當前目錄,沒有進行任何操作
cd ..:切換到上級目錄(cd ../../可以切換到上上級目錄)

比如在Ubuntu系統中,可以進入根目錄,並使用pwd(print work directory)命令來查看當前的路徑以及ls(list directory contents)命令來顯示工作目錄中的內容,如下圖所示:
進入Ubuntu系統的根目錄

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.