Olpc-utils

From OLPC
Revision as of 22:36, 7 November 2007 by Bernie (talk | contribs) (New page: == olpc-utils localization and configuration subsystem == The current configuration scheme is implemented in olpc-utils (before, it was scattered through initscripts, sugar and pilgrim). ...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

olpc-utils localization and configuration subsystem

The current configuration scheme is implemented in olpc-utils (before, it was scattered through initscripts, sugar and pilgrim).

We strive to minimize the number of system files we write to, and keep our deviations from Linux as backwards compatible as possible. User controlled files are kept in /home/olpc, so they get automatically preserved on updates.


/etc/init.d/olpc-configure

As previously, it runs early at system boot to do some OLPC-specific initializations and the first-boot configuration.

For the first-boot configuration, it used to check for /.olpc-configured. Now it uses /home/olpc/.olpc-configured instead.

olpc-configure used to rewrite /etc/sysconfig/i18n. Now it writes language and keyboard settings to /home/olpc/.i18n, overridable by users.

I switched to specify XKB keyboards with the "layout(variant)" syntax because it's more intuitive when you have two or more layouts than the separate layout/variant keys. The old syntax is still supported.

For MP machines, I'll set the keyboard directly from mfg data, without a hardcoded table to map KA tags to X11 keyboars.

The Linux console keyboard is still not being set accordingly. Not sure if we really want to do it. Power users can run loadkeys themselves if they really want to.


/etc/X11/xorg.conf

This file is *no longer* hacked by olpc-configure

actually, xorg.conf is not even a file: olpc-configure creates a symlink to one of two possible configuration files, which are read-only and can be upgraded normally

We still handle some differences between Geode+DCON and emulators. I'd like to get X to autodetect these things better so we could kill off the configuration files altogether.

we're missing a way to allow user customizations in xorg.conf. In the future, I could make olpc-dm check for /home/olpc/.xorg.conf and use it if present. But frankly, customizing xorg.conf is for power users who may also want to customize other /etc entries. So if we really want to support these use cases, we'd be better off finding a generic way to preserve user customizations.

/usr/bin/olpc-dm

This is our "display manager". A streamlined version of what gdm and kdm are. So streamlined that it doesn't even have a UI. In the future, it could be extented to support multiple users, XDMCP and other fancy things. That day, I hope to be at a safe distance.

olpc-dm spawns X and the session through startx and xinit. I'm planning to through them away shortly. This will also allow us to do something smarter than sysvinit's once/respawn modes for restarting X.

olpc-dm still hogs the console and dies when you hit ^C. The fix is not a one-liner, and it's not a critical bug, but I'm planning to fix it some day.

/usr/bin/olpc-session

This script replaces /home/olpc/.xinitrc . It sources /home/olpc/.i18n for $LANG, $XKB_LAYOUT and, optionally, $XKB_VARIANT.

olpc-session also replaces /usr/bin/sugar, which will shortly go away, thus simplifying our boot process even more.

/home/olpc/.xsession

This is an "extensibility hook" for customizing your session. It gets sourced near the end of /usr/bin/olpc-session. A default is provided as .xsession-example, with some tips you may want to review.

This file also replaces the /home/olpc/.sugar.debug