M7350v1_en_gpl

This commit is contained in:
T
2024-09-09 08:52:07 +00:00
commit f9cc65cfda
65988 changed files with 26357421 additions and 0 deletions

View File

@ -0,0 +1,209 @@
#!/bin/bash
# Yocto ADT Installer
#
# Copyright 2010-2011 by Intel Corp.
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
parse_config()
{
INST_ARCH=`uname -m`
case $INST_ARCH in
i[3-6]86)
OPKG_CONFIG_FILE=$YOCTOADT_OPKG_CONF_FILE_32
OECORE_NATIVE_SYSROOT="$INSTALL_FOLDER/sysroots/$INST_ARCH$SDK_VENDOR-linux/"
;;
x86_64)
OPKG_CONFIG_FILE=$YOCTOADT_OPKG_CONF_FILE_64
OECORE_NATIVE_SYSROOT="$INSTALL_FOLDER/sysroots/x86_64$SDK_VENDOR-linux/"
;;
*)
echo_info "[ADT_INST] Error: Installation Machine is not supported!"
exit -1
;;
esac
}
#let us install a qemu-native firstly
#installation step 2
install_native_sdk()
{
echo_info "\nStart installing selected native ADT for archs: $YOCTOADT_TARGETS..."
# where the packages are installed. Currently only / is supported
NATIVE_INSTALL_DIR="/"
if [ -d "$INSTALL_FOLDER" ]; then
echo_info "\nNative ADT installation directory \"$INSTALL_FOLDER\" already exists! Continue installation will override its contents!"
confirm_install $1
fi
#Now begin to install native sdk and extract qemu rootfs which needs privilege rights
echo_info "#######################################################################"
echo_info "Please note from this point on installation requires sudo password ..."
echo_info "#######################################################################"
username='id -nu'
#we need to make this directory firstly since opkg need to use it.
OPKG_LOCK_DIR="$NATIVE_INSTALL_DIR/$OPKG_LIBDIR/opkg"
if [ ! -d "$OPKG_LOCK_DIR" ]; then
sudo mkdir -p $OPKG_LOCK_DIR
echo_info "Successfully create directory $OPKG_LOCK_DIR. "
#if user delete /opt/xxx, while dangling folders there, report error
elif [ ! -d "$INSTALL_FOLDER" ]; then
echo_info "\nDangling opkg cache folder $OPKG_LOCK_DIR detected. Continue installation will remove the folder!"
confirm_install $1
sudo rm -rf $OPKG_LOCK_DIR
sudo mkdir -p $OPKG_LOCK_DIR
#if user are updating installing, just let him/her go, give her/him prompt
else
echo_info "ADT has already been installed. Will update its contents..."
fi
#first update repository
OPKG_CMD="sudo -E $LOCAL_OPKG_LOC/bin/opkg-cl"
echo_info "Updating opkg..."
$OPKG_CMD -f $OPKG_CONFIG_FILE -o $NATIVE_INSTALL_DIR update &>> $YOCTOADT_INSTALL_LOG_FILE
echo_info "opkg update process ended..."
check_result
#install below must sdk-host packages
OPKG_INSTALL_CMD="$OPKG_CMD "
OPKG_INSTALL_NATIVE_CMD="$OPKG_INSTALL_CMD -f $OPKG_CONFIG_FILE -o $NATIVE_INSTALL_DIR install"
BASE_HOSTSDK_PKGNAMES="pseudo opkg pkgconfig libtool autoconf automake"
for pkg in $BASE_HOSTSDK_PKGNAMES; do
echo_info "Installing ${pkg} nativesdk ...\n"
$OPKG_INSTALL_NATIVE_CMD ${pkg}-nativesdk &>> $YOCTOADT_INSTALL_LOG_FILE
check_result
done
for native_target_type in $YOCTOADT_TARGETS; do
native_target_type=`echo "$native_target_type" | sed -e 's/x86_64/x86-64/' -e 's/ppc/powerpc/' -e 's/x86$/i586/'`
echo_info "Installing cross toolchain for $native_target_type ..."
echo_info "Installing binutils for $native_target_type ..."
$OPKG_INSTALL_NATIVE_CMD binutils-cross-canadian-$native_target_type &>> $YOCTOADT_INSTALL_LOG_FILE
check_result
echo_info "Installing gcc for $native_target_type ..."
$OPKG_INSTALL_NATIVE_CMD gcc-cross-canadian-$native_target_type &>> $YOCTOADT_INSTALL_LOG_FILE
check_result
echo_info "Installing gdb for $native_target_type ..."
$OPKG_INSTALL_NATIVE_CMD gdb-cross-canadian-$native_target_type &>> $YOCTOADT_INSTALL_LOG_FILE
check_result
echo_info "Installing envrionement file for $native_target_type ..."
$OPKG_INSTALL_NATIVE_CMD meta-environment-$native_target_type &>> $YOCTOADT_INSTALL_LOG_FILE
check_result
done
# Link the ld.so.cache file into the hosts filesystem
if [ ! -f "$OECORE_NATIVE_SYSROOT/etc/ld.so.cache" ]; then
echo_info "Link the ld.so.cache file into the host filesystem"
sudo ln -s /etc/ld.so.cache $OECORE_NATIVE_SYSROOT/etc/ld.so.cache
check_result
fi
if [ "$YOCTOADT_QEMU" == "Y" ] || [ "$YOCTOADT_QEMU" = "y" ]; then
echo_info "\nInstalling qemu native ..."
$OPKG_INSTALL_NATIVE_CMD qemu-nativesdk &>> $YOCTOADT_INSTALL_LOG_FILE
check_result
$OPKG_INSTALL_NATIVE_CMD qemu-helper-nativesdk &>> $YOCTOADT_INSTALL_LOG_FILE
check_result
fi
if [ "$YOCTOADT_NFS_UTIL" == "Y" ] || [ "$YOCTOADT_NFS_UTIL" == "y" ]; then
echo_info "\nInstalling unfs ..."
$OPKG_INSTALL_NATIVE_CMD unfs-server-nativesdk &>> $YOCTOADT_INSTALL_LOG_FILE
check_result
fi
echo_info "\nSuccessfully installed selected native ADT!"
}
#Need three input params, $1 -- arch_type(arm powerpc x86 mips) #2 -- user installation type
#customer or scilent
install_target()
{
# rootfs extraction directory
target_sysroot_var="\$YOCTOADT_TARGET_SYSROOT_LOC_$1"
target_sysroot=`eval echo $target_sysroot_var`
if [ "$target_sysroot" == "" ]; then
return 0
fi
target_sysroot_image_var="\$YOCTOADT_TARGET_SYSROOT_IMAGE_$1"
target_sysroot_image=`eval echo $target_sysroot_image_var`
if [ "$target_sysroot_image" == "" ]; then
echo_info "[ADT_INST] Error: YOCTOADT_TARGET_SYSROOT_IMAGE_$1 selection is empty, failed to create target sysroot!"
return 1
fi
echo_info "Installing target sysroot for arch: $1, rootfs type: $target_sysroot_image, location: $target_sysroot"
qemu_type=`echo "$1" | sed -e 's/x86_64/x86-64/'`
sysroot_image_name="core-image-$target_sysroot_image-qemu$qemu_type.tar.bz2"
#echo_info "Extracting rootfs: $sysroot_image_name, using pseudo..."
scripts/extract_rootfs $sysroot_image_name $target_sysroot $OECORE_NATIVE_SYSROOT $user_inst_type
check_result
echo_info "Updating environment script with target sysroot location."
if [ "$1" == "x86" ]; then
env_filename=`ls $INSTALL_FOLDER/environment-setup-i586*`
else
env_filename=`ls $INSTALL_FOLDER/environment-setup-$1*`
fi
if [ ! -z "$env_filename" ]; then
sudo sed -i -e "s%##SDKTARGETSYSROOT##%$target_sysroot%g" $env_filename
else
echo_info "[ADT_INST] Error: Failed to find environment script for arch: $1"
return 1
fi
}
#Main part
. scripts/data_define
. scripts/util
parse_config
#secondly we will start to install native tools
user_inst_type=$1
install_native_sdk $user_inst_type
check_result
for arch_type in $YOCTOADT_SUPPORTED_TARGETS; do
install_target $arch_type
check_result
done

