第一季7:海思的根文件系统的概览与制作

一、根文件系统理论
关于根文件系统的原理,可以参看以下博客。
根文件系统的原理
使用BusyBox制作根文件系统的理论分析

二、海思的根文件系统

1、海思的根文件系统体现在Hi3518E_SDK_V1.0.3.0\package\rootfs_uclibc目录。
在这里插入图片描述
而根文件系统大部分工作由etc/init.d/rcS完成。在这里插入图片描述

2、init.d目录下的内容。
(1)rcS文件遍历打印的内容可以由uboot界面输出得到验证。在这里插入图片描述
(2)查看每个Sxx…文件可以得知一些信息。也可以根据需要修改这些文件的内容,前提是得懂设置的意思。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、为海思根文件系统部署mpp

mpp是海思编写的与视频编解码有关的驱动ko、库lib等内容。因为海思SDK提供的根文件系统没有部署mpp,因此不能直接执行sample程序(前面初体验中的例子也不能运行,因为它依靠mpp,但发货时开发板已经部署好mpp,所以可以直接运行)。

我们需要部署这些内容,也就是把这些内容放在合适的目录位置,然后制作完整的根文件系统并制作成镜像烧录至板子。

1、mpp的目录结构
mpp目录位于Hi3518E_SDK_V1.0.3.0\package\mpp,其文件组织如下。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、完整版(即包含mpp)根文件系统的制作步骤
(1)在osdev/pub/目录下找到rootfs_uclibc.tgz(也可以使用Hi3518E_SDK_V1.0.3.0/package目录系的),解压后得到文件夹形式的根文件系统osdrv/pub/rootfs_uclibc/。
(2)将Hi3518E_SDK_V1.0.3.0\package\mpp目录下的ko文件夹复制到osdrv/pub/rootfs_uclibc/目录下,将lib文件夹里的内容复制到osdrv/pub/rootfs_uclibc/usr/lib中。lib文件夹中有a静态库和.so动态库,这里主要是动态库的部署,所以可以把.a文件删掉。

root@ubuntu:/home/xjh/iot/hisi_development/Hi3518E_SDK/Hi3518E_SDK_V1.0.3.0/osdrv/pub# ls
bin  image_uclibc  rootfs_uclibc  rootfs_uclibc.tgz
root@ubuntu:/home/xjh/iot/hisi_development/Hi3518E_SDK/Hi3518E_SDK_V1.0.3.0/osdrv/pub# cd rootfs_uclibc
root@ubuntu:/home/xjh/iot/hisi_development/Hi3518E_SDK/Hi3518E_SDK_V1.0.3.0/osdrv/pub/rootfs_uclibc# ls
bin  boot  dev  etc  home  init  lib  linuxrc  lost+found  mkimg.rootfs  mknod_console  mnt  nfsroot  opt  proc  root  sbin  share  sys  tmp  usr  var
root@ubuntu:/home/xjh/iot/hisi_development/Hi3518E_SDK/Hi3518E_SDK_V1.0.3.0/osdrv/pub/rootfs_uclibc# cp ../../../mpp/ko/ ./ -rf
root@ubuntu:/home/xjh/iot/hisi_development/Hi3518E_SDK/Hi3518E_SDK_V1.0.3.0/osdrv/pub/rootfs_uclibc# ls
bin  boot  dev  etc  home  init  ko  lib  linuxrc  lost+found  mkimg.rootfs  mknod_console  mnt  nfsroot  opt  proc  root  sbin  share  sys  tmp  usr  var
root@ubuntu:/home/xjh/iot/hisi_development/Hi3518E_SDK/Hi3518E_SDK_V1.0.3.0/osdrv/pub/rootfs_uclibc# cd lib/
root@ubuntu:/home/xjh/iot/hisi_development/Hi3518E_SDK/Hi3518E_SDK_V1.0.3.0/osdrv/pub/rootfs_uclibc/lib# ls
ld-uClibc-0.9.33.2.so  libc.so.0          libgcc_s.so.1     libnsl-0.9.33.2.so      libresolv-0.9.33.2.so  libstdc++.so              libthread_db.so.1
ld-uClibc.so.0         libdl-0.9.33.2.so  libhimount_api.a  libnsl.so.0             libresolv.so.0         libstdc++.so.6            libuClibc-0.9.33.2.so
libcrypt-0.9.33.2.so   libdl.so.0         libm-0.9.33.2.so  libpthread-0.9.33.2.so  librt-0.9.33.2.so      libstdc++.so.6.0.19       libutil-0.9.33.2.so
libcrypt.so.0          libgcc_s.so        libm.so.0         libpthread.so.0         librt.so.0             libthread_db-0.9.33.2.so  libutil.so.0
root@ubuntu:/home/xjh/iot/hisi_development/Hi3518E_SDK/Hi3518E_SDK_V1.0.3.0/osdrv/pub/rootfs_uclibc/lib# cp ../../../../mpp/lib/* ./
root@ubuntu:/home/xjh/iot/hisi_development/Hi3518E_SDK/Hi3518E_SDK_V1.0.3.0/osdrv/pub/rootfs_uclibc/lib# 

