Image

Création Paquets IPK - Python

1. Télécharger et installer VirtualBox.
Image
2. Télécharger le fichier OVA.
Image
3. Ouvrir VirtualBox après l'installation.
4. Lancement d'OpenWRT.

5. Identification.

 Sélectionner "openwrt", taper le mot de passe "openwrt" et cliquer sur "Log In".

Image
Image

6. Mise clavier en Français.

Lorsque la session est ouverte cliquer sur le "bouton démarrer" en bas à gauche, ensuite "System Tools" → "LXTerminal" pour ouvrir le terminal.

Image
Image

6.1. Une nouvelle fenêtre s'ouvre:

Image

taper la commande et valider:

Clavier en QWERTY, taper "setxkb,qp"

setxkbmap fr
Le clavier est maintenant en Français.

7. Création d'un paquet python en ipk (création d'un dossier avec fichier Makefile).

Cliquer sur le "dossier" en bas à gauche, à côté du bouton démarrer. 

Image

La fenêtre "Home" s'ouvre. 

Image
Aller dans le dossier:
/home/openwrt/code/barrier_breaker/feeds/oldpackages/lang

Créer un dossier ("Create New..." → "Folder"), exemple: "python-minimalmodbus".

Créer un fichier dans le dossier précédemment créé ("Create New..." → "Empty File"), appeler le - "Makefile".

Lien fichier exemple: python-minimalmodbus.zip

Code à mettre dans "Makefile".

Code Makefile:
#
# Copyright (C) 2008-2011 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#

include $(TOPDIR)/rules.mk

PKG_NAME:=minimalmodbus
PKG_VERSION:=1.0.2
PKG_RELEASE:=1

PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://files.pythonhosted.org/packages/db/9d/aa72b09d966fe6f30dc90d0dd1e295e2ebadc3a5b08d8bc0a4dfdd9473ca/
PKG_HASH:=5c55b1e26131e1f3b7fe55b950f8abb8a2396b77f73bc0a513cc3ef0051db526

PKG_BUILD_DEPENDS:=python

include $(INCLUDE_DIR)/package.mk
$(call include_mk, python-package.mk)

define Package/python-minimalmodbus
  SUBMENU:=Python
  SECTION:=lang
  CATEGORY:=Languages
  TITLE:=python-minimalmodbus
  URL:=https://pypi.org/project/minimalmodbus/
  DEPENDS:=+python-mini
endef

define Package/python-minimalmodbus/description
  Easy-to-use Modbus RTU and Modbus ASCII implementation for Python
endef

define Build/Compile
	$(call Build/Compile/PyMod,., \
		install --prefix="/usr" --root="$(PKG_INSTALL_DIR)", \
	)
endef

define Package/python-minimalmodbus/install
	$(INSTALL_DIR) $(1)$(PYTHON_PKG_DIR)
	$(CP) \
	    $(PKG_INSTALL_DIR)$(PYTHON_PKG_DIR)/* \
	    $(1)$(PYTHON_PKG_DIR)/
endef

$(eval $(call BuildPackage,python-minimalmodbus))

8. Modifier le fichier "Makefile".

Mettre le nom du paquet et la version, comme sur le site pypi-minimalmodbus

PKG_NAME:=minimalmodbus
PKG_VERSION:=1.0.2

Vérifier et modifier l'extension si besoin.

PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz

Modifier la source URL et le HASH avec les informations du site pypi-minimalmodbus → "Download files" → "View".

Image

Modifier l'URL avec les informations "BLAKE2-256", copier le code et le coller, après le "/" de packages.

Ajouter 2 "/" au début du code .

db/9d/aa72b09d966fe6f30dc90d0dd1e295e2ebadc3a5b08d8bc0a4dfdd9473ca
PKG_SOURCE_URL:=https://files.pythonhosted.org/packages/db/9d/aa72b09d966fe6f30dc90d0dd1e295e2ebadc3a5b08d8bc0a4dfdd9473ca/

Modifier le hash avec les informations "SHA256", copier le code et le coller.

PKG_HASH:=5c55b1e26131e1f3b7fe55b950f8abb8a2396b77f73bc0a513cc3ef0051db526

Modifier après le "/" de Package, mettre le nom du dossier créé.

Modifier TITLE, mettre le nom du dossier créé.

Modifier URL avec le lien du paquet python "https://pypi.org/project/????/".

Modifier DEPENDS si besoin, (utilisé pour la compilation et l'index - Packages.gz).

define Package/python-minimalmodbus
  SUBMENU:=Python
  SECTION:=lang
  CATEGORY:=Languages
  TITLE:=python-minimalmodbus
  URL:=https://pypi.org/project/minimalmodbus/
  DEPENDS:=+python-mini
endef

Modifier après le "/" de Package, mettre le nom du dossier créé.

Modifier dessous la description du paquet.

define Package/python-minimalmodbus/description
  Easy-to-use Modbus RTU and Modbus ASCII implementation for Python
endef

Modifier après le "/" de Package, mettre le nom du dossier créé.

define Package/python-minimalmodbus/install
	$(INSTALL_DIR) $(1)$(PYTHON_PKG_DIR)
	$(CP) \
	    $(PKG_INSTALL_DIR)$(PYTHON_PKG_DIR)/* \
	    $(1)$(PYTHON_PKG_DIR)/
endef

Modifier après la "," de BuildPackage, mettre le nom du dossier créé.

$(eval $(call BuildPackage,python-minimalmodbus))

9. Compilation du dossier. 

9.1. Cliquer sur le "bouton démarrer" en bas à gauche, ensuite "System Tools" → "LXTerminal" pour ouvrir le terminal.
Image
9.2. Une nouvelle fenêtre s'ouvre:
Image

Se mettre dans le dossier:

cd ~/code/barrier_breaker

Mise à jour des paquets:

./scripts/feeds update -a
./scripts/feeds update -i

Installer les paquets:

./scripts/feeds install -a

ouvrir le menu pour générer la compilation.

make menuconfig
Une nouvelle fenêtre s'ouvre:
9.3. Sélectionner avec les flèches "Languages" puis "Entrée".
Capture écran Languages
9.5. Sélectionner avec les flèches le(s) paquet(s), puis cliquer sur la "barre d'espace" pour avoir "<*>", selon le fichier "Makefile" créé et les informations de "DEPENDS", les autres fichiers seront sélectionnés automatiquement.
Capture écran Applications
9.7. Valider "<Ok>".
Capture écran Exit
Valider "<Exit>", plusieurs fois pour sortir et revenir au terminal. 

9.4. Sélectionner avec les flèches "Python" puis "Entrée".
Capture écran Python


9.6. Avec les flèches sélectionner "<Save>" puis "Entrée".
Capture écran Save

Dans le terminal taper la commande: (Compilation de tout openwrt).

make world

Commande pour ne pas tout compiler.

Pour créer le(s) paquet(s) sélectionner. 

make package/python-minimalmodbus/compile

pour afficher le debug lors de la compilation ajouter "V=s".

make package/python-minimalmodbus/compile V=s

Si erreur lors de la compilation, ouvrir le terminal et installer, la ou les dépendances manquantes (selon debug).

Exemple:

pip install setuptools

Pour créer les index (fichier Packages.gz), après la compilation. 

make package/index

Les fichiers IPK créés sont dans le dossier:

/home/openwrt/code/barrier_breaker/bin/ramips/packages/oldpackages

Recherche