背景:
开发板fl2440与pc的SecureCRT连接的传统方式是用串口转usb线连接,但是我在使用的过程中发现串口转usb线有时连接不稳定,另外串口也需要用于收发数据,所以我在开发板上移植
轻量级的SSH软件dropbear,一根网线轻松解决开发板与SecureCRT连接,话不多说,进入正题!
基本情况:
宿主机系统:CentOS-6.9
嵌入式linux系统:linux 3.0
ssh程序:dropbear
步骤:
1.宿主机操作:
-
下载并解压dropbear,我使用的是dropbear-2016.74,下载链接https://matt.ucc.asn.au/dropbear/releases/dropbear-2016.74.tar.bz2
-
下载并解压zlib,我使用的是zlib-1.2.10,下载链接 https://github.com/madler/zlib/archive/v1.2.10.tar.gz -O zlib-1.2.10.tar.gz,以上这两个软件是必须用的,可以谷歌官网去下载其他更新的版本。
- 交叉编译zlib。进入zlib解压后的目录,执行:
~/zlib # mkdir /usr/local/zlib/
~/zlib # ./configure --prefix=/usr/local/zlib
--static
~/zlib # vim Makefile
修改Makefile内容如下:(请配置为自己的交叉编译工具)
CC=
/opt/xtools/arm920t/bin/arm-linux-gcc
LDSHARED=/opt/xtools/arm920t/bin/arm-linux-gcc
CPP=
/opt/xtools/arm920t/bin/arm-linux-gcc -E
AR=/opt/xtools/arm920t/bin/arm-linux-ar
然后保存退出,终端执行:
~/zlib # make
~/zlib # make install
zlib将会编译安装到
/usr/local/zlib/
路径下,安装软件用系统权限。
-
交叉编译dropbear。进入dropbear解压后的目录,执行:(配置为自己的交叉编译工具)
~/dropbear # mkdir /usr/local/dropbear/
~/dropbear # ./configure --prefix=/usr/local/dropbear --with-zlib=/usr/local/zlib/ CC=/opt/xtools/arm920t/bin/arm-linux-gcc --host=arm
~/dropbear # make PROGRAMS="dropbear dbclient dropbearkey dropbearconvert scp"
~/dropbear # make PROGRAMS="dropbear dbclient dropbearkey dropbearconvert scp" install
2.将/usr/local/dropbear/bin/和/usr/local/dropbear/sbin/下的文件都复制到linux开发机的/usr/sbin/目录下(在开发上执行tftp -gr **** 192.168.1.250 开发板ip地址为192.168.1.250)。然后在开发机上执行:
~ # cd /etc
~/etc # mkdir dropbear
~/etc # cd dropbear
~/etc/dropbear # dropbearkey -t rsa -f dropbear_rsa_host_key
~/etc/dropbear # dropbearkey -t dss -f dropbear_dss_host_key
注意:将文件复制到开发板的/usr/sbin/下后要为其添加可执行权限(chmod a+x ****)
在启动脚本/etc/init.d/rcS中加入:
/usr/sbin/dropbear
3.现在已经基本大功告成!我们来进行连接测试
将开发板关机,拔掉usb转串口线,连上网线,开机
在pc的SecureCRT上输入开发板的ip地址和用户名

输入用户密码后,即可实现用网线将SecureCRT与开发板连接

遇到的问题
交叉编译zlib时没有使用静态编译
~/zlib # ./configure --prefix=/usr/local/zlib
编译时会出现报错libz.a: No such file or directory

使用静态编译后就可以正常编译
~/zlib # ./configure --prefix=/usr/local/zlib
--static