Last active
January 10, 2018 21:46
-
-
Save robbat2/71d49ad60e1ccdb8054830879ba0dd21 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Copyright 1999-2015 Gentoo Foundation | |
| # Distributed under the terms of the GNU General Public License v2 | |
| EAPI="4" | |
| inherit toolchain-funcs | |
| # 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="24661" | |
| DESCRIPTION="Intel IA32 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 monolithic +split-ucode" | |
| REQUIRED_USE="|| ( initramfs monolithic split-ucode )" | |
| DEPEND="initramfs? ( sys-apps/iucode_tool )" | |
| RDEPEND="!<sys-apps/microcode-ctl-1.17-r2" #268586 | |
| S=${WORKDIR} | |
| src_unpack() { | |
| default | |
| cp "${FILESDIR}"/intel-microcode2ucode.c ./ || die | |
| } | |
| src_compile() { | |
| if use initramfs ; then | |
| iucode_tool --write-earlyfw=microcode.cpio microcode.dat || die | |
| fi | |
| if use split-ucode ; then | |
| tc-env_build emake intel-microcode2ucode | |
| ./intel-microcode2ucode microcode.dat || die | |
| fi | |
| } | |
| src_install() { | |
| insinto /lib/firmware | |
| use initramfs && doins microcode.cpio | |
| use monolithic && doins microcode.dat | |
| use split-ucode && doins -r intel-ucode | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # 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="27431" | |
| 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 | |
| } | |
| 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/microcode.cpio ) | |
| # 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 | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment