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.mzph.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…