摘要:學(xué)習(xí)樹(shù)莓派的的初識(shí)學(xué)習(xí)樹(shù)莓派的的初識(shí)初識(shí)初識(shí)學(xué)習(xí)書(shū)籍正點(diǎn)原子嵌入式驅(qū)動(dòng)開(kāi)發(fā)指南章節(jié)第三十章學(xué)習(xí)內(nèi)容書(shū)中介紹的獲取可以有三個(gè)途徑第一個(gè)是的官方代碼。網(wǎng)上的燒寫(xiě)樹(shù)莓派教程很多,但是為了學(xué)習(xí)我選擇了官方的代碼。
學(xué)習(xí)書(shū)籍:《【正點(diǎn)原子】I.MX6U嵌入式Linux驅(qū)動(dòng)開(kāi)發(fā)指南V1.5.1》
章節(jié):第三十章
學(xué)習(xí)內(nèi)容:
書(shū)中介紹uboot的獲取可以有三個(gè)途徑:第一個(gè)是uboot的官方代碼。第二個(gè)是半導(dǎo)體的廠商的uboot代碼。第三個(gè)是開(kāi)發(fā)板廠商的uboot代碼。為了移植簡(jiǎn)單推薦選擇支持較好的開(kāi)發(fā)板廠商的代碼。如果是自己的板子推薦使用半導(dǎo)體廠商的代碼。我手中有一個(gè)樹(shù)莓派4b。網(wǎng)上的燒寫(xiě)樹(shù)莓派教程很多,但是為了學(xué)習(xí)我選擇了uboot官方的uboot代碼。
下載uboot代碼:進(jìn)入官網(wǎng):http://www.denx.de/wiki/U-Boot/,點(diǎn)擊Source Code。
可以選擇FTP或者HTTPS下載。我下載的是:u-boot-2022.01-rc1 。把文件通過(guò)FTP或者文件共享等方式傳入U(xiǎn)buntu虛擬機(jī)。注意:在虛擬機(jī)的非root用戶中有些目錄的操作權(quán)限是受到限制的。比如我在這里將下載好的uboot放到根目錄下的,在根目錄下創(chuàng)建文件夾會(huì)發(fā)現(xiàn)需要sudo權(quán)限。創(chuàng)建好文件夾后將uboot解壓也需要對(duì)應(yīng)權(quán)限。配置好環(huán)境變量后make uboot時(shí)候也需要權(quán)限,否則就會(huì)提示不能mkdir之類的權(quán)限的錯(cuò)誤。這時(shí)候配置的交叉編譯工具的環(huán)境變量是為當(dāng)前用戶配置的,如果使用sudo會(huì)發(fā)現(xiàn)提示沒(méi)有配置交叉編譯工具不能正常編譯。對(duì)于Linux小白的我來(lái)說(shuō)這個(gè)坑踩了一周。建議將uboot放在家目錄下。使用命令:tar -jxvf u-boot-2022.01-rc1.tar.bz2將文件進(jìn)行解壓得到u-boot-2022.01-rc1。
? 配置交叉編譯工具:首先了解一下交叉編譯工具。百度搜索“ARM交叉編譯工具鏈分類說(shuō)明”可以了解到交叉編譯工具的幾大分類。樹(shù)莓派4b是ARM v8架構(gòu)。支持64位,同時(shí)也兼容32位。查看uboot文件夾下的configs文件夾中對(duì)樹(shù)莓派的支持可以看到支持如下幾種樹(shù)莓派:
這里可以看到如果使用rpi_4_32b_defconfig則使用32位的交叉編譯工具:arm-linux-gnueabihf-gcc。如果使用rpi_4_defconfig則使用64位的交叉編譯工具:aarch64-linux-gnu-gcc。(這里總結(jié)的教訓(xùn)是:做之前多百度,因?yàn)椴恢纑pi_4_defconfig需要64位的交叉編譯工具而失去無(wú)數(shù)頭發(fā))。這里我使用的是64位的。下載aarch64-linux-gnu-gcc:
sudo apt-get install gcc-9-aarch64-linux-gnusudo apt-get install gcc-aarch64-linux-gnu
配置環(huán)境變量:使用命令sudo vi /etc/profile,在末尾添加環(huán)境變量export PATH=$PATH:你的目錄/bin。保存退出后使用命令source /etc/profile。測(cè)試有沒(méi)有安裝成功在任意終端中輸入aarch加兩下Tab后會(huì)不會(huì)出現(xiàn)提示:
使用aarch64-linux-gnu-gcc -v可以驗(yàn)證一下是不是能正確打印出版本號(hào)。
? uboot的編譯,模仿書(shū)中先使用命令make ARCH=arm CROSS_COMPILE=aarch64-linux-gnu- distclean先清除一下編譯后生成的文件。然后使用命令make ARCH=arm CROSS_COMPILE=aarch64-linux-gnu- rpi_4_defconfig配置uboot。最后使用命令make ARCH=arm CROSS_COMPILE=aarch64-linux-gnu-編譯uboot。如果都沒(méi)有問(wèn)題后就會(huì)出現(xiàn)u-boot.bin等文件。其中如果有error出現(xiàn)就直接百度安裝相關(guān)的庫(kù)文件就可以。
? uboot的燒寫(xiě),嘗試了好幾個(gè)燒寫(xiě)方法,發(fā)現(xiàn)最好用的是使用工具:raspberry pi imager。這個(gè)官方下載可能慢一點(diǎn),萬(wàn)能的百度下載。然后再下載一個(gè)樹(shù)莓派的鏡像,使用工具燒寫(xiě)進(jìn)去,也可以讓它自己下載鏡像不過(guò)速度很慢。下載完了先插到樹(shù)莓派上連接串口
需要一個(gè)TTL轉(zhuǎn)串口模塊。打開(kāi)串口8N1。上電看一下系統(tǒng)能不能跑起來(lái)。然后將SD卡插入電腦,將編譯好的u-boot.bin文件傳入到SD卡中,修改一下config.txt文件。我是參考博客:(14條消息) <第2章>樹(shù)莓派4B上運(yùn)行 uboot_Fythons的博客-CSDN博客做的。將樹(shù)莓派的設(shè)備樹(shù)都放好后發(fā)現(xiàn)還是可在博客中下圖所示位置
博客中有一句話猜想可能是串口的問(wèn)題這個(gè)我們可以關(guān)注一下,在我這個(gè)版本的uboot中好像就是uboot的串口沒(méi)有配置。
? 配置uboot串口,下面記錄的過(guò)程是我操作的過(guò)程,可能有問(wèn)題。我使用的是uboot圖形化的配置。參考手冊(cè)的第三十四章進(jìn)入uboot的圖形化配置界面。
然后再將編譯后的u-boot.bin啟動(dòng)就可以看到打印了。
這里一些信息是錯(cuò)誤的,常用的uboot命令也沒(méi)有測(cè)試過(guò),接著折騰……
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/125099.html
摘要:課程從基礎(chǔ)入門開(kāi)始教學(xué),學(xué)習(xí)難度循序漸進(jìn),由淺入深,即使是零基礎(chǔ)的學(xué)習(xí)者也可以完全能夠聽(tīng)懂。 想要從事IT行業(yè),但是有不想要學(xué)習(xí)編程該選擇哪門技術(shù)合適呢?當(dāng)然是Linux運(yùn)維了。Linux是市場(chǎng)上非常受歡迎的技術(shù),應(yīng)用范圍廣泛,就業(yè)前景好,受到了很多人的喜歡。那么問(wèn)題來(lái)了,Linux運(yùn)維零基礎(chǔ)可以學(xué)習(xí)嗎? 在服務(wù)器市...
閱讀 3748·2023-01-11 11:02
閱讀 4254·2023-01-11 11:02
閱讀 3072·2023-01-11 11:02
閱讀 5189·2023-01-11 11:02
閱讀 4750·2023-01-11 11:02
閱讀 5561·2023-01-11 11:02
閱讀 5327·2023-01-11 11:02
閱讀 4023·2023-01-11 11:02