auto-import microcode_ctl-1.10-1.1 on branch devel from
microcode_ctl-1.10-1.1.src.rpm
This commit is contained in:
parent
079465ba7b
commit
e4b3410eba
@ -0,0 +1 @@
|
||||
microcode_ctl-1.10.tar.gz
|
86
microcode_ctl.init
Executable file
86
microcode_ctl.init
Executable file
@ -0,0 +1,86 @@
|
||||
#!/bin/bash
|
||||
# chkconfig: - 0 99
|
||||
# description: script to apply cpu microcode
|
||||
|
||||
# vars:
|
||||
#
|
||||
# START distribution specific way of kicking programs
|
||||
# END distribution specific way of checking return status
|
||||
# PROGRAM the executable to run
|
||||
# ARGUMENTS the argument we're going to call PROGRAM with
|
||||
|
||||
DEVICE=/dev/cpu/0/microcode
|
||||
ARGUMENTS=-Qu
|
||||
RETVAL=0
|
||||
PROGRAM=/sbin/microcode_ctl
|
||||
|
||||
# Lets just be sure we have a device file...
|
||||
if [ ! -e $DEVICE ];
|
||||
then
|
||||
echo $"$0: microcode device $DEVICE doesn't exist?"
|
||||
exit 1
|
||||
elif [ ! -c $DEVICE ];
|
||||
then
|
||||
echo $"$0: $DEVICE not a character device?"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -e /etc/firmware/microcode.dat ];
|
||||
then
|
||||
echo $"$0: microcode datafile not present (/etc/firmware/microcode.dat)"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
. /etc/init.d/functions
|
||||
|
||||
# perform the update
|
||||
function start ()
|
||||
{
|
||||
RETVAL=1
|
||||
# Make sure we are on an intel machine
|
||||
vendor=`cat /proc/cpuinfo | \
|
||||
grep "^vendor_id" | sort -u | \
|
||||
awk -F ": " '{ print $2 }'`
|
||||
if [ "$vendor" != "GenuineIntel" ]; then
|
||||
return
|
||||
fi
|
||||
|
||||
# Microcode wasn't available until 686's.
|
||||
family=`cat /proc/cpuinfo | \
|
||||
grep "^cpu family" | sort -u | \
|
||||
awk -F ": " '{ print $2 }'`
|
||||
if [ $family -lt 6 ]; then
|
||||
return
|
||||
fi
|
||||
|
||||
echo -n $"Applying Intel Microcode update: "
|
||||
|
||||
daemon $PROGRAM $ARGUMENTS
|
||||
RETVAL=$?
|
||||
|
||||
# trap the most common case, errno 19 = no device
|
||||
if [ $RETVAL -eq 19 ];
|
||||
then
|
||||
echo $"$0: kernel does not have microcode device support"
|
||||
fi
|
||||
echo
|
||||
}
|
||||
|
||||
|
||||
case "$1" in
|
||||
start|reload|force-reload|restart)
|
||||
start
|
||||
exit 0
|
||||
;;
|
||||
stop)
|
||||
;;
|
||||
status)
|
||||
# I wonder when the driver will let us do this...
|
||||
# maybe I'll write it ;)
|
||||
echo $"$0: reading microcode status is not yet supported"
|
||||
;;
|
||||
*)
|
||||
echo $"Usage: $0 {start|restart}"
|
||||
exit 1
|
||||
esac
|
74
microcode_ctl.patch
Normal file
74
microcode_ctl.patch
Normal file
@ -0,0 +1,74 @@
|
||||
--- microcode_ctl-1.10/microcode_ctl.c~ Sat Apr 14 23:18:13 2001
|
||||
+++ microcode_ctl-1.10/microcode_ctl.c Fri Dec 7 10:31:08 2001
|
||||
@@ -36,8 +36,8 @@
|
||||
#define BUFFER_SIZE 4096
|
||||
#define MAX_MICROCODE 2000000
|
||||
|
||||
-#define MICROCODE_DEVICE_DEFAULT "/dev/cpu/microcode"
|
||||
-#define MICROCODE_FILE_DEFAULT "/etc/microcode.dat"
|
||||
+#define MICROCODE_DEVICE_DEFAULT "/dev/cpu/0/microcode"
|
||||
+#define MICROCODE_FILE_DEFAULT "/etc/firmware/microcode.dat"
|
||||
|
||||
/* yuck */
|
||||
#ifndef MICROCODE_IOCFREE
|
||||
--- microcode_ctl-1.10/Makefile~ Mon Jun 11 16:57:42 2001
|
||||
+++ microcode_ctl-1.10/Makefile Tue Jan 8 20:20:58 2002
|
||||
@@ -20,7 +20,7 @@
|
||||
PREFIX = /usr/local
|
||||
|
||||
INSDIR = $(PREFIX)/sbin
|
||||
-MANDIR = $(PREFIX)/man/man8
|
||||
+MANDIR = $(PREFIX)/share/man/man8
|
||||
MICDIR = /etc
|
||||
|
||||
RCFILE = microcode_ctl.start
|
||||
@@ -45,7 +45,7 @@
|
||||
$(DESTDIR)$(RCLINKTO)
|
||||
|
||||
- $(INS) -s -m 755 $(PROGRAM) $(DESTDIR)$(INSDIR)
|
||||
+ $(INS) -m 755 $(PROGRAM) $(DESTDIR)$(INSDIR)
|
||||
- $(INS) -m 644 $(MICROCODE) $(DESTDIR)$(MICDIR)/microcode.dat
|
||||
+ $(INS) -m 644 $(MICROCODE) $(DESTDIR)/etc/firmware/microcode.dat
|
||||
|
||||
$(INS) -m 644 $(MANPAGE) $(DESTDIR)$(MANDIR)
|
||||
gzip -9f $(DESTDIR)$(MANDIR)/$(MANPAGE)
|
||||
--- microcode_ctl-1.10/microcode_ctl.c~ 2004-10-28 20:37:08.000000000 -0400
|
||||
+++ microcode_ctl-1.10/microcode_ctl.c 2004-10-28 20:37:35.000000000 -0400
|
||||
@@ -168,7 +168,7 @@ int main(int argc, char *argv[])
|
||||
|
||||
if (upload) {
|
||||
if((return_code = do_update(device, filename)))
|
||||
- exit(return_code);
|
||||
+ exit(0);
|
||||
} else
|
||||
usage();
|
||||
|
||||
--- microcode_ctl-1.10/microcode_ctl.c.org 2003-05-28 19:56:22.000000000 +0200
|
||||
+++ microcode_ctl-1.10/microcode_ctl.c 2003-05-28 19:57:01.000000000 +0200
|
||||
@@ -95,11 +95,13 @@
|
||||
{
|
||||
FILE *fd;
|
||||
char line_buffer[BUFFER_SIZE];
|
||||
- int microcode[MAX_MICROCODE];
|
||||
+ int *microcode;
|
||||
int *pos;
|
||||
int outfd;
|
||||
int wrote, length;
|
||||
|
||||
+ microcode=malloc(sizeof(int)* MAX_MICROCODE);
|
||||
+ if (!microcode) return ENOMEM;
|
||||
|
||||
if( (fd=fopen(filename, "r")) == NULL){
|
||||
if(print_error_messages)
|
||||
--- microcode_ctl-1.10/microcode_ctl.c~ 2003-12-13 15:05:56.000000000 +0100
|
||||
+++ microcode_ctl-1.10/microcode_ctl.c 2003-12-13 15:05:56.000000000 +0100
|
||||
@@ -146,7 +146,7 @@
|
||||
return errno;
|
||||
}
|
||||
|
||||
- if( (wrote = write(outfd, µcode, length)) < 0){
|
||||
+ if( (wrote = write(outfd, microcode, length)) < 0){
|
||||
if(print_error_messages)
|
||||
fprintf(stderr, "%s: error writing to '%s' errno=%d (%s)\n"
|
||||
"%s: there may be messages from the driver in your system log.\n",
|
||||
|
71
microcode_ctl.spec
Normal file
71
microcode_ctl.spec
Normal file
@ -0,0 +1,71 @@
|
||||
Summary: Tool to update x86/x86-64 CPU microcode.
|
||||
Name: microcode_ctl
|
||||
Version: 1.10
|
||||
Release: %(R="$Revision$"; RR="${R##: }"; echo ${RR%%?})
|
||||
Serial: 1
|
||||
Group: System Environment/Base
|
||||
License: GPL
|
||||
Source0: microcode_ctl-1.10.tar.gz
|
||||
Source1: microcode_ctl.init
|
||||
Buildroot: %{_tmppath}/%{name}-%{version}-root
|
||||
Prereq: /sbin/chkconfig /sbin/service
|
||||
Requires: fileutils kudzu
|
||||
Obsoletes: kernel-utils
|
||||
ExclusiveArch: i386 x86_64
|
||||
|
||||
Patch1: microcode_ctl.patch
|
||||
|
||||
%description
|
||||
microcode_ctl - updates the microcode on Intel x86/x86-64 CPU's
|
||||
|
||||
%prep
|
||||
%setup -q -c
|
||||
%patch1 -p0
|
||||
|
||||
%build
|
||||
rm -rf $RPM_BUILD_ROOT
|
||||
|
||||
mkdir -p %{buildroot}/usr/sbin
|
||||
mkdir -p %{buildroot}/usr/man
|
||||
mkdir -p %{buildroot}/etc/rc.d/init.d
|
||||
mkdir -p %{buildroot}/etc/sysconfig
|
||||
|
||||
cd microcode_ctl-1.10
|
||||
make CFLAGS="$RPM_OPT_FLAGS"
|
||||
cd ..
|
||||
|
||||
%install
|
||||
mkdir -p %{buildroot}/usr/share/man/man{1,8}
|
||||
|
||||
cd microcode_ctl-1.10
|
||||
|
||||
make DESTDIR=$RPM_BUILD_ROOT PREFIX=%{_prefix} \
|
||||
INSDIR=/sbin MANDIR=%{_mandir}/man8 RCDIR=/etc MICDIR=/etc/firmware install clean
|
||||
|
||||
install %{SOURCE1} %{buildroot}/etc/rc.d/init.d/microcode_ctl
|
||||
rm %{buildroot}/etc/init.d/microcode_ctl
|
||||
cd ..
|
||||
|
||||
chmod -R a-s %{buildroot}
|
||||
%clean
|
||||
[ "$RPM_BUILD_ROOT" != "/" ] && [ -d $RPM_BUILD_ROOT ] && rm -rf $RPM_BUILD_ROOT;
|
||||
|
||||
%files
|
||||
%defattr(-,root,root)
|
||||
/etc/rc.d/init.d/microcode_ctl
|
||||
/etc/firmware/*
|
||||
/sbin/microcode_ctl
|
||||
%attr(0644,root,root) %{_mandir}/*/*
|
||||
|
||||
%preun
|
||||
if [ "$1" = "0" ] ; then
|
||||
/sbin/chkconfig --del microcode_ctl
|
||||
fi
|
||||
|
||||
%post
|
||||
/sbin/chkconfig --add microcode_ctl
|
||||
|
||||
%changelog
|
||||
* Sat Dec 18 2004 Dave Jones <davej@redhat.com>
|
||||
- Initial packaging, based upon kernel-utils.
|
||||
|
Loading…
Reference in New Issue
Block a user