(3)在osdrv/pub/rootfs_uclibc/etc/profile文件中添加“设置板载系统网卡的ip址”的指令。

ifconfig lo 127.0.0.1                                                           
ifconfig eth0 192.168.1.11 

(4)在osdrv/pub/rootfs_uclibc/etc/profile文件中添加“自动挂载NFS服务器”的指令。

mount -t nfs -o nolock 192.168.1.141:/home/xjh/iot/hisi_development/hisi_rootfs /mnt

(5)在osdrv/pub/rootfs_uclibc/etc/profile文件中继续添加如下指令(其中第一条指令只是为了挂载SD卡而已,可无,见下面完整的profile文件内容中的描述。)

mount -t vfat /dev/mmcblk0p1 /usr/mmc 
cd /ko                                  
./load3518e -i -sensor ar0130 -osmem 32 -total 64

完整的/etc/profile文件内容如下。

# /etc/profile: system-wide .profile file for the Bourne shells
#
#
set_path_before()
{[ -d $1 ] && PATH="$1:$PATH"
}PATH="/usr/bin:/usr/sbin:/bin:/sbin"
set_path_before /usr/local/sbin
set_path_before /usr/local/bin
#若自己设置了其他路径,需要导出,即使用export LD_LIBRARY_PATH=xxxx:$LD_LIBRARY_PATH
LD_LIBRARY_PATH="/usr/local/lib:/usr/lib"export PATH
export LD_LIBRARY_PATH# ANSI COLORS         
CRE="^M^[[K"                        
NORMAL="^[[0;39m"                   
RED="^[[1;31m"                      
GREEN="^[[1;32m"                    
YELLOW="^[[1;33m"                   
BLUE="^[[1;34m"                     
MAGENTA="^[[1;35m"                  
CYAN="^[[1;36m"                          
WHITE="^[[1;37m"                         umask 022                                echo "${GREEN}Welcome to HiLinux.${NORMAL}"   ifconfig lo 127.0.0.1                                                           
ifconfig eth0 192.168.1.11#/usr/mmc是我自己创建的,一开始没有这个目录(所以第一次执行此命令的话会报错,要创建此目录后才能使用下面的那条mount命令)。
#/dev/mmcblk0p1是插卡后显示的。
#整句命令意思是将SD卡挂载到/usr/mmc目录下。                                                    
#mount -t vfat /dev/mmcblk0p1 /usr/mmc  cd /ko                                    
./load3518e -i -sensor ar0130 -osmem 32 -total 64mount -t nfs -o nolock 192.168.1.141:/home/xjh/iot/hisi_development/hisi_rootfs /mntcd /mnt

