NI-Buildsystem (HD51 Support)

Benutzeravatar
gandharva
Administrator
Beiträge: 387
Registriert: Mo 4. Apr 2016, 23:49
Box: Tank

NI-Buildsystem (HD51 Support)

Beitrag von gandharva »

Seit heute hat unser Buildsystem Support für AX/Mut@nt (HD51) Boxen. Es handelt sich um folgende Boxen: Info: welche Boxen werden unterstützt

Die Images sind Funktionsfähig jedoch noch kaum getestet. Wir freuen uns auf Eure Mitarbeit!

Für Umsteiger die schon das BS am laufen haben:

Code: Alles auswählen

make update-all
ccache -cCz
rm -rf config.local
make local-files
-> jetzt die config.local anpassen

Code: Alles auswählen

make crosstools-renew
Rebuild dauert ca. 30 Minuten je nach Hardware.

Viel Spaß!
Nazi lives don't matter.
Benutzeravatar
Janus
NI - VIP
Beiträge: 1143
Registriert: Di 12. Apr 2016, 19:41
Box: HD1, Zee, Neo, Tank, HD51, Duo4K
Been thanked: 1 time

Re: NI-Buildsystem (HD51 Support)

Beitrag von Janus »

Ich hab versucht, nach make udate-all durch Änderung der config.local in meiner bestehenden Build_Nevis-Umgebung (Jessie-VM unter Win10) ein Image für die AX51 zu bauen (Trockenübung).

Ich habe einige Möglichkeiten/Kombinationen für make clean-*, make init und make ni-image versucht, aber das BS ist immer irgendwie in der Nevis-Schiene geblieben oder wollte die Nevis Crosstools löschen. Als wenn er irgendwie noch "HD1" im Kopf hätte.

Sollte ich das BS komplett neu aufsetzen ?
Das würde allerdings der "make images" - Philosophie mit dem automatischen Wechsel der Buildumgebung wiedersprechen.
Benutzeravatar
vanhofen
Administrator
Beiträge: 2928
Registriert: Di 5. Apr 2016, 00:05
Has thanked: 7 times
Been thanked: 11 times

Re: NI-Buildsystem (HD51 Support)

Beitrag von vanhofen »

Jetzt mal so aus dem Kopf heraus würde ich sagen:

make update-self
Dann config.local bearbeiten und "#BOXMODEL = hd51" hinzufügen bzw aktivieren.
make init
Benutzeravatar
Janus
NI - VIP
Beiträge: 1143
Registriert: Di 12. Apr 2016, 19:41
Box: HD1, Zee, Neo, Tank, HD51, Duo4K
Been thanked: 1 time

Re: NI-Buildsystem (HD51 Support)

Beitrag von Janus »

Fehler liegt bei config.example

Code: Alles auswählen

# AX Technologies
#BOXMODEL = hd51
In meinem Alter nimmt man nur noch die Hashtags weg wenn man von Qualität verwöhnt ist.
Den nachfolgenden Text liest man nicht mehr wirklich! Soll bestimmt "ax51" heißen

Aber das sollte im GIT leicht zu ändern sein...
Benutzeravatar
vanhofen
Administrator
Beiträge: 2928
Registriert: Di 5. Apr 2016, 00:05
Has thanked: 7 times
Been thanked: 11 times

Re: NI-Buildsystem (HD51 Support)

Beitrag von vanhofen »

Baut das Crosstool mal bitte händisch mit "make crosstool-arm-ax". Da stimmt etwas in unserer Automatik nicht.

Und ja, hd51 ist korrekt.
Und nein, es liegt kein Fehler in config.example :) Das ist nur ein Beispiel für die config.local
Benutzeravatar
Janus
NI - VIP
Beiträge: 1143
Registriert: Di 12. Apr 2016, 19:41
Box: HD1, Zee, Neo, Tank, HD51, Duo4K
Been thanked: 1 time

Re: NI-Buildsystem (HD51 Support)

Beitrag von Janus »

Meine config.local (config.example direkt nach update-all kopiert und angepasst)

janus@vmJessie:~/development/ni/build$ cat config.local
# config.local

# Change it to your name.
MAINTAINER = Janus@NI_BS

# Choose one (1) of the following BOXMODELs. O n e !
# Coolstream
#BOXMODEL = nevis
#BOXMODEL = apollo
#BOXMODEL = shiner
#BOXMODEL = kronos
#BOXMODEL = kronos_v2

# AX Technologies
BOXMODEL = hd51

# Create debug-image. Not useful in real life.
#DEBUG = no
janus@vmJessie:~/development/ni/build$


Nach diversen clean-Varianten:

