Index: scripts/run.sh =================================================================== diff -u -r265ce7409a0ea99a4ae059f5ce7978c9cdb10631 -r025abd59dd1582ac0a7ad7af79358929042ea4bc --- scripts/run.sh (.../run.sh) (revision 265ce7409a0ea99a4ae059f5ce7978c9cdb10631) +++ scripts/run.sh (.../run.sh) (revision 025abd59dd1582ac0a7ad7af79358929042ea4bc) @@ -12,210 +12,185 @@ # @date (last) 28-Sep-2022 # @author (original) Behrouz NematiPour # @date (original) 28-Oct-2019 -# +# @date 09-Dec-2022 ############################################################################ -function currDate() -{ - echo $(date +"%d%m%Y%H%M%S") -} +echo "HOME : $HOME " > /home/root/post.debug +HOME="$1" +source ./globals.sh +COUT="/dev/$(echo $(dmesg | grep "printk: console") | sed 's/.*printk: console.*\(tty.*\)].*/\1/')" +echo "COMMENT_DASH: $COMMENT_DASH " >> /home/root/post.debug +echo "HOME : $HOME " >> /home/root/post.debug +echo "COUT : $COUT " >> /home/root/post.debug +echo "POSTLOG : $POSTLOG " >> /home/root/post.debug - -#DO NOT MODIFY VARIABLES -#unless the denali applicaiton is updated as well to match. -HOME=/home/root - -SDCARD_DEV=/dev/mmcblk1p1 -SDCARD_MNT=/media/sd-card -SDCARD_TYP=ext4 -USB_DEV=/dev/sda1 -USB_MNT=/media/usb -CLOUDSYNC_FOLDER=cloudsync # both for log and application - -POSTLOG=$HOME/post.log -POSTERR=$HOME/post.err -POSTOUT=$HOME/post.out -POSTMSG_POSTFIX_PASSED=" passed" -POSTMSG_POSTFIX_FAILED=" failed" -POSTMSG_CANBUS="CANBus" -POSTMSG_SDCARD="SD-CARD" -POSTMSG_TOUCH="Touch" -POSTMSG_RTC="RTC" -POSTMSG_WIFI="WiFi" -POSTMSG_BLUETOOTH="Bluetooth" -POSTMSG_SHASUM="App shasum" -POSTMSG_CLOUDSYNC="CloudSync" -POSTMSG_CLOUDSYNC_RUNNING="CloudSync app IS running" - # cleanup the POST log file -echo "Start: $(currDate)" > $POSTLOG -echo "" > $POSTERR -echo "" > $POSTOUT +post_log_clear +post_err_clear +post_out_clear +post_log_star " ***** " +post_log "Start: $(timestamp)" # log the current date, time #create folders for sd-card and usb if not exist mkdir -p $SDCARD_MNT mkdir -p $USB_MNT # ---------------------------------------- STOP denali in case running (sys not rebooted) -killall denali +killall $DENALI_BIN -# ---------------------------------------- UPDATE -#mounting usb -mount $USB_DEV $USB_MNT -USBTEST="$(mount | grep "$USB_MNT")" -if ! [ -z "$USBTEST" ]; then - echo ":: USB drive found and mounted on $USB_MNT" - #A simple none secure update - if [ -e $USB_MNT/denali ]; then - mv $HOME/denali $HOME/denali.$(currDate) - cp $USB_MNT/denali $HOME/denali - # check if update where successful - if [ $? -eq 0 ]; then - sync;sync;sync; - echo ":: Denali application has been updated with the one on the USB drive" - mv $USB_MNT/denali $USB_MNT/denali.updated - sync;sync;sync; - fi - fi -fi - -# ---------------------------------------- SETUP & POST -#Here only passed is logged and if nothing added to the post.log means it failed. - - #setting up can interface ----------------- CANBus +post_log_dash " CANBus " #current settings can be retrieved by the command below #$ ip -details -statistics link show can0 ip link set can0 up type can bitrate 250000 restart-ms 100 ifconfig can0 txqueuelen 4000 candump can0 -T1 # check if candump can successfully use the port. will terminate in 1ms if [ $? -eq 0 ]; then - echo $POSTMSG_CANBUS$POSTMSG_POSTFIX_PASSED >> $POSTLOG + post_log_pass "$POSTMSG_CANBUS$POSTMSG_POSTFIX_PASSED" + post_log "$(ip link show can0)" # -details -statistics else - echo $POSTMSG_CANBUS$POSTMSG_POSTFIX_FAILED >> $POSTLOG + post_log_fail "$POSTMSG_CANBUS$POSTMSG_POSTFIX_FAILED" fi #mounting sdcard -------------------------- SD-CARD -mount $SDCARD_DEV $SDCARD_MNT -SDCTEST="$(mount | grep "$SDCARD_DEV on $SDCARD_MNT type $SDCARD_TYP (rw,")" +post_log_dash " SD-CARD " +mount $SDCARD_PRT $SDCARD_MNT +SDCTEST="$(mount | grep "$SDCARD_PRT on $SDCARD_MNT type $SDCARD_TYP_NAME (rw,")" if ! [ -z "$SDCTEST" ]; then SDINFO="$(df -h | grep -i $SDCARD_MNT)" - echo $POSTMSG_SDCARD$POSTMSG_POSTFIX_PASSED >> $POSTLOG - echo $SDCTEST >> $POSTLOG - echo $SDINFO >> $POSTLOG + post_log_pass "$POSTMSG_SDCARD$POSTMSG_POSTFIX_PASSED" + post_log "$SDCTEST" + post_log "$SDINFO" else - echo $POSTMSG_SDCARD$POSTMSG_POSTFIX_FAILED >> $POSTLOG + post_log_fail "$POSTMSG_SDCARD$POSTMSG_POSTFIX_FAILED" fi #test the touch screen -------------------- Touch -#if loaded successful it has a long description with "Touch" keyword, 'T' capital. -#if fails has a one line error with "touch" keyword, 't' non-capital. -#if there is other issues can even be empty. -TSTEST="$(dmesg | grep Touch)" -if [ $? -eq 0 ]; then - echo $POSTMSG_TOUCH$POSTMSG_POSTFIX_PASSED >> $POSTLOG +post_log_dash " Touch " +# when successfully connected and can be loaded +# Sitronix touch driver 2.10.2 Release date: 20180809 +# atmel_mxt_ts 3-004a: Direct firmware load for maxtouch.cfg failed with error -2 +# atmel_mxt_ts 3-004a: Touchscreen size X1279Y799 +# input: Atmel maXTouch Touchscreen as /devices/platform/soc@0/soc@0:bus@30800000/30a50000.i2c/i2c-3/3-004a/input/input2 +# When NOT connected +# Sitronix touch driver 2.10.2 Release date: 20180809 +TSTEST="$(dmesg | grep "input: Atmel maXTouch Touchscreen as ")" +if [ "$?" -eq 0 ]; then + post_log_pass "$POSTMSG_TOUCH$POSTMSG_POSTFIX_PASSED" + post_log "$TSTEST" else - echo $POSTMSG_TOUCH$POSTMSG_POSTFIX_FAILED >> $POSTLOG + post_log_fail "$POSTMSG_TOUCH$POSTMSG_POSTFIX_FAILED" fi #test the RTC ----------------------------- RTC +post_log_dash " RTC" #may not be an accurate test but sufficient for now #and could not find a way to get the rtc clock with the higher resolusion #it should not be confused with date command which is system date/time and not hwclock hwclock -r # if there is any issue with rtc hwclock will show errors if [ $? -eq 0 ]; then - RTC1=$(cat /sys/class/rtc/rtc0/since_epoch) + RTC1=$($CMD_RTC_EPOCH) sleep 1 - RTC2=$(cat /sys/class/rtc/rtc0/since_epoch) + RTC2=$($CMD_RTC_EPOCH) if [ $(($RTC2 - $RTC1)) -eq 1 ]; then - echo $POSTMSG_RTC$POSTMSG_POSTFIX_PASSED >> $POSTLOG + post_log_pass "$POSTMSG_RTC$POSTMSG_POSTFIX_PASSED" else - echo $POSTMSG_RTC$POSTMSG_POSTFIX_FAILED >> $POSTLOG + post_log_fail "$POSTMSG_RTC$POSTMSG_POSTFIX_FAILED" fi fi -# ---------------------------------------- Connections -# stop the connection manager daemon -killall connmand - - -# ---------------------------------------- Bluetooth +# ----------------------------------------- Bluetooth +post_log_dash " Bluetooth " /usr/share/silex-uart/silex-uart.sh start 1>> $POSTOUT 2>> $POSTERR sleep 5 hciconfig hci0 up if [ $? -eq 0 ]; then - echo $POSTMSG_BLUETOOTH$POSTMSG_POSTFIX_PASSED >> $POSTLOG + post_log_pass "$POSTMSG_BLUETOOTH$POSTMSG_POSTFIX_PASSED" + post_log "$(hciconfig hci0)" else - echo $POSTMSG_BLUETOOTH$POSTMSG_POSTFIX_FAILED >> $POSTLOG + post_log_fail "$POSTMSG_BLUETOOTH$POSTMSG_POSTFIX_FAILED" fi -# ---------------------------------------- WiFi +# ----------------------------------------- WiFi +post_log_dash " WiFi " killall wpa_supplicant 1>> $POSTOUT 2>> $POSTERR if [[ ! -z $(dmesg | grep "wlan: driver loaded") ]]; then - echo $POSTMSG_WIFI$POSTMSG_POSTFIX_PASSED >> $POSTLOG + post_log_pass "$POSTMSG_WIFI$POSTMSG_POSTFIX_PASSED" + post_log "$(dmesg | grep -i wlan:)" + post_log "$(ip link show wlan0)" # -details -statistics else - echo $POSTMSG_WIFI$POSTMSG_POSTFIX_FAILED >> $POSTLOG + post_log_fail "$POSTMSG_WIFI$POSTMSG_POSTFIX_FAILED" fi -# ---------------------------------------- Sha256Sum +# ----------------------------------------- Sha256Sum +post_log_dash " Sha256Sum " #check the denali applicatoin checksum -SHA_ACT=$(tail -c 83 $HOME/denali | cut -c19-82) -SHA_EXP=$(head -c -83 $HOME/denali | sha256sum -b --tag | cut -c14-77) +SHA_ACT=$(tail -c 83 $HOME/$DENALI_BIN | cut -c19-82) +SHA_EXP=$(head -c -83 $HOME/$DENALI_BIN | sha256sum -b --tag | cut -c14-77) if [ "$SHA_ACT" == "$SHA_EXP" ]; then - echo $POSTMSG_SHASUM$POSTMSG_POSTFIX_PASSED >> $POSTLOG + post_log_pass "$POSTMSG_SHASUM$POSTMSG_POSTFIX_PASSED" else - echo $POSTMSG_SHASUM$POSTMSG_POSTFIX_FAILED >> $POSTLOG + post_log_fail "$POSTMSG_SHASUM$POSTMSG_POSTFIX_FAILED" fi -# ---------------------------------------- CloudSync -if [ -d $CLOUDSYNC_FOLDER ]; then +# ----------------------------------------- CloudSync +post_log_dash " CloudSync " +if [ -d $HOME/$CLOUDSYNC_FOLDER ]; then # moving/ backing up the previous treatment logs so the new buff starts with fresh sequence echo "Backing up CloudSync I/O buff" CLOUDSYNC_PATH="$SDCARD_MNT"/"$CLOUDSYNC_FOLDER" - CLOUDSYNC_BACKUP="$CLOUDSYNC_PATH"_backup/$(currDate)/ + CLOUDSYNC_BACKUP="$CLOUDSYNC_PATH"_backup/$(timestamp)/ mkdir -p $CLOUDSYNC_BACKUP - mv $CLOUDSYNC_PATH/* $CLOUDSYNC_BACKUP - rm $HOME/$CLOUDSYNC_FOLDER/data/* - echo "Starting CloudSync" >> $POSTLOG + mv $CLOUDSYNC_PATH/* $CLOUDSYNC_BACKUP 1>> $POSTOUT 2>> $POSTERR + rm $HOME/$CLOUDSYNC_FOLDER/data/* 1>> $POSTOUT 2>> $POSTERR cd $HOME/$CLOUDSYNC_FOLDER/ python3 ./cs.py start & sleep 2 CLOUDSYNC_STATUS="$(python3 ./cs.py status)" - if $CLOUDSYNC_STATUS == $POSTMSG_CLOUDSYNC_RUNNING; then - echo $POSTMSG_CLOUDSYNC$POSTMSG_POSTFIX_PASSED >> $POSTLOG + if [ "$CLOUDSYNC_STATUS" == "$POSTMSG_CLOUDSYNC_RUNNING" ]; then + post_log_pass "$POSTMSG_CLOUDSYNC$POSTMSG_POSTFIX_PASSED" else - echo $POSTMSG_CLOUDSYNC$POSTMSG_POSTFIX_FAILED >> $POSTLOG + post_log_fail "$POSTMSG_CLOUDSYNC$POSTMSG_POSTFIX_FAILED" fi + post_log "$CLOUDSYNC_STATUS" cd else - echo $POSTMSG_CLOUDSYNC$POSTMSG_POSTFIX_FAILED >> $POSTLOG + post_log_fail "$POSTMSG_CLOUDSYNC$POSTMSG_POSTFIX_FAILED" fi -# ---------------------------------------- Denali +# ----------------------------------------- Denali +post_log_dash " Denali " #launching denali application -$HOME/denali -u -C & # -C to disable cloudsync for now sync it blocks the system and no cloudsync has been installed. +DENALI_VERSION="$($HOME/$DENALI_BIN -v)" +if [ -n "$DENALI_VERSION" ]; then + post_log_pass "$($HOME/$DENALI_BIN -v)" # log UI Software version + $HOME/$DENALI_BIN -u -C & # -C to disable cloudsync for now sync it blocks the system and no cloudsync has been installed. +else + post_log_fail "Unknown Applicaion Version" +fi -# ---------------------------------------- END +# ----------------------------------------- END # tag the end time in the POST log file -echo "End: $(date +"%d%m%Y%H%M%S")" >> $POSTLOG +post_log "End: $(timestamp)" +post_log_star " ***** " - -# ---------------------------------------- Ethernet +# ----------------------------------------- Ethernet # setup ethernet # note: At this time the application is running and also the ehternet connection is not necessary # so the sleep here is not hurtung any part of the applicaion progress. sleep 10 udhcpc eth0 & +exit 0