Цель написания: Этот документ служит руководством по разработке системной платформы Allwinner Tina Linux. Он предназначен для того, чтобы помочь инженерам-разработчикам программного обеспечения и инженерам технической поддержки быстро приступить к работе и ознакомиться с процессом разработки и отладки системы Tina Linux.
Область применения: Tina Linux v3.5 и выше.
Документы, выпущенные Tina SDK, призваны помочь разработчикам быстро приступить к разработке и отладке. Содержание документов не может охватить все знания и проблемы разработки. Список документации также постоянно обновляется.
Tina SDK предоставляет обширную документацию, в том числе документацию по эталонному проектированию аппаратного обеспечения, списки поддержки Flash и других основных устройств, инструкции по использованию инструментов массового производства, вводные документы по разработке программного обеспечения и формулированию, руководства по разработке микросхем и другие материалы.
Пожалуйста, обратитесь к последнему списку платформы обслуживания клиентов Quanzhi Technology Quanzhi.
Система Tina Linux представляет собой комплект разработки программного обеспечения, основанный на версии openwrt-14.07, который включает исходный код ядра, драйверы, инструменты, системное промежуточное программное обеспечение и пакеты приложений, используемые для разработки системы Linux. openwrt — это среда автоматического построения встроенной системы Linux с открытым исходным кодом, которая состоит из сценария Makefile и файла конфигурации Kconfig. Это позволяет пользователям компилировать полное системное программное обеспечение Linux, которое можно напрямую запрограммировать для запуска на компьютере через конфигурацию меню.
На рисунке показана блок-схема программного обеспечения системы Tina, которая разделена на ядро снизу вверх. && Driver、Libraries、System Существует четыре уровня: Сервис-пороки и Приложения. Содержание каждого уровня следующее:
Система Tina Linux основана на ядре Linux и представляет собой SDK, разработанный для множества различных форм продуктов. можно основываться на этом SDK эффективно реализует настройку системы и разработку трансплантации приложений.
Как показано на рисунке выше, разработчики могут следовать описанному выше процессу разработки, чтобы быстро создать среду разработки и локально скомпилировать систему Tina Linux. код. Этот процесс будет кратко представлен ниже:
Процесс разработки встроенного продукта обычно состоит из двух ключевых этапов: компиляции исходного кода и программирования встроенного ПО. Сначала необходимо подготовить компиляцию исходного кода
Среда компиляции, а программирование прошивки требует от производителей предоставления специальных инструментов программирования. В этой главе в основном описывается, как настроить среду для компиляции и программирования Tinasdk.
Типичная встроенная среда разработки включает в себя локальный хост разработки и целевую аппаратную плату.
Tina Linux SDK был разработан и протестирован в Ubuntu14.04, поэтому мы Рекомендуется использовать Ubuntu 14.04 Исходный код компилируется в среде хоста. Для других версий не требуется специального тестирования. Возможно, потребуется соответствующим образом скорректировать пакет программного обеспечения.
Перед компиляцией Tina Linux SDK необходимо убедиться, что на сервере компиляции есть gcc, binutils, bzip2, flex, python, perl, make, ia32-libs, find, grep, diff, unzip, gawk, getopt, subversion-sion, libz-dev установлен, заголовки libc.
Ubuntu можно установить напрямую, выполнив следующую команду:
sudo apt-get install build-essential subversion git-core libncurses5-dev zlib1g-dev gawkflex quilt libssl-dev xsltproc libxml-parser-perl mercurial bzr ecj cvs unzip ia32-libslib32z1 lib32z1-dev lib32stdc++6 libstdc++6 -y
В Ubuntu 16.04 и выше выполните следующую команду, чтобы установить пакет программного обеспечения:
sudo apt-get install build-essential subversion git-core libncurses5-dev zlib1g-dev gawk flex quilt libssl-dev xsltproc libxml-parser-perl mercurial bzr ecj cvs unzip lib32z1 lib32z1-dev lib32stdc++ libstdc++6 -y libc6:i386 libstdc++6:i386 lib32ncurses5 lib32z
Allwinner Tina Linux SDK выпускается через сервер кода Allwinner. Клиентам необходимо подать заявку на разрешение на загрузку SDK из окна бизнес-/технической поддержки. Приложению требуется одновременное предоставление открытого ключа SSH для аутентификации и авторизации сервера. После авторизации код можно синхронизировать.
Tina Linux SDK в основном состоит из системы сборки, инструментов настройки, цепочек инструментов, наборов инструментов хоста, приложений целевых устройств, документов, сценариев, ядра Linux и загрузчика. Соответствующие компоненты представлены ниже в порядке каталогов.
Tina-SDK/
├── build
├── config
├── Config.in
├── device
├── dl
├── docs
├── lichee
├── Makefile
├── out
├── package
├── prebuilt
├── rules.mk
├── scripts
├── target
├── tmp
├── toolchain
└── tools
В каталоге сборки хранятся файлы системы сборки Tina Linux. Эта структура каталогов в основном содержит ряд файлов, скомпилированных на основе спецификаций Makefile. файл мк написан. Основные функции:
build/
├── autotools.mk
├── aw-upgrade.mk
├── board.mk
├── cmake.mk
├── config.mk
├── debug.mk
├── depends.mk
├── device.mk
├── device_table.txt
├── download.mk
├── dumpvar.mk
├── envsetup.sh
В каталоге конфигурации в основном хранится интерфейс меню конфигурации в Tina Linux и некоторые фиксированные элементы конфигурации. Меню конфигурации основано на внутреннем. Написана основная спецификация mconf.
config/
├── Config-build.in
├── Config-devel.in
├── Config-images.in
├── Config-kernel.in
└── top_config.in
Каталог устройств используется для хранения файлов конфигурации решения, включая конфигурацию ядра, конфигурацию env, конфигурацию таблицы разделов, sys_config.fex, доска.dts и т. д.
Эти конфигурации были сохранены в целевом каталоге в старой версии и перемещены в каталог устройства в новой версии.
Обратите внимание, что defconfig по-прежнему сохраняется в целевом каталоге.
device/
└── config
├── chips
├── common
└── rootfs_tar
Команда быстрого перехода: cconfigs
В каталоге docs в основном хранятся документы, используемые для разработки, написанные в формате уценки.
Этот каталог больше не будет обновляться. См. системную документацию платформы обслуживания клиентов Allwinner.
docs/
├── build.md
├── config.md
├── init-scripts.md
├── Makefile
├── network.md
├── tina.md
├── wireless.md
└── working.md
В каталоге lichee в основном хранятся загрузчик, ядро, arisc, dsp и другие коды.
lichee/
├── bootloader
│ ├── uboot_2011_sunxi_spl
│ └── uboot_2014_sunxi_spl
├── brandy
│ ├── u-boot-2011.09
│ └── u-boot-2014.07
├── brandy-2.0
│ ├── spl
│ ├── tools
│ └── u-boot-2018
├── linux-3.4
├── linux-3.10
├── linux-4.4
├── linux-4.9
├── arisc
Команды быстрого перехода: ядро, cboot, cboot0, carisc.
В каталоге пакета хранится исходный код пакета программного обеспечения и правила компиляции на целевой машине. Каталог разделен в соответствии с функциями целевого пакета программного обеспечения. добрый.
package/
├── allwinner
├── base-files
├── devel
├── dragonst
├── firmware
├── kernel
├── ......
└── utils
В каталоге предварительной сборки хранится предварительно скомпилированный кросс-компилятор. Структура каталогов следующая.
prebuilt/
└── gcc
└── linux-x86
├── aarch64
│ ├── toolchain-sunxi-musl
│ └── toolchain-sunxi-glibc
├── arm
│ ├── toolchain-sunxi-arm9-glibc
│ ├── toolchain-sunxi-arm9-musl
│ ├── toolchain-sunxi-glibc
│ ├── toolchain-sunxi-musl
└── host
└── host-toolchain.txt
Каталог сценариев используется для хранения некоторых сценариев, связанных со сборкой и компиляцией.
scripts/
├── arm-magic.sh
├── brcmImage.pl
├── bundle-libraries.sh
├── checkpatch.pl
├── clang-gcc-wrapper
├── cleanfile
├── clean-package.sh
├── cleanpatch
├── ......
Целевой каталог используется для хранения конфигураций и спецификаций целевой платы, созданных SDK и набором инструментов.
target/
├── allwinner
├── Config.in
├── imagebuilder
├── Makefile
├── sdk
└── toolchain
Команда быстрого перехода: cdevice.
Каталог инструментальной цепочки содержит конфигурации и правила сборки кросс-инструментальной цепочки.
toolchain/
├── binutils
├── Config.in
├── fortify-headers
├── gcc
├── gdb
├── glibc
├── info.mk
├── insight
├── kernel-headers
├── Makefile
├── musl
└── wrapper
Каталог инструментов используется для хранения правил компиляции инструментов на стороне хоста.
tools/
├── autoconf
├── automake
├── aw_tools
├── b43-tools
├── ......
Каталог out используется для сохранения временных файлов и окончательных файлов изображений, связанных с компиляцией. Этот каталог автоматически создается после компиляции, например, плана компиляции. r328s2-perf1.
out/
├── r328s2-perf
└── host
Каталог хоста используется для хранения инструментов на стороне хоста и некоторых файлов, связанных с разработкой.
Каталог r328s2-perf1 — это каталог, соответствующий решению. Структура каталога программы следующая:
out/r328s2-perf
├── boot.img
├── compile_dir
├── image
├── md5sums
├── packages
├── r328s2-perf1-boot.img
├── r328s2-perf1-uImage
├── r328s2-perf1-zImage
├── rootfs.img
├── sha256sums
├── staging_dir
└── tina_r328s2-perf1_uart0.img
Команда быстрого прыжка: cout.
Обновления SDK разделены на две категории: одна выпускается в One Number в виде патчей, а система уведомляет разработчиков по электронной почте после выпуска; другая — это регулярные (раз в полгода или квартал) итеративные обновления небольших версий, которые обновляются в прошлом; Патчи, интегрированные в SDK, после выпуска будут уведомлены разработчиками по системной электронной почте, и их можно будет обновить с помощью команды синхронизации репо на основе чистого пакета SDK.
Allwinner предоставляет платформу обслуживания клиентов Allwinner (https://open.allwinnertech.com) для регистрации проблем, с которыми сталкиваются клиенты. Статус проблемы и решения. Это облегчает отслеживание обеими сторонами и делает решение проблем более эффективным. Последующие проблемы с SDK, технические проблемы, технические консультации. и т. д. могут быть отправлены в эту систему, и технические службы Allwinner будут своевременно распространять, обрабатывать и отслеживать проблемы.
Примечание. Учетную запись для входа в систему необходимо открыть и подтвердить в Allwinner.
(1) source build/envsetup.sh
(2) lunch
(3) make [-jN]
(4) pack [-d]
в,
Шаг (1) Создайте среду компиляции и экспортируйте переменные компиляции.
Шаг (2) предложит вам выбрать решение, которое вы хотите скомпилировать.
Параметр N на шаге (3) — это количество параллельных процессов компиляции, которое зависит от количества ядер ЦП сервера компиляции, например: 4 Core PC, может «сделать -j4"
Шаг (4) Пакет прошивки, параметр -d позволяет выводить информацию о последовательном порте сгенерированного пакета прошивки держателю карты пакета.
После завершения компиляции образ системы будет Пакетсуществоватьout/<board>/в каталоге
Заказ | Заказдействительный каталог | эффект |
---|---|---|
mboot | Любой каталог под tina | Скомпилируйте boot0 и uboot |
mboot0 | Любой каталог под tina | Скомпилировать boot0 |
muboot | Любой каталог под tina | Скомпилировать uboot |
Заказ | Заказдействительный каталог | эффект |
---|---|---|
mkernel | Любой каталог под tina | Скомпилировать ядро |
arisc — это кодовое имя платформы AW для среды кода процессора. Его основная функция — отвечать за базовые операции, такие как спящий режим и завершение работы. он содержит Драйверы, библиотеки и наборы инструментов, необходимые для работы процессора, компилируются для создания scp.bin, а затем упаковываются в образ Tina с загрузочным файлом. Загрузчик загружается в домен процессора при запуске и запускается.
Тина предоставляет следующие прыжки и подборки, связанные с arisc:
Заказ | Заказдействительный каталог | эффект |
---|---|---|
carisc | Любой каталог под tina | Перейдите в каталог проекта кода процессора. |
mkarisc | Любой каталог под tina | Скомпилировать код процессора |
В Tina существует два способа компиляции кода arisc:
Первый способ — перейти к пути к коду arisc и скомпилировать его с помощью make.
Библиотека кода arisc имеет независимую цепочку инструментов и систему сборки, поэтому для компиляции кода arisc вы также можете перейти по соответствующему пути. Вниз, выполните makeЗаказ. Однако обратите внимание, что на данном этапе вам необходимо вручную сгенерировать файл isscp.bincopia. файлприжатьезSDKизbin файл По пути перезапишите соответствующий файл (общий путь — tina/device/config/chips/${имя платформы}/bin).
Операция заключается в следующем:
step1
Используйте carisc или cd Order, чтобы перейти в среду кода прибытияarisc Вниз, обычно tina/lichee/arisc/ar100s.
step2
Сгенерируйте необходимую конфигурацию. В Arch/configs/Вниз есть множество файлов конфигурации по умолчанию defconfig, которые можно выбирать и использовать в соответствии с моделью AXP, например make sun50iw10p1_axp803_defconfig. Эта операция создаст файл .config в корневом каталоге arisc.
step3
Чтобы изменить конфигурацию по умолчанию, используйте make менюконфигурация. Эта операция создаст меню конфигурации. Просто выберите необходимую конфигурацию. Эта операция изменит файл .config. Если вам нужно повторно использовать конфигурацию по умолчанию, повторите шаг 2.
step4
Скомпилировать с помощью makeЗаказ
step5
Скопируйте scp.bin в каталог приезжатьTinaizbin, то есть cbin может перейти в каталог из. Например, /tina/device/config/chips/r818/binstep6.
Если вам нужно очистить проект, вы можете использовать make clean
step7
Если вам нужно отправить изменения конфигурации defconfig, вы можете использовать make savedefconfigЗаказ. Этот заказ будет создан в корневом каталоге arisc на основе .config. дефконфиг. Скопируйте defconfig в папку прибытияarch/configs/Вниз и перезапишите соответствующий файл конфигурации.
Уведомление:
Вообще говоря, функции, выполняемые arisc, являются относительно низкоуровневыми, в основном связаны с такими операциями, как спящий режим и завершение работы, и имеют более высокие требования к стабильности. мы не Клиентам рекомендуется самостоятельно изменить любую соответствующую конфигурацию и код. При необходимости свяжитесь с нашей компанией или проведите достаточное тестирование стабильности.
Второй способ — использовать mkariscЗаказ.
Как упоминалось в приведенном выше методе,Чтобы решить проблему ручного копирования после компиляции arisc, Тина,TinaЭтот ярлык предоставляется Заказ мкариск. Следует отметить, что в настоящее время поддерживается только компиляция кода arisc R818 и MR813.
Операция заключается в следующем:относительно простой
step1
Настройте среду tina, например soure build/envsetup.sh, обед и другие операции.
step2
Используйте mkarisc для компиляции или напрямую КомпилироватьTina. При КомпилироватьTina также будет автоматически вызываться mkarisc Order.
Уведомление:
При компиляции с использованием mkariscЗаказ,Board.dts будет автоматически прочитан для получения модели AXP.,Затем используйте соответствующий файл конфигурации по умолчанию. Компиляция файлов. Если в board.dts указано «x-powers, axp803», mkarsicЗаказ будет использовать среду разработки arisc. Скомпилируйте файл конфигурации sun50iw10p1_axp803_defconfig в среде. В настоящее время, если вам нужно изменить конфигурацию arisc, Вы можете только сначала изменить файл конфигурации, а затем скомпилировать. Другие изменения конфигурации не принимаются.
E907 — это название процессора AMP платформы V85x. Его основная функция — обеспечить дополнительную вычислительную мощность и помочь Linux добиться быстрого запуска. ждать. Он содержит драйверы, библиотеки и наборы инструментов, необходимые для работы E907. Он скомпилирован для создания riscv.fex и упакован в образ Tina. Он загружается в ядро RISC-V и запускается загрузчиком при запуске.
В Tina SDK скомпилируйте код E907 RISCV следующим образом:
E907 RISCV База кода имеет независимую цепочку инструментов и систему сборки, поэтому E907 Компиляцию прошивки тоже можно пропустить Поверните Приехать, соответствующий пути Вниз, и выполните Заказ. Однако следует отметить, что в это время вам необходимо вручную генерировать melis30.elf копия файла приезжать SDK из bin Путь к файлу Вниз, охватывающий соответствующий файл (общий путь устройство/конфигурация/чипы/${Платформа имя}/configs/default/riscv.fex).
Операция заключается в следующем:
step1
Используйте cdЗаказ, чтобы перейти в среду кода прибытияe907 Вниз, обычно rtos-dev/lichee/melis-v3.0/source.
step2
source melis-env.sh
step3
lunch v853-e907-ver1-board
step4
make menuconfig
step5
make -j
step6
Если вам нужно уменьшить объем памяти, вы можете обрезать отладочную информацию в melis. Выполнение исходного каталога: riscv64-unknown-elf-strip ekernel/melis30.elf
step7
Скопируйте и переименуйте его в riscv.fex, чтобы заменить изriscv.fex в каталоге tina/device/config/chips/v853/configs/default.
cp ekernel/melis30.elf /home/xxx/tina/device/config/chips/v853/configs/default/riscv.fex
step8
Выполнение системного каталога Tina Пакет Заказpack
Пожалуйста, убедитесь, что вы скомпилировали прошивку один раз.,Убедитесь, что база SDK скомпилирована.,быть одному Перепрограммировать приложение Сумка。Перепрограммировать Сценарии применения пакета приложения обычно предназначены для: Я только модифицировал приложение, перепрошивку не хочу, нужно только установить установочный пакет приложения. . Перед компиляцией убедитесь, что среда tina загружена:
$ source build/envsetup.sh
$ lunch
Находясь в каталоге пакета приложения (включая его подкаталоги), вы можете выполнить
$ mm [-B]
=> Параметр B сначала очищает временные файлы этого приложения, а затем компилирует его.
Пример: Предположим, что путь к пакету программного обеспечения: tina/package/utils/rwcheck, тогда:
$ cd tina/package/utils/rwcheck
$ mm -B
Скомпилированный установочный пакет программы сохраняется по следующему пути:
tina/out/<план>/packages/base
Находясь в корневом каталоге tinaiz, выполните:
$ make <приложение Сумкаизпуть>/clean,==>清空приложение Сумкавременныйдокумент
$ make <приложение Сумкаизпуть>/install,==>Компиляция программного обеспечения Сумка
или
$ make <приложение Сумкаизпуть>/{clean,install},==>Сначала очистите временные файлы, а затем скомпилируйте
Пример. Предположим, что путь к пакету: tina/package/utils/rwcheck, тогда:
$ cd tina
$ make package/utils/rwcheck/{clean,install}
Заказ | Заказдействительный каталог | эффект |
---|---|---|
make | Корневой каталог tina компилирует весь SDK | |
make | Корневой каталог Menuconfig tina запускает интерфейс конфигурации пакета программного обеспечения. | |
make | root_menuconfig tina запускает интерфейс конфигурации ядра | |
mkarisc | Любой каталог под tina Скомпилируйте исходный код процессора и выберите соответствующую конфигурацию по умолчанию в соответствии с моделью AXP. | |
printfconfig | Любой каталог под tina Распечатать текущую конфигурацию SDKиз | |
croot | Любой каталог под tina Быстрый переход приезжатькорневой каталог Тины | |
cconfigs | Любой каталог под tina Быстрое переключение схемы проживания из каталога конфигурации | |
cdevice | Любой каталог под tina Быстрое переключение каталога конфигурации схемы проживания | |
carisc | Любой каталог под tina Быстрое переключение каталога кодов процессора | |
cgeneric | Любой каталог под tina Быстрое переключение общего каталога схемы проживания | |
cout | Любой каталог под tina Быстрое переключение программы прибытия из выходного каталога | |
cboot | Любой каталог под tina Быстрое переключение каталога загрузчика | |
cgrep | Любой каталог под tina Найти строки в файлах c/c++/h | |
minstall | корневой каталог path/to/package/tina Скомпилируйте и установите пакет программного обеспечения. | |
mclean | путь/к/пакету/корневой каталог tina, чистый пакет | |
mm [-B] | Каталог пакета программного обеспечения. Скомпилируйте пакет программного обеспечения. -B означает очистку перед компиляцией. | |
pack | упакованная прошивка в корневом каталоге tina | |
m | Любой каталог под tina makeиз Быстрый Заказ,Скомпилировать весь SDK | |
p | Любой каталог под tina Packizfast Заказ, Пакет прошивки |
В этой главе в основном описывается процесс записи готового файла образа (образа) и его запуска на аппаратном устройстве.
из Горетьинструмент в SDK больше не обновляется,Будет удалено позже,Пожалуйста, уделите приоритетное внимание загрузке последней версии Гореинструмента с платформы обслуживания клиентов Цюаньчжи.
windowsинструмент интегрирован в APST,Просто скачайте и установите APST,APSTизинструмент поставляется с собственной документацией.
Tina предлагает несколько видов записи изображений, введение показано в таблице. Пользователи могут выбрать подходящий метод записи.
инструмент | Запустите систему | описывать |
---|---|---|
PhoenixSuit | windows | Раздел обновления и весь инструмент для обновления прошивки |
PhoenixCard | windows | Инструмент для производства прошивки карты |
PhoenixUSBpro | windows | Инструмент для модернизации массового производства,Поддержка USB One Drag 8 Гореть |
LiveSuit | ubuntu | Инструмент обновления прошивки |
Для убунту:
Конкретные инструкции и инструкции по использованию можно загрузить с платформы обслуживания клиентов Гореинструмент.
Устройству необходимо войти в режим Гореть. Устройство перейдет в режим Гореть в следующих ситуациях:
В этой главе кратко описываются базовые настройки uboot.、функция пошива одежды、Компилировать пакет、Обычно используется Заказизиспользовать,Помогите клиентам понять Тину Платформа uboot обеспечивает основу для разработки индивидуальной загрузки.
В настоящее время Тина В SDK есть три версии uboot: uboot-2011, uboot-2014 и uboot-2018. При использовании на той же аппаратной платформе клиентам необходимо проверить информацию о версии в соответствии с аппаратной платформой разработки при получении SDK.
TinaSDK/
├── brandy
│ ├── ...
│ ├── u-boot-2011
│ └── u-boot-2014
├── brandy-2.0
│ ├── ...
│ └── u-boot-2018
В TinaSDK загрузчик/uboot запускается до запуска ядра и может инициализировать аппаратные устройства и создавать карты пространства памяти. Спроецируйте карту, тем самым приведя системное программное и аппаратное обеспечение в подходящее состояние и подготовив правильную среду для окончательного вызова ядра Linux. в На платформе системы Тине,Помимо необходимости загрузки системы для запуска функции,uboot также обеспечивает программирование, обновления и другие функции.
На примере uboot-2018 различные функции можно включать и отключать с помощью defconfig или меню конфигурации menuconfig. Конкретный метод настройки следующий:
Как показано выше,Просто удалите # перед CONFIG_SUNXI_NAND, чтобы поддержать функцию, связанную с NAND.,Другие определения макросов аналогичны для включения и выключения.
На следующем рисунке представлены основные определения макросов в sun8iw18p1_defconfig/sun8iw18p1_nor_defconfig:
Шаги по настройке из режима меню конфигурации следующие:
cd /TinaSDK/lichee/brandy2.0/u-boot-2018/
make ARCH=arm менюконфигурировать или сделать ARCH=arm64 menuconfig
Уведомление: рука для 32 битовая платформа, цели Arm64 64 битовая платформа.
Выполнение вышеуказанного заказа приведет к появлению меню конфигурации меню.,Как показано ниже,На этом этапе вы можете настроить функцию каждого модуля.,соответствовать Способ настройки описан в окне меню конфигурации меню.
Вы можете скомпилировать uboot в каталоге tina.
source build/envsetup.sh (см. подробное примечание 1)
lunch (См. подробное примечание 2)
muboot (см. подробное примечание 3)
Подробные примечания:
1 Загрузка переменных среды и tina предоставляет из Заказ.
2 Введите номер и выберите план.
3 Скомпилировать uboot, автоматически обновлять uboot после завершения компиляции binaryприезжатьTinaSDK/target/allwinner/$(BOARD)-common/bin/。
source build/envsetup.sh (см. подробное примечание 1)
lunch (См. подробное примечание 2)
cboot (см. подробное примечание 3)
make XXX_config (см. подробное примечание 4)
make -j
Подробные примечания:
3 Перейдите в каталог с исходным кодом приезжатьUboot.
4 Выберите конфигурацию решения. Если вы используете norflash, запустите make. XXX_nor_config。
5 Выполнить Скомпилировать ubootизэкшн.
sys_config.fex — важный файл для настройки параметров различных модулей. Он предоставляет информацию для изменения и обновления важных параметров каждого модуля. Чрезвычайно удобно. Путь хранения документов:
TinaSDK/target/allwinner/$(BOARD)/configs/sys_config.fex
TinaSDK/device/config/chips/$(CHIP)/configs/$(BOARD)/sys_config.fex
sys_config.fes в основном состоит из первичных ключей и подразделов.,Первичный ключ — это основной идентификатор элемента или модуля.,В квадратных скобках [],Подключ правильный Функция или каждый параметр элемента конфигурации в модуле, как показано на рисунке ниже, dram_para — это первичный ключ, dram_clk, dram_type и dram_zp — это подразделы.
[платформа]: элементы конфигурации, связанные с платформой.
Например, debug_mode =1 означает включение режима отладки uboot. После его включения в журнал будет напечатана соответствующая информация об отладке. интерес. next_work=2 означает, что система выполнит следующий шаг после завершения процесса (0x1 означает обычный запуск, 0x2 означает перезагрузку, 0x3 означает «выключено»), для других конфигураций см. подсказки перед [платформа].
[цель]: элементы конфигурации функции, относящиеся к целевой платформе.
На рисунке выше вы можете настроить частоту процессора, настроив boot_clock.
[uart_para]: элемент конфигурации последовательного порта, элемент конфигурации uart_para — это важная конфигурация, используемая при печати и отладке последовательного порта uboot.
На приведенном выше рисунке isuart_debug_port=0 означает, что конфигурация uart_debug_tx/uart_debug_rx порта gpio (PA04/PA05) должна основываться на соответствующих настройках GPIO.
В uboot2014/2018 sys_config.fex в конечном итоге будет преобразован в dtb (устройство tree binary,linuxКонфигурация ядра Способ),dtb в конечном итоге будет Пакет Гореть для прошивки,Этот файл будет загружен в память во время запуска.,Ранее настроенные параметры в sys_config.fex были преобразованы в узлы dtb.,Наконец, будет вызвана функция fdt_getprop_32() для анализа узла из в dtb.
Переменные ubootizenvironment представляют собой пары ключ-значение.,Интерфейс работы для:getenv(),setenv(),сохранитьv(). Переменная среды формы:
boot_normal=sunxi_flash read 40007800 boot;boota 4000780\
boot_recovery=sunxi_flash read 40007800 recovery;boota 40007800\
boot_fastboot= fastboot
Вы можете разместить некоторую информацию о параметрахили Заказпоследовательностьопределениесуществовать Долженв переменных среды。существоватьв переменных средыопределениеUBOOTЗаказпоследовательность,
Функциональные модули UBOOT можно комбинировать и выполнять для выполнения важной функции.
Например, если вы выполните вышеупомянутое boot_normal Переменные среды соответствуют из Заказ, Uboot будет вызван первым sunxi_flash Заказ загружает ядро приезжатьDRAMиз0x40007800 с носителя изbootРаздел; Полная загрузка ядра с помощью bootaЗаказ.
Способ вызова переменных среды при запуске uboot показан на рисунке:
В TinaSDK файл конфигурации переменной среды сохраняется в TinaSDK/target/allwinner/$(BOARD)/configs/env.cfg. документ,Когда пользователи используют из,Вы можете посмотреть приезжатьenv-4.4.cfg, env-4.9.cfg и другие файлы.,env-xxxСуффиксные числа обозначаютсуществовать Нет На той же версии ядраизсоответствоватьнабор。После открытия его содержимое отображается Например Вниз,
Файл конфигурации Раздела представляет собой файл Разделиз диска планирования. Процесс Гореть перенесет данные каждого Раздела во флэш-память в соответствии с файлом конфигурации Раздела.
ТинаSDK,Разделите путь к файлу конфигурации TinaSDK/target/allwinner/$(BOARD)/configs/sys_partition.fex. Для некоторых решений вы можете просмотреть два файла конфигурации Раздела sys_partition.fex и sys_partition_nor.fex.,Если это ПакетTina не прошивка,Затем используйте файл конфигурации sys_partition_linux.fex.,Если это пакет или прошивка,Затем используйте sys_partition_nor.fex.
Разделизсвойство, содержащее имя, размер раздела, файл загрузки и свойство пользователя. Вот что в файле:
Более конкретные инструкции можно найти в «Руководстве по разработке TinaLinux Storage Management».
В этой главе кратко представлены базовые настройки ядра.、функция пошива одежды、Обычно используется Заказизиспользовать,Помогите клиентам понять Тинуплатформаlinux Ядро обеспечивает основу для индивидуальной разработки ядра.
В настоящее время Тина Всего SDK 4 версия Linux ядро соответственно linux-3.4, linux-3.10, linux-4.4, linux- 4.9,Используется на разных аппаратных платформах соответственно,Когда клиенты получают пакет SDK для поездок, им необходимо проверить информацию ядра на основе разработки аппаратной платформы.
TinaSDK/
├── ...
├── linux-3.10
├── linux-3.4
├── linux-4.4
└── linux-4.9
Подробно прочтите документацию по разработке BSP. Каталог документации содержит инструкции по использованию и разработке для общих модулей ядра.
Когда клиенты настраивают продукты,Часто бывает необходимо изменить конфигурацию ядра Linux.,в TineSDK, откройте Конфигурацию ядраиз вроде Вниз,
croot
make kernel_menuconfig
После выполнения в консоли оболочки появится меню конфигурации. Как показано на рисунке ниже,
tina по умолчанию использует procd-init:
make Menuconfig для настройки:
1.System init Выберите procd-init
2. Выберите следующие шаги
Base system --->
<*>block-mount
<*>busybox................................ Core utilities for embedded Linux --->
Init Utilities --->
[ ] init Не выбирать здесь
Coreutils --->
[*] head
Miscellaneous Utilities --->
[*] strings
<*> uci
<*> logd
3.env.cfg модификация
init=/sbin/init
Режим самозапуска busybox-init настраивается следующим образом:
make Menuconfig для настройки:
1.System init Выберите занятую инициализацию
2. Выберите следующие шаги
Base system --->
<*>busybox................................ Core utilities for embedded Linux --->
Init Utilities --->
[* ] init Выберите здесь
3.env.cfg модификация
init=/init
rdinit=/rdinit
В Tina Linux SDK каталог программного пакета обычно содержит следующие два каталога и один файл:
package/<Классификация>/<программное обеспечение Сумкаимя>/Makefile
package/<Классификация>/<программное обеспечение Сумкаимя>/patches/ [необязательный]
package/<Классификация>/<программное обеспечение Сумкаимя>/files/ [необязательный]
в,
patches Сохраните файл патча, и все патчи будут автоматически добавлены в исходный код перед компиляцией.
files Сохраните исходный код программного пакета. Во время компиляции соответствующий исходный код перезапишет исходные файлы в исходном коде.
Makefile Компилировать файлы правил,
ДолженMakefileиз ФункциядаПодготовка исходного кода программного обеспечения,Процесс компиляции и установки,Предоставляет интерфейс для Tina Linux для идентификации пакетов программного обеспечения и управления ими.,Логика компиляции программного обеспечения определяется самим программным обеспечением Makefile.,Теоретически он не имеет реальной связи с Makefile (Makefile выполняет только makeЗаказ и связанные с ним параметры).
Подробные примечания:
1. Если это программное обеспечение с открытым исходным кодом, рекомендуется, чтобы версия пакета программного обеспечения соответствовала версии загруженного пакета программного обеспечения.
2. Переменные, начинающиеся с PKG, в основном сообщают Системе сборка Где скачать пакеты ПО.
3. md5sum используется для проверки правильности загруженного пакета программного обеспечения. Если он правильный, при компиляции программного обеспечения исходный код пакета программного обеспечения будет найден в PKG_BUILD_DIR.
4.Package/<name>: <name>используется для указания ДолженPackageизимя,Долженимявстречасуществоватьсоответствоватьнабор系统中显示。
5.использоватьполагаться Сумкаизимя<name>указать зависимости,Если это пакет расширения,Добавьте знак «+» впереди,еслида内核版本полагатьсяиспользовать@LINUX_2_<minor version>。
6. Если значение 1 , пакет не появится в меню конфигурации, а будет скомпилирован как фиксированная дополнительная опция.
7. В программном обеспечении с открытым исходным кодом он обычно используется для создания файла Makefile, параметры которого можно передавать через CONFIGURE_VARS.
8. В программном обеспечении с открытым исходным кодом это обычно эквивалентно выполнению команды make, в которой можно использовать два параметра: MAKE_FLAGS и MAKE_VARS.
9. Несколько встроенных ключевых слов:
INSTALL_DIR эквивалентен установке -d m0755
INSTALL_BIN эквивалентен установке -m0755
INSTALL_DATA эквивалентно установке -m0644
INSTALL_CONF эквивалентен установке -m0600
10. Все части определения этого файла Makefile определены для параметров макроса. Верхний файл Makefile компилируется путем вызова этого макроса.
в Тине Linux поддерживает два формата сценариев инициализации.,Что-то вродедаbusyboxРежимилиsysVРежимизсценарий инициализации, Что-то вродедаprocdРежимизсценарий инициализации。Обычно мы ставимПриложение, запускаемое сценарием инициализации, называется сервисом.。
Сценарий инициализации организован в виде сценария оболочки на языке программирования.,Сценарии оболочки представляют собой базовые знания и здесь не будут объясняться. Общая ситуация Вниз, исходный код скрипта инициализации сохраняется в каталоге программных файлов.,И суффикс ".init",Например:
tina/package/system/fstools/files/fstab.init
Установите сценарий инициализации в Makefile из /etc/init.d.,Например:
define Package/block-mount/install
$(INSTALL_DIR) $(1)/etc/init.d/
$(INSTALL_BIN) ./files/fstab.init $(1)/etc/init.d/fstab
endef
root@TinaLinux: /# /etc/init.d/fstab start
Сценарий инициализации в стиле sysV сохраняется в каталоге /etc/init.d/ небольшого компьютера для реализации автоматического запуска при загрузке. Следующий пример начинается с минимального содержания Сценарий инициации описан в качестве примера. старт/стоп:
#!/bin/sh /etc/rc.common
# Example script
# Copyright (C) 2007 OpenWrt.org
START=10
STOP=15
DEPEND=xxxx
start() {
#commands to launch application
}
stop() {
#commands to kill application
}
Уведомление:
START=10, Укажите приоритет загрузки (последовательность) [Чем меньше значение, тем Чем раньше начнется], диапазон значений: 0–99.
STOP=15, Укажите приоритет остановки выключения (последовательность) [Чем меньше значение, тем Сначала закройте], диапазон значений: 0–99.
DEPEND=xxxx,Указывает, что сценарий инициализации будет выполняться параллельно.,Обеспечьте выполнение зависимостей с помощью этой конфигурации.
имя | свойство | Функция |
---|---|---|
start | Должно быть достигнуто | Запустить службу |
stop | Должно быть достигнуто | Остановить службу |
reload | Опциональная реализация | Перезапустить службу |
enable | Опциональная реализация | Перезагрузить сервис |
disable | Опциональная реализация | Отключить службу |
В оболочке вы можете использовать следующий заказ для работы с соответствующими услугами.
$ root@TinaLinux:/# /etc/init.d/exmple restart|start|stop|reload|enable|disable
Следующий пример сценария инициализации используется в качестве примера для объяснения, в основном для реализации функции start_service:
#!/bin/sh /etc/rc.common
USE_PROCD=1
PROG=xxxx
START=10
STOP=15
DEPEND=xxxx
start_service() {
procd_open_instance
procd_set_param command $PROG -f
......
procd_close_instance
}
Подробное введение можно найти по адресу: https://wiki.openwrt.org/inbox/procd-init-scripts.
По умолчанию вновь добавленное программное обеспечение отключено. На данный момент вам необходимо вручную настроить активирующий пакет программного обеспечения. Выполнив в корневом каталоге tinaiz make menuconfig входит в интерфейс настройки программного пакета:
Путь к программному пакету связан с определением в программном пакете изMakefile.,Возьмите fstools в качестве примера,Определить в Makefile для:
define Package/fstools
SECTION:=base
CATEGORY:=Base system
DEPENDS:=+ubox +USE_GLIBC:librt +NAND_SUPPORT:ubi-utils
TITLE:=OpenWrt filesystem tools
MENU:=1
endef
На этом этапе вам нужно только ввести Basy в интерфейсе меню конфигурации. systemПрямо сейчас Можно найтиприезжатьfstoolsизпрограммное обеспечение Сумка。
Значение префиксного символа:
[*] или<*> : Скомпилировать в SDK
[ ] или< > : Не включено
Поддерживаемые операции:
Y или y: Выбрать содержит
N или n: отменить выбор
Подробности см. в главе «Приложение перепрограммирования».
Установочный пакет обычно находится в каталоге:
tina/out/<план>/packages/base
Формат названия установочного пакета для:
<Имя приложения>_<Версия приложения>-<Релизная версия приложения>_sunxi.ipk
Загрузить установочный пакет для приезда маленькой машины через adb:
$ adb push <Установить Сумкапуть> <Толкатьприезжатьмаленький письменный столпуть>
Установите пакет приложения:
$ opkg install <Установить Сумкапуть>
Раздел | Функция |
---|---|
bootРаздел | Сохранить образ ядра |
rootfsРаздел | Базовый образ системы Раздел,включает/библиотека,/bin,/ и т. д. и т. д. |
recoveryРаздел | Хранит образ системы восстановления, доступен только в плане большой емкости. Подробную информацию см. в документе OTA. |
extendРаздел | Сохраните образ системы восстановления и часть rootfsizusr.,Только план малой мощности имеет,Подробности см. в документации OTA. |
Раздел | Функция |
---|---|
privateРаздел | Серийный номер магазина Раздел |
miscРаздел | Статус системы、Flash-статус Раздел |
UDISKРаздел | Данные пользователя Раздел,Обычно монтируется в /mnt/UDISK. |
overlayfsРаздел | Хранить данные о покрытии наложений |
Раздел | точка монтирования | Примечание |
---|---|---|
/dev/by-name/boot | /boot | |
/dev/by-name/boot-res | /boot-res | |
/dev/by-name/UDISK | /mnt/UDISK | Данные пользователя Раздел |
/dev/mmcblk0 —/dev/mmcblk0p1 | /mnt/SDCARD | TfКартаточка монтирования |
/dev/by-name/rootfs_data | /overlay | Хранить данные о покрытии наложений |