Ubuntu doesn't install on bootable SD-card

Bug #268863 reported by Harald Welte on 2008-09-11
This bug affects 3 people
Affects Status Importance Assigned to Milestone
grub (Ubuntu)
grub-installer (Ubuntu)

Bug Description

Recently, BIOS vendors have been starting to implement a 'boot from SD card' feature, much like they have added 'boot from USB memory stick' some years ago.

The only SD-card host controller that I've seen this implemented for is SDHCI compliant host controllers.

While this is a nice feature to support, for most systems it is just a gimmick and not something neccessarry.

However, there are hand-held devices such as netbooks in the pipeline which do not have any other mass storage device. No hard disk and no IDE-attached flash disk or the like. They just have one (more likely two or more) SD card slots and you install and store not only your data but the entire operating system on that SD card.

Furthermore, there are products like Samsung moviNAND which are basically a SDcard in a BGA package that can be soldered onto a PCB. So from a protocol and software point of view it is a SD card, but it is mechanically soldered onto the board. Such device have gained some popularity in ARM-based designs, but we'll likely see them in the x86 world, too.

I have tested to install "Ubuntu Intrepid alpha 5 desktop i386" and it did not work

 Bootloader requirements

There are no specific requirements on the bootloader, since BIOS abstracts all low-level details about how to talk to the SD card (controller) in the usual way through the BIOS ABI.

However, the program that installs the actuall bootloader record (grub-install, grub-installer, the 'lilo' commandline program) has to understand that /dev/mmcblk* is a valid block device and be able to discover the mapping between /dev/mmcblk* and the BIOS device number.

For grub (grub1, the old version), see

    * http://savannah.gnu.org/bugs/index.php?24181
    * http://savannah.gnu.org/bugs/download.php?file_id=16416

Installer requirements

The distribution installation initrd needs to

   1. include and auto-load the sdhc.ko and sdhci_pci.ko kernel modules
   2. create the /dev/mmcblk* device nodes as per udev/hotplug events

The actual distribution installation program needs to

   1. recognize /dev/mmcblk* as block devices that can be used as target device
   2. use a grub-install or similar program that can discover the bios drive number to /dev/mmcblk* device name mapping

You can find more information at http://wiki.gpl-devices.org/wiki/Installing_Linux_on_booting_SD_card

Colin Watson (cjwatson) on 2008-09-15
Changed in ubiquity:
importance: Undecided → Wishlist
status: New → Confirmed
Changed in grub:
importance: Undecided → Wishlist
status: New → Confirmed
Dana Goyette (danagoyette) wrote :

One additional comment: on systems such as the HP EliteBook laptops, which offer bootability from a Ricoh SDHC controller, the initramfs will also need to include the ricoh_mmc driver (disables the proprietary mmc controller) in order for the SDHC controller to handle the cards. Also, I have tried to deploy a liveimage to an SD card via usb-creator, but the initramfs lacks these modules, and usb-creator will not allow non-usb-based disks as targets (a completely separate issue).

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers