build/scripts/firstrun

95 lines
2.8 KiB
Text
Raw Normal View History

2014-10-08 07:39:24 +02:00
#! /bin/sh
### BEGIN INIT INFO
# Provides: firstrun
# Required-Start: $remote_fs
# Required-Stop:
# Should-Start:
# Default-Start: S
# Default-Stop:
# Short-Description: Script to run when first starting
# Description: Something needs to be done when is
# starting at first time.
#
# 1. regenerate ssh host key
### END INIT INFO
N=/etc/init.d/firstrun
MEMTOTAL=$(awk 'BEGIN { printf "%.0f\n", '$(grep MemTotal /proc/meminfo | awk '{print $2}')'/1024/1024 }')
set -e
do_expand_rootfs(){
device="/dev/mmcblk0"
(echo d; echo n; echo p; echo 1; echo ; echo; echo w;) | fdisk $device
return 0
}
case "$1" in
start)
reboot=false
#
sed -e 's/#fbi/fbi/g' -i /etc/init.d/bootsplash
#
# if we have 1G ram reduce RAMLOG size
if [ "$MEMTOTAL" = 1 ]; then
sed -e 's/TMPFS_RAMFS_SIZE=512m/TMPFS_RAMFS_SIZE=256m/g' -i /etc/default/ramlog
# for cubieboard disable some services
if [ -f "/boot/cubieboard2.bin" ]; then
/sbin/insserv -r brcm40183-patch
/sbin/insserv -r disable_led.sh
fi
fi
#
#
#
echo "First run. This process takes around 2 minutes to finish..." >> /dev/tty0
echo "Creating ssh keys..." >> /dev/tty0
NEWMAC=00:01:43:`openssl rand -hex 3 | sed 's/\(..\)/\1:/g; s/.$//'`
sed -e 's/ether/ether '$NEWMAC'/g' -i /etc/network/interfaces.default
sed -e 's/ether/ether '$NEWMAC'/g' -i /etc/network/interfaces.hostapd
# Cubietruck exception
# if HDMI is attached during boot, set default screen output to HDMI
2014-10-08 10:55:08 +02:00
if [ -n "$(dmesg | grep ParseEDID)" ] && [ -f "/boot/cubietruck.bin" ]; then
2014-10-08 07:39:24 +02:00
bin2fex /boot/cubietruck.bin /tmp/tmp.fex
sed -e 's/screen0_output_type.*/screen0_output_type = 3/g' -i /tmp/tmp.fex
fex2bin /tmp/tmp.fex /boot/cubietruck.bin
fi
rm -f /etc/ssh/ssh_host*
dpkg-reconfigure openssh-server >> /dev/tty0
set +e
#echo "Creating local sources list..." >> /dev/tty0
#netselect-apt -s -n -o /etc/apt/sources.list >/dev/null 2>&1
if [ "$(fping 8.8.8.8 | grep alive)" != "" ]; then
echo "Downloading packages list..." >> /dev/tty0
apt-get update >/dev/null 2>&1
#echo "Updating all packages..." >> /dev/tty0
#apt-get -y upgrade >/dev/null 2>&1
#apt-get -y clean >/dev/null 2>&1
fi
echo "Expanding rootfs..." >> /dev/tty0
if do_expand_rootfs;then
echo "Expanding rootfs success, rebooting automatically." >> /dev/tty0
/sbin/insserv resize2fs
reboot=true
else
echo "Expanding rootfs has failed, see log files." >> /dev/tty0
fi
set -e
update-rc.d bootsplash defaults
/sbin/insserv -r firstrun
if $reboot;then
/sbin/reboot
fi
;;
*)
echo "Usage: $N {start}" >&2
exit 1
;;
esac
exit 0