Loading metrics/hardware_class +44 −24 Original line number Diff line number Diff line Loading @@ -8,49 +8,69 @@ # qualification ID) of this device, or "unknown" if it can't determine # the hardware class. # TODO(petkov): The hardware qualification ID is not available on # systems yet, so the script uses alternative ways to identify # different system classes (e.g., the WiFi adapter PCI vendor and # device IDs). Switch the script to use real hardware qualification ID # when that becomes available. # TODO(petkov): If the hardware qualification ID is not available on # the systems, the script uses alternative ways to identify different # system classes (e.g., the WiFi adapter PCI vendor and device # IDs). Switch the script to use only real hardware qualification ID # when that becomes available on all systems. HARDWARE_CLASS= readonly HWID_PATH=/sys/bus/platform/devices/chromeos_acpi/HWID # Appends a new component ID to the hardware class. Separates IDs with # dashes. append_class() { [ -n "$1" ] || return [ -n "$HARDWARE_CLASS" ] && HARDWARE_CLASS="${HARDWARE_CLASS}-" HARDWARE_CLASS="${HARDWARE_CLASS}$1" } hwid() { [ -r "$HWID_PATH" ] || return local acpihwid acpihwid=$(cat "$HWID_PATH") [ -n "$acpihwid" ] || return append_class "$acpihwid" } # Adds the CPU family, model and stepping info, if available, to the # class. cpu() { [ -r /proc/cpuinfo ] || return FAMILY=`grep -m1 '^cpu family' /proc/cpuinfo \ | sed 's/cpu family\s\+:\s\+\([0-9]\+\)$/\1/'` MODEL=`grep -m1 '^model' /proc/cpuinfo \ | sed 's/model\s\+:\s\+\([0-9]\+\)$/\1/'` STEPPING=`grep -m1 '^stepping' /proc/cpuinfo \ | sed 's/stepping\s\+:\s\+\([0-9]\+\)$/\1/'` if [ -n "$FAMILY" ] && [ -n "$MODEL" ] && [ -n "$STEPPING" ]; then append_class "cpu/$FAMILY:$MODEL:$STEPPING" local family family=$(grep -m1 '^cpu family' /proc/cpuinfo \ | sed 's/cpu family\s\+:\s\+\([0-9]\+\)$/\1/') local model model=$(grep -m1 '^model' /proc/cpuinfo \ | sed 's/model\s\+:\s\+\([0-9]\+\)$/\1/') local stepping stepping=$(grep -m1 '^stepping' /proc/cpuinfo \ | sed 's/stepping\s\+:\s\+\([0-9]\+\)$/\1/') if [ -n "$family" ] && [ -n "$model" ] && [ -n "$stepping" ]; then append_class "cpu/$family:$model:$stepping" fi } # Adds the wlan0 PCI vendor and device ID, if available, to the class. wlan() { WLAN_DEV=/sys/class/net/wlan0/device if [ -r $WLAN_DEV/vendor ] && [ -r $WLAN_DEV/device ]; then WLAN_ID=`paste -d ':' $WLAN_DEV/vendor $WLAN_DEV/device | sed s/0x//g` append_class "wlan0/$WLAN_ID" local dev=/sys/class/net/wlan0/device if [ -r $dev/vendor ] && [ -r $dev/device ]; then local id id=$(paste -d ':' $dev/vendor $dev/device | sed s/0x//g) append_class "wlan0/$id" fi } HARDWARE_CLASS= main() { hwid # If the HWID is not available, use system component IDs. if [ -z "$HARDWARE_CLASS" ]; then cpu wlan [ -z "$HARDWARE_CLASS" ] && HARDWARE_CLASS=unknown fi echo $HARDWARE_CLASS } main $@ Loading
metrics/hardware_class +44 −24 Original line number Diff line number Diff line Loading @@ -8,49 +8,69 @@ # qualification ID) of this device, or "unknown" if it can't determine # the hardware class. # TODO(petkov): The hardware qualification ID is not available on # systems yet, so the script uses alternative ways to identify # different system classes (e.g., the WiFi adapter PCI vendor and # device IDs). Switch the script to use real hardware qualification ID # when that becomes available. # TODO(petkov): If the hardware qualification ID is not available on # the systems, the script uses alternative ways to identify different # system classes (e.g., the WiFi adapter PCI vendor and device # IDs). Switch the script to use only real hardware qualification ID # when that becomes available on all systems. HARDWARE_CLASS= readonly HWID_PATH=/sys/bus/platform/devices/chromeos_acpi/HWID # Appends a new component ID to the hardware class. Separates IDs with # dashes. append_class() { [ -n "$1" ] || return [ -n "$HARDWARE_CLASS" ] && HARDWARE_CLASS="${HARDWARE_CLASS}-" HARDWARE_CLASS="${HARDWARE_CLASS}$1" } hwid() { [ -r "$HWID_PATH" ] || return local acpihwid acpihwid=$(cat "$HWID_PATH") [ -n "$acpihwid" ] || return append_class "$acpihwid" } # Adds the CPU family, model and stepping info, if available, to the # class. cpu() { [ -r /proc/cpuinfo ] || return FAMILY=`grep -m1 '^cpu family' /proc/cpuinfo \ | sed 's/cpu family\s\+:\s\+\([0-9]\+\)$/\1/'` MODEL=`grep -m1 '^model' /proc/cpuinfo \ | sed 's/model\s\+:\s\+\([0-9]\+\)$/\1/'` STEPPING=`grep -m1 '^stepping' /proc/cpuinfo \ | sed 's/stepping\s\+:\s\+\([0-9]\+\)$/\1/'` if [ -n "$FAMILY" ] && [ -n "$MODEL" ] && [ -n "$STEPPING" ]; then append_class "cpu/$FAMILY:$MODEL:$STEPPING" local family family=$(grep -m1 '^cpu family' /proc/cpuinfo \ | sed 's/cpu family\s\+:\s\+\([0-9]\+\)$/\1/') local model model=$(grep -m1 '^model' /proc/cpuinfo \ | sed 's/model\s\+:\s\+\([0-9]\+\)$/\1/') local stepping stepping=$(grep -m1 '^stepping' /proc/cpuinfo \ | sed 's/stepping\s\+:\s\+\([0-9]\+\)$/\1/') if [ -n "$family" ] && [ -n "$model" ] && [ -n "$stepping" ]; then append_class "cpu/$family:$model:$stepping" fi } # Adds the wlan0 PCI vendor and device ID, if available, to the class. wlan() { WLAN_DEV=/sys/class/net/wlan0/device if [ -r $WLAN_DEV/vendor ] && [ -r $WLAN_DEV/device ]; then WLAN_ID=`paste -d ':' $WLAN_DEV/vendor $WLAN_DEV/device | sed s/0x//g` append_class "wlan0/$WLAN_ID" local dev=/sys/class/net/wlan0/device if [ -r $dev/vendor ] && [ -r $dev/device ]; then local id id=$(paste -d ':' $dev/vendor $dev/device | sed s/0x//g) append_class "wlan0/$id" fi } HARDWARE_CLASS= main() { hwid # If the HWID is not available, use system component IDs. if [ -z "$HARDWARE_CLASS" ]; then cpu wlan [ -z "$HARDWARE_CLASS" ] && HARDWARE_CLASS=unknown fi echo $HARDWARE_CLASS } main $@