Skip to content
Switch branches/tags
Go to file
Cannot retrieve contributors at this time
executable file 59 lines (46 sloc) 2.06 KB
#!/bin/echo Try "scripts/ dropbear"
# Example overlay file, adding dropbear (which requires zlib)
echo === download source
download e6d119755acdf9104d7ba236b1242696940ed6dd \
download 9719ea91b5ce8d93ee9a50b5c3a5bcd628736181 \
echo === Native build static zlib
setupfor zlib
# They keep checking in broken generated files.
rm -f Makefile zconf.h &&
make -j $(nproc) || exit 1
# do _not_ cleanup zlib, we need the files we just built for dropbear
echo === $HOST Native build static dropbear
setupfor dropbear
# Repeat after me: "autoconf is useless"
echo 'echo "$@"' > config.sub &&
ZLIB="$(echo ../zlib*)" &&
CC="$CROSS_COMPILE"cc CFLAGS="-I $ZLIB -O2" LDFLAGS="-L $ZLIB" ./configure --enable-static \
--disable-wtmp --host="$(basename "$CROSS_COMPILE" | sed 's/-$//')" &&
sed -i 's@/usr/bin/dbclient@ssh@' options.h &&
sed -i 's@\(#define NON_INETD_MODE\) 1@\1 0@' default_options.h &&
make -j $(nproc) PROGRAMS="dropbear dbclient dropbearkey dropbearconvert scp" MULTI=1 SCPPROGRESS=1 &&
${CROSS_COMPILE}strip dropbearmulti &&
mkdir -p "$ROOT"/{bin,etc/{rc,dropbear},var/log} &&
touch "$ROOT"/var/log/lastlog &&
cp dropbearmulti "$ROOT"/bin || exit 1
for i in "$ROOT"/bin/{ssh,dropbear,scp,dropbearkey}
ln -s dropbearmulti $i || exit 1
# We didn't cleanup zlib
unset ZLIB
rm -rf ../zlib-*
# cleanup dropbear
# user root password root, user guest no password
echo -e 'root:$1$939UTPzb$/PfVYAsF2Hqi/AQ3UBjbK/:::::::\nguest::::::::' > "$ROOT"/etc/shadow &&
chmod 600 "$ROOT"/etc/shadow &&
echo 'netcat -p 22 -L dropbear -iRB &' > "$ROOT"/etc/rc/dropbear &&
# file to run on host to ssh into guest
echo 'ssh -o "UserKnownHostsFile=/dev/null" -o "StrictHostKeyChecking=no" ${1:+$1@} -p 2222' > "$OUTPUT"/ &&
chmod +x "$OUTPUT"/
# Forward into qemu instance
QEMU_MORE="-nic user,hostfwd=tcp:"