RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

實用樹莓派Linux編譯指南,打工人必備!

合宙LuatOS ? 來源:合宙LuatOS ? 作者:合宙LuatOS ? 2024-12-17 16:19 ? 次閱讀

通常情況下,模組對接的Linux協(xié)議是USB協(xié)議,模組通過USB插入Linux設(shè)備后可直接使用,系統(tǒng)會檢測出設(shè)備的標(biāo)識:PID VID。

然而實際運用中,時有新手朋友問:

Linux對新手用戶實在不友好,有沒有好的解決辦法?

今天來分享一下我的私藏干貨——樹莓派Linux編譯。編譯好之后,開發(fā)板只需插到樹莓派上連接電腦就可以直接用了,極其方便。

本文以樹莓派為例,其他板子只要帶Linux系統(tǒng)的,大體上也都可以按這個操作。

一、燒錄鏡像

1.1 燒錄軟件

建議用樹莓派官方工具,可以直接設(shè)置添加SSH、樹莓派在路由器后臺的名字。

官方最新版下載地址:

https://www.raspberrypi.com/software/

上方登錄的用戶名密碼,也可以一次性設(shè)置。

1.2 鏡像文件的下載

1.2.1 鏡像文件下載地址

鏡像文件,建議使用32位的,也可以使用64位的。

注意:如果想要使用可視化界面,下載鏡像時請選擇桌面版本的鏡像文件,最好是帶常用軟件的版本,還有盡量使用32位的,64位的我沒編譯成功過。

鏡像文件下載地址:

https://www.raspberrypi.com/software/operating-systems/

1.2.2 高速下載工具

如果下載進度慢,可以先下載一個motrix,然后把下載鏈接用它打開。

motrix下載地址:

https://motrix.app/zh-CN/

1.3 燒錄過程

下載完成后選擇使用自定義鏡像,然后插SD卡,燒錄就行。

特別提醒:SD卡最好在32G及其以上,16G也行,但最好選擇速度快一點的SD卡,因為燒錄、寫入,包括后面的編譯整個系統(tǒng),都是在SD卡上完成的。

二、遠程控制

2.1 SSH方式

燒錄完成后,SD卡會被分成兩個區(qū):

一個是無法打開的系統(tǒng)區(qū),一個是可以打開的文件系統(tǒng)區(qū)。

如果你之前沒有在官方燒寫工具里打開SSH,需要用電腦打開那個文件系統(tǒng)區(qū),新建一個文件:名字叫做SSH,不要加任何文件名后綴。

新建好文件以后,將內(nèi)存卡插入樹莓派中,路由器那接根網(wǎng)線給樹莓派,上電開機,樹莓派官方推薦電源為5V3A(注意:如果電源小于這個,你帶的東西比較多還帶個屏幕的話,會出現(xiàn)供電不穩(wěn)導(dǎo)致的模組重啟等現(xiàn)象)。

接下來,打開你的路由器管理后臺,找到樹莓派。如果上一步你設(shè)置了樹莓派的名字,那么后臺還是比較好找的。如果沒設(shè)置的話,樹莓派的默認名字為raspberry,root用戶默認密碼也為raspberry,如果長期用樹莓派,建議分配一個靜態(tài)IP。

我這邊大概的管理界面如下:

Xshell和Xftp下載地址:

www.xshell.com

打開Xshell,新建登錄界面,IP選擇你在路由器后臺看到的樹莓派的IP,用戶名和密碼都是你之前用鏡像燒錄軟件設(shè)置的密碼。

如果沒有設(shè)置,用戶名為root,密碼為raspberry,如果實在登錄不上,建議重新燒錄,重新設(shè)置(Xshell和Xftp是配套軟件,建議一次都下載上)。

登錄上以后,建議使用sudo passwd命令,修改root用戶密碼,修改成你自己能記得住的。

Linux常見命令 :

2.1.1 VNC遠程桌面

如果不太喜歡命令行方式,也可以使用VNC遠程桌面(類似于PC上的向日葵)。

