久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

ssh 的移植

 SamBookshelf 2015-01-09
  譯器arm-linux-gccarm-none-linux-gnueabi-gcc成功,。

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

步驟:

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

openssh  http://www./portable.html
openssl  http://www./source
zlib     http://www./

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.8e  os/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機上將以下文件拷貝到目標(biāo)板Linux系統(tǒng)中

PC機 /work/ssh/source/openssh-4.6p1/ 目錄下的

scp  sftp  ssh  ssh-add  ssh-agent  ssh-keygen  ssh-keyscan 拷貝到目標(biāo)板/usr/local/bin

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

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

sshd 拷貝到目標(biāo)板 /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到目標(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)連接庫,,可以在主機上搜索相應(yīng)文件,拷貝到目標(biāo)板/lib/目錄下面,,注意創(chuàng)建軟連接,!
OK!不出意外的話可以成功,,

主機上:

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

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

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

登錄成功后如下圖:

通過ssh連接開發(fā)板之a(chǎn)rm-linux下ssh的安裝使用
putty登錄

通過ssh連接開發(fā)板之a(chǎn)rm-linux下ssh的安裝使用
linux主機登錄

問題總結(jié)

1.運行sshd時出現(xiàn)
sshd: /lib/libc.so.6: version `GLIBC_2.7' not found (required by sshd) 

問題分析:說明你編譯等時候指定等glibc和目標(biāo)板所使用的不一致。
解決辦法:配置openssh,,即./configure時,使用對用等--host參數(shù),,如--host=arm-linux/arm-none-linux-gnueabi。

2.make openssl的時候,指定的prefix目錄已經(jīng)存在,,無法創(chuàng)建。
問題分析:這是因為在prefix目錄的時候,,使用了相對路徑,,如../../install,。
解決辦法:openssl需要用指定絕對路徑來安裝,,prefix參數(shù)應(yīng)該如:--prefix=/work/ssh/install/openssl-1.0.0

3.使用arm-2007q3-51-arm-none-linux-gnueabi.bin的make編譯ssh和gdbserver時出錯:
/root/CodeSourcery/Sourcery_G++_Lite/bin/../lib/gcc/arm-none-linux-gnueabi/4.2.1/../../../../arm-none-linux-gnueabi/bin/ld: cannot find -lgcc_s
collect2: ld returned 1 exit status
make: *** [example] 錯誤 1


問題解析:
cannot find -lgcc_s,即沒有發(fā)現(xiàn)-libgcc_s.so,。

解決辦法:
可能一解決:查找/root/CodeSourcery/Sourcery_G++_Lite/arm-none-linux-gnueabi/libc/lib目錄,,如果有l(wèi)ibgcc_s.so.1,做一個鏈接:ln -s libgcc_s.so.1 libgcc_s.so,,重新make,,此問題可以解決。如果再出現(xiàn)以下問題:

同理,,其他的問題,,也在/arm-none-linux-gnueabi/libc/lib目錄下,
問題:cannot find /lib/libc.so.6 inside,,解決:ln -s libc-2.5.so libc.so.6
問題:cannot find /lib/ld-linux.so.3 inside,解決:ln -s ld-2.5.so ld-linux.so.3

4.用nfs從主機復(fù)制到目標(biāo)板時出現(xiàn):
cp: omitting directory '/etc/boa'
等錯誤,。

問題分析:權(quán)限不夠,,或者目標(biāo)板中等/usr/local/etc已經(jīng)有文件。
解決辦法:在cp命令后加-r參數(shù),,如:cp -r /etc/* /usr/local/etc/

5.運行sshd時出現(xiàn):
Could not load host key: /usr/local/etc/ssh_host_dsa_key
Could not load host key: /usr/local/etc/ssh_host_ecdsa_key


問題解析:在/usr/local/etc目錄中沒有相應(yīng)等key,。
解決辦法:按照操作步驟,運行:
                 ssh-keygen -t dsa -f ssh_host_das_key -N ""
                 ssh-keygen -t ecdsa -f ssh_host_ecdas_key -N ""
生成ssh_host_das_key 和ssh_host_ecdas_key后復(fù)制到目標(biāo)板/usr/local/etc/目錄下,。

6.從nfs復(fù)制key文件到usr/local/etc時出現(xiàn):
cp: can't open 'ssh_host_dsa_key': Permission denied

問題分析:目標(biāo)板復(fù)制權(quán)限不夠,。
解決辦法:在主機中修改他們等權(quán)限為777,命令:chmod 777 *     ,。然后再復(fù)制,。

7.Privilege separation user sshd does not exist
//需要在開發(fā)板的系統(tǒng)里adduser shhd
//或者在/etc/passwd 中添加下面這一行
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin

8.Permissions 0755 for '/usr/local/etc/ssh_host_dsa_key' are too open.
//則把目標(biāo)板/usr/local/etc/下的ssh_host_*幾個文件的權(quán)限改為700。如果出現(xiàn)權(quán)限不夠問題,,用su - root進入root用戶再改,。
命令:#chmod 700 ssh_host_*

9.Permission denied (publickey,password,keyboard-interactive).
//打開開發(fā)板/usr/local/sshd_config,將PermitRootLogin yes前的注釋“#”號去掉,。


10.configure配置openssh的時候出錯:
configure: error: *** zlib missing - please install first or check config.log ***
問題分析:沒有找到zlib,。
問題解決:重新交叉編譯zlib,再configure即可。

11.以下兩個函數(shù)沒找到:
/home/arm/ssh-omap/source/openssh-5.8p2/ssh-keygen.c:1410: undefined reference to `pkcs11_init'
/home/arm/ssh-omap/source/openssh-5.8p2/ssh-keygen.c:1493: undefined reference to `pkcs11_terminate'

問題解決:
打開ssh-keygen.c:vi ssh-keygen.c
屏蔽這1410和1493這兩行函數(shù),。

12.開啟sshd后,,沒有找到sftp-server服務(wù)。如DS-5軟件在連接時就出現(xiàn)以下錯誤,,雖然還可以用終端,,不過不能傳輸文件,還是很不爽的:
Failed to connect SFTP subsystem: Remote host may not have sftp-server installed : java.io.IOException: inputstream is closed

問題分析:明顯的,,這是沒有找到sftp子服務(wù),。
問題解決:打開/usr/local/etc/sshd_config,找到這么一行:
Subsystem sftp /usr/libexec/sftp-server
看出問題了吧?配置文件中指明的sftp子服務(wù)并不是我們放的目錄,,所以修改為:
Subsystem sftp /usr/local/libexec/sftp-server
然后kill掉sshd,,再啟動就可以用sftp-server了。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多