Hi3518内核和文件系统烧写以及nfs挂载
NFS配置详细介绍
4、增加了对TCP传输协议的支持 、增加了对TCP传输协议的支持 V2只提供了对UDP协议的支持,在一些高要求的网 V2只提供了对UDP协议的支持, 络环境中有很大限制,V3增加了对TCP协议的支持 络环境中有很大限制,V3增加了对TCP协议的支持 *5、异步写入特性 6、改进了SERVER的mount性能 、改进了SERVER的mount性能 7、有更好的I/O WRITES 性能. 、有更好的I/O 性能. 9、更强网络运行效能,使得网络运作更为有效. 、更强网络运行效能,使得网络运作更为有效. 10、更强的灾难恢复功能. 10、更强的灾难恢复功能.
服务器端配置(2/5) 服务器端配置(2/5)
配置NFS 配置NFS
配置文件/etc/exports 配置文件/etc/exports 配置格式<输出目录> [客户端1 配置格式<输出目录> [客户端1 选项(访问权 限,用户映射,其他)] [客户端2 限,用户映射,其他)] [客户端2 选项(访问权 限,用户映射,其他)] 限,用户映射,其他)] 例: /home/xxx 192.168.1.1(rw) 允许192.168.1.1的用户mount /home/xxx目录 允许192.168.1.1的用户mount /home/xxx目录
客户端配置
Mount –t nfs 服务器ip:目标目录 mount到的目录 服务器ip:目标目录 mount到的目录 例:mount -t nfs 192.168.1.102:/home /mnt
实际应用
1.多个机器共享一台CDROM或者其他设备。这对 1.多个机器共享一台CDROM或者其他设备。这对 于在多台机器中安装软件来说更加便宜跟方便。 2.在大型网络中,配置一台中心 NFS 服务器 2.在大型网络中,配置一台中心 用来放置所有用户的home目录可能会带来便利。 用来放置所有用户的home目录可能会带来便利。 这些目录能被输出到网络以便用户不管在哪台工 作站上登录,总能得到相同的home目录。 作站上登录,总能得到相同的home目录。 3.几台机器可以有通用的/usr/ports/distfiles 目 3.几台机器可以有通用的/usr/ports/distfiles 录。这样的话,当您需要在几台机器上安装port时, 录。这样的话,当您需要在几台机器上安装port时, 您可以无需在每台设备上下载而快速访问源码。
ortp移植到hi3518eh.264封包rtp发送
ortp移植到hi3518eh.264封包rtp发送看到ORTP是纯C实现的rtp库,于是移植到3518e试用一下.1.下载源码链接地址里面有个tar res跳转链接跳转入链接地址下载最新的ortp-0.23.0.tar.gz,并解压2.编译./configure --prefix=/work/hi3518/ortp--host=arm-hisiv100nptl-linuxmakemake install配置只需指定安装目录prefix,编译平台host即可,这里host 直接赋值arm-hisiv100nptl-linux-gcc前缀即可,注意不是arm-hisiv100nptl-linux-而是arm-hisiv100nptl-linux。
3.部署到开发板将编译生成的库/work/hi3518/ortp/lib/libortp.so.9复制到开发板/usr/lib中4.添加ortp库到mpp2中在海思SDK mpp2目录下新建rtp目录,将/work/hi3518/ortp/下全部内容复制到该目录下,修改mpp2/sample/Makefile.param,添加:INC_FLAGS += -I$(MPP_PATH)/rtp/include-L$(MPP_PATH)/rtp/lib/ -lortp5.修改代码示例程序venc中有将视频进行264编码并保存为文件(nfs挂载),这里一步步分析sample_venc.c即可找到最终的保存是通过sample_comm_venc.c中的SAMPLE_COMM_VENC_SaveH264函数完成的,这里只要修改该函数为封包发送即可。
下面是sample_comm_venc.c中需要添加的部分:#include <ortp/ortp.h>#include <signal.h>#include <stdlib.h>#include <sys/types.h>#include <sys/time.h>#include <stdio.h>#define Y_PLOAD_TYPE 96 //H.264#define MAX_RTP_PKT_LENGTH 1400#define DefaultTimestampIncrement 3600 //(90000/25)uint32_t g_userts=0;RtpSession *pRtpSession = NULL;/** 初始化** 主要用于对ortp以及其它参数进行初始化* @param: char * ipStr 目的端IP地址描述串* @param: iint port 目的端RTP监听端口* @return: RtpSession * 返回指向RtpSession对象的指针,如果为NULL,则初始化失败* @note:*/RtpSession * rtpInit( char * ipStr, int port){RtpSession *session;char *ssrc;printf("********oRTP for H.264 Init********\n");ortp_init();ortp_scheduler_init();ortp_set_log_level_mask(ORTP_MESSAGE|ORTP_WARNIN G|ORTP_ERROR);session=rtp_session_new(RTP_SESSION_SENDONLY);rtp_session_set_scheduling_mode(session,1);rtp_session_set_blocking_mode(session,0);//rtp_session_set_connected_mode(session,TRUE);rtp_session_set_remote_addr(session,ipStr,port);rtp_session_set_payload_type(session,Y_PLOAD_TYPE);ssrc=getenv("SSRC");if (ssrc!=NULL) {printf("using SSRC=%i.\n",atoi(ssrc));// 设置输出流的SSRC。
nfs配置+开发板挂载
网络文件系统nfs文件系统使用一、NFS简介1、NFS就是Network FileSystem的缩写,它的最大功能就是可以通过网络让不同的机器,不同的操作系统彼此共享文件(sharefiles)——可以通过NFS挂载远程主机的目录,访问该目录就像访问本地目录一样,所以也可以简单的将它看作一个文件服务器(FileServer)。
注意:一般而言,使用NFS服务能够方便地使各unix-like系统之间实现共享,但如果需要在unix-like和windows系统之间共享,那就得使用samba了。
2、NFS是通过网络进行数据传输,那么NFS使用哪些端口呢,答案是……不知道,因为NFS 传输数据时使用的端口是随机的,唯一的限制就是小于1024,客户端怎么知道服务器使用的是哪个端口,此时就要用到远程过程调用RPC。
其实,NFS运行在SUN的RPC(Remote Procedure Call,远程过程调用)基础上,RPC定义了一种与系统无关的方法来实现进程间通信,由此,NFS Server也可以看作是RPC Server。
正因为NFS是一个RPC服务程序,所以在使用它之前,先要映射好端口——通过portmap设定。
比如:某个NFSClient发起NFS服务请求时,它需要先得到一个端口(port),所以它先通过portmap得到portnumber(不仅是NFS,所有的RPC服务程序启动之前,都需要先设定好portmap)。
注意:在启动RPC服务(比如NFS)之前,需要先启动portmap服务。
3、NFS允许系统将其目录和文件共享给网络上的其他系统。
通过NFS,用户和应用程序可以访问远程系统上的文件,就像它们是本地文件一样。
那么NFS最值得注意的优点有:(1)本地工作站可以使用更少的磁盘空间,因为常用数据可以被保存在一台机器上,并让网络上的其他机器可以访问它。
(2)不需要为用户在每台网络机器上放一个用户目录,因为用户目录可以在NFS服务器上设置并使其在整个网络上可用。
ARM开发板如何挂载NFS开发环境的方法步骤
ARM开发板如何挂载NFS开发环境的方法步骤(mini2440无盘启动)来源: ChinaUnix博客日期:2010.01.03 16:12(共有条评论) 我要评论这个部分还是比较不好弄的。
想象要是不能通过nfs挂载网盘的话,他提出这个方法也就没什么用了。
这样看的话,是比较完美了。
在你实验之前你可以现挂载一下(用busybox生成文件系统后不用编译就可以了)确认没问题在编译下载镜像文件。
还有在作qt文件应用程序的时候很大用这种方法,相信不用考虑编译和裁减的情况下就可以直接运行了。
首先介绍一下我的开发环境:PC环境是ubuntu9。
04,开发板为友善之臂的MINI2440主机IP:192.168.50.72 网关:192.168.50.1 子网掩码:255.255.255.0开发板IP:192.168.50.168 网关:192.168.50.1 子网掩码:255.255.255.0为了能和主机建立起连接我必须得把开发板IP改成和主机一个网段的 .这里首先要说明的是ubuntu的静态IP设置问题:默认安装完成后,右上角的网络配置上wired ..和eth0为灰色。
不能点选。
然后禁用networdmanager启动network以太网设置静态IP的时候,不管怎么设置,子网掩码都和网关一样,比如说:地址:192.168.0.22子网掩码: 192.168.0.1 //不管怎么输入255.255.255.0 ,都不行!网关:192.168.0.1 //这里改了255.255.255.0的话,上面就也成255.255.255.0了。
(auto ethernet是可以联上网的)。
所以就上GG找答案,找解决方法。
进入FC10,执行终端命令(也可以用VI修改)$ su -c ‗gedit /etc/sysconfig/networking/devices/ifcfg-eth0′直接修改文件中的子网掩码信息就可以代码为:# Broadcom Corporation NetXtreme BCM5752 Gigabit Ethernet PCI ExpressDEVICE=eth0HWADDR=00:16:e6:db:c2:96ONBOOT=yesBOOTPROTO=static //这个应该是―static‖,而不是―dhcp‖或―none‖;USERCTL=yesPEERDNS=yesIPV6INIT=noNM_CONTROLLED=yes//这个应该是―yes‖,如不修改,链接仍是disconnected;TYPE=EthernetNETMASK=255.255.255.0IPADDR=192.168.50.72GATEWAY=192.168.50.1然后重新激活下网卡就可以了.#service network restart设置完成后,右上角的网络配置上System eth0与auto ethernet就可以点选了. 需要说明的是因为我之前没有设置静态IP之前通过NFS 启动系统启动不了.连接主机和开发板我选择了串口线和网线连接起了主机和开发板连接好电源,串口线,网线,打开串口终端配置minicom(在FC10终端输入命令minicom -s)进入到minicom配置界面后选择:Serial port setup然后按照下面的设置下就OK了A – Serial Device : :/dev/ttyS0B – Lockfile Location : /var/lockC – Callin Program :D – Callout Program :E – Bps/Par/Bits : 115200 8N1F – Hardware Flow Control : NoG – Software Flow Control : No建立和配置NFS 服务(1)设置共享目录运行命令#gedit /etc/exports编辑nfs 服务的配置文件(注意:第一次打开时该文件是空的),添加以下内容:/opt/FriendlyARM/mini2440/root_qtopia *(rw,sync,no_root_squash)其中:/opt/FriendlyARM/mini2440/root_qtopia 表示nfs 共享目录,它可以作为开发板的根文件系统通过nfs 挂接; * 表示所有的客户机都可以挂接此目录rw 表示挂接此目录的客户机对该目录有读写的权力no_root_squash 表示允许挂接此目录的客户机享有该主机的root 身份(2)通过命令启动和停止nfs 服务在命令行下运行:#/etc/init.d/nfs restart这将启动nfs 服务,可以输入以下命令检验nfs 该服务是否启动。
Linux学习之挂载网络文件系统
NFS(Network File System),即网络文件系统,能使使用者访问网络上别处的文件就像在使用自己的计算机一样。
其工作原理是使用客户端/服务器架构:服务器程序向其他计算机提供对文件系统的访问,其过程称为输出。
NFS客户端程序对共享文件系统进行访问时,把它们从NFS服务器中“输送”出来。
文件通常以块为单位进行传输。
在我们嵌入式Linux中,NFS的主要应用如:把主机的上文件(比如目标板的可执行文件)共享给目标板,这样目标板就很方便地运行程序。
本篇笔记要演示的实验框图如下:开发板挂载NFS1、配置NFS共享目录可被访问需要修改主机中的/etc/exports ,把下面这一句加到exports文件里:/home/book/nfs_share*(rw,nohide,insecure,no_subtree_check,async,no_root_squash)有两部分内容,两部分内容由空格隔开。
第一部分内容/home/book/nfs_share是我们要共享的开发主机目录。
第二部分内容是一些配置参数:*:这是个通配符,在这里代表谁都可以访问该目录。
也可以指定哪一个客户端可以访问。
比如我们的开发板IP为192.168.1.111:我们把*号改为我们的开发板IP,则可以制定这个共享目录仅供我们这块开发板可以访问。
其它参数说明:保存完文件后,输入如下命令更新exports配置:sudo exportfs -arv然后把一个编译好的hello可执行文件放入到该共享目录中:2、开发板挂载共享目录在开发板串口终端输入命令:mount -t nfs -o nolock,vers=4 192.168.1.104:/home/book/nfs_share /mnt •vers=4表示使用 NFS 文件系统第 4 版本。
•192.168.1.104为Ubuntu主机IP。
•/home/book/nfs_share为共享目录。
鸿蒙操作系统智能设备开发相关
鸿蒙操作系统智能设备开发相关鸿蒙操作系统智能设备开发的范畴包括内核开发、驱动开发、子系统开发、组件开发、移植、设备开发与各项API参考等。
当然,笔者认为随着鸿蒙操作系统的不断发展,开发的内容也会更加细致化与丰富化,比如移植这个部分就是随着实践与发展的需要,而加入官方开发指导相关内容中的。
鸿蒙操作系统智能设备开发中各项功能的实现,需要综合考虑需要实现功能的基本概念、使用场景、开发过程、步骤、注意事项与约束条件等。
鸿蒙操作系统为各种智能设备开发提供了非常丰富的、强大的功能支持体系,将PC互联网、移动互联网各种智能设备,基于未来的物联网、人工智能等各项可能使用到的基础功能,进行封装和作为基础能力提供,让设备合作伙伴、开发者可以聚焦于用户、产品需求、创意与具体业务逻辑等。
本部分内容会把到本书截稿时间为止的、鸿蒙官方提供的主要相关功能场景进行阐述,以便于同设备相关的合作伙伴、决策者、产品经理、设计人员、代码开发工程师及普通的读者,知道哪些具体的想法、市场需求是现在可以通过鸿蒙操作系统的功能就可以实现的,哪些是需要组合、创新才能完成的,哪些是需要和鸿蒙官方进行单独沟通才有可能完成的。
当然,鸿蒙操作系统在不断发展,提供的各项功能与接口会越来越丰富,笔者的创作只是起到抛砖引玉的作用。
所以,本节中具体涉及代码的部分,比如开发接口、开发步骤与生命周期等,就没有阐述。
1. 内核开发内核系统最核心的部分,其开发范畴包括了基于鸿蒙操作系统的轻内核基础功能、轻内核文件系统、标准库和调测四部分。
(1)轻内核基础功能轻内核基础功能包括进程、线程、内存、网络四部分。
首先,我们来阐述进程、线程开发相关的事项。
进程、线程的逻辑表现用通俗的例子来说明,就跟我们使用App一样,打开一个App 就类似一个进程、线程的概念;当我们打开多个App时,就是多个进程、线程启动,优先的进程、线程是我们正在使用的或者最后一个打开的;当然,这个举例只是为了便于读者理解,进程、线程并不等于笔者表述的App或者App功能界面。
九,Linux-3.19内核支持挂载NFS文件系统
九,Linux-3.19内核⽀持挂载NFS⽂件系统⽂档时间:2018-08-25交叉编译器:arm-linux-gcc-4.3.2Ubuntu版本:16.04kernel版本:linux-3.19⼀,在 Ubuntu 上安装配置 NFS1),安装 NFS输⼊命令sudo apt-get install nfs-kernel-server安装 nfs-kernel-server:输⼊命令sudo apt-get install nfs-common安装 nfs-common 这是挂载 nfs⽬录所需要的:2),建⽴共享⼯作⽬录输⼊命令:/home/aaron/workmkdir nfs_root //建⽴⼯作⽬录chmod 777 nfs_root //修改nfs_root权限把制作好的根⽂件系统 fs_new拷贝到 nfs_root ⽬录下3),配置 NFS打开 /etc/exports,添加如下内容:/home/aaron/work/nfs_root *(rw,sync,no_root_squash,no_subtree_check)*:允许所有的⽹段访问rw:挂接此⽬录的客户端对该⽬录具有读写权限sync:资料同步no_root_squash:root ⽤户对⽂件⽬录具有完全访问权限no_subtree_check:不检查⽗⽬录的权限配置完成后,重启 NFS 服务:sudo /etc/init.d/nfs-kernel-server restart查看是否启动成功:showmount -e如上图所⽰表⽰重启成功4),验证在 uboot 终端输⼊命令 nfs 32000000 192.168.2.110:/home/aaron/work/kernel/linux-3.19/arch/arm/boot/uImage 下载 uImage下载成功也可以通过在服务端挂载根⽂件系统来验证:sudo mount -t nfs 192.168.2.110:/home/aaron/work/nfsroot/fs_new /mnt/在服务端/mnt/⽬录下可以查看挂载到的⽂件系统2,⽬标板通过 NFS 挂接根⽂件系统1),⽬标板⽂件系统启动之后去挂载命令如下:mount -t nfs -o nolock 192.168.2.110:/home/aaron/work/nfsroot/fs_new /mnt2),修改 bootargs 直接从 nfs 启动这种做法就是在u-boot启动之后,设置nfs挂载参数。
基于ARM6410-Ubuntu的NFS挂载方法及驱动模块加载方法
NFS服务器的配置一、NFS服务器端的配置,即共享发布者(一)需启动的服务和需安装的软件1、NFS服务器必须启动两个daemons服务:rpc.nfsd和rpc.mountdrpc.nfsd:用来管理客户端PC是否可以登录。
类似于windows中的共享权限。
rpc.mountd:用来管理客户端pc能够使用的文件安全权限。
如windows中的共享安全权限。
RPC:因为NFS支持的功能很多,所以NFS的功能对应的端口才无法固定,而是采用小于1024的随机端口。
但客户端需要得知服务器的端口才能联机,此时就需要启用RPC服务。
RPC的功能就是指定每个NFS功能的端口号。
并传信息给客户端,让客户端可以连到正确的端口上。
服务器在启动NFS时会随机取用数个端口,并主动向RPC注册,因此RPC知道每个NFS 功能对应的端口。
RPC用111端口监听客户端的请求,并应答正确的端口。
启动NFS前,RPC就要先启动了,否则NFS会无法向RPC注册。
2、NFS 服务器需要安装nfs主程序,nfs-utils和rpc主程序portmap(二)exports服务器的方法:1、NFS文件存取权限因为NFS没有验证机制,当客户端用户访问NFS服务器的共享文件夹时会遇到的权限情况:(1)NFS服务器端用户列表中有与客户端用户名相同的用户名时,客户端可以直接存取共享文件夹。
例:客户端用户为khp,而nfs服务器用户列表(/etc/passwd)中也有khp这个用户名,则将拥有KHP权限。
(2)当访问NFS服务器的客户端用户UID与服务器端UID相同,但用户名却不相同时,客户端将拥有与服务器端UID 相同但不同用户的权限。
例:客户端为501UID,用户名为khp的帐号访问NFS服务器。
NFS服务器用户列表中(/etc/passwd)有uid为501 ,但用户名为pla的用户,所以客户端khp用户可以拥有NFS 服务器pla相同权限。
(3)如果客户端用户UID在NFS服务器端用户列表中不存在时,则以匿名用户的权限访问。
Hi3518 SDK 安装以及升级使用说明
|-- extdrv # 板级外围驱动源代码
|-- include # 对外头文件
|-- ko # 内核模块
| |-- kernel # linux内核源代码
| |-- pub # 编译好的镜像、工具、drv驱动等
| |-- rootfs_scripts # rootfs源代码
以下的操作均基于图示的地址空间分配,您也可以根据实际情况进行调整。
2)烧写u-boot
sf probe 0
sf erase 0 0x100000
mw.b 82000000 ff 100000
tftp 0x82000000 u-boot-200MHZ.bin #如果是hi3516c,使用u-boot-220MHZ.bin
2、参数配置
# 单板上电后,敲任意键进入u-boot。设置serverip(即tftp服务器的ip)、ipaddr(单板ip)和ethaddr(单板的MAC地址)。
setenv serverip xx.xx.xx.xx
setenv ipaddr xx.xx.xx.xx
2) 安装glibc交叉编译器(注意,需要有sudo权限或者root权限):
进入Hi3518_SDK_Vx.x.x.x/osdrv/toolchain/arm-hisiv200-linux目录,运行chmod +x cross.install,然后运行./cross.install即可。
setenv bootargs 'mem=64M console=ttyAMA0,115200 root=/dev/mtdblock2 rootfstype=jffs2 mtdparts=hi_sfc:1M(boot),3M(kernel),12M(rootfs)'
ARM 开发板 与 PC机ubuntu系统 nfs 挂载
ARM 开发板与PC 机ubuntu 系统nfs 挂载ARM 开发板与PC 通过NFS 网络文件系统挂接,很方便文件的移动,也为我们的开发带来了方便。
接下来,我就详细的介绍下如何建立ARM 与PC机的挂接。
我是用的UBuntu 系统。
首先,我们需要在主机上安装nfs 服务器,安装过的过程中一并把一些需要的组件也给安装了。
1. 安装NFS 相关组件sudo apt-get install nfs-kernel-server 安装完nfs 服务器之后,我们需要建立一个与下位机挂接的共享文件夹。
2. 建立NFS 共享文件夹sudo mkdir -R/mnt/nfs3.设置共享目录修改主机/etc/exports 文件,添加如下代码/mnt/nfs*(rw,sync,no_root_squash) 这里做一下说明:/mnt/nfs 表示所设定的共享文件,这里可以任意改,* 表示任意网段的下位机都可以连接到此文件夹(rw,sync,no_root_squash) //表示一些权限rw 可读写的权限ro 只读的权限no_root_squash NFS 客户端分享目录使用者的权限,即如果客户端使用的是root用户,那么对于这个共享的目录而言,该客户端就具有root 的权限,若是以NFS挂载根文件系统时,必须设置此项sync 资料同步写入到内存与硬盘当中async 资料会先暂存于内存当中,而非直接写入硬盘设置完共享文件夹之后需要重启NFS 服务器,4. 服务操作指令#重启$sudo /etc/init.d/portmap restart # 停止sudo /etc/init.d/nfs-kernel-server stop # 启动sudo /etc/init.d/nfs-kernel-server start # 重新启动sudo /etc/init.d/nfs- kernel-server restart 这些做好之后我们可以在自己PC 机上做一下测试5. 测试首先,我们可以使用如下命令查看所建立的共享文件夹showmount -e 如。
ARM开发板与PC机ubuntu系统nfs挂载
ARM开发板与PC机ubuntu系统nfs挂载ARM 开发板与PC 机ubuntu 系统nfs 挂载ARM 开发板与PC 通过NFS 网络文件系统挂接,很方便文件的移动,也为我们的开发带来了方便。
接下来,我就详细的介绍下如何建立ARM 与PC机的挂接。
我是用的UBuntu 系统。
首先,我们需要在主机上安装nfs 服务器,安装过的过程中一并把一些需要的组件也给安装了。
1. 安装NFS 相关组件sudo apt-get install nfs-kernel-server 安装完nfs 服务器之后,我们需要建立一个与下位机挂接的共享文件夹。
2. 建立NFS 共享文件夹sudo mkdir -R/mnt/nfs3.设置共享目录修改主机/etc/exports 文件,添加如下代码/mnt/nfs*(rw,sync,no_root_squash) 这里做一下说明:/mnt/nfs 表示所设定的共享文件,这里可以任意改,* 表示任意网段的下位机都可以连接到此文件夹(rw,sync,no_root_squash) //表示一些权限rw 可读写的权限ro 只读的权限no_root_squash NFS 客户端分享目录使用者的权限,即如果客户端使用的是root用户,那么对于这个共享的目录而言,该客户端就具有root 的权限,若是以NFS挂载根文件系统时,必须设置此项sync 资料同步写入到内存与硬盘当中async 资料会先暂存于内存当中,而非直接写入硬盘设置完共享文件夹之后需要重启NFS 服务器,4. 服务操作指令#重启$sudo /etc/init.d/portmap restart # 停止sudo /etc/init.d/nfs-kernel-server stop # 启动sudo /etc/init.d/nfs-kernel-server start # 重新启动sudo /etc/init.d/nfs- kernel-server restart 这些做好之后我们可以在自己PC 机上做一下测试5. 测试首先,我们可以使用如下命令查看所建立的共享文件夹showmount -e 如。
海思Android安全方案 使用指南
文档版本 发布日期
02 2014-03-12
版权所有 © 深圳市海思半导体有限公司 2014。保留一切权利。
非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任 何形式传播。
商标声明
、
、海思和其他海思商标均为深圳市海思半导体有限公司的商标。
2013-09-29
2013-07-22 2013-03-29 2013-01-22
版本 02
01
00B05
00B04
00B03 00B02 00B01
修订说明
修改 1.3 编译配置章节,增加 4.7 维修方案章节,删除第 四章,修改第一章安全启动的描述。
增加 1.4 小节编译配置说明和 2.0 章节升级说明,修改安 全 boot 开发说明和补充中国电信开发提示。
文档版本 02 (2014-03-12)
海思 Android 安全方案 使用指南
目录
目录
前 言................................................................................................................................................iii 1 安全启动.......................................................................................................................................1-1
表示能帮助您解决某个问题或节省您的时间。
内核文件系统烧制秘籍
Memory: 30268KB available (1594K code, 331K data, 80K init)
Mount-cache hash table entries: 512
HI_VERSION=LINUX_2_6_14-M06C0303B0103 @Hi3511v110_OSDrv_1_0_0_7 2009-03-18 20:50:52
io scheduler noop registered
RAMDISK driver initialized: 4 RAM disks of 8192K size 1024 blocksize
PPP generic driver version 2.4.2
PPP Deflate Compression module registered
CPU: ARM926EJ-Sid(wb) [41069265] revision 5 (ARMv5TEJ)
Machine: Hi3511v100
Memory policy: ECC disabled, Data cache writeback
CPU0: D VIVT write-back cache
mtd: phys_mapped_flash: partitioning exceeds flash size, truncating
3 cmdlinepart partitions found on MTD device phys_mapped_flash
Creating 3 MTD partitions on "phys_mapped_flash":
TCP reno registered
海思方案 HI3518E平台ISP调试环境搭建
3518E平台的搭建海思的SDK提供了ISP调试的相关工具,降低了IPC开发ISP调试的难度。
初次搭建ISP调试环境,记录一下。
SDK版本:Hi3518_MPP_V1.0.A.0硬件平台:HI3518E_OV9732工具包:PQ_TOOL (Hi3518E_V100R001C01SPC0A0\01.software\pc\PQ_TOOL)文件说明:Hi3518_ITTB_MPP2_V1.0.A.0_B030.tgz 设备端工具; PQTools_V3.7.5.zip PC端工具环境搭建步骤:(1)将Hi3518_ITTB_MPP2_V1.0.A.0_B030.tgz拷贝至nfs共享目录名,解压后运行HiIspTool.sh脚本倘若用海思自带的工具出图像并调节ISP运行:#./HiIspTool.sh -a -p ov9732_720p_line.inips一下可以看到两个进程696 adminlvj 58488 S ./ittb_stream -p ov9732_720p_line.ini699 adminlvj 19676 S ./ittb_control倘若运行自己的工程出图像了,这时只需要运行一下命令即可。
#./HiIspTool.sh -aps一下可以看到一个进程699 adminlvj 19676 S ./ittb_control(2)PC端直接解压PQTools_V3.7.5.zip,运行HiPQTools.exe,输入选择sdk版本Hi3518_MPP_V1.0.A.0 ,输入设备IP,就可以连接上摄像头倘若运行了ittb_stream,可以PC端软件上打开视频图像窗口连接成功,至此,最简单的ISP调试环境搭建就完成了。
复杂的就是后面的ISP调节过程了。
备注:运行脚本的时候可能会报错,查看相关打印信息,将错误消除。
当前产品我们用的是HI3518E+OV9732,SDK中并没有提供相关的sensor库和相关的config文件,所以运行报错了!解决:将OV9732sensor库拷贝至Hi3518_ITTB_MPP2_V1.0.A.0/libs/下,将ov9732_720p_line.ini拷贝至Hi3518_ITTB_MPP2_V1.0.A.0/configs/下ov9732_720p_line.ini[plain]view plaincopyprint?1.[sensor]2.Sensor_type =ov9732 ;the type of sensor3.Mode =0 ;LINE mode,mode = 0 ,WDR mode,mode =14.DllFile =libs/libsns_ov9732.so ;LineDllFile path5.6.[vi_dev]7.Input_mod =2 ;VI_INPUT_MODE_BT656 = 08. ;VI_INPUT_MODE_BT601,9. ;VI_INPUT_MODE_DIGITAL_CAMERA10.11.Work_mod =0 ;VI_WORK_MODE_1Multiplex = 012.13. ;VI_WORK_MODE_2Multiplex,14.15. ;VI_WORK_MODE_4Multiplex16.bine_mode =0 ;Y/C composite or separation mode18.19. ;VI_COMBINE_COMPOSITE = 0 /*Composite mode */20.21. ;VI_COMBINE_SEPARATE, /*Separate mode */22.p_mode =0 ;Component mode (single-component or dual-component)24.25. ;VI_COMP_MODE_SINGLE = 0, /*single component mode */26.27. ;VI_COMP_MODE_DOUBLE = 1, /*double component mode */28.29.Clock_edge =1 ;Clock edge mode (sampling on the rising or falling edge)30.31. ;VI_CLK_EDGE_SINGLE_UP=0, /*rising edge */32.33. ;VI_CLK_EDGE_SINGLE_DOWN, /*falling edge */34.35.Mask_num =2 ;Component mask36.37.Mask_0 =0xFFC0000039.Mask_1 =0x040.41.Scan_mode = 1;VI_SCAN_INTERLACED = 042.43. ;VI_SCAN_PROGRESSIVE,44.45.Data_seq =2 ;data sequence (ONLY for YUV format)46.47. ;----2th component U/V sequence in bt112048.49. ; VI_INPUT_DATA_VUVU = 0,50.51. ; VI_INPUT_DATA_UVUV,52.53. ;----input sequence for yuv54.55. ; VI_INPUT_DATA_UYVY = 0,56.57. ; VI_INPUT_DATA_VYUY,58.59. ; VI_INPUT_DATA_YUYV,60.61. ; VI_INPUT_DATA_YVYU62.63.64.65.Vsync =1 ; vertical synchronization signal66.67. ;VI_VSYNC_FIELD = 0,68.69. ;VI_VSYNC_PULSE,70.71.VsyncNeg=0 ;Polarity of the vertical synchronization signal72.73. ;VI_VSYNC_NEG_HIGH = 0,74.75. ;VI_VSYNC_NEG_LOW /*if VIU_VSYNC_E76.77.Hsync =0 ;Attribute of the horizontal synchronization signal78.79. ;VI_HSYNC_VALID_SINGNAL = 0,81. ;VI_HSYNC_PULSE,82.83.HsyncNeg =0 ;Polarity of the horizontal synchronization signal84.85. ;VI_HSYNC_NEG_HIGH = 0,86.87. ;VI_HSYNC_NEG_LOW88.89.VsyncValid =0 ;Attribute of the valid vertical synchronization signal90.91. ;VI_VSYNC_NORM_PULSE = 0,92.93. ;VI_VSYNC_VALID_SINGAL,94.95.VsyncValidNeg =0;Polarity of the valid vertical synchronization signal96.97. ;VI_VSYNC_VALID_NEG_HIGH = 0,98.99. ;VI_VSYNC_VALID_NEG_LOW100.101.Timingblank_HsyncHfb =0 ;Horizontal front blanking width102.103.Timingblank_HsyncAct =1280 ;Horizontal effetive width104.105.Timingblank_HsyncHbb =0 ;Horizontal back blanking width106.107.Timingblank_VsyncVfb =0 ;Vertical front blanking height108.109.Timingblank_VsyncVact =720 ;Vertical effetive width110.111.Timingblank_VsyncVbb=0 ;Vertical back blanking height112.113.Timingblank_VsyncVbfb =0 ;Even-field vertical front blanking height(interlace, invalid progressive) 114.115.Timingblank_VsyncVbact=0 ;Even-field vertical effetive width(interlace, invalid progressive) 116.117.Timingblank_VsyncVbbb =0 ;Even-field vertical back blanking height(interlace, invalid progressive) 118.119.120.121.;----- only for bt656 ----------124. ;BT656_FIXCODE_0125.126.FieldPolar=0 ;BT656_FIELD_POLAR_STD = 0127.128. ;BT656_FIELD_POLAR_NSTD129.130.DataPath =1 ;ISP enable or bypass131.132. ;VI_PATH_BYPASS = 0,/* ISP bypass */133.134. ;VI_PATH_ISP = 1,/* ISP enable */135.136. ;VI_PATH_RAW = 2,/* Capture raw data, for debug */ 137.138.InputDataType=1 ;VI_DATA_TYPE_YUV = 0,VI_DATA_TYPE_RGB = 1, 139.140.DataRev =FALSE ;Data reverse. FALSE = 0; TRUE = 1141.142.143.[vi_chn]144.145.CapRect_X =0146.147.CapRect_Y =0148.149.CapRect_Width=1280150.151.CapRect_Height=720152.153.DestSize_Width=1280154.155.DestSize_Height=720156.157.CapSel =2 ;Frame/field select. ONLY used in interlaced mode 158. ;VI_CAPSEL_TOP = 0, /* top field */159. ;VI_CAPSEL_BOTTOM, /* bottom field */ 160. ;VI_CAPSEL_BOTH, /* top and bottom field */ 161.162.PixFormat =19 ;163.166.SrcFrameRate=-1 ;Source frame rate. -1: not controll167.168.FrameRate =-1 ;Target frame rate. -1: not controll169.170.171.[vpss_group]172.Vpss_DrEn =FALSE173.174.Vpss_DbEn =FALSE175.176.Vpss_IeEn =TRUE177.178.Vpss_NrEn =TRUE179.180.Vpss_HistEn =TRUE181.182.Vpss_DieMode=0 ;Define de-interlace mode183.184. ;VPSS_DIE_MODE_AUTO = 0,185.186. ;VPSS_DIE_MODE_NODIE = 1,187.188. ;VPSS_DIE_MODE_DIE = 2,189.190.[vpss_chn]191.Vpss_W =1280192.Vpss_H =720193.194.[isp_image]195.196.Isp_W =1280197.198.Isp_H =720199.200.Isp_FrameRate=30201.202.Isp_Bayer =3 ;BAYER_RGGB=0, BAYER_GRBG=1, BAYER_GBRG=2, BAYER_BGGR=3 203.204.205.[isp_timing]207.Isp_WndMode=0 ;WIND_NONE= 0,WIND_HOR= 1,WIND_VER= 2,WIND_ALL= 3, 208.209.Isp_HorWndStart=0210.211.Isp_HorWndLength=1280212.213.Isp_VerWndStart=0214.215.Isp_VerWndLength=720216.217.[vb_conf]218.219.VbCnt=8220.221.222.[venc]223.224.RcMode =VENC_RC_MODE_H264CBR225.226.Gop =30227.228.StatTime =1229.230.ViFrmRate =30231.232.TargetFrmRate=25233.;----- only for VENC_RC_MODE_H264CBR ----------234.BitRate=4096235.FluctuateLevel=1236.;----- only for VENC_RC_MODE_H264VBR ----------237.MaxBitRate =10000238.239.MaxQp=32240.241.MinQp=24242.;----- only for VENC_RC_MODE_H264FIXQP ----------243.IQp=20244.245.PQp=23246.249.ViDev =0 250.251.ViChn =0 252.253.VpssGrp =0 254.255.VpssChn = 0 256.257.VencGrp =0 258.259.VencChn =0 260.261.VoDev =0 262.263.VoChn =0 264.265.ViSnapChn =0 266.267.VpssSnapGrp=0 268.269.VpssSnapChn=1 270.271.VencSnapGrp=1 272.273.VencSnapChn=1。
Hi3518内核和文件系统烧写以及nfs挂载
Hi3518内核和文件系统烧写以及NFS挂载修改履历第一步编译内核和文件系统文档说明:涉及到目录的请根据自己的实际情况进行更改,本文档仅根据笔者的测试进行举例说明。
1 安装交叉编译器cd arm-hisiv100nptl-linux./cross.install说明:3518e推荐使用100nptl进行编译,arm-hisiv100nptl-linux-(使用uclibc库,uclibc 工具链支持全规格版本和小型化版本)arm-hisiv200-linux-(glibc 库glibc 工具链只支持全规格版本),实验时没有使用hisiv200,不确定会出什么问题,不推荐使用。
2 编译步骤cd ./linux-3.0.y./mk3518.shmk3518.sh 脚本里面包含了编译linux内核所需的所有的命令,具体看mk3518.sh文件,编译成功将生成在目录arch/arm/boot/uImage文件,这个就是要烧录到板子上的注意:大小大约为1M。
大于1M也许会出问题,在实验前期都是大于1M,烧录的时候出问题。
制作rootfs文件系统,使用的是最新的squashfs只读文件系统,使用的工具为mksquashfs,目录squashfs4.2为这个工具的代码rm ./rootfs.squashfs //仅仅为了删除之前存在的文件系统,如果没有,可不执行这一步。
./mksquashfs ./rootfsrootfs.squashfs -b 256Kcp ./rootfs.squashfs ./tftpboot //可不用命令,自己拷贝,黏贴,文件夹根据自己实际情况所定。
生成的rootfs.squashfs这个就是要烧录到板子上的文件注意:生成的文件大约为1.5M地址空间说明| 256K | 1M | 1.5M ||------------|---------------|-----------------------|| boot | kernel | rootfs |剩下5.25M可以由用户自由使用。
NFS挂载文件系统启动内核笔记
两天时间里,一直在做一件事,那就是用NFS挂载内核操作系统,这是进行驱动开发的第一步,尝试了很多,也明白了一些,有时想如果每个小问题都要耗费这么长的时间去琢磨,那人生真是经不起这折腾啊,linux和ARM的结合的复杂度,真是有时让人放弃,但由于对linux的猛烈兴趣,我支持下来了,但最终还是把它弄好了,给大家分享下,虽然不是什么大的成就,但是至少我要自己鼓励下自己:分为三个步骤:一,移植uboot,这一部分完全按照国嵌实验的步骤来做的,生成了一个uboot.bin文件二.内核uImage的生成,内核选的是 2.6.29,在首层目录中有config-mini2440,这是由国嵌准备好了的,在该层目录下1)执行make distclean 清除以前的编译痕迹2)Cp config-mini2440 .config 编译时都是通过这个文件来编译的3)Make menuconfig ARCH=arm,设置参数,这里要注意,你如果是要选择NFS做为启动根文件系统,那么以下几项必须选择上:file systems->network file ststem(nfs client support\ nfs client support for NFS version 3\ root file system on NFS)这三个都要选上,除了这一点外,我们还要设置挂载NFS的服务器IP及开发板IP,以及目录等,这个我们可以用两种方法设置:一是vi .config 找到CMDLINE那一行(:/CMD),设置如下:root=/dev/nfs rw nfsroot=192.168.1.164:/rootfs ip=192.168.1.156 console=ttySAC0,115200,mem=64M,有些人说这个参数应该要在uboot命令中设置,setenv bootargs "root =..."但是好像在这设置就能成功了,二是make menuconfig,在boot option->compressed boot loader in ROM下会有一行目录设置,问题是这里设置不比较麻烦,不能退格,所以每次修改都要删除要修改处之后的内容。
arm-linux挂载nfs文件系统
NFS(网络文件系统),用NFS可以虚拟机上的目录挂载到开发板上,这样在虚拟机linux进行交叉编译时就不需要使用SD卡将编译好的可执行文件拷贝到开发板上运行了,节省了开发时间。
1.首先要在linux里安装nfssudo -sapt-get install portmapapt-get intsall nfs-kernel-server2.再编辑exports文件vi /etc/exports添加一行/forlinux/root *(rw,sync,no_root_squash)(首先linux目录下得有forlinux/root这个目录)3.启动nfs/etc/init.d/portmap start/ect/init.d/nfs start之后检测nfs是否真的在运行/etc/init.d/portmap status如果看到 is running 说明已经在运行了。
4.确定开发板和虚拟机linux的IP地址虚拟机采用桥接方式修改开发板和虚拟机的IP地址,使在同一网段下可以在开发板或者虚拟机终端里ping对方IP,如果通则网络正常了。
5.挂载NFS到开发板上在开发板上进入linux系统,执行 mount -t nfs 192.168.0.233:/forlinux/root mnt/nfs -o nolock意思是:虚拟机IP :虚拟机NFS目录挂载到开发板的目录然后就能在mnt/nfs底下放到虚拟机那边的目录了。
6.用完要用umount /mnt/nfs 卸载如果没卸载,下次开发板开机再次挂载时会提示正忙,这时需要先umount 再mount。
enjoy!。
韦东山视频总结之NFS挂载文件系统
学习韦东山嵌入式linux完全开发手册视频11课4小节的笔记整理人:KPBoy qq:1056339680韦东山二期驱动视频教程秒杀价格180元应该是市面上最好的嵌入式学习视频报名只要给我淘宝号和名字就可以了到时自己到他的淘宝店拍下视频的这里是视频的详细网页介绍/Linuxvideo.html开发环境:装有红帽企业版6.2的wmware虚拟机一台交叉工具链是:嵌入式光盘里附送的交叉工具链arm-linux-gcc-3.4.5-glibc-2.3.6.tar.bz2Uboot:1.1.6Linux kernel:linux-2.6.22.6Filesystem:使用mdev机制的最小根文件系统fs_mini_mdev还有一个需要注意的地方:光盘里的linux-2.6.22.6在TQ2440/MINI2440上使用时会导致蜂鸣器响,这是因为JZ2440的LCD用GPB0作为LCD背光使能引脚, 而TQ2440/MINI2440用GPB0作为蜂鸣器的使能引脚使用TQ2440/MINI2440时,重新配置内核把自带的LCD驱动去掉即可,方法如下:在内核目录下执行: make menuconfig-> Device Drivers-> Graphics support<> S3C2410 LCD framebuffer support // 输入N(以上都是使用韦东山老师提供的源码和补丁,现在先熟悉下,等以后自己熟悉了再自己来移植和完善)S3C2440开发板一台好了,根据韦东山前面的9到11课的视频,搭建好上面的uboot和内核之后,我们就开始搭建在产品开发过程中经常使用到的NFS文件系统了。
首先我们来看看Linux文件系统时什么?问:什么是Linux文件系统?答:通常一个完整的Linux系统有数千上万个文件组成,文件中存储了程序,数据和各种信息。
层次化的目录结构对于文件进行编目和分组。
平台:海思hi3716cNFS挂载问题
平台:海思hi3716cNFS挂载问题平台:海思hi3716clinux kernel:3.0.8rootfs: mer-core based on release 20121018.1使用下面的bootargs:setenv bootargs 'mem=764M vmalloc=600Mconsole=ttyAMA0,115200mmz=ddr,0,0xb3c00000,100Mmtdparts=hi_sfc:448K(fastboot),64K(bootargs),3520K(recovery), 64K(deviceinfo);hinand:6M(baseparam),8M(logo),10M(fastplay), 30M(cache),10M(misc),10M(kernel),300M(system),134M(userdat a),4M(blackbox),1536M(sdcard)root=/dev/nfs rw nfsroot=192.168.188.141:/home/zhanghui/nfs/rootfs/mer-hybris ip=dhcp'问题1:VFS: Cannot open root device"nfs" or unknown-block(0,255) Pleaseappend a correct "root=" boot option; here are the availablepartitions:原因是:kernel中的NFS支持没设置好。
解决办法:理论上说,要用NFS启动rootfs,需要有两个支持:(1)NFSv3 client support(2)Root file system on NFS但是,在hi3716c的kernel目录下,'make menuconfig'时死活没有看到"Root file system on NFS"这个选项。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Hi3518内核和文件系统烧写以及NFS挂载修改履历第一步编译内核和文件系统文档说明:涉及到目录的请根据自己的实际情况进行更改,本文档仅根据笔者的测试进行举例说明。
1 安装交叉编译器cd arm-hisiv100nptl-linux./cross.install说明:3518e推荐使用100nptl进行编译,arm-hisiv100nptl-linux-(使用uclibc库,uclibc 工具链支持全规格版本和小型化版本)arm-hisiv200-linux-(glibc 库glibc 工具链只支持全规格版本),实验时没有使用hisiv200,不确定会出什么问题,不推荐使用。
2 编译步骤cd ./linux-3.0.y./mk3518.shmk3518.sh 脚本里面包含了编译linux内核所需的所有的命令,具体看mk3518.sh文件,编译成功将生成在目录arch/arm/boot/uImage文件,这个就是要烧录到板子上的注意:大小大约为1M。
大于1M也许会出问题,在实验前期都是大于1M,烧录的时候出问题。
制作rootfs文件系统,使用的是最新的squashfs只读文件系统,使用的工具为mksquashfs,目录squashfs4.2为这个工具的代码rm ./rootfs.squashfs //仅仅为了删除之前存在的文件系统,如果没有,可不执行这一步。
./mksquashfs ./rootfsrootfs.squashfs -b 256Kcp ./rootfs.squashfs ./tftpboot //可不用命令,自己拷贝,黏贴,文件夹根据自己实际情况所定。
生成的rootfs.squashfs这个就是要烧录到板子上的文件注意:生成的文件大约为1.5M地址空间说明| 256K | 1M | 1.5M ||------------|---------------|-----------------------|| boot | kernel | rootfs |剩下5.25M可以由用户自由使用。
可以看出如果文件超出限制,将会出现内存不够的错误。
烧写前期遇到几次提示内存不足的错误。
第二步烧写内核和文件系统1 烧写工具安装和配置win7下使用tftod32和secureCRT 进行烧写。
a、安装usb转串口的驱动在~/usb驱动/WIN7驱动2/Prolific_DriverInstaller_v110.exe目录下安装后到设备管理器中查看是否安装成功。
注:有时系统会自己安装,安装以后只要secureCRT设置正确,仍可以正常使用,如果不能正常使用,请尝试卸载系统自动安装的,使用hisi提供的驱动。
b、安装tftpd32软件,在百度上面随便搜索一个下载,安装后,打开tftpd32软件。
其中当前目录指的是安装tftpd32的安装目录,点击显示目录可以看到该目录下的内容。
后面要烧录的镜像文件都是放在这个目录下的,在u-boot控制命令台加载镜像文件的时候,自动从该目录下搜索指定的镜像文件。
服务器IP地址指的是当前PC机的IP地址,当打开tftpd32软件的时候,会自动把你当前PC上的IP地址加载到此处。
如果你想修改服务器的IP地址,直接把你的PC的IP地址修改后,打开tftpd32软件,会自动加载的。
注:烧录基本不用远程服务器,如果有兴趣可以研究使用远程服务器烧录,不推荐使用远程服务器。
c、安装SecureCTR软件,具体步骤请百度。
首先打开SecureCTR软件,选择快速链接,会弹出一个选项框。
在Protocla 下拉菜单中选择 serial ;Port的选择依据安装驱动时分配的com端口;波特率选择115200点击ok当窗口出现绿色勾时表明链接成功。
d、重新启动开发板,按住ctrl+c进入u-boot的控制台,再根据烧录步骤,输入命令烧kernel和文件系统。
但是一定要把相关镜像文件拷贝到tftpd32的安装目录下,不然找不到。
注。
切记uImage和 rootfs一定要拷贝到tftpd32的根目录下。
2 烧写过程注:千万不要忘记把tftpd32打开并进行设置uboot烧写内核set serverip 192.168.16.100mw.b 0x82000000 0xFF 0x100000tftp 0x82000000 uImagesf probe 0sf erase 0x40000 0x100000sf write 0x82000000 0x40000 0x100000烧写rootfs文件系统mw.b 0x82000000 0xFF 0x180000tftp 0x82000000 rootfs.squashfssf probe 0sf erase 0x140000 0x180000sf write 0x82000000 0x140000 0x180000设置启动参数和启动命令setenvbootargs 'mem=32M console=ttyAMA0,115200 root=/dev/mtdblock2 rootfstype=squashfsmtdparts=hi_sfc:256K(boot),1M(kernel),1536K(rootfs),5 376K(user)'setenvbootcmd 'sf probe 0;sf read 0x82000000 0x40000 0x100000;bootm0x82000000'saveenvreset注意有个ko没有加载成功,没有加载成功的原因未知,但是可以手动加载。
加载办法为挂载完文件系统以后用insmod 加文件的绝对路径。
第三步挂载nfs工具telnet1 telnet启动办法在命令提示符下输入telnet 192.168.16.105 ip为板子的ip出现如下错误可以在securtCRT里面输入telnetd打开板子的telnet端口。
2 telnet的使用a: 现修改板子的ip地址,确保pc,ubuntu,板子在同一个网段,板子ip地址修改可以在secureCRT中修改,修改使用命令ifconfig eth0 192.168.16.105 //配置板子的IP地址ifconfig //查看网络状态ping 192.168.16.100 //查看是否与PC机连通网络连通的情况下,才能正确挂载nfs系统:ubuntu下修改ubuntu的ip地址同样使用ifconfig eth0进行修改。
修改以后用ping检查三者是否相互ping通,如果不能ping通,自行检查。
b:在命令提示符下输入telnet 192.168.16.105 //ip地址为板子的ipC:\Users\Administrator>telnet 192.168.16.105正在连接192.168.16.105...无法打开到主机的连接。
在端口 23: 连接失败如果出现这个错误,为板子的telnet端口没有开启所至,在secureCRT中输入telnetd,打开板子的telnet端口。
连接以后需要输入板子的帐号密码。
我们使用的hi3518e使用的帐号为root,密码为空。
但是在淘宝或者公司卖的,uboot的密码一般是不告诉买家,为了防止查看他们的文件系统。
如果自己买开发板练习,切记telnet连接以后不能加密。
c:使用mount -t nfs -o nolock 192.168.16.102:/zhang/hi3518/nfs /mnt命令在telnet下进行挂载,ip地址为ubuntu的ip地址,因为我们把ubuntu下nfs文件夹挂载到板子上,以后调试程序,可直接修改nfs文件夹下的文件,如同直接修改板子上的文件一样,但是这仅仅是挂载,并不修改板子的文件。
第四步: sample_venc 例子程序测试1: mpp包编译cd mpp/samplemake//mpp/sample/venc 就是海思提供的同时编码的程序代码//说明海思3518E受限硬件资源,最大只能编码1个码流、最大25帧(一个720P) 可以直接在ubuntu下编译,将编译好的mpp文件夹拷贝到nfs目录下,这就是nfs的好处,只需挂载一次,需要添加删除文件可直接在nfs目录下操作,如同在板子上添加删除文件一样。
2:加载驱动,生成H264码流文件。
cd /ko./load3518e //海思底层视频编码驱动加载cd /mnt./sample_venc 0 //海思提供的同时编码1个码流的例子,会在当前目录下写H264裸码流文件,播放裸码流请用VLC播放当前目录生成的H264文件(stream_chn0.h264)// VLC软件下载地址:/vlc/2.1.3/win32/vlc-2.1.3-win32.exe挂载nfs也可以直接使用securtCRT进行挂载,挂载步骤1 烧写完文件系统和内核以后,用ifconfig eth0 进行设置板子的ip地址2 设置以后用ping检查能否ping通板子3 ping通以后使用mount命令进行挂载4 用 cd /mnt 转到挂载目录下用ls查看当年文件夹下的内容。
如果内容和被挂载的文件一样,则挂载成功。
在ubuntu下可以使用minicom进行挂载。
(1)有些linux系统自带了minicom,直接用命令安装就行了:apt-get install minicom;也可以从以下地址下载安装:/projects/minicom/(2)安装完成后:用指令"rpm -qa | grepminicom"来确认是否安装了minicom,回车后会显示minicom的版本信息.第一次启动时:即输入minicom提示错误。
则需:minicom -s启动出现配置菜单:选serial port setup进入串口配置输入A配置串口驱动为/dev/ttyS0(如果使用USB转接口,Serial Device 要配置为/dev/ttyUSB0)输入E配置速率为115200 8N1输入F将 Hardware Flow Control 设为 NO回车退出由于我们使用minicom作为超级终端控制路由器等设备, 而不是控制modem, 所以需要修改Modem and dialing, 将Init string, Reset string, Hang-up string设置为空. 设置完成后选择Save setup as dfl 将当前设置保存为默认设置.(若保存时出错,可能是因为权限不够,用root身份配置minicom则可)在配置菜单选Save setup as df1保存(一定要记得这一步)选Exit退出下次在输入minicon即可直接进入。