View File

@ -0,0 +1,39 @@
#!/bin/bash
# Yocto ADT Installer
#
# Copyright 2010-2011 by Intel Corp.
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
config_file="adt_installer.conf"
source `pwd`/$config_file
LOCAL_OPKG_LOC="./opkg/build/opkg"
LOCAL_OPKG_FOLDER="./opkg/build"
OPKG_LIBDIR="/var/lib"
# List all supported root fs types and target types,
# it will be used in user configuration validity checking
YOCTOADT_SUPPORTED_ROOTFS="minimal minimal-dev sato sato-dev sato-sdk lsb lsb-dev lsb-sdk"
YOCTOADT_SUPPORTED_TARGETS="x86 x86_64 arm ppc mips"
# Different host (32 bit or 64 bit) will have different opkg
# configuration files
YOCTOADT_OPKG_CONF_FILE_32="./opkg/conf/opkg-sdk-i686.conf"
YOCTOADT_OPKG_CONF_FILE_64="./opkg/conf/opkg-sdk-x86_64.conf"

View File

@ -0,0 +1,67 @@
#!/bin/bash
# Yocto ADT Installer
#
# Copyright 2010-2011 by Intel Corp.
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
extract_rootfs()
{
native_sysroot=$3
target_sysroot=$2
PSEUDO_COMMAND="$native_sysroot/usr/bin/pseudo"
PSEUDO_OPTS="-P $natvie_sysroot/usr"
TAR_OPTS="-xjf"
PSEUDO_OPTS="-P $native_sysroot/usr"
rm -rf $PSEUDO_LOCALSTATEDIR
if [ -d "$target_sysroot" ]; then
echo_info "\nTarget sysroot location: $target_sysroot, already exists! If you continue installation, this folder will be re-created."
confirm_install $4
rm -rf "$target_sysroot"
fi
if [ ! -d "$target_sysroot" ]; then
echo_info "Creating directory $target_sysroot..."
mkdir -p "$target_sysroot"
fi
mkdir -p "$target_sysroot/var/pseudo"
touch "$target_sysroot/var/pseudo/pseudo.pid"
PSEUDO_LOCALSTATEDIR="$target_sysroot/var/pseudo"
export PSEUDO_LOCALSTATEDIR
echo_info "Extracting rootfs: $1, using pseudo..."
$PSEUDO_COMMAND $PSEUDO_OPTS tar -C $2 "$TAR_OPTS" $LOCAL_DOWNLOAD/$1 &>> $YOCTOADT_INSTALL_LOG_FILE
check_result
}
#Main part
. scripts/util
#Parameter detail is listed below:
#Param 4: Silent install or customize install
#Param 3: OECORE_NATIVE_SYSROOT
#Param 2: user defined rootfs extraction directory
#param 1: sysroot image name
extract_rootfs $1 $2 $3 $4

