Deployment Platform/XO reference distribution: Difference between revisions
No edit summary |
No edit summary |
||
| Line 24: | Line 24: | ||
'''Deployment configuration''' | '''Deployment configuration''' | ||
:This is how final systems will be initially configured and supported afterwards. All deployment configuration is placed in a [[#Deployment_package|meta package]] in the [[#Deployment_repository|deployment repository]]. This meta package contains dependencies and configuration files for all other packages needing to be installed on final systems. Further, if there is a need to change configuration on already installed systems, the meta package will be updated and spread among users. | :This is how final systems will be initially configured and supported afterwards. All deployment configuration is placed in a [[#Deployment_package|meta package]] in the [[#Deployment_repository|deployment repository]]. This meta package contains dependencies and configuration files for all other packages needing to be installed on final systems. Further, if there is a need to change the configuration on already installed systems, the meta package will be updated and spread among users. | ||
== Start new implementation == | == Start new implementation == | ||
These are step-by-step | These are step-by-step instructions on how to create a new deployment distribution based on this reference implementation. | ||
=== Deployment repository === | === Deployment repository === | ||
Make sure | Make sure that the Fedora repository is accessible from the building host and end-users. If you are looking for a building and hosting environment, try [[Platform_Team/Open_Build_System|packages.sugarlabs.org]], which is an instance of [http://www.open-build-service.org/ Open Build Service]. | ||
If you are using [[Platform_Team/Open_Build_System|packages.sugarlabs.org]], create a new project and add the Fedora 14 repository from the [[Sweets Distribution]] project your implementation is based on. For example, there is [https://packages.sugarlabs.org/project/show?project=SweetsDistribution%3AFactory%3AReferenceXO reference project] based on [https://packages.sugarlabs.org/project/show?project=SweetsDistribution%3AFactory SweetsDistribution:Factory] repositories. | If you are using [[Platform_Team/Open_Build_System|packages.sugarlabs.org]], create a new project, and add the Fedora 14 repository from the [[Sweets Distribution]] project your implementation is based on. For example, there is the [https://packages.sugarlabs.org/project/show?project=SweetsDistribution%3AFactory%3AReferenceXO reference project] based on [https://packages.sugarlabs.org/project/show?project=SweetsDistribution%3AFactory SweetsDistribution:Factory] repositories. | ||
=== Deployment package === | === Deployment package === | ||
Use [http://git.sugarlabs.org/platform/reference-xo reference package] as a template. Copy its source and tune for local needs. Look for comments | Use the [http://git.sugarlabs.org/platform/reference-xo reference package] as a template. Copy its source and tune it for local needs. Look for comments to gain a better understanding. | ||
The reference package is structured as follows: | |||
* {{Code|etc/}}<br>These files will be copied as-is. Place here all configuration files you need to support afterwards. | * {{Code|etc/}}<br>These files will be copied as-is. Place here all configuration files you need to support afterwards. | ||
* {{Code|post.d/*.sh}}<br>These files will be executed right after installing package. Place here routines that can't be | * {{Code|post.d/*.sh}}<br>These files will be executed right after installing package. Place here routines that can't be represented by configuration files. | ||
* {{Code|image/}}<br>olpc-os-builder files to [[#Create_images|create XO images]]. | * {{Code|image/}}<br>olpc-os-builder files to [[#Create_images|create XO images]]. | ||
* {{Code|Makefile}}<br>Handy makefile to create sources tarball. | * {{Code|Makefile}}<br>Handy makefile to create sources tarball. | ||
* {{Code|deployment.spec}}<br>RPM spec file to create package. | * {{Code|deployment.spec}}<br>RPM spec file to create package. | ||
This is the only package that will be installed implicitly after including {{Code|sweets}} olpc-os-builder module. Thus, add to {{Code|deployment.spec}} all dependencies final systems require. Note that there is no need in installing Sugar Activities or | This is the only package that will be installed implicitly after including the {{Code|sweets}} olpc-os-builder module. Thus, add to the {{Code|deployment.spec}} all dependencies that final systems will require. Note that there is no need in installing Sugar Activities or their dependencies; these routines will be handled automatically after setting the {{Code|offline_activities}} option in the olpc-os-builder configuration file. | ||
Put sources | Put sources in the new git project and commit them. | ||
To create package tarball, call the command | To create a package tarball, call the command | ||
make dist | make dist | ||
If you are using [[Platform_Team/Open_Build_System|packages.sugarlabs.org]], call [http://en.opensuse.org/Build_Service/CLI osc] utility to upload newly | If you are using [[Platform_Team/Open_Build_System|packages.sugarlabs.org]], call the [http://en.opensuse.org/Build_Service/CLI osc] utility to upload newly created sources tarball and spec file to OBS. | ||
=== Create images === | === Create images === | ||
First of all, [[Sweets_Distribution#Add_repository|attach]] proper [[Sweets Distribution]] repository and install {{Code|olpc-os-builder}} package from there. This package is different from upstream | First of all, [[Sweets_Distribution#Add_repository|attach]] the proper [[Sweets Distribution]] repository, and install the {{Code|olpc-os-builder}} package from there. This package is different from upstream; it contains additional modules (see {{Code|image/*.ini}} files for details). | ||
Then, go to {{Code|image/}} directory and call one the the following commands to create images: | Then, go to the {{Code|image/}} directory and call one the the following commands to create images: | ||
olpc-os-builder --additional-defaults common.ini xo-1.ini | olpc-os-builder --additional-defaults common.ini xo-1.ini | ||
| Line 71: | Line 71: | ||
=== Post-install support === | === Post-install support === | ||
Post installation | Post installation support is all about updating packages in the [[#Deployment_repository|deployment repository]], e.g., update the configuration in the [[#Deployment_package|deployment package]]. Then, using one of the [[Harmonic_Distribution/Deployment#Scenarios|deployment scenarios]], distribute the package updates among users. | ||
== Try reference implementation == | == Try a reference implementation == | ||
To try reference implementation on an XO laptop, download one of prebuilt images and proceed below | To try a reference implementation on an XO laptop, download one of the prebuilt images and proceed with the instructions below to flash it. Note that images were built using a recent development version of the software. So, images might be used to easily test recent changes. | ||
=== XO-1 === | === XO-1 === | ||
| Line 81: | Line 81: | ||
* First, ensure that your laptop is [http://wiki.laptop.org/go/Activation_and_developer_keys unlocked]. | * First, ensure that your laptop is [http://wiki.laptop.org/go/Activation_and_developer_keys unlocked]. | ||
* Download [http://download.sugarlabs.org/platform/reference-xo/xo1/os.img os.img] and [http://download.sugarlabs.org/platform/reference-xo/xo1/os.crc os.crc] files to the root directory of a USB stick or SD card. | * Download [http://download.sugarlabs.org/platform/reference-xo/xo1/os.img os.img] and [http://download.sugarlabs.org/platform/reference-xo/xo1/os.crc os.crc] files to the root directory of a USB stick or SD card. | ||
* Drop to the "'''ok'''" prompt by pressing [[File:Esc.svg|24px]] (Esc) repeatedly during boot. | * Drop to the [[OLPC:Open Firmware|Open Firmware]] "'''ok'''" prompt by pressing [[File:Esc.svg|24px]] (Esc) repeatedly during boot. | ||
* Type the command: <code>'''copy-nand u:\xo.img'''</code> for a USB stick or <code>'''copy-nand sd:\xo.img'''</code> for a SD card followed by [[File:Key_enter.jpg|50px]] (enter). | * Type the command: <code>'''copy-nand u:\xo.img'''</code> for a USB stick or <code>'''copy-nand sd:\xo.img'''</code> for a SD card followed by [[File:Key_enter.jpg|50px]] (enter). | ||
* Wait for the display to fill in with color and the "'''ok'''" prompt to return | * Wait for the display to fill in with color and the "'''ok'''" prompt to return | ||
* Type the command <code>'''reboot'''</code> followed by [[File:Key_enter.jpg|50px]] (enter) | * Type the command <code>'''reboot'''</code> followed by [[File:Key_enter.jpg|50px]] (enter) | ||
* The XO will reboot, finish writing, reboot itself, and take you to the naming and color choice process | * The XO will reboot, finish writing, reboot itself, and take you to the naming and color choice process | ||
* During the reboots, keep the charger connected to allow | * During the reboots, keep the charger connected to allow Open Firmware to self-update. | ||
=== XO-1.5 === | === XO-1.5 === | ||
| Line 92: | Line 92: | ||
* First, ensure that your laptop is [http://wiki.laptop.org/go/Activation_and_developer_keys unlocked]. | * First, ensure that your laptop is [http://wiki.laptop.org/go/Activation_and_developer_keys unlocked]. | ||
* Download [http://download.sugarlabs.org/platform/reference-xo/xo1.5/os.zd os.zd] to the root directory of a USB stick | * Download [http://download.sugarlabs.org/platform/reference-xo/xo1.5/os.zd os.zd] to the root directory of a USB stick | ||
* Drop to the "'''ok'''" prompt by pressing [[File:Esc.svg|24px]] (Esc) repeatedly during boot | * Drop to the [[OLPC:Open Firmware|Open Firmware]] "'''ok'''" prompt by pressing [[File:Esc.svg|24px]] (Esc) repeatedly during boot | ||
* Type the command: <code>'''fs-update u:\xo.zd'''</code> followed by [[File:Key_enter.jpg|50px]] (enter) | * Type the command: <code>'''fs-update u:\xo.zd'''</code> followed by [[File:Key_enter.jpg|50px]] (enter) | ||
* Wait for the display to fill in with color and the "'''ok'''" prompt to return | * Wait for the display to fill in with color and the "'''ok'''" prompt to return | ||
* Type the command <code>'''reboot'''</code> followed by [[File:Key_enter.jpg|50px]] (enter) | * Type the command <code>'''reboot'''</code> followed by [[File:Key_enter.jpg|50px]] (enter) | ||
* The XO will reboot and take you to the naming and color choice process | * The XO will reboot and take you to the naming and color choice process. | ||
== Downstreams == | == Downstreams == | ||
Here is a list of solutions based on this reference implementation: | |||
* [http://pe.sugarlabs.org/go/Proyecto_Piloto_Hexoquinasa Hexokinase]. | * [http://pe.sugarlabs.org/go/Proyecto_Piloto_Hexoquinasa Hexokinase]. | ||