janus@vmJessie:~/development/ni/build$ make init
make crosstool-arm-hd1 BOXSERIES=hd1

Crosstool directory already present:
====================================
You need to remove the directory /home/janus/development/ni/build/cross/arm/hd1
if you really want to build a new crosstool.

make/crosstool.mk:116: recipe for target 'CROSS_DIR-check' failed
make[1]: *** [CROSS_DIR-check] Error 1
make/crosstool.mk:6: recipe for target 'crosstools' failed
make: *** [crosstools] Error 2


Ich werde mal die manuelle Variante probieren.
Mal sehen ob es danach dann weitergeht...

p.s.
... irgendwie noch nicht:

janus@vmJessie:~/development/ni/build$ make crosstool-arm-ax

Crosstool directory already present:
====================================
You need to remove the directory /home/janus/development/ni/build/cross/arm/ax
if you really want to build a new crosstool.

make/crosstool.mk:116: recipe for target 'CROSS_DIR-check' failed
make: *** [CROSS_DIR-check] Error 1
janus@vmJessie:~/development/ni/build$


Ich lösch das Verzeichnis mal von Hand...

... Crosstool-Build läuft jetzt !
Zuletzt geändert von Janus am Fr 6. Okt 2017, 19:05, insgesamt 1-mal geändert.
Benutzeravatar
vanhofen
Administrator
Beiträge: 2928
Registriert: Di 5. Apr 2016, 00:05
Has thanked: 7 times
Been thanked: 11 times

Re: NI-Buildsystem (HD51 Support)

Beitrag von vanhofen »

Das kannst du machen. Das würde funktionieren.
Du kannst aber auch meinen Beitrag obendrüber lesen. :nerd:
Benutzeravatar
bellum
NI - VIP
Beiträge: 38
Registriert: Mo 11. Apr 2016, 20:19
Has thanked: 1 time

Re: NI-Buildsystem (HD51 Support)

Beitrag von bellum »

gandharva hat geschrieben: Fr 6. Okt 2017, 13:35 Seit heute hat unser Buildsystem Support für AX/Mut@nt (HD51) Boxen.
Top job! :thumbsup:
Thx to and for all!

Gruß
bellum
Benutzeravatar
gandharva
Administrator
Beiträge: 387
Registriert: Mo 4. Apr 2016, 23:49
Box: Tank

Re: NI-Buildsystem (HD51 Support)

Beitrag von gandharva »

Beitrag 1 angepasst für Umsteiger.
Nazi lives don't matter.
Benutzeravatar
Janus
NI - VIP
Beiträge: 1143
Registriert: Di 12. Apr 2016, 19:41
Box: HD1, Zee, Neo, Tank, HD51, Duo4K
Been thanked: 1 time

Re: NI-Buildsystem (HD51 Support)

Beitrag von Janus »

vmJessie (alles aktualisiert):
Nach 2x7 Stunden war im zweiten Durchlauf das Crosstool fertig.
Jetzt steigt make ni-image im Bereich gstreamer plugins aus:

Code: Alles auswählen

make  all-recursive
Making all in pkgconfig
  CP     gstreamer-allocators-1.0.pc
  CP     gstreamer-audio-1.0.pc
  CP     gstreamer-app-1.0.pc
  CP     gstreamer-fft-1.0.pc
  CP     gstreamer-riff-1.0.pc
  CP     gstreamer-pbutils-1.0.pc
  CP     gstreamer-rtp-1.0.pc
  CP     gstreamer-rtsp-1.0.pc
  CP     gstreamer-sdp-1.0.pc
  CP     gstreamer-tag-1.0.pc
  CP     gstreamer-video-1.0.pc
  CP     gstreamer-plugins-base-1.0.pc
  GEN      gstreamer-allocators-1.0-uninstalled.pc
  GEN      gstreamer-audio-1.0-uninstalled.pc
  GEN      gstreamer-app-1.0-uninstalled.pc
  GEN      gstreamer-fft-1.0-uninstalled.pc
  GEN      gstreamer-pbutils-1.0-uninstalled.pc
  GEN      gstreamer-riff-1.0-uninstalled.pc
  GEN      gstreamer-rtp-1.0-uninstalled.pc
  GEN      gstreamer-sdp-1.0-uninstalled.pc
  GEN      gstreamer-rtsp-1.0-uninstalled.pc
  GEN      gstreamer-tag-1.0-uninstalled.pc
  GEN      gstreamer-plugins-base-1.0-uninstalled.pc
  GEN      gstreamer-video-1.0-uninstalled.pc
