blob: 5c4dccc4de0c7b46387e55ba074391fe18922404 [file] [log] [blame] [edit]
#!/bin/bash
# Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
# Creates a hybrid MBR which points the MBR partition 1 to GPT
# partition 12 (ESP).
install_hybrid_mbr() {
info "Creating hybrid MBR"
locate_gpt
local start_esp=$(partoffset "$1" 12)
local num_esp_sectors=$(partsize "$1" 12)
sudo sfdisk "$1" <<EOF
unit: sectors
disk1 : start= ${start_esp}, size= ${num_esp_sectors}, Id= c, bootable
disk2 : start= 1, size= 1, Id= ee
EOF
}
install_raspberrypi_bootloader() {
local efi_offset_sectors=$(partoffset "$1" 12)
local efi_size_sectors=$(partsize "$1" 12)
local efi_offset=$(( efi_offset_sectors * 512 ))
local efi_size=$(( efi_size_sectors * 512 ))
local efi_dir=$(mktemp -d)
sudo mount -o loop,offset=${efi_offset},sizelimit=${efi_size} "$1" \
"${efi_dir}"
info "Installing firmware"
sudo cp "${ROOT}/firmware/rpi/"* "${efi_dir}/"
info "Creating boot configuration files"
sudo cp "${ROOT}/boot/cmdline.txt" "${efi_dir}/"
sudo cp "${ROOT}/boot/config.txt" "${efi_dir}/"
info "Copying kernel.img"
sudo cp "${ROOT}/boot/kernel.img" "${efi_dir}/"
sudo umount "${efi_dir}"
rmdir "${efi_dir}"
}
board_setup() {
install_raspberrypi_bootloader "$1"
install_hybrid_mbr "$1"
}