Вопрос или проблема
Мне нужно установить на мою сборку Yocto приложение iwlist
. Я использую релиз Zeus
Yocto. В других дистрибутивах Linux я могу установить его с помощью пакета под названием wireless-tools
(например, на Ubuntu или Mint).
Я хотел бы использовать команду iwlist
, чтобы получить частоты различных каналов, используемых Wi-Fi адаптером. Например, вывод в дистрибутиве Ubuntu Linux выглядит следующим образом:
> iwlist <имя-wifi-адаптера> freq
<имя-wifi-адаптера> 21 каналов в сумме; доступные частоты:
Каналы на 2.4 ГГц
...
Канал 36 : 5.18 ГГц
Канал 40 : 5.2 ГГц
Канал 44 : 5.22 ГГц
Канал 48 : 5.24 ГГц
Канал 52 : 5.26 ГГц
Канал 56 : 5.28 ГГц
Канал 60 : 5.3 ГГц
Канал 64 : 5.32 ГГц
Текущая частота: 2.412 ГГц (Канал 1)
Для Yocto, относительно wireless-tools
, я нашёл эту ссылку, которая показывает, что рецепт wireless-tools_30.pre9.bb
и некоторые патчи присутствуют по пути meta/recipes-connectivity/wireless-tools
. В рецептах моего локального релиза zeus я не могу найти папку wireless-tools
по пути meta/recipes-connectivity/
. То же самое на GitHub для zeus, я не могу найти ничего о wireless-tools
по пути meta/recipes-connectivity
.
Я думаю, что исходный код iwlist
находится здесь на GitHub.
Мой вопрос
Не могли бы вы помочь мне найти рецепт для релиза Yocto Zeus, чтобы установить пакет wireless-tools?
Также было бы полезно (и это могло бы решить мою проблему), если кто-то сможет создать новый рецепт, начиная с кода iwlist.
Ответ или решение
Для установки приложения iwlist
в дистрибутиве Yocto с релизом Zeus необходимо обратиться к пакету wireless-tools
, который, как вы заметили, отсутствует в стандартных рецептах данной версии Yocto. В этой статье мы подробно рассмотрим, как можно найти или создать рецепт для установки wireless-tools
, включая iwlist
.
Поиск рецепта wireless-tools в Yocto Zeus
-
Проверка доступных слоев и рецептов:
- В первую очередь, вам необходимо убедиться, что все необходимые слои, включающие поддержку сетевых инструментов, установлены в вашем проекте Yocto. Рекомендуется использовать
repo
илиbitbake-layers
для модульного добавления слоев. - Проверьте, какие слои загружены, используя команду:
bitbake-layers show-layers
- В первую очередь, вам необходимо убедиться, что все необходимые слои, включающие поддержку сетевых инструментов, установлены в вашем проекте Yocto. Рекомендуется использовать
-
Добавление необходимых слоев:
- Вполне возможно, что нужный слой (например,
meta-networking
, который часто содержит сетевые инструменты) не добавлен в ваш проект. Если это так, добавьте его с помощью:git clone git://git.openembedded.org/meta-networking
- После клонирования добавьте его в ваш
bblayers.conf
.
- Вполне возможно, что нужный слой (например,
-
Поиск в репозиториях и GitHub:
- Если
wireless-tools
отсутствует в вашем локальном копировании Yocto, проверьте GitHub репозиторий Yocto Project. Например, в версии Zeus нетwireless-tools
, но можно проверить более старые или новые версии, такие как Dunfell или Honister.
- Если
-
Скачивание и использование:
- Вы также можете скачать рецепт
wireless-tools
(если он существует) из другой версии Yocto или из стороннего репозитория. Например, вот ссылка на репозиторий версииdunfell
:https://git.yoctoproject.org/poky/plain/meta/recipes-connectivity/wireless-tools/
- Вы также можете скачать рецепт
Создание нового рецепта для iwlist
Если вы не можете найти требуемый рецепт, то создание нового может быть оптимальным решением. Вот пошаговый процесс:
-
Создание структуры рецепта:
- В каталоге вашего проекта Yocto создайте директорию для нового рецепта:
mkdir -p meta-my-layer/recipes-connectivity/wireless-tools
- В каталоге вашего проекта Yocto создайте директорию для нового рецепта:
-
Создание файла рецепта:
- На основе кода
iwlist
из GitHub вы можете создать файлwireless-tools_1.0.bb
:vi meta-my-layer/recipes-connectivity/wireless-tools/wireless-tools_1.0.bb
-
Вставьте следующий базовый шаблон:
SUMMARY = "Command-line tools for wireless networks" LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://COPYING;md5=<MD5Сумма>" SRC_URI = "git://github.com/HewlettPackard/wireless-tools.git;protocol=https" S = "${WORKDIR}/git" inherit autotools do_compile() { # команда сборки oe_runmake } do_install() { # установка install -d ${D}${bindir} install iwlist ${D}${bindir}/ }
- На основе кода
-
Добавление вашего слоя:
- Не забудьте добавить свой слой в конфигурацию проекта через
bblayers.conf
, чтобы Yocto смог найти ваш новый рецепт.
- Не забудьте добавить свой слой в конфигурацию проекта через
-
Построение образа:
- После создания и настройки рецепта, вы можете собрать его с помощью команды:
bitbake wireless-tools
- Проверьте наличие
iwlist
в итоговом образе.
- После создания и настройки рецепта, вы можете собрать его с помощью команды:
Заключение
Теперь вы знаете, как найти или создать рецепт для установки iwlist
через пакет wireless-tools
в Yocto release Zeus. Не забывайте проверять обновления и документацию Yocto для получения актуальной информации о поддерживаемых пакетах. Успехов в сборке вашего образа!