Making all in gst-libs
Making all in gst
make -C tag
make -C fft
make -C video
make -C app
  CC       libgstapp_1.0_la-gstappsrc.lo
  CC       libgsttag_1.0_la-gstvorbistag.lo
  ORCC   tmp-orc.c
  CC       libgstfft_1.0_la-gstfft.lo
In function video_orc_convert_I420_BGRA:
error: variable "(null)" used before being written
In function video_orc_convert_I420_ARGB:
error: variable "(null)" used before being written
In function video_orc_matrix8:
error: line 1785: unknown directive: .backup
Failed to compile no orc for 'video_orc_convert_I420_BGRA'
Failed to compile backup code for 'video_orc_convert_I420_BGRA'
ORC: ERROR: orcbytecode.c(251): bytecode_append_int(): assertion failed: value >= 0
/bin/sh: Zeile 1: 40595 Abgebrochen             /usr/bin/orcc --compat 0.4.24 --implementation --include glib.h -o tmp-orc.c ./video-orc.orc
Makefile:1430: recipe for target 'tmp-orc.c' failed
make[6]: *** [tmp-orc.c] Error 134
Makefile:852: recipe for target 'video' failed
make[5]: *** [video] Error 2
make[5]: *** Warte auf noch nicht beendete Prozesse...
  CC       libgsttag_1.0_la-gstid3tag.lo
  CC       libgstfft_1.0_la-gstffts16.lo
  CC       libgstapp_1.0_la-gstappsink.lo
  CC       libgsttag_1.0_la-gstxmptag.lo
  CC       libgsttag_1.0_la-gstexiftag.lo
  CC       libgstfft_1.0_la-gstffts32.lo
  CC       libgsttag_1.0_la-lang.lo
  CCLD     libgstapp-1.0.la
  CC       libgstfft_1.0_la-gstfftf32.lo
  CC       libgsttag_1.0_la-licenses.lo
  CC       libgstfft_1.0_la-gstfftf64.lo
  CC       libgstfft_1.0_la-kiss_fft_s16.lo
  CC       libgsttag_1.0_la-tags.lo
  CC       libgstfft_1.0_la-kiss_fft_s32.lo
  CC       libgstfft_1.0_la-kiss_fft_f32.lo
  CC       libgstfft_1.0_la-kiss_fft_f64.lo
  CC       libgsttag_1.0_la-gsttagdemux.lo
  CC       libgstfft_1.0_la-kiss_fftr_s16.lo
  CC       libgstfft_1.0_la-kiss_fftr_s32.lo
  CC       libgsttag_1.0_la-gsttagmux.lo
  CC       libgsttag_1.0_la-gsttageditingprivate.lo
  CC       libgstfft_1.0_la-kiss_fftr_f32.lo
  CC       libgstfft_1.0_la-kiss_fftr_f64.lo
  CC       libgsttag_1.0_la-id3v2.lo
  CC       libgsttag_1.0_la-id3v2frames.lo
  CCLD     libgstfft-1.0.la
  CC       libgsttag_1.0_la-xmpwriter.lo
  CCLD     libgsttag-1.0.la
Makefile:551: recipe for target 'all-recursive' failed
make[4]: *** [all-recursive] Error 1
Makefile:681: recipe for target 'all-recursive' failed
make[3]: *** [all-recursive] Error 1
Makefile:611: recipe for target 'all' failed
make[2]: *** [all] Error 2
make/gstreamer.mk:63: recipe for target '/home/janus/development/ni/build/deps/gst_plugins_base' failed
make[1]: *** [/home/janus/development/ni/build/deps/gst_plugins_base] Error 2
make/ni.mk:47: recipe for target 'ni-image' failed
make: *** [ni-image] Error 2
janus@vmJessie:~/development/ni/build$ 
Was tun ?
Benutzeravatar
gandharva
Administrator
Beiträge: 387
Registriert: Mo 4. Apr 2016, 23:49
Box: Tank

Re: NI-Buildsystem (HD51 Support)

Beitrag von gandharva »

Deinstalliere orcc/liborc am Host.
Nazi lives don't matter.
Benutzeravatar
gandharva
Administrator
Beiträge: 387
Registriert: Mo 4. Apr 2016, 23:49
Box: Tank

Re: NI-Buildsystem (HD51 Support)

Beitrag von gandharva »

readme lesen hilft auch.
Für die Einrichtung unter Debian sind folgende Pakete nötig:

