desktop

Respaldo de eMMC en tarjetas Realtek

Buenas, hay excepción con Realtek en cuanto a obtener un respaldo por comando y es que en el board Tpd.Rt2841.Pb775 existe comando para tal fin y se obtiene en un pendrive con formato NTFS, este board viene en el tv TCL 32S60A, hay que entrar al modo de servicio previamente para habilitar el UART, el comando es tcl_mmc_dump, para restaurar es tcl_mmc_restore .
P.D Aquí adjunto los pasos para acceder al modo de servicio.
 

Adjuntos

  • Menú de servicio TCL 32S60A.txt
    327 bytes · Visitas: 36
Última edición:
Método de copia e-MMC en tarjetas Realtek con procesador RTD2831P por comandos Linux

Les proporciono la primer entrega de esta información (Método 1)
El procedimiento fue realizado en una tarjeta P75-2831V6.0, usando TV Debugging Tool v1.9.0

Nota: Esta información es exclusiva para Foros de Electrónica y queda estrictamente prohibida su venta o divulgación con fines de lucro.
Si la comparten en redes sociales o cualquier otro sitio, se deberá hacer mención al autor y al sitio en donde fue obtenida.
 

Adjuntos

  • Rtk 2831 e-MMC Copy Método 1.rar
    241.2 KB · Visitas: 84
El proceso de formateo y copia es más recomendable en Linux, en Windows con DiskGenius.
No recomiendo usar otra aplicación para el formateo, porque probé varias y no funcionaron.
De igual forma, una vez realizado el respaldo de la e-MMC, los archivos se pueden copiar al disco duro con DiskGenius.

La intensión original era escribir una aplicación para Windows que realizara todo el proceso, pero solo pude obtener acceso total al sistema de archivos.
O sea, copiar, mover, renombrar, eliminar, etc, pero no formatear, este inconveniente ya no le daba sentido a la aplicación y decidí compartir la información como documento.
 
La interrogante anterior me surge de lo que citas en el documento:
Ya formateado el dispositivo USB en EXT4 se debe copiar la utilidad mmc_io_tool a la partición 0,
o sea, a la raíz de la imagen : pero solo con DISK GENIUS veo que se puede hacer, la dificultad radica que para hacer esta
acción hay que pagar licencia y de donde soy que es Cuba es prácticamente imposible por eso preguntaba si con otra aplicación se podía copiar
la utilidad mmc_io_tool a la partición 0.
 
Linux es gratis, pero me parece que tendré que continuar con la aplicación, aunque por lo menos realice el acceso a los archivos.
Con el método 2 ya no se usa mmc_io_tool, pero de todos modos se requiere DiskGenius si se desea copiar los archivos al disco duro.
 
¿Puedo instalar una máquina virtual Linux para solventar mi dificultad?
No lo he comprobado pero he visto comentarios sobre que no funciona al formatear, que se necesita un sistema Linux instalado.
Y de ser posible, ¿qué sistema Linux me aconseja y versión?
Ubuntu por simplicidad y la versión más reciente.
Hace un tiempo, en Windows instalé WSL2 con Ubuntu pero no funcionó, no encontraba los comandos, creo que algo no hice bien.

Formatting USB Flash memory for ubuntu ext4

 
Método de copia e-MMC en tarjetas Realtek con procesador RTD2831P por comandos Linux (Método 2)

Nota: Esta información es exclusiva para Foros de Electrónica y queda estrictamente prohibida su venta o divulgación con fines de lucro.
Si la comparten en redes sociales o cualquier otro sitio, se deberá hacer mención al autor y al sitio en donde fue obtenida.
Hace un tiempo, en Windows instalé WSL2 con Ubuntu pero no funcionó, no encontraba los comandos, creo que algo no hice bien.
Finalmente, tras una actualización de WSL2, logré que me aceptara los comandos, pero tampoco funcionó.
Código:
root@DESKTOP-Q0A7JVR:~# sudo mkfs -t ext4 \\.\PHYSICALDRIVE3 17179869184
mke2fs 1.46.5 (30-Dec-2021)
Creating regular file \.PHYSICALDRIVE3
Creating filesystem with 4294967296 4k blocks and 268435456 inodes
Filesystem UUID: 6af214cd-2dbf-4ce0-893c-dc88b8bd1263
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
        4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
        102400000, 214990848, 512000000, 550731776, 644972544, 1934917632,
        2560000000, 3855122432

