Linux第63步_為新創建的虛擬機添加必要的目錄和安裝支持linux系統移植的軟件

1、創建必要的目錄

1)、創建“/home/zgq/linux/”目錄

打開終端,進入“/home/zgq/”目錄

輸入“mkdir linux回車”,創建“/home/zgq/linux/”目錄

輸入“ls回車”,列舉“/home/zgq/”目錄的所有文件和文件夾

創建好/home/zgq/linux/目錄后,目錄見下圖:

2)、創建“/home/zgq/linux/”的子目錄

輸入“cd /home/zgq/linux/回車”,切換到“/home/zgq/linux/”目錄

輸入“mkdir atk-mp1回車”,創建“/home/zgq/linux/busybox/atk-mp1/”目錄

輸入“mkdir busybox回車”,創建“/home/zgq/linux/busybox/”目錄

輸入“mkdir buildroot回車”,創建“/home/zgq/linux/buildroot/”目錄

輸入“mkdir tftpboot回車”,創建“/home/zgq/linux/tftpboot/”目錄

輸入“chmod 777 tftpboot/回車”,給tftpboot賦可執行權限,非常重要

輸入“mkdir nfs回車”,創建“nfs”目錄

輸入“mkdir rootfs回車”,創建“/home/zgq/linux/rootfs”目錄?

輸入“mkdir tool回車”,創建“/home/zgq/linux/tool”目錄,用于存放各種安裝工具

如下:

code_1.50.1-1602600906_amd64.deb

gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf.tar.xz

stm32wrapper4dbg-master.zip

等等

輸入“ls回車”,列舉“/home/zgq/linux/”的子目錄

創建好/home/zgq/linux/目錄的子目錄后,目錄見下圖:

3)、創建“/home/zgq/linux/atk-mp1/”的子目錄

輸入“cd /home/zgq/linux/atk-mp1/回車”進入“/home/zgq/linux/atk-mp1/

輸入“mkdir my-tfa回車”,創建“/home/zgq/linux/atk-mp1/my-tfa/”目錄

輸入“mkdir uboot回車”,創建“/home/zgq/linux/atk-mp1/uboot/”目錄

輸入“mkdir linux回車”,創建“/home/zgq/linux/atk-mp1/linux/”目錄

輸入“ls回車”,列舉“/home/zgq/linux/atk-mp1/”目錄的所有文件和文件夾

創建好/home/zgq/linux/atk-mp1/目錄的子目錄后,目錄見下圖:

4)、創建“/home/zgq/linux/atk-mp1/linux/bootfs/”目錄

輸入“cd /home/zgq/linux/atk-mp1/linux/回車”,

進入“/home/zgq/linux/atk-mp1/linux/

輸入“mkdir bootfs回車”,創建“/home/zgq/linux/atk-mp1/linux/bootfs”目錄,用來存放新生成的“ uImage ” 和“ stm32mp157d-atk.dtb ”

創建好/home/zgq/linux/atk-mp1/linux/bootfs/目錄后,目錄見下圖:

5)、創建“/home/zgq/linux/nfs/rootfs/”目錄

輸入“cd /home/zgq/linux/nfs/回車”,切換到“/home/zgq/linux/nfs/”目錄

輸入“mkdir rootfs回車”,創建“/home/zgq/linux/nfs/rootfs/”目錄用于存放根文件系統

輸入“ls回車”,列出“/home/zgq/linux/nfs/”目錄下的文件和文件夾

創建好/home/zgq/linux/nfs/目錄的子目錄后,目錄見下圖:

6)、創建“/usr/local/arm”目錄

輸入“cd /usr/local/回車?,切換到“/usr/local/”目錄

輸入“ls arm回車”,列出“arm”目錄,報告“ls: 無法訪問'arm '

輸入“sudo mkdir arm回車”,創建“/usr/local/arm”目錄

輸入密碼“123456回車

輸入“ls arm回車”,列出“arm”目錄

/usr/local/的子目錄見下圖:

7)、創建“/mnt/bootfs/”和/mnt/?rootfs/目錄

輸入“cd /mnt/回車

輸入“ls bootfs回車”,列出“bootfs”目錄

若報告“ls: 無法訪問'bootfs'”,則輸入“sudo mkdir /mnt/bootfs回車”,創建“/mnt/bootfs/”目錄

若提示輸入密碼,則輸入密碼“123456回車

輸入“ls rootfs回車”,列出“rootfs”目錄

若報告“ls: 無法訪問'rootfs'”,輸入“sudo mkdir rootfs回車”,創建“/mnt/?rootfs/”目錄