注:如果想要使用VNC,當(dāng)時下載鏡像那一步的時候就要選擇桌面版本的鏡像文件,最好是帶常用軟件的版本。

PC端VNC下載:

https://www.realvnc.com/

三、直插屏幕式控制

你插個屏幕過去,所有的輸入輸出都使用鍵盤和鼠標(biāo)完成也可以(注:如果想要使用屏幕,當(dāng)時下載鏡像那一步的時候就要選擇桌面版本的鏡像文件,最好是帶常用軟件的版本)。

優(yōu)點嘛就是可視化,操作文件夾比較方便。

缺點就是在你圖形化修改驅(qū)動文件的時候,可能會遇到驅(qū)動文件是只讀文件,修改不成功,還得用命令行進root用戶賦予文件/文件夾777權(quán)限(chmod -R 777 linux)。

四、樹莓派換源

因為樹莓派默認使用的國外的源,下載東西比較慢,編譯代碼時候需要的各種工具和包管理,所以可以使用清華/阿里/中科大等鏡像源。

使用SSH的用戶,在命令行里輸入uname -m;使用VNC和直插桌面的用戶,打開命令行終端,一樣輸入uname -m。

然后按照這篇指導(dǎo)來:

https://mirrors.tuna.tsinghua.edu.cn/help/raspbian/

換源好了以后,可以嘗試輸入:

換源可能遇到的問題:

如果出現(xiàn)error,說什么key什么找不到的,把報錯里key后面那串?dāng)?shù)字復(fù)制出來,將這篇文章里的命令最后的那個key換成你的,如果報了多個key,那就設(shè)置多次。

五、編譯內(nèi)核

編譯分為本地編譯和交叉編譯,這兩種方式都可以。本地編譯就是樹莓派自己編譯自己,交叉編譯就是用另一臺比樹莓派性能強大的機器(比如自己的電腦)去編譯驅(qū)動,編譯完進行一個內(nèi)核替換,將編譯好的內(nèi)核替換到SD卡上,然后SD卡插回樹莓派。

本文僅講解本地編譯方式:

5.1 本地編譯

本地編譯的好處是不需要太多的命令,對新手玩家友好。

缺點就是受限于樹莓派孱弱的性能,編譯起來速度慢的要死。4個內(nèi)核全開的話編譯一次大概一兩個小時。如果使用的默認編譯指令,只開一個核,我試過一次,大概4個小時多。

5.1.1 下載Linux內(nèi)核源碼

打開命令行,進入你想要的目錄,比如桌面或者dowon,新建一個目錄也行,記得不要寫中文,進入后用下面這條命令下載樹莓派的最新內(nèi)核。

-depth=1的意思類似于淺拷貝,只clone當(dāng)前項目下的代碼,沒有歷史文件的修改記錄。常見的git clone其實是深度拷貝,帶了從init這個倉庫以后的所有操作。

我們只是學(xué)習(xí)/編譯當(dāng)前版本內(nèi)核不需要看那些東西,全部拷貝過來的話,大概3G多,不走代理下載到猴年馬月去了,即使走免費的代理,大多數(shù)也有最大倉庫2G的限制。

原始倉庫在下面這里,直接clone這個倉庫,慢的一批,所以走了熱心群友提供的代理路徑,詳細命令在后面,這里就不說了。

樹莓派Linux倉庫:

https://github.com/raspberrypi/linux

5.1.2 修改我們驅(qū)動對應(yīng)的文件

如果使用的是SSH方式命令行修改,可以使用nano編輯器修改文件,記得先輸入su進入超級用戶,要不然修改可能會不成功。(注:大學(xué)接觸過Linux的話,應(yīng)該知道VI編輯器和VIM編輯器,都可以用,nano編輯器方便一點。)

具體命令如下:

5.1.2.1 option.c文件的修改
sudo nano drivers/usb/serial/option.c

--使用nano編輯器進入option.c文件