Allocating group tables: done
mkfs.ext4: Attempt to write block to filesystem resulted in short write while zeroing block 4294967280 at end of filesystem
Writing inode tables: done
Creating journal (262144 blocks): done
Writing superblocks and filesystem accounting information:

done
El proceso tardó unos minutos y pensé que en verdad estaba formateando una memoria USB de 16 GB.
Al final del proceso fui a Mi PC para ver las unidades, presioné F5 para actualizar, y nada, la memoria seguía intacta en NTFS
Tal vez este proceso es virtual, y si es así, no sirve para este asunto.
 

Adjuntos

  • Rtk 2831 eMMC Copy (M2).pdf
    148.5 KB · Visitas: 39
Última edición:
Me parece que \\.\PHYSICALDRIVE3 deberías reemplazarlo por el dispositivo donde esté el disco y la partición de que se trate, por ejemplo /dev/sda2 o la que sea.
No sé que hace Windows con el WSL pero el directorio /dev debe estar.
 
Me parece que \\.\PHYSICALDRIVE3 deberías reemplazarlo por el dispositivo donde esté el disco y la partición de que se trate, por ejemplo /dev/sda2 o la que sea.
En teoría así debería ser y fue de las primeras cosas que intenté, pero únicamente recibía errores.
Con el Powershell se obtienen los dispositivos de dos formas:
1.- wmic diskdrive list brief
Respuesta:
Código:
Caption                           DeviceID            Model                             Partitions  Size
ADATA SU630 ATA Device            \\.\PHYSICALDRIVE2  ADATA SU630 ATA Device            3           240054796800
KINGSTON SA400S37480G ATA Device  \\.\PHYSICALDRIVE1  KINGSTON SA400S37480G ATA Device  1           480101368320
ST500DM002-1BD142 ATA Device      \\.\PHYSICALDRIVE0  ST500DM002-1BD142 ATA Device      1           500105249280
VendorCo ProductCode USB Device   \\.\PHYSICALDRIVE3  VendorCo ProductCode USB Device   1           31453470720

2.- GET-CimInstance -query "SELECT * from Win32_DiskDrive"
Respuesta:
Código:
DeviceID           Caption                          Partitions Size         Model
--------           -------                          ---------- ----         -----
\\.\PHYSICALDRIVE2 ADATA SU630 ATA Device           3          240054796800 ADATA SU630 ATA Device
\\.\PHYSICALDRIVE1 KINGSTON SA400S37480G ATA Device 1          480101368320 KINGSTON SA400S37480G ATA Device
\\.\PHYSICALDRIVE0 ST500DM002-1BD142 ATA Device     1          500105249280 ST500DM002-1BD142 ATA Device
\\.\PHYSICALDRIVE3 VendorCo ProductCode USB Device  1          31453470720  VendorCo ProductCode USB Device

Si lo intento con WSL con el comando -> sudo fdisk -l
Obtengo esto:
Código:
root@DESKTOP-Q0A7JVR:~# sudo fdisk -l
sudo: fdisk: command not found

Y bueno, intentando varias formas, finalmente encontré un vídeo donde mencionan que actualmente WSL2 no tiene soporte para unidades removibles.
El error es el siguiente:
Código:
El sistema no puede encontrar el controlador especificado.
Error code: Wsl/Service/AttachDisk/0x8007000f

Información que usé:
Using the Windows Subsystem for Linux to create an ext4 partition
Mount a Linux disk in WSL 2

Vuelvo a dejar por la paz al WSL.
 
Y si probás con una máquina virtual Linux??
No lo he probado y la verdad no lo quise hacer, la idea era hacer este proceso de una manera sencilla.
Escribí una aplicación y funciona perfectamente pero ocurre un problema que hasta el momento no le he podido encontrar la solución.
El programa utiliza esta librería: SharpExt4
El problema es que no funciona al distribuir la aplicación, solo funciona en la PC donde fue compilada.
La librería está diseñada para usar .NET 4.8 y está escrita en C++, la aplicación de ejemplo está escrita en C#
Al ejecutar la aplicación en la PC donde se distribuyó, aparece el clásico mensaje de error con la siguiente información:
System.IO.FileNotFoundException: No se puede cargar el archivo o ensamblado 'SharpExt4.dll' ni una de sus dependencias.
No se puede encontrar el módulo especificado.
El compilador crea la librería en la carpeta de salida y obviamente también en la carpeta del proyecto de la librería.
Ya la copié a System32 porque es x86, instalé las librerías en tiempo de ejecución de MSVC y no se corrige el error.
Cambié varias configuraciones de compilación, cree un paquete de distribución, etc, he hecho de todo y nada ha funcionado.
No sé si se requiera instalar .NET 3.1 y .NET 5 en la PC de destino, ya que en la sección "Compile" indica que se requieren. Más tarde lo probaré.

