mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-09-24 17:09:10 -07:00
sys-firmware/intel-microcode: Rev bump to update ebuild code
Ebuild uses microcodes from 2017-11-17 but ebuild code changes from recent ebuilds were backported. Package-Manager: Portage-2.3.24, Repoman-2.3.6
This commit is contained in:
@@ -0,0 +1,95 @@
|
||||
# Copyright 1999-2018 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="6"
|
||||
|
||||
inherit toolchain-funcs mount-boot
|
||||
|
||||
# Find updates by searching and clicking the first link (hopefully it's the one):
|
||||
# http://www.intel.com/content/www/us/en/search.html?keyword=Processor+Microcode+Data+File
|
||||
|
||||
NUM="27337"
|
||||
DESCRIPTION="Intel IA32/IA64 microcode update data"
|
||||
HOMEPAGE="http://inertiawar.com/microcode/ https://downloadcenter.intel.com/Detail_Desc.aspx?DwnldID=${NUM}"
|
||||
SRC_URI="http://downloadmirror.intel.com/${NUM}/eng/microcode-${PV}.tgz"
|
||||
|
||||
LICENSE="intel-ucode"
|
||||
SLOT="0"
|
||||
KEYWORDS="-* ~amd64 ~x86"
|
||||
IUSE="initramfs +split-ucode"
|
||||
REQUIRED_USE="|| ( initramfs split-ucode )"
|
||||
|
||||
DEPEND="sys-apps/iucode_tool"
|
||||
RDEPEND="!<sys-apps/microcode-ctl-1.17-r2" #268586
|
||||
|
||||
S=${WORKDIR}
|
||||
|
||||
# TODO:
|
||||
# Blacklist bad microcode here.
|
||||
DEFAULT_MICROCODE_SIGNATURES=""
|
||||
|
||||
# Advanced users only:
|
||||
# merge with:
|
||||
# only current CPU: MICROCODE_SIGNATURES="-S"
|
||||
# only specific CPU: MICROCODE_SIGNATURES="-s 0x00000f4a -s 0x00010676"
|
||||
# exclude specific CPU: MICROCODE_SIGNATURES="-s !0x00000686"
|
||||
MICROCODE_SIGNATURES="${MICROCODE_SIGNATURES:=${DEFAULT_MICROCODE_SIGNATURES}}"
|
||||
|
||||
pkg_pretend() {
|
||||
if [[ "${MICROCODE_SIGNATURES}" != "${DEFAULT_MICROCODE_SIGNATURES}" ]]; then
|
||||
ewarn "MICROCODE_SIGNATURES is set!"
|
||||
ewarn "The user has decided to install only a SUBSET of microcode."
|
||||
fi
|
||||
use initramfs && mount-boot_pkg_pretend
|
||||
}
|
||||
|
||||
src_install() {
|
||||
# This will take ALL of the upstream microcode sources:
|
||||
# - microcode.dat
|
||||
# - intel-ucode/
|
||||
# In some cases, they have not contained the same content (eg the directory has newer stuff).
|
||||
MICROCODE_SRC=(
|
||||
"${S}"/microcode.dat
|
||||
"${S}"/intel-ucode/
|
||||
)
|
||||
opts=(
|
||||
${MICROCODE_SIGNATURES}
|
||||
# be strict about what we are doing
|
||||
--overwrite
|
||||
--strict-checks
|
||||
--no-ignore-broken
|
||||
# show everything we find
|
||||
--list-all
|
||||
# show what we selected
|
||||
--list
|
||||
)
|
||||
|
||||
# The earlyfw cpio needs to be in /boot because it must be loaded before
|
||||
# rootfs is mounted.
|
||||
use initramfs && dodir /boot && opts+=( --write-earlyfw="${ED%/}"/boot/intel-uc.img )
|
||||
# split location:
|
||||
use split-ucode && dodir /lib/firmware/intel-ucode && opts+=( --write-firmware="${ED%/}"/lib/firmware/intel-ucode )
|
||||
|
||||
iucode_tool \
|
||||
"${opts[@]}" \
|
||||
"${MICROCODE_SRC[@]}" \
|
||||
|| die "iucode_tool ${opts[@]} ${MICROCODE_SRC[@]}"
|
||||
|
||||
dodoc releasenote
|
||||
}
|
||||
|
||||
pkg_preinst() {
|
||||
use initramfs && mount-boot_pkg_preinst
|
||||
}
|
||||
|
||||
pkg_prerm() {
|
||||
use initramfs && mount-boot_pkg_prerm
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
use initramfs && mount-boot_pkg_postrm
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
use initramfs && mount-boot_pkg_postinst
|
||||
}
|
||||
Reference in New Issue
Block a user