若提示輸入密碼,則輸入密碼“123456回車

輸入“ls回車”,列出“/mnt/”目錄下的文件和文件夾

/mnt/的子目錄見下圖:

2、了解tftpboot和“bootfs”目錄的作用:

1)、“/home/zgq/linux/tftpboot/”目錄的用法:

用于tftp下載linux內核文件“uImage”和“stm32mp157d-atk.dtb”

先執行“sudo cp uImage ?stm32mp157d-atk.dtb /home/zgq/linux/tftpboot/

接著賦可執行權限“chmod 777 uImage”,“chmod 777 stm32mp157d-atk.dtb,最后通過網絡將“uImage”和“stm32mp157d-atk.dtb”下載到DDR中,就可以運行linux內核了

2)、/home/zgq/linux/atk-mp1/linux/bootfs的用法:

這個目錄需要“/mnt/bootfs”協助才可以生成“bootfs.ext4”;

用于生成燒錄EMMC的“bootfs.ext4”文件。

輸入“cd /home/zgq/linux/atk-mp1/linux/bootfs/回車”,切換到“/home/zgq/linux/atk-mp1/linux/bootfs/”目錄

輸入“ls ?-l回車”,列出“bootfs”目錄下的文件和文件夾

計算“uImage”和“stm32mp157d-atk.dtb”的容量

執行dd if=/dev/zero of=bootfs.ext4 bs=1M count=10創建“bootfs.ext4”磁盤,容量為10M

執行mkfs.ext4 -L bootfs bootfs.ext4格式化“bootfs.ext4”磁盤并將磁盤的卷標設置為“bootfs

執行“sudo mount?/home/zgq/linux/atk-mp1/linux/bootfs/bootfs.ext4 /mnt/bootfs/”掛載bootfs.ext4磁盤;

執行“sudo cp uImage ?stm32mp157d-atk.dtb /mnt/bootfs/拷貝文件“uImage”和“stm32mp157d-atk.dtb”到“/mnt/bootfs/”目錄;

執行“sudo umount /mnt/bootfs/”卸載bootfs.ext4磁盤;

/home/zgq/linux/atk-mp1/linux/bootfs/目錄下生成新的linux內核文件“bootfs.ext4”,它可用于燒錄到EMMC中

由于“/mnt/bootfs”“/mnt/rootfs”只是起到過度作用,就不再詳細介紹了。

3、了解“rootfs”的作用

“/home/zgq/linux/nfs/rootfs/”的用法:

它是根文件系統存放的路徑,通過nfs下載根文件系統文件。

1)、若是使用“buildroot”構建根文件系統,則執行步驟如下:

執行“cd /home/zgq/linux/buildroot/buildroot-2020.02.6/”切換目錄

輸入“make show-targets”查看buildroot配置的目標軟件包

輸入“make busybox”單獨編譯“busybox”,記住“make busybox-menuconfig

輸入“make”執行編譯“buildroot”,記住“make menuconfig

執行“cd /home/zgq/linux/nfs/rootfs切換目錄

執行“sudo rm * -rf刪除“/home/zgq/linux/nfs/rootfs”目錄下的所有文件;

執行“cd /home/zgq/linux/buildroot/buildroot-2020.02.6/output/images切換目錄;

執行“cp rootfs.tar /home/zgq/linux/nfs/rootfs”拷貝“rootfs.tar

執行“cd /home/zgq/linux/nfs/rootfs切換目錄

執行“tar -vxf rootfs.tar”解壓“/home/zgq/linux/nfs/rootfs/rootfs.tar

執行“rm rootfs.tar”刪除“/home/zgq/linux/nfs/rootfs/rootfs.tar

輸入“ls”查看“/home/zgq/linux/nfs/rootfs/”目錄,這就是由buildroot生成的可供nfs下載的根文件系統。

2)、若是使用“busybox”構建根文件系統,則執行步驟如下:

執行“cd /home/zgq/linux/busybox/busybox-1.32.0/”;

執行“make”編譯busybox

執行“make install CONFIG_PREFIX=/home/zgq/linux/nfs/rootfs/”將busybox 安裝到“/home/zgq/linux/nfs/rootfs/”目錄

執行“cd /home/zgq/linux/nfs/rootfs/”切換目錄

執行“mkdir lib”創建“/home/zgq/linux/nfs/rootfs/lib/”目錄;

執行“cd /usr/local/arm/gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf/arm-none-linux-gnueabihf/libc/lib/”進行目錄切換

