無論是Linux還是Python,其學習過程對于硬件都沒什么要求,對于知識的掌握才是核心。
創新互聯是一家專注于網站制作、成都網站設計與策劃設計,金平網站建設哪家好?創新互聯做網站,專注于網站建設十余年,網設計領域的專業建站公司;建站業務涵蓋:金平等地區。金平做網站價格咨詢:028-86922220
理論上用樹莓派學習當然可以,但是鑒于你依然處于初學者水平,特別是Linux相關的不夠熟練,還是不太建議你是用樹莓派來進行學習。
如你所見,樹莓派是一個很需要DIY能力的“玩具”,非常酷炫,但對于入門學習幾乎沒有什么幫助——特別是對于Python,即使Windows環境也完全不會影響你的學習。
請記?。涸谖慈腴T之前,應該盡力去降低自己的學習難度,而不是為了好玩或者其他原因,來憑空給自己的學習道路增加許多麻煩。
之前筆記本換了一塊SSD,原來的那塊500GB的機械硬盤一直閑置沒用,最近淘寶買了一個硬盤盒子,把它當作移動硬盤來使,順便實際操作一下剛剛學的Linux的磁盤管理命令。
輸入命令 cfdisk /dev/sda ,進入到cfdisk分區工具界面:
將/dev/sda1格式化為 Ext4格式 ,命令為 mkfs -t ext4 /dev/sda1 ,同樣適用 Ext2格式 mkfs -t ext2 /dev/sda1 、 Ext3格式 mkfs -t ext3 /dev/sda1 。
使用命令 mkfs -t ntfs /dev/sda2 想將/dev/sda2格式化為 ntfs格式 ,但是會報錯: mkfs: failed to execute mkfs.ntfs: No such file or directory 。解決方法為:需要安裝 apt-get install ntfsprogs ,但是目前還是會報錯 E: Package 'ntfsprogs' has no installation candidate
命令 mkfs -t vfat /dev/sda3 或者 mkfs -t fat /dev/sda3 或者 mkfs -t msdos /dev/sda3 。vfat 是 fat 的擴展,支持長文件名,mkfs.fat和mkfs.vfat 本質上是同個工具,生成的文件系統沒區別是因為 vfat 和 fat-32 在實現上是沒區別的,只是 vfat 通過 fat-32 中的一些隱藏路徑表示長文件名,而在 fat-32 中這些隱藏路徑會當成是空的。
使用命令 mount [options] source directory 即可。首先需要建立掛載點(即一個文件夾) mkdir /mnt/part1 ,然后將一個分區掛載在這個掛載點上 mount /dev/sda1 /mnt/part1 。使用 df -h 查看掛載情況
當設備關機前,系統會自動卸載掛載的分區,因此手動掛載在下一次開機的時候有需要重新掛載。要實現開機自動掛載磁盤,需要在/etc/fstab文件中添加掛載信息。
命令: umount [options] source | directory
之前在樹莓派4b上點亮了OHOS3.0,不過內核是用tftp拉取的,根文件系統掛在了NFS上,拔了網線就無法啟動。當然這么操作只是為了方便調試,而最終需要的是一個可以燒錄到TF卡上的img鏡像文件。這就需要將所有調試好的內容添加到OHOS3.0的編譯框架,本以為是很簡單的事情,好家伙,整了這么久,感覺添加編譯框架比移植本身更復雜。于是我整理了添加樹莓派單板到編譯框架的內容,希望對各位有所幫助,為大家避坑。
主要參考 hisilicon build組件倉,添加一個products編譯組件,這個組件是在產品配置文件中指定的。比如
productdefinecommonproductsRPI4B.json
其他部分參考Hi3516,但是其中2條,指定單板組件路徑,并添加組件。如果刪除這兩條,將不能編譯內核,只生成OHOS的文件系統。
接下來在device目錄下,新建一個raspberrypi編譯組件文件夾,并添加 ohos.build 文件。和前面產品配置文件中的設置對應起來了。
deviceraspberrypibuildohos.build
新建 deviceraspberrypibuildBUILD.gn 當然每個廠家不可能只有1個板子,如果有其他單板就在這里指定,比如樹莓派2B、3B等
既然前面指定了rpi4b的編譯配置組件,那么就在 deviceraspberrypi 新建一個 rpi4b 的目錄,可以參考 hi3516dv300 build組件
deviceraspberrypirpi4bBUILD.gn
至此一個rpi4b build組件就添加到OHOS3.0的編譯框架了,之后相關內容添加到這個文件夾下就可以了。
接下來分析下目前移植了樹莓派4B的哪些內容,如何將這些內容編譯進OHOS3.0。
關于補丁可以參考 Patch組件,可以得知內核編譯由kernel.mk來執行
kernellinuxbuildkernel.mk
所以補丁文件需要放到正確的路徑下,以正確的名字命名就可以patch到內核。
hdf.patch補丁文件,現在還沒有移植HDF相關內容,所以可以先使用Hi3516的
rpi4b.patch補丁文件,使用樹莓派的官方鏡像,
kernellinuxconfiglinux-5.10archarmconfigsrpi4b_standard_defconfig
內核配置文件目前已知的需要開啟下面內容,但是肯定不止這些,以后會繼續更新
Pi4的GPU是VideoCore VI支持OpenGL ES 3.2,而Pi3的GPU是VideoCore IV支持OpenGL ES 2.0。VideoCore IV 驅動程序是 VC4,VideoCore VI 驅動程序的 V3D。內核已經提供驅動,參考rpi4b_standard_defconfig將驅動直接編入到內核。
同時需要在config.txt中開啟設置
OHOS中修改weston的配置文件,指定顯示驅動
systemetcweston.ini
具體思路就是先查找設備號,根據設備號找到驅動程序。
前面內核配置的時候rpi4b_standard_defconfig中已經將觸摸驅動編入內核,所以后面不需要在init加載模塊了,修改下eudev的配置文件即可。
third_partyeudevrules.d ouchscreen.rules
正常情況下內核是由uboot進行引導的,而且OHOS默認生成uImage。但是樹莓派自帶BootLoader,雖然可以先用樹莓派自帶的BootLoader啟動uboot,再用uboot加載uImage,但是這樣會比較麻煩,而且會增加啟動時間。不過目前 zImage是寫死在kernel.mk中的,沒辦法改下編譯腳本把。
kernellinuxbuildkernel.mk 將 uImage 改為 zImage modules dtbs
kernellinuxbuildbuild_kernel.sh
kernellinuxbuildBUILD.gn
kernellinuxbuildkernel_module_build.sh
這里內核編譯會依賴product_path="vendor/$product_company/$product_name"下的hdf.hcs文件,得先新建一個應付下,不然會報下面這個錯誤。
ninja: error: '../../vendor/raspberrypi/RPI4B/hdf_config/uhdf/hdf.hcs', needed by 'gen/drivers/adapter/uhdf2/hcs/hdf_default.hcb', missing and no known rule to make it
新建:vendor/raspberrypi/RPI4B/hdf_config/uhdf/hdf.hcs
對于鏡像燒錄,Hi3516會將uImage、system.img、vendor.img等鏡像燒寫到emmc,但是樹莓派使用TF卡啟動,所以需要對TF卡進行分區,然后復制對應的內容到各個分區。首先制作樹莓派boot目錄,這個用來目錄存放樹莓派設備樹、config.txt、cmdline.txt、內核鏡像等信息。寫一個簡單的mkboot.py腳本來實現這個功能,位置在碼倉rpi4bdeviceraspberrypiimagesmkboot.py將會生成boot.img。
為了方便燒錄,需要將boot.img、system.img、updater.img、vendor.img、userdata.img合并成一個rpi4b.img。還是寫一個簡單的腳本來處理這個步驟rpi4bdeviceraspberrypiimagesmkboot.py。
不過有個問題,主分區只支持4個,所以updater.img暫時先不合并了,這個問題等以后再來處理。
最后將會得到一個rpi4b.img的鏡像文件,將這個文件燒錄到SD卡就可以了。
Linux:可以使用dd命令
windows:使用Win32 Disk Imager工具燒錄即可。
到這里總算是跑通了一個完整的添加新單板的流程,只不過目前只適配了顯示和觸摸。接下來打算嘗試HDF或者distributed部分。
可以使用uname -a命令查看linux版本,也可使用lsb_release -a命令查看。
如果解決了您的問題,請采納
昨天在寫關于linux設置腳本開機啟動的文章時,有個疑問就是開機時怎么確認運行級別,然后遍歷執行/etc/rcN.d/目錄下的所有服務程序。帶著疑問, 在前人的基礎上 學習總結一下linux系統初始化的工作的內容,現在樹莓派4B上展示出來。
1、加載內核
當計算機打開電源后,首先是BIOS開機自檢,按照BIOS中設置的啟動設備(通常是硬盤)來啟動。操作系統接管硬件以后,首先讀入 /boot 目錄下的內核文件。樹莓派4B的內核是Raspbian GNU/Linux 10 (buster),基于Debian。
2、初始化進程init
內核文件加載以后,運行第一個程序init,它的作用是初始化系統環境。init位于目錄/sbin,進程號PID為1,即1號進程,其他所有進程都由init衍生,是init的子進程。
同時還有個0號進程,idle進程,在系統初始化時由內核kernel自身從無到有創建,通過調用kernel_thread創建一個內核線程去執行init函數,0號進程創建1號進程。
3、運行級別
具體介紹請參考筆者的文章-Linux運行級別簡介? ,但是開機時是怎么確定運行級別的呢?
init進程首先讀取文件 /etc/inittab,它是運行級別的設置文件。但是各個發行版不太一樣,init的配置文件也不一樣,有可能使用/etc/event.d里面的配置文件,最新版的改用為/etc/init目錄。
4、開機啟動程序
具體詳情請參考文章-linux中/etc/init.d設置開機啟動 ,確定運行級別后,執行rcN.d目錄下的文件,這些鏈接文件是連接到init.d目錄下的程序。init進程逐一加載開機啟動程序,其實就是運行這個目錄里的啟動腳本。
比如運行級別為5(圖形化多用戶)時啟動的程序:
5、用戶登錄
開機啟動程序加載完畢以后用戶登錄。用戶的登錄方式有三種:
命令行登錄:init進程調用getty程序。
ssh登錄:init進程調用sshd程序。
圖形界面登錄:init進程調用顯示管理器,Gnome圖形界面對應的顯示管理器為gdm。
6?、login shell
默認shell時bash,命令行界面,讓用戶可以直接與操作系統對話。讀取環境變量,具體請參考筆者文章-Linux環境變量的設置。
ome Linux上的我的文檔,包含用戶名命名的文件夾
/lib 各種應用需要的代碼庫
/lost+found 一般情況下是空的,當系統非法關機后,這里就存放了一些文件
/media 放置可移動存儲驅動器,比如USB和CD
/mnt 用來手動掛在外部硬件驅動器或存儲設備
/opt 可選軟件文件夾,非系統部分的軟件將會放置在這里
/sbin 放置超級用戶使用的系統管理命令
/sys 放置操作系統文件
/tmp 放置臨時文件
/usr 放置用戶使用的程序
/var 虛擬文件,用于程序保存數據
2
樹莓派常用命令:
網頁名稱:樹莓派4Linux命令 樹莓派4b裝linux
文章URL:http://m.newbst.com/article46/docpohg.html
成都網站建設公司_創新互聯,為您提供建站公司、微信小程序、外貿建站、動態網站、企業建站、移動網站建設
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