1 Star 0 Fork 0

Edison Leung/scripts

Create your Gitee Account
Explore and code with more than 12 million developers,Free private repositories !:)
Sign up
This repository doesn't specify license. Please pay attention to the specific project description and its upstream code dependency when using it.
Clone or Download
lemedia-update 10.39 KB
Copy Edit Raw Blame History
hcdth011 authored 2014-12-01 16:29 . add lemedia-update
#!/bin/bash
#
# Copyright (C) 2014 LeMaker Community <support@lemaker.org>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#--------------------------------------------------------------------------------------------------
TEMP_LEMEDIA_DIR=/tmp/lemedia.tmp
LATEST_LEMEDIA_VERSION=1.1 #initial value
CURRENT_LEMEDIA_VERSION=1.0 #initial value
#--------------------------------------------------------------------------------------------------
Get_LeMedia_Version()
{
if [ -d /allwinner/bpi-settings/version/ ];then
if [ "`ls -A /allwinner/bpi-settings/version/`" = "" ];then
CURRENT_LEMEDIA_VERSION=1.0
else
CURRENT_LEMEDIA_VERSION=`ls /allwinner/bpi-settings/version/ | sed 's/+//g'`
fi
else
CURRENT_LEMEDIA_VERSION=1.0
fi
LATEST_LEMEDIA_VERSION=`ls $TEMP_LEMEDIA_DIR/allwinner/bpi-settings/version/ | sed 's/+//g'`
echo -e "CURRENT_LEMEDIA_VERSION= $CURRENT_LEMEDIA_VERSION"
echo -e "LATEST_LEMEDIA_VERSION= $LATEST_LEMEDIA_VERSION"
}
LeVerCompare()
{
CURRENT_VERSION=`echo $1 | cut -d. -f1`
UPGRADE_VERSION=`echo $2 | cut -d. -f1`
CURRENT_PATCHLEVEL=`echo $1 | cut -d. -f2`
UPGRADE_PATCHLEVEL=`echo $2 | cut -d. -f2`
if [ "$UPGRADE_VERSION" -gt "$CURRENT_VERSION" ];then
return 0
elif [ "$UPGRADE_VERSION" -eq "$CURRENT_VERSION" ];then
if [ "$UPGRADE_PATCHLEVEL" -gt "$CURRENT_PATCHLEVEL" ];then
return 0
elif [ "$UPGRADE_PATCHLEVEL" -eq "$CURRENT_PATCHLEVEL" ];then
return 1
else
return -1
fi
else
return -1
fi
}
action()
{
echo -e $1 && $1
if [ $? -ne 0 ];then
echo -e $2
exit -1
fi
}
#Return value 0:upgrade success 1: don't upgrade -1:upgrade failure
upgradeLeMedia()
{
if [ -d $TEMP_LEMEDIA_DIR ];then
rm -rf $TEMP_LEMEDIA_DIR
fi
echo -e "\033[32mCreate dirctory $TEMP_LEMEDIA_DIR ...\033[0m"
mkdir -p $TEMP_LEMEDIA_DIR
type wget > /dev/null 2>&1
if [ 0 -ne $? ];then
echo -e "\033[31mwget command not found, will install the wget package now...\033[0m"
#exit -1
apt-get install wget
sleep 1
fi
echo -e "\033[32mDownload the LeMedia upgarde packet, Please wait ...\033[0m"
echo -e "-----------------------------------------------------------"
wget -c --no-check-certificate -t 3 https://raw.githubusercontent.com/LeMaker/firmware/master/lemedia-latest.tgz -O $TEMP_LEMEDIA_DIR/lemedia-latest.tgz
wget -c --no-check-certificate -t 3 https://raw.githubusercontent.com/LeMaker/firmware/master/lemedia-latest.tgz.asc -O $TEMP_LEMEDIA_DIR/lemedia-latest.tgz.asc
echo -e "-----------------------------------------------------------"
echo -e "\033[32mVerifying signature... \033[0m\n"
echo -e "-----------------------------------------------------------"
gpg --verify $TEMP_LEMEDIA_DIR/lemedia-latest.tgz.asc
if [ $? -ne 0 ]; then
echo -e "\n\033[31minvalid signature. exiting!\033[0m"
rm -rf $TEMP_LEMEDIA_DIR
exit -1
else
echo -e "\n\033[32msignature okay.\033[0m\n"
fi
echo -e "-----------------------------------------------------------"
tar xvzf $TEMP_LEMEDIA_DIR/lemedia-latest.tgz -C $TEMP_LEMEDIA_DIR #Decompressing file
if [ $? -ne 0 ];then
echo -e "\033[31Failed to decompress $$TEMP_LEMEDIA_DIR/lemedia-latest.tgz\033[0m"
exit -1
fi
#--------------------------------------------------------------
Get_LeMedia_Version
LeVerCompare $CURRENT_LEMEDIA_VERSION $LATEST_LEMEDIA_VERSION
case $? in
'0')
clear
echo -e "\033[32mUpdate the LeMedia ...\033[0m"
#---------------------------------------------------------------------------------------------
cd ~
umount /mnt
sleep 1
action "mount /dev/mmcblk0p1 /mnt" "\033[31mFailed to mount the /dev/mmcblk0p1\033[0m"
echo -e "\033[32m 1.Update the file uEnv.txt and script.bin ...\033[0m"
action "rm -rf /mnt/uEnv.txt script.bin" "\033[31mFailed to remove the file uEnv.txt and script.bin\033[0m"
action "cp -f $TEMP_LEMEDIA_DIR/uEnv.txt /mnt/uEnv.txt" "\033[31mFailed to copy the uEnv.txt\033[0m"
action "cp -f $TEMP_LEMEDIA_DIR/script.bin /mnt/script.bin" "\033[31mFailed to copy the script.bin\033[0m"
action "sync" "\033[31mFailed to sync\033[0m"
action "umount /mnt" "\033[31mFailed to umount /mnt\033[0m"
sleep 1
#---------------------------------------------------------------------------------------------
echo -e "\033[32m 2.Update the /root/.profile ...\033[0m"
action "cp -f $TEMP_LEMEDIA_DIR/root/profile /root/.profile" "\033[31mFailed to copy the .profile\033[0m"
#---------------------------------------------------------------------------------------------
echo -e "\033[32m 3.Update the /etc/modules ...\033[0m"
action "cp -rf $TEMP_LEMEDIA_DIR/etc/modules /etc/modules" "\033[31mFailed to copy the file modules\033[0m"
#---------------------------------------------------------------------------------------------
echo -e "\033[32m 4.Update the audio output device setting ...\033[0m"
action "cp -rf $TEMP_LEMEDIA_DIR/allwinner/bpi-settings /allwinner/" "\033[31mFailed to copy bpi-settings\033[0m"
action "cp -rf $TEMP_LEMEDIA_DIR/usr/bin/* /usr/bin/" "\033[31mFailed to copy bin files\033[0m"
chmod +x /usr/bin/xbmc-audio-hdmi
chmod +x /usr/bin/xbmc-audio-jack
apt-get install alsa alsa-base alsa-utils
#---------------------------------------------------------------------------------------------
echo -e "\033[32m 5.Update the wireless network ...\033[0m"
echo -e "-----------------------------------------------------------"
echo -e "\033[32m now,will install firmware-linux-free...\033[0m"
apt-get install firmware-linux-free
echo -e "-----------------------------------------------------------"
echo -e "\033[32m now,will install dhcpcd...\033[0m"
apt-get install dhcpcd
echo -e "\033[32m now,will install wireless-tools...\033[0m"
apt-get install wireless-tools
echo -e "\033[32m Decompressing the packages for installing wpa_supplicant...\033[0m"
tar xvzf $TEMP_LEMEDIA_DIR/wpa.tgz -C $TEMP_LEMEDIA_DIR #Decompressing file
if [ $? -ne 0 ];then
echo -e "\033[31Failed to decompress $$TEMP_LEMEDIA_DIR/wpa.tgz\033[0m"
exit -1
fi
echo -e "-----------------------------------------------------------"
echo -e "\033[32m Make and install libnl...\033[0m"
chmod +x $TEMP_LEMEDIA_DIR/wpa/libnl-1.1/configure
cd $TEMP_LEMEDIA_DIR/wpa/libnl-1.1/
./configure
cd ~
make -C $TEMP_LEMEDIA_DIR/wpa/libnl-1.1/
if [ 0 -ne $? ];then
echo -e "\033[31libnl make failed,please check the log...\033[0m"
exit -1
fi
make install -C $TEMP_LEMEDIA_DIR/wpa/libnl-1.1/
echo -e "-----------------------------------------------------------"
echo -e "\033[32m Make and install openssl...\033[0m"
make -C $TEMP_LEMEDIA_DIR/wpa/openssl-1.0.1c/
if [ 0 -ne $? ];then
echo -e "\033[31openssl make failed,please check the log...\033[0m"
exit -1
fi
make install -C $TEMP_LEMEDIA_DIR/wpa/openssl-1.0.1c/
echo -e "-----------------------------------------------------------"
echo -e "\033[32m Make and install wpa_supplicant...\033[0m"
make -C $TEMP_LEMEDIA_DIR/wpa/wpa_supplicant-2.3/wpa_supplicant/
if [ 0 -ne $? ];then
echo -e "\033[31wpa_supplicant make failed,please check the log...\033[0m"
exit -1
fi
make install -C $TEMP_LEMEDIA_DIR/wpa/wpa_supplicant-2.3/wpa_supplicant/
echo -e "Now, configure the wpa..."
action "cp -rf $TEMP_LEMEDIA_DIR/etc/wpa_supplicant/ /etc/" "\033[31mFailed to copy the file wpa_supplicant.conf\033[0m"
action "cp -f $TEMP_LEMEDIA_DIR/etc/network/interfaces /etc/network/" "\033[31mFailed to copy the file interfaces\033[0m"
action "rm -rf /etc/udev/rules.d/70-persistant-net.rules" "\033[31mFailed to remove the file 70-persistant-net.rules\033[0m"
echo -e "\033[31m----------------------------------------------------------->>>>>>\033[0m"
echo -e "\033[31m*******LeMedia is updated to version $LATEST_LEMEDIA_VERSION , Please check and enjoy it:):) ********\033[0m"
echo -e "\033[31m<<<<<<<-----------------------------------------------------------\033[0m"
rm -rf $TEMP_LEMEDIA_DIR
exit 0
;;
'1')
echo -e "\033[32mThe LeMedia is the latest, don't need to upgrade\033[0m"
rm -rf $TEMP_LEMEDIA_DIR
exit 1
;;
*)
echo -e "\033[31mThe LeMedia upgrade error and $LATEST_LEMEDIA_VERSION < $CURRENT_LEMEDIA_VERSION\033[0m"
rm -rf $TEMP_LEMEDIA_DIR
exit -1
esac
#;;
}
#----------------------------Start Run------------------------------
# Clear screen
clear
sleep 1
echo -e "\033[36mWelcome to upgrade the LeMedia for BananaPi/BananaPro ... \033[0m"
# Detect user
TEMP_USER=`whoami`
if ! [ "$TEMP_USER" = "root" ];then
echo -e "\033[31mPlease use the root account \033[0m"
exit -1
fi
# Make sure the BananaPi/Pro links to the network.
echo -e "\033[31mPlease make sure the BananaPi/Pro links to the network!!! \033[0m"
#update the system date
echo -e "-----------------------------------------------------------"
echo -e "\033[32m Update the system date ...\033[0m"
ntpdate ntp1.nl.net
if [ 0 -ne $? ];then
echo -e "\033[31 ntpdate failed ,there may be some issues due to the wrong time!!!!\033[0m"
sleep 2
fi
echo -e "-----------------------------------------------------------"
# Create a default GnuPG config
type gpg > /dev/null 2>&1
if [ 0 -ne $? ];then
echo -e "\033[31mgpg command not found, will install the gnupg package now...\033[0m"
#exit -1
apt-get install gnupg
sleep 3
fi
if ! [ -f /root/.gnupg/gpg.conf ];then
echo -e "\033[32mCreate a default GnuPG config...\033[0m"
gpg -k
fi
# Receiving/updating public key
echo -e "-----------------------------------------------------------"
echo -e "\033[32mReceiving/updating public key ...\033[0m"
gpg --recv-keys 077E8FE9
echo -e "-----------------------------------------------------------"
upgradeLeMedia
# The script end.
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/edison_leung/scripts.git
git@gitee.com:edison_leung/scripts.git
edison_leung
scripts
scripts
master

Search