HIP:TS-7000:dropbear

From Earlham Cluster Department

Revision as of 15:03, 26 June 2007 by Madunnh (Talk | contribs)
Jump to: navigation, search

Contents

about

This page describes how to compile dropbear to run in Technologic System's TS-Linux for ARM distribution. Debian was used for development and cross compiling. The TS-7260's root file system uses the RedBoot NFS option.

compiling

crosstool setup

download and setup ts crosstool package

ftp://ftp.embeddedarm.com/ts-arm-linux-cd/cross-toolchains/crosstool-linux-gcc-4.0.1-glibc-2.3.5.tar.bz2

move it to / and unpack it

$ cd /
$ sudo tar -xf crosstool-linux-gcc-4.0.1-glibc-2.3.5.tar

add it to your path

$ cat ~/.bash_profile | grep cross
PATH=/opt/crosstool/gcc-4.0.1- glibc-2.3.5/arm-unknown-linux-gnu/bin:${PATH}

dropbear

download dropbear

$ wget http://matt.ucc.asn.au/dropbear/releases/dropbear-0.49.tar.bz2
$ cd dropbear-0.49/

configure/make

Warning: Reading the random source seems to have blocked.
If you experience problems, you probably need to find a better entropy source. 
#define DROPBEAR_RANDOM_DEV "/dev/urandom"
$ cat run.sh 
export CFLAGS="-Os -static -Wall"
export LDFLAGS="-static"
./configure --host=arm-unknown-linux-gnu --build=arm --disable-zlib --disable-syslog --disable-lastlog
make clean
make PROGRAMS="dropbear dbclient dropbearkey dropbearconvert scp" MULTI=1 STATIC=1

move files

$ ln -s dropbearmulti ssh
$ mv dropbear ssh scp dropbearmulti dropbearkey dropbearconvert ../tslinux/usr/sbin/
$ mv dbclient ../tslinux/usr/bin

booting

disable ssh for inetd

$ cat etc/inetd.conf | grep ssh
#ssh    stream  tcp     nowait  root    /usr/sbin/dropbear      dropbear -i
$ kill -HUP <pid of inetd>

create init.d script

$ cat etc/init.d/dropbear  
OPTIONS="> /dev/null 2>&1"

case "$1" in
    start)
       echo "Starting dropbear..."
       /usr/sbin/dropbear $OPTIONS
    ;;
    stop)
        echo "Stopping dropbear..."
        pid=`pidof dropbear`
        if [ "$pid" != "" ]; then
           kill $pid
        fi 
    ;;                     
    restart)
        $0 stop 
        $0 start
    ;;
    *)
       echo "usage: start|stop|restart"
    ;;
esac

create rc link

$ cd etc/rc.d/rc3.d/
$ ln -s ../../init.d/dropbear S99dropbear

fix dropbear errors by recreating links

ssh to ts-board and make create a bash script like this one:

#!/bin/sh
# Remove All /usr/sbin
rm -rf /usr/sbin/scp
rm -rf /usr/sbin/ssh
rm -rf /usr/sbin/dbclient
rm -rf /usr/sbin/dropbear
rm -rf /usr/sbin/dropbearkey
rm -rf /usr/sbin/dropbearconvert
# Remove All /usr/bin
rm -rf /usr/bin/scp
rm -rf /usr/bin/ssh
rm -rf /usr/bin/dbclient
rm -rf /usr/bin/dropbear
rm -rf /usr/bin/dropbearkey
rm -rf /usr/bin/dropbearconvert
# Link All /usr/sbin
ln -s /usr/sbin/dropbearmulti /usr/sbin/scp
ln -s /usr/sbin/dropbearmulti /usr/sbin/ssh
ln -s /usr/sbin/dropbearmulti /usr/sbin/dbclient
ln -s /usr/sbin/dropbearmulti /usr/sbin/dropbear
ln -s /usr/sbin/dropbearmulti /usr/sbin/dropbearkey
ln -s /usr/sbin/dropbearmulti /usr/sbin/dropbearconvert
# Link All /usr/bin
ln -s /usr/sbin/dropbearmulti /usr/bin/scp
ln -s /usr/sbin/dropbearmulti /usr/bin/ssh
ln -s /usr/sbin/dropbearmulti /usr/bin/dbclient
ln -s /usr/sbin/dropbearmulti /usr/bin/dropbear
ln -s /usr/sbin/dropbearmulti /usr/bin/dropbearkey
ln -s /usr/sbin/dropbearmulti /usr/bin/dropbearconvert

links

Personal tools
Namespaces
Variants
Actions
websites
wiki
this semester
Toolbox