OpenHarmony Device Connector en ArchLinux
Vamos a instalar la aplicación HDC (OpenHarmony Device Connector) en nuestro ArchLinux, lo que nos permitirá controlar dispositivos HarmonyOS desde nuestro PC, con funcionalidades similares al Android Debug Bridge (ADB) para Android.
Instalación de HDC
A fecha de publicación de este artículo no hay nada disponible en AUR. La única opción es acudir a los repositorios de OpenHarmony en GitHub. En este está disponible el código fuente de hdc y podremos compilarlo a partir del script build_standalone_linux_host.sh.
No obstante, al menos en ArchLinux no funciona directamente. Así, tuvimos que modificar el script anterior y agregar otro específico para ArchLinux.
$ git clone https://github.com/RafaGS/developtools_hdc_standard.git Nos basta con ejecutar el archivo build-arch.sh desde nuestro PC y se generará el ejecutable hdc_std.
Conexión al PC
La conexión típica es vía USB. Nuestro dispositivo se identificará como «HDC Device» al conectarse al PC.
[ 2109.445892] usb 1-3: new high-speed USB device number 9 using xhci_hcd[ 2109.659088] usb 1-3: New USB device found, idVendor=2207, idProduct=5000, bcdDevice= 4.40
[ 2109.659093] usb 1-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 2109.659096] usb 1-3: Product: "HDC Device"
[ 2109.659098] usb 1-3: Manufacturer: Cix
[ 2109.659100] usb 1-3: SerialNumber: XXXXXX
Para que nuestro dispositivo sea detectado, tendremos que añadir el archivo de reglas descargado en el conjunto anterior al directorio /etc/udev/rules.d.
# cp 51-hdc.rules /etc/udev/rules.d Reconectamos vía USB al dispositivo y usamos la aplicación hdc para confirmar la conexión.
$ ./hdc_std list targets -v XXXXXX USB Connected localhostPodemos probar que el dispositivo realmente responde a nuestras órdenes con un sencillo comando echo.
$ ./hdc_std shell "echo ok" okEn general, la opción shell nos permitirá ejecutar comandos CLI contra OpenHarmony.
$ ./hdc_std shell cat /proc/cpuinfo processor : 0model name : CIX P1 CD8160
BogoMIPS : 2000.00
Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp sve2 sveaes svepmull svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh bti ecv afp wfxt
CPU implementer : 0x41
CPU architecture: 8
CPU variant : 0x0
CPU part : 0xd81
CPU revision : 1
Instalación de aplicaciones
Vamos a instalar una aplicación nativa para HarmonyOS. Hemos elegido un navegador, pues la versión de OpenHarmony que probamos sobre una Orange Pi 6 Plus carecía de este tipo de aplicación.
Descargaremos el navegador Servo de GitHub.
$ wget https://github.com/servo/servo/releases/download/v0.0.5/servo-aarch64-linux-ohos.hap A continuación lo instalaremos con hdc.
$ ./hdc_std install servo-aarch64-linux-ohos.hap Nótese que las aplicaciones para este sistema operativo se distribuyen con la extensión hap.
Si accedemos al escritorio de nuestro sistema OpenHarmony veremos el icono de la aplicación recién añadida.
Observamos que se puede navegar perfectamente con esta aplicación.
Pruebas de rendimiento
Vamos a utilizar la versión de OpenHarmony que desplegamos en una Orange Pi 6 Plus e instalaremos en ella 7ZIP. Así, lo usaremos para comprobar su rendimiento sobre este sistema operativo.
Descargaremos una versión de 7ZIP compilada estáticamente para architectura ARM de 64 bits. Luego, la copiaremos a un directorio temporal de nuestro OpenHarmony.
$ ./hdc_std file send 7zzs /data/local/tmp/ FileTransfer finish, Size:3064544, File count = 1, time:135ms rate:22700.33kB/sLo siguiente será entrar en la propia shell de OpenHarmony.
$ ./hdc_std shell Nos movemos al directorio de descarga y ejecutamos sucesivamente 7zzs con los parámetros correspondientes para cada número de núcleos.
# cd /data/local/tmp # 7zzs b -mmt=1 # 7zzs b -mmt=2 # 7zzs b -mmt=4 # 7zzs b -mmt=8 # 7zzs b -mmt=12 Se obtienen estos resultados.
1 núcleo2 núcleos4 núcleos8 núcleos12 núcleosOrange Pi 6 Plus (compresión) 4089 (0%)8319 (-30,6%)9933 (-56,4%)21185 (-48,1%)37379 (-14,3%)Orange Pi 6 Plus (descompresión) 6350 (+47%)4022 (-52,6%)7939 (-52,8%) 15819 (-46,8%)23706 (-29,6%)Orange Pi 6 Plus (promedio)5221 (+24,8%)6170 (-39,7%)8936 (-54,9%)18502 (-47,6%)30542 (-20,9%)Nótese que, salvo para un núcleo, los resultados son peores que para Debian. Eso puede deberse sobre todo a los flags de compilación para cada versión de 7ZIP.
#hdc #OpenHarmony


