|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
文章目录% u# n7 Q/ w M8 i, X6 N# g5 V
1 在开发板上移植ssh
S1 N( d1 U( G8 X- P; q2 安装ssh
) A7 E7 ]% Z* C2 b4 N5 U* c3 生成KEY文件,并安装. ]' N- W/ P4 U; \
4 修改目标板密钥文件
' @: e$ ^2 h6 {/ X6 A6 \" V1 T) g, j' }5 测试
1 g6 }+ D' @7 n- G6 在Ubuntu上搭建QT开发环境9 i; `; P8 {& \# J- h: y: _
7 配置编译套件
7 M, V1 d+ d6 d1 ^7 F( ^之前我们写好一个程序,都是先交叉编译完,然后在通过nfs/tftp或者其他的方法拷贝到开发板,然后在手动执行,如果我们调试程序很频繁,那我们每次都重新拷贝到开发板,那这样就太麻烦了,有没有方便一点的办法呢,这个就是接下来我们要介绍的一种方法,一键烧写QT程序到开发板,我们只需要在qtcreater上点击一下编译,那么QT程序会自动到开发板上来运行,是不是非常的方便?1 y$ Z) A8 }8 e4 S
1 在开发板上移植ssh1 b, w; A: H2 N
要想实现一键烧写,那么我们必须就先要在开发板上移植一个ssh,本次实验我们使用的是busybox文件系统,这个文件系统并不支持ssh,所以我们要先移植一个上去。接下来,我们一起来移植一下。/ h; G* o) T ?( z( v; a) u% ]
移植环境:
* X2 t7 h3 ^/ a编译器保持和编译文件系统和QT的编译器一致:* E8 H% q1 _7 M) p) ^0 V
ARM-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2( \! V2 |+ m3 ~" @
Ubuntu版本:Ubuntu16' }4 R( _3 s9 c( ^" {: A+ x. N( A" r
(1)移植zlib
3 o! _; W' o" q* ^" |: ?从迅为提供的资料中拷贝“ 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.17 t/ N( A1 I3 x% t, X
Y, Q9 {) ~/ n( W( I5 t* [. `
接着使用命令“./configure --prefix=/home/ssh/ssh_install/zlib-1.2.3”,设置配置文件,* M! f% b( m. }: T
其中–prefix=/home/ssh/ssh_install/zlib-1.2.3指定了zlib的安装路径。, [: o1 Z( i& o! b8 y% K* H9 O
如图 1.2所示 :
0 X/ r* ^& b; F2 S( A& u; V![]()
9 ?- a* E( Q6 l& [) b$ z使用命令“ vim Makefile” 修改编译参数,将所有 gcc 修改为“ arm-none-linux-gnueabi-gcc”& i3 T0 ]( F$ m$ ?% S1 O% o1 G
如图 1.3所示
2 @& I# L& j' x![]()
1 N% m( Z, K! K8 [接着使用编译命令“make” ,如图 1.4所示
2 T) G7 U7 x3 l: g8 s n![]()
/ u% k' B' I, S1 o4 e0 J执行 make 无报错后,接着使用安装命令“make install” ,如图 1.5所示
: f* y' t+ r% C1 M2 ^- `9 T![]()
) C! @6 a3 k* y( {5 \现在已经安装好了 zlib 库,在后面编译 SSH 的时候,需要用到 zlib 库,作者这里的路径是“/home/ssh/ssh_install/zlib-1.2.3” ,后面配置的时候需要对应生成的库文件,如图 1.6所示
" d! D7 Q5 U0 @4 k! Q6 @![]()
% F4 d8 e4 Q @+ _, x(2)移植 openssl
+ e6 E- [7 d, T( Z接着来移植 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所示。9 g2 K* s1 j( o/ b) m. e
( @* Z: S x; Y! `" c$ J
接着使用命令“./Configure linux-elf-arm -DB_ENDIAN linux:‘arm-none-linux
8 t3 T" r6 n' n+ \/ @# {-gnueabi-gcc’ --prefix=/home/ssh/ssh_install/openssl-0.9.8h” 配置编译文件,如图 1.8所示。9 j) b, Y7 G' s% }
![]()
$ [1 H) T9 B/ w8 T; o' f7 Q8 H使用编译命令“make” 编译完成,如图 1.9所示
7 _6 p% v/ O& w; i' g4 w![]()
: S7 L, I2 W) B- N6 ^最后使用安装命令“make install” ,如果在安装过程提示以下错误,如图 1.10所示:
; b0 F0 y; z+ S* s! i3 p) q; \5 E @ 2 u# q$ J( `& j& F0 G
执行命令rm -f /usr/bin/pod2man可以解决,如图 1.11所示:
2 k' R2 P6 U: f# M- \7 f+ i![]()
' d: |& s. V) M" z$ _' R: M4 ^然后再次执行make install即可安装成功,如图 1.12所示:
- m1 E' T9 T/ l3 I K ?* ^+ K3 P7 T( J `; |
(3)移植 ssh
/ f. x) c9 u0 r接着来移植 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所示" g7 s6 F! G: O8 W
) v1 j: n+ I8 {0 [0 f) F) H
这里看一下 ssh 的 configure 的帮助文件,如下所示,使用“ ./configure --help
9 D# D" A2 R3 y% |3 A9 I' K; n- [ssh 的 configure 文件中需要配置的参数
+ i* Z( U; g+ h' l- q' d0 }6 v–host 表示编译出来要运行的平台! i% |1 a+ v7 g
–with-libs 表示需要的额外的库文件;
( j+ w- l& \8 x j* G- p, p. }+ R–with-zlib 表示库文件 zlib 的 instal 路径 l;
4 v" ^) f( r) T4 m" ]5 o( s–with-ssl-dir 表示 OpenSSl 文件的 install 路径;& D% m6 m- r0 K
–disable-etc-default-login 表示不使用当前环境变量的编译器, 所以后面配置参数时, 最后直接配置
6 N: R7 r% B, U; Q D I6 SCC 和 AR 这两个编译器;: d0 i" X1 x5 V" o" K) U$ P
CC 表示设置使用的编译器;7 [. E4 b0 z; o
AR 表示设置使用的编译器的路径(蛮奇怪, 配置文件中似乎没有这个参数, 用户可以执/ z; o* ~. S6 G. v x4 c
行验证下)9 Q! S2 O( q: a. R0 z2 r6 S
接着使用配置命令,命令比较长,作者使用颜色给大家分段:
# U. S( }4 o! f5 b G1 }' m./configure --host=arm-none-linux --with-libs
, H5 P( c/ u0 D( o" ~/ z& X) e–with-zlib=/home/ssh/ssh_install/zlib-1.2.3, x% P: ]; ~! j; v: I' m3 o4 ?8 a
–with-ssl-dir=/home/ssh/ssh_install/openssl-0.9.8h$ D$ g& \5 O' u+ Q( [
–disable-etc-default-login CC=/usr/local/arm/arm-2014.05/bin/arm-none-linux-gnueabi-gcc
- Z: R( e/ o. U" _* d9 W! SAR=/usr/local/arm/arm-2014.05/bin/arm-none-linux-gnueabi-ar3 ^3 Z+ `! d- Y
如图 1.14所示:
) A9 e* u5 H1 O 0 l: U) _) n8 t" q
执行成功如图 1.15所示:% I( A9 T9 |+ p; _/ o/ x
$ V1 U- n" l- \% A! B2 e
使用编译命令“make” ,编译完成,如图 1.16所示5 y7 N' H7 [, K4 _8 n6 x1 v4 ?
![]()
X' @0 q. q: S/ j% d7 D& Z b" {8 x" E( m编译完成,最后肯定是需要安装到开发板上的,如图 62.6.1.17所示。最后在目录下9 M$ S* Z, D: u) `: }
“/home/ssh/openssh-4.6p1” 有这几个二进制文件“scp 、 sftp 、 ssh、 sshd、 M! M4 F& B5 t/ F+ l) {
ssh-add、 ssh-agent、 ssh-keygen、 ssh-keyscan” 需要安装到开发板上。最终编译出来的二进制文件,可以使用 file 命令查看文件属性,如下图所示, 使用命令“file scp” ,可以看到“scp” 文件是 32 位 ARM上使用的可执行文件
) ~' y; H. [6 j![]()
/ k) e- E: J- _' S& w5 j' j& x2 z |
|