新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 移植SSH到ARM Linux開發(fā)板成功

移植SSH到ARM Linux開發(fā)板成功

作者: 時間:2016-11-26 來源:網(wǎng)絡(luò) 收藏
在移植到友善2440的時候很容易,因為他4.3.2交叉編譯器等庫文件做等好。但是在移植到天漠devkit8000時,遇到非常多的問題。一個月之前遇到問題沒有找到-lgcc_s的問題一直沒有解決,以致后來非常影響開發(fā)進(jìn)度。最近決心解決這個問題,在google上查到?jīng)]有找到lxx其實時沒有找到libxxx.so,然后與友善2440比較了下,發(fā)現(xiàn)果真是arm-none-linux-gnueabi/libc/lib下缺少libgcc_s.so。最后一步問題總結(jié)是我編譯的時候遇到等所有問題,后一一化解,成功移植。所以,如果你在編譯等時候出錯,查看最后的問題總結(jié),應(yīng)該可以找到答案。

步驟:

本文引用地址:http://m.butianyuan.cn/article/201611/321878.htm

1.下載源碼包,地址如下:

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

2.交叉編譯

創(chuàng)建工作目錄:

#mkdir /work
#cd /work

在/work目下面創(chuàng)建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.操作目標(biāo)板

3.1確保目標(biāo)板上有以下目錄,若沒有,則新建:

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

3.2從PC機(jī)上將以下文件拷貝到目標(biāo)板Linux系統(tǒng)中

PC機(jī) /work/ssh/source/openssh-4.6p1/ 目錄下的

scpsftpsshssh-addssh-agentssh-keygenssh-keyscan拷貝到目標(biāo)板/usr/local/bin

moduli ssh_config sshd_config拷貝到目標(biāo)板 /usr/local/etc

sftp-serverssh-keysign拷貝到目標(biāo)板 /usr/local/libexec

sshd拷貝到目標(biāo)板 /usr/local/sbin/

3.3生成Key文件
在PC機(jī) /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到目標(biāo)板的 /usr/local/etc/目錄下


3.4修改目標(biāo)板passwd文件。
在/etc/passwd 中添加下面這一行
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin


4.測試

在目標(biāo)板上運行:
#/usr/local/sbin/sshd
可以用ps命令查看sshd是否在工作
如果運行的過程中有提示缺少動態(tài)連接庫,可以在主機(jī)上搜索相應(yīng)文件,拷貝到目標(biāo)板/lib/目錄下面,注意創(chuàng)建軟連接!
OK!不出意外的話可以成功,

主機(jī)上:

#ssh root@192.168.0.34(開發(fā)板的ip)

然后輸入開發(fā)板的root密碼就就可以了。

//root密碼就是你開發(fā)板上root的密碼,如果之前root沒有密碼,需要重新設(shè)置,用passwd root,然后輸入密碼即可。


上一頁 1 2 下一頁

關(guān)鍵詞: 移植SSHARMLinux開發(fā)

評論


技術(shù)專區(qū)

關(guān)閉