Por el momento la solución que encontré es Ext2Read/Ext2explore y es una aplicación gratuita.
Ext2Explore.jpg

No formatea discos ni unidades removibles, pero sí puede copiar los archivos.
Copying.jpg

Entonces pueden aplicar el método 2 que no requiere de mmc_io_tool.
 
Ext4eMMC v1.0

Aplicación para manipular los archivos de respaldo extraídos a una memoria USB con el sistema de archivos EXT4
Sirve para el método 1 y método 2
Si quieren realizar el respaldo en un directorio, el nombre debe ser "Output".
Por el momento no formatea a EXT4, pero sigo estudiando cómo hacerlo.
 

Adjuntos

  • Ext4eMMC v1.0.rar
    224.5 KB · Visitas: 43
Buenas, ya con la memoria previamente formateada con DISKGENIUS en EXT4 y al ejecutar Ext4eMMC v1.0 , se detecta la memoria con sistema de archivo RAW , ¿es normal que las teclas inferiores como Create eMMC_IO_Tool y demás se mantengan no habilitadas?
 

Adjuntos

  • 20240805_234742.jpg
    20240805_234742.jpg
    181.9 KB · Visitas: 12
  • 20240805_234805.jpg
    20240805_234805.jpg
    228.1 KB · Visitas: 13
  • 20240805_234917.jpg
    20240805_234917.jpg
    256.8 KB · Visitas: 11
Si la aplicación reconoce la memoria USB con formato RAW es porque el sistema de archivos EXT4 no es el correcto.
Está creado como FDD (Floppy Disk Drive)
Comprueba que la tabla de particiones sea MBR y la partición primaria.
Con DiskGenius puedes modificar esto seleccionando el dispositivo y no la partición.
Cuando la memoria ya ha sido usada por la tarjeta Realtek, en Mount Point aparecerá el nombre del punto de montaje.
Algo así: /mmnt/udisk/sda1
Nota: si el dispositivo sigue abierto por DiskGenius, tampoco podrá ser reconocido.

Y sí es normal que todos los botones estén deshabilitados porque el dispositivo seleccionado no es válido.
Cuando en File System aparezca como EXT4, al momento de seleccionar el dispositivo se habilitará el botón btnMount.jpg
Después de que la partición sea montada correctamente, se habilitarán los demás botones, dependiendo de qué archivos encuentre.
Ext4eMMC_Partition_Mounted.jpg

Si no puedes lograr corregir el problema, usa DISKPART para limpiar la unidad USB, crear una partición y después formatearla a EXT4 con DiskGenius.
DISKPART> list disk
DISKPART> select disk X
DISKPART> clean
DISKPART> create partition primary
DISKPART> exit

Adjunto unas fotos con las características de una memoria USB de 32 GB y un sistema de archivos EXT4 correcto.
 

Adjuntos

  • 32GB_Correct_EXT4_FS.jpg
    32GB_Correct_EXT4_FS.jpg
    161 KB · Visitas: 8
  • DiskInfo.jpg
    DiskInfo.jpg
    43.6 KB · Visitas: 7
Si la aplicación reconoce la memoria USB con formato RAW es porque el sistema de archivos EXT4 no es el correcto.
Está creado como FDD (Floppy Disk Drive)
Comprueba que la tabla de particiones sea MBR y la partición primaria.
Con DiskGenius puedes modificar esto seleccionando el dispositivo y no la partición.
Cuando la memoria ya ha sido usada por la tarjeta Realtek, en Mount Point aparecerá el nombre del punto de montaje.
Algo así: /mmnt/udisk/sda1
Nota: si el dispositivo sigue abierto por DiskGenius, tampoco podrá ser reconocido.

Y sí es normal que todos los botones estén deshabilitados porque el dispositivo seleccionado no es válido.
Cuando en File System aparezca como EXT4, al momento de seleccionar el dispositivo se habilitará el botón Ver el archivo adjunto 319551
Después de que la partición sea montada correctamente, se habilitarán los demás botones, dependiendo de qué archivos encuentre.
Ver el archivo adjunto 319560