切記:進入文件后,上下翻頁不要用鼠標(biāo),用鍵盤的上下按鍵!使用鼠標(biāo)會導(dǎo)致對應(yīng)文件里輸入一堆^H^L。

option.c文件里需要修改四處:

第一處:

static const struct usb_device_id option_ids[]函數(shù)的"{"下面加一句。

第二處:

static struct usb_serial_driver option_lport_device函數(shù),

最后一行,.resume = usb_wwan_resume,下面加一行。

第三處:

Struct usb_interface_descriptor那一行下面,加一句。

第四處:

If (iface_desc->bINterfaceClass一直到return -ENODEV;

這句話下面加這幾句:

修改完成后,使用ctrl+o保存修改,ctrl+x退出文件編輯器。

5.1.2.2 usb_wwan.c文件的修改
一樣使用:

sudo nano drivers/usb/serial/usb_wwan.c

--使用nano編輯器打開usb_wwan.c文件。

這個文件修改的地方只有一處:

static struct urb *usb_wwan_setup_urb函數(shù),

在if (intfdata->use_zlp到PACKET;行后面,

加上如下幾句話:

修改完成后,使用ctrl+o保存修改,ctrl+x退出文件編輯器。

至此驅(qū)動修改完成,可以進入內(nèi)核編輯界面了。主要是為了配置些沒有默認打開的功能,比如ECM/PPP。

5.1.3 編譯前非代碼修改部分的準(zhǔn)備工作

首先安裝Git和構(gòu)建依賴項:

看清你手上的樹莓派版本以及下載的系統(tǒng)版本為32位還是64位,選擇下面對應(yīng)的命令。

如果已經(jīng)在Linux目錄下了,就不用第一句cd linux了。

1)適用于樹莓派1、零和零W以及樹莓派計算模組1 ,默認(僅限 32 位)構(gòu)建配置:

2)適用于樹莓派2、3、3+ 和零2W,以及樹莓派計算模組 3 和 3+ ,默認32位構(gòu)建配置:

3)適用于樹莓派4和400,以及樹莓派計算模組4,默認的32位構(gòu)建配置:

4)適用于樹莓派3、3+、4、400和零2W以及樹莓派計算模組 3、3+ 和4,默認64位構(gòu)建配置:

準(zhǔn)備完成以后,就可以愉快地進入內(nèi)核配置界面了。

如果上述指令任意一條指令報錯,可自己百度解決,或咨詢合宙FAE。

5.1.4 內(nèi)核配置

就在Linux這個路徑下,輸入:

進入內(nèi)核配置界面,如果進不去,先確定下自己當(dāng)前用戶是否是超級用戶。如果不是,輸入su進入超級用戶;然后再config。

進入內(nèi)核配置界面,按下"/",可以搜索想要改的地方。比如搜索RNDIS時,如果相關(guān)配置項很多,這個界面下可以滾動鼠標(biāo)查看,確保搜索結(jié)果中與RNDIS相關(guān)的選項狀態(tài)為y或m:

下面有寫相關(guān)配置項的路徑:

ECM/PPP/CMUX同理,CMUX需要注意的是,搜索的是N_GSM:

可以選擇一個項目配置完就按左右選擇Save保存下配置,所有選項勾選完畢,點擊鍵盤的左右按鈕,選擇Exit,直到退出到彈出對話框問你是否保存,選擇yes保存完畢,就結(jié)束了所有配置工作。

5.1.5 構(gòu)建內(nèi)核

生成并安裝內(nèi)核、模組和設(shè)備樹blob。此步驟可能需要很長時間,具體取決于所使用的樹莓派模型。

對于32位內(nèi)核:

對于64位內(nèi)核:

注1:第一句make后面的V=1為編譯時候看的日志等級為1級,日志最多為S級,不加這個V=1可能看不到你修改的驅(qū)動哪里有問題;

注2:-j4為啟動4個內(nèi)核一起編譯。

記得給樹莓派拿個風(fēng)扇懟著散熱,會很燙。