執行“cp *so* /home/zgq/linux/nfs/rootfs/lib/ -d”將所有的“*so*”拷貝到“/home/zgq/linux/nfs/rootfs/lib/”目錄

執行“cd /home/zgq/linux/nfs/rootfs/lib/”進行目錄切換

執行“ls l ld-linux-armhf.so.3”查看發現“ld-linux-armhf.so.3?是快捷方式”

執行“rm ld-linux-armhf.so.3”刪除“ld-linux-armhf.so.3快捷方式”

執行“cd /usr/local/arm/gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf/arm-none-linux-gnueabihf/libc/lib/”進行目錄切換

執行“cp linux-armhf.so.3 /home/zgq/linux/nfs/rootfs/lib/”拷貝文件

執行“/usr/local/arm/gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf/arm-none-linux-gnueabihf/lib/”進行目錄切換

執行“cp *so* *.a /home/zgq/linux/nfs/rootfs/lib/ -d”?將所有的“*so*”和“*.a”拷貝到“/home/zgq/linux/nfs/rootfs/lib/”目錄

執行“cd /home/zgq/linux/nfs/rootfs/usr”進行目錄切換

執行“mkdir lib”創建“/home/zgq/linux/nfs/rootfs/usr/usr”目錄

執行“cd /usr/local/arm/gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf/arm-none-linux-gnueabihf/libc/usr/lib”進行目錄切換

執行“cp *so* *.a /home/zgq/linux/nfs/rootfs/usr/lib/?-d” 將所有的“*so*”和“*.a”拷貝到“/home/zgq/linux/nfs/rootfs/lib/”目錄

執行“cd /home/zgq/linux/nfs/rootfs/”進行目錄切換

執行“du ./lib ./usr/lib/ -sh 回車”,查看/home/zgq/linux/nfs/rootfs/lib和/home/zgq/linux/nfs/rootfs/usr/lib/這兩個目錄的大小,發現lib為158M,/usr/lib/為89M

執行“mkdir dev proc mnt sys tmp etc root”一次性創建多個目錄;

輸入“ls”查看“/home/zgq/linux/nfs/rootfs/”目錄,這就是由busybox生成的可供nfs下載的根文件系統。

/home/zgq/linux/rootfs”的用法:

條件:可供nfs下載的根文件系統在“/home/zgq/linux/nfs/rootfs/”目錄中,因此生成可燒錄的“rootfs.ext4”需要/home/zgq/linux/nfs/rootfs/”目錄中的文件。

執行“cd /home/zgq/linux/rootfs/”進行目錄切換

執行“dd if=/dev/zero of=rootfs.ext4 bs=1M count=1024”創建“rootfs.ext4”并分配1G個字節空間

執行“mkfs.ext4 -L rootfs rootfs.ext4”格式化“rootfs.ext4”并將卷標設置為rootfs

執行“sudo mount rootfs.ext4 /mnt/rootfs/”將“rootfs.ext4”掛載到“/mnt/rootfs/”目錄下

執行“cd /home/zgq/linux/nfs/rootfs/”進行目錄切換

執行“sudo cp * /mnt/rootfs/ -drf”將“/home/zgq/linux/nfs/rootfs/”目錄下的所有文件拷貝到“/mnt/rootfs/”

執行“cd /home/zgq/linux/rootfs”進行目錄切換

執行“sudo umount /mnt/rootfs”卸載掉“/mnt/rootfs”目錄下的所有文件

輸入“ls -l”查看“/home/zgq/linux/rootfs”目錄下是否生成新的“rootfs.ext4”,這個就是要燒錄到EMMC中的文件

由于“/mnt/bootfs”“/mnt/rootfs”只是起到過度作用,就不再詳細介紹了。

4、vim編輯器安裝

打開終端

輸入“sudo apt-get install vim回車

常用知識介紹:

輸入“vim XXX回車”打開“XXX”文件后,要想打開行號顯示,則按“ESC鍵”輸入“:set number!”,否則輸入“:set nonu”關閉行號顯示

按“ESC鍵”后再按下“A”,將光標插入到該行的尾部

按下ESC鍵”,輸入“:wq,保存退出

按下ESC鍵”,輸入“:q!,不保存退出

5、實現Ubuntu和Windows文件互傳

1)、在Ubuntu(烏班圖)中安裝FTP服務器

在安裝前,要檢查虛擬機可以上網,否則可能會導致安裝失敗。

打開終端

輸入“sudo apt-get install vsftpd回車

