OEM Services have identified a number of areas where oem-config can be further improved.

Release Note

The program that performs end-user configuration after initial OEM installation, oem-config, has seen a number of improvements this release.

  • It now allows the user to select a different graphics configuration if the display server fails to start.
  • The default timezone will be selected using geoip information, if available.
  • Extra language packs can be automatically removed.
  • The oem-config package is now removed upon completion.
  • The user can now enter a hostname, should the default not be sufficient.


It is in our interest to ensure that oem-config continues to develop at pace with OEM needs.

User stories


  • Ensure that oem-config works with BulletProofX.
  • Copy NetworkManager configuration for the live environment to the installed system.

  • Finish integrating geoip support.
  • Automatically remove unneeded language packs.
  • Support adding packages (on disk) like langpacks and codecs after install.
  • Automatically remove oem-config upon successful completion.
  • Convert the remaining pages to plugins.
  • Allow the user to set a hostname in oem-config.
  • Resolve the inability to type-to-select in GtkComboBox used for the timezones (bgo #567141).

  • Resolve non-ascii password issues.
  • Ensure that Jockey's apt-cache is up-to-date after install.


Copy network keys

We'll save the user from having to re-enter their network passphrases by copying the keyring over to the installed system by default. This needs to be preseedable, so OEMs can avoid giving end users the keys to their networks.

Finish integrating geoip support

Geoclue was investigated as a possible solution; however, it is currently broken.

Work has already been done to integrate our existing geoip service into the installer, and IS has indicated that they can get the deployment finished in Lucid so that we can finish this task for Lucid. See RT #33677 for further details.

Automatically remove unneeded language packs

OEMs often install all available language packs with a desire to remove them after oem-config.

We will reuse remove_extras in scripts/ to remove these unnecessary language packs.

See UbuntuBug:315644 for more details.

Convert the remaining pages to plugins

A number of pages still have most of their UI code in frontends/* We will work to further clean up the code base by converting the remaining pages to plugins.

Test/Demo Plan

Each item will be tested to ensure the installation succeeds when the feature is and is not used. The normal install test cases will cover testing beyond this.

BoF agenda and discussion

OEM Config Improvements Suggested by OEMs or OEM Services Engineers

What Got Done Last Cycle

  • Ubiquity/OEM-Config merge
  • Translated timezones
  • Basic plugin system
  • US/MX border line

What Did Not Get Done Last Cycle

  • Fallback for when X fails
    • Mostly done for Lucid
    • Except if oem-config dies: need to hook up oem-config-dm to bullet-proof X
  • Copy NM setup to /target (in non-oem mode)
  • Embedding NM (deferred for now, low priority, embeddable NM being developed elsewhere(?))
  • geoip (only tells us country, not more specific without a partner deal)
    • could use geoclue instead, but geoip has the potential to be more specific with a partner
    • Canonical RT #33677; IS say that this should be possible for Lucid
  • Extra langpack removal
    • Pull out scripts/
      • Need to be careful about not ripping the ground out from beneath us. Could push the call to the very end of the install.
    • Show only languages that have language-support packages available at oem-config time?
    • oem-services has a patch for this (prefers a different list and fallsback to normal list -- will share)
  • Support for adding packages (on disk) like langpacks and codecs after install (oem-services has a whole system for this and we can share if interested)
  • Removing OEM config package after finished doing work
  • Not all pages are plugins (

  • Some bits of plugin system could be more useful (allow subclassing)
    • Basically just add the plugin directory to PYTHONPATH
  • Expose hostname question during oem-config
    • race condition with NM (fixed for karmic in 2.0.9 by not setting hostname in oem-config)
  • Can't type to select in timezone drop-down due to a GTK+ bug - escalate with DX
  • non-ascii passwords are allowed in ubiquity, but disallowed in later password prompts like gksudo
  • after install, jockey doesn't have an up-to-date apt cache


Upstream has actually done the work of translating the keyboard layout names


FoundationsTeam/Specs/LucidOEMConfigImprovements (last edited 2009-12-02 17:10:04 by eth0)