1. 交叉编译环境:

export ARCH=arm
export SUBARCH=arm
export PATH=/opt/FriendlyARM/toolschain/4.5./bin:$PATH
export CROSS_COMPILE=/opt/FriendlyARM/toolschain/4.5./bin/arm-linux-

2. 安装依赖环境:

sudo aptitude install zlib1g-dev libssl-dev

3. 编译 zlib for ARM: 版本[zlib-1.2.8.tar.gz]

./configure --prefix=/opt/FriendlyARM/zlib
make -j4 -e \
"CC=arm-linux-gcc" \
"AR=arm-linux-ar" \
"CPP=arm-linux-gcc -E" \
"LDSHARED=arm-linux-gcc -shared -Wl,-soname,libz.so.1,--version-script,zlib.map"
make install # 要求/opt目录的所有者为当前用户

4. 编译 openssl: 版本[openssl-1.0.1e.tar.gz]

unset CROSS_COMPILE #必须执行的命令!
./Configure --prefix=/opt/FriendlyARM/openssl os/compiler:arm-linux-gcc
make -j4
make install

5. 编译 openssh: openssh-6.3p1.tar.gz

./configure --prefix=/opt/FriendlyARM/openssh \
--host=arm-linux \
--with-zlib=/opt/FriendlyARM/zlib \
--with-ssl-dir=/opt/FriendlyARM/openssl \
CC=arm-linux-gcc
make -j4 # 不需要make install,安装不上的!!

 >>在PC打包ssh成为一个tar包:

#!/bin/sh -
tmpdir=tmp_arm
prefix=/opt/FriendlyARM/openssh
mkdir $tmpdir
mkdir -p $tmpdir/$prefix/etc
mkdir -p $tmpdir/$prefix/bin
mkdir -p $tmpdir/$prefix/etc
mkdir -p $tmpdir/$prefix/libexec
mkdir -p $tmpdir/$prefix/sbin
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 ""
cp ssh_host_*_key $tmpdir/$prefix/etc/
cp scp sftp ssh ssh-add ssh-agent ssh-keygen ssh-keyscan $tmpdir/$prefix/bin/
cp moduli ssh_config sshd_config $tmpdir/$prefix/etc/
cp sftp-server ssh-keysign $tmpdir/$prefix/libexec/
cp sshd $tmpdir/$prefix/sbin/
cd $tmpdir
tar zcf ssh_arm.tgz /opt/FriendlyARM/openssl /opt/FriendlyARM/zlib *

 >>把tar包拷贝至ARM板后,安装过程:

#!/bin/sh -
# run on arm
tar zxf ssh_arm.tgz -C /
echo 'PATH=/opt/FriendlyARM/openssh/bin:/opt/FriendlyARM/openssh/sbin:$PATH' >> /etc/profile
echo 'sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin' >> /etc/passwd
source /etc/profile

 >> 效果展示:先在ARM板上执行 /opt/FriendlyARM/openssh/sbin/sshd

这表明已经成功通过ssh连接至ARM开发板了。

参考资料:

  1. http://blog.sina.com.cn/s/blog_7f2a9a390100xws4.html