輸入密碼“123456回車

輸入“sudo vi /etc/vsftpd.conf回車”,打開“vsftpd.conf”?文件。

按下ESC”,輸入“/local_enable=YES回車”,按下“A鍵”進入修改模式,修改完后按下ESC鍵”。

將“#local_enable=YES”修改為“local_enable=YES

將“#write_enable=YES”修改為“write_enable=YES

按下ESC”,輸入“:wq,保存退出

輸入“sudo /etc/init.d/vsftpd restart回車”,重啟FTP服務。

輸入“sudo apt-get install net-tools回車

2)、在“windows”中安裝FTP客戶端軟件FileZilla

注意:字符集一定要選擇“強制UTF-8”,否則上傳后文件會有問題

6、安裝NFS服務

1)、打開終端

輸入“sudo apt-get install nfs-kernel-server rpcbind回車”

輸入“sudo vi /etc/exports回車”,打開 nfs配置文件“/etc/exports”

輸入密碼“123456回車

添加內容如下:

/home/zgq/linux/nfs *(rw,sync,no_root_squash,no_subtree_check)

2)、按“ESC鍵”,輸入“:wq”保存退出

輸入“sudo /etc/init.d/nfs-kernel-server restart回車”,重啟 NFS服務

輸入“sudo apt-get install nfs-kernel-server rpcbind回車

3)、修改“nfs-kernel-server”文件

輸入“sudo vi /etc/default/nfs-kernel-server回車”,打開“nfs-kernel-server”文件。

輸入密碼“123456回車

在“nfs-kernel-server”文件的最后面添加內容如下:

RPCNFSDOPTS="--nfs-version 2,3,4 --debug --syslog"

修改后,見下圖:

4)、按“ESC鍵”,輸入“:wq回車

輸入“sudo /etc/init.d/nfs-kernel-server restart回車”,重啟“nfs-kernel-server”

7、安裝SSH服務

打開終端

輸入“sudo apt-get install openssh-server回車

若詢問,則輸入“Y回車

若不能下載,則執行“sudo apt-get update回車”,然后再執行“sudo apt-get install openssh-server回車

8、安裝Ubuntu下的C語言編譯器GCC

1)、在安裝前,要檢查虛擬機可以上網,否則可能會導致安裝失敗。

2)、點擊“打開終端(E)”?

3)、輸入“sudo apt-get install build-essential回車”

4)、輸入密碼“123456回車”

5)、輸入“y回車”

6)、輸入“gcc -v回車”,查看GCC編譯器的版本號碼。

9、安裝交叉編譯工具鏈”

1)、將“gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf.tar

”壓縮包,使用FileZilla”把拷貝到“/home/zgq/linux/tool”目錄下。該文件位于“05、開發工具\01、交叉編譯器”目錄中。

2)、打開終端

輸入“cd /usr/local/arm/回車?

若沒有“/usr/local/arm”目錄,則

輸入“sudo mkdir /usr/local/arm回車”

輸入密碼“123456回車”

輸入“cd /usr/local/回車”

否則跳過上面

輸入“ls回車”,查看“cd /usr/local/”目錄下的所有文件和文件夾

輸入“cd /home/zgq/linux/tool/回車”,返回到“/home/zgq/linux/tool/”目錄下

輸入“ls回車”,查看“/home/zgq/linux/tool/”目錄下的所有文件和文件夾

輸入

sudo cp gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf.tar.xz ?/usr/local/arm回車,將當前文件拷貝到“/usr/local/arm”目錄下

輸入“cd /usr/local/arm/回車

輸入“ls回車”,查看“/usr/local/arm/”目錄下的所有文件和文件夾

輸入

sudo tar?-vxf gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf.tar.xz回車”,解壓

輸入“cd gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf/bin/回車

輸入“ls回車

查看“gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf/bin/”目錄下的所有文件和文件夾

輸入“pwd回車,查找全路徑如下:

/usr/local/arm/gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf/bin

輸入“sudo vi /etc/profile回車

在文件的最后面添加下面的語句

export PATH=$PATH:/usr/local/arm/gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf/bin

注意:PATH后面不能有空格

按“ESC鍵”,然后輸入“:wq回車”保存退出。

輸入“sudo apt-get update回車

輸入“sudo apt-get install lsb-core lib32stdc++6回車

發現問題如下:

E: 無法獲得鎖 /var/cache/apt/archives/lock - open (11: 資源暫時不可用)

E: 無法對目錄 /var/cache/apt/archives/ 加鎖

