RockPi S, rkdeveloptool: “Creating Comm Object failed!”

with my “RockPi S D4PN8” I successfully entered maskrom mode. Green LED is permanently on.
[manjaro@manjaro ~]$ lsusb | grep 2207
Bus 003 Device 006: ID 2207:330e Fuzhou Rockchip Electronics Company
[manjaro@manjaro ~]$ rkdeveloptool ld
DevNo=1 Vid=0x2207,Pid=0x330e,LocationID=30a Maskrom
[manjaro@manjaro ~]$ rkdeveloptool db ./rk3308_loader_uart0_m0_emmc_port_support_sd_20190717.bin
Creating Comm Object failed!
(The error message is badly designed because a hint about the reason is missing.)
I also tried the last command with a leading “sudo” but there’s no difference.
First I tried on an USB 3.0 port, now I plugged the mouse to 3.0 and tried the RockPi on the USB 2.0 port, LocationID changed to “306” but again it leads to the same error message.
I have an identical second RockPi S and I also tried with it now but the error is still the same.
Please, what else can I try?

rkdeveloptool db

You need to add sudo

Thanks for your reply, Jack!
But I’m sorry, I already tried

  • with sudo
  • with two different (but identical) RockPi S
  • with two different downloads of the .bin file (sd5sum is identical)
  • with two different USB ports (3.0 and 2.0)

and now I have no more ideas :thinking:

The version number on the board is “ROCK PI S V12 20190910” respectively.