所有的項目完成以后,現(xiàn)在重新啟動,你的樹莓派應(yīng)該運行你新編譯的內(nèi)核!

給樹莓派插入Air724/Air780E/1802/1603系列的板子,開機以后,輸入:

就能看見三個端口

注1:這三個端口是Linux自己分配的,端口號可能不固定,如果想要固定端口號,可以使用這個鏈接里提到的方案:

https://doc.openluat.com/article/2080/0

注2:618可能會出現(xiàn)不叫ttyUSB的端口,可能叫ttyACM,也有可能是其他:

Linux下的串口調(diào)試工具很多,最知名的就是minicom,簡單使用方式在下面:

我個人覺得不好用,所以我用的是我們自己寫的一個串口工具,使用方法如下:

https://doc.openluat.com/article/645/0

編譯完成后,在目錄下會生成一個at.out的可執(zhí)行文件,使用示例:

5.2 編譯完可能出現(xiàn)的問題

5.2.1 找不到端口

如果lsusb可以顯示出來對應(yīng)模組的PID VID,但是找不到那幾個虛擬串口。

解決方法:發(fā)送命令

1)8910系列
Air724UG/720UH/720UG/722UG/820UG/600UG…

發(fā)這個:

2)618系列
Air780E/780EX/780EG/600E/780EA/600EA/700E…

發(fā)這個:

然后再去找下端口,如果能找到,則證明PID VID修改未成功,重新從5.1.1開始做起。

如果lsusb找不到對應(yīng)端口,先確定下模組開機vdd_ext有沒有電壓。如果沒有,powerkey接地,vbat供電4V;如果有,建議給vbus DM DP gnd四個飛線出來,接一根USB線給Win10電腦。模組開機以后,看看Win10電腦上有沒有三個端口。

5.2.2 端口顯示異常

lsusb顯示的端口為17d1 0001,并非19d1 0001。

解決方法:

17D1 0001為618模組進入boot后Linux顯示的端口號,通常情況下,重新給618模組開機一次即可解決。

如果開機后依舊顯示17D1 0001端口,則證明vdd_ext引腳和uboot引腳短接在了一起,或者uboot引腳接入了其他高電平引腳如3.3V或者vbat引腳。


樹莓派Linux編譯及系列模組的使用方法,就先分享到這里了~

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11292

    瀏覽量

    209322
  • 編譯
    +關(guān)注

    關(guān)注

    0

    文章

    657

    瀏覽量

    32852
  • 樹莓派
    +關(guān)注

    關(guān)注

    116

    文章

    1706

    瀏覽量

    105606
