JasperRewrite

Summary

jasper-initramfs contains a collection of essential hardcodings and hacks. These ought be refactored so that the result leverages oem-config more heavily, perhaps uses preseeding with some d-i components, and otherwise is made more modular and controllable.

Release Note

None (intentionally so: we don't want to explain that the code is no longer painful to read, nor explain why users can expect fewer of several classes of bug).

Rationale

The code is ugly, hacky, etc. Lots of it isn't needed. It was intended to be reviewed to compare against a real install, which review was cancelled because the code wasn't considered suitable yet.

User stories

None: users need never know what happened.

Assumptions

  • Current implementation is in need of serious overhaul
  • Leveraging as much of the normal installation infrastructure as possible will make it less buggy and easier to maintain.

Design

  • Review the hacks, and refactor them into components, ideally aligned with debian-installer.
  • Either extend oem-config or add a new d-i based automated (no UI) run-through of common installation tasks not otherwise performed.
  • Attempt to reduce the volume of initramfs-hook-scripts to the absolute minimum
  • Migrate reboot configuration code to flash-kernel or flash-kernel-installer and call into that

Implementation

TBD

Code Changes

TBD

Migration

None.

Test/Demo Plan

Test as part of general Natty release testing, for environments that continue to require preinstalled images.

Ensure there exists at least one parallel build for normal installation vs. preinstallation for the same target flavour/architecture/subarchitecture: perform installation both ways and compare the results.

Unresolved issues

  • Whether jasper-initramfs is a good idea
  • Whether any preinstalled images should be provided
  • How to leverage jasper-initramfs for wider deployment
  • Use of jasper-initramfs for factory preinstallation

BoF agenda and discussion

  • Review of the code
  • Identification of appropriate places to put it

== Rewriting Jasper to be less hacky ==

Jasper is full of hardcoded hacks that need to be removed and refactored out.

We do need most of what is in jasper such as resizing images has to be done there

 * serial port initialization goes to upstart
 * new framework for board-specific hacks
 * framebuffer code should be more generalize
 * rootdev should be dehardcoded and made more "smart"
 * generate fstab with swapfile preseeding the instaler
 * Bring up of loopback and such can be dropped from jasper
 * PPA setup needs to become a software channel/package
 * moving boot.scr generation to flash-kernel-installer
 * determine ways to set SD card optimization
 * session generation in livecd-rootfs
 * make vfat creation/writing be more generic
 * rework clock intergration
 * integrate jasper with plymouth
 * investigate removal of mtab
 
Action:
 * Can we use f-k-i to generate boot.scr instead of having it in jasper: ogra
 * persia to generalize the cooridination of SD optimizations


CategorySpec

Specs/JasperRewrite (last edited 2010-10-29 15:43:54 by host194)