[Sugar-devel] [PATCH sugar] Add support for XO 1.75

Gonzalo Odiard gonzalo at laptop.org
Thu Aug 18 08:21:54 EDT 2011


Reviewed-by: Gonzalo Odiard <gonzalo at laptop.org>

Tested-by: Gonzalo Odiard <gonzalo at laptop.org>

On Thu, Aug 18, 2011 at 8:15 AM, Simon Schampijer <simon at schampijer.de>wrote:

> The hardware specific information has been moved from '/ofw' to
> '/proc/device-tree'. This has an effect on the Control Panel
> where we display the serial number and the firmware number.
> Furthermore the registration code needs to be aware of the possible
> new place in order to send the serial number and UUID during
> authentication.
>
> Signed-off-by: Simon Schampijer <simon at laptop.org>
> ---
>  extensions/cpsection/aboutcomputer/model.py |   17 +++++++++++++++--
>  src/jarabe/desktop/schoolserver.py          |   24
> +++++++++++++++++-------
>  2 files changed, 32 insertions(+), 9 deletions(-)
>
> diff --git a/extensions/cpsection/aboutcomputer/model.py
> b/extensions/cpsection/aboutcomputer/model.py
> index 3219dd1..a02eee6 100644
> --- a/extensions/cpsection/aboutcomputer/model.py
> +++ b/extensions/cpsection/aboutcomputer/model.py
> @@ -33,6 +33,11 @@ _NM_IFACE = 'org.freedesktop.NetworkManager'
>  _NM_DEVICE_IFACE = 'org.freedesktop.NetworkManager.Device'
>  _NM_DEVICE_TYPE_WIFI = 2
>
> +_OFW_TREE = '/ofw'
> +_PROC_TREE = '/proc/device-tree'
> +_SN = 'serial-number'
> +_MODEL = 'openprom/model'
> +
>  _logger = logging.getLogger('ControlPanel - AboutComputer')
>  _not_available = _('Not available')
>
> @@ -48,7 +53,11 @@ def print_aboutcomputer():
>
>
>  def get_serial_number():
> -    serial_no = _read_file('/ofw/serial-number')
> +    serial_no = None
> +    if os.path.exists(os.path.join(_OFW_TREE, _SN)):
> +        serial_no = _read_file(os.path.join(_OFW_TREE, _SN))
> +    elif os.path.exists(os.path.join(_PROC_TREE, _SN)):
> +        serial_no = _read_file(os.path.join(_PROC_TREE, _SN))
>     if serial_no is None:
>         serial_no = _not_available
>     return serial_no
> @@ -88,7 +97,11 @@ def print_build_number():
>
>
>  def get_firmware_number():
> -    firmware_no = _read_file('/ofw/openprom/model')
> +    firmware_no = None
> +    if os.path.exists(os.path.join(_OFW_TREE, _MODEL)):
> +        firmware_no = _read_file(os.path.join(_OFW_TREE, _MODEL))
> +    elif os.path.exists(os.path.join(_PROC_TREE, _MODEL)):
> +        firmware_no = _read_file(os.path.join(_PROC_TREE, _MODEL))
>     if firmware_no is None:
>         firmware_no = _not_available
>     else:
> diff --git a/src/jarabe/desktop/schoolserver.py
> b/src/jarabe/desktop/schoolserver.py
> index 634817b..a4a401a 100644
> --- a/src/jarabe/desktop/schoolserver.py
> +++ b/src/jarabe/desktop/schoolserver.py
> @@ -33,6 +33,10 @@ from sugar.profile import get_profile
>
>  _REGISTER_URL = 'http://schoolserver:8080/'
>  _REGISTER_TIMEOUT = 8
> +_OFW_TREE = '/ofw'
> +_PROC_TREE = '/proc/device-tree'
> +_MFG_SN = 'mfg-data/SN'
> +_MFG_UUID = 'mfg-data/U#'
>
>
>  def _generate_serial_number():
> @@ -107,13 +111,16 @@ def register_laptop(url=_REGISTER_URL):
>     client = gconf.client_get_default()
>
>     if _have_ofw_tree():
> -        sn = _read_ofw('mfg-data/SN')
> -        uuid_ = _read_ofw('mfg-data/U#')
> -        sn = sn or 'SHF00000000'
> -        uuid_ = uuid_ or '00000000-0000-0000-0000-000000000000'
> +        sn = _read_mfg_data(os.path.join(_OFW_TREE, _MFG_SN))
> +        uuid_ = _read_mfg_data(os.path.join(_PROC_TREE, _MFG_UUID))
> +    elif _have_proc_device_tree():
> +        sn = _read_mfg_data(os.path.join(_PROC_TREE, _MFG_SN))
> +        uuid_ = _read_mfg_data(os.path.join(_PROC_TREE, _MFG_UUID))
>     else:
>         sn = _generate_serial_number()
>         uuid_ = str(uuid.uuid1())
> +    sn = sn or 'SHF00000000'
> +    uuid_ = uuid_ or '00000000-0000-0000-0000-000000000000'
>
>     setting_name = '/desktop/sugar/collaboration/jabber_server'
>     jabber_server = client.get_string(setting_name)
> @@ -150,11 +157,14 @@ def register_laptop(url=_REGISTER_URL):
>
>
>  def _have_ofw_tree():
> -    return os.path.exists('/ofw')
> +    return os.path.exists(_OFW_TREE)
>
>
> -def _read_ofw(path):
> -    path = os.path.join('/ofw', path)
> +def _have_proc_device_tree():
> +    return os.path.exists(_PROC_TREE)
> +
> +
> +def _read_mfg_data(path):
>     if not os.path.exists(path):
>         return None
>     fh = open(path, 'r')
> --
> 1.7.4.4
>
> _______________________________________________
> Sugar-devel mailing list
> Sugar-devel at lists.sugarlabs.org
> http://lists.sugarlabs.org/listinfo/sugar-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sugarlabs.org/archive/sugar-devel/attachments/20110818/8db966f5/attachment.html>


More information about the Sugar-devel mailing list