wiki:usomiq-am437x-ezsdk
no way to compare when less than two revisions
Различия
Показаны различия между двумя версиями страницы.
Предыдущая версияСледующая версия | |||
— | wiki:usomiq-am437x-ezsdk [2019/01/14 17:53] – [Файловая система] maxx | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
+ | ====== Linux SDK для AM437x Sitara ====== | ||
+ | // | ||
+ | Компиляция выполнялась на машине Ubuntu 16.04.2 LTS 64bit | ||
+ | ===== Скачиваем необходимые ресурсы ===== | ||
+ | Исходные тексты ядра и файловой системы, | ||
+ | |||
+ | Компилировать всё будем сами из исходных текстов, | ||
+ | |||
+ | 1. Скачиваем компилятор | ||
+ | < | ||
+ | wget https:// | ||
+ | </ | ||
+ | 2. Скачиваем SDK в исходниках | ||
+ | < | ||
+ | wget http:// | ||
+ | </ | ||
+ | ===== Распаковка исходников ===== | ||
+ | Компилятор можно распаковать в локальную директорию, | ||
+ | |||
+ | Сначала создадим директорию, | ||
+ | < | ||
+ | mkdir am437x-evm-linux-sdk-src-05.02.00.10 | ||
+ | cd am437x-evm-linux-sdk-src-05.02.00.10 | ||
+ | </ | ||
+ | Распакуем компилятор в локальной директории (исправьте абсолютный путь к реальному положению ваших архивов): | ||
+ | < | ||
+ | tar xf / | ||
+ | </ | ||
+ | У нас появился архив ' | ||
+ | < | ||
+ | export CC=`pwd`/ | ||
+ | </ | ||
+ | Проверим работает ли компилятор: | ||
+ | < | ||
+ | ${CC}gcc -v | ||
+ | Using built-in specs. | ||
+ | COLLECT_GCC=/ | ||
+ | COLLECT_LTO_WRAPPER=/ | ||
+ | Target: arm-linux-gnueabihf | ||
+ | Configured with: '/ | ||
+ | Thread model: posix | ||
+ | gcc version 7.2.1 20171011 (Linaro GCC 7.2-2017.11) | ||
+ | </ | ||
+ | GCC выдал свою версию, | ||
+ | |||
+ | |||
+ | 2. Исходники SDK | ||
+ | |||
+ | Распакуем исходники SDK в локальную директорию рядом с SDK | ||
+ | < | ||
+ | tar xf / | ||
+ | </ | ||
+ | Появилась директория ' | ||
+ | < | ||
+ | board-support/ | ||
+ | cmem-mod-4.15.00.02+gitAUTOINC+0f39ed469f | ||
+ | |||
+ | board-support/ | ||
+ | arch | ||
+ | block COPYING | ||
+ | |||
+ | board-support/ | ||
+ | api | ||
+ | arch cmd config.mk | ||
+ | </ | ||
+ | u-boot находится в директории **' | ||
+ | ===== Компиляция ===== | ||
+ | ==== Компиляция u-boot ==== | ||
+ | Заходим в директорию ' | ||
+ | < | ||
+ | make ARCH=arm distclean | ||
+ | make ARCH=arm am43xx_evm_usomiq_defconfig | ||
+ | make ARCH=arm CROSS_COMPILE=${CC} | ||
+ | </ | ||
+ | Если ваш модуль имеет NAND с размером страницы 4096 байт, то надо использовать другой _defconfig вместо обычного: | ||
+ | < | ||
+ | make ARCH=arm am43xx_evm_usomiq_nand4k_defconfig | ||
+ | </ | ||
+ | Если всё сделано правильно, | ||
+ | < | ||
+ | cp MLO /media/boot | ||
+ | cp u-boot.img /media/boot | ||
+ | </ | ||
+ | ==== Компиляция ядра ==== | ||
+ | < | ||
+ | make ARCH=arm CROSS_COMPILE=${CC} distclean | ||
+ | make ARCH=arm CROSS_COMPILE=${CC} tisdk_am437x-evm_defconfig | ||
+ | make ARCH=arm CROSS_COMPILE=${CC} zImage modules dtbs | ||
+ | </ | ||
+ | ==== Подготовка SD карты ==== | ||
+ | Возьмите SD карту объемом не менее 2ГБ. Далее разобьем общее пространство карты на два: | ||
+ | * boot - раздел fat32 для u-boot | ||
+ | * roofs - раздел ext4 для файловой системы | ||
+ | |||
+ | // | ||
+ | |||
+ | Вставляете SD карту в ПК и определяете как к ней обращаться: | ||
+ | < | ||
+ | dmesg | tail | ||
+ | </ | ||
+ | Появится что-то похожее: | ||
+ | < | ||
+ | [530052.702577] EXT4-fs (sdc2): mounted filesystem with ordered data mode. Opts: (null) | ||
+ | [535222.048372] sd 2:0:0:0: [sdc] 15431680 512-byte logical blocks: (7.90 GB/7.36 GiB) | ||
+ | [535222.056436] | ||
+ | </ | ||
+ | В данном примере карта уже разбита на два раздела, | ||
+ | < | ||
+ | sudo fdisk /dev/sdc | ||
+ | </ | ||
+ | Если на карте есть разделы, | ||
+ | - Создаем раздел командой ' | ||
+ | - Изменяем тип раздела на fat16 нажатием ' | ||
+ | - Делаем раздел загружаемым: | ||
+ | Теперь создадим раздел для файловой системы: | ||
+ | - Создаем раздел командой ' | ||
+ | Можно посмотреть что получилось в итоге. Для этого нажмите ' | ||
+ | < | ||
+ | Disk /dev/sdc: 7948 MB, 7948206080 bytes | ||
+ | 255 heads, 63 sectors/ | ||
+ | Units = sectors of 1 * 512 = 512 bytes | ||
+ | Sector size (logical/ | ||
+ | I/O size (minimum/ | ||
+ | Disk identifier: 0xafb3f87b | ||
+ | |||
+ | | ||
+ | / | ||
+ | / | ||
+ | </ | ||
+ | Для записи разделов на диск нажмите ' | ||
+ | |||
+ | **Форматирование разделов** | ||
+ | - Форматируем раздел 1 как " | ||
+ | - Форматируем раздел 2 как " | ||
+ | |||
+ | **Монтирование разделов** | ||
+ | Если в вашей системе не поддерживается автоматическое монтирование разделов носителей, | ||
+ | < | ||
+ | sudo mkdir -p /media/boot | ||
+ | sudo mkdir -p / | ||
+ | sudo mount /dev/sdc1 /media/boot | ||
+ | sudo mount /dev/sdc2 / | ||
+ | </ | ||
+ | ==== Файловая система ==== | ||
+ | Файловую систему скачаем готовую для SDK (размер архива 2ГБ): | ||
+ | < | ||
+ | wget http:// | ||
+ | </ | ||
+ | В данном архиве содержится несколько файловых систем, | ||
+ | |||
+ | ==== Запись на карту ==== | ||
+ | **Запись u-boot на карту** | ||
+ | Заходим в директорию u-boot "" | ||
+ | < | ||
+ | sudo cp MLO /media/boot | ||
+ | sudo cp u-boot.img /media/boot | ||
+ | </ | ||
+ | Запись ядра, модулей и dtb на карту: | ||
+ | < | ||
+ | sudo cp arch/ | ||
+ | sudo make ARCH=arm INSTALL_MOD_PATH=/ | ||
+ | sudo cp arch/ | ||
+ | </ | ||
wiki/usomiq-am437x-ezsdk.txt · Последнее изменение: 2023/06/16 14:42 — admin77