中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

beaglebone AI環境搭建與運行是怎樣的

發布時間:2021-12-10 19:27:16 來源:億速云 閱讀:208 作者:柒染 欄目:互聯網科技

beaglebone AI環境搭建與運行是怎樣的,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

beaglebone AI環境搭建與運行

1.前言

本文主要介紹beaglebone的開發過程與啟動方式。同時將一套嵌入式Linux開發環境搭建起來。以便于更好的掌握和理解beaglebone AI的使用。工欲善其事,必先利其器,搭建好完整的開發環境,后續的工作才能更好的開展起來。要想用好一款芯片,也需要很好的理解其啟動方式。下面來實際的展示操作流程。

 

2.beaglebone AI 開發板特性

首先我選擇beaglebone AI作為嵌入式Linux學習的開發板,是因為有著良好的芯片datasheet支持,以及TI芯片的大規模的使用,使得其通用性和擴展性更強。板子顏值高,性能強、可玩性好、可以DIY的工程很多。這些都讓我對這個板子有著推進下去的動力,在不斷挖坑與填坑的過程中,也會將其作為我除了樹莓派4之外另一個主要業余推進的開發學習項目。在國內,這款板子并不是很熱門,但是在國外,玩的人還是很多,我也希望有更多的人一起去玩,從而學習更好的設計,寫出更多的更好的文章和大家分享。


3.beaglebone AI開發環境搭建

 

3.1 硬件連接

當前的開發環境搭建在ubuntu上,首先連接開發板的debug串口。

beaglebone AI環境搭建與運行是怎樣的


 

正面的圖示如下所示:

beaglebone AI環境搭建與運行是怎樣的


 

該輸出作為debug串口使用。

 

3.2 arm 交叉編譯工具鏈

首先確保默認的pc機是64位,不適合32位機器的使用。

wget -c https://releases.linaro.org/components/toolchain/binaries/6.5-2018.12/arm-linux-gnueabihf/gcc-linaro-6.5.0-2018.12-x86_64_arm-linux-gnueabihf.tar.xz
tar xf gcc-linaro-6.5.0-2018.12-x86_64_arm-linux-gnueabihf.tar.xz
export CC=`pwd`/gcc-linaro-6.5.0-2018.12-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-
 

其中pwd是默認設定的路徑。

然后檢測一下gcc的版本

${CC}gcc --version
 

可以看到下面的結果

beaglebone AI環境搭建與運行是怎樣的


 
 

3.3 編譯uboot

然后就可以開始進行uboot的編譯了。

git clone -b v2019.07-rc4 https://github.com/u-boot/u-boot --depth=1
cd u-boot/
 

然后為uboot生成補丁文件

wget -c https://github.com/eewiki/u-boot-patches/raw/master/v2019.07-rc4/0001-am57xx_evm-fixes.patch
  
patch -p1 < 0001-am57xx_evm-fixes.patch
 

接著開始編譯

make ARCH=arm CROSS_COMPILE=${CC} distclean
make ARCH=arm CROSS_COMPILE=${CC} am57xx_evm_defconfig
make ARCH=arm CROSS_COMPILE=${CC}
 

編譯完成就可以進行下面的操作了。

 

4.beaglebone AI啟動方式

學習一款嵌入式開發板的使用,首先就要理解其啟動模式。

按照https://github.com/beagleboard/beaglebone-ai/BeagleBone-AI_sch.pdf上標注,可以知道,在啟動上,首先會從USB中尋找程序,然后第二啟動項是SD卡,接著是eMMC。

beaglebone AI環境搭建與運行是怎樣的

本文主要介紹SD卡與eMMC的啟動模式。并且將uboot燒錄到SD卡中進行啟動。

首先準備一張小于等于16GB的SD卡(實測32GB的卡插入沒用),接著插入Ubuntu系統中。

輸入lsblk

