Raspberry Pi 4

For information, Recalbox IS NOT compatible with Raspberry Pi 4 yet.
Pour information, Recalbox N'EST PAS encore compatible avec le Raspberry Pi 4.

The Recalbox Team.

Recalbox 6.1 y buildroot



  • Hola, el motivo de mi post es que estoy tanteando pasar a la ultima version de Recalbox. Actualmente estoy en la version 4.1 y estoy bien con ella, pero tambien me gustaria tener la ultima version de Kodi. Pero lo que mas me hace dar el paso, es que cuando quiero jugar en red con otros o unirme a sus juegos, el core de mi recalbox, no coincide con el de la mayoria y creo que tampoco pueden unirse a la mia con el core que tengo. Problema, que necesito instalar el adaptador bluetooh que vengo usando, pues es el que mejor soporta la conexion de dos o mas mandos inalambricos, pues ya en el pasado, tuve muchos quebraderos de cabeza con el bluetooh nativo del raspberry y me vi forzado a esta opcion. Pude instalar el adaptador con mucha ayuda de los compañeros del foro y bastante paciencia. La cosa es que, veo que para que vuelva a conseguir eso, la version del Recalbox tiene que tener un "buildroot package" que es lo que me permite instalar desde ssh los drivers aptos para linux. Entonces, he aqui la pregunta, ¿hay algun modo de conseguir Recalbox 6.1 con buildroot de linux o tengo alguna alternativa de instalar drivers de manera local con alguna clase de comando? Porque, actualizar Recalbox 4.1 a la ultima version ¿es posible?.


  • Local Moderator

    @fullskull
    No es posible actualizar de la versión 4.1 a la 6.1.1, debe volver a realizar la instalación desde el principio.
    No sé de qué "buildroot package" estás hablando, pero creo que la mejor opción es que hagas una copia de seguridad completa de tu imagen (con Win32DiskImager, por ejemplo) y luego hagas una instalación limpia de la última versión estable y pruebes tu bluetooth
    Si no funciona, será mejor que intentes rehacer lo que hiciste en la última versión, y si no puedes, pide ayuda.
    En el peor de los casos, tiene guardada la copia de seguridad de la versión 4.1, y depende de usted decidir si desea volver a la versión anterior o mantener la versión actualizada.



  • Antes de nada, gracias por tu respuesta. Bueno, te comento, el OS de Recalbox es una version minimalista de Linux al que le ha sido puesta lo que es la el emulestation. Esto quiere decir que, por lo que a la parte linux se refiere, no tiene posibilidad de instalar, pues para ello se necesita el "apt-get" y eso solo es posible añadiendole el "buildroot package" que es un paquete que incluye instalador y otras funciones basicas de linux. Por alguna razon, yo en la version 4.1 pude insertarle el firmware del adaptador de bluetooh que estoy usando. Lo malo, que emplee tantas vias y tantas opciones que la unica que apunto "mi yo del pasado" en un block de notas fue este enlace:
    https://forum.recalbox.com/topic/15332/asus-400-bt-como-lo-instalo/6
    No detalle mas informacion, supongo fui sobre seguro con eso de que Recalbox se iria actualizandose en el futuro e ir incluyendo mejoras de compatibilidad y drivers. Pero, segun he podido probar, la version 6.1 sigue igual de terca con eso de reconocer adaptadores externos. Mi opcion inicial; desde un portatil con SO Ubuntu cargar la micro SD con el RECALBOX 6.1 ya instalado y mediante FILEZILLA, conectarme en remoto a la Raspberry con el RECALBOX 4.1 ya cargado y respaldar de este ultimo la ruta "sys/bus" y sobreescribirla en el sistema de carpetas de RECALBOX 6.1. Pero esto no me ha funcionado. Luego he intentado enlazar uno de los mandos de manera normal sin tener encuenta el tema del adaptador y no lo reconoce si no lo pongo el mando en modo busqueda SWITCH (Modo para emparejamiento con Nintendo SWITCH) El mando es un 8bitdo SNES30 Pro. Estoy tratando de buscar otras alternativas para poder hacer que funcione el adaptador en esta version, pero muy a mi pesar, todas requieren del comando "apt-get". Por eso comento el tema del "buidroot". De momento hasta que no vea nada seguro no haria el salto, pero me interesa pasarme a la nueva version para jugar con otros en Netplay. Sí, en Recalbox 4.1, tengo Netplay tambien, pero al tener una version de core distinta a la del 6.1 la efectividad de emperajamiento con exito es la mayor parte de las veces nula. Asi que, resumiendo, si necesitaria ayuda, puesto que estoy encasillado y no se que de modo instalarle el driver del adaptador a sistema de Recalbox y que lo coja.



  • A ver...creo que he avanzado un poco en el tema. Ya se como insertar el firmware del adaptador. Desde Filezilla voy a la ruta de RECALBOX 6.1, cargado en mi raspberry: lib/firmware/brcm. Aqui pego el firmware y aplico algunos comandos para ver si algo a cambiado. A continuacion esto es lo que arroja:

    # dmesg | egrep -i 'blue|firm'
    [    0.070087] raspberrypi-firmware soc:firmware: Attached to firmware from 2019-03-27 15:45
    [    2.443400] Bluetooth: Core ver 2.22
    [    2.443460] Bluetooth: HCI device and connection manager initialized
    [    2.443475] Bluetooth: HCI socket layer initialized
    [    2.443483] Bluetooth: L2CAP socket layer initialized
    [    2.443502] Bluetooth: SCO socket layer initialized
    [    2.614111] Bluetooth: hci0: BCM: chip id 63
    [    2.615102] Bluetooth: hci0: BCM: features 0x07
    [    2.631134] Bluetooth: hci0: BCM20702A
    [    2.632114] Bluetooth: hci0: BCM20702A1 (001.002.014) build 0000
    [    2.981238] brcmfmac: brcmf_c_preinit_dcmds: Firmware version = wl0: Oct 23 2017 03:55:53 version 7.45.98.38 (r674442 CY) FWID 01-e58d219f
    [    4.871533] Bluetooth: hci0 command 0x303a tx timeout
    [   13.271513] Bluetooth: hci0: BCM: Patch command 303a failed (-110)
    [   15.351509] Bluetooth: hci0 command 0x0c03 tx timeout
    [   23.511506] Bluetooth: hci0: BCM: Reset failed (-110)
    [   25.591500] Bluetooth: hci0 command 0x0c03 tx timeout
    [   33.751517] Bluetooth: hci0: BCM: Reset failed (-110)
    [   40.997191] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
    [   40.997201] Bluetooth: BNEP filters: protocol multicast
    [   40.997216] Bluetooth: BNEP socket layer initialized
    [   45.549960] Bluetooth: HCI UART driver ver 2.3
    [   45.549975] Bluetooth: HCI UART protocol H4 registered
    [   45.549979] Bluetooth: HCI UART protocol Three-wire (H5) registered
    [   45.550172] Bluetooth: HCI UART protocol Broadcom registered
    

    En la fila 14, aparece el primer error. No se si es que no es capaz de cargar el archivo o que ni siquiera se cargo. Para ver la diferencia, voy a copiar el el resultado del comando aplicado en el RECALBOX 4.1 donde si esta inicializado el driver correctamente:

    # dmesg | egrep -i 'blue|firm'
    [    0.150750] raspberrypi-firmware soc:firmware: Attached to firmware from 2017-04-04 18:41
    [    2.456279] brcmfmac: brcmf_c_preinit_dcmds: Firmware version = wl0: Dec 15 2015 18:10:45 version 7.45.41.23 (r606571) FWID 01-cc4eda9c
    [    2.555163] Bluetooth: Core ver 2.21
    [    2.555226] Bluetooth: HCI device and connection manager initialized
    [    2.555242] Bluetooth: HCI socket layer initialized
    [    2.555251] Bluetooth: L2CAP socket layer initialized
    [    2.555269] Bluetooth: SCO socket layer initialized
    [    2.691871] Bluetooth: hci0: BCM: chip id 63
    [    2.707887] Bluetooth: hci0: BCM20702A
    [    2.708876] Bluetooth: hci0: BCM20702A1 (001.002.014) build 0000
    [    3.592019] Bluetooth: hci0: BCM20702A1 (001.002.014) build 1467
    [    3.608066] Bluetooth: hci0: Broadcom Bluetooth Device
    [   10.127642] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
    [   10.127662] Bluetooth: BNEP filters: protocol multicast
    [   10.127685] Bluetooth: BNEP socket layer initialized
    [   14.321543] Bluetooth: HCI UART driver ver 2.3
    [   14.321585] Bluetooth: HCI UART protocol H4 registered
    [   14.321591] Bluetooth: HCI UART protocol Three-wire (H5) registered
    [   14.321812] Bluetooth: HCI UART protocol BCM registered
    

    A partir de la linea 10 se puede ver que el firmware se reconoce correctamente, por lo que se descarta que el adaptador sea incompatible con el sistema RECALBOX. A partir de aqui es cuando necesitaria un poco de luz para el tema, que es lo que debo de cambiar o corregir y que pasos debo de dar para hacerlos. Espero esto pueda facilitar las cosas.


  • Local Moderator

    @fullskull Investigué sobre este adaptador "Asus 400 BT", veo varios temas con el mismo problema, ninguno con una solución, todos con diferentes distribuciones de Linux. y algunos directamente sobre raspberrypi (https://www.raspberrypi.org/forums/viewtopic.php?t=210445)
    Aparentemente, el problema es que el controlador no está optimizado para el kernel de Linux, creo que es un controlador muy obsoleto, esto justifica por qué funcionó en la versión 4.1 y no funciona en la versión actual.
    Pero, ¿este tipo de joystick no funciona bien en la versión 6.1.1 sin un adaptador?
    Desafortunadamente, creo que ahora es más fácil para usted adquirir otro adaptador Bluetooth, que intentar que funcione ...



  • Bien el problema es que sin el adaptador, mi raspberry no coge hasta 3 mandos. Entiendo que el bluetooth de serie que tiene la raspberry pi 3 no es tan potente como para soportarlo, pero si solo fuera eso, bueno. Pero no sincroniza los mandos, en todo caso lo tengo que hacer manualmente y tirando de comandos. Ninguno de los mandos que uso tienen adaptador propio. Yo lo que no entiendo es que, puede tener solucion, pero solo si al sistema recalbox le incluyen el buildroot y permita hacer una instalacion mas limpia. Es decir, no creo que sea por obsolescencia, teniendo en cuenta que, dispone de drivers actualizados para windows 10, de ahi que en otros foros comenten de extraer del comprimido del instalador un archivo concreto con terminacion hex, para renombrarlo y ponerlo en la ruta donde debe de leerse. Y aun haciendo eso, nada, sigue igual. ¿no hay algun modo de que los desarrolladores de Recalbox, lo incluyan y lo compatibilicen con el sistema? es que en la ruta de firmwares de bluetooth aparecen bastantes fabricantes. No se, pero ahora mismo la otra opcion que tengo es bajarme Retro-Pie y probar si funciona bajo ese sistema. Y en relacion a adquirir otro adaptador, con este llevo ya 3 y ya no se cual comprar que vaya a funcionar con esta y futuras versiones del sistema Recalbox. Estoy mirando a ver si existe un modulo interno que sea mas potente a ver si asi se resuelve el problema. Pero vamos, que es un rollo encontrarse con estos problemas. Y encima ahora dice que hay una actualizacion y al iniciarla salta un error, asi todo el rato. Pfff.


  • Local Moderator

    @fullskull en este enlace puede ver qué hardware es compatible, por lo que puede saber qué adaptadores funcionan:
    https://github.com/recalbox/recalbox-os/wiki/Compatibility-(EN)
    Acerca de la actualización, es un pequeño problema en el host, creo que para mañana se resolverá, no es un problema específicamente en su instalación.



  • Vale, voy a dar el tema por cerrado, pero sin solucion, puesto que he intentado varias cosas y nada ha servido. Por otro lado he visto que los mandos que tengo, si se les actualiza el firmware a la ultima version, Recalbox 6.1 los reconoce sin problema alguno y sin necesidad de adaptador. A partir de aqui ire viendo su rendimiento. Esto quiere decir que, ya he dado el salto a la ultima version, pero he visto cosas que hay que pulir, pero eso, ya es otro tema. Gracias por tu atencion y tu tiempo Zing.



  • Bueno, vuelvo a retomar este tema y he aqui el porque. Ayer estaba jugando, todo normal y sin problema alguno aparente, cuando derrepente y a la hora-hora y media de juego, el mando deja de reaccionar y veo que, aunque sigue encendido el piloto del mando no me deja moverme ni nada. Ignore el problema y reinicie recalbox. Pero para mi sorpresa, en el mismo intervalo de tiempo (a la hora y poco) volvio a suceder lo mismo. Pense que tal vez podria ser casualidad. Y lo intente por tercera vez, y !oh vaya¡ otra vez colgado. Total, asumi que la potencia del hardware de bluetooth de mi raspberry no podia rendir mejor. Por lo que, he vuelto a retomar lo de intentar hacer funcionar el adaptador usb bluetooth.

    Lo probe en el respaldo de prueba en el que hice la instalacion de Recalbox 6.1 y volvi a indagar como hacerlo correr. Y afortunadamente, lo he conseguido y voy a dar los pasos para hacerlo para que se quede ya por escrito.

    Una vez pasada "quemada la iso en la tarjeta sd" lo pondremos en la raspberry pi y dejaremos que Recalbox configure todo el sistema de archivos hasta que ya nos deje en el menu de seleccion de sistemas. Recomiendo no instalar aun el adaptador bluetooth hasta no haber hecho todo lo que sigue. Aqui lo que vamos a hacer es apagar recalbox desde su menu como hariamos normalmente. Ahora el siguiente paso es irnos a un ordenador que tenga sistema operativo linux, por ejemplo yo tengo una distro de ubuntu instalada en un equipo antiguo. El motivo de hacer esto, es que, se puede visualizar toda la estructura de archivos creada en la tarjeta sd compuesta de los tres subgrupos: BOOT, RECALBOX, SHARE. El grupo que vamos a trabajar es el que dice RECALBOX y dentro vamos a tener que dar permisos totales a cada ruta que se vaya a tocar para la implementacion del firmware al sistema. Para ello utilizaremos en todo momento el uso de "sudo" y el comando chmod 777. Y a continuacion los pasos:

    1.- Colocaremos en las siguientes rutas contenidas en la estructura RECALBOX:

    ruta: /lib/firmware/brcm
    ruta: /usr/lib/firmware/brcm

    El archivo .hcd del firmware del ASUS BT400 llamado (BCM20702A1-0b05-17cb.hcd) !Ojo¡ porque se dice que se use la ultima version del driver y a mi no me ha funcionado. Pero si la revision mas antigua que pesa unos 35kb. Os dejo el siguiente enlace para que lo podais descargar:
    Enlace del firmware BCM20702A1-0b05-17cb.hcd

      • El siguiente paso es crear una carpeta con el nombre "btusb" en la siguiente ruta:

    ruta: /sys/bus/usb/drivers

    He aqui lo dificil del asunto. La crearemos con el comando "mkdir" y pondremos "sudo" para tener privilegios de super usuario. Algo asi como:

    sudo mkdir /sys/bus/usb/drivers/btusb

    Si no lo permite, usaremos "chmod 777" para que nos de la totalidad de la ejecucion y escritura de la ruta y tambien con "sudo" por delante es decir:

    sudo chmod 777 /sys/bus/usb/drivers

    y repetimos el paso de añadir la carpeta "btusb".

    3.- Una vez la hayas creado tenemos que crear dentro de esa carpeta un archivo con nombre "new id" y dentro tendremos que poner ""0b05 17cb". Para ello invocaremos el siguiente comando:

    sudo echo "0b05 17cb" >> /sys/bus/usb/drivers/btusb/new_id

    Igualmente puede pasar que tengais problemas de privilegios de nuevo. Por lo que repetiremos los comandos del paso dos sobre esta ruta. Y si esto falla, otra opcion es hacerlo con "nano"

    sudo nano "0b05 17cb" >> /sys/bus/usb/drivers/btusb/new_id

      • Una vez hayamos hecho el paso anterior Ejecutaremos el siguiente comando:

    sudo nano /etc/default/bluetooth

    y añadiremos la siguiente informacion:

    HID2HCI_ENABLED=0
    HID2HCI_UNDO=0
    HIDD_ENABLED=1

    Y lo guardamos y cerramos el archivo.

    A partir de aqui, desmontamos las particiones de la tarjeta sd y lo llevamos a la raspberry. Y ahora si, antes de encenderla conectamos el adaptador bluetooth y lo conectamos a la red (no wifi ojo, directamente con un cable ethernet) Es mi recomendacion para no estar liandonos, que si a poner el wifi y la contraseña. Una vez, Recalbox este en la pantalla de sistemas. Nos iremos a otro ordenador que este en la misma red que la raspberry y ejecutamos un terminal remoto para comprobar que este todo correcto. Yo uso un equipo con windows y el programa TERMIUS, pero hay bastantes opciones para hacer esto. Lo que haremos aqui una vez conectemos con la raspberry, es ejecutar un comando para que nos muestre que el adaptador esta operativo y con el firmware cargado. Ejecutaremos el siguiente comando: "dmesg | egrep -i 'blue|firm'" y si todo esta correcto, nos tendria que salir el siguiente resultado:

    # dmesg | egrep -i 'blue|firm'
    [    0.070083] raspberrypi-firmware soc:firmware: Attached to firmware from 2019-03-27 15:45
    [    2.512520] Bluetooth: Core ver 2.22
    [    2.512577] Bluetooth: HCI device and connection manager initialized
    [    2.512592] Bluetooth: HCI socket layer initialized
    [    2.512599] Bluetooth: L2CAP socket layer initialized
    [    2.512618] Bluetooth: SCO socket layer initialized
    [    2.754105] Bluetooth: hci0: BCM: chip id 63
    [    2.755094] Bluetooth: hci0: BCM: features 0x07
    [    2.771144] Bluetooth: hci0: BCM20702A
    [    2.772105] Bluetooth: hci0: BCM20702A1 (001.002.014) build 0000
    [    3.244742] brcmfmac: brcmf_c_preinit_dcmds: Firmware version = wl0: Oct 23 2017 03:55:53 version 7.45.98.38 (r674442 CY) FWID 01-e58d219f
    [    3.863144] Bluetooth: hci0: BCM20702A1 (001.002.014) build 1467
    [    3.879275] Bluetooth: hci0: Broadcom Bluetooth Device
    [    8.177422] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
    [    8.177438] Bluetooth: BNEP filters: protocol multicast
    [    8.177465] Bluetooth: BNEP socket layer initialized
    [   12.907719] Bluetooth: HCI UART driver ver 2.3
    [   12.907737] Bluetooth: HCI UART protocol H4 registered
    [   12.907742] Bluetooth: HCI UART protocol Three-wire (H5) registered
    [   12.907964] Bluetooth: HCI UART protocol Broadcom registered
    

    desde las filas 10 a la 14 se muestra que el adaptador esta cargado y bajo el firmware que le hemos insertado.

    Aun asi estoy viendo de que manera sincronizar los mandos. Porque desde recalbox y emparejamiento de mando, aunque los detecta, al sincronizarlos da error de "no se puede emparejar" de momento estoy usando el comando bluetoothctl

    $bluetoothctl
    [bluetooth]# power on
    Changing power on succeeded
    [bluetooth]# discoverable on
    Changing discoverable on succeeded
    [bluetooth]# pairable on
    Changing pairable on succeeded
    [bluetooth]# agent NoInputNoOutput
    Agent registered
    [bluetooth]# default-agent 
    Default agent request successful
    

    para conectarlos y aunque va como un tiro. No consigo que, tras reiniciar recalbox se quede registrado para que se vuelva a reconectar el mando al encenderse. No se si es que es un comando aislado y no se inicia si no es de forma manual y necesita de script para que, cada vez que se encienda recalbox, se automatice en el boot, para que se empareje automaticamente nada mas encender el mando. Aqui ya necesitaria una mano para resolverlo. Pero espero que esta aportacion ayude aquellos usuarios que tengan el mismo adaptador que yo, a lograr que corra correctamente en Recalbox. Aunque, apuesto, que seguramente si se tratara de otro adaptador, los pasos serian los mismos solo que cambiando un par de cosillas.



Want to support us ?

109
Online

78.7k
Users

20.2k
Topics

148.0k
Posts