diff options
author | James Cameron <quozl@laptop.org> | 2014-09-22 01:35:13 (GMT) |
---|---|---|
committer | Gonzalo Odiard <godiard@gmail.com> | 2014-09-24 11:45:04 (GMT) |
commit | ba891758a26816a1adfcd30b1f804bdf6bc491e3 (patch) | |
tree | f051f225099960f42e22b49afcec91da85829bc8 | |
parent | 6daadb2460dac5dcc2e16e11f39b89ce898e1f8b (diff) |
logcollect: collect firmware version not BV
Log collections showed wrong firmware version. Cause was use of the BV
tag instead of openprom/model. The BV tag is the base version of
firmware used in manufacturing. openprom/model is the current version
of firmware.
Also separated null trimming into a separate method.
-rw-r--r-- | logcollect.py | 36 |
1 files changed, 29 insertions, 7 deletions
diff --git a/logcollect.py b/logcollect.py index 5d6e683..10c57b1 100644 --- a/logcollect.py +++ b/logcollect.py @@ -113,6 +113,11 @@ class MachineProperties: if line.find('MemFree:') > -1: return line[8:].strip() + def _trim_null(self, v): + if v != '' and ord(v[len(v)-1]) == 0: + v = v[:len(v)-1] + return v + def _mfg_data(self, item): """Return mfg data item from mfg-data directory""" @@ -124,13 +129,9 @@ class MachineProperties: if mfg_path == None: return '' - v = self.__read_file(mfg_path) - # Remove trailing 0 character, if any: - if v != '' and ord(v[len(v)-1]) == 0: - v = v[:len(v)-1] - + v = self._trim_null(self.__read_file(mfg_path)) return v - + def laptop_serial_number(self): return self._mfg_data('SN') @@ -158,7 +159,28 @@ class MachineProperties: return self._mfg_data('WM') def laptop_bios_version(self): - return self._mfg_data('BV') + try: + d = open('/proc/device-tree/openprom/model', 'r').read() + v = self._trim_null(d) + return v + except: + pass + + try: + d = open('/ofw/openprom/model', 'r').read() + v = self._trim_null(d) + return v + except: + pass + + try: + d = open('/sys/class/dmi/id/bios_version', 'r').read() + v = self._trim_null(d) + return v + except: + pass + + return '' def laptop_country(self): return self._mfg_data('LA') |