找回密码
 注册
关于网站域名变更的通知
查看: 540|回复: 1
打印 上一主题 下一主题

迅为-iMX6ULL开发板-移植mjpg-streamer实现远程监控

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2021-5-14 11:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
文章目录, Q( F8 i& z. O. K
1 在开发板上移植ssh; n/ k7 u% W, @
2 安装ssh  \! ^6 X% i$ q0 ~
3 生成KEY文件,并安装
; M9 z/ P. \5 J( r' V6 ?3 s' \0 S4 修改目标板密钥文件# [3 ?( C, w# Y9 _2 A+ w. n* W
5 测试
6 G# z, E. w- j, @; S6 在Ubuntu上搭建QT开发环境
+ ^* T5 u: }/ ~+ V; |# N, @7 配置编译套件# E9 p9 Y; ?- i! f, W! I! d3 R
之前我们写好一个程序,都是先交叉编译完,然后在通过nfs/tftp或者其他的方法拷贝到开发板,然后在手动执行,如果我们调试程序很频繁,那我们每次都重新拷贝到开发板,那这样就太麻烦了,有没有方便一点的办法呢,这个就是接下来我们要介绍的一种方法,一键烧写QT程序到开发板,我们只需要在qtcreater上点击一下编译,那么QT程序会自动到开发板上来运行,是不是非常的方便?' D1 }! I" S! y6 z
1 在开发板上移植ssh1 O2 ^( F0 V, S5 w
要想实现一键烧写,那么我们必须就先要在开发板上移植一个ssh,本次实验我们使用的是busybox文件系统,这个文件系统并不支持ssh,所以我们要先移植一个上去。接下来,我们一起来移植一下。
; H" Z: W5 i( u; p" }移植环境:# R1 l. K) q0 V$ x0 L- d
编译器保持和编译文件系统和QT的编译器一致:& p* K, K; M! F! q" @8 h9 }4 I
ARM-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
% G' O% p' K+ U% PUbuntu版本:Ubuntu16
' Z+ F: P; T) d$ [(1)移植zlib
0 F& Z* x; c3 [' n# J从迅为提供的资料中拷贝“ zlib-1.2.3.tar.gz” 到 Ubuntu 系统,使用命令“ tar -vxf zlib-1.2.3.tar.gz” 解压,得到“zlib-1.2.3” 文件夹,使用命令“cd zlib-1.2.3” 进入“ zlib-1.2.3”文件夹,如图 1.1# X0 l/ v! }* \2 g- Y; h
) N7 V+ p% J/ I% k5 p: S9 `/ F
接着使用命令“./configure --prefix=/home/ssh/ssh_install/zlib-1.2.3”,设置配置文件,
; ]- f8 K2 b) c9 d其中–prefix=/home/ssh/ssh_install/zlib-1.2.3指定了zlib的安装路径。  ?3 G- o! P' m& z
如图 1.2所示 :
7 ~$ c- k% k9 U6 |* ~, x
: B! I; x( H8 Q$ q, J使用命令“ vim Makefile” 修改编译参数,将所有 gcc 修改为“ arm-none-linux-gnueabi-gcc”, H6 X9 \9 m9 a1 a) L& i
如图 1.3所示
+ F; L5 n8 I0 M
- h. A. f8 J8 u' H5 G接着使用编译命令“make” ,如图 1.4所示3 Q& c+ o$ ^9 b" y! `) I
1 x7 f* E7 m/ b0 A5 t1 }
执行 make 无报错后,接着使用安装命令“make install” ,如图 1.5所示) |6 e4 a' u; X$ N1 S4 M

