Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(316)

Unified Diff: hardware_class

Issue 2824039: Use the HWID from the firmware as the hardware class, if available. (Closed) Base URL: ssh://git@chromiumos-git/metrics.git
Patch Set: Fix HWID path. Created 10 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: hardware_class
diff --git a/hardware_class b/hardware_class
index c99db9b9e57edaa729f6fd0f962590a3bbd9b1c7..91360766677d555acb12716346f4570fb79a0a0d 100755
--- a/hardware_class
+++ b/hardware_class
@@ -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
}
+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
-HARDWARE_CLASS=
-
-cpu
-wlan
-
-[ -z "$HARDWARE_CLASS" ] && HARDWARE_CLASS=unknown
+ echo $HARDWARE_CLASS
+}
-echo $HARDWARE_CLASS
+main $@
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698