新闻中心

EEPW首页>嵌入式系统>设计应用> 移植SSH到ARM Linux开发板成功

移植SSH到ARM Linux开发板成功

作者: 时间:2016-11-26 来源:网络 收藏
在移植到友善2440的时候很容易,因为他4.3.2交叉编译器等库文件做等好。但是在移植到天漠devkit8000时,遇到非常多的问题。一个月之前遇到问题没有找到-lgcc_s的问题一直没有解决,以致后来非常影响开发进度。最近决心解决这个问题,在google上查到没有找到lxx其实时没有找到libxxx.so,然后与友善2440比较了下,发现果真是arm-none-linux-gnueabi/libc/lib下缺少libgcc_s.so。最后一步问题总结是我编译的时候遇到等所有问题,后一一化解,成功移植。所以,如果你在编译等时候出错,查看最后的问题总结,应该可以找到答案。

步骤:

本文引用地址: //m.amcfsurvey.com/article/201611/321878.htm

1.下载源码包,地址如下:

openssh http://www.openssh.com/portable.html
openssl http://www.openssl.org/source
zlib http://www.zlib.net/

2.交叉编译

创建工作目录:

#mkdir /work
#cd /work

在/work目下面创建ssh目录

# mkdir /work/lib-----〉共享库目录,通过nfs挂载
# mkdir /work/ssh-----〉工作目录
# cd/work/ssh
# mkdir compressed install source-----〉compressed 用于存放源码包
-----〉Install软件安装目录
-----〉Source源码包解压目录
#mv tarpakgs/openssh-4.6p1.tar.gz/work/ssh/compressed
#mv tarpakgs/openssl-0.9.8e.tar.gz/work/ssh/compressed
#mv tarpakgs/zlib-1.2.3.tar.gz/work/ssh/compressed

解压安装包:

# cd /work/ssh/compressed/
# tar zxvf zlib-1.2.3.tar.gz -C ../source
# tar zxvf openssl-0.9.8e.tar.gz -C ../source
# tar zxvf openssh-4.6p1.tar.gz –C ../source

交叉编译 zlib:
# cd/work/ssh/source/zlib-1.2.3
# ./configure --prefix=/work/ssh/install/zlib-1.2.3
# vim Makefile
CC=arm-none-linux-gnueabi-gcc
AR=arm-none-linux-gnueabi-ar rc
CPP =arm-none-linux-gnueabi-gcc -E
LDSHARED=arm-none-linux-gnueabi-gcc

# make
# make install

交叉编译openssl
# cd/work/ssh/source/openssl-0.9.8e
# ./Configure --prefix=/work/ssh/install/openssl-0.9.8eos/compiler:arm-none-linux-gnueabi-gcc

# make
# make install

交叉编译openssh
# cd /work/ssh/source/ openssh-4.6p1
#./configure --host=arm-none-linux-gnueabi --with-libs --with-zlib=/work/ssh/install/zlib-1.2.3 --with-ssl-dir=/work/ssh/install/openssl-0.9.8e --disable-etc-default-login CC=arm-none-linux-gnueabi-gcc AR=arm-none-linux-gnueabi-ar
#make
注意:openssh不需要make install

3.操作目标板

3.1确保目标板上有以下目录,若没有,则新建:

/usr/local/bin/
/usr/local/sbin/
/usr/local/etc/
/usr/local/libexec/
/var/run/
/var/empty/

3.2从PC机上将以下文件拷贝到目标板Linux系统中

PC机 /work/ssh/source/openssh-4.6p1/ 目录下的

scpsftpsshssh-addssh-agentssh-keygenssh-keyscan拷贝到目标板/usr/local/bin

moduli ssh_config sshd_config拷贝到目标板 /usr/local/etc

sftp-serverssh-keysign拷贝到目标板 /usr/local/libexec

sshd拷贝到目标板 /usr/local/sbin/

3.3生成Key文件
在PC机 /work/ssh/source/openssh-4.6p1/ 目录下运行:
ssh-keygen -t rsa -f ssh_host_rsa_key -N ""
ssh-keygen -t dsa -f ssh_host_dsa_key -N ""
ssh-keygen -t ecdsa -f ssh_host_ecdsa_key -N ""

将生成的 ssh_host_*_key这3个文件copy到目标板的 /usr/local/etc/目录下


3.4修改目标板passwd文件。
在/etc/passwd 中添加下面这一行
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin


4.测试

在目标板上运行:
#/usr/local/sbin/sshd
可以用ps命令查看sshd是否在工作
如果运行的过程中有提示缺少动态连接库,可以在主机上搜索相应文件,拷贝到目标板/lib/目录下面,注意创建软连接!
OK!不出意外的话可以成功,

主机上:

#ssh root@192.168.0.34(开发板的ip)

然后输入开发板的root密码就就可以了。

//root密码就是你开发板上root的密码,如果之前root没有密码,需要重新设置,用passwd root,然后输入密码即可。


上一页 1 2 下一页

评论


技术专区

关闭