#! /bin/sh
DSDTPASS=
#通过echo输出log 并换行
echo -n "Testing presence of /sys/firmware/acpi: "
#检查是否存在/sys/firmware/acpi 这个目录
if [ -d /sys/firmware/acpi ]; then
echo PASS
else
echo FAIL
fi
echo -n "Testing presence of /sys/firmware/acpi/tables/DSDT: "
#检查是否存在这个文件/sys/firmware/acpi/tables/DSDT
if [ -f /sys/firmware/acpi/tables/DSDT ]; then
#输出PASS,并给DSDTPASS 赋值
echo PASS
DSDTPASS=pass
else
echo FAIL
fi
echo -n "Can decompile DSDT: "
#-x 检查/usr/bin/iasl 是个可以执行,-a 表示and -n 表示DSDTPASS 不为null
if [ -x /usr/bin/iasl -a -n "$DSDTPASS" ]; then
#copy 文件到目录
cp /sys/firmware/acpi/tables/DSDT /tmp/
#用飘键得到执行的结果,这里是反汇编DSDT表
ERROR=`/usr/bin/iasl -d /tmp/DSDT 2>&1 | grep DSDT.dsl`
#判断反汇编的结果是否为null
if [ -n "$ERROR" ]; then
echo PASS
else
echo FAIL
fi
#删除临时文件
rm /tmp/DSDT /tmp/DSDT.dsl
else
echo SKIP
fi