git cross-compile

来源:互联网 发布:php从入门到精通第4版 编辑:程序博客网 时间:2024/05/01 11:09

1. 交叉编译openssl

    下载openssl-1.0.1c

     AR="arm-linux-ar" RANLIB=arm-linux-ranlib  CC=arm-linux-gcc /usr/bin/perl ./Configure shared linux-armv4 --prefix="$PWD/output/"
     make  
     make install
    拷贝libssl.so和libcrypto.so拷贝到工具链

2. 交叉编译git
    下载git-git-8228a23
    echo ac_cv_snprintf_returns_bogus=yes >> arm-linux.cache
    echo ac_cv_fread_reads_directories=yes>>arm-linux.cache
    CC=arm-linux-gcc ./configure --host=arm-linux --with-openssl=../openssl-1.0.1c/ --cache-file=arm-linux.cache --prefix="$PWD/install"
    make install

3. openssh
http://mirror.jmu.edu/pub/OpenBSD/OpenSSH/portable/openssh-6.1p1.tar.gz

./configure --host=arm-linux --with-default-path=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/sbin:/sky:/usr/local/bin --with-libs --with-ssl-dir=../openssl-1.0.1c --disable-etc-default-login CC=arm-linux-gcc AR=arm-linux-ar

3.1 安装
    
    (1) 将 openssh目录下的 sshd 拷贝到 目标板的/usr/sbin目录下
    (2) 再copy scp  sftp  ssh  ssh-add  ssh-agent  ssh-keygen  ssh-keyscan  到目标板/usr/local/bin目录下
            copy 
sftp-server  ssh-keysign    到/usr/local/libexec
       
    (3) 在目标板下:

        mkdir -p /usr/local/etc/  
        然后将openssh下的sshd_config,ssh_config 拷贝到该目录下

        mkdir -p /var/run; mkdir -p /var/empty/sshd 
        chmod 755 /var/empty     
    (4)在主机上:
         ssh-keygen -t rsa1 -f ssh_host_key -N ""
     
    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_* 4个文件copy到目标板的 /usr/local/etc/目录下
     (5) 添加用户:
    将主机上 /etc/目下的 passwd, shadow, group 三个文件copy到目标板的 /etc目录下, 同时记得将passwd的最后 /bin/bash 该为 /bin/sh 
      其实可以删除不需要的一些用户。
      这一步也可以这样,在目标板的passwd中添加sshd用户:
      sshd:x:110:65534::/var/run/sshd:/usr/sbin/nologin
      在shadow中也添加对应的项就行了:
      sshd:!:14069:0:99999:7:::
     
3.2测试
     目标板启动sshd:  # /usr/sbin/sshd
     主机: $  ssh -v root@192.168.0.34

ps: 红色的那些代表让arm做ssh server时必须的
------------------------------------------------
下边进行免密码登录设置:
cp(主机) root/.ssh/id_dsa.pub 到 (开发板)/.ssh/authorized_keys


---------------------------------------------------
如何让板子开机以后自动启动sshd服务:

添加:/etc/rc.d/init.d/sshd

#!/bin/sh                                                                       
                                                                                
base=sshd                                                                       
                                                                                
# See how we were called.                                                       
case "$1" in                                                                    
  start)                                                                        
                /sbin/$base                                                     
        ;;                                                                      
  stop)                                                                         
        pid=`/bin/pidof $base`                                                  
        if [ -n "$pid" ]; then                                                  
                kill -9 $pid                                                    
        fi                                                                      
        ;;                                                                      
esac                  

在更改/etc/init.d/rcS,添加:

mkdir -p /var/empty/sshd
/etc/rc.d/init.d/sshd start

然后重启机器,一切OK!


Android上使用时passwd文件中写/system/bin/sh,系统时间要同步

andorid也可以使用dropbear http://baike.baidu.com/view/8021331.htm