Neo Geo X USB Controller

Get the path with udevadm monitor

Lakka:~ # udevadm monitor monitor will print the received events for: UDEV - the event which udev sends out after rule processing KERNEL - the kernel uevent KERNEL[4867.854885] add /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2 (usb) KERNEL[4867.860638] add /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0 (usb) KERNEL[4867.871062] add /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/0003:1292:4E47.0006 (hid) KERNEL[4867.872723] add /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/0003:1292:4E47.0006/input/input4 (input) KERNEL[4867.873631] add /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/0003:1292:4E47.0006/input/input4/js1 (input) KERNEL[4867.874359] add /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/0003:1292:4E47.0006/input/input4/event1 (input) KERNEL[4867.875083] add /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/0003:1292:4E47.0006/hidraw/hidraw1 (hidraw) UDEV [4867.879696] add /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2 (usb) UDEV [4867.884418] add /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0 (usb) UDEV [4867.888297] add /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/0003:1292:4E47.0006 (hid) UDEV [4867.892288] add /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/0003:1292:4E47.0006/hidraw/hidraw1 (hidraw) UDEV [4867.896968] add /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/0003:1292:4E47.0006/input/input4 (input) UDEV [4867.904990] add /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/0003:1292:4E47.0006/input/input4/js1 (input) UDEV [4867.984413] add /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/0003:1292:4E47.0006/input/input4/event1 (input)


it works using this path : udevadm info -a -p /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/0003:1292:4E47.0006/input/input4

here is the output :