(6)输入以下命令手工制作根文件系统镜像文件。注意路径。
在这里插入图片描述

osdrv/pub/bin/pc/mkfs.jffs2 -d osdrv/pub/rootfs_uclibc -l -e 0x10000 -o osdrv/pub/rootfs_uclibc_64k.jffs2

(7)烧录至spiflash。烧录方法见博客(注意实际的镜像文件名字!):海思方案中uboot、kernel和rootfs的烧写方法
(8)镜像测试。uboot启动后,首先要测试是否能ping通虚拟机;然后板载系统启动后,看挂载是否成功;然后看/etc/profile里设置的内容是否得到执行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/460860.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第一季8:完整版(即包含mpp)根文件系统的制作

以下内容源于朱有鹏嵌入式课程的学习与整理,如有侵权请告知删除。 一、概述 mpp是海思编写的与视频编解码有关的驱动、库等内容。我们需要部署这些内容,也就是把这些内容放在合适的目录位置。 二、mpp的目录结构 mpp目录位于Hi3518E_SDK_V1.0.3.0\pack…

计算机三级会保研加分吗,366所高校有保研资格,除了对成绩有要求外,还有哪些要求?...

文|冷丝栏目|考研录取我国本科院校有1000余所,具有保研资格的高校有366所,这些高校也是在不同年份按照不同批次获得保研资格。(本文文末附录全部高校名单)推免制度最初的目的上为了提高招生工作的质量,并且加大培养拔尖…

第一季8:sample_venc.c的编译和测试

注意,以下内容基于前面完整版的根文件系统,因此需要先完成前面的步骤。 1、明确sample文件夹的位置 海思SDK有很多sample,以方便开发人员的参阅。sample文件夹位于/package/mpp/目录下。 其中/package/mpp/sample/venc目录完成了视频的采集以…

计算机电缆 耐火,耐火计算机电缆ZR-NH-DJVVP

耐火计算机电缆ZR-NH-DJVVP低烟无卤阻燃计算机电缆用途:本电缆具有低压电容和低电感,并具有良好屏蔽性能和抗干扰性能,因而防爆性能优于一般计算机电缆和控制电缆.它适用于有防爆要求场合的集散系统和自动化检测控制等要求低烟无卤…

Linux 安装Resin4.0.40

一、Resin简介Resin官网地址:http://caucho.com/ Resin源码包下载地址:http://caucho.com/products/resin/downloadResin是CAUCHO公司的产品,是一个非常流行的支持servlets和jsp的引擎,速度非常快。Resin本身包含了一个支持HTTP/1…

第二季2:视频缓存池的简介

以下内容源于朱有鹏嵌入式课程的学习与整理,如有侵权请告知删除。 一、视频缓存池的概念 (1)视频的本质是多帧图片,图片的本质是RGB或rawRGB数据,视频要占用一段连续内存。 (2)视频的裁剪、缩…

C#中的字符串