( }0 P5 ~4 z: V  M7 ]! m现在已经安装好了 zlib 库,在后面编译 SSH 的时候,需要用到 zlib 库,作者这里的路径是“/home/ssh/ssh_install/zlib-1.2.3” ,后面配置的时候需要对应生成的库文件,如图 1.6所示
6 G$ w( p$ b9 Z8 \0 n# _, Z
8 e' q6 r7 f7 I(2)移植 openssl  u: s5 {; a0 H. ^# C) m
接着来移植 openssl 库,拷贝“openssl-0.9.8h.tar.gz” 到 Ubuntu 系统,使用命令“tar -vxf openssl-0.9.8h.tar.gz” 解压,得到“openssl-0.9.8h” 文件夹,使用命令“cd openssl-0.9.8h”进入“openssl-0.9.8h” 文件夹,如图 1.7所示。
$ x* C4 Z7 x7 z/ P6 P8 p# r2 K. N* _2 T5 S
接着使用命令“./Configure linux-elf-arm -DB_ENDIAN linux:‘arm-none-linux
" w9 S; p' c  y-gnueabi-gcc’ --prefix=/home/ssh/ssh_install/openssl-0.9.8h” 配置编译文件,如图 1.8所示。  {& s% X4 D9 D6 c( Q. e
. ^. @# P$ o, F  I8 R
使用编译命令“make” 编译完成,如图 1.9所示
# J2 G, D5 O, c, V. {/ u4 Q/ {; n$ w; }: r: a
最后使用安装命令“make install” ,如果在安装过程提示以下错误,如图 1.10所示:
$ R* F) h/ `3 p: w3 u( x+ _$ q' r/ z/ A
执行命令rm -f /usr/bin/pod2man可以解决,如图 1.11所示:$ l8 I# B; d4 L4 U* K0 T  G4 V

& G% V! T' @8 O# W' }+ s然后再次执行make install即可安装成功,如图 1.12所示:4 K+ d' q* ]# P+ i" ]
# ^4 q/ [* V8 ]# |
(3)移植 ssh
3 I% ]) [' c. w% I接着来移植 openssh, 拷贝“ openssh-4.6p1.tar.gz” 到 Ubuntu 系统,使用命令“ tar -vxfopenssh-4.6p1.tar.gz” 解压,得到“openssh-4.6p1” 文件夹,使用命令“cd openssh-4.6p1/” 进入“openssh-4.6p1” 文件夹,如图 1.13所示
3 n. i  \- M6 {1 b# Z; l' C6 g0 C# o: h4 F1 k# ^' Z( m
这里看一下 ssh 的 configure 的帮助文件,如下所示,使用“ ./configure --help
! b9 C8 X" e! c" |# tssh 的 configure 文件中需要配置的参数7 J3 o) n$ I0 ?  X6 ^( a- J, j& L
–host 表示编译出来要运行的平台
  k4 K: J  x) b( [–with-libs 表示需要的额外的库文件;! E" O3 {! o$ i8 U- s/ J
–with-zlib 表示库文件 zlib 的 instal 路径 l;$ y1 A: P' Q( V1 J! C% Q
–with-ssl-dir 表示 OpenSSl 文件的 install 路径;
- C/ g  c$ q8 w–disable-etc-default-login 表示不使用当前环境变量的编译器, 所以后面配置参数时, 最后直接配置- [2 M  p! d$ v4 Y( x8 N
CC 和 AR 这两个编译器;
# C7 z5 s4 p/ W! }CC 表示设置使用的编译器;( t4 A& \. ]- b4 V6 N& E1 _1 _" d% I
AR 表示设置使用的编译器的路径(蛮奇怪, 配置文件中似乎没有这个参数, 用户可以执
0 M; f( g6 u( B( p. o+ W8 H9 o5 }行验证下)* K# I* J7 S. r3 L  z
接着使用配置命令,命令比较长,作者使用颜色给大家分段:2 q# K: \& r2 _; w) I& D, Y
./configure --host=arm-none-linux --with-libs
1 V6 N$ f( ^2 M" I8 T% o2 M–with-zlib=/home/ssh/ssh_install/zlib-1.2.3
$ E* B  s) U, i7 P–with-ssl-dir=/home/ssh/ssh_install/openssl-0.9.8h6 T3 q' m+ L# v: t( ?
–disable-etc-default-login CC=/usr/local/arm/arm-2014.05/bin/arm-none-linux-gnueabi-gcc( \. ~5 U5 i. Q. i. R7 y
AR=/usr/local/arm/arm-2014.05/bin/arm-none-linux-gnueabi-ar( \/ V- h& |/ ?7 I+ N3 I
如图 1.14所示:. I2 m. G( e5 `) I# f6 }) \  `

( m5 F1 h. T  Y( G% q+ B' Q执行成功如图 1.15所示:  E# `, X6 `7 \; S3 M! f/ E$ `
" O; ~' n0 o; t
使用编译命令“make” ,编译完成,如图 1.16所示8 k* q; A$ v9 {% d5 R2 [

+ N  b9 c, h7 r2 X' e编译完成,最后肯定是需要安装到开发板上的,如图 62.6.1.17所示。最后在目录下; r0 P" |) Z% h$ M" o
“/home/ssh/openssh-4.6p1” 有这几个二进制文件“scp 、 sftp 、 ssh、 sshd、$ p+ }; L4 f. |5 p5 \
ssh-add、 ssh-agent、 ssh-keygen、 ssh-keyscan” 需要安装到开发板上。最终编译出来的二进制文件,可以使用 file 命令查看文件属性,如下图所示, 使用命令“file scp” ,可以看到“scp” 文件是 32 位 ARM上使用的可执行文件
& [' ?, @: H( y$ ?8 J6 Q9 n( N$ `/ ], f: |' _2 M% X* o0 l
  • TA的每日心情
    开心
    2023-6-2 15:15
  • 签到天数: 1 天

    [LV.1]初来乍到

    2#
    发表于 2021-5-20 10:31 | 只看该作者
    666                                                   
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-11-24 09:41 , Processed in 0.156250 second(s), 23 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表