|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
文章目录
4 {2 R3 W( c' h2 F1 在开发板上移植ssh |) P0 H1 P- d, v% F9 \
2 安装ssh/ U, R! t& I x# K7 Q# @
3 生成KEY文件,并安装5 p) y# m& R$ X+ E
4 修改目标板密钥文件
2 s8 Z' b. d- V0 t$ A5 测试5 f T$ u3 u$ U. K" a$ ]& ^
6 在Ubuntu上搭建QT开发环境
2 y* E& H, G( n: k7 配置编译套件 {1 r$ V5 h0 o q. m
之前我们写好一个程序,都是先交叉编译完,然后在通过nfs/tftp或者其他的方法拷贝到开发板,然后在手动执行,如果我们调试程序很频繁,那我们每次都重新拷贝到开发板,那这样就太麻烦了,有没有方便一点的办法呢,这个就是接下来我们要介绍的一种方法,一键烧写QT程序到开发板,我们只需要在qtcreater上点击一下编译,那么QT程序会自动到开发板上来运行,是不是非常的方便?
4 m, p. \5 [& J" i% J1 在开发板上移植ssh
2 n3 P9 b5 G3 c0 F4 X+ e要想实现一键烧写,那么我们必须就先要在开发板上移植一个ssh,本次实验我们使用的是busybox文件系统,这个文件系统并不支持ssh,所以我们要先移植一个上去。接下来,我们一起来移植一下。0 A S" v, f8 r' a8 {, b
移植环境:) Y. U, |* L( H4 @
编译器保持和编译文件系统和QT的编译器一致:
3 R( ?% z; G9 O/ `9 OARM-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz23 e# L- @9 d' U2 a: r% x3 G
Ubuntu版本:Ubuntu16
$ ]* n, v" S4 l+ |, {(1)移植zlib/ K: \9 H6 e1 a8 [: D6 s3 Y B
从迅为提供的资料中拷贝“ 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
. |& P9 W: r5 n5 N![]()
3 [& _" r! k9 k9 J0 r, k# J$ _接着使用命令“./configure --prefix=/home/ssh/ssh_install/zlib-1.2.3”,设置配置文件,
( u/ n* C+ J7 r5 ?其中–prefix=/home/ssh/ssh_install/zlib-1.2.3指定了zlib的安装路径。
* S! a0 k" P4 R! R$ E, H V如图 1.2所示 :8 b* M, L& F* X# y1 ^
" C7 l9 d8 D Q( t2 e% H% ]" z% {
使用命令“ vim Makefile” 修改编译参数,将所有 gcc 修改为“ arm-none-linux-gnueabi-gcc”# j7 M* V' B9 j: E7 K' Q
如图 1.3所示
5 `/ F1 }7 _' j0 S 5 y, E4 R* x1 ~$ v7 b" Q# k& k
接着使用编译命令“make” ,如图 1.4所示6 j5 u' t5 ?$ w U) S7 ^
![]()
* a Z! W8 _- v2 p2 P7 I执行 make 无报错后,接着使用安装命令“make install” ,如图 1.5所示0 \& d: b* z/ I- V. A
![]()
7 N0 C' [" a0 z; j6 [ {现在已经安装好了 zlib 库,在后面编译 SSH 的时候,需要用到 zlib 库,作者这里的路径是“/home/ssh/ssh_install/zlib-1.2.3” ,后面配置的时候需要对应生成的库文件,如图 1.6所示4 g/ |$ R, N. B
; T5 o5 ]" w& ]
(2)移植 openssl. h9 k, p: M* s5 K( b
接着来移植 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所示。
3 I! C, W* D s) k![]()
$ C2 V% D9 u7 F4 s" u: W接着使用命令“./Configure linux-elf-arm -DB_ENDIAN linux:‘arm-none-linux
7 J: o( U W5 a-gnueabi-gcc’ --prefix=/home/ssh/ssh_install/openssl-0.9.8h” 配置编译文件,如图 1.8所示。/ {1 \/ {: Q/ H. E9 Y) f
" t* h( y+ q p- [% ~0 X6 W
使用编译命令“make” 编译完成,如图 1.9所示2 x- R& J: J( M. w5 W
$ u: ^+ Z- H9 B4 b& {
最后使用安装命令“make install” ,如果在安装过程提示以下错误,如图 1.10所示:# V' t z+ i) ^8 s# [4 f: b
7 {& s" a2 p% y) M, K4 {
执行命令rm -f /usr/bin/pod2man可以解决,如图 1.11所示:+ V7 n6 s4 P% `6 h
2 A/ X/ s3 B8 d$ Z/ R* b
然后再次执行make install即可安装成功,如图 1.12所示:
% b6 f; j K) y9 Q! @5 {8 y7 d![]()
# ^; V2 [" U0 n$ C4 k3 L2 P/ U(3)移植 ssh
$ M: \' R. L( x5 v/ |3 _) j接着来移植 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所示
$ K v- D4 k7 {6 y" b5 p9 { 6 i( M3 z: Z, L: k% f; l" d
这里看一下 ssh 的 configure 的帮助文件,如下所示,使用“ ./configure --help5 _! L3 w$ J# V7 T
ssh 的 configure 文件中需要配置的参数
* L! q% Y# C6 F7 Q. m5 b–host 表示编译出来要运行的平台
/ k/ A, } Q( x–with-libs 表示需要的额外的库文件;
; g6 M* Y( B. k3 H% d–with-zlib 表示库文件 zlib 的 instal 路径 l;. m! u& w% R$ D- F
–with-ssl-dir 表示 OpenSSl 文件的 install 路径;$ \- y: y8 f, l; \3 c
–disable-etc-default-login 表示不使用当前环境变量的编译器, 所以后面配置参数时, 最后直接配置& l/ p. e- U: z7 |5 h
CC 和 AR 这两个编译器;" }: x! f) m' {7 e5 x$ C1 i
CC 表示设置使用的编译器;+ K1 n# p0 u U8 A0 ?9 x5 R- o
AR 表示设置使用的编译器的路径(蛮奇怪, 配置文件中似乎没有这个参数, 用户可以执5 K$ R7 h1 J$ \0 q; Y9 Y
行验证下). V& J* C9 ]8 N ^- n: z( Z
接着使用配置命令,命令比较长,作者使用颜色给大家分段:
" G' A/ p3 K; R. M5 I# }./configure --host=arm-none-linux --with-libs: v* ~$ t" q7 p6 P* F6 v. ^( _
–with-zlib=/home/ssh/ssh_install/zlib-1.2.3
6 L# @' A" ?( U8 _4 @6 U5 c$ q–with-ssl-dir=/home/ssh/ssh_install/openssl-0.9.8h1 ^3 y4 n \" @: d
–disable-etc-default-login CC=/usr/local/arm/arm-2014.05/bin/arm-none-linux-gnueabi-gcc( h! z7 y, T# D; x6 _
AR=/usr/local/arm/arm-2014.05/bin/arm-none-linux-gnueabi-ar8 I/ p; P4 @% N. J. A
如图 1.14所示:
4 D# l, k) Q7 F% K9 w- ` : x; p+ J) y% G3 ?' q
执行成功如图 1.15所示:
! ] y6 ?" w5 ^( @) j$ I![]()
! D* [- N0 r4 X- d% `* Q使用编译命令“make” ,编译完成,如图 1.16所示+ M; h8 N% g7 r9 F" @8 Q
- ?/ c, N. T( d3 m% v7 D
编译完成,最后肯定是需要安装到开发板上的,如图 62.6.1.17所示。最后在目录下
" X( S- {; }3 q8 @3 J“/home/ssh/openssh-4.6p1” 有这几个二进制文件“scp 、 sftp 、 ssh、 sshd、5 |& j! B& ]/ L% I1 @* v& ~- W
ssh-add、 ssh-agent、 ssh-keygen、 ssh-keyscan” 需要安装到开发板上。最终编译出来的二进制文件,可以使用 file 命令查看文件属性,如下图所示, 使用命令“file scp” ,可以看到“scp” 文件是 32 位 ARM上使用的可执行文件
! k3 b9 f9 F! s* d% u( X![]()
3 E9 Y6 l/ l# w8 A$ ~; f' H |
|