bigmagic@bigmagic:~/work$ lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
loop1    7:1    0  55.3M  1 loop /snap/core18/1885
loop2    7:2    0 162.9M  1 loop /snap/gnome-3-28-1804/145
loop3    7:3    0 217.9M  1 loop /snap/gnome-3-34-1804/60
loop4    7:4    0 255.6M  1 loop /snap/gnome-3-34-1804/36
loop5    7:5    0  62.1M  1 loop /snap/gtk-common-themes/1506
loop6    7:6    0  43.2M  1 loop /snap/snap-store/415
loop7    7:7    0  50.7M  1 loop /snap/snap-store/481
loop8    7:8    0    31M  1 loop /snap/snapd/9607
loop9    7:9    0    31M  1 loop /snap/snapd/9721
loop10   7:10   0  55.4M  1 loop /snap/core18/1932
sda      8:0    0 931.5G  0 disk
├─sda1   8:1    0 465.9G  0 part /
└─sda2   8:2    0 465.7G  0 part
sdb      8:16   0 223.6G  0 disk
├─sdb1   8:17   0   200M  0 part /boot/efi
├─sdb2   8:18   0  99.4G  0 part
├─sdb3   8:19   0   589M  0 part
├─sdb4   8:20   0 115.4G  0 part
└─sdb5   8:21   0     8G  0 part
sdc      8:32   1    15G  0 disk
└─sdc1   8:33   1    15G  0 part
 

可以看的標識是sdc,則我們可以通過下面的命令導出到全局變量。

export DISK=/dev/sdc
 

輸入下面三條指令則可以將uboot燒錄到卡里了。

sudo dd if=/dev/zero of=${DISK} bs=1M count=10
sudo dd if=./u-boot/MLO of=${DISK} count=2 seek=1 bs=128k
sudo dd if=./u-boot/u-boot.img of=${DISK} count=4 seek=1 bs=384k
 

完成后輸入sync后,可以看到uboot已經正常啟動了。

beaglebone AI環境搭建與運行是怎樣的


 

從上面的過程不難分析,一般的TI芯片都會將啟動分為三部分

ROM->MLO(SPL)->uboot.img
   

5.beaglebone AI的Linux編譯

 

5.1 編譯kernel

git clone https://github.com/RobertCNelson/ti-linux-kernel-dev.git
cd ti-linux-kernel-dev/
 

如果是編譯正常的內核

git checkout origin/ti-linux-4.14.y -b tmp
 

編譯實時性內核

git checkout origin/ti-linux-rt-4.14.y -b tmp
 

其中實時性內核是就是RT_LINUX。輸入下面的命令開始編譯。

./build_kernel.sh
 

中途會有個menuconfig的界面需要配置

beaglebone AI環境搭建與運行是怎樣的


 

直接選擇Exit即可,程序會繼續編譯下去。直到編譯結束。

 

5.2 選擇根文件系統

跟文件系統可以選擇Debian 10或者Ubuntu 20.04 LTS

Debian 10

首先下載

wget -c https://rcn-ee.com/rootfs/eewiki/minfs/debian-10.4-minimal-armhf-2020-05-10.tar.xz
 

可以校驗一下

sha256sum debian-10.4-minimal-armhf-2020-05-10.tar.xz
 

得到結果如下即可

beaglebone AI環境搭建與運行是怎樣的

接著解壓

tar xf debian-10.4-minimal-armhf-2020-05-10.tar.xz
 

解壓后進入目錄可以看到下面的文件

beaglebone AI環境搭建與運行是怎樣的

其中user_password.list中存放的是用戶名和密碼。

debian:temppwd
 

Ubuntu 20.04 LTS

可以下載

wget -c https://rcn-ee.com/rootfs/eewiki/minfs/ubuntu-20.04-minimal-armhf-2020-05-10.tar.xz
 

校驗一下

sha256sum ubuntu-20.04-minimal-armhf-2020-05-10.tar.xz
 

校驗的結果如下:

de0177ac9259fdbcc626ee239f4258b64070c0921dbc38c45fab6925a5becaa1  ubuntu-20.04-minimal-armhf-2020-05-10.tar.xz

 

解壓即可

tar xf ubuntu-20.04-minimal-armhf-2020-05-10.tar.xz
 

