系统移植 搭建nfs服务器,启动盘,内核安装和加载

目录

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


1. nfs 服务器网络环境搭建

1.1. 查看是否安装了 nfs 服务器

dpkg -s nfs-kernel-server


出现ok代表安装成功

若是未出现,在联网的情况下使用

sudo apt-get install nfs-kernel-server

安装nfs服务器

1.2. 修改nfs配置文件

使用下面命令打开nfs配置文件

sudo vi /etc/exports


为了方便我把其放到下面
/opt/6818/rootfs *(rw,sync,no_subtree_check,no_root_squash)

1.3. 创建nfs工作目录

sudo mkdir -p /opt/6818/rootfs 创建工作目录

sudo chmod -R 777 /opt/* 增加工作目录权限

说明创建成功

1.4. 重启nfs服务

每次重启 ubuntu都需要重启 nfs

sudo service nfs-kernel-server restart

1.5. 开始测试是否成功

》1.在/opt/6818/rootfs下创建文件

》2.创建挂载文件

sudo mount -t nfs localhost:/otp/6818/rootfs /mnt

》3.查看文件是否同步

比较mnt文件和rootfs文件里面内容是否一致

》4.若是想要取消挂载可以使用下面指令

sudo umount /mnt 取消挂载命令

2. SD 卡启动盘

本试验:需要ubootpak.bin文件

2.1. 方法1:从0扇区开始烧写

》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.binclear.bin放到windows下

注意烧写顺序:

先烧写clear.bin后烧写uboot.bin

2.2. 方法2:直接部署

》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. Linux 内核的安装与加载

实验3.1:需要uImage内核文件和ramdisk文件系统镜像

实验3.2:需要rootfs-A53-ok.tar

3.1. 使用tftp和emmc加载内核和根文件系统

将资料中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. 通过tftp加载内核通过nfs挂载根文件系统

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.开发板重新上电

说明成功

4. uboot安装到EMMC

本试验:需要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 是否能正常启动
 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值