From 653bf01809f6ea46154dbe4a1f3f8171f2a81e96 Mon Sep 17 00:00:00 2001 From: Jonathan Bauer Date: Tue, 11 Jun 2013 18:48:58 +0200 Subject: [kernel] fix firmware not being copied, because of wrong paths --- helper/kernel.inc | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/helper/kernel.inc b/helper/kernel.inc index 6901c4b4..70294357 100644 --- a/helper/kernel.inc +++ b/helper/kernel.inc @@ -114,14 +114,31 @@ copy_firmware() { local FIRMWARE_LIST="" for FIRMWARE in ${REQUIRED_FIRMWARE}; do local FOUND=0 + # check for firmware in the build directory of the kernel for CANDIDATE in "${FIRMWARE_DIR}/${FIRMWARE}" "${FIRMWARE_DIR}/${KERNEL_NEW_VERSION}/${FIRMWARE}"; do if [ -e "${CANDIDATE}" ]; then - pdebug "Copying '${CANDIDATE}'" + pdebug "Copying from kernel build dir: '${CANDIDATE}'" FIRMWARE_LIST+=" ${CANDIDATE}" FOUND=1 fi done + # if we didn't found it in the kernel build directory, check for firmware in the system firmware directory + if [ $FOUND -ne 1 ]; then + for CANDIDATE in "/${FIRMWARE_DIR}/${FIRMWARE}" "/${FIRMWARE_DIR}/${KERNEL_VERSION}/${FIRMWARE}"; do + if [ -e "${CANDIDATE}" ]; then + if [ $(echo "${CANDIDATE}" | grep -c "${KERNEL_VERSION}") -eq 0 ]; then + pdebug "Copying from system: '${CANDIDATE}'" + FIRMWARE_LIST+=" ${CANDIDATE}" + else + pdebug "Copying from system: '${CANDIDATE}' to ${FIRMWARE_DIR}/${KERNEL_NEW_VERSION}/${FIRMWARE}" + FIRMWARE_LIST+=" /${FIRMWARE_DIR}/${KERNEL_VERSION}/${FIRMWARE}" + fi + FOUND=1 + fi + done + fi + [ $FOUND -ne 1 ] && pwarning "Neither '${FIRMWARE_DIR}/${FIRMWARE}' nor '${FIRMWARE_DIR}/${KERNEL_NEW_VERSION}/${FIRMWARE}' "\ " was found on the system. Skipping. (might cause problems on certain clients!)" done @@ -131,6 +148,13 @@ copy_firmware() { pinfo "Copying $COUNT firmware to target directory." tarcopy "${FIRMWARE_LIST}" "${TARGET_BUILD_DIR}" fi + + # post-process to fix the path of the firmwares found on the system unter /lib/firmware/$(uname -r) + # which have to be copied to /lib/firmware/${KERNEL_NEW_VERSION} + mkdir -p "${TARGET_BUILD_DIR}/lib/firmware/${KERNEL_NEW_VERSION}/" + mv "${TARGET_BUILD_DIR}/lib/firmware/${KERNEL_VERSION}/"* "${TARGET_BUILD_DIR}/lib/firmware/${KERNEL_NEW_VERSION}/" + rmdir "${TARGET_BUILD_DIR}/lib/firmware/${KERNEL_VERSION}/" || perror "something went very wrong..." + cd - >/dev/null } -- cgit v1.2.3-55-g7522 From b8280ebbaa54b602d66bbfff83b13cf577f15428 Mon Sep 17 00:00:00 2001 From: Jonathan Bauer Date: Wed, 12 Jun 2013 13:43:44 +0200 Subject: [fileutil.inc] generic install_package function, to be used in scripts. Installs a package using the platform's packet manager --- helper/fileutil.inc | 39 +++++++++++++++++++-------------------- 1 file changed, 19 insertions(+), 20 deletions(-) diff --git a/helper/fileutil.inc b/helper/fileutil.inc index fb1c8382..d4965b5b 100644 --- a/helper/fileutil.inc +++ b/helper/fileutil.inc @@ -9,20 +9,7 @@ else perror "Could not determine this platform's packet manager" fi -# install given packet through system's packet manager -install_package() { - [ $# -eq 0 ] && perror "Sanity check failed: no argument given to install_package" - local PACKAGE_LIST="$@" - for PACKAGE in $PACKAGE_LIST; do - if [ "x$PACKET_MANAGER" == "xapt" ]; then - apt-get install -y $PACKAGE - elif [ "x$PACKET_MANAGER" == "xzypper" ]; then - zypper --no-refresh install -y $PACKAGE - fi - # TODO finish... - done -} - +# # copy list of files using tar tarcopy () { if [ $# -gt 0 -a "x$1" == "x-i" ]; then @@ -85,14 +72,26 @@ list_packet_files() { # goes through all package as given in the variable REQUIRED_INSTALLED_PACKAGES install_dependencies() { [ -z "$REQUIRED_INSTALLED_PACKAGES" ] && return - if [ "$PACKET_MANAGER" = "apt" ]; then - # install package, only if not already installed, TODO fix me - #dpkg -l $(echo $(echo "$REQUIRED_INSTALLED_PACKAGES")) &> /dev/null && return - apt-get install -y $REQUIRED_INSTALLED_PACKAGES || perror "Could not apt-get install $REQUIRED_INSTALLED_PACKAGES" - elif [ "$PACKET_MANAGER" = "zypper" ]; then - zypper --no-refresh install -y -n $REQUIRED_INSTALLED_PACKAGES || perror "Could not zypper install $REQUIRED_INSTALLED_PACKAGES" + install_packages "$REQUIRED_INSTALLED_PACKAGES" +} +# +# install given packet through system's packet manager +# uses PACKET_MANAGER as determined in helper/system.inc +# +install_packages() { + [ $# -eq 0 ] && perror "Sanity check failed: no argument given to install_package" + pdebug "ARGS: $@" + local PACKAGE_LIST="$@" + if [ "x$PACKET_MANAGER" == "xapt" ]; then + apt-get install -y ${PACKAGE_LIST} + local IRET="$?" + [ "x$IRET" != "x0" ] && pwarning "install_package: apt-get failed with '$IRET' for package '$PACKAGE_LIST'" + elif [ "x$PACKET_MANAGER" == "xzypper" ]; then + local IRET=$(zypper --no-refresh --non-interactive install ${PACKAGE_LIST}) + [ "x$IRET" != "x0" ] && pwarning "install_package: zypper failed with '$IRET' for package '$PACKAGE_LIST'" fi } + # # copies static data files from /data/ to # -- cgit v1.2.3-55-g7522 From 7ac42fd03f95feee3942e9a54aad64d3e66f904f Mon Sep 17 00:00:00 2001 From: Jonathan Bauer Date: Wed, 12 Jun 2013 13:46:38 +0200 Subject: [fileutil.inc] minor fix --- helper/fileutil.inc | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/helper/fileutil.inc b/helper/fileutil.inc index d4965b5b..9a3c5aff 100644 --- a/helper/fileutil.inc +++ b/helper/fileutil.inc @@ -83,12 +83,13 @@ install_packages() { pdebug "ARGS: $@" local PACKAGE_LIST="$@" if [ "x$PACKET_MANAGER" == "xapt" ]; then - apt-get install -y ${PACKAGE_LIST} - local IRET="$?" - [ "x$IRET" != "x0" ] && pwarning "install_package: apt-get failed with '$IRET' for package '$PACKAGE_LIST'" + apt-get install -y ${PACKAGE_LIST} || \ + pwarning "install_package: apt-get failed with '$IRET' for package '$PACKAGE_LIST'" elif [ "x$PACKET_MANAGER" == "xzypper" ]; then - local IRET=$(zypper --no-refresh --non-interactive install ${PACKAGE_LIST}) - [ "x$IRET" != "x0" ] && pwarning "install_package: zypper failed with '$IRET' for package '$PACKAGE_LIST'" + zypper --no-refresh --non-interactive install ${PACKAGE_LIST} || \ + pwarning "install_package: zypper failed with '$IRET' for package '$PACKAGE_LIST'" + else + pinfo "No packet manager determined, this should not happen!" fi } -- cgit v1.2.3-55-g7522 From f54a24f46fb06cac186cd4c6223ddbefedab9e12 Mon Sep 17 00:00:00 2001 From: Jonathan Bauer Date: Wed, 12 Jun 2013 13:49:49 +0200 Subject: [setup_target] fix installing git, locale and depmod for opensuse --- remote/setup_target | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/remote/setup_target b/remote/setup_target index 286daf3a..51532f87 100755 --- a/remote/setup_target +++ b/remote/setup_target @@ -7,18 +7,14 @@ MODULES_DIR="${MODE_DIR}/modules" PROCESSED_MODULES="" initial_checks () { - # check for required tools - for BIN in git locate depmod - do + for BIN in git locate depmod; do local TEST=$(which ${BIN}) - [ -z "$TEST" ] && pinfo "Installing $BIN..." && apt-get install $BIN + [ -z "$TEST" ] && install_packages "${BIN}" done - } read_config () { - # unset previous variables from other config files for VARNAME in ${!REQUIRED_*}; do unset $VARNAME -- cgit v1.2.3-55-g7522 From 6945ba7452ad178a713b2a941abfce19eadb2e6e Mon Sep 17 00:00:00 2001 From: Jonathan Bauer Date: Wed, 12 Jun 2013 14:02:51 +0200 Subject: [mltk] update list of essential dev-tools, removed it from setup_target --- mltk | 2 +- remote/setup_target | 6 +----- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/mltk b/mltk index 590c1254..e07ddc20 100755 --- a/mltk +++ b/mltk @@ -22,7 +22,7 @@ MLTK_PID="$$" # Checking for needed development tools, compilers etc. # Required: m4 make gcc g++ binutils -DEVTOOLS="gcc c++ g++ make m4 strip" # 'strip' as marker for binutils +DEVTOOLS="gcc c++ g++ make m4 strip git locate depmod" # 'strip' as marker for binutils for i in $DEVTOOLS; do which "$i" 2>/dev/null 1>&2 || { echo "Essential development tool $i not found - exiting."; exit 1; } done diff --git a/remote/setup_target b/remote/setup_target index 51532f87..46c1d978 100755 --- a/remote/setup_target +++ b/remote/setup_target @@ -7,11 +7,7 @@ MODULES_DIR="${MODE_DIR}/modules" PROCESSED_MODULES="" initial_checks () { - # check for required tools - for BIN in git locate depmod; do - local TEST=$(which ${BIN}) - [ -z "$TEST" ] && install_packages "${BIN}" - done + : } read_config () { -- cgit v1.2.3-55-g7522