S32V 手动制作 rootfs.uimg

关键字 :S32Vrootfs.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 服务设置的根文件系统目录



★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论

小路-慢走

小路-慢走

2020年3月16日
针对 rootfs.uimg ,该文件的大小是否有限制在使用的时候 ?
小路-慢走

小路-慢走

2020年3月15日
rootfs.uimg 是一个文件系统吗 ? 最终是跑在什么介质上呢 ?