linux: install external firmware for x86_64 only

This commit is contained in:
Lukas Rusak 2016-09-19 11:52:51 -07:00
parent 9fb5a35faa
commit c66176f1ed
No known key found for this signature in database
GPG Key ID: 8C310C807E7393A3
2 changed files with 20 additions and 6 deletions

View File

@ -29,6 +29,7 @@ ROOT=`pwd`
DISTRO_DIR="$ROOT/distributions"
PROJECT_DIR="$ROOT/projects"
LINUX_DEPENDS="$PROJECT_DIR/$PROJECT/linux/linux.$TARGET_ARCH.conf $ROOT/packages/linux/package.mk"
[ "$TARGET_ARCH" = "x86_64" ] && LINUX_DEPENDS+=" $ROOT/packages/linux-firmware/intel-ucode/package.mk $ROOT/packages/linux-firmware/x86-firmware/package.mk"
# include versioning
. config/version

View File

@ -23,7 +23,7 @@ PKG_LICENSE="GPL"
PKG_SITE="http://www.kernel.org"
PKG_DEPENDS_HOST="ccache:host"
PKG_DEPENDS_TARGET="toolchain cpio:host kmod:host pciutils xz:host wireless-regdb keyutils"
PKG_DEPENDS_INIT="toolchain cpu-firmware:init"
PKG_DEPENDS_INIT="toolchain"
PKG_NEED_UNPACK="$LINUX_DEPENDS"
PKG_PRIORITY="optional"
PKG_SECTION="linux"
@ -71,6 +71,10 @@ PKG_AUTORECONF="no"
PKG_MAKE_OPTS_HOST="ARCH=$TARGET_KERNEL_ARCH headers_check"
if [ "$TARGET_ARCH" = "x86_64" ]; then
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET intel-ucode x86-firmware"
fi
if [ "$BUILD_ANDROID_BOOTIMG" = "yes" ]; then
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET mkbootimg:host"
fi
@ -132,11 +136,6 @@ post_patch() {
sed -i -e "s|CONFIG_MXC_HDMI_CEC_SR=y||" $PKG_BUILD/.config
fi
fi
# copy some extra firmware to linux tree
cp -R $PKG_DIR/firmware/* $PKG_BUILD/firmware
make -C $PKG_BUILD oldconfig
}
makeinstall_host() {
@ -146,6 +145,20 @@ makeinstall_host() {
}
pre_make_target() {
if [ "$TARGET_ARCH" = "x86_64" ]; then
# copy some extra firmware to linux tree
mkdir -p $ROOT/$PKG_BUILD/external-firmware
cp -a $(get_build_dir x86-firmware)/{amdgpu,amd-ucode,i915,radeon,rtl_nic} $ROOT/$PKG_BUILD/external-firmware
mkdir -p $ROOT/$PKG_BUILD/external-firmware/intel-ucode
cp -a $(get_build_dir intel-ucode)/microcode.bin $ROOT/$PKG_BUILD/external-firmware/intel-ucode
FW_LIST="$(find $ROOT/$PKG_BUILD/external-firmware \( -type f -o -type l \) \( -iname '*.bin' -o -iname '*.fw' \) | sed 's|.*external-firmware/||' | sort | xargs)"
sed -i "s|CONFIG_EXTRA_FIRMWARE=.*|CONFIG_EXTRA_FIRMWARE=\"${FW_LIST}\"|" $ROOT/$PKG_BUILD/.config
fi
make oldconfig
# regdb
cp $(get_build_dir wireless-regdb)/db.txt $ROOT/$PKG_BUILD/net/wireless/db.txt