View File

@ -0,0 +1,104 @@
#!/bin/bash
# Yocto ADT Installer
#
# Copyright 2010-2011 by Intel Corp.
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
echo_info()
{
echo -e $1 | tee -a $YOCTOADT_INSTALL_LOG_FILE
}
select_install_type()
{
# If choosing silent install, all older installation data will be
# overriden without user's interaction
while true; do
#echo_info "[ADT_INST] Silent install means overrides all existing older"
#echo_info "[ADT_INST] data and the installation needs least user interaction"
#echo_info "[ADT_INST] If you want to use silent installation, please enter S:"
#echo_info "[ADT_INST] If you want to customize installation, please enter C:"
#echo_info "[ADT_INST} If you want to exit current installation, please enter X:"
echo_info "There're two ways you can do installation: silent mode or interactive mode. To choose silent mode, which means you opt for the system to override the existing data under the specified installation directories without prompting for your confirmation. Please be cautious with this selection which may trigger your losing data. With the interactive mode, you have to closely monitor the installation process, since it will prompt you each step it needs to override some existing data. To choose silent mode, please enter [S], for interactive mode, please enter [I] or [X] to exit the installation."
echo_info "[ADT_INST] Please enter your selections here:"
read YOCTOADT_SEL
YOCTOADT_SEL=`tr '[a-z]' '[A-Z]'<<<"$YOCTOADT_SEL"`
if [ "$YOCTOADT_SEL" == "S" ]; then
return "0"
elif [ "$YOCTOADT_SEL" == "I" ]; then
return "1"
elif [ "$YOCTOADT_SEL" == "X" ]; then
echo_info "\n############################################################"
echo_info "# User cancelled installation!"
echo_info "############################################################\n"
exit 1
fi
done
}
confirm_install()
{
# below are prompt, make sure user still want to install even meet
# some prompts
#User likes to enjoy silent installation, we will not break his
#installation process here
if [ "$1" == "0" ]; then
return
fi
while true; do
echo_info "[ADT_INST] Do you want to continue installation? Please enter Y/N:"
read YOCTOADT_INSTALL
YOCTOADT_INSTALL=`tr '[a-z]' '[A-Z]'<<<"$YOCTOADT_INSTALL"`
if [ "$YOCTOADT_INSTALL" == "Y" ]; then
break
elif [ "$YOCTOADT_INSTALL" == "N" ]; then
echo_info "\n############################################################"
echo_info "# User cancelled installation!"
echo_info "############################################################\n"
exit 1
fi
done
}
check_result()
{
result=$?
if [ $result -eq 1 ]; then
exit -1
elif [ $result -ne 0 ]; then
echo_info "\n#############################################################################"
echo_info "# Meet error(s) when installing Yocto ADT! Please check log file for details. "
echo_info "#############################################################################\n"
exit -1
fi
}
# yocto adt installation log file
YOCTOADT_INSTALL_LOG_FILE="adt_installer.log"
# Temp folders holding qemu/rootfs downloaded images
# It will be put into the installation folder
LOCAL_DOWNLOAD="./download_image"