Platform
UDS Intrepid Platform Report
[:UDS-Intrepid/Report:back to the reports index page]
Plans for 8.10
Place in this section bullet points of specific intended outcomes for the 8.10 development cycle.
- Outcome
- Outcome
Sessions
Session
19 May Round Table
Boot performance
We need faster boots for various reasons: mobile, laptop, etc. It's also just generally nice.
Overview
boot process spends a lot of time in initramfs:
initramfs stuff written in shell -> slowish
- probing is fast, except for some systems like mobile stuff (ogra)
- cpu is finite, but fast
- ram is fast, we don't care about it much
- disk is really, really slow
- readahead is a static list that should be regenerated often to be really useful
flash devices should not use readahead-->Detect type of disk.
- readahead is up to date after a new fresh install
- prefetch is a potential new way of doing what readahead does
Readahead problems: 1) operates on file-by-file basis 2) generating the lists is very difficult
Prefetch is kernel-level
works on disk blocks => more efficient
- essentially self-updating
- however, needs some work to be actually usable (at least for this)
- documentation!
during boot, we're cpu bound during modprobe (via udev?). mobile is almost entirely cpu bound
- Keybuk: udev-settle is completely pointless, udev could just be started early
- plan to do that, is after intrepid, probably intrepid+1
Artir:Use bootchart to check boot time changes caused by improvements.
rc2 is highly subjective to people's configurations (but we could benchmark default install)
mobile with fixed hardware may gain a lot of boot speed by compiling drivers into the kernel
X/gdm should start earlier, but this requires dbus+hal to be started earlier
Goal 25 secs?(On Core2Duo, 1 Gb Ram p.e.). Less on QuadCore systems?
Solutions
Use multithreading. Take advantage of multi-core systems.-->Detect processor.
- Auto regenerative readahead and grub autoprofiler.
Preload&Prefetch&Grub auto-profiler by default
- Restructure boot order
Plan for intrepid:
- prefetch
- Better multithreading
- dbus, hal moving to upstart
- elimiante udev settle
- stop X from stating like crazy at startup.(Kernal based modesetting)
20 May Round Table
Ubuntu Distributed Development - Importer
- Aim to have all of Ubuntu, and possibly Debian imported during the
- Intrepid cycle.
- Use the upcoming features in bzr and launchpad to make it very quick
- to make small changes.
OpenOffice.org upload schedule
- preferred upload timeframe 1 week before milestone release.
- Estimated upload of 3.0rc - Alpha 4
- Estimated upload of 3.0 - Alpha 6
OpenOffice.org language packs
21 May Round Table
- Notes
- Notes
Upgrade hints (really: remove cruft after upgrades)
Post-hoc hints for cleaning up system from non-update-manager upgrades; incorporate:
- apt-get autoremove
- replacement of now-unsupported packages
- cleaning up old kernels (has been pending for ages, should happen independent of the rest)
- deborphan?
- finds rather more packages for apt-get install users, so still useful for several people
- deprecated dotfiles?
- purging removed packages with configuration files
- only unmodified conffiles (or ucf-managed files)?
- code for this in unattended-upgrades already (mvo)
- only unmodified conffiles (or ucf-managed files)?
- .dpkg-old/new files?
- the cruft program exists (used to?)
- random files belonging to packages that aren't removed by remove
- (piuparts finds these)
Michael reluctant to add to update-manager UI itself; update-manager should only install packages, not remove them, otherwise people will be more reluctant to run it
Most applications of a cleanup tool are package-related
Need to add upgrade hints for certain packages moved from main to universe. Also installer changes (e.g. relatime)
Code in update-manager mostly fairly separate
Some is more difficult to perform after installation due to lack of context (e.g. no knowledge of previous state)
- libapt could record previous state in its extended_states file
Cleanup items need to have a "no, and don't ask me again" option, which is difficult to incorporate into current update-manager design
Loose consensus to add new System -> Administration entry for this tool due to this; mvo and liw to talk with mpt
USB installation images
Targets
- Ubuntu desktop installable USB key
- Netbook/Classmate installation
- Ubuntu Mobile? (much less user interaction required/desired)
- Ubuntu alternate installable USB key
- Ubuntu server installable USB key
Design
- Don't want to ship (and mirror) yet another 700M blob
- Prefer to have a tool which accepts an Ubuntu .iso as input and writes the necessary bits to a USB stick
- Linux-only tool in first iteration, Windows later (unless volunteers materialise)
Write in Python, use IronPython to ship .NET object code?
- Windows can also boot a live CD and transform to USB stick
Advantages
- No CD waste
- Possibility to have 1 Gb ubuntu image (300 more Mb of space)
- No need for optical drive
- Faster. (USB has 480 Mb per second and CD-ROM 52X has 62 Mb per second)
Notes from previous discussion (UDS-Seville)
Live/Install from USB key
- Much faster for ISO testing
- Avoid "CD blanks"
- Works on machines without optical drive
- USB key is a mass storage device (a hard drive)
- Rather than a floppy disk
Use cases
- DD'able netboot image (small, just works)
netboot/boot.img.gz can be written to a partition; check whether it can also just be written to the disk device and if so update docs
- We do currently have a PXE/ddable image but it needs one too many layers to extract it
https://help.ubuntu.com/7.04/installation-guide/i386/boot-usb-files.html#usb-copy-easy
- DD image with 1GB partition for copying in an alternate .iso
- installer checks for /*.iso images on all local volumes
https://help.ubuntu.com/7.04/installation-guide/i386/boot-usb-files.html#usb-copy-flexible
https://help.ubuntu.com/7.04/installation-guide/i386/boot-usb-files.html#usb-add-iso
- Live CD image set up for persistency out of the box
Results
- Modify installer to check for:
/ubuntu*.iso containing either a .deb local repo
- Already done for hd-media installer (alternate-style)
- Live Ubuntu image containing a squashfs
- Prefer copying entire file tree to USB image
- Simpler
- Guaranteed to work even with 4.3GB DVD images (VFAT limit is 4.0GB)
Needs research
- Relationship to smart-boot-manager
- Syslinux/isolinux
- Syslinux wrapper writes a bootsector "blob" to the front of the CD
- opens as vfat with mtools
- writes out ldlinux.sys
- copies syslinux code (ldlinux.bss) into bootsector
- Syslinux wrapper writes a bootsector "blob" to the front of the CD
- We can do the equivalent under MS Windows (rawrite) provided that we ship the two files above on the CD
- Question: can we access the raw device without Administrator privileges?
http://www.weethet.nl/english/hardware_bootfromusbstick.php
- Method involving the MS Windows formatting "[x] Create start up disk".
Targets
Desktop CD/DVD on USB --- (direct dd > /dev/sdb); should work but believed to be buggy at the moment
- Desktop CD/DVD on USB with local ISO --- not interesting (except for having a small bootstrap image)
- Desktop CD/DVD on USB with persistence
- Netboot on USB with network fetch
- Netboot on USB with local alternate .iso
Wants
Transformation utility that takes a .iso image and it works out what to do with it
Should work for Linux and Windows, so possibly two separate applications
- "Write to USB key?"
- MAKE THE DESKTOPCD ON USB WORK.
- Makes ISO testing easier
- The place where we have less technical users.
- Persistence?
- ALREADY COVERED BY WUBI!
- Casper to look for .iso and look inside for squashfs, mount boot that
- Hunt though top-level directories
- Modify checkdev in casper, recurse one level.
- Already done for wubi installer.
- Modify checkdev in casper, recurse one level.
- Hunt though top-level directories
- Make persistency not check for partition label
- Copy /contents/ of .iso image to vfat.
- Copy .iso to USB stick
- Fish vmlinuz and initrd out of .iso
- Run syslinux
- Make a Unix script to do this
- Ask somebody to reimplement for MS Windows
- Point to this from the CD download pages.
- Provide a mini DesktopCD dd-able image of the above.
Ubuntu policy manual and standards
Documents describing policy and standards are difficult to track in the wiki:
- no changelog
- completely lost if you return after a break
- no upgrading-checklist.txt
https://wiki.ubuntu.com/UbuntuPackagingChanges
debian-policy is mostly appropriate except for section 3
it's important to preserve section numbers
developers-reference for workflow
Refer to UbuntuArchitecture
Policy changes:
- Maintainer
- python-minimal
- Components and sections
- Seeds
- Upstart
- /var/run as a tmpfs (also should go to Debian)
- udev changes compared to debian
- casper
- Package versioning
experimental -> PPA
- Standards-Version: should refer to the ubuntu policy?
- Avoid frivolous Standards-Version: diffs
- call it ubuntu-policy, keep debian-policy in archive identical to Debian's
Developer's reference:
- Merging
- Resources such as ubuntuwire.com and REVU
- Language packs
Branding (cf. DistributionDefaultsAndBranding
- Source-only uploads (incl. lack of binNMUs)
- References to archive structure, admin, etc.
- Release scheduling: perhaps external reference
- Require upgradeability between LTS releases (policy or reference?)
- Some kind of argument about partial upgrades
Announcement of changes:
- including merged changes from Debian
- diffs sent to ubuntu-devel
- changelog (or similar) sent to ubuntu-devel-announce
Revitalise ubuntu-devel!
Lightweight process on ubuntu-devel for making changes
- Post proposed change (description or diff)
If no objections, anyone else may apply diff (to avoid one-man changes)
- If objections, discuss
Spec: foo