Usando el SDK

El SDK es una cadena de herramientas(toolchain) pre-compilada, diseñada para la compilación cruzada(cross compile) de paquetes para una arquitectura específica sin compilar todo el sistema desde cero.

Cosas que se pueden hacer con el SDK:

  • Compilar software personalizado para una versión específica a la vez que garantizar la compatibilidad de binarios y funciones
  • Compilar versiones más recientes de ciertos paquetes para una versión específica
  • Recompilar paquetes existentes con parches personalizados o características diferentes

Prerrequisitos

El SDK tiene los mismos requisitos previos que el sistema buildroot, así que consulte la página Build system – Installation para instalar el software necesario para crear los paquetes en el SDK.

Nota: En algunos hosts es necesario instalar el paquete ccache

:!: Hágalo todo como un usuario normal, no utilice root o sudo!
:!: No compile en un directorio con espacios en algún lugar de su ruta. Bien=/home/codigosfuente/openwrtSDK | Mal=/home/codigos fuente/openwrtSDK

Puede descargar un SDK precompilado o compilarlo desde el código fuente. La compilación desde el código fuente es simplemente habilitar la opción menuconfig Build the OpenWrt SDK (CONFIG_SDK). El SDK precompilado se encuentra en la misma carpeta de descarga donde se encuentran las imágenes de firmware para su dispositivo.

  • Trunk SDKPlatforms → Supplementary Files → openwrt-sdk-<Platform>_gcc-<version>_musl.Linux-x86_64.tar.xz
  • 18.06.1Platforms → Supplementary Files → openwrt-sdk-<Platform>_gcc-<version>_musl.Linux-x86_64.tar.xz
  • LEDE 17.01.6Platforms → Supplementary Files → lede-sdk-17.01.6-<Platform>_gcc-<version>_musl-<version>.Linux-x86_64.tar.xz

Después de descomprimir el archivo SDK, edite opcionalmente el archivo feeds.conf.default para agregar los package feeds. De forma predeterminada, contendrá los feeds utilizados cuando se construyó el SDK. Pueden agregarse feeds propios, locales o remotos, como si se usara buildroot. Si simplemente está reconstruyendo paquetes adicionales, no necesita hacer esto.

  • Use el comando ./scripts/feeds update -a para obtener y actualizar las definiciones de los paquetes.
  • Después de que las definiciones de los paquetes hayan sido actualizadas, utilice el comando ./scripts/feeds install <packagename> para preparar los paquetes y sus dependencias.
  • El comando ./scripts/feeds install -a pondrá otra vez disponibles todos los paquetes, igual que en el buildroot.

Abrir una terminal en la carpeta del SDK y abrir el menú del SDK escribiendo make menuconfig El sistema menuconfig del SDK es igual que el del buildroot. Las instrucciones están en la parte superior, y la ayuda está disponible a través de la tecla ?.

Tal vez usted quiera deshabilitar algunas opciones predeterminadas, las cuales compilan todos los paquetes disponibles. Entre en Global Build Settings y en el submenú deseleccione/excluya las siguientes opciones:

  • Select all target specific packages by default
  • Select all kernel module packages by default
  • Select all userspace packages by default

Continúe en el menú, encuentre el paquete que usted quiera compilar y selecciónelo presionando “m”, esto seleccionará también todas sus dependencias, y podrá usted ver que quedaron marcadas con “<M>” en el menú. Se pueden seleccionar también varios paquetes.

Guarde la configuración y salga del menú.

Después de que el Makefile esté en su lugar, se aplican los comandos habituales de buildroot:

  • make package/example/download - descargar los “sources” de example
  • make package/example/prepare - extraer los “sources”, aplicar los parches y descargas si es necesario
  • make package/example/compile - compilar example, preparar y descargar si es necesario
  • make package/example/clean - limpiar el “sourcecode”
  • make package/index - construye un índice de repositorios para hacer el directorio de salida utilizable como una fuente opkg local

O simplemente make para compilar todo lo seleccionado. (Se puede compilar más rápido escribiendo make -j5 o lo apropiado para tu “build host”)

Después de que la compilación finalice, los archivos .ipk generados estarán en los directorios bin/packages y bin/targets dentro de la carpeta raíz del SDK.

:!: Algunas versiones del SDK tienes errores....

This website uses cookies. By using the website, you agree with storing cookies on your computer. Also you acknowledge that you have read and understand our Privacy Policy. If you do not agree leave the website.More information about cookies
  • Last modified: 2021/10/15 08:21
  • by bobafetthotmail