〖Linux〗build ssh for Arm的更多相关文章

  1. 〖Linux〗build sqlite3 for Arm

    Version: sqlite-autoconf-3080100.tar.gz Download: https://www.sqlite.org/download.html 1. toolchains ...

  2. 〖Linux〗使用ssh登录远程主机,并在本地打开远程图形界面

    1. 修改/etc/ssh/sshd_config文件,设置允许TCP转发和X11转发 AllowTcpForwarding yes X11Forwarding yes 2. 登录无图形远程主机,并允 ...

  3. 〖Linux〗bash和expect执行ssh命令行sshcmd.exp

    #!/usr/bin/expect -f # sudo apt-get install expect # ./ssh.exp user passwd server set user [lrange $ ...

  4. 〖Linux〗Clang/Clang++ for Android Binary/NDK build(二进制可执行文件/NDK编译)

    #1. 下载并安装NDK(解压即可,目前最新版是r9c) http://developer.android.com/tools/sdk/ndk/index.html #2. 安装NDK独立编译工具 c ...

  5. 〖Linux〗Ubuntu中使用KVM安装虚拟机

    1. 安装软件: sudo apt-get install libvirt0 libvirt-bin libvirt-dev virt-manager qemu-system 2. 配置网桥: # i ...

  6. 〖Linux〗联想K860/i Android 4.2及以上的Bootimg解压与打包工具

    因为自己有需要,所以花了一点时间来写了一下. 1. 解压工具 #!/bin/bash - #====================================================== ...

  7. 〖Linux〗使用gsoap搭建web server(C++)

    1. gsoap的好处就不用说了:百度百科 2. gsoap的下载地址:项目地址,目前我使用的是2.8.15版本 3. 开发环境:Ubuntu13.10 4. 具体操作步骤(以简单相加为例): 1)编 ...

  8. 〖Linux〗zigbee实验之cc2430移植tinyos2.x的步骤(Ubuntu13.10)

    开发环境:Ubuntu13.10 1. 添加源,并安装tinyos-2.11:sudo gedit  /etc/apt/sources.list #往里边添加deb http://tinyos.sta ...

  9. 〖Linux〗clang3.4的编译与安装

    1. 编译与安装clang3.4 sudo apt-get install -y g++ subversion cmake cd ~ mkdir Clang && cd Clang s ...

随机推荐

  1. .NET泛型02,泛型的使用

    在" .NET泛型01,为什么需要泛型,泛型基本语法"中,了解了泛型的基本概念,本篇偏重于泛型的使用.主要包括: ■ 泛型方法重载需要注意的问题■ 泛型的类型推断■ 泛型方法也可以 ...

  2. jQuery闭包之浅见,从面向对象角度来理解

    本篇的标题虽然是"jQuery闭包之浅见...",但实际上本篇涉及的多半是javascript"闭包"相关内容,之所以写这个标题,完全是因为自己平常用jQuer ...

  3. Gradle在Windows环境与Linux上配置有哪些不同?

    我的开发环境:Windows + Android Studio + Gradle 2.8 all + Jenkins 公司CI 服务器环境: Linux + Gradle 2.10 bin + Jen ...

  4. table固定首行(一)

    <html> <head> <title>Untitled Document</title> <meta http-equiv="Con ...

  5. 关于JSONP以及跨域相关

    什么是跨域: 浏览器对ajax请求的限制,不允许跨域请求资源. http://www.a.com--->http://www.b.com       是跨域 http://www.a.com-- ...

  6. 文件操作篇 close creat dup dup2 fcntl flock fsync lseek mkstemp open read sync write

    文件操作篇 close creat dup dup2 fcntl flock fsync lseek mkstemp open read sync write close(关闭文件) 相关函数 ope ...

  7. [转]C++之运算符重载(1)

    在前一节中曾提到过,C++中运行时的多态性主要是通过虚函数来实现的,而编译时的多态性是由函数重载和运算符重载来实现的.这一系列我将主要讲解C++中有关运算符重载方面的内容.在每一个系列讲解之前,都会有 ...

  8. WhyGL:一套学习OpenGL的框架,及翻写Nehe的OpenGL教程

    最近在重学OpenGL,之所以说重学是因为上次接触OpenGL还是在学校里,工作之后就一直在搞D3D,一转眼已经毕业6年了.OpenGL这门手艺早就完全荒废了,现在只能是重学.学习程序最有效的办法是动 ...

  9. Java 动态向 JTable 中添加数据

    import java.awt.Toolkit; import javax.swing.SwingUtilities; import javax.swing.UIManager; import jav ...

  10. 第二章 Javac编译原理

    注:本文主要记录自<深入分析java web技术内幕>"第四章 javac编译原理" 1.javac作用 将*.java源代码文件转化为*.class文件 2.编译流程 ...