From c40688ec1790ade3c6b96e35b8ee8a3d9242a9d4 Mon Sep 17 00:00:00 2001 From: Michael Neves Date: Wed, 27 Feb 2013 18:24:50 +0100 Subject: firmware and modules to copy from system to stage3.1 --- server/stage31.firmware | 89 +++++++++++++++++++++++++++++++++++++++++++++++++ server/stage31.modules | 49 +++++++++++++++++++++++++++ 2 files changed, 138 insertions(+) create mode 100644 server/stage31.firmware create mode 100644 server/stage31.modules (limited to 'server') diff --git a/server/stage31.firmware b/server/stage31.firmware new file mode 100644 index 00000000..4d53f057 --- /dev/null +++ b/server/stage31.firmware @@ -0,0 +1,89 @@ +./3com/3C359.bin +./3com/typhoon.bin +./e100/d101m_ucode.bin +./e100/d101s_ucode.bin +./e100/d102e_ucode.bin +./matrox/g400_warp.fw +./matrox/g200_warp.fw +./r128/r128_cce.bin +./radeon/SUMO_rlc.bin +./radeon/RS690_cp.bin +./radeon/R600_rlc.bin +./radeon/REDWOOD_pfp.bin +./radeon/JUNIPER_pfp.bin +./radeon/TURKS_mc.bin +./radeon/R520_cp.bin +./radeon/CAICOS_pfp.bin +./radeon/JUNIPER_me.bin +./radeon/RV730_pfp.bin +./radeon/TURKS_me.bin +./radeon/SUMO2_me.bin +./radeon/SUMO_me.bin +./radeon/RV710_me.bin +./radeon/CAYMAN_pfp.bin +./radeon/CAYMAN_rlc.bin +./radeon/CEDAR_pfp.bin +./radeon/RV670_pfp.bin +./radeon/RV630_me.bin +./radeon/R200_cp.bin +./radeon/R100_cp.bin +./radeon/RV710_pfp.bin +./radeon/CAYMAN_mc.bin +./radeon/PALM_me.bin +./radeon/REDWOOD_me.bin +./radeon/R300_cp.bin +./radeon/CAICOS_me.bin +./radeon/CEDAR_rlc.bin +./radeon/BARTS_pfp.bin +./radeon/SUMO_pfp.bin +./radeon/REDWOOD_rlc.bin +./radeon/RV610_me.bin +./radeon/RS600_cp.bin +./radeon/RV620_pfp.bin +./radeon/RV770_me.bin +./radeon/RV770_pfp.bin +./radeon/BARTS_mc.bin +./radeon/RV635_pfp.bin +./radeon/SUMO2_pfp.bin +./radeon/R700_rlc.bin +./radeon/RV630_pfp.bin +./radeon/RV730_me.bin +./radeon/RS780_pfp.bin +./radeon/CAICOS_mc.bin +./radeon/RV620_me.bin +./radeon/R420_cp.bin +./radeon/BARTS_me.bin +./radeon/RS780_me.bin +./radeon/CYPRESS_me.bin +./radeon/RV610_pfp.bin +./radeon/TURKS_pfp.bin +./radeon/CYPRESS_pfp.bin +./radeon/BTC_rlc.bin +./radeon/PALM_pfp.bin +./radeon/CYPRESS_rlc.bin +./radeon/RV635_me.bin +./radeon/CEDAR_me.bin +./radeon/R600_me.bin +./radeon/JUNIPER_rlc.bin +./radeon/R600_pfp.bin +./radeon/RV670_me.bin +./radeon/CAYMAN_me.bin +./RTL8192E/data.img +./RTL8192E/boot.img +./RTL8192E/main.img +./RTL8192SE/rtl8192sfw492.bin +./RTL8192SE/rtl8192sfw.bin +./RTL8192SE/rtl8192sfw74.bin +./rtl_nic/rtl8168e-3.fw +./rtl_nic/rtl8168f-1.fw +./rtl_nic/rtl8105e-1.fw +./rtl_nic/rtl8168f-2.fw +./rtl_nic/rtl8168e-1.fw +./rtl_nic/rtl8411-1.fw +./rtl_nic/rtl8168d-2.fw +./rtl_nic/rtl8402-1.fw +./rtl_nic/rtl8168e-2.fw +./rtl_nic/rtl8168d-1.fw +./tigon/tg3.bin +./tigon/tg3_tso5.bin +./tigon/tg3_tso.bin diff --git a/server/stage31.modules b/server/stage31.modules new file mode 100644 index 00000000..9c7415e1 --- /dev/null +++ b/server/stage31.modules @@ -0,0 +1,49 @@ +./drivers/video/sis/sisfb.ko +./drivers/acpi/video.ko +./drivers/ssb/ssb.ko +./drivers/gpu/drm/ttm/ttm.ko +./drivers/gpu/drm/via/via.ko +./drivers/gpu/drm/drm.ko +./drivers/gpu/drm/tdfx/tdfx.ko +./drivers/gpu/drm/nouveau/nouveau.ko +./drivers/gpu/drm/savage/savage.ko +./drivers/gpu/drm/radeon/radeon.ko +./drivers/gpu/drm/drm_kms_helper.ko +./drivers/gpu/drm/i810/i810.ko +./drivers/gpu/drm/i2c/ch7006.ko +./drivers/gpu/drm/i2c/sil164.ko +./drivers/gpu/drm/sis/sis.ko +./drivers/gpu/drm/mga/mga.ko +./drivers/gpu/drm/i915/i915.ko +./drivers/gpu/drm/r128/r128.ko +./drivers/i2c/algos/i2c-algo-bit.ko +./drivers/net/netconsole.ko +./drivers/net/ethernet/realtek/8139too.ko +./drivers/net/ethernet/realtek/r8169.ko +./drivers/net/ethernet/nvidia/forcedeth.ko +./drivers/net/ethernet/via/via-rhine.ko +./drivers/net/ethernet/amd/pcnet32.ko +./drivers/net/ethernet/atheros/atl1e/atl1e.ko +./drivers/net/ethernet/atheros/atl1c/atl1c.ko +./drivers/net/ethernet/sis/sis900.ko +./drivers/net/ethernet/broadcom/tg3.ko +./drivers/net/ethernet/broadcom/b44.ko +./drivers/net/ethernet/intel/e1000/e1000.ko +./drivers/net/ethernet/intel/e1000e/e1000e.ko +./drivers/net/ethernet/intel/e100.ko +./drivers/net/ethernet/marvell/skge.ko +./drivers/net/ethernet/3com/3c59x.ko +./drivers/net/ethernet/dec/tulip/tulip.ko +./drivers/hid/hid.ko +./drivers/hid/usbhid/usbhid.ko +./drivers/platform/x86/wmi.ko +./drivers/platform/x86/mxm-wmi.ko +./fs/configfs/configfs.ko +./fs/nfs_common/nfs_acl.ko +./fs/nfs/nfs.ko +./fs/fscache/fscache.ko +./fs/lockd/lockd.ko +./net/sunrpc/sunrpc.ko +./net/sunrpc/auth_gss/auth_rpcgss.ko +./net/802/stp.ko +./net/bridge/bridge.ko -- cgit v1.2.3-55-g7522 From 15bbf3bd4c500415490f2b0e879b6bb14a9e62fa Mon Sep 17 00:00:00 2001 From: Michael Neves Date: Wed, 27 Feb 2013 19:12:16 +0100 Subject: copy modules/firmware to stage31, generate separate initramfs for squashfs --- server/build_core | 90 +++++++++++++++++++++++++++++++------------------------ 1 file changed, 51 insertions(+), 39 deletions(-) (limited to 'server') diff --git a/server/build_core b/server/build_core index 6d975984..a0725bec 100755 --- a/server/build_core +++ b/server/build_core @@ -30,28 +30,16 @@ initial_checks() { [ -e ${STAGE32_DIR}/openslx/bin/busybox ] || perror "Busybox not found, run './mltk tools build busybox' first." - # shouldn't squashfs-tools be automatically installed as we need them nevertheless!? - # what if it is already on the machine? faster to check with which than the apt-get check? if [ -z $(which mksquashfs) ] && perror "mksquashfs not found, please install squashfs-tools first." - - #check for kernel modules, if not present copy from system - if [ ! -d ${STAGE32_DIR}/lib/modules ]; - then - pinfo "Couldn't find kernel modules in stage3.2." - pinfo "Copying modules for kernel $(uname -r)..." - mkdir -p "${STAGE32_DIR}/lib/modules" || perror "Cannot create '${STAGE32_DIR}/lib/modules'" - cp -r "/lib/modules/$(uname -r)" "${STAGE32_DIR}/lib/modules/" || perror "Cannot copy kernel modules from '/lib/modules/$(uname -r)' '${STAGE32_DIR}/lib/modules/'" - else - pinfo "Not copying kernel modules from system, as '${STAGE32_DIR}/lib/modules/' already exists." - fi - - # TODO: check for aufs and squaskfs modules } generate_rootfs() { # produce stage3.1 mkdir -p "${STAGE31_DIR}" || perror "Cannot create stage3.1 dir '${STAGE31_DIR}'" + + # produce openslx dir + mkdir -p "${MODULE_DIR}/openslx/mnt" || perror "Cannot create openslx dir '${MODULE_DIR}/openslx/mnt'" # create basic directory structure mkdir -p "${STAGE31_DIR}"/{bin,dev,proc,run,etc,mnt,sys} || perror "Cannot create basic directory structure in '${STAGE31_DIR}'" @@ -63,11 +51,6 @@ generate_rootfs() { # copy busybox, its libs and static data to stage3.1 cp -r "${STAGE32_DIR}/openslx/*" "${STAGE31_STATIC_DIR}/*" "${STAGE31_DIR}" || perror "Copying busybox, its libs and static data failed." - # fix for aufs & squashfs modules needed for stage 3.1 - mkdir -p "${STAGE31_DIR}/lib/modules.0/" || perror "Creating modules.0 dir for aufs & squashfs in stage 3.1 failed." - cp "/lib/modules/$(uname -r)/kernel/fs/squashfs/squashfs.ko" "${STAGE31_DIR}/lib/modules.0/" || perror "Copying squashfs.ko failed." - cp "/lib/modules/$(uname -r)/kernel/ubuntu/aufs/aufs.ko" "${STAGE31_DIR}/lib/modules.0/" || perror "Copying aufs.ko failed." - # fetch the libraries needed for busybox BASICLIBS="" for i in $(ldd "${STAGE31_DIR}/bin/busybox"); @@ -79,42 +62,71 @@ generate_rootfs() { fi done tarcopy "$BASICLIBS" "${STAGE31_DIR}" -} - -generate_squashfs() { - # finalize the initramfs target - [ -e "${STAGE31_DIR}/mnt/openslx.sqfs" ] && rm "${STAGE31_DIR}/mnt/openslx.sqfs" - mksquashfs "${STAGE32_DIR}" "${STAGE31_DIR}/mnt/openslx.sqfs" -comp xz -b 1M -no-recovery || perror "mksquashfs failed ($?)." + #check for kernel modules, if not present copy from system + if [ ! -d ${STAGE31_DIR}/lib/modules ]; + then + pinfo "Couldn't find kernel modules in stage3.1." + pinfo "Copying modules for kernel $(uname -r)..." + mkdir -p "${STAGE31_DIR}/lib/modules/$(uname -r)/kernel" || perror "Cannot create '${STAGE31_DIR}/lib/modules/$(uname -r)/kernel'" + cd /lib/modules/$(uname -r)/kernel || perror "No Directory /lib/modules/$(uname -r)/kernel found." + tarcopy "$(cat stage31.modules)" "${STAGE31_DIR}/lib/modules/$(uname -r)/kernel" + cd - + else + pinfo "Not copying kernel modules from system, as '${STAGE31_DIR}/lib/modules' already exists." + fi + #check for firmware, if not present copy from system + if [ ! -d ${STAGE31_DIR}/lib/firmware ]; + then + pinfo "Couldn't find firmware in stage3.1." + pinfo "Copying firmware for kernel $(uname -r)..." + mkdir -p "${STAGE31_DIR}/lib/firmware/$(uname -r)" || perror "Cannot create '${STAGE31_DIR}/lib/firmware/$(uname -r)'" + cd /lib/firmware || perror "No Directory /lib/firmware found." + tarcopy "$(cat stage31.firmware)" "${STAGE31_DIR}/lib/firmware" + cd - + cd /lib/firmware/$(uname -r) || perror "No Directory /lib/firmware/$(uname -r) found." + tarcopy "$(cat stage31.firmware)" "${STAGE31_DIR}/lib/firmware/$(uname -r)" + cd - + else + pinfo "Not copying firmware from system, as '${STAGE31_DIR}/lib/firmware' already exists." + fi + + #generate initramfs + generate_initramfs "initramfs" "${STAGE31_DIR}" } -generate_initramfs() { - cd "${STAGE31_DIR}" || perror "Cannot cd to '${STAGE31_DIR}'" - find . | cpio --format="newc" --create | gzip -9 > "${MODULE_DIR}/initramfs" - local PS=($PIPESTATUS[*]) - [ "x${PS[0]}" != "x0" ] && perror "'find .' failed." - [ "x${PS[1]}" != "x0" ] && perror "cpio create failed." - [ "x${PS[2]}" != "x0" ] && perror "gzip to '${MODULE_DIR}/initramfs' failed." - cd - - pinfo "initramfs created at ${MODULE_DIR}/initramfs" +generate_squashfs() { + # finalize the initramfs target + [ -e "${MODULE_DIR}/openslx/mnt/openslx.sqfs" ] && rm "${MODULE_DIR}/openslx/mnt/openslx.sqfs" + pinfo "Writing openslx.sqfs to '${MODULE_DIR}/openslx/mnt/'" + mksquashfs "${STAGE32_DIR}" "${MODULE_DIR}/openslx/mnt/openslx.sqfs" -comp xz -b 1M -no-recovery || perror "mksquashfs failed ($?)." + generate_initramfs "initramfs2" "${MODULE_DIR}/openslx" } generate_stage31() { initial_checks generate_rootfs + generate_squashfs - generate_initramfs - # TODO better kernel copy - cp "/boot/vmlinuz-$(uname -r)" "${MODULE_DIR}/kernel" || perror "Cannot copy kernel from '/boot/vmlinuz-$(uname -r)' to '${MODULE_DIR}/kernel'" - pinfo "[core] kernel $(uname -r) copied to ${MODULE_DIR}/kernel" + if [ ! -e ${MODULE_DIR}/kernel ]; then + pinfo "Couldn't find kernel in '${MODULE_DIR}'" + pinfo "Copying Kernel $(uname -r) to ${MODULE_DIR}/kernel" + cp "/boot/vmlinuz-$(uname -r)" "${MODULE_DIR}/kernel" || perror "Cannot copy kernel from '/boot/vmlinuz-$(uname -r)' to '${MODULE_DIR}/kernel'" + fi } clean_core() { pinfo "Cleaning '${STAGE31_DIR}'..." [ -d ${STAGE31_DIR} ] && { rm -rf ${STAGE31_DIR} || perror "rm -rf failed." } + pinfo "Cleaning '${MODULE_DIR}/kernel'..." + [ -e ${MODULE_DIR}/kernel ] && { rm ${MODULE_DIR}/kernel || perror "rm failed." } pinfo "Cleaning '${MODULE_DIR}/initramfs'..." [ -e ${MODULE_DIR}/initramfs ] && { rm ${MODULE_DIR}/initramfs || perror "rm failed." } + pinfo "Cleaning '${MODULE_DIR}/openslx'..." + [ -d ${MODULE_DIR}/openslx ] && { rm -rf ${MODULE_DIR}/openslx || perror "rm failed." } + pinfo "Cleaning '${MODULE_DIR}/initramfs2'..." + [ -d ${MODULE_DIR}/initramfs2 ] && { rm ${MODULE_DIR}/initramfs2 || perror "rm failed." } } -- cgit v1.2.3-55-g7522 From 8ff27dc0c673f87984e324b567d3c1ab3246f7c0 Mon Sep 17 00:00:00 2001 From: Michael Neves Date: Wed, 27 Feb 2013 21:11:37 +0100 Subject: Check if squashfs generation should be omitted --- server/build_core | 1 + 1 file changed, 1 insertion(+) (limited to 'server') diff --git a/server/build_core b/server/build_core index b2c38702..abb6d1e9 100755 --- a/server/build_core +++ b/server/build_core @@ -99,6 +99,7 @@ generate_rootfs() { } generate_squashfs() { + [[ $CORE_NO_SQUASHFS == 1 ]] && return local TOOL_STR="$TOOL_STR generate_squashfs:" [ -e "${MODULE_DIR}/openslx/mnt/openslx.sqfs" ] && rm "${MODULE_DIR}/openslx/mnt/openslx.sqfs" pinfo "Writing openslx.sqfs to '${MODULE_DIR}/openslx/mnt/'" -- cgit v1.2.3-55-g7522 From 05f32dfa04541afac6b2d481fd675249f4c778c2 Mon Sep 17 00:00:00 2001 From: Michael Neves Date: Wed, 27 Feb 2013 22:12:48 +0100 Subject: small fix --- server/build_core | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'server') diff --git a/server/build_core b/server/build_core index abb6d1e9..3ae9b5a1 100755 --- a/server/build_core +++ b/server/build_core @@ -124,12 +124,12 @@ clean_core() { pinfo "Cleaning '${STAGE31_DIR}'..." [ -d ${STAGE31_DIR} ] && { rm -rf ${STAGE31_DIR} || perror "rm -rf failed."; } pinfo "Cleaning '${MODULE_DIR}/kernel'..." - [ -e ${MODULE_DIR}/kernel ] && { rm ${MODULE_DIR}/kernel || perror "rm failed." } + [ -e ${MODULE_DIR}/kernel ] && { rm ${MODULE_DIR}/kernel || perror "rm failed."; } pinfo "Cleaning '${MODULE_DIR}/initramfs'..." [ -e ${MODULE_DIR}/initramfs ] && { rm ${MODULE_DIR}/initramfs || perror "rm failed."; } pinfo "Cleaning '${MODULE_DIR}/openslx'..." - [ -d ${MODULE_DIR}/openslx ] && { rm -rf ${MODULE_DIR}/openslx || perror "rm failed." } + [ -d ${MODULE_DIR}/openslx ] && { rm -rf ${MODULE_DIR}/openslx || perror "rm failed."; } pinfo "Cleaning '${MODULE_DIR}/initramfs2'..." - [ -d ${MODULE_DIR}/initramfs2 ] && { rm ${MODULE_DIR}/initramfs2 || perror "rm failed." } + [ -d ${MODULE_DIR}/initramfs2 ] && { rm ${MODULE_DIR}/initramfs2 || perror "rm failed."; } } -- cgit v1.2.3-55-g7522 From 8b55b54f37e909e0b52048352b2978bc2e0c35ed Mon Sep 17 00:00:00 2001 From: Michael Neves Date: Wed, 27 Feb 2013 22:13:54 +0100 Subject: delete merge file build_core.orig --- server/build_core.orig | 190 ------------------------------------------------- 1 file changed, 190 deletions(-) delete mode 100755 server/build_core.orig (limited to 'server') diff --git a/server/build_core.orig b/server/build_core.orig deleted file mode 100755 index 043a63f3..00000000 --- a/server/build_core.orig +++ /dev/null @@ -1,190 +0,0 @@ -#!/bin/bash -# Copyright (c) 2012 - OpenSLX GmbH -# -# This program is free software distributed under the GPL version 2. -# See http://openslx.org/COPYING -# -# If you have any feedback please consult http://openslx.org/feedback and -# send your feedback to feedback@openslx.org -# -# General information about OpenSLX can be found at http://openslx.org -# -# Server side script to generate stage3.1,2 initial ramfses for OpenSLX Linux -# stateless clients -############################################################################# - -# first parameter is a hash pointing to the target directory -# /srv/openslx/build - -# in the future the prefix should be set via slxsettings ... - -MODULE_DIR=${ROOT_DIR}/server - -STAGE31_STATIC_DIR=${ROOT_DIR}/data/stage3.1 -STAGE31_DIR=${MODULE_DIR}/stage3.1 -STAGE32_DIR=${ROOT_DIR}/remote/stage3.2 - -# initial checks -initial_checks() { - local TOOL_STR="$TOOL_STR initial_checks:" - [ -d "${STAGE32_DIR}" ] || perror "No stage3.2 directory found. Please run './mltk --tools -b' first." - - [ -e "${STAGE32_DIR}/openslx/bin/busybox" ] || perror "Busybox not found, run './mltk --tools -b busybox' first." - -<<<<<<< HEAD - if [ -z $(which mksquashfs) ] && perror "mksquashfs not found, please install squashfs-tools first." -======= - # shouldn't squashfs-tools be automatically installed as we need them nevertheless!? - # what if it is already on the machine? faster to check with which than the apt-get check? - [ -z $(which mksquashfs) ] && perror "mksquashfs not found, please install squashfs-tools first." - - #check for kernel modules, if not present copy from system - if [ ! -d "${STAGE32_DIR}/lib/modules" ]; - then - pinfo "Couldn't find kernel modules in stage3.2." - pinfo "Copying modules for kernel $(uname -r)..." - mkdir -p "${STAGE32_DIR}/lib/modules" || perror "Cannot create '${STAGE32_DIR}/lib/modules'" - cp -r "/lib/modules/$(uname -r)" "${STAGE32_DIR}/lib/modules/" || perror "Cannot copy kernel modules from '/lib/modules/$(uname -r)' '${STAGE32_DIR}/lib/modules/'" - else - pinfo "Not copying kernel modules from system, as '${STAGE32_DIR}/lib/modules/' already exists." - fi - - # TODO: check for aufs and squaskfs modules ->>>>>>> 125194750fa6590c48644fd9d4006af3ec9262dd -} - -generate_rootfs() { - local TOOL_STR="$TOOL_STR generate_rootfs:" - - # produce stage3.1 - mkdir -p "${STAGE31_DIR}" || perror "Cannot create stage3.1 dir '${STAGE31_DIR}'" - - # produce openslx dir - mkdir -p "${MODULE_DIR}/openslx/mnt" || perror "Cannot create openslx dir '${MODULE_DIR}/openslx/mnt'" - - # create basic directory structure - mkdir -p "${STAGE31_DIR}"/{bin,dev,proc,run,etc,mnt,sys} || perror "Cannot create basic directory structure in '${STAGE31_DIR}'" - - # copy device files from running system - cp -a /dev/{console,kmsg,mem,null,tty,tty0,tty1,tty9,urandom,zero} \ - "${STAGE31_DIR}"/dev || perror "Cannot copy devices from running system" - - # copy busybox, its libs and static data to stage3.1 - cp -r "${STAGE32_DIR}"/openslx/* "${STAGE31_STATIC_DIR}"/* "${STAGE31_DIR}" || perror "Copying busybox, its libs and static data failed." - - # fetch the libraries needed for busybox - BASICLIBS="" - for i in $(ldd "${STAGE31_DIR}/bin/busybox"); - do - if [ $(echo $i | grep '^/' | grep -c ld) -eq 1 \ - -o $(echo $i | grep '^/' | grep -c libc.so) -eq 1 ]; - then - BASICLIBS="$BASICLIBS $i $(readlink -f "$i")" - fi - done - tarcopy "$BASICLIBS" "${STAGE31_DIR}" -<<<<<<< HEAD - - #check for kernel modules, if not present copy from system - if [ ! -d ${STAGE31_DIR}/lib/modules ]; - then - pinfo "Couldn't find kernel modules in stage3.1." - pinfo "Copying modules for kernel $(uname -r)..." - mkdir -p "${STAGE31_DIR}/lib/modules/$(uname -r)/kernel" || perror "Cannot create '${STAGE31_DIR}/lib/modules/$(uname -r)/kernel'" - cd /lib/modules/$(uname -r)/kernel || perror "No Directory /lib/modules/$(uname -r)/kernel found." - tarcopy "$(cat stage31.modules)" "${STAGE31_DIR}/lib/modules/$(uname -r)/kernel" - cd - - else - pinfo "Not copying kernel modules from system, as '${STAGE31_DIR}/lib/modules' already exists." - fi -======= -} - -generate_squashfs() { - local TOOL_STR="$TOOL_STR generate_squashfs:" - # finalize the initramfs target - [ -e "${STAGE31_DIR}/mnt/openslx.sqfs" ] && rm "${STAGE31_DIR}/mnt/openslx.sqfs" - - mksquashfs "${STAGE32_DIR}" "${STAGE31_DIR}/mnt/openslx.sqfs" -comp xz -b 1M -no-recovery >&6 || perror "mksquashfs failed ($?)." ->>>>>>> 125194750fa6590c48644fd9d4006af3ec9262dd - - #check for firmware, if not present copy from system - if [ ! -d ${STAGE31_DIR}/lib/firmware ]; - then - pinfo "Couldn't find firmware in stage3.1." - pinfo "Copying firmware for kernel $(uname -r)..." - mkdir -p "${STAGE31_DIR}/lib/firmware/$(uname -r)" || perror "Cannot create '${STAGE31_DIR}/lib/firmware/$(uname -r)'" - cd /lib/firmware || perror "No Directory /lib/firmware found." - tarcopy "$(cat stage31.firmware)" "${STAGE31_DIR}/lib/firmware" - cd - - cd /lib/firmware/$(uname -r) || perror "No Directory /lib/firmware/$(uname -r) found." - tarcopy "$(cat stage31.firmware)" "${STAGE31_DIR}/lib/firmware/$(uname -r)" - cd - - else - pinfo "Not copying firmware from system, as '${STAGE31_DIR}/lib/firmware' already exists." - fi - - #generate initramfs - generate_initramfs "initramfs" "${STAGE31_DIR}" -} - -<<<<<<< HEAD -generate_squashfs() { - # finalize the initramfs target - [ -e "${MODULE_DIR}/openslx/mnt/openslx.sqfs" ] && rm "${MODULE_DIR}/openslx/mnt/openslx.sqfs" - pinfo "Writing openslx.sqfs to '${MODULE_DIR}/openslx/mnt/'" - mksquashfs "${STAGE32_DIR}" "${MODULE_DIR}/openslx/mnt/openslx.sqfs" -comp xz -b 1M -no-recovery || perror "mksquashfs failed ($?)." - generate_initramfs "initramfs2" "${MODULE_DIR}/openslx" -======= -generate_initramfs() { - local TOOL_STR="$TOOL_STR generate_initramfs:" - cd "${STAGE31_DIR}" || perror "Cannot cd to '${STAGE31_DIR}'" - find . | cpio --format="newc" --create | gzip -9 > "${MODULE_DIR}/initramfs" - local PS=(${PIPESTATUS[*]}) - [ "x${PS[0]}" != "x0" ] && perror "'find .' in '$(pwd)' failed." - [ "x${PS[1]}" != "x0" ] && perror "cpio create failed." - [ "x${PS[2]}" != "x0" ] && perror "gzip to '${MODULE_DIR}/initramfs' failed." - cd - - pinfo "initramfs created at ${MODULE_DIR}/initramfs" ->>>>>>> 125194750fa6590c48644fd9d4006af3ec9262dd -} - -generate_stage31() { - initial_checks - generate_rootfs - - generate_squashfs - -<<<<<<< HEAD - if [ ! -e ${MODULE_DIR}/kernel ]; then - pinfo "Couldn't find kernel in '${MODULE_DIR}'" - pinfo "Copying Kernel $(uname -r) to ${MODULE_DIR}/kernel" - cp "/boot/vmlinuz-$(uname -r)" "${MODULE_DIR}/kernel" || perror "Cannot copy kernel from '/boot/vmlinuz-$(uname -r)' to '${MODULE_DIR}/kernel'" - fi -======= - # TODO better kernel copy - cp "/boot/vmlinuz-$(uname -r)" "${MODULE_DIR}/kernel" || perror "Cannot copy kernel from '/boot/vmlinuz-$(uname -r)' to '${MODULE_DIR}/kernel'" - pinfo "kernel $(uname -r) copied to ${MODULE_DIR}/kernel" ->>>>>>> 125194750fa6590c48644fd9d4006af3ec9262dd -} - -clean_core() { - local TOOL_STR="$TOOL_STR clean_core:" - pinfo "Cleaning '${STAGE31_DIR}'..." -<<<<<<< HEAD - [ -d ${STAGE31_DIR} ] && { rm -rf ${STAGE31_DIR} || perror "rm -rf failed." } - pinfo "Cleaning '${MODULE_DIR}/kernel'..." - [ -e ${MODULE_DIR}/kernel ] && { rm ${MODULE_DIR}/kernel || perror "rm failed." } - pinfo "Cleaning '${MODULE_DIR}/initramfs'..." - [ -e ${MODULE_DIR}/initramfs ] && { rm ${MODULE_DIR}/initramfs || perror "rm failed." } - pinfo "Cleaning '${MODULE_DIR}/openslx'..." - [ -d ${MODULE_DIR}/openslx ] && { rm -rf ${MODULE_DIR}/openslx || perror "rm failed." } - pinfo "Cleaning '${MODULE_DIR}/initramfs2'..." - [ -d ${MODULE_DIR}/initramfs2 ] && { rm ${MODULE_DIR}/initramfs2 || perror "rm failed." } -======= - [ -d ${STAGE31_DIR} ] && { rm -rf ${STAGE31_DIR} || perror "rm -rf failed."; } - pinfo "Cleaning '${MODULE_DIR}/initramfs'..." - [ -e ${MODULE_DIR}/initramfs ] && { rm ${MODULE_DIR}/initramfs || perror "rm failed."; } ->>>>>>> 125194750fa6590c48644fd9d4006af3ec9262dd -} - -- cgit v1.2.3-55-g7522 From f504f7f6bd4d3638669740ce5e8e7031947d2d9a Mon Sep 17 00:00:00 2001 From: Michael Neves Date: Wed, 27 Feb 2013 22:14:32 +0100 Subject: add aufs and squashfs to modules list for stage3.1 --- server/stage31.modules | 2 ++ 1 file changed, 2 insertions(+) (limited to 'server') diff --git a/server/stage31.modules b/server/stage31.modules index 9c7415e1..f35cc276 100644 --- a/server/stage31.modules +++ b/server/stage31.modules @@ -43,7 +43,9 @@ ./fs/nfs/nfs.ko ./fs/fscache/fscache.ko ./fs/lockd/lockd.ko +./fs/squashfs/squashfs.ko ./net/sunrpc/sunrpc.ko ./net/sunrpc/auth_gss/auth_rpcgss.ko ./net/802/stp.ko ./net/bridge/bridge.ko +./ubuntu/aufs/aufs.ko -- cgit v1.2.3-55-g7522 From 718829eacc89ae66b184865cd6dd90d98c7706e8 Mon Sep 17 00:00:00 2001 From: Michael Neves Date: Wed, 27 Feb 2013 22:38:03 +0100 Subject: small fixes --- server/build_core | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'server') diff --git a/server/build_core b/server/build_core index 3ae9b5a1..33a23c5a 100755 --- a/server/build_core +++ b/server/build_core @@ -68,12 +68,11 @@ generate_rootfs() { #check for kernel modules, if not present copy from system if [ ! -d ${STAGE31_DIR}/lib/modules ]; then - pinfo "Couldn't find kernel modules in stage3.1." pinfo "Copying modules for kernel $(uname -r)..." mkdir -p "${STAGE31_DIR}/lib/modules/$(uname -r)/kernel" || perror "Cannot create '${STAGE31_DIR}/lib/modules/$(uname -r)/kernel'" cd /lib/modules/$(uname -r)/kernel || perror "No Directory /lib/modules/$(uname -r)/kernel found." - tarcopy "$(cat stage31.modules)" "${STAGE31_DIR}/lib/modules/$(uname -r)/kernel" - cd - + tarcopy "$(cat ${MODULE_DIR}/stage31.modules)" "${STAGE31_DIR}/lib/modules/$(uname -r)/kernel" + cd - >/dev/null else pinfo "Not copying kernel modules from system, as '${STAGE31_DIR}/lib/modules' already exists." fi @@ -81,15 +80,14 @@ generate_rootfs() { #check for firmware, if not present copy from system if [ ! -d ${STAGE31_DIR}/lib/firmware ]; then - pinfo "Couldn't find firmware in stage3.1." pinfo "Copying firmware for kernel $(uname -r)..." mkdir -p "${STAGE31_DIR}/lib/firmware/$(uname -r)" || perror "Cannot create '${STAGE31_DIR}/lib/firmware/$(uname -r)'" cd /lib/firmware || perror "No Directory /lib/firmware found." - tarcopy "$(cat stage31.firmware)" "${STAGE31_DIR}/lib/firmware" - cd - + tarcopy "$(cat ${MODULE_DIR}/stage31.firmware)" "${STAGE31_DIR}/lib/firmware" + cd - >/dev/null cd /lib/firmware/$(uname -r) || perror "No Directory /lib/firmware/$(uname -r) found." - tarcopy "$(cat stage31.firmware)" "${STAGE31_DIR}/lib/firmware/$(uname -r)" - cd - + tarcopy "$(cat ${MODULE_DIR}/stage31.firmware)" "${STAGE31_DIR}/lib/firmware/$(uname -r)" + cd - >/dev/null else pinfo "Not copying firmware from system, as '${STAGE31_DIR}/lib/firmware' already exists." fi @@ -113,9 +111,11 @@ generate_stage31() { generate_squashfs if [ ! -e ${MODULE_DIR}/kernel ]; then - pinfo "Couldn't find kernel in '${MODULE_DIR}'" + local TOOL_STR="$TOOL_STR copy_kernel:" pinfo "Copying Kernel $(uname -r) to ${MODULE_DIR}/kernel" cp "/boot/vmlinuz-$(uname -r)" "${MODULE_DIR}/kernel" || perror "Cannot copy kernel from '/boot/vmlinuz-$(uname -r)' to '${MODULE_DIR}/kernel'" + else + pinfo "Not copying kernel from system, as it already exists." fi } -- cgit v1.2.3-55-g7522 From 387e7439374c92afcaaa37536adb9af41a25a18b Mon Sep 17 00:00:00 2001 From: Michael Neves Date: Thu, 28 Feb 2013 16:49:03 +0100 Subject: add modules.* to lib/modules --- server/stage31.modules | 1 + 1 file changed, 1 insertion(+) (limited to 'server') diff --git a/server/stage31.modules b/server/stage31.modules index f35cc276..26538246 100644 --- a/server/stage31.modules +++ b/server/stage31.modules @@ -49,3 +49,4 @@ ./net/802/stp.ko ./net/bridge/bridge.ko ./ubuntu/aufs/aufs.ko +../modules.* -- cgit v1.2.3-55-g7522 From be228cb40809f78004045d75d82a090f460c3f30 Mon Sep 17 00:00:00 2001 From: Michael Neves Date: Thu, 28 Feb 2013 18:16:01 +0100 Subject: make squashfs verbose, copy modules.* from /lib/modules --- server/build_core | 5 ++++- server/stage31.modules | 1 - 2 files changed, 4 insertions(+), 2 deletions(-) (limited to 'server') diff --git a/server/build_core b/server/build_core index 33a23c5a..8bea4043 100755 --- a/server/build_core +++ b/server/build_core @@ -91,6 +91,9 @@ generate_rootfs() { else pinfo "Not copying firmware from system, as '${STAGE31_DIR}/lib/firmware' already exists." fi + + #quick fix for modules.* files + cp /lib/modules/$(uname -r)/modules.* ${STAGE31_DIR}/lib/modules/$(uname -r)/ #generate initramfs generate_initramfs "initramfs" "${STAGE31_DIR}" @@ -101,7 +104,7 @@ generate_squashfs() { local TOOL_STR="$TOOL_STR generate_squashfs:" [ -e "${MODULE_DIR}/openslx/mnt/openslx.sqfs" ] && rm "${MODULE_DIR}/openslx/mnt/openslx.sqfs" pinfo "Writing openslx.sqfs to '${MODULE_DIR}/openslx/mnt/'" - mksquashfs "${STAGE32_DIR}" "${MODULE_DIR}/openslx/mnt/openslx.sqfs" -comp xz -b 1M -no-recovery || perror "mksquashfs failed ($?)." + mksquashfs "${STAGE32_DIR}" "${MODULE_DIR}/openslx/mnt/openslx.sqfs" -comp xz -b 1M -no-recovery >&6 || perror "mksquashfs failed ($?)." generate_initramfs "initramfs2" "${MODULE_DIR}/openslx" } diff --git a/server/stage31.modules b/server/stage31.modules index 26538246..f35cc276 100644 --- a/server/stage31.modules +++ b/server/stage31.modules @@ -49,4 +49,3 @@ ./net/802/stp.ko ./net/bridge/bridge.ko ./ubuntu/aufs/aufs.ko -../modules.* -- cgit v1.2.3-55-g7522 From 4f08f1bdf1d80e3842e6c3a4c33c2221c91c1905 Mon Sep 17 00:00:00 2001 From: Michael Neves Date: Thu, 28 Feb 2013 19:50:55 +0100 Subject: some minor fixes --- data/stage3.1/init | 2 +- server/stage31.modules | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) (limited to 'server') diff --git a/data/stage3.1/init b/data/stage3.1/init index d69018cc..8db07f46 100755 --- a/data/stage3.1/init +++ b/data/stage3.1/init @@ -89,7 +89,7 @@ nwif="eth0" [ $DEBUGLEVEL -eq 20 ] && echo "** starting ip config at $(sysup)" ip link set dev lo up 2>/dev/null ip addr add 127.0.0.1/8 dev lo 2>/dev/null -ip link set dev $nwif up 2>/dev/null || echo "No link for $nwif, dropping to shell.." && setsid sh -c 'exec sh /dev/tty1 2>&1' +ip link set dev $nwif up 2>/dev/null || { echo "No link for $nwif, dropping to shell.."; setsid sh -c 'exec sh /dev/tty1 2>&1'; } # analyze ip information from the kernel command line and put parts # of it into several variables diff --git a/server/stage31.modules b/server/stage31.modules index f35cc276..38e2ed9d 100644 --- a/server/stage31.modules +++ b/server/stage31.modules @@ -1,4 +1,5 @@ ./drivers/video/sis/sisfb.ko +./drivers/video/via/viafb.ko ./drivers/acpi/video.ko ./drivers/ssb/ssb.ko ./drivers/gpu/drm/ttm/ttm.ko -- cgit v1.2.3-55-g7522 From cb2bc8fc398d5e87a9e3ad0b04c5e03adb58716c Mon Sep 17 00:00:00 2001 From: Jonathan Bauer Date: Mon, 11 Mar 2013 12:45:20 +0100 Subject: remove old modules/firmware list, now in remote/core/core.conf --- server/stage31.firmware | 89 ------------------------------------------------- server/stage31.modules | 52 ----------------------------- 2 files changed, 141 deletions(-) delete mode 100644 server/stage31.firmware delete mode 100644 server/stage31.modules (limited to 'server') diff --git a/server/stage31.firmware b/server/stage31.firmware deleted file mode 100644 index 4d53f057..00000000 --- a/server/stage31.firmware +++ /dev/null @@ -1,89 +0,0 @@ -./3com/3C359.bin -./3com/typhoon.bin -./e100/d101m_ucode.bin -./e100/d101s_ucode.bin -./e100/d102e_ucode.bin -./matrox/g400_warp.fw -./matrox/g200_warp.fw -./r128/r128_cce.bin -./radeon/SUMO_rlc.bin -./radeon/RS690_cp.bin -./radeon/R600_rlc.bin -./radeon/REDWOOD_pfp.bin -./radeon/JUNIPER_pfp.bin -./radeon/TURKS_mc.bin -./radeon/R520_cp.bin -./radeon/CAICOS_pfp.bin -./radeon/JUNIPER_me.bin -./radeon/RV730_pfp.bin -./radeon/TURKS_me.bin -./radeon/SUMO2_me.bin -./radeon/SUMO_me.bin -./radeon/RV710_me.bin -./radeon/CAYMAN_pfp.bin -./radeon/CAYMAN_rlc.bin -./radeon/CEDAR_pfp.bin -./radeon/RV670_pfp.bin -./radeon/RV630_me.bin -./radeon/R200_cp.bin -./radeon/R100_cp.bin -./radeon/RV710_pfp.bin -./radeon/CAYMAN_mc.bin -./radeon/PALM_me.bin -./radeon/REDWOOD_me.bin -./radeon/R300_cp.bin -./radeon/CAICOS_me.bin -./radeon/CEDAR_rlc.bin -./radeon/BARTS_pfp.bin -./radeon/SUMO_pfp.bin -./radeon/REDWOOD_rlc.bin -./radeon/RV610_me.bin -./radeon/RS600_cp.bin -./radeon/RV620_pfp.bin -./radeon/RV770_me.bin -./radeon/RV770_pfp.bin -./radeon/BARTS_mc.bin -./radeon/RV635_pfp.bin -./radeon/SUMO2_pfp.bin -./radeon/R700_rlc.bin -./radeon/RV630_pfp.bin -./radeon/RV730_me.bin -./radeon/RS780_pfp.bin -./radeon/CAICOS_mc.bin -./radeon/RV620_me.bin -./radeon/R420_cp.bin -./radeon/BARTS_me.bin -./radeon/RS780_me.bin -./radeon/CYPRESS_me.bin -./radeon/RV610_pfp.bin -./radeon/TURKS_pfp.bin -./radeon/CYPRESS_pfp.bin -./radeon/BTC_rlc.bin -./radeon/PALM_pfp.bin -./radeon/CYPRESS_rlc.bin -./radeon/RV635_me.bin -./radeon/CEDAR_me.bin -./radeon/R600_me.bin -./radeon/JUNIPER_rlc.bin -./radeon/R600_pfp.bin -./radeon/RV670_me.bin -./radeon/CAYMAN_me.bin -./RTL8192E/data.img -./RTL8192E/boot.img -./RTL8192E/main.img -./RTL8192SE/rtl8192sfw492.bin -./RTL8192SE/rtl8192sfw.bin -./RTL8192SE/rtl8192sfw74.bin -./rtl_nic/rtl8168e-3.fw -./rtl_nic/rtl8168f-1.fw -./rtl_nic/rtl8105e-1.fw -./rtl_nic/rtl8168f-2.fw -./rtl_nic/rtl8168e-1.fw -./rtl_nic/rtl8411-1.fw -./rtl_nic/rtl8168d-2.fw -./rtl_nic/rtl8402-1.fw -./rtl_nic/rtl8168e-2.fw -./rtl_nic/rtl8168d-1.fw -./tigon/tg3.bin -./tigon/tg3_tso5.bin -./tigon/tg3_tso.bin diff --git a/server/stage31.modules b/server/stage31.modules deleted file mode 100644 index 38e2ed9d..00000000 --- a/server/stage31.modules +++ /dev/null @@ -1,52 +0,0 @@ -./drivers/video/sis/sisfb.ko -./drivers/video/via/viafb.ko -./drivers/acpi/video.ko -./drivers/ssb/ssb.ko -./drivers/gpu/drm/ttm/ttm.ko -./drivers/gpu/drm/via/via.ko -./drivers/gpu/drm/drm.ko -./drivers/gpu/drm/tdfx/tdfx.ko -./drivers/gpu/drm/nouveau/nouveau.ko -./drivers/gpu/drm/savage/savage.ko -./drivers/gpu/drm/radeon/radeon.ko -./drivers/gpu/drm/drm_kms_helper.ko -./drivers/gpu/drm/i810/i810.ko -./drivers/gpu/drm/i2c/ch7006.ko -./drivers/gpu/drm/i2c/sil164.ko -./drivers/gpu/drm/sis/sis.ko -./drivers/gpu/drm/mga/mga.ko -./drivers/gpu/drm/i915/i915.ko -./drivers/gpu/drm/r128/r128.ko -./drivers/i2c/algos/i2c-algo-bit.ko -./drivers/net/netconsole.ko -./drivers/net/ethernet/realtek/8139too.ko -./drivers/net/ethernet/realtek/r8169.ko -./drivers/net/ethernet/nvidia/forcedeth.ko -./drivers/net/ethernet/via/via-rhine.ko -./drivers/net/ethernet/amd/pcnet32.ko -./drivers/net/ethernet/atheros/atl1e/atl1e.ko -./drivers/net/ethernet/atheros/atl1c/atl1c.ko -./drivers/net/ethernet/sis/sis900.ko -./drivers/net/ethernet/broadcom/tg3.ko -./drivers/net/ethernet/broadcom/b44.ko -./drivers/net/ethernet/intel/e1000/e1000.ko -./drivers/net/ethernet/intel/e1000e/e1000e.ko -./drivers/net/ethernet/intel/e100.ko -./drivers/net/ethernet/marvell/skge.ko -./drivers/net/ethernet/3com/3c59x.ko -./drivers/net/ethernet/dec/tulip/tulip.ko -./drivers/hid/hid.ko -./drivers/hid/usbhid/usbhid.ko -./drivers/platform/x86/wmi.ko -./drivers/platform/x86/mxm-wmi.ko -./fs/configfs/configfs.ko -./fs/nfs_common/nfs_acl.ko -./fs/nfs/nfs.ko -./fs/fscache/fscache.ko -./fs/lockd/lockd.ko -./fs/squashfs/squashfs.ko -./net/sunrpc/sunrpc.ko -./net/sunrpc/auth_gss/auth_rpcgss.ko -./net/802/stp.ko -./net/bridge/bridge.ko -./ubuntu/aufs/aufs.ko -- cgit v1.2.3-55-g7522 From 2a94d11a5525f66698678a76f1341831b2e622f7 Mon Sep 17 00:00:00 2001 From: Jonathan Bauer Date: Thu, 14 Mar 2013 14:22:20 +0100 Subject: new arguments for mltk, see manpages & changed INIT_DIR to TARGET_BUILD DIR --- mltk | 119 +++++++++++---------- remote/setup_tools | 63 +++++------ remote/tools/base/base.build | 32 +++--- remote/tools/consolekit/consolekit.build | 8 +- remote/tools/dbus/dbus.build | 2 +- remote/tools/kdm/kdm.build | 24 ++--- remote/tools/ldm-gtk-greeter/ldm-gtk-greeter.build | 16 +-- remote/tools/ldm/ldm.build | 8 +- remote/tools/plymouth/plymouth.build | 4 +- remote/tools/rsyslogd/rsyslogd.build | 14 +-- remote/tools/sshd/sshd.build | 4 +- remote/tools/systemd/systemd.build | 8 +- remote/tools/xorg/xorg.build | 8 +- server/build_core | 73 +------------ 14 files changed, 156 insertions(+), 227 deletions(-) (limited to 'server') diff --git a/mltk b/mltk index b4ee268c..7e6945c3 100755 --- a/mltk +++ b/mltk @@ -33,7 +33,6 @@ qnd_exit() { . "${ROOT_DIR}/helper/binutil.inc" . "${ROOT_DIR}/helper/system.inc" -pinfo "System's packet manager is $PACKET_MANAGER" banner () { echo -e "\033[38;5;202m\t __ __ __ " @@ -48,31 +47,33 @@ banner () { print_usage() { echo "Toolkit for creating preboot mini-linux for OpenSLX NG (mltk)" - echo "Usage: $(basename ${SELF}) tools [-d] [-c [module]*] [-b [module]*] [-p profile]" - echo " $(basename ${SELF}) core [-d] [-c] [-b] [-n]" + echo "Usage: $(basename ${SELF}) remote target_dir [-d] [-c [module]*] [-b [module]*] [-p profile]" + echo " $(basename ${SELF}) server [-d] [-c] [-b] [-n]" echo -e "" - echo -e " Target:" - echo -e " core \t minimal initramfs (stage 3.1) to mount the system-container (stage 3.2)." - echo -e " tools \t minimal systemd-based rootfs including basic tools (required for core)." + echo -e " Mode:" + echo -e " server \t server mode: packs stage3.1 and stage3.2 as initramfs/squashfs." + echo -e " remote \t remote mode: builds a minimal systemd-based rootfs based on the activated modules in " echo -e "" - echo -e " Target options:" - echo -e " -b build target" - echo -e " -c clean target" + echo -e " Mode options:" + echo -e " -b build module(s)." + echo -e " -c clean module(s)." echo -e " -d activates debug output for current target" echo -e " -p profile build all modules from given profile" - echo -e " -n don't generate squashfs for stage 3.2" + echo -e " -n don't generate squashfs from stage 3.2" echo -e "" - echo -e " For target 'tools', you can pass names of specific modules to clean/build." + echo -e " In mode 'remote', you can pass names of specific modules to clean/build." echo -e " Otherwise, all modules will be built/cleaned." echo -e "" echo -e " Examples:" - echo -e " tools -c -b base policykit sshd (clean all tools, build base, policykit and sshd)" - echo -e " tools -c -b (clean all tools, build all tools)" - echo -e " tools -c base sshd -b sshd ldm -d (clean base and sshd, build sshd and ldm, be verbose)" - echo -e " tools -c -p default (clean all tools, build modules listed in profile default)" - echo -e " core -c -b (clean and build core)" + echo -e " remote stage3.1 -b (build all the modules activated (linked) in remote/stage3.1 in remote/build/stage3.1" + echo -e " remote stage3.1 -b plymouth (build plymouth in remote/build/stage3.1)" + echo -e " remote stage3.2 -c -b base policykit sshd (clean all modules, build base, policykit and sshd in remote/build/stage3.2)" + echo -e " remote stage3.2 -c -b (clean all modules, build all modules in remote/build/stage3.2)" + echo -e " remote stage3.2 -c base sshd -b sshd ldm -d (clean base and sshd, build sshd and ldm, be verbose)" + echo -e " remote stage3.2 -c -p default (clean all modules, build modules listed in profile default)" + echo -e " server -c -b (clean and build the initramfs archives under /server/build)" echo -e "" - echo -e " Existing modules for tools are:" + echo -e " Existing modules for remote are:" echo -e " $(echo $(ls ${ROOT_DIR}/remote/tools))" } @@ -83,12 +84,16 @@ initial_checks() { else banner fi + # print system information + pinfo "Arch triplet of this machine: $ARCH_TRIPLET" + pinfo "Kernel version: $KERNEL_VERSION" + pinfo "System's packet manager is $PACKET_MANAGER" # setup_tools and build_core SETUP_CORE="${ROOT_DIR}/remote/setup_core" SETUP_TOOLS="${ROOT_DIR}/remote/setup_tools" - [ ! -e "${SETUP_CORE}" ] && perror "Missing script build_core, re-clone. Exiting." + [ ! -e "${SETUP_CORE}" ] && perror "Missing script setup_core, re-clone. Exiting." [ ! -e "${SETUP_TOOLS}" ] && perror "Missing script setup_tools, re-clone. Exiting." } @@ -97,19 +102,30 @@ read_params() { local SUBMODE="" # select target: core or tools case "$1" in - core) - MODE="CORE" + server) + MODE="SERVER" ;; - tools) - MODE="TOOLS" + remote) + MODE="REMOTE" ;; *) - pwarning "Unknown target: $1" + pwarning "Unknown mode: $1" print_usage exit 1 ;; esac shift + + # set the global TARGET if in remote mode. + if [[ $MODE == REMOTE ]]; then + if [[ $1 != "-"* ]]; then + TARGET=$1 + shift + else + perror "Remote mode requires a target directory. None given." + fi + fi + # handle rest of arguments while [ "$#" -gt "0" ]; do local PARAM="$1" @@ -130,17 +146,17 @@ read_params() { ;; -p) [ "$#" -lt "1" ] && perror "Missing argument to -p" - [ "$MODE" != "TOOLS" ] && perror "-p can only be used for target tools" + [ "$MODE" != "REMOTE" ] && perror "-p can only be used in remote mode" . "remote/profiles/${1}.profile" || perror "Profile '$1' not found in remote/profiles/" - TOOLS_BUILD="1" - TOOLS_LIST_BUILD="$TOOLS_LIST_BUILD $MODULES" + REMOTE_BUILD="1" + REMOTE_LIST_BUILD="$REMOTE_LIST_BUILD $MODULES" unset MODULES shift continue ;; -n) - [ "$MODE" != "CORE" ] && perror "-n can only be used for target core" - CORE_NO_SQUASHFS="1" + [ "$MODE" != "SERVER" ] && perror "-n can only be used in server mode" + SERVER_NO_SQUASHFS="1" continue ;; *) @@ -154,45 +170,40 @@ read_params() { fi # module name - [[ $MODE != TOOLS ]] && pwarning "You cannot specify module names for target CORE." && print_usage && exit 1 - [[ $SUBMODE != CLEAN && $SUBMODE != BUILD ]] && pwarning "Module name given for --tools, but no action specified (eg. build)" && print_usage && exit 1 + [[ $MODE != REMOTE ]] && pwarning "You cannot specify module names in server mode." && print_usage && exit 1 + [[ $SUBMODE != CLEAN && $SUBMODE != BUILD ]] && pwarning "Module name given in remote mode, but no action specified (eg. build)" && print_usage && exit 1 eval "${MODE}_LIST_${SUBMODE}=\"\$${MODE}_LIST_${SUBMODE} \$PARAM\"" done - - #pinfo "tools clean: $TOOLS_CLEAN -$TOOLS_LIST_CLEAN" - #pinfo "tools build: $TOOLS_BUILD -$TOOLS_LIST_BUILD" - #pinfo "core clean: $CORE_CLEAN" - #pinfo "core build: $CORE_BUILD" - + # exit if no command - [[ $CORE_CLEAN == 0 && $CORE_BUILD == 0 && $TOOLS_CLEAN == 0 && $TOOLS_BUILD == 0 ]] && print_usage && exit 1 + [[ $SERVER_CLEAN == 0 && $SERVER_BUILD == 0 && $REMOTE_CLEAN == 0 && $REMOTE_BUILD == 0 ]] && print_usage && exit 1 } run() { - if [[ $TOOLS_CLEAN == 1 || $TOOLS_BUILD == 1 ]]; then - [[ $TOOLS_DEBUG == 1 ]] && unset_quiet || set_quiet + if [[ $REMOTE_CLEAN == 1 || $REMOTE_BUILD == 1 ]]; then + [[ $REMOTE_DEBUG == 1 ]] && unset_quiet || set_quiet . "${SETUP_TOOLS}" || perror "Cannot source ${SETUP_TOOLS}" - [[ $TOOLS_CLEAN == 1 ]] && clean_tools $TOOLS_LIST_CLEAN - [[ $TOOLS_BUILD == 1 ]] && generate_stage32 $TOOLS_LIST_BUILD + [[ $REMOTE_CLEAN == 1 ]] && clean_tools $REMOTE_LIST_CLEAN + [[ $REMOTE_BUILD == 1 ]] && generate_target $REMOTE_LIST_BUILD fi - if [[ $CORE_CLEAN == 1 || $CORE_BUILD == 1 ]]; then - [[ $CORE_DEBUG == 1 ]] && unset_quiet || set_quiet + if [[ $SERVER_CLEAN == 1 || $SERVER_BUILD == 1 ]]; then + [[ $SERVER_DEBUG == 1 ]] && unset_quiet || set_quiet local TOOL_STR="[CORE]" . "${SETUP_CORE}" || perror "Cannot source ${SETUP_CORE}" - [[ $CORE_CLEAN == 1 ]] && clean_core - [[ $CORE_BUILD == 1 ]] && generate_stage31 + [[ $SERVER_CLEAN == 1 ]] && clean_core + [[ $SERVER_BUILD == 1 ]] && generate_stage31 fi } -CORE_DEBUG="0" -CORE_BUILD="0" -CORE_CLEAN="0" -CORE_NO_SQUASHFS="0" -TOOLS_DEBUG="0" -TOOLS_CLEAN="0" -TOOLS_BUILD="0" -TOOLS_LIST_CLEAN="" -TOOLS_LIST_BUILD="" +SERVER_DEBUG="0" +SERVER_BUILD="0" +SERVER_CLEAN="0" +SERVER_NO_SQUASHFS="0" +REMOTE_DEBUG="0" +REMOTE_CLEAN="0" +REMOTE_BUILD="0" +REMOTE_LIST_CLEAN="" +REMOTE_LIST_BUILD="" initial_checks read_params $@ diff --git a/remote/setup_tools b/remote/setup_tools index a009fdff..4e118a18 100755 --- a/remote/setup_tools +++ b/remote/setup_tools @@ -1,32 +1,22 @@ #!/bin/bash -MODULE_DIR="${ROOT_DIR}/remote" +MODE_DIR="${ROOT_DIR}/remote" #Create tools directory if not exists -TOOL_DIR="${MODULE_DIR}/tools" -INIT_DIR="${MODULE_DIR}/stage3.2" +TOOL_DIR="${MODE_DIR}/tools" +INIT_DIR="${MODE_DIR}/stage3.2" # Keep track of processed modules PROCESSED_MODULES="" initial_checks () { - - # check for target directory - [ -d $TARGET ] || perror "Given target directory does not exist: $TARGET" - [[ $TARGET == "${MODULE_DIR}"/build || $TARGET == "${MODULE_DIR}"/modules ]] && \ - perror "Target directory 'modules' invalid, used internally." - - # check for required tools for BIN in git locate do local TEST=$(which ${BIN}) [ -z "$TEST" ] && pinfo "Installing $BIN..." && apt-get install $BIN done - - - } @@ -141,41 +131,36 @@ copyfileswithdependencies () { generate_target() { - [ "x$1" = "xstage31" -o "x$1" = "xstage32" ] || perror "generate_stage requires 'stage31' or 'stage32', but $1 given." - initial_checks - - TARGET_DIR="${MODULE_DIR}/build/$1" - - # copy basic libs - tarcopy "$(list_basic_libs)" "${MODULE_DIR}/build/$1" - - # if no arguments assume all. - if [ "x$1" = "x" -o "x$1" = "xall" ]; then - tools=$(ls ${TOOL_DIR}) - set -- $tools - fi + [[ $TARGET == build || $TARGET == modules ]] && \ + perror "Target directory cannot be named 'build' nor 'modules'." - # now iterate over given tools and copy them - while (( "$#" )); do - process_module "$1" - shift - done - TOOL_STR="" -} + # check for target directory + TARGET_DIR="${MODE_DIR}/${TARGET}" + [ -d $TARGET_DIR ] || perror "Given target directory does not exist: $TARGET" -generate_stage32 () { + TARGET_BUILD_DIR="${MODE_DIR}/build/${TARGET}" - initial_checks + pinfo "Generating '$TARGET_BUILD_DIR' for '$TARGET'" - tarcopy "$(list_basic_libs)" "${INIT_DIR}" + INIT_DIR=${TARGET_BUILD_DIR} # if no arguments assume all. if [ "x$1" = "x" -o "x$1" = "xall" ]; then - tools=$(ls ${TOOL_DIR}) - set -- $tools - fi + MODULES=$(ls ${TARGET_DIR}) + set -- $MODULES + else + # tools = arguments given + MODULES=$@ + fi + + pinfo "Activated modules in '${TARGET}':" + pinfo "\t$(echo ${MODULES})" + + # copy basic libs + pinfo "Copying libc and ld-linux used by ${SHELL}" + tarcopy "$(list_basic_libs)" "${TARGET_BUILD_DIR}" # now iterate over given tools and copy them while (( "$#" )); do diff --git a/remote/tools/base/base.build b/remote/tools/base/base.build index e75f8537..a797bc44 100644 --- a/remote/tools/base/base.build +++ b/remote/tools/base/base.build @@ -51,27 +51,27 @@ build() { post_copy() { # make basic directory structure - mkdir -p "${INIT_DIR}"/{bin,dev,proc,lib,etc,mnt,sys,var/run,var/lock,var/log,run/lock,run/shm,openslx/mnt} + mkdir -p "${TARGET_BUILD_DIR}"/{bin,dev,proc,lib,etc,mnt,sys,var/run,var/lock,var/log,run/lock,run/shm,openslx/mnt} # copy devices from running system cp -a /dev/{console,kmsg,mem,null,shm,tty,tty0,tty1,tty9,fb0,urandom,zero} \ - "${INIT_DIR}"/dev || perror "Copying devices from running system failed." + "${TARGET_BUILD_DIR}"/dev || perror "Copying devices from running system failed." # set /etc/environment to include /openslx/bin and /openslx/sbin echo "PATH=\"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/openslx/sbin:/openslx/bin\"" \ - > "${INIT_DIR}/etc/environment" + > "${TARGET_BUILD_DIR}/etc/environment" # copy static files - cp -r "${TOOL_DIR}/${TOOL}"/data/* "${INIT_DIR}" || perror "Copying static files from data/* failed." + cp -r "${TOOL_DIR}/${TOOL}"/data/* "${TARGET_BUILD_DIR}" || perror "Copying static files from data/* failed." # copy pam modules - tarcopy "/lib/${ARCH_TRIPLET}/security /lib/security" "${INIT_DIR}" + tarcopy "/lib/${ARCH_TRIPLET}/security /lib/security" "${TARGET_BUILD_DIR}" # quick fix for /etc/fstab - echo "# no configuration" >> "${INIT_DIR}/etc/fstab" + echo "# no configuration" >> "${TARGET_BUILD_DIR}/etc/fstab" # link /etc/mtab, needed for systemd - [ ! -e ${INIT_DIR}/etc/mtab ] && ln -s /proc/self/mounts ${INIT_DIR}/etc/mtab + [ ! -e ${TARGET_BUILD_DIR}/etc/mtab ] && ln -s /proc/self/mounts ${TARGET_BUILD_DIR}/etc/mtab # passwd, group, shadow init_users_and_groups @@ -82,26 +82,26 @@ post_copy() { # setup root accoun USER=root PASSWORD='!r00t' add_user - mkdir -p ${INIT_DIR}/root + mkdir -p ${TARGET_BUILD_DIR}/root - echo "minilinux-$(hostname)" > "${INIT_DIR}/etc/hostname" + echo "minilinux-$(hostname)" > "${TARGET_BUILD_DIR}/etc/hostname" #check for kernel modules, if not present copy from system - if [ ! -d ${INIT_DIR}/lib/modules ]; + if [ ! -d ${TARGET_BUILD_DIR}/lib/modules ]; then pinfo "Copying modules for kernel $(uname -r)..." - mkdir -p "${INIT_DIR}/lib/modules" || perror "Cannot create '${INIT_DIR}/lib/modules'" - cp -r "/lib/modules/$(uname -r)" "${INIT_DIR}/lib/modules/" || perror "Cannot copy kernel modules from '/lib/modules/$(uname -r)' '${INIT_DIR}/lib/modules/'" + mkdir -p "${TARGET_BUILD_DIR}/lib/modules" || perror "Cannot create '${TARGET_BUILD_DIR}/lib/modules'" + cp -r "/lib/modules/$(uname -r)" "${TARGET_BUILD_DIR}/lib/modules/" || perror "Cannot copy kernel modules from '/lib/modules/$(uname -r)' '${TARGET_BUILD_DIR}/lib/modules/'" else - pinfo "Not copying kernel modules from system, as '${INIT_DIR}/lib/modules/' already exists." + pinfo "Not copying kernel modules from system, as '${TARGET_BUILD_DIR}/lib/modules/' already exists." fi #check for firmware, if not present copy from system - if [ ! -d ${INIT_DIR}/lib/firmware ]; + if [ ! -d ${TARGET_BUILD_DIR}/lib/firmware ]; then pinfo "Copying firmware for kernel $(uname -r)..." - cp -r "/lib/firmware" "${INIT_DIR}/lib/" || perror "Cannot copy kernel modules from '/lib/firmware' '${INIT_DIR}/lib/'" + cp -r "/lib/firmware" "${TARGET_BUILD_DIR}/lib/" || perror "Cannot copy kernel modules from '/lib/firmware' '${TARGET_BUILD_DIR}/lib/'" else - pinfo "Not copying firmware from system, as '${INIT_DIR}/lib/firmware' already exists." + pinfo "Not copying firmware from system, as '${TARGET_BUILD_DIR}/lib/firmware' already exists." fi } diff --git a/remote/tools/consolekit/consolekit.build b/remote/tools/consolekit/consolekit.build index ff7778aa..35170256 100644 --- a/remote/tools/consolekit/consolekit.build +++ b/remote/tools/consolekit/consolekit.build @@ -14,8 +14,8 @@ build() { } post_copy() { - mkdir -p "${INIT_DIR}/usr/lib/ConsoleKit/run-seat.d" - mkdir -p "${INIT_DIR}/etc/ConsoleKit/run-seat.d" - mkdir -p "${INIT_DIR}/etc/ConsoleKit/run-session.d" - mkdir -p "${INIT_DIR}/var/log/ConsoleKit" + mkdir -p "${TARGET_BUILD_DIR}/usr/lib/ConsoleKit/run-seat.d" + mkdir -p "${TARGET_BUILD_DIR}/etc/ConsoleKit/run-seat.d" + mkdir -p "${TARGET_BUILD_DIR}/etc/ConsoleKit/run-session.d" + mkdir -p "${TARGET_BUILD_DIR}/var/log/ConsoleKit" } diff --git a/remote/tools/dbus/dbus.build b/remote/tools/dbus/dbus.build index 6f75c705..2c0e3866 100644 --- a/remote/tools/dbus/dbus.build +++ b/remote/tools/dbus/dbus.build @@ -18,6 +18,6 @@ post_copy() { # quick fix to get the unit files from the package # moved them from lib/systemd to usr/lib/systemd cd "${BUILDDIR}" - tarcopy lib/systemd "${INIT_DIR}"/usr + tarcopy lib/systemd "${TARGET_BUILD_DIR}"/usr cd - &> /dev/null } diff --git a/remote/tools/kdm/kdm.build b/remote/tools/kdm/kdm.build index 737853a9..5e0618eb 100644 --- a/remote/tools/kdm/kdm.build +++ b/remote/tools/kdm/kdm.build @@ -16,21 +16,21 @@ build () { post_copy() { # copy static kdm files to stage3.2 - cp -r ${TOOL_DIR}/${TOOL}/data/* ${INIT_DIR} + cp -r ${TOOL_DIR}/${TOOL}/data/* ${TARGET_BUILD_DIR} #create static kdm folders in stage3.2 - mkdir -p ${INIT_DIR}/var/lib/kdm - mkdir -p ${INIT_DIR}/var/run/kdm + mkdir -p ${TARGET_BUILD_DIR}/var/lib/kdm + mkdir -p ${TARGET_BUILD_DIR}/var/run/kdm #copy required icons - tarcopy "/usr/share/icons/oxygen/16x16/actions/system-reboot.png" ${INIT_DIR} - tarcopy "/usr/share/icons/oxygen/16x16/actions/system-shutdown.png" ${INIT_DIR} - tarcopy "/usr/share/icons/oxygen/16x16/actions/dialog-cancel.png" ${INIT_DIR} - tarcopy "/usr/share/icons/oxygen/index.theme" ${INIT_DIR} - tarcopy "/usr/share/kde4/apps/kdm/pics/shutdown.png" ${INIT_DIR} - tarcopy "/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttf" ${INIT_DIR} - tarcopy "/usr/share/fonts/truetype/ubuntu-font-family/Ubuntu-R.ttf" ${INIT_DIR} - tarcopy "/usr/share/icons/default/index.theme" ${INIT_DIR} - gtk-update-icon-cache-3.0 "${INIT_DIR}/usr/share/icons/oxygen/" || perror "update-icon-cache-3.0 failed." + tarcopy "/usr/share/icons/oxygen/16x16/actions/system-reboot.png + /usr/share/icons/oxygen/16x16/actions/system-shutdown.png + /usr/share/icons/oxygen/16x16/actions/dialog-cancel.png + /usr/share/icons/oxygen/index.theme + /usr/share/kde4/apps/kdm/pics/shutdown.png + /usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttf + /usr/share/fonts/truetype/ubuntu-font-family/Ubuntu-R.ttf + /usr/share/icons/default/index.theme" ${TARGET_BUILD_DIR} + gtk-update-icon-cache-3.0 "${TARGET_BUILD_DIR}/usr/share/icons/oxygen/" || perror "update-icon-cache-3.0 failed." } diff --git a/remote/tools/ldm-gtk-greeter/ldm-gtk-greeter.build b/remote/tools/ldm-gtk-greeter/ldm-gtk-greeter.build index bf58f4f0..87154e3e 100644 --- a/remote/tools/ldm-gtk-greeter/ldm-gtk-greeter.build +++ b/remote/tools/ldm-gtk-greeter/ldm-gtk-greeter.build @@ -31,15 +31,15 @@ build () { post_copy() { #copy static data files - cp -r "${TOOL_DIR}/${TOOL}/data/"* "${INIT_DIR}" || perror "Copying data/* failed." + cp -r "${TOOL_DIR}/${TOOL}/data/"* "${TARGET_BUILD_DIR}" || perror "Copying data/* failed." # TODO: FIX PATH TO TRIPLET... TRIPLET="$(basename "$(dirname "$(ldd "$SHELL" | grep libc | awk -F " " '{print $3}')")")" - gdk-pixbuf-query-loaders > "${INIT_DIR}/usr/lib/${TRIPLET}/gdk-pixbuf-2.0/2.10.0/loaders.cache" || perror "pixbuf-query-loaders failed." - mkdir -p "${INIT_DIR}/etc/pango" || perror "Making etc/pango failed." - pango-querymodules > "${INIT_DIR}/etc/pango/pango.modules" || perror "pango-querymodules failed." - gtk-update-icon-cache-3.0 "${INIT_DIR}/usr/share/icons/hicolor/" || perror "update-icon-cache-3.0 failed." - update-mime-database "${INIT_DIR}/usr/share/mime" || perror "update-mime-database failed." - mkdir -p "${INIT_DIR}/var/lib" - cp -r "/var/lib/polkit-1" "${INIT_DIR}/var/lib/" || perror "Copying -r /var/lib/polkit-1 to '${INIT_DIR}/var/lib/' failed." + gdk-pixbuf-query-loaders > "${TARGET_BUILD_DIR}/usr/lib/${TRIPLET}/gdk-pixbuf-2.0/2.10.0/loaders.cache" || perror "pixbuf-query-loaders failed." + mkdir -p "${TARGET_BUILD_DIR}/etc/pango" || perror "Making etc/pango failed." + pango-querymodules > "${TARGET_BUILD_DIR}/etc/pango/pango.modules" || perror "pango-querymodules failed." + gtk-update-icon-cache-3.0 "${TARGET_BUILD_DIR}/usr/share/icons/hicolor/" || perror "update-icon-cache-3.0 failed." + update-mime-database "${TARGET_BUILD_DIR}/usr/share/mime" || perror "update-mime-database failed." + mkdir -p "${TARGET_BUILD_DIR}/var/lib" + cp -r "/var/lib/polkit-1" "${TARGET_BUILD_DIR}/var/lib/" || perror "Copying -r /var/lib/polkit-1 to '${TARGET_BUILD_DIR}/var/lib/' failed." } diff --git a/remote/tools/ldm/ldm.build b/remote/tools/ldm/ldm.build index 35584058..9aaad683 100644 --- a/remote/tools/ldm/ldm.build +++ b/remote/tools/ldm/ldm.build @@ -29,14 +29,14 @@ build () { } post_copy() { - mkdir -p "${INIT_DIR}/var/lib/lightdm" - touch "${INIT_DIR}/var/lib/lightdm/.Xauthority" || perror "Cannot touch '${INIT_DIR}/var/lib/lightdm/.Xauthority'" + mkdir -p "${TARGET_BUILD_DIR}/var/lib/lightdm" + touch "${TARGET_BUILD_DIR}/var/lib/lightdm/.Xauthority" || perror "Cannot touch '${TARGET_BUILD_DIR}/var/lib/lightdm/.Xauthority'" local LDMUID=$(add_user "lightdm") local LDMGID=$(add_group "lightdm") pinfo "lightdm user and group is $LDMUID $LDMGID" - chown -R "${LDMUID}:${LDMGID}" "${INIT_DIR}/var/lib/lightdm/" || perror "chowning '${INIT_DIR}/var/lib/lightdm/' failed." + chown -R "${LDMUID}:${LDMGID}" "${TARGET_BUILD_DIR}/var/lib/lightdm/" || perror "chowning '${TARGET_BUILD_DIR}/var/lib/lightdm/' failed." #copyi static data files - cp -r "${TOOL_DIR}/${TOOL}/data/"* "${INIT_DIR}" || perror "Copying data/ failed." + cp -r "${TOOL_DIR}/${TOOL}/data/"* "${TARGET_BUILD_DIR}" || perror "Copying data/ failed." } diff --git a/remote/tools/plymouth/plymouth.build b/remote/tools/plymouth/plymouth.build index 6b89f058..f13a1cfc 100644 --- a/remote/tools/plymouth/plymouth.build +++ b/remote/tools/plymouth/plymouth.build @@ -22,7 +22,7 @@ build() { post_copy() { # copy static dbus systemd unit files to stage3.2 - SYSTEMDDIR=${INIT_DIR}/etc/systemd/system + SYSTEMDDIR=${TARGET_BUILD_DIR}/etc/systemd/system [ ! -d ${SYSTEMDDIR} ] && mkdir -p ${SYSTEMDDIR} - cp -r ${TOOL_DIR}/${TOOL}/data/* ${INIT_DIR} + cp -r ${TOOL_DIR}/${TOOL}/data/* ${TARGET_BUILD_DIR} } diff --git a/remote/tools/rsyslogd/rsyslogd.build b/remote/tools/rsyslogd/rsyslogd.build index 43d5ed0e..28a3bbfa 100644 --- a/remote/tools/rsyslogd/rsyslogd.build +++ b/remote/tools/rsyslogd/rsyslogd.build @@ -27,16 +27,16 @@ build() { } post_copy() { - mkdir -p "${INIT_DIR}"/var/spool/rsyslog + mkdir -p "${TARGET_BUILD_DIR}"/var/spool/rsyslog [ -e /lib/systemd/system/rsyslog.service ] \ - && cp /lib/systemd/system/rsyslog.service "${INIT_DIR}"/etc/systemd/system/ - sed -i 's/\/bin\/systemctl/-\/usr\/bin\/systemctl/g' "${INIT_DIR}"/etc/systemd/system/rsyslog.service - sed -i 's/^Before=udev/#&/' "${INIT_DIR}"/etc/systemd/system/rsyslog.service + && cp /lib/systemd/system/rsyslog.service "${TARGET_BUILD_DIR}"/etc/systemd/system/ + sed -i 's/\/bin\/systemctl/-\/usr\/bin\/systemctl/g' "${TARGET_BUILD_DIR}"/etc/systemd/system/rsyslog.service + sed -i 's/^Before=udev/#&/' "${TARGET_BUILD_DIR}"/etc/systemd/system/rsyslog.service # activate the service - ln -s rsyslog.service "${INIT_DIR}"/etc/systemd/system/syslog.service - [ ! -d "${INIT_DIR}"/etc/systemd/system/basic.target.wants ] && mkdir -p "${INIT_DIR}"/etc/systemd/system/basic.target.wants - ln -s ../syslog.service "${INIT_DIR}"/etc/systemd/system/basic.target.wants/syslog.service + ln -s rsyslog.service "${TARGET_BUILD_DIR}"/etc/systemd/system/syslog.service + [ ! -d "${TARGET_BUILD_DIR}"/etc/systemd/system/basic.target.wants ] && mkdir -p "${TARGET_BUILD_DIR}"/etc/systemd/system/basic.target.wants + ln -s ../syslog.service "${TARGET_BUILD_DIR}"/etc/systemd/system/basic.target.wants/syslog.service } diff --git a/remote/tools/sshd/sshd.build b/remote/tools/sshd/sshd.build index efd4f728..f4e95b6c 100644 --- a/remote/tools/sshd/sshd.build +++ b/remote/tools/sshd/sshd.build @@ -20,6 +20,6 @@ build() { } post_copy() { - mkdir -p "${INIT_DIR}/var/run/sshd" - cp -r "${TOOL_DIR}"/${TOOL}/data/* "${INIT_DIR}/" + mkdir -p "${TARGET_BUILD_DIR}/var/run/sshd" + cp -r "${TOOL_DIR}"/${TOOL}/data/* "${TARGET_BUILD_DIR}/" } diff --git a/remote/tools/systemd/systemd.build b/remote/tools/systemd/systemd.build index 5b96666f..c0e40f9f 100644 --- a/remote/tools/systemd/systemd.build +++ b/remote/tools/systemd/systemd.build @@ -34,18 +34,18 @@ build () { post_copy() { # copy static data files - cp -r $TOOL_DIR/$TOOL/data/* $INIT_DIR || perror "copying data files failed." + cp -r $TOOL_DIR/$TOOL/data/* $TARGET_BUILD_DIR || perror "copying data files failed." # dont clear systemd log at startup - sed -i.bak "s/TTYVTDisallocate=yes/TTYVTDisallocate=no/g" $INIT_DIR/usr/lib/systemd/system/getty@.service + sed -i.bak "s/TTYVTDisallocate=yes/TTYVTDisallocate=no/g" $TARGET_BUILD_DIR/usr/lib/systemd/system/getty@.service #old agetty version doesn't support --noclear option in getty service if [ "x$(dpkg -s util-linux | grep Version: | cut -d' ' -f2)" == "x2.19.1-2ubuntu3" ]; then - sed -i.bak "s/ExecStart=-\/sbin\/agetty --noclear %I 38400 linux/ExecStart=-\/sbin\/agetty %I 38400 linux/g" $INIT_DIR/usr/lib/systemd/system/getty@.service + sed -i.bak "s/ExecStart=-\/sbin\/agetty --noclear %I 38400 linux/ExecStart=-\/sbin\/agetty %I 38400 linux/g" $TARGET_BUILD_DIR/usr/lib/systemd/system/getty@.service fi # add nfs to modules-load list - echo "nfs" > "$INIT_DIR/etc/modules-load.d/nfs.conf" + echo "nfs" > "$TARGET_BUILD_DIR/etc/modules-load.d/nfs.conf" } diff --git a/remote/tools/xorg/xorg.build b/remote/tools/xorg/xorg.build index c0e9adc6..56609ecb 100644 --- a/remote/tools/xorg/xorg.build +++ b/remote/tools/xorg/xorg.build @@ -15,9 +15,9 @@ build() { } post_copy() { - mkdir -p "$INIT_DIR/etc/X11" - [ ! -e ${INIT_DIR}/etc/X11/X ] && ln -s /usr/bin/Xorg ${INIT_DIR}/etc/X11/X - mkdir -p "$INIT_DIR/var/lib/xkb" - cp /var/lib/xkb/server* "$INIT_DIR/var/lib/xkb/" || perror "Copying /var/lib/xkb/server* to '$INIT_DIR/var/lib/xkb/' failed." + mkdir -p "$TARGET_BUILD_DIR/etc/X11" + [ ! -e ${TARGET_BUILD_DIR}/etc/X11/X ] && ln -s /usr/bin/Xorg ${TARGET_BUILD_DIR}/etc/X11/X + mkdir -p "$TARGET_BUILD_DIR/var/lib/xkb" + cp /var/lib/xkb/server* "$TARGET_BUILD_DIR/var/lib/xkb/" || perror "Copying /var/lib/xkb/server* to '$TARGET_BUILD_DIR/var/lib/xkb/' failed." } diff --git a/server/build_core b/server/build_core index 8bea4043..cf748428 100755 --- a/server/build_core +++ b/server/build_core @@ -20,85 +20,18 @@ MODULE_DIR=${ROOT_DIR}/server -STAGE31_STATIC_DIR=${ROOT_DIR}/data/stage3.1 -STAGE31_DIR=${MODULE_DIR}/stage3.1 +STAGE31_DIR=${ROOT_DIR}/remote/stage3.1 STAGE32_DIR=${ROOT_DIR}/remote/stage3.2 # initial checks initial_checks() { local TOOL_STR="$TOOL_STR initial_checks:" - [ -d "${STAGE32_DIR}" ] || perror "No stage3.2 directory found. Please run './mltk --tools -b' first." - - [ -e "${STAGE32_DIR}/openslx/bin/busybox" ] || perror "Busybox not found, run './mltk --tools -b busybox' first." + [ -d "${STAGE31_DIR}" ] || perror "No stage3.1 directory found. Please run './mltk core -b' first." + [ -d "${STAGE32_DIR}" ] || perror "No stage3.2 directory found. Please run './mltk tools -b' first." [ -z $(which mksquashfs) ] && perror "mksquashfs not found, please install squashfs-tools first." } -generate_rootfs() { - local TOOL_STR="$TOOL_STR generate_rootfs:" - - # produce stage3.1 - mkdir -p "${STAGE31_DIR}" || perror "Cannot create stage3.1 dir '${STAGE31_DIR}'" - - # produce openslx dir - mkdir -p "${MODULE_DIR}/openslx/mnt" || perror "Cannot create openslx dir '${MODULE_DIR}/openslx/mnt'" - - # create basic directory structure - mkdir -p "${STAGE31_DIR}"/{bin,dev,proc,run,etc,mnt,sys} || perror "Cannot create basic directory structure in '${STAGE31_DIR}'" - - # copy device files from running system - cp -a /dev/{console,kmsg,mem,null,tty,tty0,tty1,tty9,urandom,zero} \ - "${STAGE31_DIR}"/dev || perror "Cannot copy devices from running system" - - # copy busybox, its libs and static data to stage3.1 - cp -r "${STAGE32_DIR}"/openslx/* "${STAGE31_STATIC_DIR}"/* "${STAGE31_DIR}" || perror "Copying busybox, its libs and static data failed." - - # fetch the libraries needed for busybox - BASICLIBS="" - for i in $(ldd "${STAGE31_DIR}/bin/busybox"); - do - if [ $(echo $i | grep '^/' | grep -c ld) -eq 1 \ - -o $(echo $i | grep '^/' | grep -c libc.so) -eq 1 ]; - then - BASICLIBS="$BASICLIBS $i $(readlink -f "$i")" - fi - done - tarcopy "$BASICLIBS" "${STAGE31_DIR}" - - #check for kernel modules, if not present copy from system - if [ ! -d ${STAGE31_DIR}/lib/modules ]; - then - pinfo "Copying modules for kernel $(uname -r)..." - mkdir -p "${STAGE31_DIR}/lib/modules/$(uname -r)/kernel" || perror "Cannot create '${STAGE31_DIR}/lib/modules/$(uname -r)/kernel'" - cd /lib/modules/$(uname -r)/kernel || perror "No Directory /lib/modules/$(uname -r)/kernel found." - tarcopy "$(cat ${MODULE_DIR}/stage31.modules)" "${STAGE31_DIR}/lib/modules/$(uname -r)/kernel" - cd - >/dev/null - else - pinfo "Not copying kernel modules from system, as '${STAGE31_DIR}/lib/modules' already exists." - fi - - #check for firmware, if not present copy from system - if [ ! -d ${STAGE31_DIR}/lib/firmware ]; - then - pinfo "Copying firmware for kernel $(uname -r)..." - mkdir -p "${STAGE31_DIR}/lib/firmware/$(uname -r)" || perror "Cannot create '${STAGE31_DIR}/lib/firmware/$(uname -r)'" - cd /lib/firmware || perror "No Directory /lib/firmware found." - tarcopy "$(cat ${MODULE_DIR}/stage31.firmware)" "${STAGE31_DIR}/lib/firmware" - cd - >/dev/null - cd /lib/firmware/$(uname -r) || perror "No Directory /lib/firmware/$(uname -r) found." - tarcopy "$(cat ${MODULE_DIR}/stage31.firmware)" "${STAGE31_DIR}/lib/firmware/$(uname -r)" - cd - >/dev/null - else - pinfo "Not copying firmware from system, as '${STAGE31_DIR}/lib/firmware' already exists." - fi - - #quick fix for modules.* files - cp /lib/modules/$(uname -r)/modules.* ${STAGE31_DIR}/lib/modules/$(uname -r)/ - - #generate initramfs - generate_initramfs "initramfs" "${STAGE31_DIR}" -} - generate_squashfs() { [[ $CORE_NO_SQUASHFS == 1 ]] && return local TOOL_STR="$TOOL_STR generate_squashfs:" -- cgit v1.2.3-55-g7522