mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2024-11-18 22:54:00 +00:00
56 lines
1 KiB
Text
56 lines
1 KiB
Text
|
#!/bin/bash
|
||
|
|
||
|
. /etc/rc.conf
|
||
|
. /etc/rc.d/functions
|
||
|
|
||
|
DEVICE=/dev/cpu/microcode
|
||
|
RETVAL=0
|
||
|
MODULE=0
|
||
|
|
||
|
case "$1" in
|
||
|
start|restart|load)
|
||
|
stat_busy "Applying Intel IA32 Microcode update"
|
||
|
# Lets just be sure we have a device file...
|
||
|
if [ ! -e $DEVICE ]; then
|
||
|
modprobe microcode
|
||
|
if [ $? -le 0 ]; then
|
||
|
MODULE=1
|
||
|
else
|
||
|
stat_fail
|
||
|
echo "$0: microcode device $DEVICE doesn't exist"
|
||
|
exit 1
|
||
|
fi
|
||
|
fi
|
||
|
|
||
|
if [ ! -c $DEVICE ]; then
|
||
|
echo "$0: $DEVICE not a character device"
|
||
|
stat_fail
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
/usr/sbin/microcode_ctl -Qu
|
||
|
RETVAL=$?
|
||
|
if [ $RETVAL -le 0 ]; then
|
||
|
stat_done
|
||
|
if [ $MODULE = 1 ]; then
|
||
|
modprobe -r microcode
|
||
|
fi
|
||
|
else
|
||
|
stat_fail
|
||
|
# trap the most common cases
|
||
|
if [ $RETVAL -eq 3 ]; then
|
||
|
echo "$0: Cannot find source file \"/etc/microcode.dat\""
|
||
|
elif [ $RETVAL -eq 19 ]; then
|
||
|
grep MICROCODE /usr/include/linux/autoconf.h | grep -q ^#define
|
||
|
if [ $? -ne 0 ]; then
|
||
|
echo "$0: This kernel doesn't appear to have microcode device support"
|
||
|
fi
|
||
|
fi
|
||
|
fi
|
||
|
;;
|
||
|
stop)
|
||
|
;;
|
||
|
*)
|
||
|
echo "usage: $0 {start|restart}"
|
||
|
esac
|