diff --git a/seqs/raspberry.sh b/seqs/raspberry.sh index 97cfdff..35c4fb8 100755 --- a/seqs/raspberry.sh +++ b/seqs/raspberry.sh @@ -9,11 +9,25 @@ WDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >>/dev/null 2>&1 && pwd )" #CONFIG_FILE="$WDIR/${toolName}.cfg" #CONFIG_FILE_DEFAULT="${CONFIG_FILE}.example" -#step_config() { -# echo "Called once before executing steps." -# echo "e.g. to source a config file:" -# #. "$CONFIG_FILE" -#} +osName= +distName= + +step_config() { + if [ "$(which lsb_release)" == "" ] ; then + echoerr " [W] Cannot detect OS. Assuming Ubuntu" + osName="Ubuntu" + else + osName=$(lsb_release -is) + distName=$(lsb_release -cs) + fi + + if [ "$osName" == "" ] ; then + echoerr " [W] Error dedecting OS. Assuming Ubuntu" + osName="Ubuntu" + fi + + echo " [I] Detected OS: $osName $distName" +} SDDEV= SDBOOT= @@ -81,15 +95,14 @@ step_2() { exe read -p " Press enter to contiue." } -step_3_info() { echo "TODO Prepare SD for first run [SD CARD DEVICE]"; } +step_3_info() { echo "Prepare SD for first run [SD CARD DEVICE]"; } step_3() { - echoerr " [E] Not ready yet...TODO" - #return 1 - if [ -z $2 ] && [ ! -z $SDDEV ] ; then if [ $QUIET -ne 0 ] ; then answer="n" else + exe lsblk -p "$SDDEV" + echo exe read -p "Is $SDDEV still the SD card (y/[n])? " answer fi @@ -101,35 +114,44 @@ step_3() { SDDEV="" ;; esac - fi + fi - read_sd_dev "$2" - if [ $? -ne 0 ] ; then - echoerr " [E] SD card device not found" - return 1 - fi + read_sd_dev "$2" + endReturn -o $? "SD card device not found" - if [ ! -w "$SDBOOT" ] ; then - echoerr " [E] SD card boot partion not writeable" - return 1 - fi + if [ ! -w "$SDBOOT" ] ; then + echoerr " [E] SD card boot partion not writeable" + return 1 + fi # enable systemd ssh service + echo " [I] Enable SSH access" exe touch "$SDBOOT"/ssh # save SD boot settings for easy emergency start from SD + echo " [I] Save SD card boot information for later use" exe cp -ar "$SDBOOT"/cmdline.txt "$SDBOOT"/cmdline.txt.sd exe cp -ar "$SDROOT"/etc/fstab "$SDROOT"/etc/fstab.sd } -step_4_info() { echo "TODO Prepare SD for HD boot [SD CARD DEVICE] [HD DEVICE]"; } +step_4_info() { + local sd="[SD CARD DEVICE]" + local hd="[HD DEVICE]" + if [ ! -z $2 ] ; then + sd="SD: \"$2\"" + fi + if [ ! -z $3 ] ; then + hd="HD: \"$3\"" + fi + echo "TODO Prepare $sd to boot from $hd" +} step_4_alias() { ALIAS="hdboot"; } step_4() { #TODO echoerr " [E] Not ready yet...TODO" #return 1 read_sd_dev "$2" - endReturn -o $? "SD detection error" + endReturn -o $? "SD detection error $?" echo " [I] SD: $SDDEV" echo " $SDBOOT" echo " $SDROOT" @@ -208,6 +230,7 @@ ledOffCmd="sudo sh -c 'echo 0 > ${ledPowerBright}'" read_sd_dev() { + local partExt="" if [ ! -z "$1" ] ; then SDBOOT= SDROOT= @@ -229,15 +252,19 @@ read_sd_dev() { SDDEV= return 1 fi + + if [ "$osName" == "Raspbian" ] ; then + partExt="p" + fi if [ -z $SDBOOT ] ; then - SDBOOT=$(findmnt -no TARGET "${SDDEV}p1") + SDBOOT=$(findmnt -no TARGET "${SDDEV}${partExt}1") fi if [ -z $SDROOT ] ; then - SDROOT=$(findmnt -no TARGET "${SDDEV}p2") + SDROOT=$(findmnt -no TARGET "${SDDEV}${partExt}2") fi if [ -z $SDROOTPUUID ] ; then - SDROOTPUUID=$(findmnt -no PARTUUID "${SDDEV}p2") + SDROOTPUUID=$(findmnt -no PARTUUID "${SDDEV}${partExt}2") fi }