Posts by Dieter

    Hi,

    habe heute meine VDR von Bionic auf Focal hochgesetzt (do-release-upgrade).

    Damit alles wieder passt habe ich ansible laufen lassen:

    Code
    cd MEINANSIBLE
    git pull
    # ./install-yavdr.sh

    Das lief gleich auf eine Fehler mit python:

    python-jmespath gibt es wohl nicht mehr. Habe es dann in python3-jmespath geändert (und ein paar python-xxx mehr).


    Dann der nächste Fehler:

    Code
    TASK [vdr : set vdr charset override]
    ....
    object of type 'bool' has no len()

    Sieht nach einer Änderung in Ansible/Python aus.


    Und dann noch einer:

    Code
    TASK [autoinstall-satip : detect SAT>IP Server(s) on the network]
    ....
    TypeError: a bytes-like object is required, not 'str'

    Auch das sieht nach einer Änderung in Ansible/Python aus.


    Fürs Erste habe ich 3 mal "when: false" eingebaut. Damit lief es dann durch.


    Ist das ein schon bekannter Fehler? Oder habe ich was falsch gemacht?

    Mein Ansible:

    Code
    ansible --version
    ansible 2.9.6
    config file = /home/fauthd/yavdr-ansible/ansible.cfg
    configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
    ansible python module location = /usr/lib/python3/dist-packages/ansible
    executable location = /usr/bin/ansible
    python version = 3.8.10 (default, Mar 15 2022, 12:22:08) [GCC 9.4.0]

    So, hier die scripts/makefiles:


    Make.config:



    crossbuild.sh

    Hi,

    damit meine 1000 Posting voll werden :) Nein nicht wirklich...


    Ich habe experimente mit dem "cross compileren" des VDR und Plugins gemacht.

    Sieht gar nicht so schlecht aus, wenn es auch aufwendinger ist als beim Kernel (oder meinen vielen Projekten im Job).


    Es ist auch damit zu rechnen dass einige Plugins leichte Anpassungen in den Makefiles brauchen.


    Was braucht man:

    1. EIn Verzeichnis das die sysroot enthält
      Einfach /lib und /usr vom Gerät in locales Verzeichnis kopieren (Überflüssiges kann man später entfernen.
      Bei mir ist es "arm64_ubuntu_focal_sysroot".
    2. Cross compiler
      Bei Ubuntu focal "sudo apt install g++-aarch64-linux-gnu" (oder den arm32 Compiler)
    3. Meinen script crosscompile.sh.
    4. Mein Make.config
      Der Script kopiert es in das VDR-Verzeichnis.
    5. Quelltexte :)

    Es bauen noch nicht alle Plugins und nur ein paar wenige habe ich versucht.

    Im nächsten Post zeige ich die beiden Files.

    Hallo Klaus,

    zur Zeit versuche ich den vdr mittels Cross-Compiler zu bauen. Klappt auch soweit seit ein paar Minuten.

    Dabei ist mir aufgefallen dass im Makefile eine Inkonsistens ist:

    Code
    install-pc: vdr.pc    if [ -n "$(PCDIR)" ] ; then\
           mkdir -p $(DESTDIR)$(PCDIR) ;\
           cp vdr.pc $(DESTDIR)$(PCDIR) ;\
           fi

    Sollte das nicht so sein:

    Code
    ... if [ -n "$(DESTDIR)$(PCDIR)" ] ....
    ....

    Oder habe ich was übersehen?

    Hi,

    auf der TX3 dauerte der kernel ca. 2h. Ist schon langsam (ok, mein erster VDR war auch nicht schneller).

    Wenn nativ, dann auf meinem Server mit Odroid N2+.


    Makefile:

    CC und CXX sind kein Problem. Aber libs werden mit absolutem path eingebunden.

    Also bleibt eigentlich nur changeroot.... mal sehen. (oder patch-orgie)


    Bei 5.17 soll einiges Neues drin sein bezüglich Amlogic, habs aber noch nicht im Detail angeschaut. Versuch macht klug :-).

    Hi jojo61,

    full ack. Verzetteln ist immer schlecht.


    Ich packe noch die media-module rein. Als "out of tree" build wie bei CE.

    Vielleicht kann happe60 noch seinen Weg genauer beschreiben oder scripts bereitstellen.


    Den Beta68/HK kernel have ich vorerst aufgeben. Den Crash zu reparieren ist mir noch nicht gelungen. Und was kommt danach? HK hat da ziemlich schmutzing gearbeitet. Eine CONFIG_XX ändern und es kommen Fehler. Selbst Mergekonflikte sind da noch im Text.

    Aber ich habe wieder viel gelernt (auch was ich schon wieder vergessen hatte). Kernelland ist immer interessant.


    Auf Github habe ich meine U-boot-Scripte mit Erklärungen aufgefrischt.


    Nochwas:

    Vielleicht ist die von zillerbaer gezeigt Lösung für Allwinner SOCs auch hier machbar.

    Kernel 5.17 und softhddevice-drm wäre mein zweiter Ansatz gewesen.

    Das ist zumindest ein zukunftsicherer Weg. Kernel 4.x wird irgendwann sterben.

    (5.17-RC5 booted perfect mit den Armbian U-Boot-Scripts)

    Was mit Amlogic bei 5.17 geht und nicht geht ist mir nicht bekannt. Aber es wurde viel nach Mainline portiert.

    Ich stecke aber lieber Zeit in die Verbesserung des 5.17 als den alten Mist 4.9 zu reparieren.

    Hi,

    Das Temperaturproblem dürften alle diese Boards haben.

    Sie sind nicht dafür gebaut etwas zu compilieren

    Als ich testweise einen Kernel auf der TX3 gebaut habe musste ich ihr zufächeln damit die Temperatur unter 80°C blieb.

    Normalerweise compiliere ich cross, das geht erheblich schneller und ist nicht schwer.

    Hi,

    60MB auf meinem gdrive.

    (ExperimentalCE_Kernel_WithUbuntuRamdisk.tar.bz2)

    Mehr Details im Ordner Hints/Readme.txt.


    Kernel source muss per git clone von GitHub geholt werden (würde Größe vervielfachen).

    Es sind auch die originale Ramdisk (initrd) von CE und originale Ramdisk von Ubuntu vorhanden.


    Ich hoffe das nichts vergessen wurde.

    Es sollte funktionieren einen Armbian Ubuntu-Stick zu machen und

    das Kernel image (nach bauen in linux-amlogic_boot zu finden. Ca. 100MB. Dort sind auch to dtb files)


    u-boot:

    Die u-boot scripts sind in Hints/Experiments/scripts/.

    uEnv.txt anpassen nicht vergessen!

    Dann an die Box und toothpick....



    PS: Ob Ubuntu-Basis besser ist als CE? Zumindest zum Bauen und testen ja.

    Meine Hoffnung ist ein Plugin zu CE.

    Hi,

    @JoeBar:

    Ja aktueller CE 4.9. Hab den nur wegen Fehlersuche angefasst damit ich vergleichen kann.

    Der Plan war die YA-Sachen zu nehmen (und ev. einen Ansible-"Script" aufsetzen damit auch die Installation Dokumentiert ist.)

    (Danke nochmals an Seahawk der hat mich damals zu Ansible gebracht. Super Werkzeug, verwende es für fast alle Maschinen)


    @jojo61 und beta:

    Bereitstellen: Ja, muss aber Saubermachen.

    Wo stellt man die Decoder auf 2.


    Was interessant wäre ob mein Kompilat des Beta68Kernels auf Odroid läuft.


    Ich baue Cross mit dem selben Compiler wie CE (GCC 10.2).

    Habs aber auch mit dem GCC 10.3 und 632 versucht.


    Der CE hat die Media-Moduls extern (out of tree), die habe ich noch nicht gebaut - soweit war ich noch nicht.


    Vielleicht zippe ich einfach - mal sehen wie groß es wird.

    Später soll es aber sauber in github sein.

    Hi,

    wieder mal ein Statusupdate:

    Mit dem Kernel von Hardkernel/Beta68 bin ich noch nicht viel weitergekommen. Der Crashed an verschiedenen Stellen. Könnte IRQ oder DMA sein (oder Takt, Regulators).


    Um anderes auszuschliesen habe ich versucht den Kernel von CE mit dem rootfs von Ubuntu zu verbinden.

    Dazu musste ich eine andrere initrd für Ubuntu erzeugen. Es brauchte dann doch ein paar Anpassungen im initrd, aber jetzt rennt es.

    Endlich!

    zillerbaer: Habe verschieden Einstellung der kernel cmd versucht. Mit 5.16 habe ich ja earlyprintk (oder earlycon wie es bei arm64 heisst).

    Die habe ich gerade in den tests (war mal länger wie von Armbian eingestellt):

    Code
    APPEND=earlyprintk root=LABEL=ROOTFS rootflags=data=writeback rw console=ttyAML0,115200n8 console=tty0 no_console_suspend consoleblank=0 systemd.debug_shell=ttyAML0 udbg-immortal tp_printk

    Bei Amlogic soll dieser Teil wichtig sein :


    Code
    console=ttyAML0,115200n8

    Der Uarttreiber registriert sich auch bei 4.9 als earlycon. Zumindest sind die Aufrufe/macros im Quelltext (aber wird es compiliert? Das muss ich nochmals prüfen.

    Und ich sehe gerade ich habe kein EARLYCON in der cmd line (habe ich gestern gelesen das man das bräuchte - wird aber viel Mist geschrieben).


    Edit:

    earlycon hat nichts gebracht.

    Aber ich habe gesehen dass es zwei Treiber für den AMLOGIC UART gibt.

    1. linux-6a7cecbf10be7a12672b5295aef4c042addce1c6/drivers/tty/serial/meson_uart.c
    2. linux-6a7cecbf10be7a12672b5295aef4c042addce1c6/drivers/amlogic/uart/meson_uart.c

    Werde es hier reinschreiben wenn ich was positives finde.


    Edit2:

    EIner der Treiber war nicht im .config. Es braucht 3 settings um es zu aktivieren.

    Mist, beim Bauen ist er jetzt auf einen Fehlergelaufen

    Irgendwo im PINCONTROL. Komme ich heute nicht mehr dazu.


    Edit3 (14.03.2022):

    Earlycon funktioniert jetzt mit dem CE-Kernel. Es fehlte noch ein Eintrag im Device Tree (chosen.... ).

    Und man kann alles was early* betriff aus der kernel cmdline entfernen. Ebenso dieser Teil: "console=ttyAML0,115200n8" das war für Kernel 5.x.

    In den Quellen kann man finden dass ttyAMLx beim 4.9 nicht existiert. Dort heißt es ttySx.

    Es wird auch nur einer der beiden Uart-Treibern verwendet (drivers/amlogic/uart/meson_uart.c).

    Meine aktuell Appendzeile: "APPEND=root=LABEL=ROOTFS rootflags=data=writeback rw"

    Damit kann ich jetzt auch den Kernel von Beta untersuchen.


    Edit4 (16.03.2022):

    Auch mit dem Beta68-Kernel habe ich jetzt Earlycon. Auch da ist die Schnittstelle dafür TTYS0.

    Es sind eine ganze Reihe Änderungen notwendig. Ich habe den Kernel von Beta68 "geforked": github. Soll aber später wieder zusammengeführt werden (Mein Wunsch). Es wird aber verschiedene Konfigurationen geben (müssen).


    Momentan crashed dieser Kernel, aber jetzt kann ich etwa sehen wo. Ist ein großer Fortschritt.