|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
文章目录
1 t" Q7 I3 ]# R" ~7 r8 l1 在开发板上移植ssh3 D& a5 P8 R3 j. X, ?) D
2 安装ssh
0 z3 j/ c7 U7 Q7 {0 E3 生成KEY文件,并安装
# J3 [% r% O; I' l- V, I4 修改目标板密钥文件
3 {' e" d. U3 O& V" t5 测试
z; g/ `8 @, R% O1 k- _0 {; l6 j( G6 在Ubuntu上搭建QT开发环境
7 L. W$ y2 ^6 ]7 c7 配置编译套件
3 V) J, V) k, x2 M7 b p5 q之前我们写好一个程序,都是先交叉编译完,然后在通过nfs/tftp或者其他的方法拷贝到开发板,然后在手动执行,如果我们调试程序很频繁,那我们每次都重新拷贝到开发板,那这样就太麻烦了,有没有方便一点的办法呢,这个就是接下来我们要介绍的一种方法,一键烧写QT程序到开发板,我们只需要在qtcreater上点击一下编译,那么QT程序会自动到开发板上来运行,是不是非常的方便?6 k1 `# I2 \4 w3 ?' q9 f
1 在开发板上移植ssh
/ k) L" j: c& E0 j( U' m要想实现一键烧写,那么我们必须就先要在开发板上移植一个ssh,本次实验我们使用的是busybox文件系统,这个文件系统并不支持ssh,所以我们要先移植一个上去。接下来,我们一起来移植一下。
0 P- [- p# j# Y: P# A移植环境:
1 B$ f; F: D% Q, x1 z6 g# W编译器保持和编译文件系统和QT的编译器一致:- p( O8 i9 l" J2 @
ARM-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz23 S0 n2 a& J' j3 H. F
Ubuntu版本:Ubuntu16
, L' i7 w z7 S5 z g5 }(1)移植zlib. b& x# ~7 N9 i4 I$ I
从迅为提供的资料中拷贝“ 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! M! R/ q. r0 `# R9 G* y$ J
5 {+ w- V' x! \) d0 H7 C! E
接着使用命令“./configure --prefix=/home/ssh/ssh_install/zlib-1.2.3”,设置配置文件,
: s7 q; f! P9 P2 p+ w其中–prefix=/home/ssh/ssh_install/zlib-1.2.3指定了zlib的安装路径。
2 L) z, t0 J# i3 Z9 g1 Q9 Z7 A0 z如图 1.2所示 :
. Q7 U& F" F/ C# C' a: C# c ; b, o. _+ d! M2 j9 s3 D$ I2 ?
使用命令“ vim Makefile” 修改编译参数,将所有 gcc 修改为“ arm-none-linux-gnueabi-gcc”
0 L+ F" _# p4 L& `如图 1.3所示
8 b6 S6 w: |7 m1 {/ N; X% o![]()
$ f+ \! @0 z; q! _接着使用编译命令“make” ,如图 1.4所示6 i A2 y7 ], u- [1 G- q+ `
7 S) Q8 C" k1 B' U/ x; j# a, ~. C, u( [
执行 make 无报错后,接着使用安装命令“make install” ,如图 1.5所示
6 z( ^1 O1 I3 M5 P2 Q4 o 4 G1 I; V/ ^: B8 ]- @
现在已经安装好了 zlib 库,在后面编译 SSH 的时候,需要用到 zlib 库,作者这里的路径是“/home/ssh/ssh_install/zlib-1.2.3” ,后面配置的时候需要对应生成的库文件,如图 1.6所示% B6 R4 [+ j( U3 K& Q) C7 _
/ E; Y& M* {& @* ]: p7 v
(2)移植 openssl
" ~: g" k( K' O, {( ~6 T2 O接着来移植 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所示。
5 ]" u; J A# C8 N![]()
2 P0 K9 O4 ~! R! Q2 i接着使用命令“./Configure linux-elf-arm -DB_ENDIAN linux:‘arm-none-linux
1 ?9 g/ Z8 f3 U/ z+ N-gnueabi-gcc’ --prefix=/home/ssh/ssh_install/openssl-0.9.8h” 配置编译文件,如图 1.8所示。
$ b5 Y0 c- b" ^' G+ B& p; P9 A- F1 K![]()
# }& U+ P. ~! a& r; `1 b使用编译命令“make” 编译完成,如图 1.9所示
/ n5 [3 x3 H6 Z0 b* k- J1 t![]()
# _3 M* y/ `( U& q X% o$ U最后使用安装命令“make install” ,如果在安装过程提示以下错误,如图 1.10所示:
) {+ A# }# x t) G" l2 M3 C![]()
7 P4 A, v5 f# r2 ?执行命令rm -f /usr/bin/pod2man可以解决,如图 1.11所示:
4 p- u5 E+ j- g![]()
: c: \+ I: y0 y1 P7 P8 F4 X然后再次执行make install即可安装成功,如图 1.12所示: U6 V: k: v) A1 h) [0 u
![]()
- X) q1 V4 J p$ ^(3)移植 ssh8 U* O' e7 Y1 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所示5 a/ [: B3 w& P( ?, M
![]()
9 O8 j0 V4 p N( T- m- A6 @这里看一下 ssh 的 configure 的帮助文件,如下所示,使用“ ./configure --help) {! H- E# e7 r) t8 {
ssh 的 configure 文件中需要配置的参数* M; s0 u+ I% Y, P" }
–host 表示编译出来要运行的平台% U) B0 B( {- v
–with-libs 表示需要的额外的库文件;
, r( w7 i, w. T" z( N1 {3 f–with-zlib 表示库文件 zlib 的 instal 路径 l;. n+ [8 P7 i j1 P6 L5 q! @. w
–with-ssl-dir 表示 OpenSSl 文件的 install 路径;
J2 e3 e7 S! p8 L# b* f1 k–disable-etc-default-login 表示不使用当前环境变量的编译器, 所以后面配置参数时, 最后直接配置
" u& i8 O3 G+ C1 C( A# M eCC 和 AR 这两个编译器;# A" g# B+ q Y! M5 ]- o
CC 表示设置使用的编译器;$ K9 y3 _7 q; t! X# s# c+ d
AR 表示设置使用的编译器的路径(蛮奇怪, 配置文件中似乎没有这个参数, 用户可以执4 V! u( g% g1 j2 ]% J
行验证下)
) y. ~' T" |4 p接着使用配置命令,命令比较长,作者使用颜色给大家分段:
7 ^( W6 k3 U! s: O$ h% P./configure --host=arm-none-linux --with-libs, Q% [5 d# O; f: z5 E
–with-zlib=/home/ssh/ssh_install/zlib-1.2.3
, P9 T7 t: g1 N; \8 e–with-ssl-dir=/home/ssh/ssh_install/openssl-0.9.8h' W8 ^9 I- h: i( L
–disable-etc-default-login CC=/usr/local/arm/arm-2014.05/bin/arm-none-linux-gnueabi-gcc. ~5 n* a% k7 G9 {5 a
AR=/usr/local/arm/arm-2014.05/bin/arm-none-linux-gnueabi-ar E7 E/ s# q* e$ @/ S+ e6 ^
如图 1.14所示:
m$ _1 L/ i! T1 K& W9 o![]()
: ]7 o7 T3 L C. @. \$ X, \执行成功如图 1.15所示:) d: d- ~. J* }: V% d. l5 d
![]()
( `- W$ C: U) Q! i' Y使用编译命令“make” ,编译完成,如图 1.16所示
7 H5 `- W: ^; {# p7 P% W/ {0 ^5 d ' G- ?. u3 f4 O1 ]1 q( t+ z
编译完成,最后肯定是需要安装到开发板上的,如图 62.6.1.17所示。最后在目录下
) O2 Z/ e. C2 J, E4 a. o' y“/home/ssh/openssh-4.6p1” 有这几个二进制文件“scp 、 sftp 、 ssh、 sshd、) \3 o0 [1 X3 U" e3 J
ssh-add、 ssh-agent、 ssh-keygen、 ssh-keyscan” 需要安装到开发板上。最终编译出来的二进制文件,可以使用 file 命令查看文件属性,如下图所示, 使用命令“file scp” ,可以看到“scp” 文件是 32 位 ARM上使用的可执行文件( Q7 k2 d5 u8 V4 Y2 O
![]()
4 ]3 G: U" u. t* p( f& J* L |
|