輸入“ps -aux回車”,列出所有進程,找到lock

輸入“sudo kill ?850回車”,刪除lockd進程

輸入“sudo apt-get install lsb-core lib32stdc++6回車”

這里沒有發現安裝問題。

重啟虛擬機

打開終端

輸入“arm-none-linux-gnueabihf-gcc -v回車

至此,Ubutun交叉編譯工具鏈”安裝完成

10、安裝虛擬機中的VSCode

使用“FileZilla”將“code_1.50.1-1602600906_amd64”拷貝到“/home/zgq/linux/tool/”目錄下,該文件路徑:03、軟件/Visual Studio Code/ code_1.50.1-1602600906_amd64”。

打開終端

輸入“cd /home/zgq/linux/tool/回車”,返回到“/home/zgq/linux/tool/”目錄下

輸入“ls回車”,查看“tool”目錄下的所有文件和文件夾

輸入“sudo dpkg -i?code_1.50.1-1602600906_amd64.deb回車

輸入密碼“123456回車

關閉終端窗口

點擊下圖中的“文件”

雙擊“其他位置”,雙擊“計算機”,雙擊“usr”,雙擊“share” ,雙擊“application”

將下圖中的 “Visual Studio Code”復制到桌面。

4)、安裝插件有下面幾個:

1)、C/C++,這個肯定是必須的。

2)、C/C++ Snippets,即 C/C++重用代碼塊。

3)、C/C++ Advanced Lint,即 C/C++靜態檢測 。

4)、Code Runner,即代碼運行。

5)、Include AutoComplete,即自動頭文件包含。

6)、Rainbow Brackets,彩虹花括號,有助于閱讀代碼。

7)、One Dark Pro,VSCode的主題。

8)、GBKtoUTF8,將 GBK轉換為 UTF8。

9)、ARM Assembly,即支持 ARM匯編語法高亮顯示。

10)、Chinese(Simplified),即中文環境。

11)、vscode-icons,VSCode圖標插件,主要是資源管理器下各個文夾的。

12)、compareit,比較插件,可以用于兩個文的差異。

13)、DeviceTree,設備樹語法插件。

14)、TabNine,一款 AI自動補全插件,強烈推薦誰。

完成相關設置

點擊上圖藍色框內的“設置”,?然后點擊“文本編輯器”點擊“字體”,刪除其他字體,只保留'monospace'等寬字體,?在搜索框中,輸入“預覽”,點擊“工作臺”,去掉“控制打開的編輯器是否顯示為預覽”前面的“勾選”。

11、取消鼠標中鍵的復制粘貼功能

輸入“xmodmap -e "pointer = 1 25 3 4 5 6 7 2"回車”

12、安裝虛擬機中的stm32wrapper4dbg工具

注意:前面的步驟安裝完成后,才能安裝“stm32wrapper4dbg工具”,否則執行“make”會出錯

使用FileZilla”把“stm32wrapper4dbg-master.zip”壓縮包拷貝到“/home/zgq/linux/tool”目錄下。該文件位于“05、開發工具”目錄中。

輸入“cd /home/zgq/linux/tool/回車”,返回到“tool/”目錄下

輸入“ls回車”,查看“tool”目錄下的所有文件和文件夾

輸入“unzip stm32wrapper4dbg-master.zip回車”,?解壓stm32wrapper4dbg-master.zip

3)、輸入“ls回車”,查看“tool”目錄下的所有文件和文件夾

輸入“cd stm32wrapper4dbg-master/回車”,切換到“stm32wrapper4dbg-master”目錄

輸入“ls回車”,查看“stm32wrapper4dbg-master”目錄下的所有文件和文件夾

輸入“make回車”,編譯

輸入“ls回車”,查看“stm32wrapper4dbg-master”目錄下的所有文件和文件輸入sudo cp stm32wrapper4dbg /usr/bin回車

將編譯出來的stm32wrapper4dbg工具拷貝到Ubuntu的“/usr/bin”目錄下輸入

輸入密碼“123456回車

輸入“stm32wrapper4dbg -s回車”,查詢“stm32wrapper4dbg”是否安裝成功;

輸入“ls回車”,查看“stm32wrapper4dbg-master”目錄下的所有文件和文件

關閉終端

13、安裝“設備樹編譯工具”

打開終端

輸入“sudo apt-get install device-tree-compiler回車”,安裝設備樹編譯器;

輸入密碼“123456回車

14、安裝“libncurses5-dev,bison和flex”工具1)、打開終端

輸入“sudo apt-get install libncurses5-dev回車”;

