目录
1. nfs 服务器网络环境搭建
1.1. 查看是否安装了 nfs 服务器
1.2. 修改nfs配置文件
1.3. 创建nfs工作目录
1.4. 重启nfs服务
1.5. 开始测试是否成功
2. SD 卡启动盘
2.1. 方法1:从0扇区开始烧写
2.2. 方法2:直接部署
3. Linux 内核的安装与加载
3.1. 使用tftp和emmc加载内核和根文件系统
3.2. 通过tftp加载内核通过nfs挂载根文件系统
4. uboot安装到EMMC
dpkg -s nfs-kernel-server
出现ok代表安装成功
若是未出现,在联网的情况下使用
sudo apt-get install nfs-kernel-server
安装nfs服务器
使用下面命令打开nfs配置文件
sudo vi /etc/exports
为了方便我把其放到下面/opt/6818/rootfs *(rw,sync,no_subtree_check,no_root_squash)
sudo mkdir -p /opt/6818/rootfs 创建工作目录
sudo chmod -R 777 /opt/* 增加工作目录权限
说明创建成功
每次重启 ubuntu都需要重启 nfs
sudo service nfs-kernel-server restart
》1.在/opt/6818/rootfs下创建文件
》2.创建挂载文件
sudo mount -t nfs localhost:/otp/6818/rootfs /mnt
》3.查看文件是否同步
比较mnt文件和rootfs文件里面内容是否一致
》4.若是想要取消挂载可以使用下面指令
sudo umount /mnt 取消挂载命令
本试验:需要ubootpak.bin文件
》1.将资料中“源文件”中的 ubootpak.bin 文件放到 Ubuntu 内的文件夹中
cd ~ 到家目录
mkdir Linux 创建Linux文件
cd Linux 进入文件
mkdir 6818 创建6818文件
cd 6818 进入文件
mkdir uboot 创建uboot文件
将ubootpak.bin文件放入
》2.输入下面命令制作zero.bin空镜像
sudo dd if=/dev/zero of=zero.bin count=1
》3.执行下面命令生成uboot.bin文件
cat zero.bin ubootpak.bin>uboot.bin
》4.生成1M的clear.bin空镜像
sudo dd if=/dev/zero of=clear.bin count=2048
》5.使用Win32Disklmager将镜像烧写到SD卡
将ubuntu下的uboot.bin和clear.bin放到windows下
注意烧写顺序:
先烧写clear.bin后烧写uboot.bin
》1.虚拟机--》可移动设备--》 realtek USB3.0-CRW---》连接
》2. 把资料包里的sdtool压缩包放到虚拟机里,并解压
sudo tar -xvf sdtool
在 ubuntu 中执行命令sudo ./s5p6818-sdmmc.sh /dev/sdb ubootpak.bin
如果打印一下信息表示,部署成功:
688+1 records in
689+0 records out
352768 bytes (353 kB) copied, 0.00914641 s, 38.6 MB/s
^_^ The image is fused successfully
实验3.1:需要uImage内核文件和ramdisk文件系统镜像
实验3.2:需要rootfs-A53-ok.tar
将资料中uImage和ramdisk,拷贝到 ubuntu中tftp工作目录下
3.1.1. 重启 tftp 服务器
执行命令重启服务器
sudo service tftpd-hpa restart
3.1.2. 开发板操作
》1.在uboot交互模式下执行下面指令
tftp 0x41000000 uImage 传输uImage到开发板
》2.将内核镜像写入到 EMMC 中指定的扇区mmc write 0x41000000 0x800 0x4000
上条代码分析
mmc 指定要执行的 MMC(多媒体卡)命令的标识符
write 指定要执行的操作的关键字,表示要进行写入操作
0x41000000 目标写入地址,十六进制地址,将数据写入到 eMMC 中的指定扇区
0x800 数据起始地址是0x800,内核镜像在内存中的起始位置
0x4000 写入的数据的大小,以字节为单位
》3.根文件系统镜像到内存中
tftp 0x41000000 ramdisk.img 传输ramdisk.img到开发板
》4.将根文件系统镜像写入到 EMMC 中指定的扇区
mmc write 0x41000000 0x20800 0x20800
》5.启动方式是从EMMC驱动,所以修改uboot启动方式
代码放下面,复制时得和上面格式相同
setenv bootcmd mmc read 0x48000000 0x800 0x4000\;mmc read 0x49000000 0x20800 0x20800\;bootm 0x48000000 0x49000000
setenv bootargs root=/dev/ram rw initrd=0x49000040,0x1000000 rootfstype=ext4 init=/linuxrc console=ttySAC0,115200
saveenv
》6.重启开发板,什么都不操作,出现下面界面成功
3.2.1. 文件操作
》1.将资料中“源文件”目录下的“rootfs-A53-ok.tar”拷贝到 ubuntu 中 nfs 工作目录下
放到/opt/6818/rootfs
下
》2.解压根文件系统到 nfs 工作目录
sudo tar -xvf rootfs-A53-ok.tar 解压命令
解压后删除安装包
rm rootfs-A53-ok.tar 删除命令
》3.修改uboot启动参数
注意代码分行
setenv bootcmd tftp 0x48000000 uImage\;bootm 0x48000000
setenv bootargs root=/dev/nfs nfsroot=192.168.1.125:/opt/6818/rootfs/rootfs rw console=ttySAC0,115200 init=/linuxrc ip=192.168.1.200
saveenv
》4.重启nfs服务器
sudo service nfs-kernel-server restart 重启服务器命令
》5.开发板重新上电
说明成功
本试验:需要ubootpak.bin文件中
》1.将资料ubootpak.bin拷贝到ubuntu中tftp工作目录
》2.在uboot交互下安装uboot
tftp 0x41000000 ubootpak.bin
如下图:
》3.将内核镜像安装到EMMC中指定扇区
执行下面命令
update_mmc 2 2ndboot 0x41000000 0x200 0x28A
成功显示
下图是命令详解
》4.关闭开发板电源,调整拨码开关位置为 EMMC 启动
》5.给开发板重新上电,观察 uboot 是否能正常启动