apt-get install \
git subversion cvs automake build-essential ccache cmake patch bison flex texinfo autopoint \
libtool libtool-bin python curl gawk gzip bzip2 lzma gperf gettext help2man bc \
libglib2.0-dev libncurses5-dev libncursesw5-dev liblzo2-dev uuid-dev libssl-dev libcurl4-openssl-dev intltool
Nazi lives don't matter.
Benutzeravatar
vanhofen
Administrator
Beiträge: 2928
Registriert: Di 5. Apr 2016, 00:05
Has thanked: 7 times
Been thanked: 11 times

Re: NI-Buildsystem (HD51 Support)

Beitrag von vanhofen »

Ich habe eben ein paar Variablen im Buildsystem angepasst. Nach dem Pullen habt ihr ein paar Verzeichnisse umzubenennen, wenn ihr nicht komplett neu bauen wollt.
Das betrifft folgende Verzeichnisse:

Code: Alles auswählen

mv cross/arm/ax cross/arm/hd51
mv static/arm/ax static/arm/hd51
Die Änderungen habe ich gemacht, um die gleichen Variablen wie die DDT-Jungs zu verwenden. Das macht sicher vieles für euch und auch für uns einfacher.
Benutzeravatar
Janus
NI - VIP
Beiträge: 1143
Registriert: Di 12. Apr 2016, 19:41
Box: HD1, Zee, Neo, Tank, HD51, Duo4K
Been thanked: 1 time

Re: NI-Buildsystem (HD51 Support)

Beitrag von Janus »

Da in den HD51-Bänken ja ausreichend Platz ist und die E2-Images das auch anbieten, hätte ich eine Bitte:

Kann Jemand z.B. in system-libs-extra.mk oder devel-tools.mk noch ein Target für libxslt unterbringen ?

Oder mir ein funktionierendes Snippet für Makefile.local machen ?

Das erforderliche libxml2 ist ja schon vorhanden. Dessen Build-Konfiguration müsste dafür evtl. noch angepasst/erweitert werden.

Ich nutze xsltproc sehr intensiv für meine Settingspflege und -auswahl im Baukasten-Prinzip (mehrere Boxen, unterschiedliche Anschluß-Optionen, angepasste Senderselektionen).
Benutzeravatar
vanhofen
Administrator
Beiträge: 2928
Registriert: Di 5. Apr 2016, 00:05
Has thanked: 7 times
Been thanked: 11 times

Re: NI-Buildsystem (HD51 Support)

Beitrag von vanhofen »

Code: Alles auswählen

$(ARCHIVE)/libxslt-git-snapshot.tar.gz:
	$(WGET) ftp://xmlsoft.org/libxml2/libxslt-git-snapshot.tar.gz

$(D)/libxslt: $(D)/libxml2 $(ARCHIVE)/libxslt-git-snapshot.tar.gz | $(TARGETPREFIX)
	$(UNTAR)/libxslt-git-snapshot.tar.gz
	pushd $(BUILD_TMP)/libxslt-1.1.28 && \
		$(CONFIGURE) \
			--prefix= \
			--enable-shared \
			--disable-static \
			--datarootdir=/.remove \
			--without-crypto \
			--without-python && \
		$(MAKE) && \
		$(MAKE) install DESTDIR=$(TARGETPREFIX)
	mv $(TARGETPREFIX)/bin/xslt-config $(HOSTPREFIX)/bin
	$(REWRITE_LIBTOOL)/libexslt.la
	$(REWRITE_LIBTOOL)/libxslt.la
	$(REWRITE_PKGCONF) $(PKG_CONFIG_PATH)/libexslt.pc
	$(REWRITE_PKGCONF) $(PKG_CONFIG_PATH)/libxslt.pc
	$(REWRITE_PKGCONF) $(HOSTPREFIX)/bin/xslt-config
	rm -rf $(TARGETLIB)/libxslt-plugins/
	rm -rf $(TARGETLIB)/xsltConf.sh
	$(REMOVE)/libxslt-1.1.28
	touch $@
Das war einfach. Das hatten wir früher schon mal drin. Bitte schön. :nerd:
Benutzeravatar
Janus
NI - VIP
Beiträge: 1143
Registriert: Di 12. Apr 2016, 19:41
Box: HD1, Zee, Neo, Tank, HD51, Duo4K
Been thanked: 1 time

Re: NI-Buildsystem (HD51 Support)

Beitrag von Janus »

...und läuft !

Code: Alles auswählen