Si no puedes lograr corregir el problema, usa Diskpart para formatear la unidad USB en FAT32 y después vuelve a formatear a EXT4 con DiskGenius.
Diskpart> list disk
Diskpart> select disk X
Diskpart> clean
Diskpart> create partition primary
Diskpart> format fs=fat32 quick
Diskpart> assign
Diskpart> exit

Adjunto unas fotos con las características de una memoria USB de 32 GB y un sistema de archivos EXT4 correcto.
Buenas, aplicando sus consejos le di formato al pendrive utilizando el CMD y se solucionó el problema, quería compartir más fotos del proceso pero tuve dificultades para subirlas, gracias.
 

Adjuntos

  • 20240806_134937.jpg
    20240806_134937.jpg
    282.4 KB · Visitas: 14
Como no me iba a dar por vencido con el WSL2, continué investigando y me encontré con este vídeo:
Antes de aplicar lo que se muestra en el vídeo, debemos instalar USBIPD-WIN.
Esta aplicación trabaja desde CMD o desde el PowerShell.

Ya con el Kernel compilado y configurado, realicé la prueba formateando una memoria USB de 4GB desde WSL.
WSL2 EXT4 Pendrive Format.jpg
Todo correcto, el formateo fue exitoso, pero queda resolver un detalle...
La partición es creada como "Active Hidden" y así no nos sirve.
Para resolver esto usamos la utilidad fdisk para hacerla visible.
En WSL tecleamos lo siguiente:
sudo fdisk /dev/sdd
Tecleamos la letra "p" para corroborar que estamos con el dispositivo correcto.
Correct Device.jpg
Tecleamos la letra "t" para seleccionar la partición.
Selected partition.jpg
Nos pedirá que escribamos el código Hex para cambiar el tipo de partición.
Si tecleamos "L" nos mostrará una lista con los códigos y alias.
fdisk Hex Codes.jpg
El 0x83 es el que debemos seleccionar, así que tecleamos "83"
Change to Linux.jpg
Escribimos los cambios tecleando "w" y la unidad quedaría lista.
Mounted.jpg

Los comandos para adjuntar los dispositivos USB a WSL con USBIPD se indican en la página.
En mi caso, el BUSID 3-4:
Attached.jpg

Adjunto el comando correcto para la descarga del Kernel en un archivo de texto, porque si lo copian desde los comandos mostrados en la descripción del vídeo, les dará error pidiendo nombre de usuario y contraseña.
Espero que esta información les sea de utilidad, ya que es manualmente gratis y desde Windows 10 y 11 con WSL2
 

Adjuntos

  • Kernel.txt
    156 bytes · Visitas: 4
Solución a permisos de ejecución en tarjeta Realtek (Respaldo con mmc_io_tool)
Escribimos los cambios tecleando "w" y la unidad quedaría lista.
Nota importante: podría suceder que se requiera establecer permisos de ejecución a la utilidad mmc_io_tool.
El error mostrado cuando se ejecuta el comando por consola será el siguiente:
Permision denied.jpg
Para solucionar este error, escribimos este comando:
chmod +x mmc_io_tool

Con esto ya podremos ejecutar los comandos para la utilidad mmc_io_tool sin inconvenientes.


Conexión en puertos superiores al COM7
Más tarde probaré la conexión en puertos superiores al COM7 con el CH340
Probé el CH340, el CH341A y el CP210x en los puertos COM29, COM30 y COM31 respectivamente.
Con ningún dispositivo hubo problema.
PD: ya como última prueba conecté un FT232RL, lo cambié al COM20 y TVDT v1.9.0 se conectó sin problemas.
Adjunto las capturas de conexión.
 

Adjuntos

  • CH340.jpg
    CH340.jpg
    10.9 KB · Visitas: 3
  • CH340-COM29.jpg
    CH340-COM29.jpg
    111.2 KB · Visitas: 3
  • CP210x-COM31.jpg
    CP210x-COM31.jpg
    114.9 KB · Visitas: 4
  • CP210x.jpg
    CP210x.jpg
    13.3 KB · Visitas: 2
  • CH341A-COM30.jpg
    CH341A-COM30.jpg
    111.5 KB · Visitas: 2
  • CH341A.jpg
    CH341A.jpg
    11.6 KB · Visitas: 2
  • FT232RL.jpg
    FT232RL.jpg
    44.9 KB · Visitas: 4
  • FT232RL-COM20.jpg
    FT232RL-COM20.jpg
    110.3 KB · Visitas: 4
  • Win11.jpg
    Win11.jpg
    17.4 KB · Visitas: 3
Atrás
Arriba