Difference between revisions of "Packaging/Consolidation"

From GalliumOS Wiki
Jump to: navigation, search
(Created page with "__NOTOC__ <div style="background-color:#fee;border:1px solid red;padding:0.2em;">'''WIP''': notes on packaging/image reorg.</div> == Goals == * Simplify support by building...")
(No difference)

Revision as of 18:52, 21 August 2016

WIP: notes on packaging/image reorg.

Goals

  • Simplify support by building a single GalliumOS distribution image: galliumos-xenon-2.1.iso
    • Currently shipping six hardware-specific images
      • baytrail, broadwell, broadwell-cbox, haswell, haswell-cbox, sandy
    • Will add two to four more soon:
      • braswell, skylake, possibly samus and/or hidpi

Prerequisites

  • Consolidate existing hardware-specific GalliumOS packages into a single package
    • (or possibly merge them all into galliumos-core and galliumos-desktop)

Issues

  • All customization in packages must be done at (first?) boot, not package install time
    • Booting from the Live Image must be customized for the model
    • Images are built on a single machince (VM, non-GalliumOS)
  • Some customizations must be in place early in the boot process
    • Where not possible, they can be configured for the next boot (not useful for Live Image boot)

Customizations

Categories

  1. kernel and kernel modules, e.g.:
    • /etc/modprobe.d/iwlwifi-opts.conf
  2. systemd config, e.g.:
    • /lib/systemd/system-sleep/wifi.sh
  3. services config, e.g.:
    • /etc/pulse/default.pa
  4. user config, e.g.:
    • /etc/skel/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml

Limitations

  • All images must boot a single kernel

Methods

Detection

  • Model detection via dmidecode -s system-product-name
    • Peppy
  • CPU detection via dmidecode -s processor-version as fallback
    • Intel(R) Celeron(R) 2955U @ 1.40GHz
  • Display resolution detection for selecting HiDPI pkg?
    • Some models (YUNA) ship with identical CPU (3205U) for both 1366x and 1920x displays
    • Can't detect by the usual methods (xdpyinfo, xrandr) in early boot -- no X server running

Process

  • A systemd one-shot could set config files before reaching an early target
    • Existing galliumos-laptop service does some model detection, but it is late in the boot
    • Should work well for Customization categories #3 and #4; might work for #2, probably can't work for #1.
  • Configurator could detect user-changed files by timestamp and checksum
    • What to do if there is a newer GalliumOS update?