1、下载源码 zlib,openssl , openssh,配置编译链,编译,安装。大致的配置如下:
编译zlib
./configure --prefix=/home/potato/openssl/install/zlib-1.2.3
make
make install
编译openssl
./Configure --prefix=/home/potato/openssl/install/openssl-0.9.8e os/compiler:arm-linux-gcc
make
make install
编译openssh
/configure --host=arm-linux --with-zlib=/home/potato/openssl/install/zlib-1.2.3 --with-ssl-dir=/home/potato/openssl/install/openssl-0.9.8e --disable-etc-default-login --disable-strip CC=arm-linux-gcc AR=arm-linux-ar
主机是Centos,编译过程中,如果缺少什么动态链接库,可使用yum whatprovides 查找相关项。
例:
编译zlib时缺少libstdc++.so.6
yum whatprovides libstdc++.so.6
[root@Chen zlib-1.2.8]# yum whatprovides libstdc++.so.6
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
* base: mirrors.cn99.com
* extras: mirrors.cn99.com
* updates: mirrors.cn99.com
libstdc++-4.4.7-17.el6.i686 : GNU Standard C++ Library
Repo : base
Matched from:
Other : libstdc++.so.6
libstdc++-4.4.7-17.el6.i686 : GNU Standard C++ Library
Repo : installed
Matched from:
Other : Provides-match: libstdc++.so.6
yum install libstdc++-4.4.7-17.el6.i686 后重新编译即可。
2、openssh编译成功后生成各种需要的文件,在开发板系统中建立必需的目录并将各文件移入相应的目录中。
mkdir -p /usr/local/bin/ ( scp sftp ssh ssh-add ssh-agent ssh-keygen ssh-keyscan)
mkdir -p /usr/local/etc/ (moduli ssh_config sshd_config)
mkdir -p /usr/local/libexec/ (sftp-server ssh-keysign)
mkdir -p /usr/local/sbin/ (sshd)
mkdir -p /var/run/
mkdir -p /var/empty/
这里要注意的是 /var/empty/的权限问题,除了所有者,其他不允许拥有写权限
/var/empty must be owned by root and not group or world-writable.
chmod 755 /var/empty/
3、添加sshd用户
如果目标板系统busybox带的有adduser,则可以直接adduser sshd。没有的话就直接修改/etc/passwd /etc/group 文件进行添加。
4、启动sshd
启动sshd后SSH登陆出现没有shell sshd: root@notty 问题。
1、/usre/local/etc/sshd_config 修改允许root登陆
2、mknod /dev/ptmx c 5 2 权限为666
3、mkdir /dev/pts
4、修改 /etc/fstab,添加devpts /dev/pts devpts gid=5,mode=620 0 0
5、mount /dev/pts
目标板系统开机启动sshd
系统启动时会执行特定的脚本,如rcS,可在里面添加,静态配置IP,然后启动SSHD服务,记住这个IP,以后就可以直接登录了。
原文:http://www.cnblogs.com/ChenPotato/p/5940290.html