Angepinnt create ipk mit HDF-Toolbox

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • create ipk mit HDF-Toolbox

      Hallo,

      falls kein linux zur verfügung steht kann man HDF-Toolbox für ipk bau benutzen.
      Die ipk ist für mips/arm geteste auf Formuler1/AX51

      installation

      Quellcode

      1. [root@ax51:~]$ opkg install enigma2-plugin-extensions-createipk_1.0_all.ipk
      2. Installing opkg-utils (0.3.2+git0+3ffece9bf1) on root.
      3. Installing file (5.29) on root.
      4. Downloading http://feeds.hdfreaks.cc/V6.0/hd51/cortexa15hf-neon-vfpv4/file_5.29-r0_cortexa15hf-neon-vfpv4.ipk.
      5. Installing ldd (2.24) on root.
      6. Downloading http://feeds.hdfreaks.cc/V6.0/hd51/cortexa15hf-neon-vfpv4/ldd_2.24-r0_cortexa15hf-neon-vfpv4.ipk.
      7. Installing libattr1 (2.4.47) on root.
      8. Installing libacl1 (2.2.52) on root.
      9. Installing libpopt0 (1.16) on root.
      10. Installing rsync (3.1.2) on root.
      11. Installing enigma2-plugin-extensions-createipk (1.0) on root.
      12. Configuring opkg-utils.
      13. Configuring file.
      14. Configuring ldd.
      15. Configuring libattr1.
      16. Configuring libacl1.
      17. Configuring libpopt0.
      18. Configuring rsync.
      19. Configuring enigma2-plugin-extensions-createipk.
      20. Prepare ar for ARMV7
      21. done...
      22. ##### Modify PATH Environment /home/root/.profile ######
      23. New PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/home/root/bin:/hdd/bin:/usr/scripts
      24. Found ipk-build...
      25. patching file ipk-build
      26. Add Create IPK menu to HDF-Toolbox main.cfg
      Alles anzeigen

      nach der installation zuerst /etc/createipk.conf öffnen und anpassen
      (Windows ordner freigeben mit vollzugriff (lesen/schreiben))

      Quellcode

      1. ### network sharing ###
      2. IP=
      3. user=
      4. pass=
      5. ### network shared folder name ###
      6. mountsharedir=
      7. #yes or no (opkg local feed for testing your ipk)
      8. createrepo=no
      9. ### do NOT change - local settings ###
      10. mountlocaldir=createipk
      11. hdftoolbox=/usr/lib/enigma2/python/Plugins/Extensions/HDF-Toolbox
      Alles anzeigen


      jetzt Config/Update/Rsync ausführen

      /etc/fstab für samba/cifs mount bearbeiten, WinHost mounten
      rsync in action (daten von Windows auf die BOX/hdd holen)

      menü Create IPK kurz verlassen und wieder einsteigen (menü wird aktuallisiert)

      Quellcode

      1. sent 19,169,908 bytes received 53,906 bytes 155,658.41 bytes/sec
      2. total size is 18,946,321 speedup is 0.99
      3. Add: ipk-build nomjasvlocalrepo
      4. Add: ipk-build openhdf_createipk_all
      5. Add: ipk-build opkg-tools_armv7
      6. Add: ipk-build resetrootpass
      7. Add /etc/opkg/ax51-localfeed.conf


      Quellcode

      1. [root@ax51:~]$ ls -l /hdd/createipk
      2. drwxr-xr-x 7 root root 4.0K Apr 7 17:34 nomjasvlocalrepo
      3. drwxr-xr-x 5 root root 4.0K Apr 11 15:24 openhdf_createipk_all
      4. drwxr-xr-x 6 root root 4.0K Apr 11 15:24 opkg-tools_armv7
      5. drwxr-xr-x 3 root root 4.0K Apr 13 08:08 resetrootpass


      ipk bauen: rsync gleicht die daten ab WinHost -> BOX/hdd
      suche in CONTROL/{preinst,postinst,prerm,postrm} nach fehlende zeile #!/bin/sh
      alle files bekommen zuerst chmod 644, ordner chmod 755
      danach alle executables chmod 755
      local-feed aktuallisieren falls 'yes' in /etc/createipk.conf

      ipk und build.log.ipk zu WinHost übertragen


      fertig und viell Spaß damit.


      EDIT ! 18.06.2025 Hier gibts dann noch eine einfachere Methode ein *.ipk Paket zu bauen ebenfalls direkt an der Box;
      IPK Paket nur via ipk-build Script + ar an der Box bauen


      lg
      Dateien
      perl -e 'print $i=pack(c5,(41*2),sqrt(7056),(unpack(c,H)-2),oct(115),10);'

      Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von nomjasV ()

    • Hi,

      update to 1.1

      createipk.conf: mountlocaldir enfernt, gemountet wird in zukunft nur über mountsharedir
      buildipk, configcreateipk bereinigt (auskommentierte zeilen)
      unbrauchbare sleep's enfernt.
      Menu Config/Update/Rsync in Config/Menu Update/Sync geändert
      das wars

      ich bin euch noch eine erklärung schuldig was während der installation passiert
      Found ipk-build... <--- stammt vom Koivo create_ipk.zip
      patching file ipk-build - wurde von mir gepatcht

      Unterschiede-Datei

      1. --- ipk-build.orig 2011-08-12 17:14:24.000000000 +0200
      2. +++ ipk-build 2017-04-13 18:19:46.108566388 +0200
      3. @@ -3,6 +3,14 @@
      4. # ipkg-build -- construct a .ipk from a directory
      5. # Carl Worth <cworth@east.isi.edu>
      6. # based on a script by Steve Redler IV, steve@sr-tech.com 5-21-2001
      7. +###################################################################
      8. +# patched by nomjasV (hdfreaks) 13.04.17
      9. +# replaced remove command rm -r -f $tmp_dir with rm -rf IPKG_BUILD.$$
      10. +# fixed FILESWITHOUTCONTROL ( see fix2 for -- exclude bug )
      11. +# disabled ar BUSYBOX check
      12. +# replaced build ipk command ar -r with ar -crf
      13. +#
      14. +#set -x
      15. set -e
      16. ipkg_extract_value() {
      17. @@ -118,7 +126,11 @@
      18. #
      19. # gutemine's fix for --exclude bug
      20. #
      21. -FILESWITHOUTCONTROL=`cd $pkg_dir; ls -1 | grep -v CONTROL`
      22. +#FILESWITHOUTCONTROL=`cd $pkg_dir; ls -1 | grep -v CONTROL`
      23. +#
      24. +# nomjasV fix2 for -- exclude bug
      25. +#
      26. +FILESWITHOUTCONTROL=`cd $pkg_dir; ls -1 | grep -v 'CONTROL\|DEBIAN'`
      27. #echo $FILESWITHOUTCONTROL
      28. tar -C $pkg_dir -czf $tmp_dir/data.tar.gz $FILESWITHOUTCONTROL
      29. @@ -127,21 +139,23 @@
      30. echo "2.0" > $tmp_dir/debian-binary
      31. pkg_file=$dest_dir/${pkg}_${version}_${arch}.ipk
      32. -if [ -f /usr/bin/enigma2 ]; then
      33. - if [ ! -f /usr/local/bin/ar ]; then
      34. - BUSYBOX=`ls -F /usr/bin/ar | grep @ | wc -l`
      35. - if [ $BUSYBOX -eq 1 ]; then
      36. - echo ar seems to be from busybox - not capable to create archive
      37. - echo Install ar from binutils at /usr/local/bin
      38. - echo or replace link from /usr/bin/ar to busybox with real ar binary
      39. - exit 0
      40. - fi
      41. - fi
      42. -fi
      43. +#if [ -f /usr/bin/enigma2 ]; then
      44. +# if [ ! -f /usr/local/bin/ar ]; then
      45. +# BUSYBOX=`ls -F /usr/bin/ar | grep @ | wc -l`
      46. +# if [ $BUSYBOX -eq 1 ]; then
      47. +# echo ar seems to be from busybox - not capable to create archive
      48. +# echo Install ar from binutils at /usr/local/bin
      49. +# echo or replace link from /usr/bin/ar to busybox with real ar binary
      50. +# exit 0
      51. +# fi
      52. +# fi
      53. +#fi
      54. cd $tmp_dir
      55. -ar -r $pkg_file ./debian-binary ./data.tar.gz ./control.tar.gz
      56. +#ar -r $pkg_file ./debian-binary ./data.tar.gz ./control.tar.gz
      57. +ar -crf $pkg_file ./debian-binary ./data.tar.gz ./control.tar.gz
      58. mv $pkg_file ..
      59. cd ..
      60. -rm -r -f $tmp_dir
      61. +#rm -r -f $tmp_dir
      62. +rm -rf IPKG_BUILD.$$
      63. echo "Packaged content was moved at $pkg_dir into $pkg_file"
      Alles anzeigen


      lg
      perl -e 'print $i=pack(c5,(41*2),sqrt(7056),(unpack(c,H)-2),oct(115),10);'

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von nomjasV ()

    • update to 1.2

      - /etc/crexclude-files.cfg (rsync exclude files) hinzugefügt, enthält Thumbs.db desktop.ini *.log
      - buildipk angepasst
      - CONTROL/{conffiles postinst, prerm} angepasst

      lg
      perl -e 'print $i=pack(c5,(41*2),sqrt(7056),(unpack(c,H)-2),oct(115),10);'

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von nomjasV ()

    • update to 1.4

      2 neue variablen in /etc/createipk.conf
      #yes/no (compile module py to pyo)
      compilepytopyo=no

      #yes/no (remove *.py after compile)
      removepy=no

      - control/Depends, buildipk angepasst

      Quellcode

      1. sent 196,814 bytes received 2,070 bytes 397,768.00 bytes/sec
      2. total size is 9,227,163 speedup is 46.39
      3. ...cut...
      4. Compiling ./usr/lib/enigma2/python/Plugins/Extensions/Test/GlobalFunctions.py ...
      5. Compiling ./usr/lib/enigma2/python/Plugins/Extensions/Test/MC_PictureViewer.py ...
      6. Compiling ./usr/lib/enigma2/python/Plugins/Extensions/Test/MC_AudioPlayer.py ...
      7. Compiling ./usr/lib/enigma2/python/Plugins/Extensions/Test/MC_VLCPlayer.py ...
      8. Compiling ./usr/lib/enigma2/python/Plugins/Extensions/Test/plugin.py ...
      9. Compiling ./usr/lib/enigma2/python/Plugins/Extensions/Test/__init__.py ...
      10. Compiling ./usr/lib/enigma2/python/Plugins/Extensions/Test/MC_Settings.py ...
      11. Compiling ./usr/lib/enigma2/python/Plugins/Extensions/Test/MC_WeatherInfo.py ...
      12. Packaged content was moved at ax51-skin-package into ./enigma2-plugin-skin-Test_2.7_all.ipk
      Alles anzeigen


      lg
      perl -e 'print $i=pack(c5,(41*2),sqrt(7056),(unpack(c,H)-2),oct(115),10);'

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von nomjasV ()

    • update to 1.5

      - Run your own script implementiert

      ###########################################################################################
      ############### Run your own script. ###############
      # Change to your project directory and create a script with the same name of the project.
      #
      # example:
      #
      # cd /hdd/projekte/creteipk
      # echo '#!/bin/sh' >createipk.sh
      # echo 'chmod 600 usr/createipk.conf' >>createipk.sh
      #
      # [root@ax51:/hdd/projekte/createipk]$ ls
      # CONTROL etc tmp usr createipk.sh
      #
      # Copy the script to the project on Windows
      # The script will be removed before packing ipk
      ###########################################################################################


      [root@ax51:/etc/opkg]$ configcreateipk

      ...cut...
      sending incremental file list
      projekte/
      projekte/test/
      projekte/test/test.sh
      projekte/test/CONTROL/
      projekte/test/CONTROL/postinst
      projekte/test/CONTROL/postrm
      projekte/test/usr/lib/python/Plugins/Extensions/Test/
      projekte/test/usr/lib/python/Plugins/Extensions/Test/__init__.py

      sent 9,994 bytes received 308 bytes 20,604.00 bytes/sec
      total size is 22,558,620 speedup is 2,189.73
      Add: ipk-build createipk
      Add: ipk-build test
      Add: ipk-build resetrootpass

      Please refresh HDF-Toolbox menu

      [root@ax51:~]$ buildipk test
      ### Sync /hdd/projekte/test ###
      sending incremental file list

      sent 439 bytes received 25 bytes 309.33 bytes/sec
      total size is 773 speedup is 1.67

      Add missing >> #!/bin/sh << to postinst
      Add missing >> #!/bin/sh << to postrm

      Compiling ./usr/lib/python/Plugins/Extensions/Test/__init__.py ...

      Found and execute: test.sh

      test.sh wird ausgeführt ls -l etc/test.conf
      -rw-r--r-- 1 root root 54 May 3 16:13 test.conf

      execute: chown root.adm etc/test.conf
      -rw-r--r-- 1 root adm 54 May 3 16:13 etc/test.conf

      execute: chmod 600 etc/test.conf
      -rw------- 1 root adm 54 May 3 16:13 etc/test.conf

      Remove: test.sh

      lg
      perl -e 'print $i=pack(c5,(41*2),sqrt(7056),(unpack(c,H)-2),oct(115),10);'

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von nomjasV ()

    • Neu

      Es gibt jetzt am Feed ab HDF-7.3 aufwärts das Paket mit Namen;
      ipkbuild_1.0-r1_all.ipk
      Man kann damit nun sehr viel einfacher ein *ipk Paket direkt an der Box erstellen.
      Das Paket kann man z.b: via telnet/ssh wie folgt installieren;

      Quellcode

      1. opkg update
      2. opkg install ipkbuild
      Es wird dabei ein Script (nennt sich ipk-build) nach /usr/local/bin kopiert sowie die binutils installiert, diese braucht es da
      darin das vollwertige ar enthalten ist (mit dem busybox ar kann man kein *ipk Paket bauen).
      Es wird noch das Arbeitsverzeichnis;
      /home/root/_workdir/ipkbuild
      erstellt und auch gleich der Ordner CONTROL darin (für die control Datei) also;
      /home/root/_workdir/ipkbuild/CONTROL
      wobei sich dann im Verzeichnis;
      /home/root/_workdir
      auch ein kleines rudimentäres HowTo zum *.ipk Bau befindet.

      Die welche wissen wie man ein *ipk Paket baut wissen dann schon Bescheid denke ich, es wäre zu aufwendig das alles genau
      niederzuschreiben (ist ja auch sehr variabel das Ganze).
      Ich hänge das Paket auch hier noch mit an unten, und das HowTo zeige ich auch extra noch im Spoiler;
      Spoiler anzeigen

      Quellcode

      1. Kleine Anleitung !
      2. HINWEIS ! Es duerfen "keine anderen Dateien" bzw. "Ordner" als die zum "*.ipk Paket" bauen
      3. benoetigten im Verzeichnis "/home/root/_workdir/ipkbuild/" vorliegen.
      4. Und es kann immer nur ein "*.ipk Paket" gebaut werden, danach muss man das Verzeichnis;
      5. "/home/root/_workdir/ipkbuild/" bereinigen bevor man ein anderes "*.ipk Paket" bauen kann.
      6. Das Paket "ipkbuild" erstellt fuer den Bau eines "*.ipk Paketes" das folgende Verzeichnis;
      7. "/home/root/_workdir/ipkbuild/CONTROL"
      8. In das Verzeichnis;
      9. "/home/root/_workdir/ipkbuild/CONTROL"
      10. kommt die control Datei mit den korrekten Eintraegen sowie "bei Bedarf" die "postinst Scripte"
      11. wie z.b: die Dateien "preinst" "postinst" "prerm" "postrm"
      12. Diese Dateien ("postinst Scripte") muessen ausfuehrbar gemacht werden, das kann man z.b:
      13. via FileZilla tun.
      14. Es muss im Verzeichnis;
      15. "/home/root/_workdir/ipkbuild"
      16. weiters das Verzeichnis korrekt strukturiert mit dem Inhalt vorliegen welchen man bauen
      17. will also z.b: /usr/bin/zip fuer das Programm Zip.
      18. Wenn man alles vorbereitet hat kann man das "*.ipk Paket" dann mit folgendem telnet/ssh Befehl bauen;
      19. ipk-build /home/root/_workdir/ipkbuild
      20. Der Output dazu sieht hier z.b: dann so aus;
      21. root@gbquad4k:~# ipk-build /home/root/_workdir/ipkbuild
      22. ar: creating ./ipkbuild_1.0-r1_all.ipk
      23. Packaged content was moved at /home/root/_workdir/ipkbuild into ./ipkbuild_1.0-r1_all.ipk
      24. Das fertige "*.ipk Paket" in "diesem Fall" das Paket;
      25. ipkbuild_1.0-r1_all.ipk
      26. liegt danach im Verzeichnis;
      27. "/home/root/_workdir".
      28. Das wars !!!
      29. Abschliessend noch ein Tipp welches "postinst Script" tut was ?;
      30. preinst: Ein Shell Script welches vor Installation des Paketes ausgeführt wird.
      31. postinst: Ein Shell Script welches nach Installation des Paketes ausgeführt wird.
      32. prerm: Ein Shell Script welches vor Entfernen des Paketes ausgeführt wird.
      33. postrm: Ein Shell Script welches nach Entfernen des Paketes ausgeführt wird.
      Alles anzeigen


      EDIT ! Kann sein das es im HDF-7.5 noch nicht klappt wegen nem Problem mit ar aber das wird schon ...;

      Quellcode

      1. ar: error while loading shared libraries: libbfd-2.43.1.20241111.so: cannot open shared object file: No such file or directory
      im HDF-7.3 sollte es aber bereits klappen.


      Grüsse
      Pike
      Dateien
    • Neu

      Ja das is das Problem, darum hab ich nur ein rudimentäres HowTo beigelegt denn das is wie gesagt sehr aufwändig da alles
      erklären zu müssen. Klar das control File muss man schon selbst erstellen, man kann sich Vorlagen dazu angucken
      damit man weiss was getan werden muss,
      Dazu ladet man sich am Besten Plugins oder Pakete vom Feed in telnet/ssh runter, geht in etwa so (zur Box verbinden via z.b: telnet)
      dann folgende Befehle;

      Quellcode

      1. cd /tmp
      2. opkg update
      3. opkg list | grep enigma2-plugin-extensions

      Da bekommt man ne lange Liste mit Plugins, eines davon mal rauspicken und an der Box nach /tmp downloaden, das geht z.b: so;

      Quellcode

      1. opkg download enigma2-plugin-extensions-infobartunerstate
      Dann hat man auf der Box in /tmp das Paket;
      enigma2-plugin-extensions-infobartunerstate.xxx.ipk
      (die xxx stehen für irgendwelche Buchstaben und/oder Zahlen) dieses Paket dann via Filezilla auf den PC holen
      und mit dem Programm 7zip komplett zerlegen am Besten in ein eigenes Verzeichnis extra dafür.
      Wenn du alles richtig zerlegt hast, man muss ja erstmal das *.ipk entpacken da entstehen dann *.tar.gz die musst auch entpacken
      dabei entstehen *.tar und die musst auch wiederum entpacken, dann kannst mal den Aufbau sehen wie das sein muss incl. control File

      Das is natürlich von Plugin/Paket zu Plugin/Paket völlig unterschiedlich also zumindest das control File (also was da drinnen steht)
      dann ob und falls ja welche postinst Scripte dabei sind also ob und wenn ja was davon es braucht.
      Und natürlich dann in dem Beispiel eben zu nem Extensions Plugin (man kann ja nicht nur Plugins zu *ipk bauen) muss das jeweilige Plugin incl. korrekter Pfad Struktur neben dem CONTROL Ordner (der die control Datei enthalten muss) Gross, Kleinschreibung
      muss da beachtet werden mit dabei sein (also Ordner CONTROL in Grosschrift, Datei control darin in Kleinschrift).
      postinst Scripte müssen auch ausführbar gemacht werden vor dem *.ipk Bau.
      Na ja das sind ein paar Tipps, siehs dir mal an.
      Ich kann da unmöglich ein HowTo schreiben das alle Eventualitäten abdecken würde, das wär womöglich ne Lebensaufgabe :D
      Es ist wichtig das man da weiss was man tut (is aber alles lernbar, man muss sich nur ab und zu mal damit befassen).


      Grüsse
      Pike

    Flag Counter