Skip to content

Serielle Konsole UART2

Angeheftet Verschoben Hardware
  • Hier mal die Info's sammeln zur seriellen Konsole.

    • Baudrate: 1500000
    • Data bits: 8
    • Parity: N
    • Stop bits: 1

    Quelle: http://opensource.rock-chips.com/images/f/f9/RK3399_Linux_Debain_V1.1_Development_Guide170620.pdf

    0_1526196275573_Rockpro64 Pi-2 Connector ver0.2.png

    Es sieht so aus, das es auf den SOC's von Pine64 keinen separaten Steckplatz für die serielle Konsole gibt, so wie ich das von den Bananen her kenne. Man nutzt wohl direkt den UART2 Anschluss des Expansions Steckplatzes. Da hätten wir dann:

    Die rote Ader nicht anschließen!

    • Nr. 6 GND - schwarz
    • Nr. 8 UART2_TX - weiß
    • Nr. 10 UART2_ RX - grün

    Update vom 18. März 2019

    Seit dem Image 0.7.14 stört die Verbindung an Pin 10 das Booten des ROCKPro64, wenn dieser mit einem WiFi-Modul und einer PCIe-Karte bestückt ist. Das entfernen der Verbindung löst das Problem, man hat dann aber nur noch lesend Zugriff und kann keine Kommandos über die Konsole absetzen! Aber, das sollte das kleiner Problem sein. Die Entwickler sind informiert, keine Ahnung ob man das Fixen kann.

    0_1526803326819_konsole3.jpg

    Als Gedankenstütze, vom ROCK64 https://forum.pine64.org/showthread.php?tid=5008

    Damit sollten die vorhandenen USB-Adapter genauso wie bei den Bananen funktionieren!

    Achtung!

    Durch die schnelle Übertragungsrate kommt es bei verschiedenen Adaptern zu Darstellungsfehlern. Ein Adapter bei mir funktioniert nicht, fehlerhafte Darstellung. Mein billigster Adapter funktioniert, einwandfreie Darstellung.

    Also, wenn ihr Probleme habt, einfach mal einen anderen Adapter ausprobieren. Die anderen Angaben oben funktionieren!

    Tools zum Flashen

  • Ich habe ja einige Adapter ausprobiert, habe jetzt eine ordentliche Sammlung davon, aber habe jetzt einen gefunden der mir wohl alles anzeigt 😉

    Problem bei vielen Adaptern scheint die hohe Übertragungsrate zu sein. Wenn ihr als Ausgabe nur Müll bekommt, könnt ihr den Adapter direkt an die Seite legen, korrekter Anschluss vorausgesetzt!

    Einen Adapter den ich jetzt die ganze Zeit benutzt hatte, war folgender.

     Bus 003 Device 017: ID 10c4:ea60 Cygnal Integrated Products, Inc. CP210x UART Bridge / myAVR mySmartUSB light
    

    Ging, hatte aber das Problem das beim ersten Start die Ausgaben des U-Boots nicht vernünftig angezeigt werden. Wenn man mit den Platinen rumspielt, ist das sehr unvorteilhaft.

    Ok, nächster Versuch

    Bus 003 Device 016: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter
    

    Und der zeigt jetzt auch den U-Boot vernünftig an. Benutzt wird folgendes Linux.

    rock64@rockpro64:~$ uname -a
    Linux rockpro64 4.4.126-rockchip-ayufan-239 #1 SMP Sun May 27 18:38:24 UTC 2018 aarch64 aarch64 aarch64 GNU/Linux
    

    Ausgabe

    channel 0 training pass!
    
    channel 1 training pass!
    
    change freq to 800MHz 1,0
    
    ch 0 ddrconfig = 0x101, ddrsize = 0x2020
    
    ch 1 ddrconfig = 0x101, ddrsize = 0x2020
    
    pmugrf_os_reg[2] = 0x3AA1FAA1, stride = 0xD
    
    OUT
    
    U-Boot SPL board init
    
    
    
    U-Boot SPL 2017.09-g03a332b (May 27 2018 - 18:34:10)
    
    booted from SD
    
    Trying to boot from MMC2
    
    NOTICE:  BL31: v1.3(debug):d98d16e
    
    NOTICE:  BL31: Built : 15:03:07, May 10 2018
    
    NOTICE:  BL31: Rockchip release version: v1.1
    
    INFO:    GICv3 with legacy support detected. ARM GICV3 driver initialized in EL3
    
    INFO:    Using opteed sec cpu_context!
    
    INFO:    boot cpu mask: 0
    
    INFO:    plat_rockchip_pmu_init(1151): pd status 3e
    
    INFO:    BL31: Initializing runtime services
    
    WARNING: No OPTEE provided by BL2 boot loader, Booting device without OPTEE initialization. SMC`s destined for OPTEE will return SMC_UNK
    
    ERROR:   Error initializing runtime service opteed_fast
    
    INFO:    BL31: Preparing for EL3 exit to normal world
    
    INFO:    Entry point address = 0x200000
    
    INFO:    SPSR = 0x3c9
    
    
    
    
    
    U-Boot 2017.09-g03a332b (May 27 2018 - 18:34:23 +0000), Build: jenkins-linux-build-rock-64-239
    

    So muss das sein. 🙂

    Mach ich selten, aber um es anderen etwas einfacher zu machen hier ein Amazon Link.

    0_1527938581023_Adapter_bearbeitet2.jpg

    Anschluss

    ROCKPro64 - Adapter

    • GND (6) - GND
    • TX (8) - RX
    • RX (10) - TX

    Zu Pin 10 bitte das Update im ersten Beitrag beachten!

    Die Brücke des Adapters steckt auf VCC / 3V3 und der Anschluss 5V ist frei. Das ist wohl ein Spannungsausgang, den man wahlweise auf 3V3 oder 5V schalten kann, den wir aber nicht benötigen!

    Die Einstellungen der seriellen Schnittstelle findet ihr im Eingangsthread.

    Ihr könnt natürlich, wenn ihr euch einen ROCKPro64 bestellt, direkt einen USB-Adapter mitbestellen!
    https://www.pine64.org/?product=padi-serial-console
    Ich setze mal voraus, das der funktioniert.

  • @FrankM
    Der anschluss 10 RX auf dem Rockpro64 V2.1 und warscheinlich auch anderen da das auf deiner Seite irgendwo erwähnt wurde muss beim booten frei sein.

    Es sieht so aus als ob der Prozessor darüber Spannung bekommt da der TX pin vom adapter "high" gezogen wird da scheint ein fehler in dem Layout oder Prozessor zu sein so das eine versorgung durch diesen pin auch "Rückwärts" funktioniert.

    Sehen kann man das wenn man GND und den pin 10 belegt, Spannung auf das Bord gibt und dann wieder trennt. Danach bleibt die Power LED leicht am glimmen. Nur anstecken des Serial converters reicht da nicht, dabei leuchtet die LED nicht auf. Außerdem geht das auch nur mit 5V Logic Level sonst kommt nicht genug an der LED an um es optisch zu erfassen das müsste man dann Messen, ist aber in jedem fall so nicht richtig.

    Sven

  • Ich mache das seit dem ersten Tag so, noch nie Probleme mit gehabt.

    Das mit der Rückspannung ist mir auch schon aufgefallen.

  • @tux_on_tour

    Hallo Sven,

    ich muss mich zu dem Thema noch mal äußern.

    Du hattest Recht! 👏

    Seit dem Image 0.7.14 (wifi & pcie) hatte ich das Problem das der ROCKPro64 nicht mehr booten möchte. Ein entfernen von Pin 10 löste das Problem.

    Vielen Dank nachträglich!!

    Nachteil, man kann von der Konsole aus nichts mehr machen!

    Ich werde das in meinen Anleitungen entsprechend ändern!

  • Es gibt Berichte im IRC, das es bei einigen auch mit der Verbindung zu Pin 10 geht. Vielleicht auch abhängig vom Adapter!? Im Zweifel einfach mal ausprobieren.

  • @FrankM
    Hallo, ich bin noch ganz unerfahren mit Pi's.
    Wenn ich jetzt eine Physische verbindung mit einer USB-TTL UART Konsole habe,
    wie stelle ich da eine Verbindung her?
    Ich habe Linux auch auf meinem Rechner drauf und bin nicht ganz begriffstuzig, was Konsolen angeht.
    Vielen Dank

    Cri

  • Ich verweise mal auf einen Artikel auf einer Webseite von mir, der Einsteiger Niveau hat.
    https://frank-mankel.de/wichtig/serielle-konsole

    Wenn es dann noch Probleme gibt, einfach fragen.

    Und beachte bitte, das wir hier nicht über PIs schreiben, sondern über ROCKPros. Da könnte es kleine Unterschiede geben. https://www.raspberrypi.org/documentation/configuration/uart.md

  • [V] ROCKPro64 incl. PCIe SATA-Karte

    Verschoben Archiv
    2
    0 Stimmen
    2 Beiträge
    252 Aufrufe
    FrankMF

    Verkauft!

  • ROCKPro64 - PCIe Probleme

    Hardware
    3
    0 Stimmen
    3 Beiträge
    338 Aufrufe
    FrankMF

    Danke für dein Feedback.

  • Mainline 4.20.0-rc6

    ROCKPro64
    1
    0 Stimmen
    1 Beiträge
    415 Aufrufe
    Niemand hat geantwortet
  • ROCKPro64 - USB-OTG funktioniert!

    ROCKPro64
    1
    0 Stimmen
    1 Beiträge
    541 Aufrufe
    Niemand hat geantwortet
  • SATA Karte Marvell 88SE9230 Chipsatz

    Angeheftet Hardware
    19
    0 Stimmen
    19 Beiträge
    6k Aufrufe
    FrankMF

    Ok, es gibt noch eine andere Möglichkeit.

    Kamil hat mir noch ein wenig geholfen. Mit folgender Änderung werden die Platten gefunden.

    hmm, I had to add /etc/default/extlinux: libahci.skip_host_reset=1

    Sieht dann so aus.

    # Configure timeout to choose the kernel # TIMEOUT="10" # Configure default kernel to boot: check all kernels in `/boot/extlinux/extlinux.conf` # DEFAULT="kernel-4.4.126-rockchip-ayufan-253" # Configure additional kernel configuration options APPEND="$APPEND root=LABEL=linux-root rootwait rootfstype=ext4 libahci.skip_host_reset=1"

    Danach waren die Platten zu sehen.

    root@rockpro64:/tmp/etc/default# blkid /dev/sda2: SEC_TYPE="msdos" LABEL_FATBOOT="boot-efi" LABEL="boot-efi" UUID="ABCD-FC7D" TYPE="vfat" PARTLABEL="boot_efi" PARTUUID="72e36967-4050-4bb3-8f8f-bf6755c38f28" /dev/sda3: LABEL="linux-boot" UUID="8e289a3e-0f9b-4da1-a147-51e03390637c" TYPE="ext4" PARTLABEL="linux_boot" PARTUUID="fe944fd2-3e42-4202-8a95-656e9bdb4be6" /dev/sda4: LABEL="linux-root" UUID="3e9513c6-dfd1-48c9-bee2-04bb5a153056" TYPE="ext4" PARTLABEL="linux_root" PARTUUID="d2d1dd88-030d-4f74-998f-7c9ce7d385d0" /dev/sdb2: SEC_TYPE="msdos" LABEL_FATBOOT="boot-efi" LABEL="boot-efi" UUID="56C9-F745" TYPE="vfat" PARTLABEL="boot_efi" PARTUUID="919c8f73-5f25-4a01-9072-3a5ed9a88ff2" /dev/sdb3: LABEL="linux-boot" UUID="23c19647-f4a1-4197-a877-f1bb03456bef" TYPE="ext4" PARTLABEL="linux_boot" PARTUUID="093d0cc0-d122-4dce-aeb5-4e266b4b7d9d" /dev/sdb4: LABEL="linux-root" UUID="f1c74331-8318-4ee8-a4f7-f0c169fb9944" TYPE="ext4" PARTLABEL="linux_root" PARTUUID="964ab457-58d5-40c4-bb02-dfd37bd2f0da" /dev/sda1: PARTLABEL="loader1" PARTUUID="37466429-e4a4-495c-b9a1-3f74625a3cae" /dev/sdb1: PARTLABEL="loader1" PARTUUID="33f692b3-54cb-4a37-b602-21a2baf32fa0"

    Aber auch hiermit ist ein Boot von der SATA Platte nicht möglich.

    Ich möchte hier noch was vom kamil zitieren.

    (11:44:09) ayufanWithPM: will look later, but this controller is tricky, also on x86 as well
    (11:44:16) ayufanWithPM: jms585 seems to be significantly more stable

    Evt. bekommt er das gefixt 😉

  • Recover Button

    Hardware
    2
    0 Stimmen
    2 Beiträge
    833 Aufrufe
    FrankMF

    Ich hab das mal ausprobiert.

    Den Recover Button so lange drücken, bis folgendes erscheint.

    In: serial@ff1a0000 Out: serial@ff1a0000 Err: serial@ff1a0000 Model: Pine64 RockPro64 rockchip_dnl_mode = 1 mode rockchip_dnl_mode = 2 mode rockchip_dnl_mode = 3 mode rockchip_dnl_mode = 4 mode entering maskrom mode...

    RKFlashTool clonen

    root@thinkpad:/home/frank/test# git clone https://github.com/rockchip-linux/rkflashtool Klone nach 'rkflashtool' ... remote: Counting objects: 663, done. remote: Total 663 (delta 0), reused 0 (delta 0), pack-reused 663 Empfange Objekte: 100% (663/663), 114.94 KiB | 0 bytes/s, Fertig. Löse Unterschiede auf: 100% (367/367), Fertig.

    In das Verzeichnis wechseln

    root@thinkpad:/home/frank/test# cd rkflashtool/

    Inhalt

    root@thinkpad:/home/frank/test/rkflashtool# ls doc Makefile rkcrc.h rkflashtool.h rkparametersblock examples README rkflashall rkmisc rkunpack.c fixversion.sh release.sh rkflashloader rkpad rkunsign flashuboot rkcrc.c rkflashtool.c rkparameters version.h

    RKFlashtool bauen

    root@thinkpad:/home/frank/test/rkflashtool# make gcc -O2 -W -Wall -I/usr/include/libusb-1.0 rkflashtool.c -o rkflashtool -lusb-1.0 gcc -O2 -W -Wall -I/usr/include/libusb-1.0 rkcrc.c -o rkcrc -lusb-1.0 gcc -O2 -W -Wall -I/usr/include/libusb-1.0 rkunpack.c -o rkunpack -lusb-1.0

    Ich habe ein USB-A to USB-A Kabel vom USB-C Port des ROCKPro64 zu meinem Notebook hergestellt.

    root@thinkpad:/home/frank/test/rkflashtool# sudo ./rkflashtool v rkflashtool: info: rkflashtool v5.2 rkflashtool: info: Detected RK3399... rkflashtool: info: interface claimed rkflashtool: info: MASK ROM MODE rkflashtool: info: chip version: -..-

    Ok, Verbindung steht.

    Eine Übersicht der Befehle

    root@thinkpad:/home/frank/test/rkflashtool# sudo ./rkflashtool rkflashtool: info: rkflashtool v5.2 rkflashtool: fatal: usage: rkflashtool b [flag] reboot device rkflashtool l <file load DDR init (MASK ROM MODE) rkflashtool L <file load USB loader (MASK ROM MODE) rkflashtool v read chip version rkflashtool n read NAND flash info rkflashtool i offset nsectors >outfile read IDBlocks rkflashtool j offset nsectors <infile write IDBlocks rkflashtool m offset nbytes >outfile read SDRAM rkflashtool M offset nbytes <infile write SDRAM rkflashtool B krnl_addr parm_addr exec SDRAM rkflashtool r partname >outfile read flash partition rkflashtool w partname <infile write flash partition rkflashtool r offset nsectors >outfile read flash rkflashtool w offset nsectors <infile write flash rkflashtool p >file fetch parameters rkflashtool P <file write parameters rkflashtool e partname erase flash (fill with 0xff) rkflashtool e offset nsectors erase flash (fill with 0xff)
  • ROCKPro64 - Wo stehen wir?

    ROCKPro64
    1
    0 Stimmen
    1 Beiträge
    610 Aufrufe
    Niemand hat geantwortet
  • ROCKPro64 - Der Bootvorgang

    Verschoben Hardware
    3
    0 Stimmen
    3 Beiträge
    2k Aufrufe
    FrankMF

    Um einen neuen Kernel booten zu können, brauche ich diese 4 Dateien unter /boot

    config-4.19.0-rc4-1065-ayufan-g72e04c7b3e06 initrd.img-4.19.0-rc4-1065-ayufan-g72e04c7b3e06 System.map-4.19.0-rc4-1065-ayufan-g72e04c7b3e06 vmlinuz-4.19.0-rc4-1065-ayufan-g72e04c7b3e06

    Und den Ordner /boot/dtbs/4.19.0-rc4-1065-ayufan-g72e04c7b3e06 mit folgendem Inhalt

    rock64@rockpro64v2_0:/boot/dtbs/4.19.0-rc4-1065-ayufan-g72e04c7b3e06$ ls -la total 104 drwxr-xr-x 26 root root 4096 Sep 30 09:54 . drwxr-xr-x 6 root root 4096 Sep 30 09:55 .. drwxr-xr-x 2 root root 4096 Sep 30 09:54 al drwxr-xr-x 2 root root 4096 Sep 30 09:54 allwinner drwxr-xr-x 2 root root 4096 Sep 30 09:54 altera drwxr-xr-x 2 root root 4096 Sep 30 09:54 amd drwxr-xr-x 2 root root 4096 Sep 30 09:54 amlogic drwxr-xr-x 2 root root 4096 Sep 30 09:54 apm drwxr-xr-x 2 root root 4096 Sep 30 09:54 arm drwxr-xr-x 4 root root 4096 Sep 30 09:54 broadcom drwxr-xr-x 2 root root 4096 Sep 30 09:54 cavium drwxr-xr-x 2 root root 4096 Sep 30 09:54 exynos drwxr-xr-x 2 root root 4096 Sep 30 09:54 freescale drwxr-xr-x 2 root root 4096 Sep 30 09:54 hisilicon drwxr-xr-x 2 root root 4096 Sep 30 09:54 lg drwxr-xr-x 2 root root 4096 Sep 30 09:54 marvell drwxr-xr-x 2 root root 4096 Sep 30 09:54 mediatek drwxr-xr-x 2 root root 4096 Sep 30 09:54 nvidia drwxr-xr-x 2 root root 4096 Sep 30 09:54 qcom drwxr-xr-x 2 root root 4096 Sep 30 09:54 renesas drwxr-xr-x 2 root root 4096 Sep 30 09:54 rockchip drwxr-xr-x 2 root root 4096 Sep 30 09:54 socionext drwxr-xr-x 2 root root 4096 Sep 30 09:54 sprd drwxr-xr-x 2 root root 4096 Sep 30 09:54 synaptics drwxr-xr-x 2 root root 4096 Sep 30 09:54 xilinx drwxr-xr-x 2 root root 4096 Sep 30 09:54 zte

    Unter /boot/extlinux liegt dann die Datei extlinux.conf

    Die sieht bei mir dann so aus

    timeout 10 menu title select kernel label kernel-4.19.0-rc4-1065-ayufan-g72e04c7b3e06 kernel /boot/vmlinuz-4.19.0-rc4-1065-ayufan-g72e04c7b3e06 initrd /boot/initrd.img-4.19.0-rc4-1065-ayufan-g72e04c7b3e06 devicetreedir /boot/dtbs/4.19.0-rc4-1065-ayufan-g72e04c7b3e06 append rw panic=10 init=/sbin/init coherent_pool=1M ethaddr=${ethaddr} eth1addr=${eth1addr} serial=${serial#} cgroup_enable=cpuset cgroup_memory=1 cgroup_enable=memory swapaccount=1 root=LABEL=TEST rootwait rootfstype=ext4 label kernel-4.19.0-rc4-1065-ayufan-g72e04c7b3e06-memtest kernel /boot/vmlinuz-4.19.0-rc4-1065-ayufan-g72e04c7b3e06 initrd /boot/initrd.img-4.19.0-rc4-1065-ayufan-g72e04c7b3e06 devicetreedir /boot/dtbs/4.19.0-rc4-1065-ayufan-g72e04c7b3e06 append rw panic=10 init=/sbin/init coherent_pool=1M ethaddr=${ethaddr} eth1addr=${eth1addr} serial=${serial#} cgroup_enable=cpuset cgroup_memory=1 cgroup_enable=memory swapaccount=1 root=LABEL=TEST rootwait rootfstype=ext4 memtest

    Darunter kommen dann evt. die alten Kernel die installiert waren, das habe ich hier im Beispiel weg gelassen.