Как я могу найти рецепт для установки приложения iwlist в релизе Yocto Zeus?

Вопрос или проблема

Мне нужно установить на мою сборку 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

  1. Проверка доступных слоев и рецептов:

    • В первую очередь, вам необходимо убедиться, что все необходимые слои, включающие поддержку сетевых инструментов, установлены в вашем проекте Yocto. Рекомендуется использовать repo или bitbake-layers для модульного добавления слоев.
    • Проверьте, какие слои загружены, используя команду:
      bitbake-layers show-layers
  2. Добавление необходимых слоев:

    • Вполне возможно, что нужный слой (например, meta-networking, который часто содержит сетевые инструменты) не добавлен в ваш проект. Если это так, добавьте его с помощью:
      git clone git://git.openembedded.org/meta-networking
    • После клонирования добавьте его в ваш bblayers.conf.
  3. Поиск в репозиториях и GitHub:

    • Если wireless-tools отсутствует в вашем локальном копировании Yocto, проверьте GitHub репозиторий Yocto Project. Например, в версии Zeus нет wireless-tools, но можно проверить более старые или новые версии, такие как Dunfell или Honister.
  4. Скачивание и использование:

    • Вы также можете скачать рецепт wireless-tools (если он существует) из другой версии Yocto или из стороннего репозитория. Например, вот ссылка на репозиторий версии dunfell:
      https://git.yoctoproject.org/poky/plain/meta/recipes-connectivity/wireless-tools/

Создание нового рецепта для iwlist

Если вы не можете найти требуемый рецепт, то создание нового может быть оптимальным решением. Вот пошаговый процесс:

  1. Создание структуры рецепта:

    • В каталоге вашего проекта Yocto создайте директорию для нового рецепта:
      mkdir -p meta-my-layer/recipes-connectivity/wireless-tools
  2. Создание файла рецепта:

    • На основе кода 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}/
      }
  3. Добавление вашего слоя:

    • Не забудьте добавить свой слой в конфигурацию проекта через bblayers.conf, чтобы Yocto смог найти ваш новый рецепт.
  4. Построение образа:

    • После создания и настройки рецепта, вы можете собрать его с помощью команды:
      bitbake wireless-tools
    • Проверьте наличие iwlist в итоговом образе.

Заключение

Теперь вы знаете, как найти или создать рецепт для установки iwlist через пакет wireless-tools в Yocto release Zeus. Не забывайте проверять обновления и документацию Yocto для получения актуальной информации о поддерживаемых пакетах. Успехов в сборке вашего образа!

Оцените материал
Добавить комментарий

Капча загружается...