Udevadm info starts with the device specified by the devpath and then walks up the chain of parent devices. It prints for every device found, all possible attributes in the udev rules key format. A rule to match, can be composed by the attributes of the device and the attributes from one single parent device. looking at device ‘/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0 /0003:1292:4E47.0006/input/input4’: KERNEL==“input4” SUBSYSTEM==“input” DRIVER=="" ATTR{name}==“TOMMO NEOGEOX Arcade Stick” ATTR{phys}==“usb-3f980000.usb-1.2/input0” ATTR{properties}==“0” ATTR{uniq}=="" looking at parent device ‘/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1- 1.2:1.0/0003:1292:4E47.0006’: KERNELS==“0003:1292:4E47.0006” SUBSYSTEMS==“hid” DRIVERS==“hid-generic” ATTRS{country}==“21” looking at parent device ‘/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1- 1.2:1.0’: KERNELS==“1-1.2:1.0” SUBSYSTEMS==“usb” DRIVERS==“usbhid” ATTRS{bAlternateSetting}==" 0" ATTRS{bInterfaceClass}==“03” ATTRS{bInterfaceNumber}==“00” ATTRS{bInterfaceProtocol}==“00” ATTRS{bInterfaceSubClass}==“00” ATTRS{bNumEndpoints}==“01” ATTRS{supports_autosuspend}==“1” looking at parent device ‘/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2’: KERNELS==“1-1.2” SUBSYSTEMS==“usb” DRIVERS==“usb” ATTRS{authorized}==“1” ATTRS{avoid_reset_quirk}==“0” ATTRS{bConfigurationValue}==“1” ATTRS{bDeviceClass}==“00” ATTRS{bDeviceProtocol}==“00” ATTRS{bDeviceSubClass}==“00” ATTRS{bMaxPacketSize0}==“8” ATTRS{bMaxPower}==“100mA” ATTRS{bNumConfigurations}==“1” ATTRS{bNumInterfaces}==" 1" ATTRS{bcdDevice}==“0100” ATTRS{bmAttributes}==“80” ATTRS{busnum}==“1” ATTRS{devnum}==“8” ATTRS{devpath}==“1.2” ATTRS{idProduct}==“4e47” ATTRS{idVendor}==“1292” ATTRS{ltm_capable}==“no” ATTRS{manufacturer}==“TOMMO” ATTRS{maxchild}==“0” ATTRS{product}==“NEOGEOX Arcade Stick” ATTRS{quirks}==“0x0” ATTRS{removable}==“removable” ATTRS{speed}==“1.5” ATTRS{urbnum}==“19” ATTRS{version}==" 2.00" looking at parent device ‘/devices/platform/soc/3f980000.usb/usb1/1-1’: KERNELS==“1-1” SUBSYSTEMS==“usb” DRIVERS==“usb” ATTRS{authorized}==“1” ATTRS{avoid_reset_quirk}==“0” ATTRS{bConfigurationValue}==“1” ATTRS{bDeviceClass}==“09” ATTRS{bDeviceProtocol}==“02” ATTRS{bDeviceSubClass}==“00” ATTRS{bMaxPacketSize0}==“64” ATTRS{bMaxPower}==“2mA” ATTRS{bNumConfigurations}==“1” ATTRS{bNumInterfaces}==" 1" ATTRS{bcdDevice}==“0200” ATTRS{bmAttributes}==“e0” ATTRS{busnum}==“1” ATTRS{configuration}=="" ATTRS{devnum}==“2” ATTRS{devpath}==“1” ATTRS{idProduct}==“9514” ATTRS{idVendor}==“0424” ATTRS{ltm_capable}==“no” ATTRS{maxchild}==“5” ATTRS{quirks}==“0x0” ATTRS{removable}==“unknown” ATTRS{speed}==“480” ATTRS{urbnum}==“129” ATTRS{version}==" 2.00" looking at parent device ‘/devices/platform/soc/3f980000.usb/usb1’: KERNELS==“usb1” SUBSYSTEMS==“usb” DRIVERS==“usb” ATTRS{authorized}==“1” ATTRS{authorized_default}==“1” ATTRS{avoid_reset_quirk}==“0” ATTRS{bConfigurationValue}==“1” ATTRS{bDeviceClass}==“09” ATTRS{bDeviceProtocol}==“01” ATTRS{bDeviceSubClass}==“00” ATTRS{bMaxPacketSize0}==“64” ATTRS{bMaxPower}==“0mA” ATTRS{bNumConfigurations}==“1” ATTRS{bNumInterfaces}==" 1" ATTRS{bcdDevice}==“0401” ATTRS{bmAttributes}==“e0” ATTRS{busnum}==“1” ATTRS{configuration}=="" ATTRS{devnum}==“1” ATTRS{devpath}==“0” ATTRS{idProduct}==“0002” ATTRS{idVendor}==“1d6b” ATTRS{ltm_capable}==“no” ATTRS{manufacturer}==“Linux 4.1.19 dwc_otg_hcd” ATTRS{maxchild}==“1” ATTRS{product}==“DWC OTG Controller” ATTRS{quirks}==“0x0” ATTRS{removable}==“unknown” ATTRS{serial}==“3f980000.usb” ATTRS{speed}==“480” ATTRS{urbnum}==“25” ATTRS{version}==" 2.00" looking at parent device ‘/devices/platform/soc/3f980000.usb’: KERNELS==“3f980000.usb” SUBSYSTEMS==“platform” DRIVERS==“dwc_otg” ATTRS{busconnected}==“Bus Connected = 0x1” ATTRS{buspower}==“Bus Power = 0x1” ATTRS{bussuspend}==“Bus Suspend = 0x0” ATTRS{devspeed}==“Device Speed = 0x0” ATTRS{driver_override}=="(null)" ATTRS{enumspeed}==“Device Enumeration Speed = 0x1” ATTRS{fr_interval}==“Frame Interval = 0x1d4c” ATTRS{ggpio}==“GGPIO = 0x00000000” ATTRS{gnptxfsiz}==“GNPTXFSIZ = 0x01000306” ATTRS{gotgctl}==“GOTGCTL = 0x001c0001” ATTRS{gpvndctl}==“GPVNDCTL = 0x00000000” ATTRS{grxfsiz}==“GRXFSIZ = 0x00000306” ATTRS{gsnpsid}==“GSNPSID = 0x4f54280a” ATTRS{guid}==“GUID = 0x2708a000” ATTRS{gusbcfg}==“GUSBCFG = 0x20001700” ATTRS{hcd_frrem}==“HCD Dump Frame Remaining” ATTRS{hcddump}==“HCD Dump” ATTRS{hnp}==“HstNegScs = 0x0” ATTRS{hnpcapable}==“HNPCapable = 0x1” ATTRS{hprt0}==“HPRT0 = 0x00001005” ATTRS{hptxfsiz}==“HPTXFSIZ = 0x02000406” ATTRS{hsic_connect}==“HSIC Connect = 0x1” ATTRS{inv_sel_hsic}==“Invert Select HSIC = 0x0” ATTRS{mode}==“Mode = 0x1” ATTRS{mode_ch_tim_en}==“Mode Change Ready Timer Enable = 0x0” ATTRS{rd_reg_test}==“Time to read GNPTXFSIZ reg 10000000 times: 896 msecs (2 69 jiffies)” ATTRS{regdump}==“Register Dump” ATTRS{regoffset}==“0xffffffff” ATTRS{regvalue}==“invalid offset” ATTRS{rem_wakeup_pwrdn}=="" ATTRS{remote_wakeup}==“Remote Wakeup Sig = 0 Enabled = 0 LPM Remote Wakeup = 0” ATTRS{spramdump}==“SPRAM Dump” ATTRS{srp}==“SesReqScs = 0x1” ATTRS{srpcapable}==“SRPCapable = 0x1” ATTRS{wr_reg_test}==“Time to write GNPTXFSIZ reg 10000000 times: 356 msecs ( 107 jiffies)” looking at parent device ‘/devices/platform/soc’: KERNELS==“soc” SUBSYSTEMS==“platform” DRIVERS=="" ATTRS{driver_override}=="(null)" looking at parent device ‘/devices/platform’: KERNELS==“platform” SUBSYSTEMS=="" DRIVERS==""

The name is correct so it should work…

Can you try to make a test on PC ?

no sorry i can not try it on pc right now :frowning: i dont have usb key / free sd card near me dammmn! the neo geo controller is installed properly on pc

We need to check on Lakka PC because currently you are using Lakka RPi.