當前位置:首頁 > 公眾號精選 > 嵌入式微處理器
[導(dǎo)讀]樹莓派4可以不用SD卡啟動? 1.說明 2.什么是PXE啟動 3.樹莓派4設(shè)置PXE啟動 4.關(guān)鍵配置參數(shù)說明 5.配置TFTP服務(wù)器 6.網(wǎng)絡(luò)文件系統(tǒng) 6.1 主機上設(shè)置NFS文件系統(tǒng) 6.2 樹莓派上設(shè)置啟動NFS的rootfs腳本 1.說明 Raspberry Pi 4具有一個SPI連接的EEPROM(4MBits / 51

樹莓派4可以不用SD卡啟動?


  • 1.說明

  • 2.什么是PXE啟動

  • 3.樹莓派4設(shè)置PXE啟動

  • 4.關(guān)鍵配置參數(shù)說明

  • 5.配置TFTP服務(wù)器

  • 6.網(wǎng)絡(luò)文件系統(tǒng)

    • 6.1 主機上設(shè)置NFS文件系統(tǒng)

    • 6.2 樹莓派上設(shè)置啟動NFS的rootfs腳本


1.說明

Raspberry Pi 4具有一個SPI連接的EEPROM(4MBits / 512KB),其中包含用于啟動系統(tǒng)的代碼,并替換了先前在SD卡的啟動分區(qū)中找到的bootcode.bin。請注意,如果Pi 4的SD卡的啟動分區(qū)中存在bootcode.bin,則將其忽略。

也就是說,樹莓派4的啟動方式可以從SPI的EEPROM啟動了。關(guān)于為什么需要這個EEPROM官方的說法是:

1.與以前的Raspberry Pi型號相比,Raspberry Pi 4的啟動過程和SDRAM的設(shè)置要復(fù)雜得多,因此,永久包含在SoC ROM中的代碼固有的風(fēng)險更大。

2.USB已移至PCIe總線,千兆位以太網(wǎng)驅(qū)動程序與以前的型號完全不同,因此,再次將其永久固定在SoC的ROM中是不可行的。

3.小容量SPI EEPROM允許在現(xiàn)場修復(fù)錯誤并在啟動后添加功能。

4.本地可修改狀態(tài)意味著Raspberry Pi 4上的網(wǎng)絡(luò)或USB大容量存儲啟動不需要OTP引導(dǎo)模式設(shè)置。Pi4上沒有用戶可修改的OTP引導(dǎo)模式位。

本文就講述一下如何設(shè)置樹莓派啟動,而改為網(wǎng)絡(luò)啟動的方式(TFTP),目前樹莓派U盤啟動方式還不完善。雖然不用SD卡啟動,但是操作EEPROM的時候,還是要借助SD卡進行啟動Linux,然后將啟動固件寫入到eeprom中。下面來詳細說明一下這個過程。

2.什么是PXE啟動

PXE是用來通過網(wǎng)絡(luò)引導(dǎo)系統(tǒng)的。也就是系統(tǒng)通過網(wǎng)絡(luò)進行啟動,這樣就不用硬盤,從服務(wù)器中獲取系統(tǒng)鏡像。

當安裝大量設(shè)備系統(tǒng)的時候,如果有了PXE啟動,那么就可以大大加快系統(tǒng)的安裝的速度。

上面就是基本的一個PXE啟動的流程。

3.樹莓派4設(shè)置PXE啟動

樹莓派4上有EEPROM,可以將啟動固件放到EEPROM中。但是不幸的是,操作樹莓派自帶的EEPROM需要樹莓派的系統(tǒng),也就是必須最開始的時候,需要制作啟動樹莓派4的SD卡鏡像,然后通過SD卡啟動Linux后,修改EEPROM中的內(nèi)容。

關(guān)于如何制作樹莓派SD卡鏡像,可以參考我下面的文章:

樹莓派4最小化安裝Linux

三個前提條件:

1.登錄控制臺(用戶名:pi,密碼:raspberry)

2.樹莓派要能夠連接網(wǎng)絡(luò)

3.可以安裝配置rpi-config程序

3.1 安裝rpi-eeprom

rpi-eeprom是在樹莓派固件中操作樹莓派4的eeprom的程序,通過下面的命令進行安裝。

sudo apt-get updatesudo apt-get full-upgradesudo apt-get install rpi-eeprom

以上操作如果下載比較慢可以更換國內(nèi)的源進行:

修改sources.list文件

sudo vim /etc/apt/sources.list

用#注釋掉之前的源,然后新增

deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main non-free contribdeb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main non-free contrib

接著修改raspi.list

sudo vim /etc/apt/sources.list.d/raspi.list

同樣注釋掉之前的源

修改如下:

deb http://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ buster main ui

修改完成就OK了。

安裝完成,檢測一下eeprom現(xiàn)有的配置。

vcgencmd bootloader_config

可以見到如下信息

以上的信息是我以及配置好了的,最開始的信息可能不是這個。但是沒關(guān)系,接下來教你設(shè)置。

第一步:提取配置文件

cp /lib/firmware/raspberrypi/bootloader/stable/pieeprom-2020-01-17.bin pieeprom.binrpi-eeprom-config pieeprom.bin > bootconf.txt

將配置文件進行拷貝,并且放到指定的目錄。pieeprom.bin就是配置文件,然后導(dǎo)出成txt文件。該文件的作用與之前樹莓派SD卡中的config.txt類似。

第二步:設(shè)置bootconf.txt中的內(nèi)容

我配置的內(nèi)容如下:

[all]BOOT_UART=1WAKE_ON_GPIO=1POWER_OFF_ON_HALT=0DHCP_TIMEOUT=45000DHCP_REQ_TIMEOUT=4000TFTP_FILE_TIMEOUT=30000TFTP_IP=192.168.12.194TFTP_PREFIX=1BOOT_ORDER=0x21SD_BOOT_MAX_RETRIES=3NET_BOOT_MAX_RETRIES=5TFTP_PREFIX_STR=raspi4/[none]FREEZE_VERSION=0

后面會解釋一下其中的內(nèi)容。

第三步:將配置寫回pieeprom.bin文件中

rpi-eeprom-config --out pieeprom-new.bin --config bootconf.txt pieeprom.bin

這一步用于將配置文件寫回。

第四步:將pieeprom.bin燒錄到eeprom中

sudo rpi-eeprom-update -d -f ./pieeprom-new.bin

看到如下輸出信息即可

此時將SD卡取出,就可以看到系統(tǒng)從eeprom起來。

4.關(guān)鍵配置參數(shù)說明

BOOT_UART【關(guān)注】

如果設(shè)置為1,表示使能GPIO 14和 15的輸出,也就是我們可以連接串口打開信息。其串口參數(shù)為波特率115200,8位,無奇偶校驗位,1位的停止位。

對于有串口調(diào)試助手的,建議用硬件串口輸出信息,所以該位設(shè)置為1。

WAKE_ON_GPIO

如果為1,則“ sudo halt”將以低功耗模式運行,直到GPIO3或GLOBAL_EN短路接地。

TFTP_PREFIX【關(guān)注】

為了支持每個Pi的唯一TFTP引導(dǎo)目錄,引導(dǎo)加載程序會在文件名前面加上設(shè)備特定的目錄。如果在前綴目錄中都找不到start4.elf和start.elf,則清除前綴。在較早的型號上,序列號用作前綴,但是,在Pi4上,不再從序列號生成MAC地址,這使得很難通過檢查DHCPDISCOVER數(shù)據(jù)包在服務(wù)器上自動創(chuàng)建tftpboot目錄。為此,可以將TFTP_PREFIX定制為MAC地址,固定值或序列號(默認)。

0 - Use the serial number e.g. "9ffefdef/"1 - Use the string specified by TFTP_PREFIX_STR2 - Use the MAC address e.g. "DC-A6-32-01-36-C2/" Default: 0

這里我設(shè)置成1,讓后設(shè)置TFTP_PREFIX_STR路徑。

TFTP_PREFIX_STR【關(guān)注】

當TFTP_PREFIX設(shè)置為1的時候,可以設(shè)置TFTP_PREFIX_STR的路徑。例如

TFTP_PREFIX_STR=raspi4/

這是為了告訴樹莓派4,到哪個目錄下去找啟動文件。由于可能有不同的樹莓派固件,所以這里會不同。

TFTP_IP

設(shè)置TFTP服務(wù)器的IP地址,樹莓派的IP地址是通過DHCP自動獲取的。

TFTP_IP=192.168.12.194

BOOT_ORDER

該參數(shù)配置了不同的啟動模式

  • 0x0 - NONE (stop with error pattern)
  • 0x1 - SD CARD
  • 0x2 - NETWORK

啟動模式是一個32bit的通過特定的位來決定的。如果設(shè)置0x21,表示網(wǎng)絡(luò)啟動失敗時通過SD卡進行啟動。

如果設(shè)置成0x2則表示網(wǎng)絡(luò)啟動失敗,不通過SD卡啟動。這里我們設(shè)置成0x21。

5.配置TFTP服務(wù)器

如果不用SD卡,讓樹莓派4啟動,那么啟動固件必須放在TFTP服務(wù)的特定的目錄中。

這里我在Ubuntu上搭建了一個TFTP服務(wù)器。

第一步:安裝tftpd-hpa

sudo apt-get install tftp-hpa tftpd-hpa

第二步:編輯腳本文件

sudo gedit /etc/default/tftpd-hpa

腳本內(nèi)容如下:

# /etc/default/tftpd-hpa TFTP_USERNAME="tftp"TFTP_DIRECTORY="/home/bigmagic/tftpboot/" //tftpboot絕對路徑TFTP_ADDRESS=":69"TFTP_OPTIONS="--secure"

第三步:啟動服務(wù)器

service tftpd-hpa restart

之后還需要做的事情就是

sudo chmod 777 /home/bigmagic/tftpboot/ -R

讓目錄權(quán)限變成可以訪問權(quán)限。

/home/bigmagic/tftpboot/創(chuàng)建目錄,用于存放SD卡上的啟動文件

mkdir raspi4

最后將SD卡中的文件放到樹莓派4中。

6.網(wǎng)絡(luò)文件系統(tǒng)

操作系統(tǒng)起來后,如果要掛在SD卡或者網(wǎng)絡(luò)文件系統(tǒng),肯定是需要指定網(wǎng)絡(luò)文件系統(tǒng)的。之前在SD卡上制作啟動文件的時候,我們是將跟文件系統(tǒng)放在SD卡上所以通過PXE啟動后的效果如下:

找不到SD卡,通過網(wǎng)絡(luò)方式啟動

從網(wǎng)絡(luò)中讀取相關(guān)的文件。

可以看到檢測不到sd卡上的文件系統(tǒng)。接著我們需要通過網(wǎng)絡(luò)啟動文件系統(tǒng)。

6.1 主機上設(shè)置NFS文件系統(tǒng)

因為我們的文件系統(tǒng)是在NFS上,所以主機上設(shè)置NFS文件系統(tǒng)是讓樹莓派訪問文件系統(tǒng)。

其實前面的TFTP是引導(dǎo)系統(tǒng),而這個NFS則是為了讓rootfs從NFS上啟動。

sudo apt install nfs-kernel-server

接著編輯nfs的相關(guān)配置

echo "/home/bigmagic/nfs/client1 *(rw,sync,no_subtree_check,no_root_squash)" | sudo tee -a /etc/exports

設(shè)置權(quán)限

chmod 777 nfs/ -R

然后啟動服務(wù)

sudo service nfs-kernel-server restart

6.2 樹莓派上設(shè)置啟動NFS的rootfs腳本

由于現(xiàn)在樹莓派4上沒有了SD卡,啟動腳本在/home/bigmagic/tftpboot/raspi4中。所以去修改cmdline.txt文件。

修改文件內(nèi)容如下:

console=serial0,115200 console=tty1 root=/dev/nfs nfsroot=192.168.12.194:/nfs/client1,vers=4.1,proto=tcp rw ip=dhcp rootwait elevator=deadline

啟動ip地址自行修改。

接著執(zhí)行

接下來要做的事情就是將我們的跟文件系統(tǒng)拷貝到/home/bigmagic/nfs/client1目錄下。

此目錄可以從我們之前制作的SD卡的rootfs文件系統(tǒng)中進行拷貝。

操作完成后輸入

echo "192.168.12.194:/tftpboot /boot nfs defaults,vers=4.1,proto=tcp 0 0" | sudo tee -a /home/bigmagic/nfs/client1/etc/fstab

以上操作后便可啟動網(wǎng)絡(luò)文件系統(tǒng)了。

7.總結(jié)

上述介紹了樹莓派4不用SD卡啟動系統(tǒng)的辦法,對于樹莓派4來說,可以通過內(nèi)置的EEPROM進行啟動固件的存放。通過這種方式,可以為內(nèi)核調(diào)試增加了許多方便的地方。這種對于做開發(fā)樹莓派的人來說,可以專注于程序的開發(fā),不用為頻繁的插拔卡帶來煩惱。同時這種方式對鏡像升級也提供了很多便利。


本文授權(quán)轉(zhuǎn)載自公眾號“嵌入式IoT”,作者bigmagic

免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺僅提供信息存儲服務(wù)。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!

嵌入式ARM

掃描二維碼,關(guān)注更多精彩內(nèi)容

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