|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
文章目录
5 [; U% C- c ~7 \2 ^1 在开发板上移植ssh' I+ ^* S; }2 T1 H
2 安装ssh+ V: Z) n- E7 l8 J3 O
3 生成KEY文件,并安装3 |5 h. e) u# }
4 修改目标板密钥文件
: T1 A* f) ]0 `. O5 测试1 I" i$ F# q( j6 K; Q
6 在Ubuntu上搭建QT开发环境
+ m! ~& }0 @1 _, r1 t9 s0 f, j) A7 配置编译套件* M) a# v8 `1 p7 R
之前我们写好一个程序,都是先交叉编译完,然后在通过nfs/tftp或者其他的方法拷贝到开发板,然后在手动执行,如果我们调试程序很频繁,那我们每次都重新拷贝到开发板,那这样就太麻烦了,有没有方便一点的办法呢,这个就是接下来我们要介绍的一种方法,一键烧写QT程序到开发板,我们只需要在qtcreater上点击一下编译,那么QT程序会自动到开发板上来运行,是不是非常的方便?3 a. }3 h% @, |" o; [7 m
1 在开发板上移植ssh
- \, G2 H. i% Q9 R! C9 W. h要想实现一键烧写,那么我们必须就先要在开发板上移植一个ssh,本次实验我们使用的是busybox文件系统,这个文件系统并不支持ssh,所以我们要先移植一个上去。接下来,我们一起来移植一下。
" R1 b0 n$ i% ]& ~0 y( e X移植环境:
1 c& z" l5 D: _$ K4 n! V编译器保持和编译文件系统和QT的编译器一致:, j: f* [7 y6 C5 y; B" Z: ~/ r
ARM-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
6 t- ?$ d+ G9 d) R5 p3 dUbuntu版本:Ubuntu16( C% c6 i' [. n Z& {( m
(1)移植zlib
; I. X) f2 t1 ]4 x8 Y! }1 B3 |从迅为提供的资料中拷贝“ 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
: v0 C4 F% `$ D7 `9 K' e![]()
- n# s0 u$ v2 X8 C接着使用命令“./configure --prefix=/home/ssh/ssh_install/zlib-1.2.3”,设置配置文件,/ e8 Z) _8 o! i1 D' m4 Y
其中–prefix=/home/ssh/ssh_install/zlib-1.2.3指定了zlib的安装路径。
8 O6 O, g3 U* j3 M# f; s) m如图 1.2所示 :, F+ D6 i# W* y( G% D+ I5 P: ~& y7 T
! Z0 d4 u+ G- C$ K; H4 ~
使用命令“ vim Makefile” 修改编译参数,将所有 gcc 修改为“ arm-none-linux-gnueabi-gcc”$ k9 T4 |5 A4 ^+ ^7 v
如图 1.3所示# \4 V: e% z8 m$ X' Z# z
![]()
& n* ?; s Y4 v2 k9 ^接着使用编译命令“make” ,如图 1.4所示# I1 R% o% i, X7 b; X {- a
. e8 @8 u8 I' `0 r$ z8 j
执行 make 无报错后,接着使用安装命令“make install” ,如图 1.5所示4 ~/ t$ v2 W8 W. z8 }
![]()
/ H5 T( I) H4 R7 \; i5 H& N现在已经安装好了 zlib 库,在后面编译 SSH 的时候,需要用到 zlib 库,作者这里的路径是“/home/ssh/ssh_install/zlib-1.2.3” ,后面配置的时候需要对应生成的库文件,如图 1.6所示
. a4 p y; P. ^( g: E, G* X& V, a 0 b! E( e s& B' R/ |$ \
(2)移植 openssl: L" L6 x/ ^2 U% ~) O! {6 x) }+ N! ]
接着来移植 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所示。; F" @1 m! K' B. f
![]()
& |7 A# m) Z" {; ^& a: m接着使用命令“./Configure linux-elf-arm -DB_ENDIAN linux:‘arm-none-linux
& Z1 p* ]) j+ R& G+ I! V8 P4 O8 K* n-gnueabi-gcc’ --prefix=/home/ssh/ssh_install/openssl-0.9.8h” 配置编译文件,如图 1.8所示。
8 r6 E+ j; C% k) x( M![]()
* P: `' f) i* s7 ~使用编译命令“make” 编译完成,如图 1.9所示* H3 h8 c+ L9 t! q6 e
/ m2 h# I* l' Y- g! P
最后使用安装命令“make install” ,如果在安装过程提示以下错误,如图 1.10所示:
! B! N) Y+ U+ I; ^/ ~) g$ p2 j' i # ~0 K5 u* b, {1 O4 z
执行命令rm -f /usr/bin/pod2man可以解决,如图 1.11所示:, c' D( ? b2 H" H
![]()
, Y; m- q/ u7 m/ ]2 r$ r M然后再次执行make install即可安装成功,如图 1.12所示:+ r. O+ Z/ v8 |0 E% X
- @7 l: O& R4 x" x+ }
(3)移植 ssh8 O. t* w+ d- ]6 a/ q% F/ |
接着来移植 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所示1 C; t1 Q6 A8 ~/ m
![]()
/ Y* X# j. r4 ? Z7 d* \, Z3 @5 H' K这里看一下 ssh 的 configure 的帮助文件,如下所示,使用“ ./configure --help
) h6 c, f+ ^, Y; @ssh 的 configure 文件中需要配置的参数
' f6 C: r3 T/ z% a$ c–host 表示编译出来要运行的平台, L" v! ~# \+ l' E6 v; ]2 }
–with-libs 表示需要的额外的库文件;. s. }5 v" T0 |; F
–with-zlib 表示库文件 zlib 的 instal 路径 l;
8 u" F3 `( }; E6 Y–with-ssl-dir 表示 OpenSSl 文件的 install 路径;" R8 a# i* ?. @
–disable-etc-default-login 表示不使用当前环境变量的编译器, 所以后面配置参数时, 最后直接配置/ A8 A2 z! d) c, N; D5 R. Z
CC 和 AR 这两个编译器;% b T6 R: S9 p3 j
CC 表示设置使用的编译器;
( x" W' L9 H' Y( r; K5 U+ A" UAR 表示设置使用的编译器的路径(蛮奇怪, 配置文件中似乎没有这个参数, 用户可以执
; I/ T" O) @9 p2 r0 P行验证下)5 M; U: @. C0 l
接着使用配置命令,命令比较长,作者使用颜色给大家分段:
& N. q; |% [- R$ H) n./configure --host=arm-none-linux --with-libs2 p* l. g+ b' P8 y# ^
–with-zlib=/home/ssh/ssh_install/zlib-1.2.3/ x! k( G' Y( W+ v' U3 ]+ Z
–with-ssl-dir=/home/ssh/ssh_install/openssl-0.9.8h
2 D, |! L" E+ q3 X–disable-etc-default-login CC=/usr/local/arm/arm-2014.05/bin/arm-none-linux-gnueabi-gcc0 D1 j. D! c1 B/ x! q$ i9 U4 S
AR=/usr/local/arm/arm-2014.05/bin/arm-none-linux-gnueabi-ar% ~5 o3 R3 P9 w# o
如图 1.14所示:
! P1 q9 z; `: }" E V& |+ q9 B6 M/ r( L( n
执行成功如图 1.15所示:
' J6 ^! _8 `; i" {( U& X![]()
$ J) D) F4 R' V' O使用编译命令“make” ,编译完成,如图 1.16所示
) K: d ?" ]; D' o, x; S![]()
6 @7 H& ^8 |- l* A' E0 d0 B2 t& R编译完成,最后肯定是需要安装到开发板上的,如图 62.6.1.17所示。最后在目录下
9 ]0 t/ J5 I- J0 H6 m% u“/home/ssh/openssh-4.6p1” 有这几个二进制文件“scp 、 sftp 、 ssh、 sshd、
7 F5 x# G) M a4 Kssh-add、 ssh-agent、 ssh-keygen、 ssh-keyscan” 需要安装到开发板上。最终编译出来的二进制文件,可以使用 file 命令查看文件属性,如下图所示, 使用命令“file scp” ,可以看到“scp” 文件是 32 位 ARM上使用的可执行文件
4 o8 s* N6 v( E4 J, E![]()
/ f `1 c2 P1 k* | C: S' X |
|