Fixed dropbear bundle
This commit is contained in:
parent
159efbb767
commit
c671c639de
@ -2,10 +2,7 @@
|
||||
|
||||
SRC_DIR=$(pwd)
|
||||
|
||||
# Find the main source directory
|
||||
cd ../../..
|
||||
MAIN_SRC_DIR=$(pwd)
|
||||
cd $SRC_DIR
|
||||
. ../../common.sh
|
||||
|
||||
# Grab everything after the '=' character.
|
||||
DOWNLOAD_URL=$(grep -i DROPBEAR_SOURCE_URL $MAIN_SRC_DIR/.config | cut -f2 -d'=')
|
||||
@ -33,12 +30,12 @@ fi
|
||||
|
||||
# Delete folder with previously extracted Dropbear.
|
||||
echo "Removing Dropbear work area. This may take a while..."
|
||||
rm -rf ../../work/overlay/dropbear
|
||||
mkdir ../../work/overlay/dropbear
|
||||
rm -rf $WORK_DIR/overlay/dropbear
|
||||
mkdir $WORK_DIR/overlay/dropbear
|
||||
|
||||
# Extract Dropbear to folder 'work/overlay/dropbear'.
|
||||
# Full path will be something like 'work/overlay/dropbear/dropbear-2016.73'.
|
||||
tar -xvf $ARCHIVE_FILE -C ../../work/overlay/dropbear
|
||||
tar -xvf $ARCHIVE_FILE -C $WORK_DIR/overlay/dropbear
|
||||
|
||||
cd $SRC_DIR
|
||||
|
||||
|
@ -2,107 +2,91 @@
|
||||
|
||||
SRC_DIR=$(pwd)
|
||||
|
||||
# Find the main source directory
|
||||
cd ../../..
|
||||
MAIN_SRC_DIR=$(pwd)
|
||||
cd $SRC_DIR
|
||||
. ../../common.sh
|
||||
|
||||
# Read the 'JOB_FACTOR' property from '.config'
|
||||
JOB_FACTOR="$(grep -i ^JOB_FACTOR $MAIN_SRC_DIR/.config | cut -f2 -d'=')"
|
||||
cd $WORK_DIR/overlay/dropbear
|
||||
|
||||
# Read the 'CFLAGS' property from '.config'
|
||||
CFLAGS="$(grep -i ^CFLAGS $MAIN_SRC_DIR/.config | cut -f2 -d'=')"
|
||||
|
||||
# Find the number of available CPU cores.
|
||||
NUM_CORES=$(grep ^processor /proc/cpuinfo | wc -l)
|
||||
|
||||
# Calculate the number of 'make' jobs to be used later.
|
||||
NUM_JOBS=$((NUM_CORES * JOB_FACTOR))
|
||||
|
||||
if [ ! -d $MAIN_SRC_DIR/work/glibc/glibc_prepared ] ; then
|
||||
echo "Cannot continue - Dropbear SSH depends on GLIBC. Please buld GLIBC first."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
cd $MAIN_SRC_DIR/work/overlay/dropbear
|
||||
DESTDIR="$PWD/dropbear_installed"
|
||||
|
||||
# Change to the Dropbear source directory which ls finds, e.g. 'dropbear-2016.73'.
|
||||
cd $(ls -d dropbear-*)
|
||||
|
||||
echo "Preparing Dropbear work area. This may take a while..."
|
||||
make clean -j $NUM_JOBS 2>/dev/null
|
||||
|
||||
rm -rf ../dropbear_installed
|
||||
make -j $NUM_JOBS clean
|
||||
rm -rf $DESTDIR
|
||||
|
||||
echo "Configuring Dropbear..."
|
||||
./configure \
|
||||
--prefix=$MAIN_SRC_DIR/work/overlay/dropbear/dropbear_installed \
|
||||
--disable-zlib \
|
||||
--prefix=/usr \
|
||||
--disable-loginfunc \
|
||||
CFLAGS="$CFLAGS"
|
||||
CC="$CC" \
|
||||
CFLAGS="$CFLAGS" \
|
||||
LDFLAGS="$LDFLAGS"
|
||||
|
||||
echo "Building Dropbear..."
|
||||
make -j $NUM_JOBS
|
||||
|
||||
echo "Installing Dropbear..."
|
||||
make install -j $NUM_JOBS
|
||||
make -j $NUM_JOBS install DESTDIR="$DESTDIR"
|
||||
|
||||
mkdir -p ../dropbear_installed/lib
|
||||
mkdir -p $DESTDIR/lib
|
||||
|
||||
# Copy all dependent GLIBC libraries.
|
||||
cp $MAIN_SRC_DIR/work/glibc/glibc_prepared/lib/libnsl.so.1 ../dropbear_installed/lib
|
||||
cp $MAIN_SRC_DIR/work/glibc/glibc_prepared/lib/libnss_compat.so.2 ../dropbear_installed/lib
|
||||
cp $MAIN_SRC_DIR/work/glibc/glibc_prepared/lib/libutil.so.1 ../dropbear_installed/lib
|
||||
cp $MAIN_SRC_DIR/work/glibc/glibc_prepared/lib/libcrypt.so.1 ../dropbear_installed/lib
|
||||
cp $SYSROOT/lib/libnsl.so.1 $DESTDIR/lib
|
||||
cp $SYSROOT/lib/libnss_compat.so.2 $DESTDIR/lib
|
||||
cp $SYSROOT/lib/libutil.so.1 $DESTDIR/lib
|
||||
cp $SYSROOT/lib/libcrypt.so.1 $DESTDIR/lib
|
||||
|
||||
mkdir -p ../dropbear_installed/etc/dropbear
|
||||
mkdir -p $DESTDIR/etc/dropbear
|
||||
|
||||
# Create Dropbear SSH configuration BEGIN
|
||||
|
||||
# Create RSA key.
|
||||
../dropbear_installed/bin/dropbearkey \
|
||||
$DESTDIR/usr/bin/dropbearkey \
|
||||
-t rsa \
|
||||
-f ../dropbear_installed/etc/dropbear/dropbear_rsa_host_key
|
||||
-f $DESTDIR/etc/dropbear/dropbear_rsa_host_key
|
||||
|
||||
# Create DSS key.
|
||||
../dropbear_installed/bin/dropbearkey \
|
||||
$DESTDIR/usr/bin/dropbearkey \
|
||||
-t dss \
|
||||
-f ../dropbear_installed/etc/dropbear/dropbear_dss_host_key
|
||||
-f $DESTDIR/etc/dropbear/dropbear_dss_host_key
|
||||
|
||||
# Create ECDSA key.
|
||||
../dropbear_installed/bin/dropbearkey \
|
||||
$DESTDIR/usr/bin/dropbearkey \
|
||||
-t ecdsa \
|
||||
-f ../dropbear_installed/etc/dropbear/dropbear_ecdsa_host_key
|
||||
-f $DESTDIR/etc/dropbear/dropbear_ecdsa_host_key
|
||||
|
||||
# Create user/group configuration files.
|
||||
touch ../dropbear_installed/etc/passwd
|
||||
touch ../dropbear_installed/etc/group
|
||||
touch $DESTDIR/etc/passwd
|
||||
touch $DESTDIR/etc/group
|
||||
|
||||
# Add group 0 for root.
|
||||
echo "root:x:0:" \
|
||||
> ../dropbear_installed/etc/group
|
||||
> $DESTDIR/etc/group
|
||||
|
||||
# Add user root with password 'toor'.
|
||||
echo "root:AprZpdBUhZXss:0:0:Minimal Root,,,:/root:/bin/sh" \
|
||||
> ../dropbear_installed/etc/passwd
|
||||
> $DESTDIR/etc/passwd
|
||||
|
||||
# Create home folder for root user.
|
||||
mkdir -p ../dropbear_installed/root
|
||||
mkdir -p $DESTDIR/root
|
||||
|
||||
# Create Dropbear SSH configuration END
|
||||
|
||||
echo "Reducing Dropbear size..."
|
||||
strip -g \
|
||||
../dropbear_installed/bin/* \
|
||||
../dropbear_installed/sbin/* \
|
||||
../dropbear_installed/lib/*
|
||||
$DESTDIR/usr/bin/* \
|
||||
$DESTDIR/usr/sbin/* \
|
||||
$DESTDIR/usr/lib/* \
|
||||
$DESTDIR/lib/*
|
||||
|
||||
cp -r \
|
||||
../dropbear_installed/etc \
|
||||
../dropbear_installed/bin \
|
||||
../dropbear_installed/sbin \
|
||||
../dropbear_installed/lib \
|
||||
$MAIN_SRC_DIR/work/src/minimal_overlay/rootfs
|
||||
$DESTDIR/etc \
|
||||
$DESTDIR/usr/bin \
|
||||
$DESTDIR/usr/sbin \
|
||||
$DESTDIR/usr/lib \
|
||||
$DESTDIR/lib \
|
||||
$WORK_DIR/src/minimal_overlay/rootfs
|
||||
|
||||
echo "Dropbear has been installed."
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user