Up to now I did use version 68 of the tool.
Just compiled version 69 (but the same error appeared):
==> Erstelle Paket: rkdeveloptool 66-1 (Do 08 Jul 2021 06:33:37 CEST)
==> Prüfe Laufzeit-Abhängigkeiten…
==> Prüfe Buildtime-Abhängigkeiten…
==> Empfange Quellen…
-> Klone das rkdeveloptool git Repo…
Klone in Bare-Repository ‘/home/manjaro/Downloads/rkdeveloptool/rkdeveloptool’ …
remote: Enumerating objects: 299, done.
remote: Counting objects: 100% (106/106), done.
remote: Compressing objects: 100% (32/32), done.
remote: Total 299 (delta 83), reused 80 (delta 74), pack-reused 193
Empfange Objekte: 100% (299/299), 191.50 KiB | 3.83 MiB/s, fertig.
Löse Unterschiede auf: 100% (167/167), fertig.
==> Überprüfe source Dateien mit sha256sums…
rkdeveloptool … Übersprungen
==> Entpacke Quellen…
-> Erstelle Arbeitskopie des rkdeveloptool git Repos…
Klone nach ‘rkdeveloptool’ …
==> Beginne pkgver()…
==> Aktualisierte Version: rkdeveloptool 69-1
==> Beginne build()… warning: ‘AM_CONFIG_HEADER’: this macro is obsolete. You should use the ‘AC_CONFIG_HEADERS’ macro instead.
./lib/autoconf/general.m4:2434: AC_DIAGNOSE is expanded from…
aclocal.m4:1071: AM_CONFIG_HEADER is expanded from… the top level installing ‘cfg/compile’ installing ‘cfg/config.guess’ installing ‘cfg/config.sub’ installing ‘cfg/install-sh’ installing ‘cfg/missing’ installing ‘cfg/depcomp’
configure: WARNING: unrecognized options: --disable-werror
checking for a BSD-compatible install… /usr/bin/install -c
checking whether build environment is sane… yes
checking for a race-free mkdir -p… /usr/bin/mkdir -p
checking for gawk… gawk
checking whether make sets $(MAKE)… yes
checking whether make supports nested variables… yes
checking whether make supports the include directive… yes (GNU style)
checking for gcc… gcc
checking whether the C compiler works… yes
checking for C compiler default output file name… a.out
checking for suffix of executables…
checking whether we are cross compiling… no
checking for suffix of object files… o
checking whether the compiler supports GNU C… yes
checking whether gcc accepts -g… yes
checking for gcc option to enable C11 features… none needed
checking whether gcc understands -c and -o together… yes
checking dependency style of gcc… gcc3
checking how to run the C preprocessor… gcc -E
checking for g++… g++
checking whether the compiler supports GNU C++… yes
checking whether g++ accepts -g… yes
checking for g++ option to enable C++11 features… none needed
checking dependency style of g++… gcc3
checking how to run the C++ preprocessor… g++ -E
checking whether make sets $(MAKE)… (cached) yes
checking whether ln -s works… yes
checking build system type… x86_64-pc-linux-gnu
checking host system type… x86_64-pc-linux-gnu
checking for pkg-config… /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0… yes
checking for LIBUSB1… yes
checking that generated files are newer than configure… done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating cfg/config.h
config.status: executing depfiles commands
configure: WARNING: unrecognized options: --disable-werror
make[1]: Verzeichnis „/home/manjaro/Downloads/rkdeveloptool/src/rkdeveloptool“ wird betreten
g++ -DHAVE_CONFIG_H -I. -I./cfg -Wall -Werror -Wno-format-truncation -Wextra -Wreturn-type -fno-strict-aliasing -D_FILE_OFFSET_BITS=64 -D_LARGE_FILE -I/usr/include/libusb-1.0 -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2,-D_GLIBCXX_ASSERTIONS -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -MT main.o -MD -MP -MF .deps/main.Tpo -c -o main.o main.cpp
g++ -DHAVE_CONFIG_H -I. -I./cfg -Wall -Werror -Wno-format-truncation -Wextra -Wreturn-type -fno-strict-aliasing -D_FILE_OFFSET_BITS=64 -D_LARGE_FILE -I/usr/include/libusb-1.0 -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2,-D_GLIBCXX_ASSERTIONS -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -MT crc.o -MD -MP -MF .deps/crc.Tpo -c -o crc.o crc.cpp
g++ -DHAVE_CONFIG_H -I. -I./cfg -Wall -Werror -Wno-format-truncation -Wextra -Wreturn-type -fno-strict-aliasing -D_FILE_OFFSET_BITS=64 -D_LARGE_FILE -I/usr/include/libusb-1.0 -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2,-D_GLIBCXX_ASSERTIONS -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -MT RKBoot.o -MD -MP -MF .deps/RKBoot.Tpo -c -o RKBoot.o RKBoot.cpp
g++ -DHAVE_CONFIG_H -I. -I./cfg -Wall -Werror -Wno-format-truncation -Wextra -Wreturn-type -fno-strict-aliasing -D_FILE_OFFSET_BITS=64 -D_LARGE_FILE -I/usr/include/libusb-1.0 -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2,-D_GLIBCXX_ASSERTIONS -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -MT RKComm.o -MD -MP -MF .deps/RKComm.Tpo -c -o RKComm.o RKComm.cpp
g++ -DHAVE_CONFIG_H -I. -I./cfg -Wall -Werror -Wno-format-truncation -Wextra -Wreturn-type -fno-strict-aliasing -D_FILE_OFFSET_BITS=64 -D_LARGE_FILE -I/usr/include/libusb-1.0 -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2,-D_GLIBCXX_ASSERTIONS -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -MT RKDevice.o -MD -MP -MF .deps/RKDevice.Tpo -c -o RKDevice.o RKDevice.cpp
mv -f .deps/crc.Tpo .deps/crc.Po
g++ -DHAVE_CONFIG_H -I. -I./cfg -Wall -Werror -Wno-format-truncation -Wextra -Wreturn-type -fno-strict-aliasing -D_FILE_OFFSET_BITS=64 -D_LARGE_FILE -I/usr/include/libusb-1.0 -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2,-D_GLIBCXX_ASSERTIONS -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -MT RKImage.o -MD -MP -MF .deps/RKImage.Tpo -c -o RKImage.o RKImage.cpp
mv -f .deps/RKComm.Tpo .deps/RKComm.Po
g++ -DHAVE_CONFIG_H -I. -I./cfg -Wall -Werror -Wno-format-truncation -Wextra -Wreturn-type -fno-strict-aliasing -D_FILE_OFFSET_BITS=64 -D_LARGE_FILE -I/usr/include/libusb-1.0 -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2,-D_GLIBCXX_ASSERTIONS -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -MT RKLog.o -MD -MP -MF .deps/RKLog.Tpo -c -o RKLog.o RKLog.cpp
mv -f .deps/RKBoot.Tpo .deps/RKBoot.Po
g++ -DHAVE_CONFIG_H -I. -I./cfg -Wall -Werror -Wno-format-truncation -Wextra -Wreturn-type -fno-strict-aliasing -D_FILE_OFFSET_BITS=64 -D_LARGE_FILE -I/usr/include/libusb-1.0 -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2,-D_GLIBCXX_ASSERTIONS -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -MT RKScan.o -MD -MP -MF .deps/RKScan.Tpo -c -o RKScan.o RKScan.cpp
mv -f .deps/RKDevice.Tpo .deps/RKDevice.Po
mv -f .deps/RKImage.Tpo .deps/RKImage.Po
mv -f .deps/RKLog.Tpo .deps/RKLog.Po
mv -f .deps/RKScan.Tpo .deps/RKScan.Po
mv -f .deps/main.Tpo .deps/main.Po
g++ -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2,-D_GLIBCXX_ASSERTIONS -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -Wl,-O1,–sort-common,–as-needed,-z,relro,-z,now -o rkdeveloptool main.o crc.o RKBoot.o RKComm.o RKDevice.o RKImage.o RKLog.o RKScan.o -lusb-1.0
make[1]: Verzeichnis „/home/manjaro/Downloads/rkdeveloptool/src/rkdeveloptool“ wird verlassen
==> Betrete fakeroot Umgebung…
==> Beginne package()…
make[1]: Verzeichnis „/home/manjaro/Downloads/rkdeveloptool/src/rkdeveloptool“ wird betreten
make[2]: Verzeichnis „/home/manjaro/Downloads/rkdeveloptool/src/rkdeveloptool“ wird betreten
make[2]: Für das Ziel „install-data-am“ ist nichts zu tun.
/usr/bin/mkdir -p ‘/home/manjaro/Downloads/rkdeveloptool/pkg/rkdeveloptool/usr/bin’
/usr/bin/install -c rkdeveloptool ‘/home/manjaro/Downloads/rkdeveloptool/pkg/rkdeveloptool/usr/bin’
make[2]: Verzeichnis „/home/manjaro/Downloads/rkdeveloptool/src/rkdeveloptool“ wird verlassen
make[1]: Verzeichnis „/home/manjaro/Downloads/rkdeveloptool/src/rkdeveloptool“ wird verlassen
==> Säubere Installation…
-> Entferne libtool Dateien…
-> Bereinige ungewollte Dateien…
-> Entferne statische Bibliotheken…
-> Entferne unnötige Symbole aus Binär-Dateien und Bibliotheken…
-> Komprimiere Man-Pages und Info-Seiten…
==> Prüfe auf Paketierungsprobleme…
==> Erstelle Paket “rkdeveloptool”…
-> Erstelle .PKGINFO Datei…
-> Erstelle .BUILDINFO Datei…
-> Füge install Datei hinzu…
-> Erstelle .MTREE-Datei…
-> Komprimiere Paket…
==> Verlasse fakeroot Umgebung.
==> Beendete Erstellung: rkdeveloptool 69-1 (Do 08 Jul 2021 06:33:45 CEST)
(Sorry, it’s English and German mixed up. My time for it is running away for now. Will have to go on after some time.)
To the Radxa team: Please think about making the error message more precise.

Try to perform this command from root before using rkdeveloptool:
echo -1 > /sys/module/usbcore/parameters/autosuspend

It helped me to avoid the same failure on Dell laptop under Ubuntu 20.04.
Linux dell 5.14.0-1054-oem #61-Ubuntu SMP Fri Oct 14 13:05:50 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

1 Like

Thanks! I’m trying to write the bootloader to the SPI flash of my Rock 5 Model B and this worked.

I’m running Fedora: Linux tophat 6.0.11-200.fc36.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Dec 2 20:38:11 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

This guy is a genius