收藏 人收藏

    評論

    相關(guān)推薦

    IC打工人最常用的20個Linux命令

    我看到一些IC初學(xué)者,竟然糾結(jié)于看哪本Linux書,甚至有人看視頻教程一集一集的學(xué)。筆者認為,學(xué)IC重要的是IC本身,而工具類的東西,等你用了再去學(xué)也不遲,何況IC打工人也用不到那么多Linux命令
    的頭像 發(fā)表于 04-19 09:34 ?1403次閱讀

    小安Demo固件編譯和燒錄指南

    小安Demo固件編譯和燒錄指南
    發(fā)表于 08-06 09:35 ?505次閱讀
    小安<b class='flag-5'>派</b>Demo固件<b class='flag-5'>編譯</b>和燒錄<b class='flag-5'>指南</b>

    樹莓權(quán)威用戶指南

    `樹莓權(quán)威用戶指南樹莓(raspberry pi),是一款基于linux系統(tǒng)的、只有一張信
    發(fā)表于 07-01 00:23

    精選樹莓實用書籍,初學(xué)者看完必有收獲

    上手實踐的簡單有趣的項目,讓你學(xué)完知識后,可以馬上體驗實操的樂趣。樹莓Python編程指南:本書是學(xué)習(xí)在樹莓派上編程的必備手冊。即使你沒有
    發(fā)表于 05-20 14:35

    樹莓Python編程指南分享

    樹莓python編程指南
    發(fā)表于 10-07 08:43

    樹莓gpio應(yīng)用

    樹莓現(xiàn)在越來越火,網(wǎng)上樹莓的資料也越來越多。樹莓源自英國,國外嵌入式開源領(lǐng)域具有良好的分享
    發(fā)表于 11-09 15:10 ?4199次閱讀

    樹莓(Raspberry Pi)實戰(zhàn)指南.pdf

    樹莓實戰(zhàn)指南
    發(fā)表于 05-07 15:17 ?128次下載

    解答樹莓如何開啟root賬戶

    樹莓使用的linux是debian系統(tǒng),所以樹莓啟用root和debian是相同的。
    發(fā)表于 10-30 10:06 ?6453次閱讀
    解答<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>如何開啟root賬戶

    樹莓是什么樹莓入門教程資料免費下載

    樹莓(英語:Raspberry Pi),是一款基于Linux的單片機電腦。它由英國的樹莓基金會所開發(fā),目的是以低價硬件及自由軟件促進學(xué)校
    發(fā)表于 05-13 18:12 ?17次下載
    <b class='flag-5'>樹莓</b><b class='flag-5'>派</b>是什么<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>入門教程資料免費下載

    使用樹莓設(shè)計智能小車代碼上傳及編譯方法教程免費下載

    本文檔的主要內(nèi)容詳細介紹的是使用樹莓設(shè)計智能小車代碼上傳及編譯方法教程免費下載
    發(fā)表于 06-24 08:00 ?19次下載

    如何使用樹莓實現(xiàn)嵌入式Linux開發(fā)教學(xué)的探索

    通過Python、Java、C 控制樹莓的GPIO,并與傳統(tǒng)的嵌入式Linux 開發(fā)教學(xué)比較,顯示其高效且豐富的語言開發(fā)環(huán)境。通過樹莓
    發(fā)表于 07-20 17:17 ?27次下載
    如何使用<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>實現(xiàn)嵌入式<b class='flag-5'>Linux</b>開發(fā)教學(xué)的探索

    半導(dǎo)體打工人分類

    那些口口聲聲 打工太難的人 應(yīng)該看著你們 就像我一樣 成為一個半導(dǎo)體打工人滿懷驕傲 我們在自嘲中躺平認命 直面自己的底層身份 說上班就感覺像是為生活所迫不情不愿 說打工就像是帶著美好的憧憬 用努力
    的頭像 發(fā)表于 10-30 15:50 ?1597次閱讀

    打工人之憂:麒麟芯片“絕版”成最大變量

    最近,“打工人”這個詞火了,不僅有各種段子和表情包在網(wǎng)上流傳,就連朋友之間聊天可能都會先問候一句“你好,打工人!”。其實“打工人”既是自嘲,也是自我激勵。
    的頭像 發(fā)表于 11-04 16:53 ?1924次閱讀
    <b class='flag-5'>打工人</b>之憂:麒麟芯片“絕版”成最大變量

    linux開發(fā)板與樹莓的區(qū)別

    定義和用途 Linux開發(fā)板:Linux開發(fā)板是一種基于Linux操作系統(tǒng)的嵌入式開發(fā)板,通常用于工業(yè)自動化、物聯(lián)網(wǎng)、智能家居等領(lǐng)域。 樹莓
    的頭像 發(fā)表于 08-30 15:34 ?931次閱讀

    干貨來嘍!實用樹莓Linux編譯指南

    不友好,有沒有好的解決辦法? 今天來分享一下我的私藏干貨——樹莓Linux編譯。編譯好之后,開發(fā)板只需插到
    的頭像 發(fā)表于 12-18 16:31 ?39次閱讀
    干貨來嘍!實用<b class='flag-5'>樹莓</b><b class='flag-5'>派</b><b class='flag-5'>Linux</b><b class='flag-5'>編譯</b><b class='flag-5'>指南</b>
    RM新时代网站-首页