wiki:usomiq-am437x-ezsdk
no way to compare when less than two revisions
Различия
Показаны различия между двумя версиями страницы.
Предыдущая версияСледующая версия | |||
— | wiki:usomiq-am437x-ezsdk [2019/05/28 18:31] – [Файловая система] 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 находится в директории **' | ||
+ | |||
+ | ===== Компиляция ===== | ||
+ | Дальнейшие действия будут в директории board-support: | ||
+ | < | ||
+ | cd board-support | ||
+ | </ | ||
+ | ==== Компиляция u-boot ==== | ||
+ | SDK от Texas Instruments не поддерживает модуль uSomIQ, //хотя и легко запускается, | ||
+ | < | ||
+ | wget http:// | ||
+ | </ | ||
+ | Заходим в директорию ' | ||
+ | < | ||
+ | cd u-boot-2018.01+gitAUTOINC+313dcd69c2-g313dcd69c2 | ||
+ | patch -p1 < ../ | ||
+ | </ | ||
+ | Теперь непосредственно компиляция: | ||
+ | < | ||
+ | make ARCH=arm distclean | ||
+ | make ARCH=arm am43xx_evm_usomiq_defconfig | ||
+ | make ARCH=arm CROSS_COMPILE=${CC} | ||
+ | </ | ||
+ | Если всё сделано правильно, | ||
+ | ==== Компиляция ядра ==== | ||
+ | SDK от Texas Instruments не поддерживает модуль uSomIQ, поэтому сначала скачаем и применим исправления исходных кодов для модуля uSomIQ: | ||
+ | < | ||
+ | wget http:// | ||
+ | cd linux-4.14.79+gitAUTOINC+bde58ab01e-gbde58ab01e | ||
+ | patch -p1 < ../ | ||
+ | </ | ||
+ | Непосредственно компиляция | ||
+ | < | ||
+ | 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 | ||
+ | </ | ||
+ | Если ваш компьютер имеет несколько процессорных ядер (не путать с логическими ядрами), | ||
+ | < | ||
+ | make ARCH=arm CROSS_COMPILE=${CC} zImage modules dtbs -j8 | ||
+ | </ | ||
+ | ==== Подготовка SD карты ==== | ||
+ | Возьмите SD карту объемом не менее 2ГБ. Далее разобьем общее пространство карты на два: | ||
+ | * boot - раздел fat32 для u-boot | ||
+ | * rootfs - раздел 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] | ||
+ | </ | ||
+ | В данном примере карта уже разбита на два раздела, | ||
+ | |||
+ | |||
+ | Итак, cначала удалим все разделы с карты: | ||
+ | < | ||
+ | sudo dd if=/ | ||
+ | </ | ||
+ | Далее, чтобы выполнить разметку карты выполняем команду: | ||
+ | < | ||
+ | sudo sfdisk --version | ||
+ | </ | ||
+ | Если версия sfdisk >= 2.26.x (sfdisk from util-linux 2.27.1), то выполняем команду: | ||
+ | < | ||
+ | sudo sfdisk /dev/sdc << | ||
+ | 1M, | ||
+ | 13M,,,- | ||
+ | __EOF__ | ||
+ | </ | ||
+ | На карте 16ГБ получилась такая карта разделов: | ||
+ | < | ||
+ | Device | ||
+ | / | ||
+ | / | ||
+ | </ | ||
+ | Теперь форматируем разделы: | ||
+ | * Форматируем раздел 1 как " | ||
+ | < | ||
+ | sudo mkfs.vfat -F 16 -n BOOT /dev/sdc1 | ||
+ | </ | ||
+ | * Форматируем раздел 2 как " | ||
+ | < | ||
+ | sudo mkfs.ext4 -L rootfs /dev/sdc2 | ||
+ | </ | ||
+ | |||
+ | **Монтирование разделов** | ||
+ | Если в вашей системе не поддерживается автоматическое монтирование разделов носителей, | ||
+ | < | ||
+ | sudo mkdir -p /media/boot | ||
+ | sudo mkdir -p / | ||
+ | sudo mount /dev/sdc1 /media/boot | ||
+ | sudo mount /dev/sdc2 / | ||
+ | </ | ||
+ | ==== Файловая система ==== | ||
+ | Файловую систему скачаем готовую для SDK (размер архива 2ГБ): | ||
+ | < | ||
+ | wget http:// | ||
+ | </ | ||
+ | Сначала распакуем весь архив: | ||
+ | < | ||
+ | tar xf am437x-evm-linux-sdk-bin-05.02.00.10.tar.xz | ||
+ | </ | ||
+ | Получаем директорию " | ||
+ | < | ||
+ | cd ti-processor-sdk-linux-am437x-evm-bin-05.02.00.10 | ||
+ | ls | ||
+ | bin board-support | ||
+ | </ | ||
+ | В данном архиве содержится несколько файловых систем, | ||
+ | < | ||
+ | arago-base-tisdk-image-am437x-evm.tar.xz | ||
+ | arago-base-tisdk-image-am437x-evm.ubi | ||
+ | arago-tiny-image-am437x-evm.tar.xz | ||
+ | arago-tiny-image-am437x-evm.ubi | ||
+ | tisdk-docker-rootfs-image-am437x-evm.tar.xz | ||
+ | tisdk-docker-rootfs-image-am437x-evm.ubi | ||
+ | tisdk-rootfs-image-am437x-evm.tar.xz | ||
+ | tisdk-rootfs-image-am437x-evm.ubi | ||
+ | </ | ||
+ | Запишем на нашу SD карту файловую систему **tisdk-rootfs-image-am437x-evm.tar.xz** | ||
+ | < | ||
+ | cd filesystem | ||
+ | sudo tar xf tisdk-rootfs-image-am437x-evm.tar.xz -C / | ||
+ | </ | ||
+ | ==== Запись загрузчиков на карту ==== | ||
+ | === Запись u-boot на карту === | ||
+ | Заходим в директорию u-boot ' | ||
+ | < | ||
+ | sudo cp MLO /media/boot | ||
+ | sudo cp u-boot.img /media/boot | ||
+ | </ | ||
+ | === Запись ядра, модулей и dtb === | ||
+ | Заходим в директорию ядра Linux ' | ||
+ | < | ||
+ | sudo cp arch/ | ||
+ | sudo make ARCH=arm INSTALL_MOD_PATH=/ | ||
+ | sudo cp arch/ | ||
+ | </ | ||
+ | Далее нужно обязательно отмонтировать оба раздела, | ||
+ | < | ||
+ | sudo umount /dev/sdc1 /dev/sdc2 | ||
+ | </ | ||
+ | Теперь карту можно извлечь из ПК и загружать с нее модуль uSomIQ AM437x. Загрузка происходит автоматически без дополнительных действий. |
wiki/usomiq-am437x-ezsdk.txt · Последнее изменение: 2023/06/16 14:42 — admin77