[axHD51] /var/root # xsltproc
Usage: xsltproc [options] stylesheet file [file ...]
   Options:
        --version or -V: show the version of libxml and libxslt used
        --verbose or -v: show logs of what's happening
        --output file or -o file: save to a given file
        --timing: display the time used
        --repeat: run the transformation 20 times
        --dumpextensions: dump the registered extension elements and functions to stdout
        --novalid skip the DTD loading phase
        --nodtdattr do not default attributes from the DTD
        --noout: do not dump the result
        --maxdepth val : increase the maximum depth (default 3000)
        --maxvars val : increase the maximum variables (default 15000)
        --maxparserdepth val : increase the maximum parser depth
        --seed-rand val : initialize pseudo random number generator with specific seed
        --html: the input document is(are) an HTML file(s)
        --encoding: the input document character encoding
        --param name value : pass a (parameter,value) pair
               name is a QName or a string of the form {URI}NCName.
               value is an UTF8 XPath expression.
               string values must be quoted like "'string'"
 or            use stringparam to avoid it
        --stringparam name value : pass a (parameter, UTF8 string value) pair
        --path 'paths': provide a set of paths for resources
        --nonet : refuse to fetch DTDs or entities over network
        --nowrite : refuse to write to any file or resource
        --nomkdir : refuse to create directories
        --writesubtree path : allow file write only with the path subtree
        --xinclude : do XInclude processing on document input
        --xincludestyle : do XInclude processing on stylesheets
        --load-trace : print trace of all external entites loaded
        --profile or --norman : dump profiling informations

Project libxslt home page: http://xmlsoft.org/XSLT/
To report bugs and get help: http://xmlsoft.org/XSLT/bugs.html
[axHD51] /var/root #
Danke, die "Zukunft" meines Settingsmanagments ist gesichert...
Benutzeravatar
vanhofen
Administrator
Beiträge: 2928
Registriert: Di 5. Apr 2016, 00:05
Has thanked: 7 times
Been thanked: 11 times

Re: NI-Buildsystem (HD51 Support)

Beitrag von vanhofen »

Die URL für TangoCashs libstb-hal hat sich geändert. Es ist also nötig, im source-Verzeichnis das Unterverzeichnis /ni-libstb-hal-next zu löschen und "make preqs" zu starten, dass es mit der neuen URL angelegt wird. Wer weiß, wie es geht, kann auch einfach in /ni-libstb-hal-next/.git/config die URL in der Sektion [remote "tango"] ändern.

https://bitbucket.org/neutrino-images/n ... 8ae179b53a
Benutzeravatar
Janus
NI - VIP
Beiträge: 1143
Registriert: Di 12. Apr 2016, 19:41
Box: HD1, Zee, Neo, Tank, HD51, Duo4K
Been thanked: 1 time

Re: NI-Buildsystem (HD51 Support)

Beitrag von Janus »

Mein 'make personalized-image' funktioniert nicht mehr.
Ich weiß jetzt nicht, ob es an meiner Umstellung von Jessie auf Stretch oder an Eurer Änderung der 'make personalize'-Anweisungen in rootfs.mk liegt.
Ich habe bei der Debian-Umstellung nur mein "my-persos" - Verzeichnis - ohne weitere Änderungen am Inhalt - von JessieVM nach StretchVM kopiert.
Vor dem Build wird dann ../build/local nach ../my_persos/hd51/local verlinkt.
Der Link ../build/local zeigt aktuell auch den Inhalt von ../hd51/local und in .../local/scripts-Verzeichnis ist das Script 'personalize" ausführbar.
Wird aber nicht (mehr) aufgrufen.

Ich weiß nichtmal genau, ob das 'Fehlverhalten' seit der Umstellung oder erst später aufgetreten ist. Vorher unter Jessie hatte ich aber keine Probleme mit diesem Vorgehen.
Benutzeravatar
vanhofen
Administrator
Beiträge: 2928
Registriert: Di 5. Apr 2016, 00:05
Has thanked: 7 times
Been thanked: 11 times

Re: NI-Buildsystem (HD51 Support)

Beitrag von vanhofen »

Hier geht das Target nach wie vor. Beide Scripte werden ausgeführt.
Ich hab ja auch nur den Aufruf etwas nach hinten geschoben.
Benutzeravatar
Janus
NI - VIP
Beiträge: 1143
Registriert: Di 12. Apr 2016, 19:41
Box: HD1, Zee, Neo, Tank, HD51, Duo4K
Been thanked: 1 time

Re: NI-Buildsystem (HD51 Support)

Beitrag von Janus »

Mmmhhmm,
dann versuche ich mal, das Verzeichnis "local" nicht über einen Link verfügbar zu machen, sondern direkt zu 'befüllen'.
Manchmal gibt es ja kleine "Unterschiede" zwischen OS - Versionen...

Edit Nachtrag:
Alles ist wieder gut! :grin:
Klassisches Eigentor!
Eine Verzeichnisebene zu viel "gelinkt" und zig mal drübergelesen...
Antworten

Zurück zu „Entwicklung“