一、移植准备工作
1、安装库
sudo apt-get install u-boot-tools sudo apt-get install libyaml-dev sudo apt-get install libssl-dev sudo apt-get install flex sudo apt-get install bison sudo apt-get install libncurses-dev sudo apt-get install gparted sudo apt-get install net-tools2、安装tftp服务器
1.安装tftp服务器的作用:将ubuntu指定的文件下载到开发板中 2.安装tftp服务器的安装包 sudo apt-get install tftp-hpa tftpd-hpa 3.进入家目录下,在家目录下创建tftpboot文件夹,并且添加最高权限 cd ~ mkdir tftpboot chmod 777 tftpboot 4.打开配置文件,配置tftp服务器 1)在家目录下,执行如下命令:linux@ubuntu:~$ sudo vi /etc/default/tftpd-hpa # /etc/default/tftpd-hpa TFTP_USERNAME="tftp" TFTP_DIRECTORY="/home/ubuntu/tftpboot/" TFTP_ADDRESS="0.0.0.0:69" TFTP_OPTIONS="-c -l -s" 5.重启配置脚本文件 source /etc/default/tftpd-hpa 6.重启tftp服务器(重点) sudo service tftpd-hpa restart3、安装nfs服务器
1.安装nfs服务器的作用:将ubuntu指定的文件夹挂载到开发板中 2.安装nfs服务器的安装包 sudo apt-get install nfs-kernel-server 3.进入家目录下,在家目录下创建nfs文件夹,并且添加最高权限 cd ~ mkdir nfs chmod 777 nfs 4.将群里下发的rootfs-ok.tar.xz压缩包拷贝到~/nfs目录下,并且进行解压 linux@ubuntu:~$ cd nfs/ linux@ubuntu:~/nfs$ ls rootfs-ok.tar.xz linux@ubuntu:~/nfs$ tar -vxf rootfs-ok.tar.xz 5.打开配置文件,配置nfs服务器 1)在家目录下,执行如下命令:linux@ubuntu:~/nfs$ sudo vi /etc/exports 2)添加如下一句话 /home/ubuntu/nfs/rootfs *(rw,sync,no_subtree_check,no_root_squash) 6.重启nfs服务器(重点) sudo service nfs-kernel-server restart二、ubuntu扩容
首先保证ubuntu所在的盘,剩余空间大于50G
Ubuntu下磁盘扩容_ubuntu分配磁盘空间-CSDN博客
三、烧写uboot镜像文件
1、什么是uboot
1、Ubuntu是引导加载程序的一种,在嵌入式开发中,常用的引导程序为uboot
2、类似于windows操作系统中的bios
2、烧写uboot镜像文件步骤
- 将 TF 卡插入到读卡器中
- 将读卡器插入到电脑的 usb 口,!!!!并且连接到虚拟机设备!!!!
四、内核移植
1、为什么移植Linux内核
1、Linux 操作系统是基于 linux 内核之上进行运行
2、linux 操作系统具有五大功能
- a. 内存管理
- b. 文件管理
- c. 进程管理
- d. 网络管理
- e. 设备管理
2、移植步骤
for p in `ls -1 ../*.patch`; do patch -p1 < $p; donemake ARCH=arm multi_v7_defconfig fragment*.configtime make -j4 ARCH=arm uImage vmlinux dtbs LOADADDR=0xC20000003、组内网步骤
- 安装 ftp 服务器和 nfs 服务器成功
- 关闭防火墙,关闭杀毒软件
五、uboot 两种启动方式
交互模式
当 uboot 启动成功之后,在倒计时时间进入 0 之前,按下回车键,进入交互模式
自启动模式
当 uboot 启动成功之后,在倒计时时间进入 0 之前,不按下回车键,进入自启动模式
bootcmd:自启动命令bootargs:自启动参数
setenv bootcmd tftp 0xc2000000 uImage\;tftp 0xc4000000 stm32mp157a-fsmp 1a.dtb\;bootm 0xc2000000 - 0xc4000000 setenv bootargs root=/dev/nfs nfsroot=192.168.1.250:/home/ubuntu/nfs/rootfs,tcp,v4 rw console=ttySTM0,115200 init=/linuxrc ip=192.168.1.100 saveenv六、启动Linux操作系统
当 uboot 启动成功之后,在倒计时时间进入 0 之前,不按下回车键,进入自启动模式,启动 linux 操作系统
七、更改错误
time make -j4 ARCH=arm uImage vmlinux dtbs LOADADDR=0xC2000000当 uboot 启动成功之后,在倒计时时间进入 0 之前,不按下回车键,进入自启动模式