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