在ubuntu上可以使用輸入用戶名Ubuntu,密碼temppwd即可。

 

6.將Linux的鏡像燒錄

接下來燒錄Linux的鏡像到SD卡中。

 

6.1 格式化SD卡

首先和燒錄uboot的方式一樣,如果檢測到sd卡的號為sdc。

export DISK=/dev/sdc
 

如果是mmcblk0則修改成該名稱。

輸入下面的命令查看sfdisk的版本。

sudo sfdisk --version
 

看到輸出

sfdisk,來自 util-linux 2.34
 

如果檢測到sfdisk >= 2.26.x則輸入:

sudo sfdisk ${DISK} <<-__EOF__
4M,,L,*
__EOF__
 

如果檢測到sfdisk <= 2.25.x則輸入:

sudo sfdisk --unit M ${DISK} <<-__EOF__
4,,L,*
__EOF__
 

然后格式化SD卡

for: DISK=/dev/mmcblkX
sudo mkfs.ext4 -L rootfs ${DISK}p1
  
for: DISK=/dev/sdX
sudo mkfs.ext4 -L rootfs ${DISK}1
 

掛載分區

sudo mkdir -p /media/rootfs/
  
for: DISK=/dev/mmcblkX
sudo mount ${DISK}p1 /media/rootfs/
  
for: DISK=/dev/sdX
sudo mount ${DISK}1 /media/rootfs/
   

6.2 拷貝rootfs到SD卡中

為了可以進行內核版本的區分,我們可以為內核鏡像定義一個名字,該名字可以查看編譯出來的文件得到4.14.108-ti-r137.zImage

export kernel_version=4.14.108-ti-r137
 

Linux完全引導起來需要rootfs,所以可以將rootfs解壓到指定的路徑下:

sudo tar xfvp ./*-*-*-armhf-*/armhf-rootfs-*.tar -C /media/rootfs/
sync
sudo chown root:root /media/rootfs/
sudo chmod 755 /media/rootfs/
 

為了方便,此時我們可以重名了內核版本,在/boot/uEnv.txt文件中。

sudo sh -c "echo 'uname_r=${kernel_version}' >> /media/rootfs/boot/uEnv.txt"
 

接著輸入文件系統掛載

sudo sh -c "echo '/dev/mmcblk0p1  /  auto  errors=remount-ro  0  1' >> /media/rootfs/etc/fstab"

   

6.3 拷貝Linux內核鏡像

進入到剛才編譯ti-linux-kernel-dev的上層目錄,輸入

sudo cp -v ./ti-linux-kernel-dev/deploy/*.zImage /media/rootfs/boot/vmlinuz-${kernel_version}
   

6.4 拷貝設備樹文件

sudo mkdir -p /media/rootfs/boot/dtbs/${kernel_version}/
sudo tar xfv ./ti-linux-kernel-dev/deploy/${kernel_version}-dtbs.tar.gz -C /media/rootfs/boot/dtbs/${kernel_version}/
   

6.5 拷貝內核模塊

sudo tar xfv ./ti-linux-kernel-dev/deploy/${kernel_version}-modules.tar.gz -C /media/rootfs/
   

7.啟動與驗證

上述過程完成后,可以移除SD卡,并插入beaglebone AI的板子中。

sync
sudo umount /media/rootfs
 

上電后,首先會從SD卡中啟動,最后的效果如下:

beaglebone AI環境搭建與運行是怎樣的

由于燒錄了ubuntu系統,可以看到啟動信息。

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

陇西县| 介休市| 荣成市| 正安县| 黎平县| 通江县| 沂水县| 南宫市| 额尔古纳市| 罗甸县| 灵丘县| 保山市| 乌拉特后旗| 沁源县| 遂昌县| 洛隆县| 凤山市| 六安市| 深圳市| 永平县| 肃北| 汉阴县| 都昌县| 旺苍县| 高陵县| 武功县| 佛教| 庆城县| 赤壁市| 英山县| 怀远县| 邯郸市| 西乌| 临高县| 浏阳市| 衡东县| 化德县| 樟树市| 榆中县| 广州市| 舟曲县|