1. 值类型与引用类型比较classProgram { staticvoid Main() { int a 9; //给变量a赋值为9 int b a; //将a的副本给变量b b 10; Console.WriteLine(string.Format("a{0},b{1}", a, b)); Person ZS newPerson(); //张三 ZS.Age 99; //张三…

初二计算机辅导记录,信息技术指导老师的讲课笔记十篇(2)

2.教师观念转变多数学生可深入学习新课改模式,积极转变自己的理念,能够在教学上推动角色的转变,成为教师学习的引导者、组织者、合作者。如龙北四小一年级数学老师刘阳让学员观察统计表,提出数学难题,并进行计算&#…

linux nfs配置

这节我们介绍NFS的相关概念,以及如何配置NFS和在客户端中查看NFS。NFS的配置过程很简单。在服务器端中编辑/etc/exports文件,添加如下内容:/home/nfs-share 192.168.1.122 *(rw,sync) 第一项是要共享的目录,后者为共享的配置参…

1080i、1080p、2K、4K是什么意思?

以下内容源于网络资源的学习与整理,如有侵权请告知删除。 一、数字后面的字母含义 “I”指的是“Interlaced scanning”,即隔行扫描;P指的是“progressive scanning”,即逐行扫描。这两个概念是需要电子枪进行扫描的大背头电视的…

Zabbix中文模式:图片下面的字符乱码

2019独角兽企业重金招聘Python工程师标准>>> Zabbix默认字体放在安装目录的fonts下: # ll fonts/ total 21288 -rw-r--r-- 1 www www 21767952 Jun 11 2009 DejaVuSans.ttf 从windows机器上拷贝一个字体替换掉就可以了,如使用"微软雅黑…

计算机常用存储芯片分为内存和什么,计算机类论文范例,与安徽省计算机一级考试宝典相关研究生毕业论文开题报告范文...

计算机类论文范例,与安徽省计算机一级考试宝典相关研究生毕业论文开题报告范文关于计算机及计算机系统及山东自考方面的免费优秀学术论文范文,计算机类论文答辩开场白,关于安徽省计算机一级考试宝典相关论文范例,对写作计算机论文范文课题研究的大学硕士…

简单实用的二级树形菜单hovertree

原创 hovertree是一个仿京东的树形菜单jquery插件,暂时有银色和绿色两种。官方网址:http://keleyi.com/jq/hovertree/欢迎下载使用查看绿色效果:http://keleyi.com/jq/hovertree/hovertreegreen.htm可以设置菜单宽度(width),还可以…

xp系统一直跳出宽带连接服务器,XP系统网络问题解决方案

XP系统网络问题解决方案随着国内 Internet 的普及和信息产业的深化,近几年宽带网络的发展尤为迅速。下面是小编整理的一些生活上Windows XP网络故障的解决方案,希望对你有帮助!故障1:本地连接受限制或无连接很多用户发现,当每次进…

SQL Server 错误18456

第一步、 错误发生的场景 第二步、 找到引起错误的原因 第1步、 查看windows日志文件。 运行中输入 eventvwr (event viewer)打开日志文件查看器, 第三步、 解决方案,由第二步我们可以看出是SQL Server的认证模式引起了问题,所以只要把它改一下就可以…

分析根文件系统中的etc/init.d/rcS文件

以下内容源于朱有鹏嵌入式课程的学习与整理,如有侵权请告知删除。 一、文件简介 (1)由博文分析根文件系统中的/etc/inittab文件可知,etc/inittab文件的第一行配置项一般是“::sysinit:/etc/init.d/rcS”,这说明控制台…

VirtualBox 扩展虚拟硬盘容量

为什么80%的码农都做不了架构师?>>> 扩展步骤:第一步:修改硬盘镜像文件 1、虚拟机关机. 2、确认虚拟机使用文件(后缀为.vdi的文件)路径不带中文字符. 3、Windows 下按:Windows R,调出命令行工具…

技术和赚钱真的冲突吗?

前几天在微信上看到篇文章,讲述的是大悲寺和少林寺的对比。原文的大意是大悲寺如何如何清苦,烧香不许客户投钱。而少林寺如何的肥头大耳,尤其是方丈释永信是多么多么的会“敛财“。(注意:我们这里抛去一些“确实是敛财…

构造和运行模块

作者:蔡伦辉写在前面作者一直支持GPL的精神。允许任何人自由使用、转载、复制和再分发,但必须保留作者署名,必须保证全文完整转载,包括完整的版权声明。由于作者水平有限,因此不能保证文章内容准确无误,请批…

从零开始构建根文件系统

以下内容源于网络资源的学习与整理,如有侵权请告知删除。 参考博客 Uboot和系统移植(19)------- 根文件系统构建过程详解_big__C的博客-CSDN博客 一、总结 (1)本节在前面的理论分析的基础上,我们开始从零开…