Bluetooth keyboard unusable
-
@Substring
I will proceed. What I found also, in /share/system/bluetooth there was a changed file bluetooth.tar. May it be that he unpack this to the SD-Card and overwrite older version ?
https://file.ac/Tg0VdgvZqgc/ -
@dragu this .tar holds paired bt devices. It's untar-ed to /var/lib/bluetooth, which is a tmpfs in RAM. Nothing is written to the sd
-
@Substring
What I forgot to say, if I configurate the Bluetooth keyboard in the popup menu, and on OK press A, he exit the menu and save configuration in es_input.cfg at the end. But at first touch of key he ask to reconfigurate again. So every keytouch brings inevitable up the configuration popup menu, if you execute it or if you interrupt with hotkey, no matter. If there is some img cache on the sd, I could understand. What I will make now is put again 4.1 from march with etcher on the card, I will inform you. -
@dragu your SSD is haunted
-
So, your keyboard is not listed as a pad, so probably it has some device id or i don't know what that makes ES believe it's not the keyboard that is already configured in ES to prevent such behaviour and leave a "one last chance" way to control ES.
Your support shows only 1 keyboard configured in ES ... D**n ... I don't want to look into ES code
-
@Substring
I was just reformatting my march sd card and burned again clean march version 4.1 on it, 4 lines to change for sound and ok. So, I first again started with internal space, as it is a fresh system. No problems with pairing and after the keyboard is functioning normally as before. When now I use SSD Disk Intenso as medium, call up Bluetooth selection, first delete all existing, after pairing again. Vlan, la vache a déf....
So, the problem comes with no doubt from the /share space. I already tried to overwrite with my backup. es_input,cfg es_settings.efg, no prob. But some files (87) he refuse to overwrite. (Write protection) So if there is a possibility to overwrite everything. Perhaps unplug and outside recalbox ? -
@dragu which files are "read-only" ? are they in us (
lsof
) ? -
@Substring
Problem resolved ! But there is a lag in ES somewhere.
What I did ?
I deleted the keyboard section from my saved es_input.cfg and copy es_input.cfg to the /share folder.
And oh wonder, he found new device "1byone Keyboard" and configurated correctly.
I downloaded the file again from recalbox and put back the deleted "Keyboard" lines at the beginning of es_input.cfg and loaded it up again.
Bingo.<?xml version="1.0"?> <inputList> <inputConfig type="keyboard" deviceName="Keyboard" deviceGUID="-1"> <input name="a" type="key" id="115" value="1" /> <input name="b" type="key" id="97" value="1" /> <input name="down" type="key" id="1073741905" value="1" /> <input name="left" type="key" id="1073741904" value="1" /> <input name="pagedown" type="key" id="1073741902" value="1" /> <input name="pageup" type="key" id="1073741899" value="1" /> <input name="right" type="key" id="1073741903" value="1" /> <input name="select" type="key" id="32" value="1" /> <input name="start" type="key" id="13" value="1" /> <input name="up" type="key" id="1073741906" value="1" /> </inputConfig> <inputConfig type="joystick" deviceName="GPIO Controller 1" deviceGUID="15000000010000000100000000010000"> <input name="a" type="button" id="1" value="1" /> <input name="b" type="button" id="0" value="1" /> <input name="hotkey" type="button" id="6" value="1" /> <input name="pagedown" type="button" id="5" value="1" /> <input name="pageup" type="button" id="4" value="1" /> <input name="select" type="button" id="6" value="1" /> <input name="start" type="button" id="7" value="1" /> <input name="x" type="button" id="2" value="1" /> <input name="y" type="button" id="3" value="1" /> <input name="down" type="axis" id="1" value="1" /> <input name="left" type="axis" id="0" value="-1" /> <input name="right" type="axis" id="0" value="1" /> <input name="up" type="axis" id="1" value="-1" /> </inputConfig> .............................................................. .................................... <inputConfig type="joystick" deviceName="USB gamepad " deviceGUID="030000001f08000001e4000010010000"> <input name="a" type="button" id="1" value="1" code="289" /> <input name="b" type="button" id="2" value="1" code="290" /> <input name="down" type="axis" id="1" value="1" code="1" /> <input name="hotkey" type="button" id="8" value="1" code="296" /> <input name="left" type="axis" id="0" value="-1" code="0" /> <input name="pagedown" type="button" id="5" value="1" code="293" /> <input name="pageup" type="button" id="4" value="1" code="292" /> <input name="right" type="axis" id="0" value="1" code="0" /> <input name="select" type="button" id="8" value="1" code="296" /> <input name="start" type="button" id="9" value="1" code="297" /> <input name="up" type="axis" id="1" value="-1" code="1" /> <input name="x" type="button" id="0" value="1" code="288" /> <input name="y" type="button" id="3" value="1" code="291" /> </inputConfig> <inputConfig type="joystick" deviceName="ipega Bluetooth Gamepad " deviceGUID="0500000049190000020400001b010000"> <input name="a" type="button" id="174" value="1" code="305" /> <input name="b" type="button" id="173" value="1" code="304" /> <input name="down" type="hat" id="0" value="4" code="16" /> <input name="hotkey" type="button" id="183" value="1" code="314" /> <input name="joystick1left" type="axis" id="0" value="-1" code="0" /> <input name="joystick1up" type="axis" id="1" value="-1" code="1" /> <input name="joystick2left" type="axis" id="2" value="-1" code="2" /> <input name="joystick2up" type="axis" id="3" value="-1" code="5" /> <input name="l2" type="button" id="181" value="1" code="312" /> <input name="left" type="hat" id="0" value="8" code="16" /> <input name="pagedown" type="button" id="180" value="1" code="311" /> <input name="pageup" type="button" id="179" value="1" code="310" /> <input name="r2" type="button" id="182" value="1" code="313" /> <input name="right" type="hat" id="0" value="2" code="16" /> <input name="select" type="button" id="183" value="1" code="314" /> <input name="start" type="button" id="184" value="1" code="315" /> <input name="up" type="hat" id="0" value="1" code="16" /> <input name="x" type="button" id="177" value="1" code="308" /> <input name="y" type="button" id="176" value="1" code="307" /> </inputConfig> <inputConfig type="joystick" deviceName="Usb Gamepad" deviceGUID="03000000c01100000055000011010000"> <input name="a" type="button" id="1" value="1" code="305" /> <input name="b" type="button" id="0" value="1" code="304" /> <input name="down" type="hat" id="0" value="4" code="16" /> <input name="hotkey" type="button" id="12" value="1" code="316" /> <input name="joystick1left" type="axis" id="0" value="-1" code="0" /> <input name="joystick1up" type="axis" id="1" value="-1" code="1" /> <input name="joystick2left" type="axis" id="2" value="-1" code="2" /> <input name="joystick2up" type="axis" id="3" value="-1" code="5" /> <input name="l2" type="button" id="6" value="1" code="310" /> <input name="l3" type="button" id="10" value="1" code="314" /> <input name="left" type="hat" id="0" value="8" code="16" /> <input name="pagedown" type="button" id="5" value="1" code="309" /> <input name="pageup" type="button" id="4" value="1" code="308" /> <input name="r2" type="button" id="7" value="1" code="311" /> <input name="r3" type="button" id="11" value="1" code="315" /> <input name="right" type="hat" id="0" value="2" code="16" /> <input name="select" type="button" id="8" value="1" code="312" /> <input name="start" type="button" id="9" value="1" code="313" /> <input name="up" type="hat" id="0" value="1" code="16" /> <input name="x" type="button" id="3" value="1" code="307" /> <input name="y" type="button" id="2" value="1" code="306" /> </inputConfig> <inputConfig type="joystick" deviceName="Ultimarc IPAC 2 Ultimarc IPAC 2" deviceGUID="0300000009d200002004000011010000"> <input name="a" type="button" id="2" value="1" code="306" /> <input name="b" type="button" id="1" value="1" code="305" /> <input name="down" type="hat" id="0" value="4" code="16" /> <input name="hotkey" type="button" id="10" value="1" code="314" /> <input name="l2" type="button" id="6" value="1" code="310" /> <input name="left" type="hat" id="0" value="8" code="16" /> <input name="pagedown" type="button" id="5" value="1" code="309" /> <input name="pageup" type="button" id="4" value="1" code="308" /> <input name="r2" type="button" id="7" value="1" code="311" /> <input name="right" type="hat" id="0" value="2" code="16" /> <input name="select" type="button" id="9" value="1" code="313" /> <input name="start" type="button" id="8" value="1" code="312" /> <input name="up" type="hat" id="0" value="1" code="16" /> <input name="x" type="button" id="0" value="1" code="304" /> <input name="y" type="button" id="3" value="1" code="307" /> </inputConfig> <inputConfig type="joystick" deviceName="ELAN TURBO PAD" deviceGUID="03000000341a00000302000010010000"> <input name="a" type="button" id="2" value="1" code="306" /> <input name="b" type="button" id="1" value="1" code="305" /> <input name="down" type="hat" id="0" value="4" code="16" /> <input name="hotkey" type="button" id="12" value="1" code="316" /> <input name="joystick1left" type="axis" id="0" value="-1" code="0" /> <input name="joystick1up" type="axis" id="1" value="-1" code="1" /> <input name="joystick2left" type="axis" id="2" value="-1" code="2" /> <input name="joystick2up" type="axis" id="3" value="-1" code="5" /> <input name="l2" type="button" id="6" value="1" code="310" /> <input name="l3" type="button" id="10" value="1" code="314" /> <input name="left" type="hat" id="0" value="8" code="16" /> <input name="pagedown" type="button" id="5" value="1" code="309" /> <input name="pageup" type="button" id="4" value="1" code="308" /> <input name="r2" type="button" id="7" value="1" code="311" /> <input name="r3" type="button" id="11" value="1" code="315" /> <input name="right" type="hat" id="0" value="2" code="16" /> <input name="select" type="button" id="8" value="1" code="312" /> <input name="start" type="button" id="9" value="1" code="313" /> <input name="up" type="hat" id="0" value="1" code="16" /> <input name="x" type="button" id="3" value="1" code="307" /> <input name="y" type="button" id="0" value="1" code="304" /> </inputConfig> <inputConfig type="joystick" deviceName="DragonRise Inc. Generic USB Joystick " deviceGUID="03000000790000000600000010010000"> <input name="a" type="button" id="4" value="1" code="292" /> <input name="b" type="button" id="3" value="1" code="291" /> <input name="down" type="axis" id="3" value="1" code="3" /> <input name="hotkey" type="button" id="8" value="1" code="296" /> <input name="left" type="axis" id="0" value="-1" code="0" /> <input name="pagedown" type="button" id="5" value="1" code="293" /> <input name="pageup" type="button" id="2" value="1" code="290" /> <input name="right" type="axis" id="0" value="1" code="0" /> <input name="select" type="button" id="10" value="1" code="298" /> <input name="start" type="button" id="9" value="1" code="297" /> <input name="up" type="axis" id="3" value="-1" code="3" /> <input name="x" type="button" id="1" value="1" code="289" /> <input name="y" type="button" id="0" value="1" code="288" /> </inputConfig> <inputConfig type="joystick" deviceName="Microsoft X-Box 360 pad" deviceGUID="030000005e0400008e02000010010000"> <input name="a" type="button" id="1" value="1" code="305" /> <input name="b" type="button" id="0" value="1" code="304" /> <input name="down" type="axis" id="1" value="1" code="1" /> <input name="hotkey" type="button" id="12" value="1" code="318" /> <input name="l2" type="button" id="6" value="1" code="312" /> <input name="left" type="axis" id="0" value="-1" code="0" /> <input name="pagedown" type="button" id="5" value="1" code="311" /> <input name="pageup" type="button" id="4" value="1" code="310" /> <input name="r2" type="button" id="7" value="1" code="313" /> <input name="right" type="axis" id="0" value="1" code="0" /> <input name="select" type="button" id="8" value="1" code="314" /> <input name="start" type="button" id="9" value="1" code="315" /> <input name="up" type="axis" id="1" value="-1" code="1" /> <input name="x" type="button" id="3" value="1" code="308" /> <input name="y" type="button" id="2" value="1" code="307" /> </inputConfig> <inputConfig type="joystick" deviceName="Gasia Co.,Ltd PS(R) Gamepad" deviceGUID="030000008f0e00000800000010010000"> <input name="a" type="button" id="1" value="1" code="289" /> <input name="b" type="button" id="2" value="1" code="290" /> <input name="down" type="axis" id="1" value="1" code="1" /> <input name="hotkey" type="button" id="11" value="1" code="299" /> <input name="l2" type="button" id="6" value="1" code="294" /> <input name="left" type="axis" id="0" value="-1" code="0" /> <input name="pagedown" type="button" id="5" value="1" code="293" /> <input name="pageup" type="button" id="4" value="1" code="292" /> <input name="r2" type="button" id="7" value="1" code="295" /> <input name="right" type="axis" id="0" value="1" code="0" /> <input name="select" type="button" id="8" value="1" code="296" /> <input name="start" type="button" id="9" value="1" code="297" /> <input name="up" type="axis" id="1" value="-1" code="1" /> <input name="x" type="button" id="0" value="1" code="288" /> <input name="y" type="button" id="3" value="1" code="291" /> </inputConfig> <inputConfig type="joystick" deviceName="1byone Keyboard" deviceGUID="05000000e8040000217000001b010000"> <input name="a" type="button" id="29" value="1" code="30" /> <input name="b" type="button" id="47" value="1" code="48" /> <input name="down" type="button" id="105" value="1" code="108" /> <input name="hotkey" type="button" id="45" value="1" code="46" /> <input name="left" type="button" id="102" value="1" code="105" /> <input name="right" type="button" id="103" value="1" code="106" /> <input name="select" type="button" id="56" value="1" code="57" /> <input name="start" type="button" id="27" value="1" code="28" /> <input name="up" type="button" id="100" value="1" code="103" /> <input name="x" type="button" id="44" value="1" code="45" /> <input name="y" type="button" id="43" value="1" code="44" /> </inputConfig> </inputList>
Thanks for your help in this stressfull times.
-
@dragu I do not understand the difference with what I suggested in https://forum.recalbox.com/post/70701
-
Hi,
do you work in administration or in private business? I was making IT for over 20 years in early times.
You suggested to replace es_input.cfg by es_input.cfg from /share_init, what I did at this moment. But in the share_init file, there is already a keyboard section inside, so it cannot resolve the problem. Only delete from this section make him search correctly for bluetooth keyboard, even as he define it as "Joystick". So deleting is only solution. -
@Substring
Small aftermath. The 1byone keyboard was in the definition above very choppy, so I edit the file, replacing "joystick" by "keyboard" and also all the lines with key instead button from fix keyboard, now working perfect again. -
I do work in IT I've done almost any job regarding IT
-
@dragu d**n i found the bug ! My bad : the code that creates udev rules for 8bitdo pads was triggered for ANY bt device !
-
@Substring
Congrat ! And it was new code from march version up, or also before inside ?
Anyway, till bugfix with manual editing of es_input.cfg, the problem can be resolved. But great. -
@Substring
There is one problem that I still have. Without the keyboard, he declare USB Dragonrise as controller 0 and 1. When I just switch on my keyboard, and the bluetooth connection was not lost, everything ok. But if I must pair the keyboard again (what will change nothing in es_input.cfg), he will declare my keyboard as controller 0, and the USB Dragonrise as controller 1 and 2.
What makes that DOS games are not working anymore because in the Dosbox keymapper you have wrong id. Just for more info. -
@dragu We have no power on the pad ordering. In your case, you should remove the udev rule for your keyboard in
/recalbox/share/system/udev/rules.d/99-8bitdo.rules
which erronously forces your keyboard as a gamepad. The next update won't treat any BTdevice as a 8bitdo controller ... my bad -
@Substring
It's gone, thanks. Normal, most software has to much lines