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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
文章目录
" C3 _7 ?( C- a- }) `1 在开发板上移植ssh) {7 \! D" w3 F) o" I
2 安装ssh
2 y. X1 u& e9 {* Y5 J" J7 c3 生成KEY文件,并安装
3 q7 X' d) u: K9 B4 修改目标板密钥文件" b# ^4 A& H: X* Y* V" J$ E
5 测试. r8 \! P' v4 T5 ^& i, y
6 在Ubuntu上搭建QT开发环境
' ], D0 c. N* Q3 f) W4 j7 配置编译套件- |7 \! A. m- R' y
之前我们写好一个程序,都是先交叉编译完,然后在通过nfs/tftp或者其他的方法拷贝到开发板,然后在手动执行,如果我们调试程序很频繁,那我们每次都重新拷贝到开发板,那这样就太麻烦了,有没有方便一点的办法呢,这个就是接下来我们要介绍的一种方法,一键烧写QT程序到开发板,我们只需要在qtcreater上点击一下编译,那么QT程序会自动到开发板上来运行,是不是非常的方便?: R0 U. @& ~3 D3 y. i
1 在开发板上移植ssh
; C, ?/ h2 J% F要想实现一键烧写,那么我们必须就先要在开发板上移植一个ssh,本次实验我们使用的是busybox文件系统,这个文件系统并不支持ssh,所以我们要先移植一个上去。接下来,我们一起来移植一下。. T6 W) z0 ]  S( @
移植环境:  f! d9 O* d7 m3 j
编译器保持和编译文件系统和QT的编译器一致:
* h  x$ `# C' \2 nARM-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz29 D# B/ z4 l6 c  ^2 ~' ^/ B
Ubuntu版本:Ubuntu16
2 S& d. t; g: A' B0 F(1)移植zlib2 @+ `) ~; f: h4 `# l" P
从迅为提供的资料中拷贝“ 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
+ ?5 k# r* ^' ?: g5 L$ ?: v6 w0 P8 u# _( a8 w6 ]
接着使用命令“./configure --prefix=/home/ssh/ssh_install/zlib-1.2.3”,设置配置文件,
+ x  P5 V7 u! [2 A2 b8 A其中–prefix=/home/ssh/ssh_install/zlib-1.2.3指定了zlib的安装路径。
3 O. V# h3 ^- m0 h如图 1.2所示 :3 `9 q$ v- n$ M& M