輸入“密碼123456”

輸入“sudo apt-get install bison回車

輸入“sudo apt-get install flex回車

15、搭建TFTP服務器

1)、打開終端

輸入“sudo apt-get install tftp-hpa tftpd-hpa回車”,安裝 tfp-hpa 和 tfpd-hpa

2)、配置“tftp”創建“/etc/xinetd.d”目錄

輸入“cd /etc/xinetd.d回車

輸入“sudo mkdir /etc/xinetd.d回車

輸入“cd /etc/回車

輸入“ls回車”,查看“/etc/”目錄

3)、輸入“cd /etc/init.d/回車

輸入“ls回車”,查看“/etc/init.d/”目錄

輸入“sudo vi tftp回車”,新建一個tftp文件

輸入內容下:

server tftp

{

????????socket_type = dgram

????????protocol = udp

????????wait = yes

????????user = root

????????server = /usr/sbin/in.tftpd

????????server_args = -s /home/zgq/linux/tftpboot/

????????disable = no

????????per_source = 11

????????cps = 100 2

????????flags = IPv4

}

4)、按“ESC健”,再輸入“:wq回車”,保存文件。

輸入“sudo service tftpd-hpa start回車”,啟動tftp服務器

輸入“sudo vi /etc/default/tftpd-hpa回車

5)、輸入內容如下:

# /etc/default/tftpd-hpa

TFTP_USERNAME="tftp"

TFTP_DIRECTORY="/home/zgq/linux/tftpboot"

TFTP_ADDRESS=":69"

TFTP_OPTIONS="-1 -c -s"

6)、按“ESC健”,再輸入“:wq回車”,保存文件。

輸入“sudo service tftpd-hpa restart回車”,重啟“tftp服務器”

至此,“tftp服務器”搭建好了。

16、安裝“menuconfig圖形化配置工具”的支持庫“ncurses庫”

打開終端

輸入“sudo apt-get install build-essential回車”輸入“sudo apt-get install libncurses5-dev回車

17、安裝支持linux的第三方庫和mkimage工具

打開終端

輸入“sudo apt-get update回車”,在安裝前,先更新

輸入密碼“123456回車

輸入“sudo apt-get install lzop回車”,安裝支持linux的第三方庫

輸入“sudo apt-get install libssl-dev回車”,安裝支持linux的第三方庫

輸入“sudo apt-get install u-boot-tools回車”,安裝mkimage工具;

重啟虛擬機,使安裝文件生效

18、創建“/media/zgq/udisk”目錄用來掛載U盤

點擊“編輯”,點擊“首選項”,見下圖:

點擊“USB”,勾選見下圖:

輸入“cd /dev/回車”,進入“/dev/”目錄

輸入“ls sd*回車”,顯示以sd開頭所有文件。

注意:sda開頭的文件為PC的磁盤,sdb開頭的文件為U盤

注意:

/dev/sda表示虛擬機磁盤,/dev/sda1表示虛擬機磁盤的第一個分區。

/dev/sdb”表示U盤,/dev/sdb1”表示U盤的第一個分區

輸入“cd /media/zgq/udisk回車

準備切換到“/media/zgq/udisk”目錄,結果報告:“bash: cd: /media/zgq/udisk: 沒有那個文件或目錄

輸入“sudo mkdir /media/zgq/udisk回車”,準備創建“/media/zgq/udisk”目錄,

輸入密碼“123456回車”,允許創建

輸入“cd /media/zgq/udisk回車”,準備切換到“/media/zgq/udisk”目錄

輸入“cd ../回車”,返回到上層目錄“/media/zgq/”目錄

輸入“ls回車”,列出“/media/zgq/”目錄下的文件和文件夾

輸入“cd /dev/回車”,進入“/dev/”目錄

輸入“ls sd*回車”,顯示以sd開頭所有文件。

輸入“sudo mount /dev/sdb1 ?/media/zgq/udisk/回車”,將U盤的第一分區掛載udisk下。

輸入“cd /media/zgq/udisk/回車”,進入udisk目錄

輸入“ls回車”,查看udisk目錄下的文件,發現U盤掛載到udisk目錄下。

輸入“cd /回車”,進入根目錄

輸入“sudo umount /media/zgq/udisk回車”,卸載U盤

輸入“sudo mount -o iocharset=utf8 /dev/sdb1 ?/media/zgq/udisk/”,將U盤的第一分區掛載udisk下。解決目錄出現中文亂碼

輸入“cd /media/zgq/udisk回車”,準備切換到“/media/zgq/udisk”目錄

