|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
文章目录' p" z& t4 u4 p! B5 a) G
1 在开发板上移植ssh
; D4 y$ ~5 I7 K" L* \' \7 W2 安装ssh
) Q( b. Y+ N) f3 生成KEY文件,并安装! h2 f# _; W2 u2 [- ]( V
4 修改目标板密钥文件* T9 ?. {# Z1 x1 T$ } C
5 测试
2 X. t8 g& i" ?6 在Ubuntu上搭建QT开发环境' ?, t& r. N( f! C% w% _
7 配置编译套件7 s, y) T. ?, l% e
之前我们写好一个程序,都是先交叉编译完,然后在通过nfs/tftp或者其他的方法拷贝到开发板,然后在手动执行,如果我们调试程序很频繁,那我们每次都重新拷贝到开发板,那这样就太麻烦了,有没有方便一点的办法呢,这个就是接下来我们要介绍的一种方法,一键烧写QT程序到开发板,我们只需要在qtcreater上点击一下编译,那么QT程序会自动到开发板上来运行,是不是非常的方便?) }1 o) y: _, S& g0 N, j3 I
1 在开发板上移植ssh4 ~( q: w9 t: ]4 u# d
要想实现一键烧写,那么我们必须就先要在开发板上移植一个ssh,本次实验我们使用的是busybox文件系统,这个文件系统并不支持ssh,所以我们要先移植一个上去。接下来,我们一起来移植一下。
% ^4 r- l0 q, v' s" I8 K- f/ @" t移植环境:
7 x+ U" N v* r/ ?8 M2 f7 Z编译器保持和编译文件系统和QT的编译器一致:0 ~ D% ]& u% z7 e, f$ s
ARM-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2. K" F7 x1 {9 t3 b1 A8 ~0 |: P: n
Ubuntu版本:Ubuntu16
& _0 c4 h& R* R3 k5 K# h(1)移植zlib
8 d* W* Q3 V+ D% N7 \8 {! K从迅为提供的资料中拷贝“ 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
" n% l. T y% `8 W * W6 \5 W1 I: s! L# L
接着使用命令“./configure --prefix=/home/ssh/ssh_install/zlib-1.2.3”,设置配置文件,: f. u" ]5 ^# n2 D
其中–prefix=/home/ssh/ssh_install/zlib-1.2.3指定了zlib的安装路径。. I9 n; i* r/ q* ~( y2 W
如图 1.2所示 :3 ]5 p2 C- p0 Y
+ A+ g7 Y. L9 z( D
使用命令“ vim Makefile” 修改编译参数,将所有 gcc 修改为“ arm-none-linux-gnueabi-gcc”
% v4 a; d, L! l如图 1.3所示
* s, Z* I$ Y0 a3 o: N. h- i![]()
& u8 Z. t! ~! o4 [6 B. m* ~+ f接着使用编译命令“make” ,如图 1.4所示
2 X! m! D* j) G# I } $ b4 m/ Q6 k4 p. _2 l0 i; r& z
执行 make 无报错后,接着使用安装命令“make install” ,如图 1.5所示) {5 _0 }/ |# R r4 {5 R
![]()
. q" @2 w2 @9 s" L, C" I. T现在已经安装好了 zlib 库,在后面编译 SSH 的时候,需要用到 zlib 库,作者这里的路径是“/home/ssh/ssh_install/zlib-1.2.3” ,后面配置的时候需要对应生成的库文件,如图 1.6所示
w% o1 }4 e# \* R: K& X+ \* f2 z![]()
; x* c# P& @+ u! p6 A3 C. s6 _(2)移植 openssl
5 u9 B- ^1 L: v接着来移植 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 q9 G! n" v+ L+ a) H) t* N
2 [6 W4 _3 J( i8 G5 y! d7 J
接着使用命令“./Configure linux-elf-arm -DB_ENDIAN linux:‘arm-none-linux
, l7 k9 s+ K5 ~; w, a' }-gnueabi-gcc’ --prefix=/home/ssh/ssh_install/openssl-0.9.8h” 配置编译文件,如图 1.8所示。4 i" R, d2 q1 F# y: {
- b4 C. f5 s* x3 d3 f
使用编译命令“make” 编译完成,如图 1.9所示/ q+ ?7 ?# }+ \4 k
- Q9 r5 }. Y: `: R5 T
最后使用安装命令“make install” ,如果在安装过程提示以下错误,如图 1.10所示:
" ?) }* n3 y [![]()
+ G- j6 ?" {1 E# b/ A执行命令rm -f /usr/bin/pod2man可以解决,如图 1.11所示:
. _' N+ U" A; @; d- I # P H# r6 P0 [7 F k- ^
然后再次执行make install即可安装成功,如图 1.12所示:
0 a( `* z5 @. N; b" V! o![]()
5 p+ s5 A: d2 ^5 p(3)移植 ssh
1 c0 O; ^' C( ]0 V( s o9 x接着来移植 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所示
& e. P# Q0 M6 V. Y. ~7 i( | - e; r0 ] [. F/ D% N/ X# s
这里看一下 ssh 的 configure 的帮助文件,如下所示,使用“ ./configure --help
1 W, R; W3 l/ v9 H" _ssh 的 configure 文件中需要配置的参数
( P. x+ \6 Y) l+ u$ J, o3 S+ n3 {–host 表示编译出来要运行的平台
* _) O; E% T! x–with-libs 表示需要的额外的库文件;1 F3 a$ n+ R3 |3 D$ j. q( x L
–with-zlib 表示库文件 zlib 的 instal 路径 l;
) v& h( `, r9 d! I) ]7 C5 l–with-ssl-dir 表示 OpenSSl 文件的 install 路径;# E0 h$ E0 C# V1 G! a
–disable-etc-default-login 表示不使用当前环境变量的编译器, 所以后面配置参数时, 最后直接配置
) U# N+ C% @4 n! m* bCC 和 AR 这两个编译器;
& k9 s, e" \ vCC 表示设置使用的编译器;
i/ H9 b" `+ G7 [: A* `AR 表示设置使用的编译器的路径(蛮奇怪, 配置文件中似乎没有这个参数, 用户可以执
; J1 p4 T7 o( ^行验证下)
& M/ z: U: h- T1 q接着使用配置命令,命令比较长,作者使用颜色给大家分段:
2 y- P0 |9 M9 ^ r+ P) h( G./configure --host=arm-none-linux --with-libs, u6 h/ ]' _& K1 j& i
–with-zlib=/home/ssh/ssh_install/zlib-1.2.33 b1 F+ U0 O6 [' }, n
–with-ssl-dir=/home/ssh/ssh_install/openssl-0.9.8h
" W; b- u' Q5 G" Z1 P$ a" \; B5 p–disable-etc-default-login CC=/usr/local/arm/arm-2014.05/bin/arm-none-linux-gnueabi-gcc8 H/ d$ |+ f2 B! ]0 L
AR=/usr/local/arm/arm-2014.05/bin/arm-none-linux-gnueabi-ar H) J: |: X5 A3 t V. F2 I0 D
如图 1.14所示:( H' H( o' Y+ O* X- B
1 S( W1 c/ W8 m+ c$ U" {4 L
执行成功如图 1.15所示:
7 }9 U6 X, o- L![]()
% D1 l3 F/ z1 ` w& F: R$ j使用编译命令“make” ,编译完成,如图 1.16所示
8 E+ q( b {/ Q![]()
# [: J* {! c6 v2 q3 }% B% e编译完成,最后肯定是需要安装到开发板上的,如图 62.6.1.17所示。最后在目录下8 o3 N* H; [& G5 B1 D( k
“/home/ssh/openssh-4.6p1” 有这几个二进制文件“scp 、 sftp 、 ssh、 sshd、
% V& E m* Q" Q2 hssh-add、 ssh-agent、 ssh-keygen、 ssh-keyscan” 需要安装到开发板上。最终编译出来的二进制文件,可以使用 file 命令查看文件属性,如下图所示, 使用命令“file scp” ,可以看到“scp” 文件是 32 位 ARM上使用的可执行文件+ C2 r- L$ S; M' P# V4 }3 I
' W6 U+ l* ~4 ]: r5 d' c
|
|