Инструменты пользователя

Инструменты сайта


wiki:u3b-uboot
no way to compare when less than two revisions

Различия

Показаны различия между двумя версиями страницы.


Предыдущая версия
Последняя версия
wiki:u3b-uboot [2017/05/05 17:54] – [U-Boot] alex
Строка 1: Строка 1:
 +====== Компиляция U-Boot ======
 +===== Установка компилятора =====
 +**Скачать/Разархивировать**
 +<code>
 +wget -c https://releases.linaro.org/components/toolchain/binaries/5.4-2017.01/arm-linux-gnueabihf/gcc-linaro-5.4.1-2017.01-x86_64_arm-linux-gnueabihf.tar.xz
 +tar xf gcc-linaro-5.4.1-2017.01-x86_64_arm-linux-gnueabihf.tar.xz
 +export CC=`pwd`/gcc-linaro-5.4.1-2017.01-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-
 +</code>
 +**Проверить работу компилятора**
 +<code>
 +${CC}gcc --version
 +arm-linux-gnueabihf-gcc (Linaro GCC 5.4-2017.01) 5.4.1 20161213
 +Copyright (C) 2015 Free Software Foundation, Inc.
 +This is free software; see the source for copying conditions.  There is NO
 +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 +</code> 
 +===== U-Boot =====
 +**Скачать исходный код**
 +<code>
 +git clone https://github.com/u-boot/u-boot
 +cd u-boot/
 +git checkout v2017.03 -b tmp
 +</code>
 +**Скачать и установить дополнения**
 +<code>
 +wget -c https://rcn-ee.com/repos/git/u-boot-patches/v2017.03/0001-am335x_evm-uEnv.txt-bootz-n-fixes.patch
 +wget -c https://rcn-ee.com/repos/git/u-boot-patches/v2017.03/0002-U-Boot-BeagleBone-Cape-Manager.patch
 +  
 +patch -p1 < 0001-am335x_evm-uEnv.txt-bootz-n-fixes.patch
 +patch -p1 < 0002-U-Boot-BeagleBone-Cape-Manager.patch
 +</code>
 +**Выполнить компиляцию U-Boot**
 +<code>
 +make ARCH=arm CROSS_COMPILE=${CC} distclean
 +make ARCH=arm CROSS_COMPILE=${CC} am335x_evm_defconfig
 +make ARCH=arm CROSS_COMPILE=${CC}
 +</code>
 +После успешного завершения компиляции вы получите два файла MLO и u-boot.img, которые необходимо записать на SD карту.
 +===== Установка U-Boot на microSD-card =====
 +Для этих инструкций предположим, что SD карта видна в системе как /dev/sdc. Узнать имя устройства можно командой «lsblk» 
 +<code>
 +export DISK=/dev/sdc
 +</code>
 +**Очистка microSD**
 +<code>
 +sudo dd if=/dev/zero of=${DISK} bs=1M count=10
 +</code>
 +**Установка загрузчика**
 +<code>
 +sudo dd if=./u-boot/MLO of=${DISK} count=1 seek=1 bs=128k
 +sudo dd if=./u-boot/u-boot.img of=${DISK} count=2 seek=1 bs=384k
 +</code>
  
 +===== Установка U-Boot на eMMC =====
 +**Создание таблицы разделов на microSD**
 +
 +Проверка версии sfdisk:
 +<code>
 +sudo sfdisk --version
 +</code>
 +Для версии sfdisk >= 2.26.x:
 +<code>
 +sudo sfdisk ${DISK} <<-__EOF__
 +4M,,L,*
 +__EOF__
 +</code>
 +Для версии sfdisk <= 2.25.x:
 +<code>
 +sudo sfdisk --unit M ${DISK} <<-__EOF__
 +4,,L,*
 +__EOF__
 +</code>
 +**Формирование разделов**
 +
 +Проверка версии mkfs.ext4:
 +<code>
 +sudo mkfs.ext4 -V
 +</code>
 +Для версии mkfs.ext4 >= 1.43:
 +<code>
 +sudo mkfs.ext4 -L rootfs -O ^metadata_csum,^64bit ${DISK}1
 +</code>
 +Для версии mkfs.ext4 <= 1.42:
 +<code>
 +sudo mkfs.ext4 -L rootfs ${DISK}1
 +</code>
 +**Монтирование карты**
 +
 +На большинстве операционных систем монтирование происходит автоматически, но если этого не произошло, монтируем с использованием команд:
 +<code>
 +sudo mkdir -p /media/rootfs/
 +sudo mount ${DISK}1 /media/rootfs/
 +</code>
 +**Запись загрузчика**
 +
 +Скопируйте MLO/u-boot.img на загрузочный раздел
 +<code>
 +sudo mkdir -p /media/rootfs/opt/backup/uboot/
 +sudo cp -v ./u-boot/MLO /media/rootfs/opt/backup/uboot/
 +sudo cp -v ./u-boot/u-boot.img /media/rootfs/opt/backup/uboot/
 +</code>
wiki/u3b-uboot.txt · Последнее изменение: 2017/05/05 17:56 — alex