|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
文章目录 o( c7 f6 _1 J) F. u+ x
1 在开发板上移植ssh
! i, [5 _* F7 w4 G2 安装ssh
% s1 s$ F2 ?; Z4 }$ a _! e3 生成KEY文件,并安装
# H1 p" H% @: s- B! y5 F) l. `4 修改目标板密钥文件
% y$ C( b: `8 t9 P. j5 测试 ~; {6 r4 J! ^% m+ e) d* g r5 E
6 在Ubuntu上搭建QT开发环境" l( r$ m4 r% u4 h/ u! G5 N
7 配置编译套件' N# Y, h6 y% C E# K5 `7 R
之前我们写好一个程序,都是先交叉编译完,然后在通过nfs/tftp或者其他的方法拷贝到开发板,然后在手动执行,如果我们调试程序很频繁,那我们每次都重新拷贝到开发板,那这样就太麻烦了,有没有方便一点的办法呢,这个就是接下来我们要介绍的一种方法,一键烧写QT程序到开发板,我们只需要在qtcreater上点击一下编译,那么QT程序会自动到开发板上来运行,是不是非常的方便?
: B/ C, t. s9 @- Z" {. ]7 }1 在开发板上移植ssh: y8 P! O! Q( a
要想实现一键烧写,那么我们必须就先要在开发板上移植一个ssh,本次实验我们使用的是busybox文件系统,这个文件系统并不支持ssh,所以我们要先移植一个上去。接下来,我们一起来移植一下。
1 |% [- C3 ~( J7 p6 u移植环境:% y0 c3 i. G* W
编译器保持和编译文件系统和QT的编译器一致:; @8 d( |$ q6 D1 r; _0 h
ARM-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz23 u0 ~: `- ^! w2 _5 w' ]# `2 { s. ~
Ubuntu版本:Ubuntu166 e/ y0 x9 t9 r" V0 y+ g q3 ?
(1)移植zlib$ A$ ~# Q, M" }) ~
从迅为提供的资料中拷贝“ 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' I+ D- h: Z' U3 G' L
`9 Y% q% G; O
接着使用命令“./configure --prefix=/home/ssh/ssh_install/zlib-1.2.3”,设置配置文件, E1 G* F9 }6 \1 q
其中–prefix=/home/ssh/ssh_install/zlib-1.2.3指定了zlib的安装路径。% n M' Z3 w6 C8 L8 }
如图 1.2所示 :5 j; ]) Z) M [ |% @4 [
![]()
0 l* Y0 I6 k, y使用命令“ vim Makefile” 修改编译参数,将所有 gcc 修改为“ arm-none-linux-gnueabi-gcc”
5 s7 @4 S* r: u' V0 V* E如图 1.3所示- A# p4 p8 s' h% _$ ?% |8 Q
![]()
: b" H6 ]/ J* c7 V. Y2 \ r接着使用编译命令“make” ,如图 1.4所示
3 t- I. ?9 C# A 5 R W8 v* Y# m3 O0 u
执行 make 无报错后,接着使用安装命令“make install” ,如图 1.5所示5 d1 n) d3 W ?8 g8 D% H
/ r2 ? p; Q& m
现在已经安装好了 zlib 库,在后面编译 SSH 的时候,需要用到 zlib 库,作者这里的路径是“/home/ssh/ssh_install/zlib-1.2.3” ,后面配置的时候需要对应生成的库文件,如图 1.6所示
$ t* z; ?5 W3 r8 R![]()
- A) S5 f- i+ A7 Q; W8 K(2)移植 openssl) M0 N2 m% F7 D1 {. E7 G
接着来移植 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所示。
# _. k w6 s8 U3 @![]()
+ T5 C2 ~7 |2 R: e7 h) c接着使用命令“./Configure linux-elf-arm -DB_ENDIAN linux:‘arm-none-linux6 C- v/ J( |3 L, B6 g6 w3 W5 V3 _
-gnueabi-gcc’ --prefix=/home/ssh/ssh_install/openssl-0.9.8h” 配置编译文件,如图 1.8所示。
( ]) X) ~. u; ?# }![]()
) I$ k$ r, y+ m. }4 `- Y使用编译命令“make” 编译完成,如图 1.9所示
# `0 p( |: l2 E- Q- j9 l5 _7 M![]()
+ } U5 b( F8 z) F6 f最后使用安装命令“make install” ,如果在安装过程提示以下错误,如图 1.10所示:
" V( j4 Q* }$ B1 M" F D 1 {& t" o$ K3 |7 X
执行命令rm -f /usr/bin/pod2man可以解决,如图 1.11所示:
/ t8 V7 n' T" b3 G8 ~2 x- p3 h V, w+ f0 I6 m2 C4 E5 `
然后再次执行make install即可安装成功,如图 1.12所示:
" H5 M8 c5 U- h; J![]()
2 j8 M$ B3 I1 P6 G0 q @& V/ q(3)移植 ssh1 E2 W6 N R5 D- [# R8 t
接着来移植 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所示
* S0 c# Q* v" G * e7 F% X% N! Q2 H, @- _' u
这里看一下 ssh 的 configure 的帮助文件,如下所示,使用“ ./configure --help
6 z `$ F% ?+ l7 E& J2 e/ \ Bssh 的 configure 文件中需要配置的参数
5 b& G, e$ [# j–host 表示编译出来要运行的平台
4 s. W2 F1 s$ [; w5 Z9 R–with-libs 表示需要的额外的库文件;) ^% W, b. j! G+ Y
–with-zlib 表示库文件 zlib 的 instal 路径 l;: @8 v7 c! f% D, v. Z" l
–with-ssl-dir 表示 OpenSSl 文件的 install 路径;; O( ? ?/ z7 D! {! X$ c9 Z) E
–disable-etc-default-login 表示不使用当前环境变量的编译器, 所以后面配置参数时, 最后直接配置" l' G7 [8 {. b4 L" h& h- p2 X/ i6 F" T
CC 和 AR 这两个编译器;
/ H9 d: |% g; C3 d: UCC 表示设置使用的编译器;
1 {4 h" S# o P8 A3 t3 r% aAR 表示设置使用的编译器的路径(蛮奇怪, 配置文件中似乎没有这个参数, 用户可以执
1 z' {) K) w r" `行验证下)
3 ]9 ?1 d+ L I: e接着使用配置命令,命令比较长,作者使用颜色给大家分段:
# Y/ F* j5 a* w; A( M./configure --host=arm-none-linux --with-libs
7 I/ a3 M2 i$ ~$ S- i! Z f! p–with-zlib=/home/ssh/ssh_install/zlib-1.2.3
, p+ F" i g g- b- N) y–with-ssl-dir=/home/ssh/ssh_install/openssl-0.9.8h V6 k/ T. M ^* c3 O
–disable-etc-default-login CC=/usr/local/arm/arm-2014.05/bin/arm-none-linux-gnueabi-gcc
2 f, r, u3 g [) B& \/ GAR=/usr/local/arm/arm-2014.05/bin/arm-none-linux-gnueabi-ar
+ f' Y. Q2 a! h4 J3 t如图 1.14所示:) J9 j- _0 x: c2 N
![]()
1 n& S! Z: Y# `执行成功如图 1.15所示:3 ^) v$ c; a5 e" N3 h4 u" c
W+ Z/ y i# L7 N8 o
使用编译命令“make” ,编译完成,如图 1.16所示. d: f7 E: y. A5 m( Q( m
![]()
, h) D% X9 \# U; X- V- p编译完成,最后肯定是需要安装到开发板上的,如图 62.6.1.17所示。最后在目录下
9 `6 H) a1 Q5 t4 j: b3 z“/home/ssh/openssh-4.6p1” 有这几个二进制文件“scp 、 sftp 、 ssh、 sshd、" g+ O& l; \* P5 N w
ssh-add、 ssh-agent、 ssh-keygen、 ssh-keyscan” 需要安装到开发板上。最终编译出来的二进制文件,可以使用 file 命令查看文件属性,如下图所示, 使用命令“file scp” ,可以看到“scp” 文件是 32 位 ARM上使用的可执行文件9 `- y+ T/ ]- u, _( d4 B" F4 {
5 |2 ?+ N+ A! T$ u
|
|