Index: head/sysutils/devcpu-data/Makefile =================================================================== --- head/sysutils/devcpu-data/Makefile (revision 458986) +++ head/sysutils/devcpu-data/Makefile (revision 458987) @@ -1,35 +1,36 @@ # Created by: stas # $FreeBSD$ PORTNAME= data PORTVERSION= 1.14 +PORTREVISION= 1 CATEGORIES= sysutils MASTER_SITES= https://downloadmirror.intel.com/27431/eng/:intel \ LOCAL/sbruno:amd PKGNAMEPREFIX= devcpu- DISTFILES= microcode-20171117.tgz:intel amd64-microcode_3.20171205.1.tar.xz:amd MAINTAINER= clarkjc@runbox.com COMMENT= Intel and AMD CPUs microcode updates LICENSE= EULA LICENSE_NAME= Intel Software License Agreement LICENSE_FILE= ${FILESDIR}/LICENSE LICENSE_PERMS= dist-mirror no-dist-sell pkg-mirror no-pkg-sell auto-accept ONLY_FOR_ARCHS= amd64 i386 NO_ARCH= yes NO_WRKSUBDIR= yes DATADIR= ${PREFIX}/share/cpucontrol USE_RC_SUBR= microcode_update post-extract: ${CP} -p ${FILESDIR}/Makefile ${FILESDIR}/ucode-tool.c ${WRKSRC} do-install: ${MKDIR} ${STAGEDIR}${DATADIR}/ ${INSTALL_DATA} ${WRKSRC}/mcodes/* ${STAGEDIR}${DATADIR}/ .include Index: head/sysutils/devcpu-data/files/microcode_update.in =================================================================== --- head/sysutils/devcpu-data/files/microcode_update.in (revision 458986) +++ head/sysutils/devcpu-data/files/microcode_update.in (revision 458987) @@ -1,78 +1,76 @@ #!/bin/sh # # $FreeBSD$ # # PROVIDE: microcode_update # REQUIRE: root mountcritlocal # KEYWORD: nojail # BEFORE: SERVERS # # Add the following line to /etc/rc.conf to enable flow-capture: # microcode_update_enable (bool): Set it to "YES" to update microcode on startup # Set to "NO" by default. # microcode_update_datadir (str): Directory, microcode updates stored in. # Default is "%%DATADIR%%" # microcode_update_cpus (str): A list of cpus to update on startup, or "ALL" for all. # Example: microcode_update_cpus_cpus="0 CPU0" # Set to "ALL" by default. # microcode_update_flags (str): Flags for cpucontrol(8). . /etc/rc.subr name="microcode_update" rcvar=microcode_update_enable stop_cmd=":" start_precmd="microcode_update_prepare" start_cmd="microcode_update_start" requires_modules="cpuctl" CMT="/usr/sbin/cpucontrol" microcode_update_prepare() { if ! kldstat -q -m cpuctl; then if ! kldload cpuctl > /dev/null 2>&1; then warn "Can't load cpuctl module." return 1 fi fi } microcode_update_start() { echo "Updating CPU Microcode..." if [ "${microcode_cpus}" = "ALL" ]; then ncpu=`/sbin/sysctl -n hw.ncpu` cpus=`jot ${ncpu} 0`; else cpus=${microcode_cpus} fi for i in ${cpus}; do ${CMT} -u ${microcode_update_flags} \ -d "${microcode_update_datadir}" /dev/cpuctl${i} 2>&1 | \ logger -p daemon.notice -t microcode_update || \ (echo "Microcode Update Failed." && exit 1) done if [ "${microcode_cpus}" = "ALL" ]; then - for i in ${cpus}; do ${CMT} -e /dev/cpuctl${i} >/dev/null 2>&1 if [ $? -ne 0 ]; then echo "Re-evalutation of CPU flags Failed." exit 1 fi - done fi echo "Done." } load_rc_config $name # Set default values : ${microcode_update_enable="NO"} : ${microcode_update_datadir="%%DATADIR%%"} : ${microcode_cpus="ALL"} : ${microcode_update_flags=""} run_rc_command "$1"