一、 前言
针对 S32V234-EVB2 开发板 ,通过 NFS 方式启动时 ,需要额外在 TFTP server 的目录下额外放入rootfs.uimg文件以加载 sja1105.ko 驱动, 生成该文件需要 rootfs 根文件系统与 u-boot 工具。 rootfs.uimg 文件在 YOCTO 工程下自动生成 ,不使用 YOCTO 则需要使用以下方法生成 。
二、环境要求: 配置 TFTP &NFS 服务 ,配置串口
Software Version:BSP15.0
S32V234-EVB2 开发板: NXP 官方做的一款实验开发板
三、 操作步骤
1) 下载 sja1105x 源码
S32V234-EVB 2 需要驱动模块 sja1105.ko ,因此需要下载 sja1105x 源码并手动编译得到 sja1105.ko
a) 下载 sja1105 源码
得到 sja1105x 源码 ,含文件如下 :
b) 修改 sja1105x 目录下的 config.mk 文件并编译
c) 输入命令 make
如下所示 :
sja1105x 目录下则生成 sja1105.ko 驱动模块 ,如下所示 :
2) 准备 1.0-r0.tar.gz 文件用于制作过渡性根文件 rootfs.uimg , cse.bin 文件用于制作 SD 启动卡
云盘链接 :https://pan.baidu.com/s/1X7btw5F-nOtiBIxqI8PqnQ 密码:nnv7
a) 在linux环境下解压 1.0-r0.tar.gz 得到下面文件:
b) 将上面生成的 sja1105.ko 模块放置在1.0-r0/rootfs/lib/modules/4.1.26-rt29+92433cb4/extra/目录下
2) 手动制作 rootfs.uimg
a) 将以下内容写成脚本,如 yoctohand.sh 中 ,用于生成 rootfs.uimg 文件 ,其中红框标识部分根据实际调整
针对 S32V234-EVB2 开发板 ,通过 NFS 方式启动时 ,需要额外在 TFTP server 的目录下额外放入rootfs.uimg文件以加载 sja1105.ko 驱动, 生成该文件需要 rootfs 根文件系统与 u-boot 工具。 rootfs.uimg 文件在 YOCTO 工程下自动生成 ,不使用 YOCTO 则需要使用以下方法生成 。
二、环境要求: 配置 TFTP &NFS 服务 ,配置串口
Software Version:BSP15.0
S32V234-EVB2 开发板: NXP 官方做的一款实验开发板
三、 操作步骤
1) 下载 sja1105x 源码
S32V234-EVB 2 需要驱动模块 sja1105.ko ,因此需要下载 sja1105x 源码并手动编译得到 sja1105.ko
a) 下载 sja1105 源码
$git clone https://source.codeaurora.org/external/autobsps32/sja1105x // 克隆版本库 |
$cd sja1105x // 进入目录 |
$git checkout –b master bsp15.0 // 创建并切换分支 |
得到 sja1105x 源码 ,含文件如下 :
b) 修改 sja1105x 目录下的 config.mk 文件并编译
c) 输入命令 make
$make // make 是用来编译的,它从 Makefile 中读取指令,然后编译 |
如下所示 :
sja1105x 目录下则生成 sja1105.ko 驱动模块 ,如下所示 :
2) 准备 1.0-r0.tar.gz 文件用于制作过渡性根文件 rootfs.uimg , cse.bin 文件用于制作 SD 启动卡
云盘链接 :https://pan.baidu.com/s/1X7btw5F-nOtiBIxqI8PqnQ 密码:nnv7
a) 在linux环境下解压 1.0-r0.tar.gz 得到下面文件:
b) 将上面生成的 sja1105.ko 模块放置在1.0-r0/rootfs/lib/modules/4.1.26-rt29+92433cb4/extra/目录下
$cp sja1105.ko ~/1.0-r0/rootfs/lib/modules/4.1.26-rt29+92433cb4/extra/sja1105.ko |
2) 手动制作 rootfs.uimg
a) 将以下内容写成脚本,如 yoctohand.sh 中 ,用于生成 rootfs.uimg 文件 ,其中红框标识部分根据实际调整
b) 设置权限及执行脚本
$chmod a+x yoctohand.sh // 赋予脚本执行权限 |
$./yoctohand.sh // 执行脚本 |
在 1.0-r0 目录下生成 rootfs.uimg
c) 将 rootfs.uimg 移至 /tftpboot/
3) 配置并编译 linux 源码
a) 将以下内容写成脚本 makelinux.sh
b) 设置权限及执行脚本
$chmod a+x makelinux.sh // 赋予脚本执行权限 |
$./makelinux.sh // 执行脚本 |
确认 menuconfig 正确配置 , 路径是 General setup ---> Initial RAM filesystem… ,将其选中 。
c) 将 cse.bin Image s32v234-evb.dtb 移至 /tftpboot/ 下
cse.bin 文件路径:上面百度云资源链接
Image 文件路径: linux/arch/arm64/boot/Image
s32v234-evb.dtb 文件路径:linux/arch/arm64/boot/dts/freescale/s32v234-evb.dtb
4) 使用 SD 卡启动 u-boot , NFS方式启动 kernel
a) 确认板子连接 ,包括以太网口 ,串口 ,电源 ,插入SD卡 ,启动方式设置
b) 板子上电
c) 输入sudo minicom命令打开开发板控制终端
$sudo minicom |
d) 按复位键
e) 按任意键,进入u-boot命令行模式,键入命令
>>printenv //查看 IP 是否正确设置 |
>>setenv ipaddr 169.254.3.19 //板子上 ip |
>>setenv serverip 169.254.3.18 //虚拟机上 ip |
>>setenv gatewayip 169.254.3.1 //网关 ip |
>>save //保存设置的 IP |
>>printenv //确认 IP 正确 |
>>run nfsboot //以 NFS 方式启动开发板 |
注意:第一次启动时 ,可能会报关于文件目录名称的错误 ,根据终端提示修改 1.0-r0 目录中对应路径下的文件名名称 ,重新编译出 rootfs.uimg 文件 ,重复以上操作即可 。其错误文件目录名称位置如下所示:
~/1.0 -r0/rootfs/lib/modules/4.1.26-rt29+92433cb4/extra/sja1105.ko |
正确输出如下:
注:
1 /tftpboot/ 是 TFTP 服务设置的目录
2 /tftpboot/rfs 是 NFS 服务设置的根文件系统目录
评论
小路-慢走
2020年3月16日
小路-慢走
2020年3月15日