, m; L0 n/ {# e9 a使用命令“ vim Makefile” 修改编译参数,将所有 gcc 修改为“ arm-none-linux-gnueabi-gcc”
& h( S4 N! m/ |' Z: Q如图 1.3所示  a5 O' p, f5 H6 ~% R6 T$ z1 x' C

2 R( `2 T: N! W: O接着使用编译命令“make” ,如图 1.4所示2 _" W$ r) p2 u/ S9 {- d) \

8 ~7 p- S5 N% h# y8 h' x# @- D/ T执行 make 无报错后,接着使用安装命令“make install” ,如图 1.5所示, Q$ p$ A4 M8 W( s) T& T% B

0 e. |* @; z, X1 C现在已经安装好了 zlib 库,在后面编译 SSH 的时候,需要用到 zlib 库,作者这里的路径是“/home/ssh/ssh_install/zlib-1.2.3” ,后面配置的时候需要对应生成的库文件,如图 1.6所示/ `4 K# R0 e* W' k: K1 n  i

  l( r$ Q/ r: _& H: F8 }6 E(2)移植 openssl
! t( \" f. B# E- v接着来移植 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所示。" ?/ e9 _+ |$ t+ Y. W. z1 j* z  Z
# Q7 ]1 V5 F: N9 ?7 g0 o
接着使用命令“./Configure linux-elf-arm -DB_ENDIAN linux:‘arm-none-linux7 @7 h# g, e2 t, _# O; u9 K
-gnueabi-gcc’ --prefix=/home/ssh/ssh_install/openssl-0.9.8h” 配置编译文件,如图 1.8所示。% j$ v( T  z8 B8 T% Z: A. Y/ I

& [8 H5 Y8 u2 O8 @7 G使用编译命令“make” 编译完成,如图 1.9所示, @  s' T7 R7 W7 _, H  K
3 g/ o2 {" J9 y. k2 ~
最后使用安装命令“make install” ,如果在安装过程提示以下错误,如图 1.10所示:& k; `9 Z4 c2 R8 _1 `2 ~: h- Y/ _0 b* K

2 r& _7 ^5 o5 o( F1 R0 i. N执行命令rm -f /usr/bin/pod2man可以解决,如图 1.11所示:( C# K! f& v1 [8 o

0 C7 a# L$ X* Q然后再次执行make install即可安装成功,如图 1.12所示:$ B' c: Z8 d9 }

; J& ?, O5 w# p+ W. p# g' y/ \9 s(3)移植 ssh# F* v, z8 i1 {. W- S/ p
接着来移植 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所示
4 M: V& ?& i8 y/ p* ^6 B
& L; J7 Z8 d+ ~/ Y: a* f这里看一下 ssh 的 configure 的帮助文件,如下所示,使用“ ./configure --help# |' o; n+ P$ i- C( L
ssh 的 configure 文件中需要配置的参数
9 S7 r# U  ], X  b/ ^–host 表示编译出来要运行的平台. S( ?5 e6 _) Z) Y0 @2 W1 a
–with-libs 表示需要的额外的库文件;; t% q4 }: h0 N7 ]
–with-zlib 表示库文件 zlib 的 instal 路径 l;  U3 O) b. R' o. S  ~1 N, ~; y4 O" F
–with-ssl-dir 表示 OpenSSl 文件的 install 路径;
# Y; ~( H9 {8 h; I3 s–disable-etc-default-login 表示不使用当前环境变量的编译器, 所以后面配置参数时, 最后直接配置
+ C( m2 F; P# J% KCC 和 AR 这两个编译器;
7 @  Y5 ?3 x$ c9 v2 J" tCC 表示设置使用的编译器;
9 v! N9 T% A+ M4 hAR 表示设置使用的编译器的路径(蛮奇怪, 配置文件中似乎没有这个参数, 用户可以执6 Y0 N8 @9 l, R- D
行验证下)+ K+ o# L; T% @2 z5 ?6 A
接着使用配置命令,命令比较长,作者使用颜色给大家分段:: T8 m* n5 H' d1 l) x" h: z
./configure --host=arm-none-linux --with-libs" v! B, u# ~- y% s9 x0 `
–with-zlib=/home/ssh/ssh_install/zlib-1.2.3& e! s' y: f5 C) c# Z: \+ l3 n
–with-ssl-dir=/home/ssh/ssh_install/openssl-0.9.8h' V" l& `. D( N# N& t
–disable-etc-default-login CC=/usr/local/arm/arm-2014.05/bin/arm-none-linux-gnueabi-gcc
+ l% i5 ~2 _3 g) Q1 H: Q; k+ TAR=/usr/local/arm/arm-2014.05/bin/arm-none-linux-gnueabi-ar5 q) \  J" L7 o$ @3 S
如图 1.14所示:
1 L: |; T# {) S2 v4 Y
# z9 n% C  T# c% J; C1 S$ |* _0 t6 T执行成功如图 1.15所示:5 ^) G; _# G% s) n
' v9 S8 x( O) U3 z
使用编译命令“make” ,编译完成,如图 1.16所示$ [9 U$ ^( E9 G& F- a2 a. H

( m. T1 x9 E+ t编译完成,最后肯定是需要安装到开发板上的,如图 62.6.1.17所示。最后在目录下% T: m' h. U8 J4 A
“/home/ssh/openssh-4.6p1” 有这几个二进制文件“scp 、 sftp 、 ssh、 sshd、
9 M' `# d6 m5 H- |5 N5 bssh-add、 ssh-agent、 ssh-keygen、 ssh-keyscan” 需要安装到开发板上。最终编译出来的二进制文件,可以使用 file 命令查看文件属性,如下图所示, 使用命令“file scp” ,可以看到“scp” 文件是 32 位 ARM上使用的可执行文件
7 v( D- F  q" [' F/ O9 r2 c
1 O& @" |# J7 Y, M+ r7 `8 W" z, M: P& n
  • 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 04:09 , Processed in 0.156250 second(s), 23 queries , Gzip On.

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

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

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