1、创建必要的目录
输入密码“123456”,登录虚拟机
这个“zgq”,是用户名,也是下面用到的的“zgq”目录。
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 tfa回车”,创建“/home/zgq/linux/atk-mp1/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、获取“my-tfa”文件
使用“FileZilla”将“tf-a-stm32mp-2024.2.tar.bz2”复制到“/home/zgq/linux/atk-mp1/tfa”;
输入“cd /home/zgq/linux/atk-mp1/tfa/回车”切换到“/home/zgq/linux/atk-mp1/tfa/”目录
输入“ls回车”,查看“/home/zgq/linux/atk-mp1/tfa/”目录下的文件和文件夹
输入“tar -xvf tf-a-stm32mp-2024.2.tar.bz2回车”,解压生成“my-tfa”
输入“ls回车”,查看“/home/zgq/linux/atk-mp1/tfa/”目录下的文件和文件夹
输入“rm tf-a-stm32mp-2024.2.tar.bz2回车”,删除压缩包“tf-a-stm32mp-2024.2.tar.bz2”
输入“ls回车”,查看“/home/zgq/linux/atk-mp1/tfa/”目录下的文件和文件夹
输入“cd my-tfa回车”,切换到“/home/zgq/linux/atk-mp1/tfa/my-tfa/”目录
输入“ls回车”,查看“/home/zgq/linux/atk-mp1/tfa/my-tfa/”目录下的文件和文件夹
20、获取“my_uboot”文件
使用“FileZilla” 将“u-boot-stm32mp-2024.02.tar.bz2”复制到“/home/zgq/linux/atk-mp1/uboot”;
输入“cd /home/zgq/linux/atk-mp1/uboot/回车”切换到“/home/zgq/linux/atk-mp1/uboot”目录
输入“ls回车”,查看“/home/zgq/linux/atk-mp1/uboot/”目录下的文件和文件夹
输入“tar -xvf u-boot-stm32mp-2024.02.tar.bz2回车”,解压生成“my_uboot”
输入“ls回车”,查看“/home/zgq/linux/atk-mp1/uboot”目录下的文件和文件夹
输入“rm u-boot-stm32mp-2024.02.tar.bz2回车”,删除压缩包“u-boot-stm32mp-2024.02.tar.bz2”
输入“ls回车”,查看“/home/zgq/linux/atk-mp1/uboot”目录下的文件和文件夹
输入“cd my_uboot/回车”,切换到“/home/zgq/linux/atk-mp1/uboot/my_uboot”目录
输入“ls回车”,查看“/home/zgq/linux/atk-mp1/uboot/my_uboot”目录下的文件和文件夹
21、获取“linux-5.4.31”文件
使用“FileZilla”将“linux2024-02-5.4.31.tar.bz2”复制到“/home/zgq/linux/atk-mp1/linux/”;
输入“cd /home/zgq/linux/atk-mp1/linux/回车”切换到“/home/zgq/linux/atk-mp1/linux/”目录
输入“ls回车”,查看“/home/zgq/linux/atk-mp1/linux/”目录下的文件和文件夹
输入“tar -xvf linux2024-02-5.4.31.tar.bz2回车”,解压生成“linux-5.4.31”
输入“ls回车”,查看“/home/zgq/linux/atk-mp1/linux/”目录下的文件和文件夹
输入“rm linux2024-02-5.4.31.tar.bz2回车”,删除压缩包“linux2024-02-5.4.31.tar.bz2”
输入“ls回车”,查看“/home/zgq/linux/atk-mp1/linux/”目录下的文件和文件夹
输入“cd linux-5.4.31/回车”,切换到“/home/zgq/linux/atk-mp1/linux/ linux-5.4.31/”目录
输入“ls回车”,查看“/home/zgq/linux/atk-mp1/linux/ linux-5.4.31/”目录下的文件和文件夹
24、获取“buildroot-2020.02.6”文件
使用“FileZilla” 将“buildroot2024-2-2020.02.6.tar.bz2”复制到“/home/zgq/linux/buildroot”;
输入“cd /home/zgq/linux/buildroot/回车”切换到“/home/zgq/linux/buildroot/”目录
输入“ls回车”,查看“/home/zgq/linux/buildroot/”目录下的文件和文件夹
输入“tar -xvf buildroot2024-2-2020.02.6.tar.bz2回车”,解压生成“buildroot-2020.02.6”
输入“ls回车”,查看“/home/zgq/linux/buildroot/”目录下的文件和文件夹
输入“rm buildroot2024-2-2020.02.6.tar.bz2回车”,删除压缩包“buildroot2024-2-2020.02.6.tar.bz2”
输入“ls回车”,查看“/home/zgq/linux/buildroot/”目录下的文件和文件夹
输入“cd buildroot-2020.02.6/回车”,切换到“/home/zgq/linux/buildroot/ buildroot-2020.02.6/”目录
输入“ls回车”,查看“/home/zgq/linux/buildroot/ buildroot-2020.02.6/”目录下的文件和文件夹
25、获取“busybox-1.32.0”文件
使用“FileZilla” 将“busybox2024-02-1.32.0.tar.bz2”复制到“/home/zgq/linux/busybox”;
输入“cd /home/zgq/linux/busybox/回车”切换到“/home/zgq/linux/busybox/”目录
输入“ls回车”,查看“/home/zgq/linux/busybox/”目录下的文件和文件夹
输入“tar -xvf busybox2024-02-1.32.0.tar.bz2回车”,解压生成“busybox-1.32.0”
输入“ls回车”,查看“/home/zgq/linux/busybox/”目录下的文件和文件夹
输入“rm busybox2024-02-1.32.0.tar.bz2回车”,删除压缩包“busybox2024-02-1.32.0.tar.bz2”
输入“ls回车”,查看“/home/zgq/linux/busybox/”目录下的文件和文件夹
输入“cd busybox-1.32.0回车”,切换到“/home/zgq/linux/busybox/ busybox-1.32.0/”目录
输入“ls回车”,查看“/home/zgq/linux/busybox/ busybox-1.32.0/”目录下的文件和文件夹
至此,我们得到了移植好的“tfa,uboot,linux,builtroot和busybox”的源码,“builtroot和busybox”都是用来构建根文件系统,我选用“builtroot”,它的优点就是方便,支持第三方库。