輸入“ls回車”,查詢udisk目錄下的文件,發現U盤文件。

19、獲取正點原子視頻中移植好的文件

將“buildroot-2020.02.6.tar.bz2”復制到“/home/zgq/linux/buildroot”目錄中

將“busybox-1.32.0.tar.bz2”復制到“/home/zgq/linux/busybox”目錄中

將“linux-5.4.31.tar.bz2”復制到“/home/zgq/linux/atk-mp1/linux”目錄中

將“tf-a-stm32mp-2.2.r1.tar.bz2”復制到“/home/zgq/linux/atk-mp1/tf-a”目錄中

將“u-boot-stm32mp-2020.01.tar.bz2”復制到“/home/zgq/linux/atk-mp1/uboot”目錄中

3)、解壓

輸入“cd /home/zgq/linux/buildroot回車

輸入“tar -xvf buildroot-2020.02.6.tar.bz2回車

輸入“cd /home/zgq/linux/busybox回車

輸入“tar -xvf busybox-1.32.0.tar.bz2回車

輸入“cd /home/zgq/linux/atk-mp1/linux回車

輸入“tar -xvf linux-5.4.31.tar.bz2回車

輸入“cd /home/zgq/linux/atk-mp1/tf-a回車

輸入“tar -xvf tf-a-stm32mp-2.2.r1.tar.bz2回車

輸入“cd /home/zgq/linux/atk-mp1/uboot回車

輸入“tar -xvf u-boot-stm32mp-2020.01.tar.bz2回車

文件解壓完后,還不能立即編譯,因為還缺少相關工具。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/696855.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/696855.shtml
英文地址,請注明出處:http://en.pswp.cn/news/696855.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

EIS(防抖):meshflow算法 C++實現

視頻防抖的應用 對視頻防抖的需求在許多領域都有。 這在消費者和專業攝像中是極其重要的。因此,存在許多不同的機械、光學和算法解決方案。即使在靜態圖像拍攝中,防抖技術也可以幫助拍攝長時間曝光的手持照片。 在內窺鏡和結腸鏡等醫療診斷應用中&…

Go 中的 init 如何用?它的常見應用場景有哪些呢?

嗨,大家好!我是波羅學。本文是系列文章 Go 技巧第十六篇,系列文章查看:Go 語言技巧。 Go 中有一個特別的 init() 函數,它主要用于包的初始化。init() 函數在包被引入后會被自動執行。如果在 main 包中,它也…

QT基本組件

四、基本組件 Designer 設計師(重點) Qt包含了一個Designer程序,用于通過可視化界面設計開發界面,保存文件格式為.ui(界面文件)。界面文件內部使用xml語法的標簽式語言。 在Qt Creator中創建文件時&#xf…

滾雪球學Java(67):深入理解 TreeMap:Java 中的有序鍵值映射表

咦咦咦,各位小可愛,我是你們的好伙伴——bug菌,今天又來給大家普及Java SE相關知識點了,別躲起來啊,聽我講干貨還不快點贊,贊多了我就有動力講得更嗨啦!所以呀,養成先點贊后閱讀的好…

機器人內部傳感器閱讀筆記及心得-位置傳感器-旋轉變壓器、激光干涉式編碼器

旋轉變壓器 旋轉變壓器是一種輸出電壓隨轉角變化的檢測裝置,是用來檢測角位移的,其基本結構與交流繞線式異步電動機相似,由定子和轉子組成。 旋轉變壓器的原理如圖1所示,定子相當于變壓器的一次側,有兩組在空間位置上…

MyBatis-Plus 優雅實現數據加密存儲

文章目錄 前言一、數據庫字段加解密實現1. 定義加密類型枚舉2. 定義AES密鑰和偏移量3. 配置定義使用的加密類型4. 加密解密接口5. 解密解密異常類6. 加密解密實現類6.1 AES加密解密實現類6.2 Base64加密解密實現類 7. 實現數據庫的字段保存加密與查詢解密處理類8. MybatisPlus配…

使用python進行量化交易

yfinance yfinance國內不能使用,可以使用tushare、akshare代替 import yfinance as yf# 輸入股票代碼 stock_symbol AAPL # 替換為你想要查詢的股票代碼# 獲取股票數據 data yf.download(stock_symbol)# 打印實時數據 print(data)pip install akshare import …

Selenium安裝與配置

