Controller Buttons Not Working On Tecno Pocket Go

This is a new handheld and there is pretty much no support for it yet. It's a PC and controller in one unit, and you have to get video out through the type C port. I have bazzite-deck installed, and most things are working fine, but none of the controller buttons work at all. I tried using input-remapper but the controller appears as a mouse and the app doesn't respond when I press any of the buttons. I'd love some help to get this working since it's the YouTube video I'm currently working on lsusb -v output attached. I believe the controller is Bus 003 Device 002: ID 2993:2001 TECNO Controller
119 Replies
antheas
antheas3w ago
Well we will have to fix that You'll have to do some sleuthing on windows
Bringus Studios
Bringus StudiosOP3w ago
Sure thing I can do whatever you need
antheas
antheas3w ago
Essentially we need a Wireshark USB recording of you opening the vendor app that switches it to gamepad mode So we can isolate that command Then run some Linux commands to figure out what those 2 extra vendor buttons do And that's it
Bringus Studios
Bringus StudiosOP3w ago
Sweet I'll try and get that
Bringus Studios
Bringus StudiosOP3w ago
There is an additional button on the bottom as well and a three-way switch but I still need to figure out what those actually do
No description
antheas
antheas3w ago
What does it do in windows? We have some Linux commands for you to play with hhd.contrib evdev will let you see the buttons each device emits. But they have to be buttons Then hhd.contrib hidraw will show the hid events they emit Might have to add sudo Since the device acts like a keyboard they will be keyboard events for now for most buttons
Bringus Studios
Bringus StudiosOP3w ago
I see why it shows up as a mouse now lol
No description
Bringus Studios
Bringus StudiosOP3w ago
Pressing it doesn't do anything to switch it in linux unfortunately Let me try these bazzite@bazzite:~$ hhd.contrib evdev Available Devices with the Current Permissions - device /dev/input/event1, name "AT Translated Set 2 keyboard", phys "isa0060/serio0/input0", uniq "" - device /dev/input/event5, name "Logitech G502 HERO Gaming Mouse", phys "usb-0000:c5:00.4-1.3/input0", uniq "0274384D3038" - device /dev/input/event6, name "Logitech G502 HERO Gaming Mouse Keyboard", phys "usb-0000:c5:00.4-1.3/input1", uniq "0274384D3038" - device /dev/input/event14, name "Cherry GmbH Cherry TouchBoard", phys "usb-0000:c5:00.4-1.1/input0", uniq "" - device /dev/input/event15, name "Cherry GmbH Cherry TouchBoard", phys "usb-0000:c5:00.4-1.1/input1", uniq "" Enter device path (/dev/input/event# or #): I dont think any of these are the controller I'll try the top one though
antheas
antheas3w ago
At keyboard has the vendor buttons on the ayaneo for example And the volume buttons in general I would suggest using ssh But if it didn't do anything, where's the keyboard now?
Bringus Studios
Bringus StudiosOP3w ago
I am, it's wacky I have the device headless over wifi this is so bizarre lol
antheas
antheas3w ago
We need a rule/kernel patch for the controller to work after we figure out how to get it out of keyboard mode But that's simple I'll pull that up right now
Bringus Studios
Bringus StudiosOP3w ago
Ok I unplugged everything from it and now it's just device /dev/input/event1, name "AT Translated Set 2 keyboard", phys "isa0060/serio0/input0", uniq ""
antheas
antheas3w ago
Just make sure the keyboard button makes it a keyboard Do the keyboard events come from here? That'd be a first
Bringus Studios
Bringus StudiosOP3w ago
No change when hitting the button
antheas
antheas3w ago
Does it act like a keyboard though at all?
Bringus Studios
Bringus StudiosOP3w ago
Nope The only event that happens is when I hit the center button ┌─────────────────────────────────────────────────────────────────┐ │ 0.000s / EV_MSC (04) / MSC_SCAN (x004): 0x00DB │ │ 0.000s / EV_KEY (01) / KEY_LEFTMETA (x07d): pressed │ └ SYN ─ 21.855s ─ NaN Hz ─────────────────────────────────────┘ ┌─────────────────────────────────────────────────────────────────┐ │ 0.002s / EV_MSC (04) / MSC_SCAN (x004): 0x0038 │ │ 0.002s / EV_KEY (01) / KEY_LEFTALT (x038): pressed │ └ SYN ─ 21.859s ─ 237.9 Hz ─────────────────────────────────────┘ ┌─────────────────────────────────────────────────────────────────┐ │ 0.004s / EV_MSC (04) / MSC_SCAN (x004): 0x002A │ │ 0.004s / EV_KEY (01) / KEY_LEFTSHIFT (x02a): pressed │ └ SYN ─ 21.863s ─ 247.3 Hz ─────────────────────────────────────┘ ┌─────────────────────────────────────────────────────────────────┐ │ 0.007s / EV_MSC (04) / MSC_SCAN (x004): 0x003B │ │ 0.007s / EV_KEY (01) / KEY_F1 (x03b): pressed │ └ SYN ─ 21.867s ─ 237.2 Hz ─────────────────────────────────────┘ ┌─────────────────────────────────────────────────────────────────┐ │ 0.014s / EV_MSC (04) / MSC_SCAN (x004): 0x00DB │ │ 0.014s / EV_KEY (01) / KEY_LEFTMETA (x07d): released │ └ SYN ─ 21.872s ─ 197.4 Hz ─────────────────────────────────────┘ ┌─────────────────────────────────────────────────────────────────┐ │ 0.019s / EV_MSC (04) / MSC_SCAN (x004): 0x0038 │ │ 0.019s / EV_KEY (01) / KEY_LEFTALT (x038): released │ └ SYN ─ 21.877s ─ 221.4 Hz ─────────────────────────────────────┘ ┌─────────────────────────────────────────────────────────────────┐ │ 0.025s / EV_MSC (04) / MSC_SCAN (x004): 0x002A │ │ 0.025s / EV_KEY (01) / KEY_LEFTSHIFT (x02a): released │ └ SYN ─ 21.881s ─ 263.4 Hz ─────────────────────────────────────┘ ┌─────────────────────────────────────────────────────────────────┐ │ 0.029s / EV_MSC (04) / MSC_SCAN (x004): 0x003B │ │ 0.029s / EV_KEY (01) / KEY_F1 (x03b): released │ └ SYN ─ 21.885s ─ 237.5 Hz ─────────────────────────────────────┘
antheas
antheas3w ago
That's in the at keyboard Oh yea that's easy to map No event from the controller mode button? journalctl -b | fpaste get this one
Bringus Studios
Bringus StudiosOP3w ago
Nope no events from anything at all other than the center button https://paste.centos.org/view/96d03628
antheas
antheas3w ago
New USB device found, idVendor=2993, idProduct=2001, bcdDevice= 1.10 Product: TECNO Controller Here's the controller Needs an xpad rule sudo modprobe xpad && echo 2993 2001 | sudo tee /sys/bus/usb/drivers/xpad/new_id I'm looking for the vendor device Can't find it Found it Classic usb keyboard Use sudo for the hidraw command
Nov 04 10:52:18 bazzite kernel: input: TECNO Controller Keyboard as /devices/pci0000:00/0000:00:08.1/0000:c3:00.4/usb3/3-1/3-1:1.1/0003:2993:2001.0001/input/input2
Nov 04 10:52:18 bazzite systemd[1]: Finished dracut-cmdline.service - dracut cmdline hook.
Nov 04 10:52:18 bazzite systemd[1]: Starting dracut-pre-udev.service - dracut pre-udev hook...
Nov 04 10:52:19 bazzite systemd[1]: Finished dracut-pre-udev.service - dracut pre-udev hook.
Nov 04 10:52:19 bazzite systemd[1]: Starting systemd-udevd.service - Rule-based Manager for Device Events and Files...
Nov 04 10:52:19 bazzite kernel: input: TECNO Controller Mouse as /devices/pci0000:00/0000:00:08.1/0000:c3:00.4/usb3/3-1/3-1:1.1/0003:2993:2001.0001/input/input3
Nov 04 10:52:19 bazzite kernel: hid-generic 0003:2993:2001.0001: input,hidraw0: USB HID v1.11 Keyboard [ TECNO Controller] on usb-0000:c3:00.4-1/input1
Nov 04 10:52:19 bazzite systemd-sysctl[491]: Couldn't write 'fq' to 'net/core/default_qdisc', ignoring: No such file or directory
Nov 04 10:52:19 bazzite systemd-sysctl[491]: Couldn't write 'bbr' to 'net/ipv4/tcp_congestion_control', ignoring: No such file or directory
Nov 04 10:52:19 bazzite systemd[1]: Finished systemd-sysctl.service - Apply Kernel Variables.
Nov 04 10:52:19 bazzite kernel: hid-generic 0003:2993:2001.0002: hiddev96,hidraw1: USB HID v1.10 Device [ TECNO Controller] on usb-0000:c3:00.4-1/input2
Nov 04 10:52:18 bazzite kernel: input: TECNO Controller Keyboard as /devices/pci0000:00/0000:00:08.1/0000:c3:00.4/usb3/3-1/3-1:1.1/0003:2993:2001.0001/input/input2
Nov 04 10:52:18 bazzite systemd[1]: Finished dracut-cmdline.service - dracut cmdline hook.
Nov 04 10:52:18 bazzite systemd[1]: Starting dracut-pre-udev.service - dracut pre-udev hook...
Nov 04 10:52:19 bazzite systemd[1]: Finished dracut-pre-udev.service - dracut pre-udev hook.
Nov 04 10:52:19 bazzite systemd[1]: Starting systemd-udevd.service - Rule-based Manager for Device Events and Files...
Nov 04 10:52:19 bazzite kernel: input: TECNO Controller Mouse as /devices/pci0000:00/0000:00:08.1/0000:c3:00.4/usb3/3-1/3-1:1.1/0003:2993:2001.0001/input/input3
Nov 04 10:52:19 bazzite kernel: hid-generic 0003:2993:2001.0001: input,hidraw0: USB HID v1.11 Keyboard [ TECNO Controller] on usb-0000:c3:00.4-1/input1
Nov 04 10:52:19 bazzite systemd-sysctl[491]: Couldn't write 'fq' to 'net/core/default_qdisc', ignoring: No such file or directory
Nov 04 10:52:19 bazzite systemd-sysctl[491]: Couldn't write 'bbr' to 'net/ipv4/tcp_congestion_control', ignoring: No such file or directory
Nov 04 10:52:19 bazzite systemd[1]: Finished systemd-sysctl.service - Apply Kernel Variables.
Nov 04 10:52:19 bazzite kernel: hid-generic 0003:2993:2001.0002: hiddev96,hidraw1: USB HID v1.10 Device [ TECNO Controller] on usb-0000:c3:00.4-1/input2
I just boarded a plane so any questions you have now it's the time
Bringus Studios
Bringus StudiosOP3w ago
Oof ok I ran hidraw but I'm getting a ton of output too fast to read
Bringus Studios
Bringus StudiosOP3w ago
No description
Bringus Studios
Bringus StudiosOP3w ago
like this
antheas
antheas3w ago
Looks like gyro too 250hz Nice
Bringus Studios
Bringus StudiosOP3w ago
Oh yeah it changes when I move it around and press buttons Good to try it in steam then?
antheas
antheas3w ago
Uh which device is that
Bringus Studios
Bringus StudiosOP3w ago
/dev/hidraw1 2993:2001 Usage Page: 0xffa0 Usage: 0x0001 Names: ' ': 'TECNO Controller' there was also a hidraw0 but it didn't seem to do anything Wow it seems to be working in steam now There's still more to do to get the other buttons working but this helps a ton for now at least thank you so much
antheas
antheas3w ago
What fixed what we didn't do anything yet lol The xpad rule you mean? You need that every reboot otherwise you need to make a file
Bringus Studios
Bringus StudiosOP3w ago
LMAO all I know is that I ran sudo modprobe xpad && echo 2993 2001 | sudo tee /sys/bus/usb/drivers/xpad/new_id and now the gamepad portion works in steam True
antheas
antheas3w ago
/etc/udev/rules.d/90-techno.rules In this file Put this line
antheas
antheas3w ago
Replace with the values above You'll need to make the file Directory will exist unless I fumbled it
Bringus Studios
Bringus StudiosOP3w ago
So write the contents of the file that that github link goes to into 90-techno.rules? But replace the vid and pid of the msi claw line? Did that and rebooted and the gamepad still works so I assume that's what you wanted
antheas
antheas3w ago
You only need the line I pointed to Yea Well the other ones you already have so they do nothing Would be good to find the bottom two out of the four buttons Where they are The center you got already With that I'll be able to whip up some stuff and get them to work
Bringus Studios
Bringus StudiosOP3w ago
Sweet and that's what you needed wireshark in windows for right?
antheas
antheas3w ago
Actually if the controller works skip it Just figure out where they are with the commands I told you No display gyro. So it's only the USB one
Bringus Studios
Bringus StudiosOP3w ago
No description
Bringus Studios
Bringus StudiosOP3w ago
That 2 I highlighted is 0 when none are pressed, 1 when bottom left is pressed, 2 when bottom right is pressed, 3 when both are pressed additionally it's 4 when top left is pressed, 8 when top right is pressed, and c when both are pressed I'm also realizing that there are a lot of possible button combos for that lol Also the "1" three characters to the right correlates to the bottom "mouse/gamepad" button. 1 when unpressed and 3 when pressed
antheas
antheas2w ago
Have you heard of bit masks I'll give it a wirl tomorrow or wed The buttons that have 4 and 8 ie the top buttons are start and select right
Bringus Studios
Bringus StudiosOP2w ago
I believe so We're a bit over my head lol @antheas A refresher for whenever you have a chance to help me out with this again: Gamepad buttons/dpad/joysticks/rumble all work after this fix: https://discord.com/channels/1072614816579063828/1303077946600456294/1303089351781126174 Big middle button is an AT Keyboard device that does this when pressed: https://discord.com/channels/1072614816579063828/1303077946600456294/1303082533755424790 I was able to remap the big middle button with input-remapper-gtk, but the remapping only goes into effect after entering desktop mode. After that I can return to gaming mode and it works there as well, until I power off the device. The gyro, bottom left and bottom right middle buttons, rear "mouse/gamepad mode" button, and rear 3-way switch all trigger events in hidraw. However, none of them are present in Steam and don't do anything when pressed. Sleep mode does not work, it fully powers off the system Thanks again for the help, I'd be completely helpless on my own
antheas
antheas2w ago
Yeah I know how to fix all of those, I will try to spend a couple min on it tomorrow I'm just travelling journalctl -b | fpaste Because the old one expired
Bringus Studios
Bringus StudiosOP2w ago
I appreciate it! I'll get this in a few mins https://paste.centos.org/view/e3816178
antheas
antheas2w ago
cat /sys/devices/virtual/dmi/id/product_name TECNO AG01> ?
Bringus Studios
Bringus StudiosOP2w ago
Pocket Go Sorry discord didn't notify me
antheas
antheas2w ago
one sec curl https://raw.githubusercontent.com/hhd-dev/hhd/refs/heads/master/hhd_cmd.sh | bash run this and see if there are any errors and which buttons work
Bringus Studios
Bringus StudiosOP2w ago
Didn't seem to enable any additional buttons
antheas
antheas2w ago
One sec derp ok, try now
Bringus Studios
Bringus StudiosOP2w ago
No difference Would the buttons just show up in Steam if it worked? Like on this page
Bringus Studios
Bringus StudiosOP2w ago
No description
antheas
antheas2w ago
again? im just finding mistakes
antheas
antheas2w ago
at least the center button should work now and the buttons below start/select hopefully but theres probably at least 2 off by one errors there
Bringus Studios
Bringus StudiosOP2w ago
Nice let me reboot and see what we got
antheas
antheas2w ago
you need to run that command though for it to work ill give you another ocmmand after that to make it stay without a terminal found an off by one error
Bringus Studios
Bringus StudiosOP2w ago
How would I know? Pressing them in game mode doesn't do anything and there's no listings for them in the controller button config screen
antheas
antheas2w ago
they dont do anything one sec the center button will do stuff and you will get something in the log youll know when they start working try again
Bringus Studios
Bringus StudiosOP2w ago
Ok center button gives me a GENC INFO QAM Pressed 1. base.py:1322 OVRL INFO Executing overlay command: 'open_qam' __init__.py:330 Bottom right button is GENC INFO Keyboard button opens QAM. Nothing for bottom left or rear button or rear switch
antheas
antheas2w ago
didnt do rear bottom left should open a menu no logs
Bringus Studios
Bringus StudiosOP2w ago
Nothing in terminal when I press it
antheas
antheas2w ago
wait off by one lol exactly you wont see anything in the terminal but it should be the xbox button so it will open the left menu in steamui and do the steam deck stuff let me do the bottom left button... ok the left buttom keyboard thingy button should open the keyboard now when you are in xbox mode and be L4 in the other controllers if theres no off by one error
Bringus Studios
Bringus StudiosOP2w ago
ayyyy we got both of the middle buttons working now
antheas
antheas2w ago
ima be honest i have no clue what the slider should do but other than that thats all of them, try the bottom button and see if it opens the keyboard
Bringus Studios
Bringus StudiosOP2w ago
Yeah I wasn't sure either. Idk if it's possible use it as 3 separate buttons or something, but the active one would register as held all the time I imagine So in the terminal it says it's opening the steam keyboard, but it doesn't actually open in the deck ui at least. Let me get into a game
antheas
antheas2w ago
yeah i think you need to be in a game or desktop you can run it with ujust _hhd-dev now and it will make it run in the background after it looks stuck its done when you reboot it will clear its going to be in bazzite in a week or so and after that you will not need to sleep should also work
Bringus Studios
Bringus StudiosOP2w ago
Yup works great! Thanks a ton. Was about to ask about this lemee test it
antheas
antheas2w ago
sleeping with an external display connected is still not something that works 1000% but at least it should not shutdown now
Bringus Studios
Bringus StudiosOP2w ago
Hmmm yeah it just kinda black screens and then comes back to life after a while
antheas
antheas2w ago
does it do the animation?
Bringus Studios
Bringus StudiosOP2w ago
Yes
antheas
antheas2w ago
but before it did not right? journalctl -b | fpaste
Bringus Studios
Bringus StudiosOP2w ago
Ahhhhh I don't remember
antheas
antheas2w ago
if it shutdown it didnt gimme the logs, so i can check if there is something shaddy, but thats all the controller related stuff other than gyro
Bringus Studios
Bringus StudiosOP2w ago
Sorry I'm waiting for it to come back to life lol
antheas
antheas2w ago
oh that good, it kind of died this time
Bringus Studios
Bringus StudiosOP2w ago
There we go, takes a while
antheas
antheas2w ago
hey if it sleeps it sleeps, thats a win in my book
antheas
antheas2w ago
Freezing user space processes failed after 20.008 seconds (1 tasks refusing to freeze, wq_busy=0) could be something stupid does not want to say what it is sadc?
Bringus Studios
Bringus StudiosOP2w ago
No big deal sleep isn't really a deal breaker imo
antheas
antheas2w ago
sadc you run that?
Bringus Studios
Bringus StudiosOP2w ago
-bash: sadc: command not found
antheas
antheas2w ago
No description
Bringus Studios
Bringus StudiosOP2w ago
What the lol
antheas
antheas2w ago
task:sadc state:D stack:0 pid:6768 tgid:6768 ppid:6767 flags:0x00004006 well this is blocking it from sleep sudo pkill sadc
Bringus Studios
Bringus StudiosOP2w ago
Ah no that's not me At least I don't think so
antheas
antheas2w ago
never seen that before you probably dragged it in for some benchmark selinux killed it and it broke sleep actually not true thats fedora garbage that probably got dragged in by F41 @Kyle Gospo sysstat-collect is breaking sleep here
Bringus Studios
Bringus StudiosOP2w ago
sudo pkill sadc didn't seem to make a difference
antheas
antheas2w ago
yea selinux did a funny. Its too late here
Bringus Studios
Bringus StudiosOP2w ago
Ah
antheas
antheas2w ago
hopefully kyle can take over but its not a hardware issue a program got killed by selinux and stayed there ive never seen that in a log
Bringus Studios
Bringus StudiosOP2w ago
Very nice well for now it's working pretty damn well minus gyro thanks again for the help with this
antheas
antheas2w ago
we can also do gyro but youll have to open the sourcecode and swap around the axis until it matches you need at least like 20 tries to get it right so thats the only way for this device for other devices i have a little gui but since this is built into the controller i cant use that we will also have to figure out the scale
Bringus Studios
Bringus StudiosOP2w ago
Oooooof well I certainly don't care that much about gyro
antheas
antheas2w ago
in any case, a bit o a pain. Probably not worth it
Bringus Studios
Bringus StudiosOP2w ago
Yeah this is more than functional enough to continue filming with this thing
antheas
antheas2w ago
yup, gl. Hopefully over the next 2 days we will figure out why sadc broke selinux. You can also disable selinux i guess set it to permissive
Bringus Studios
Bringus StudiosOP2w ago
Btw how do I pronounce your username for the credit in the video
antheas
antheas2w ago
sudo rpm-ostree kargs --append=enforcing=0 this should fix sleep thats my name. Its like andreas but instead of a dr it has a th th as in thanks
Bringus Studios
Bringus StudiosOP2w ago
Ok I think I got it :engihappi: Lemee give that command a try
antheas
antheas2w ago
you will need to reboot after that command then just ujust _hhd-dev and youre good until you reboot again aight turning off the pc in 5 min, if you have any other questions drop them here TDP should work too incl. the steam slider
Bringus Studios
Bringus StudiosOP2w ago
You're good I think I'm all set up now 👍
antheas
antheas2w ago
steam controller emulation instead of xbox might look better on video youll also be able to chord the qam button which is nice aight night
TecN01R
TecN01R2w ago
This device has really peaked my interest
Bringus Studios
Bringus StudiosOP2w ago
It's really... something...
Bringus Studios
Bringus StudiosOP2w ago
No description
Bringus Studios
Bringus StudiosOP2w ago
I put a massive screen on it and it's 10 times better, the included AR glasses are not great
antheas
antheas2w ago
Can't wait to see the final vid "you might not like this but this is how the ideal bazzite handheld looks like"
antheas
antheas2w ago
I daily drive this it's worth it 1000%
No description
HikariKnight
HikariKnight2w ago
i swear each time i see that i think of this for some bizzare reason
No description
Bringus Studios
Bringus StudiosOP2w ago
I think my interest in PC handhelds today was spawned entirely out of that abomination from back in the day
HikariKnight
HikariKnight2w ago
oh you are familiar with the linx8 vision :clueless: i actually used it for gamestreaming, it worked fine as long as you clenched your ass and hoped for dear life that windows wouldnt run out of ram
Bringus Studios
Bringus StudiosOP2w ago
wait I think I was thinking of something else
Bringus Studios
Bringus StudiosOP2w ago
No description
Bringus Studios
Bringus StudiosOP2w ago
this one the razer edge pro
HikariKnight
HikariKnight2w ago
ah the predecesor
TecN01R
TecN01R2w ago
Lol what’s this? My first foray into this handheld gaming was taking my Surface Pro 6 and modifying some controller meant for much smaller tablets to expand and hold the surface, and then streaming from my PC. That was 2018. I was too early. Tempted to buy this and pair it with a different AR headset
Bringus Studios
Bringus StudiosOP2w ago
The xreal air 2s are pretty good
Want results from more Discord servers?
Add your server