Merge pull request #1835 from HiassofT/le9-module-overlays

add support for optional kernel modules in image and from addons
This commit is contained in:
MilhouseVH
2017-10-12 20:04:22 +01:00
committed by GitHub
39 changed files with 504 additions and 284 deletions

View File

@@ -143,7 +143,24 @@ kernel_version() {
# get kernel module dir
get_module_dir() {
basename $(ls -d $(get_build_dir linux)/.install_pkg/usr/lib/modules/*)
basename $(ls -d $(get_build_dir linux)/.install_pkg/usr/lib/kernel-overlays/base/lib/modules/*)
}
# get base path to kernel modules and firmware
get_kernel_overlay_dir() {
echo "/usr/lib/kernel-overlays/${1:-base}"
}
# get full path to kernel module dir
# optional parameter specifies overlay level (default is base)
get_full_module_dir() {
echo "$(get_kernel_overlay_dir $1)/lib/modules/$(get_module_dir)"
}
# get full path to firmware dir
# optional parameter specifies overlay level (default is base)
get_full_firmware_dir() {
echo "$(get_kernel_overlay_dir $1)/lib/firmware"
}
# get package's build dir
@@ -172,16 +189,106 @@ get_pkg_variable() {
}
install_binary_addon() {
local addon_name="$1" addon_id="$2" addon_so
local addon_id="$1" addon_so
mkdir -p $ADDON_BUILD/$addon_id/
cp -R $PKG_BUILD/.install_pkg/usr/share/$MEDIACENTER/addons/$addon_name/* $ADDON_BUILD/$addon_id/
cp -R $PKG_BUILD/.install_pkg/usr/share/$MEDIACENTER/addons/$addon_id/* $ADDON_BUILD/$addon_id/
addon_so=$(xmlstarlet sel -t -v "/addon/extension/@library_linux" $ADDON_BUILD/$addon_id/addon.xml)
addon_so=$(xmlstarlet sel -t -v "/addon/extension/@library_linux" $ADDON_BUILD/$addon_id/addon.xml || :)
if [ -n "$addon_so" ]; then
cp -L $PKG_BUILD/.install_pkg/usr/lib/$MEDIACENTER/addons/$addon_name/$addon_so $ADDON_BUILD/$addon_id/
cp -L $PKG_BUILD/.install_pkg/usr/lib/$MEDIACENTER/addons/$addon_id/$addon_so $ADDON_BUILD/$addon_id/
chmod +x $ADDON_BUILD/$addon_id/$addon_so
fi
if [ -d $PKG_BUILD/.install_pkg/usr/lib/kernel-overlays/$addon_id ] ; then
mkdir -p $ADDON_BUILD/$addon_id/kernel-overlay
cp -PR $PKG_BUILD/.install_pkg/usr/lib/kernel-overlays/$addon_id/* $ADDON_BUILD/$addon_id/kernel-overlay
fi
}
install_addon_source() {
if [ -d $PKG_DIR/source ]; then
cp -R $PKG_DIR/source/* "$1"
fi
}
install_addon_images() {
local dest_dir="$1"
if [ -f "$PKG_DIR/icon/icon.png" ]; then
mkdir -p "$dest_dir/resources"
cp "$PKG_DIR/icon/icon.png" "$dest_dir/resources"
fi
if [ -f "$DISTRO_DIR/$DISTRO/addons/fanart.png" ]; then
mkdir -p "$dest_dir/resources"
cp "$DISTRO_DIR/$DISTRO/addons/fanart.png" "$dest_dir/resources"
fi
}
create_addon_xml() {
local addon_xml addon_version addon_name provider_name requires requires_addonname requires_addonversion screenshots
addon_xml="$1/addon.xml"
IFS=" "
for i in $PKG_ADDON_REQUIRES; do
requires_addonname=`echo $i | cut -f1 -d ":"`
requires_addonversion=`echo $i | cut -f2 -d ":"`
requires="$requires\n <import addon=\"$requires_addonname\" version=\"$requires_addonversion\" />"
done
unset IFS
if [ ! -f "$addon_xml" ] ; then
cp $ROOT/config/addon/${PKG_ADDON_TYPE}.xml "$addon_xml"
addon_version=${PKG_ADDON_VERSION:-${ADDON_VERSION}.${PKG_REV}}
else
if [ ! $(which xmlstarlet) ]; then
echo "*** ERROR: $ADDON has addon.xml shipped, you need 'xmlstarlet' ***"
exit 255
fi
addon_version="${PKG_ADDON_VERSION:-$(xmlstarlet sel -t -v "/addon/@version" "$addon_xml").$PKG_REV}"
xmlstarlet ed --inplace -u "/addon[@version]/@version" -v "$addon_version" "$addon_xml"
fi
if [ -f $PKG_DIR/changelog.txt ]; then
sed -e "/@PKG_ADDON_NEWS@/ \
{
r $PKG_DIR/changelog.txt
d
}" -i "$addon_xml"
else
sed -e "s|@PKG_ADDON_NEWS@||g" -i "$addon_xml"
fi
provider_name=${PKG_MAINTAINER:-"Team LibreELEC"}
addon_name=${PKG_ADDON_NAME:-"$PKG_NAME"}
for f in $PKG_DIR/source/resources/screenshot-*.{jpg,png}; do
if [ -f "$f" ]; then
screenshots+="<screenshot>resources/$(basename $f)</screenshot>\n"
fi
done
$SED -e "s|@PKG_ADDON_ID@|$PKG_ADDON_ID|g" \
-e "s|@ADDON_NAME@|$addon_name|g" \
-e "s|@ADDON_VERSION@|$addon_version|g" \
-e "s|@REQUIRES@|$requires|g" \
-e "s|@PKG_SHORTDESC@|$PKG_SHORTDESC|g" \
-e "s|@OS_VERSION@|$OS_VERSION|g" \
-e "s|@PKG_LONGDESC@|$PKG_LONGDESC|g" \
-e "s|@PKG_DISCLAIMER@|$PKG_DISCLAIMER|g" \
-e "s|@PROVIDER_NAME@|$provider_name|g" \
-e "s|@PKG_ADDON_PROVIDES@|$PKG_ADDON_PROVIDES|g" \
-e "s|@PKG_ADDON_SCREENSHOT@|$screenshots|g" \
-e "s|@PKG_ADDON_BROKEN@|$PKG_ADDON_BROKEN|g" \
-i "$addon_xml"
}
install_addon_files() {
install_addon_source "$1"
install_addon_images "$1"
create_addon_xml "$1"
}
tolower() {

View File

@@ -48,6 +48,6 @@ make_target() {
}
makeinstall_target() {
mkdir -p $INSTALL/usr/lib/modules/$(get_module_dir)/$PKG_NAME
cp *.ko $INSTALL/usr/lib/modules/$(get_module_dir)/$PKG_NAME
mkdir -p $INSTALL/$(get_full_module_dir)/$PKG_NAME
cp *.ko $INSTALL/$(get_full_module_dir)/$PKG_NAME
}

View File

@@ -47,6 +47,6 @@ make_target() {
}
makeinstall_target() {
mkdir -p $INSTALL/usr/lib/modules/$(get_module_dir)/$PKG_NAME
cp *.ko $INSTALL/usr/lib/modules/$(get_module_dir)/$PKG_NAME
mkdir -p $INSTALL/$(get_full_module_dir)/$PKG_NAME
cp *.ko $INSTALL/$(get_full_module_dir)/$PKG_NAME
}

View File

@@ -47,6 +47,6 @@ make_target() {
}
makeinstall_target() {
mkdir -p $INSTALL/usr/lib/modules/$(get_module_dir)/$PKG_NAME
cp *.ko $INSTALL/usr/lib/modules/$(get_module_dir)/$PKG_NAME
mkdir -p $INSTALL/$(get_full_module_dir)/$PKG_NAME
cp *.ko $INSTALL/$(get_full_module_dir)/$PKG_NAME
}

View File

@@ -48,6 +48,6 @@ make_target() {
}
makeinstall_target() {
mkdir -p $INSTALL/usr/lib/modules/$(get_module_dir)/$PKG_NAME
cp *.ko $INSTALL/usr/lib/modules/$(get_module_dir)/$PKG_NAME
mkdir -p $INSTALL/$(get_full_module_dir)/$PKG_NAME
cp *.ko $INSTALL/$(get_full_module_dir)/$PKG_NAME
}

View File

@@ -46,6 +46,6 @@ make_target() {
}
makeinstall_target() {
mkdir -p $INSTALL/usr/lib/modules/$(get_module_dir)/$PKG_NAME
cp *.ko $INSTALL/usr/lib/modules/$(get_module_dir)/$PKG_NAME
mkdir -p $INSTALL/$(get_full_module_dir)/$PKG_NAME
cp *.ko $INSTALL/$(get_full_module_dir)/$PKG_NAME
}

View File

@@ -42,6 +42,6 @@ make_target() {
}
makeinstall_target() {
mkdir -p $INSTALL/usr/lib/modules/$(get_module_dir)/bcm_sta
cp *.ko $INSTALL/usr/lib/modules/$(get_module_dir)/$PKG_NAME
mkdir -p $INSTALL/$(get_full_module_dir)/bcm_sta
cp *.ko $INSTALL/$(get_full_module_dir)/$PKG_NAME
}

View File

@@ -42,9 +42,9 @@ make_target() {
}
makeinstall_target() {
mkdir -p $INSTALL/usr/lib/modules/$(get_module_dir)/bcmdhd
cp *.ko $INSTALL/usr/lib/modules/$(get_module_dir)/bcmdhd
mkdir -p $INSTALL/$(get_full_module_dir)/bcmdhd
cp *.ko $INSTALL/$(get_full_module_dir)/bcmdhd
mkdir -p $INSTALL/usr/lib/firmware/brcm
cp $PKG_DIR/config/config.txt $INSTALL/usr/lib/firmware/brcm
mkdir -p $INSTALL/$(get_full_firmware_dir)/brcm
cp $PKG_DIR/config/config.txt $INSTALL/$(get_full_firmware_dir)/brcm
}

View File

@@ -58,8 +58,8 @@ pre_configure_target() {
makeinstall_target() {
cd $PKG_BUILD
mkdir -p $INSTALL/usr/lib/modules/$(get_module_dir)/hdhomerun
cp kernel/*.ko $INSTALL/usr/lib/modules/$(get_module_dir)/hdhomerun/
mkdir -p $INSTALL/$(get_full_module_dir)/hdhomerun
cp kernel/*.ko $INSTALL/$(get_full_module_dir)/hdhomerun/
mkdir -p $INSTALL/usr/bin
cp -PR .$TARGET_NAME/userhdhomerun $INSTALL/usr/bin

View File

@@ -42,6 +42,6 @@ make_target() {
}
makeinstall_target() {
mkdir -p $INSTALL/usr/lib/modules/$(get_module_dir)/$PKG_NAME
cp *.ko $INSTALL/usr/lib/modules/$(get_module_dir)/$PKG_NAME
mkdir -p $INSTALL/$(get_full_module_dir)/$PKG_NAME
cp *.ko $INSTALL/$(get_full_module_dir)/$PKG_NAME
}

View File

@@ -57,6 +57,6 @@ make_target() {
}
makeinstall_target() {
mkdir -p $INSTALL/usr/lib/modules/$KERNEL_VER/updates
find $PKG_BUILD/v4l/ -name \*.ko -exec cp {} $INSTALL/usr/lib/modules/$KERNEL_VER/updates \;
mkdir -p $INSTALL/$(get_full_module_dir)/updates
find $PKG_BUILD/v4l/ -name \*.ko -exec cp {} $INSTALL/$(get_full_module_dir)/updates \;
}

View File

@@ -42,6 +42,6 @@ make_target() {
}
makeinstall_target() {
mkdir -p $INSTALL/usr/lib/modules/$(get_module_dir)/$PKG_NAME
cp *.ko $INSTALL/usr/lib/modules/$(get_module_dir)/$PKG_NAME
mkdir -p $INSTALL/$(get_full_module_dir)/$PKG_NAME
cp *.ko $INSTALL/$(get_full_module_dir)/$PKG_NAME
}

View File

@@ -38,13 +38,13 @@ make_target() {
}
makeinstall_target() {
mkdir -p $INSTALL/usr/lib/modules/$(get_module_dir)/$PKG_NAME
mkdir -p $INSTALL/$(get_full_module_dir)/$PKG_NAME
if [ $PROJECT = "WeTek_Play_2" ]; then
cp driver/wetekdvb_play2.ko $INSTALL/usr/lib/modules/$(get_module_dir)/$PKG_NAME/wetekdvb.ko
cp driver/wetekdvb_play2.ko $INSTALL/$(get_full_module_dir)/$PKG_NAME/wetekdvb.ko
else
cp driver/wetekdvb.ko $INSTALL/usr/lib/modules/$(get_module_dir)/$PKG_NAME
cp driver/wetekdvb.ko $INSTALL/$(get_full_module_dir)/$PKG_NAME
fi
mkdir -p $INSTALL/usr/lib/firmware
cp firmware/* $INSTALL/usr/lib/firmware
mkdir -p $INSTALL/$(get_full_firmware_dir)
cp firmware/* $INSTALL/$(get_full_firmware_dir)
}

View File

@@ -36,7 +36,7 @@ make_target() {
}
makeinstall_target() {
DESTDIR=$INSTALL/usr ./install
DESTDIR=$INSTALL/$(get_kernel_overlay_dir) ./install
}
post_makeinstall_target() {

View File

@@ -35,5 +35,5 @@ make_target() {
}
makeinstall_target() {
DESTDIR=$INSTALL/usr ./install
DESTDIR=$INSTALL/$(get_kernel_overlay_dir) ./install
}

View File

@@ -42,7 +42,7 @@ make_target() {
}
makeinstall_target() {
mkdir -p $INSTALL/usr/lib/firmware/vpu
cp -P firmware/vpu/vpu_fw_imx6d.bin $INSTALL/usr/lib/firmware/vpu
cp -P firmware/vpu/vpu_fw_imx6q.bin $INSTALL/usr/lib/firmware/vpu
mkdir -p $INSTALL/$(get_full_firmware_dir)/vpu
cp -P firmware/vpu/vpu_fw_imx6d.bin $INSTALL/$(get_full_firmware_dir)/vpu
cp -P firmware/vpu/vpu_fw_imx6q.bin $INSTALL/$(get_full_firmware_dir)/vpu
}

View File

@@ -36,5 +36,5 @@ make_target() {
}
makeinstall_target() {
DESTDIR=$INSTALL/usr ./install
DESTDIR=$INSTALL/$(get_kernel_overlay_dir) ./install
}

View File

@@ -42,7 +42,7 @@ make_target() {
# Install additional miscellaneous drivers
makeinstall_target() {
FW_TARGET_DIR=$INSTALL/usr/lib/firmware
FW_TARGET_DIR=$INSTALL/$(get_full_firmware_dir)
FW_LISTS="${PKG_DIR}/firmwares/any.dat ${PKG_DIR}/firmwares/${TARGET_ARCH}.dat"
FW_LISTS+=" ${PROJECT_DIR}/${PROJECT}/${PKG_NAME}/firmwares/any.dat"

View File

@@ -36,5 +36,5 @@ make_target() {
}
makeinstall_target() {
DESTDIR=$INSTALL/usr ./install
DESTDIR=$INSTALL/$(get_kernel_overlay_dir) ./install
}

View File

@@ -36,20 +36,20 @@ make_target() {
}
makeinstall_target() {
mkdir -p $INSTALL/usr/lib/firmware/brcm
mkdir -p $INSTALL/$(get_full_firmware_dir)/brcm
# AP6255
cp -PR bcm_ampak/config/6255/fw_bcm43455c0_*.bin $INSTALL/usr/lib/firmware/brcm
cp -P bcm_ampak/config/6255/nvram.txt $INSTALL/usr/lib/firmware/brcm/nvram_ap6255.txt
cp -P bcm_ampak/config/6255/BT/BCM4345C0.hcd $INSTALL/usr/lib/firmware/brcm/bcm4345c0.hcd
cp -PR bcm_ampak/config/6255/fw_bcm43455c0_*.bin $INSTALL/$(get_full_firmware_dir)/brcm
cp -P bcm_ampak/config/6255/nvram.txt $INSTALL/$(get_full_firmware_dir)/brcm/nvram_ap6255.txt
cp -P bcm_ampak/config/6255/BT/BCM4345C0.hcd $INSTALL/$(get_full_firmware_dir)/brcm/bcm4345c0.hcd
# AP6330
cp -PR bcm_ampak/config/AP6330/Wi-Fi/fw_bcm40183b2*.bin $INSTALL/usr/lib/firmware/brcm
cp -P bcm_ampak/config/AP6330/Wi-Fi/nvram_ap6330.txt $INSTALL/usr/lib/firmware/brcm
cp -P bcm_ampak/config/AP6330/BT/bcm40183b2.hcd $INSTALL/usr/lib/firmware/brcm
cp -PR bcm_ampak/config/AP6330/Wi-Fi/fw_bcm40183b2*.bin $INSTALL/$(get_full_firmware_dir)/brcm
cp -P bcm_ampak/config/AP6330/Wi-Fi/nvram_ap6330.txt $INSTALL/$(get_full_firmware_dir)/brcm
cp -P bcm_ampak/config/AP6330/BT/bcm40183b2.hcd $INSTALL/$(get_full_firmware_dir)/brcm
# AP6335
cp -PR bcm_ampak/config/6335/fw_bcm4339a0_*.bin $INSTALL/usr/lib/firmware/brcm
cp -P bcm_ampak/config/6335/nvram.txt $INSTALL/usr/lib/firmware/brcm/nvram_ap6335.txt
cp -P bcm_ampak/config/6335/BT/bcm4335c0.hcd $INSTALL/usr/lib/firmware/brcm
cp -PR bcm_ampak/config/6335/fw_bcm4339a0_*.bin $INSTALL/$(get_full_firmware_dir)/brcm
cp -P bcm_ampak/config/6335/nvram.txt $INSTALL/$(get_full_firmware_dir)/brcm/nvram_ap6335.txt
cp -P bcm_ampak/config/6335/BT/bcm4335c0.hcd $INSTALL/$(get_full_firmware_dir)/brcm
}

Some files were not shown because too many files have changed in this diff Show More