Wishlist/LiveUSB distro

From Openmoko

Revision as of 16:32, 25 March 2007 by Fthiery (Talk | contribs)

Jump to: navigation, search
Wishes warning! This article or section documents one or more OpenMoko Wish List items, the features described here may or may not be implemented in the future.

An openmoko device could act as the perfect geeky swiss knive: go anywhere with your Linux desktop and tools

When in storage device mode, a host computer should be able to boot on it, presenting a grub menu offering to boot into several images / partitions (payloads) on the transflash: memtest, UBCD (the ultimate boot cd), a lightweight security oriented livecd distro, you name it...

Usually, all you need for this with an USB storage device (flash USB stick or external drive) is a partition, flagged "bootable" (see fdisk), containing a boot loader (say grub). But the problem is that specifications vary between motherboards, so there are variants and mandatory requirements to define (here would be a good idea), so that one can optimize/maximize the compatibility.

Similar functionality can be found in the Wizpy portable media player

The booted payloads must'nt rely on dedicated partitionning; for instance, Ubuntu's boot menu offers memtest execution, here's the grub config line (/boot/grub/menu.lst):

title Ubuntu, memtest86+ root (hd0,2) kernel /memtest86+.bin quiet boot

The file is located /boot/memtest86+.bin What's this file? An ISO? ....

TODO / Open questions:

  • can one do the same with a distro
  • how to have a writable system (to keep changes)
  • can it already be done?
  • partitions or binary images?
  • what are the compatibility tricks?

Requirements:

  • The booted OS should be able to access to openmoko's personal data (ex contacts directory, media files...): the home partition
  • It would be great if the device could charge at the same time
  • integrate qemu for in-other-OSes loading (without rebooting)
  • if possible, the device should still work normally: act as gprs modem, phone

The only function used by the host computer is the storage device

Transflash partitioning schema example

  • 2 Gb: /dev/sd? (where N is the transflash's number)
  • 700 Mb: /dev/sd?1 : containing bootable iso, FAT16
  • 1300 Mb: /dev/sd?2 : openmoko & bootable os home partition, EXT3?
  • eventually a swap

That way, one can install a new iso when it's released. An updater script shall be written.

Howto

Summary: When the neo/openmoko device is connected in mass storage mode to a linux host,

  1. Partition the transflash into livecd (bootable flag) & home partition
  2. Format the created partitions
  3. Extract the iso's contents onto the livecd partition
  4. Rename isolinux.cfg and edit it syslinux.cfg (see ubuntu tutorial link)
  5. Make the partition bootable using syslinux:
   $ sudo syslinux -f /dev/sd?

Links

Howto install ubuntu (or any other distro) on usb stick

Personal tools
Wishes warning! This article or section documents one or more OpenMoko Wish List items, the features described here may or may not be implemented in the future.

An openmoko device could act as the perfect geeky swiss knive: go anywhere with your Linux desktop and tools

When in storage device mode, a host computer should be able to boot on it, presenting a grub menu offering to boot into several images / partitions (payloads) on the transflash: memtest, UBCD (the ultimate boot cd), a lightweight security oriented livecd distro, you name it...

Usually, all you need for this with an USB storage device (flash USB stick or external drive) is a partition, flagged "bootable" (see fdisk), containing a boot loader (say grub). But the problem is that specifications vary between motherboards, so there are variants and mandatory requirements to define (here would be a good idea), so that one can optimize/maximize the compatibility.

Similar functionality can be found in the Wizpy portable media player

The booted payloads must'nt rely on dedicated partitionning; for instance, Ubuntu's boot menu offers memtest execution, here's the grub config line (/boot/grub/menu.lst):

title Ubuntu, memtest86+ root (hd0,2) kernel /memtest86+.bin quiet boot

The file is located /boot/memtest86+.bin What's this file? An ISO? ....

TODO / Open questions:

  • can one do the same with a distro
  • how to have a writable system (to keep changes)
  • can it already be done?
  • partitions or binary images?
  • what are the compatibility tricks?

Requirements:

  • The booted OS should be able to access to openmoko's personal data (ex contacts directory, media files...): the home partition
  • It would be great if the device could charge at the same time
  • integrate qemu for in-other-OSes loading (without rebooting)
  • if possible, the device should still work normally: act as gprs modem, phone

The only function used by the host computer is the storage device

Transflash partitioning schema example

  • 2 Gb: /dev/sd? (where N is the transflash's number)
  • 700 Mb: /dev/sd?1 : containing bootable iso, FAT16
  • 1300 Mb: /dev/sd?2 : openmoko & bootable os home partition, EXT3?
  • eventually a swap

That way, one can install a new iso when it's released. An updater script shall be written.

Howto

Summary: When the neo/openmoko device is connected in mass storage mode to a linux host,

  1. Partition the transflash into livecd (bootable flag) & home partition
  2. Format the created partitions
  3. Extract the iso's contents onto the livecd partition
  4. Rename isolinux.cfg and edit it syslinux.cfg (see ubuntu tutorial link)
  5. Make the partition bootable using syslinux:
   $ sudo syslinux -f /dev/sd?

Links

Howto install ubuntu (or any other distro) on usb stick