文章目錄 一、selenium安裝1. Python環境準備:2. 安裝Selenium:3. 瀏覽器驅動安裝:4. 驗證安裝: 二、常見問題1. Selenium版本與瀏覽器驅動程序不兼容:2. 瀏覽器驅動程序路徑未正確設置: Selenium是一個用于…

2024年1月手機市場行業分析:蘋果手機份額驟降,國產高端手機成功逆襲!

小米Ultra發布。 一方面,我們有望看到國產手機再一次超越自己的決心,繼續創新追逐高端;另一方面,我們也不得不正視目前手機市場所面臨的危機狀態。 2024年1月的線上手機市場遠不如去年。根據鯨參謀數據顯示,今年1月京…

Qt(C++)面試題 | 精選25項常問

面試是每個求職者都必須經歷的一關,而QT面試更是需要面試者有深厚的編程基礎和豐富的實戰經驗。下面我們為大家整理了25道QT面試題,希望能夠幫助大家在求職路上獲得成功。 ?Qt 中常用的五大模塊是哪些? Qt 中常用的五大模塊包括: QtCore:提供了 Qt 的核心功能,例如基本的…

Java面試題之分布式/微服務篇

經濟依舊不景氣啊,如此大環境下Java還是這么卷,又是一年一次的金三銀四。 兄弟們,你準備好了嗎?沖沖沖!歐里給! 分布式/微服務相關面試題解 題一:CAP理論,BASE理論題二:…

深度神經網絡

包括:深度前饋神經網絡、深度卷積神經網絡、深度循環神經網絡 深度神經網絡全面概述:從基本概念到實際模型和硬件基礎-騰訊云開發者社區-騰訊云

MQL語言實現JSON協議庫

文章目錄 一、MQL語言實現JSON協議的意義二、定義JSON數據枚舉類型簡單數據類型復雜數據類型枚舉數據類型定義類變量清理與賦值方法構造與析構方法重載運算符添加與設置方法序列化與反序列方法 一、MQL語言實現JSON協議的意義 數據交互:JSON是一種輕量級的數據交換格…

【2024軟件測試面試必會技能】Postman(1): postman的介紹和安裝

Postman的介紹 Postman 是一款谷歌開發的接口測試工具,使API的調試與測試更加便捷。 它提供功能強大的 Web API & HTTP 請求調試。它能夠發送任何類型的HTTP 請求 (GET, HEAD, POST, PUT..),附帶任何數量的參數 headers。 postman是一款支持http協議的接口調試…

【PTA|函數題|期末復習】指針

目錄 6-1 計算兩數的和與差(5分) 函數接口定義: 裁判測試程序樣例: 輸入樣例: 輸出樣例: 代碼 6-2 拆分實數的整數與小數部分 (5分) 函數接口定義: 裁判測試程序樣例: 輸入…

springboot整合mybatisPlus超級詳細

springboot整合mybatis-plus超級詳細 一、環境二、springboot整合myBatisPlus2.1新建2.2 添加Mybatis-plus和mysql依賴2.3 修改配置文件2.4 新建包和文件2.5 新建表2.6 創建實體類2.7 創建Mapper接口2.8 創建Service接口2.9 創建Service實現類2.10 增刪改查 MyBatis-Plus&#…

C# Onnx 使用onnxruntime部署實時視頻幀插值

目錄 介紹 效果 模型信息 項目 代碼 下載 C# Onnx 使用onnxruntime部署實時視頻幀插值 介紹 github地址:https://github.com/google-research/frame-interpolation FILM: Frame Interpolation for Large Motion, In ECCV 2022. The official Tensorflow 2…

四.QT5工具安裝和環境變量的配置

1.以管理員身份運行安裝包 2.登錄qt賬號,點擊【next】 3.選中同意 4.選擇安裝目錄,注意不能有中文和空格 5.勾選 64位 mingw。點擊【next】,等待安裝完成 6.配置環境變量

[07] 組件注冊

目錄 Vue.js 組件局部注冊全局注冊 Vue.js 組件 組件(Component)是 Vue.js 最強大的功能之一。 組件可以擴展 HTML 元素,封裝可重用的代碼。 組件系統讓我們可以用獨立可復用的小組件來構建大型應用,幾乎任意類型的應用的界面都…

為什么很多人選用QT開發,有哪些應用實例?

在軟件開發領域,Qt框架作為一種跨平臺的C應用程序開發框架,近年來受到越來越多開發者的青睞。這主要得益于其卓越的跨平臺性能、豐富的功能庫、開發效率以及社區支持。以下將通過詳實的分析,從不同角度探討為什么很多人改用QT開發&#xff0c…