• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#!/bin/echo Try "mkroot/mkroot.sh dropbear"
2
3# Example overlay file, adding dropbear (which requires zlib)
4
5echo === download source
6
7download f535367b1a11e2f9ac3bec723fb007fbc0d189e5 \
8  https://www.zlib.net/fossils/zlib-1.3.1.tar.gz
9
10download 216ae176572dc008e128042eae82b6aacfdc8a51 \
11  https://matt.ucc.asn.au/dropbear/releases/dropbear-2024.86.tar.bz2
12
13echo === Native build static zlib
14
15setupfor zlib
16# They keep checking in broken generated files.
17rm -f Makefile zconf.h &&
18CC=${CROSS_COMPILE}cc LD=${CROSS_COMPILE}ld AS=${CROSS_COMPILE}as ./configure &&
19make -j $(nproc) || exit 1
20
21# do _not_ cleanup zlib, we need the files we just built for dropbear
22
23echo === $HOST Native build static dropbear
24
25setupfor dropbear
26# Repeat after me: "autoconf is useless"
27echo 'echo "$@"' > config.sub &&
28ZLIB="$(echo ../zlib*)" &&
29CC="$CROSS_COMPILE"cc CFLAGS="-I $ZLIB -O2" LDFLAGS="-L $ZLIB" ./configure --enable-static \
30  --disable-wtmp --host="$(basename "$CROSS_COMPILE" | sed 's/-$//')" &&
31sed -i 's@/usr/bin/dbclient@ssh@;s@\(#define NON_INETD_MODE\) 1@\1 0@' \
32  src/default_options.h &&
33make -j $(nproc) PROGRAMS="dropbear dbclient dropbearkey dropbearconvert scp" MULTI=1 SCPPROGRESS=1 &&
34${CROSS_COMPILE}strip dropbearmulti &&
35mkdir -p "$ROOT"/{bin,etc/{rc,dropbear},var/log} &&
36touch "$ROOT"/var/log/lastlog &&
37cp dropbearmulti "$ROOT"/bin || exit 1
38for i in "$ROOT"/bin/{ssh,dropbear,scp,dropbearkey}
39do
40  ln -s dropbearmulti $i || exit 1
41done
42# We didn't cleanup zlib
43unset ZLIB
44rm -rf ../zlib-*
45# cleanup dropbear
46cleanup
47
48# user root password root, user guest no password
49echo -e 'root:$1$939UTPzb$/PfVYAsF2Hqi/AQ3UBjbK/:::::::\nguest::::::::' > "$ROOT"/etc/shadow &&
50chmod 600 "$ROOT"/etc/shadow &&
51
52echo 'netcat -p 22 -L dropbear -iRB &' > "$ROOT"/etc/rc/dropbear &&
53
54# file to run on host to ssh into guest
55echo 'ssh -o "UserKnownHostsFile=/dev/null" -o "StrictHostKeyChecking=no" ${1:+$1@}127.0.0.1 -p 2222' > "$OUTPUT"/ssh2dropbear.sh &&
56chmod +x "$OUTPUT"/ssh2dropbear.sh
57
58# Forward 127.0.0.1:2222 into qemu instance
59QEMU_MORE+=" -nic user,hostfwd=tcp:127.0.0.1:2222-:22"
60