multi update
This commit is contained in:
@@ -139,7 +139,7 @@ inherit eutils kernel-2 mount-boot linux-info
|
||||
detect_version
|
||||
detect_arch
|
||||
|
||||
DESCRIPTION="Sablink Linux kernel functions and phases"
|
||||
DESCRIPTION="sablink Linux kernel functions and phases"
|
||||
|
||||
|
||||
K_LONGTERM_URL_STR=""
|
||||
@@ -179,8 +179,7 @@ _get_real_kv_full() {
|
||||
elif [[ "${OKV/.*}" = "3" ]]; then
|
||||
# Linux 3.x support, KV_FULL is set to: 3.0-sablink
|
||||
# need to add another final .0 to the version part
|
||||
#echo "${ORIGINAL_KV_FULL/-/.0-}"
|
||||
echo "${ORIGINAL_KV_FULL}"
|
||||
echo "${ORIGINAL_KV_FULL/-/.0-}"
|
||||
else
|
||||
echo "${ORIGINAL_KV_FULL}"
|
||||
fi
|
||||
@@ -230,7 +229,7 @@ _is_kernel_binary() {
|
||||
|
||||
# provide extra virtual pkg
|
||||
if _is_kernel_binary; then
|
||||
PROVIDE="${PROVIDE} virtual/linux-binary"
|
||||
PROVIDE="virtual/linux-binary"
|
||||
fi
|
||||
|
||||
if [ -n "${K_NASKERNEL_SELF_TARBALL_NAME}" ]; then
|
||||
@@ -239,50 +238,64 @@ else
|
||||
HOMEPAGE="http://www.sablink.org"
|
||||
fi
|
||||
|
||||
|
||||
# Setup kernel configuration file name
|
||||
# set SRC_URI
|
||||
if [ -z "${K_NASKERNEL_SELF_TARBALL_NAME}" ]; then
|
||||
if [ "${K_NASKERNEL_URI_CONFIG}" = "yes" ]; then
|
||||
K_NASKERNEL_CONFIG_FILE="${K_NASKERNEL_CONFIG_FILE:-${K_NASKERNEL_NAME}-${PVR}-__ARCH__.config}"
|
||||
K_NASKERNEL_FW_CONFIG_FILE="${K_NASKERNEL_FW_CONFIG_FILE:-${K_NASKERNEL_NAME}-fw_env-__ARCH__.config}"
|
||||
tmp_K_NASKERNEL_CONFIG_FILE="${K_NASKERNEL_CONFIG_FILE:-${K_NASKERNEL_NAME}-${PVR}-__ARCH__.config}"
|
||||
tmp_K_NASKERNEL_FW_CONFIG_FILE="${K_NASKERNEL_FW_CONFIG_FILE:-${K_NASKERNEL_NAME}-fw_env-__ARCH__.config}"
|
||||
SRC_URI="${SRC_URI}
|
||||
arm? ( mirror://sablink/${CATEGORY}/linux-nas-patches/config/${K_NASKERNEL_CONFIG_FILE/__ARCH__/arm}
|
||||
mirror://sablink/${CATEGORY}/linux-nas-patches/config/${K_NASKERNEL_FW_CONFIG_FILE/__ARCH__/arm} )"
|
||||
use arm && K_NASKERNEL_CONFIG_FILE=${K_NASKERNEL_CONFIG_FILE/__ARCH__/arm}
|
||||
use arm && K_NASKERNEL_FW_CONFIG_FILE=${K_NASKERNEL_FW_CONFIG_FILE/__ARCH__/arm}
|
||||
# ARM not supported, if put in SRC_URI it tries to fetch it
|
||||
else
|
||||
use arm && K_NASKERNEL_CONFIG_FILE="${K_NASKERNEL_CONFIG_FILE:-${K_NASKERNEL_NAME}-${PVR}-arm.config}"
|
||||
use arm && K_NASKERNEL_FW_CONFIG_FILE="${K_NASKERNEL_FW_CONFIG_FILE:-${K_NASKERNEL_NAME}-fw_env-arm.config}"
|
||||
use amd64 && K_NASKERNEL_CONFIG_FILE="${K_NASKERNEL_CONFIG_FILE:-${K_NASKERNEL_NAME}-${PVR}-amd64.config}"
|
||||
use x86 && K_NASKERNEL_CONFIG_FILE="${K_NASKERNEL_CONFIG_FILE:-${K_NASKERNEL_NAME}-${PVR}-x86.config}"
|
||||
fi
|
||||
else
|
||||
K_NASKERNEL_CONFIG_FILE="${K_NASKERNEL_CONFIG_FILE:-${K_NASKERNEL_NAME}-${PVR}-__ARCH__.config}"
|
||||
K_NASKERNEL_ALT_CONFIG_FILE="${K_NASKERNEL_ALT_CONFIG_FILE:-${K_NASKERNEL_NAME}-${PV}-__ARCH__.config}"
|
||||
K_NASKERNEL_FW_CONFIG_FILE="${K_NASKERNEL_FW_CONFIG_FILE:-${K_NASKERNEL_NAME}-fw_env-__ARCH__.config}"
|
||||
if use arm; then
|
||||
K_NASKERNEL_CONFIG_FILE=${K_NASKERNEL_CONFIG_FILE/__ARCH__/arm}
|
||||
K_NASKERNEL_ALT_CONFIG_FILE=${K_NASKERNEL_ALT_CONFIG_FILE/__ARCH__/arm}
|
||||
arm? ( mirror://sablink/${CATEGORY}/linux-nas-patches/config/${tmp_K_NASKERNEL_CONFIG_FILE/__ARCH__/arm}
|
||||
mirror://sablink/${CATEGORY}/linux-nas-patches/config/${tmp_K_NASKERNEL_FW_CONFIG_FILE/__ARCH__/arm} )"
|
||||
# K_NASKERNEL_CONFIG_FILE will be set in _set_config_file_vars
|
||||
unset tmp_K_NASKERNEL_CONFIG_FILE
|
||||
fi
|
||||
fi
|
||||
|
||||
# Returns success if _set_config_file_vars was called.
|
||||
_is_config_file_set() {
|
||||
[[ ${_config_file_set} = 1 ]]
|
||||
}
|
||||
|
||||
_set_config_file_vars() {
|
||||
# Setup kernel configuration file name
|
||||
if [ -z "${K_NASKERNEL_SELF_TARBALL_NAME}" ]; then
|
||||
if [ "${K_NASKERNEL_URI_CONFIG}" = "yes" ]; then
|
||||
K_NASKERNEL_CONFIG_FILE="${K_NASKERNEL_CONFIG_FILE:-${K_NASKERNEL_NAME}-${PVR}-__ARCH__.config}"
|
||||
K_NASKERNEL_FW_CONFIG_FILE="${K_NASKERNEL_FW_CONFIG_FILE:-${K_NASKERNEL_NAME}-fw_env-__ARCH__.config}"
|
||||
use arm && K_NASKERNEL_CONFIG_FILE=${K_NASKERNEL_CONFIG_FILE/__ARCH__/arm}
|
||||
use arm && K_NASKERNEL_FW_CONFIG_FILE=${K_NASKERNEL_FW_CONFIG_FILE/__ARCH__/arm}
|
||||
else
|
||||
use arm && K_NASKERNEL_CONFIG_FILE="${K_NASKERNEL_CONFIG_FILE:-${K_NASKERNEL_NAME}-${PVR}-arm.config}"
|
||||
use arm && K_NASKERNEL_FW_CONFIG_FILE="${K_NASKERNEL_FW_CONFIG_FILE:-${K_NASKERNEL_NAME}-fw_env-arm.config}"
|
||||
fi
|
||||
else
|
||||
K_NASKERNEL_CONFIG_FILE="${K_NASKERNEL_CONFIG_FILE:-${K_NASKERNEL_NAME}-${PVR}-__ARCH__.config}"
|
||||
K_NASKERNEL_ALT_CONFIG_FILE="${K_NASKERNEL_ALT_CONFIG_FILE:-${K_NASKERNEL_NAME}-${PV}-__ARCH__.config}"
|
||||
use arm && K_NASKERNEL_FW_CONFIG_FILE="${K_NASKERNEL_FW_CONFIG_FILE:-${K_NASKERNEL_NAME}-fw_env-arm.config}"
|
||||
if use arm; then
|
||||
K_NASKERNEL_CONFIG_FILE=${K_NASKERNEL_CONFIG_FILE/__ARCH__/arm}
|
||||
K_NASKERNEL_ALT_CONFIG_FILE=${K_NASKERNEL_ALT_CONFIG_FILE/__ARCH__/arm}
|
||||
K_NASKERNEL_FW_CONFIG_FILE=${K_NASKERNEL_FW_CONFIG_FILE/__ARCH__/arm}
|
||||
fi
|
||||
fi
|
||||
|
||||
_config_file_set=1
|
||||
}
|
||||
|
||||
if [ -n "${K_ONLY_SOURCES}" ] || [ -n "${K_FIRMWARE_PACKAGE}" ]; then
|
||||
IUSE="${IUSE}"
|
||||
DEPEND="sys-apps/sed"
|
||||
RDEPEND="${RDEPEND}"
|
||||
else
|
||||
IUSE="dmraid dracut iscsi lvm mdadm ccache"
|
||||
IUSE="dmraid dracut iscsi lvm mdadm"
|
||||
DEPEND="app-arch/xz-utils
|
||||
sys-apps/sed
|
||||
sys-devel/make
|
||||
>=sys-kernel/genkernel-3.4.16-r1
|
||||
dracut? ( sys-kernel/dracut )
|
||||
ccache? ( dev-util/ccache )
|
||||
sys-block/devio
|
||||
dev-embedded/u-boot-tools
|
||||
sys-fs/dosfstools"
|
||||
|
||||
RDEPEND="sys-apps/sed
|
||||
sys-kernel/linux-firmware"
|
||||
if [ -n "${K_REQUIRED_LINUX_FIRMWARE_VER}" ]; then
|
||||
@@ -341,6 +354,15 @@ nas-kernel_src_unpack() {
|
||||
sed -i "s/^EXTRAVERSION :=.*//" "${S}/Makefile" || die
|
||||
fi
|
||||
OKV="${okv}"
|
||||
|
||||
# Let's handle EAPIs 0 and 1...
|
||||
case ${EAPI:-0} in
|
||||
0|1) nas-kernel_src_prepare ;;
|
||||
esac
|
||||
}
|
||||
|
||||
nas-kernel_src_prepare() {
|
||||
_set_config_file_vars
|
||||
}
|
||||
|
||||
nas-kernel_src_compile() {
|
||||
@@ -366,6 +388,9 @@ _firmwares_src_compile() {
|
||||
}
|
||||
|
||||
_kernel_copy_config() {
|
||||
_is_config_file_set \
|
||||
|| die "Kernel configuration file not set. Was nas-kernel_src_prepare() called?"
|
||||
|
||||
if [ -n "${K_NASKERNEL_SELF_TARBALL_NAME}" ]; then
|
||||
local base_path="${S}/sablink/config"
|
||||
if [ -f "${base_path}/${K_NASKERNEL_ALT_CONFIG_FILE}" ]; then
|
||||
@@ -389,7 +414,7 @@ _kernel_src_compile() {
|
||||
export SANDBOX_ON=0
|
||||
|
||||
# needed anyway, even if grub use flag is not used here
|
||||
if use arm ; then
|
||||
if use arm; then
|
||||
mkdir -p "${WORKDIR}"/boot/dtb
|
||||
else
|
||||
mkdir -p "${WORKDIR}"/boot
|
||||
@@ -441,7 +466,6 @@ _kernel_src_compile() {
|
||||
einfo "Cross-emerge is disabled"
|
||||
unset CROSS_COMPILE
|
||||
unset ARCH
|
||||
use ccache && GKARGS="${GKARGS} --kernel-cc=/usr/lib/ccache/bin/gcc"
|
||||
fi
|
||||
|
||||
# If ARM, build the uImage directly
|
||||
@@ -456,6 +480,7 @@ _kernel_src_compile() {
|
||||
GKARGS+=" --compress-initramfs-type=gzip"
|
||||
fi
|
||||
|
||||
K_NASKERNEL_DTB="none"
|
||||
# Buffalo anounced a new box named Pro Live (video transcode streaming)
|
||||
# so the old ls_pro_live has to be split to ls_pro ls_live
|
||||
# for now let it stay but a move schould be done to ls_pro
|
||||
@@ -465,7 +490,9 @@ _kernel_src_compile() {
|
||||
K_NASKERNEL_DEVICE="Buffalo Linkstation LiveV3 (LS-CHL)"
|
||||
fi
|
||||
if [ "${K_NASKERNEL_NAME}" = "buffalo_ls_chl2" ]; then
|
||||
devio > foo 'wl 0xe3a01c0a,4' 'wl 0xe3811067,4' # Linkstation XHL/CHLv2 (2.6.30)
|
||||
#devio > foo 'wl 0xe3a01c0a,4' 'wl 0xe3811067,4' # Linkstation XHL/CHLv2 (2.6.30)
|
||||
# new Device tree no need for devio
|
||||
K_NASKERNEL_DTB="kirkwood-lschlv2.dtb"
|
||||
K_NASKERNEL_TYPE="buffalo"
|
||||
K_NASKERNEL_DEVICE="Buffalo LS-XHL Series"
|
||||
fi
|
||||
@@ -511,7 +538,9 @@ _kernel_src_compile() {
|
||||
K_NASKERNEL_DEVICE="Buffalo Linkstation Pro/Live"
|
||||
fi
|
||||
if [ "${K_NASKERNEL_NAME}" = "buffalo_ls_xhl" ]; then
|
||||
devio > foo 'wl 0xe3a01c0a,4' 'wl 0xe3811067,4' # Linkstation XHL/CHLv2 (2.6.30)
|
||||
#devio > foo 'wl 0xe3a01c0a,4' 'wl 0xe3811067,4' # Linkstation XHL/CHLv2 (2.6.30)
|
||||
# new Device tree no need for devio
|
||||
K_NASKERNEL_DTB="kirkwood-lsxhl.dtb"
|
||||
K_NASKERNEL_TYPE="buffalo"
|
||||
K_NASKERNEL_DEVICE="Buffalo LS-XHL Series"
|
||||
fi
|
||||
@@ -521,7 +550,7 @@ _kernel_src_compile() {
|
||||
K_NASKERNEL_TYPE="default"
|
||||
K_NASKERNEL_DEVICE="Freescale MX53 LOCO Board"
|
||||
K_GENKERNEL_ARGS+=" --kernel-target=uImage --kernel-binary=arch/arm/boot/uImage"
|
||||
fi
|
||||
fi
|
||||
|
||||
unset LDFLAGS
|
||||
DEFAULT_KERNEL_SOURCE="${S}" CMD_KERNEL_DIR="${S}" genkernel ${GKARGS} ${K_GENKERNEL_ARGS} \
|
||||
@@ -539,20 +568,27 @@ _kernel_src_compile() {
|
||||
|
||||
# Buffalo Boxes have a special naming and start address
|
||||
if [ "${K_NASKERNEL_TYPE}" = "buffalo" ]; then
|
||||
cat foo "${WORKDIR}"/boot/kernel-genkernel-${ARCH}-${KV_FULL} > zImage.new
|
||||
mkimage -A arm -O linux -T kernel -C none -a 0x00008000 -e 0x00008000 -n uImage-${KV_FULL} \
|
||||
-d zImage.new "${WORKDIR}"/boot/uImage-genkernel-${ARCH}-${KV_FULL}.buffalo
|
||||
mkimage -A arm -O linux -T ramdisk -C none -a 0x00000000 -e 0x00000000 -n initrd-${KV_FULL} \
|
||||
-d "${WORKDIR}"/boot/initramfs-genkernel-${ARCH}-${KV_FULL} "${WORKDIR}"/boot/initrd-genkernel-${ARCH}-${KV_FULL}.buffalo
|
||||
if [ "${K_NASKERNEL_DTB}" = "none" ]; then
|
||||
einfo "Prepend the correct Device ID to the Kenel Image"
|
||||
cat foo "${WORKDIR}"/boot/kernel-genkernel-${ARCH}-${KV_FULL} > zImage.new
|
||||
einfo "Create uImage of the resulting Image"
|
||||
mkimage -A arm -O linux -T kernel -C none -a 0x00008000 -e 0x00008000 -n uImage-${KV_FULL} \
|
||||
-d zImage.new "${WORKDIR}"/boot/uImage-genkernel-${ARCH}-${KV_FULL}.buffalo
|
||||
einfo "Create uInitrd with correct start address"
|
||||
mkimage -A arm -O linux -T ramdisk -C none -a 0x00000000 -e 0x00000000 -n initrd-${KV_FULL} \
|
||||
-d "${WORKDIR}"/boot/initramfs-genkernel-${ARCH}-${KV_FULL} "${WORKDIR}"/boot/initrd-genkernel-${ARCH}-${KV_FULL}.buffalo
|
||||
else
|
||||
einfo "Append the device-tree-blob to the Kenel Image"
|
||||
cat "${WORKDIR}"/boot/kernel-genkernel-${ARCH}-${KV_FULL} "${S}"/arch/arm/boot/${K_NASKERNEL_DTB} > zImage.new
|
||||
einfo "Create uImage of the resulting Image"
|
||||
mkimage -A arm -O linux -T kernel -C none -a 0x00008000 -e 0x00008000 -n uImage-${KV_FULL} \
|
||||
-d zImage.new "${WORKDIR}"/boot/uImage-genkernel-${ARCH}-${KV_FULL}
|
||||
einfo "Create uInitrd with correct start address"
|
||||
mkimage -A arm -O linux -T ramdisk -C none -a 0x00000000 -e 0x00000000 -n initrd-${KV_FULL} \
|
||||
-d "${WORKDIR}"/boot/initramfs-genkernel-${ARCH}-${KV_FULL} "${WORKDIR}"/boot/uInitrd-genkernel-${ARCH}-${KV_FULL}
|
||||
fi
|
||||
fi
|
||||
|
||||
# # Default uImage and uInit handling
|
||||
# if [ "${K_NASKERNEL_TYPE}" = "default" ]; then
|
||||
# cp "${WORKDIR}"/boot/kernel-genkernel-${ARCH}-${KV_FULL} "${WORKDIR}"/boot/uImage-genkernel-${ARCH}-${KV_FULL}
|
||||
# mkimage -A arm -O linux -T ramdisk -C none -a 0x00000000 -e 0x00000000 -n initrd-${KV_FULL} \
|
||||
# -d "${WORKDIR}"/boot/initramfs-genkernel-${ARCH}-${KV_FULL} "${WORKDIR}"/boot/uInitrd-genkernel-${ARCH}-${KV_FULL}
|
||||
# fi
|
||||
|
||||
# cleanup
|
||||
rm foo zImage.new
|
||||
rm "${WORKDIR}"/boot/kernel-genkernel-${ARCH}-${KV_FULL} "${WORKDIR}"/boot/initramfs-genkernel-${ARCH}-${KV_FULL}
|
||||
@@ -693,6 +729,7 @@ _kernel_src_install() {
|
||||
cp "${DISTDIR}/${K_NASKERNEL_FW_CONFIG_FILE}" "${D}/etc/fw_env.config.${K_NASKERNEL_NAME}" || die "cannot copy firmware config"
|
||||
fi
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
nas-kernel_pkg_preinst() {
|
||||
@@ -754,6 +791,7 @@ nas-kernel_uimage_config() {
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
nas-kernel_pkg_postinst() {
|
||||
if _is_kernel_binary; then
|
||||
fstab_file="${ROOT}etc/fstab"
|
||||
@@ -777,17 +815,16 @@ nas-kernel_pkg_postinst() {
|
||||
|
||||
elog "The source code of this kernel is located at"
|
||||
elog "=${K_KERNEL_SOURCES_PKG}."
|
||||
elog "Sablink Linux recommends that portage users install"
|
||||
elog "sablink Linux recommends that portage users install"
|
||||
elog "${K_KERNEL_SOURCES_PKG} if you want"
|
||||
elog "to build any packages that install kernel modules"
|
||||
elog "(such as sim-buffalo, etc...)."
|
||||
elog "(such as ati-drivers, nvidia-drivers, virtualbox, etc...)."
|
||||
|
||||
# copy the firmware config for the actual hardware to the right place
|
||||
device=$(grep "Hardware[[:space:]]*:" /proc/cpuinfo 2>/dev/null | head -n1 | sed "s/^[^:]*: //")
|
||||
if [ "${K_NASKERNEL_DEVICE}" = "$device" ]; then
|
||||
cp ${ROOT}/etc/fw_env.config.${K_NASKERNEL_NAME} ${ROOT}/etc/fw_env.config
|
||||
fi
|
||||
|
||||
else
|
||||
kernel-2_pkg_postinst
|
||||
fi
|
||||
@@ -809,5 +846,10 @@ nas-kernel_pkg_postrm() {
|
||||
}
|
||||
|
||||
# export all the available functions here
|
||||
EXPORT_FUNCTIONS pkg_setup src_unpack src_compile src_install pkg_preinst pkg_postinst pkg_prerm pkg_postrm
|
||||
case ${EAPI:-0} in
|
||||
0|1) extra_export_funcs= ;;
|
||||
*) extra_export_funcs=src_prepare ;;
|
||||
esac
|
||||
|
||||
EXPORT_FUNCTIONS pkg_setup src_unpack ${extra_export_funcs} \
|
||||
src_compile src_install pkg_preinst pkg_postinst pkg_prerm pkg_postrm
|
||||
|
||||
Reference in New Issue
Block a user