Jump to content

For background: I'm redoing the water cooling in my main machine, so I've transitioned over to my secondary computer for everything I need to do. To make things interesting, I'm trying to see if I can transition to Linux full time on it, mostly to see if I can. Most things are running fine, games are launching through proton with little to no issues, and the only thing that's somewhat broken is the system clock, which for some reason decided that UTC time was my local time and then put it through a timezone to make it 4 hours behind real time (one issue at a time).

 

That was until I tried playing a controller-based game (specifically Arkham Asylum). The game launched fine, but my controller (Xbox One S connected over USB) wouldn't be detected, as in no lights on the controller. I thought it might have been an issue with a controller, so I swapped over to a wired Xbox 360 controller I had in a drawer, but when plugged in the lights would just keep flashing and wouldn't be detected in game. I tried installing the xboxdrv drivers as recommended by the Arch-Wiki, but that didn't seem to fix anything. I've changed the USB port to see if it was something wrong with the USB controller, but still no fix. Right now I don't know where to go, I figured controllers should just be plug-n-play. I'm open to try everything you can think of. Also bonus points if you know how to fix the clock issue, though it doesn't matter too much to me.

 

In case it matters:

CPU: Intel i5 6600k @ 4.6GHz

MOBO: ASRock Z170 OC Formula

RAM: 16GB 3200MHz CL16 G.Skill Ripjaws V

GPU: EVGA 980 Ti K|NGP|N

SSD: 250GB Samsung 960 Evo

HDD: 1TB WD Blue

PSU: Some 1000w, forget which one

Distro: Garuda Linux (Arch-based)

Kernel: 5.13.12-zen1-1-zen

 

If you need any more info, please let me know. Also sorry if this belongs in troubleshooting instead, I flipped a coin between the two.

Link to post
Share on other sites

Can't help with the controller issue as I'm not a gamer so no controllers here. But here's the solution to your clock:

 

As root do:

ln -sf /usr/share/zoneinfo/<zone/location> /etc/localtime #<zone/location> is in the form Canada/Pacific for Vancouver

Look at the contents of /usr/share/zoneinfo/ and adjust your time zone according to what's available in the directories below that.

"You don't need eyes to see, you need vision"

 

(Faithless, 'Reverence' from the 1996 Reverence album)

Link to post
Share on other sites

Have you read through this?

https://wiki.archlinux.org/title/Gamepad#Xbox_360_controller

Seems you'll need the xboxdrv package if it's a wireless xbox 360 controller, from what I could skim through it quickly.

Link to post
Share on other sites

Just now, Dutch_Master said:

Can't help with the controller issue as I'm not a gamer so no controllers here. But here's the solution to your clock:

 

As root do:


ln -sf /usr/share/zoneinfo/<zone/location> /etc/localtime #<zone/location> is in the form Canada/Pacific for Vancouver

Look at the contents of /usr/share/zoneinfo/ and adjust your time zone according to what's available in the directories below that.

Thanks for the reply, though I did try that already. The problem isn't that the time zone is off, it's that the UTC time itself is off. For reference, this is time.gov compared with timedatectl

image.png.24379a68f5d787fdace60b92a15040c8.png

Link to post
Share on other sites

Just now, fuzz0r said:

Have you read through this?

https://wiki.archlinux.org/title/Gamepad#Xbox_360_controller

Seems you'll need the xboxdrv package if it's a wireless xbox 360 controller, from what I could skim through it quickly.

I did read through that page 2 or 3 times already, and from what I can gather it basically says "use the default drivers, and if you run into issues, swap to xboxdrv." I've tried both so far and neither of them work. 

 

That being said, as a troubleshooting step afterwards, I grabbed an old steelseries controller that barely works (I forget the model, I got it at Goodwill for $4 6 years ago for reference) and that seems to be detected by the OS. I think the problem is that the Xbox controllers aren't showing up as input devices for some reason, but I could be wrong.

Link to post
Share on other sites

22 minutes ago, RONOTHAN## said:

The problem isn't that the time zone is off, it's that the UTC time itself is off.

UTC is set to GMT by default. You probably need to change your hardware clock if you haven't already. What helps is installing an NTP client so it can sync your clock to UTC/EDT automagically.

"You don't need eyes to see, you need vision"

 

(Faithless, 'Reverence' from the 1996 Reverence album)

Link to post
Share on other sites

2 hours ago, Dutch_Master said:

UTC is set to GMT by default. You probably need to change your hardware clock if you haven't already. What helps is installing an NTP client so it can sync your clock to UTC/EDT automagically.

The systemd-timedated already has an NTP client. It reports like it is active but you can try this anyway:

sudo timedatectl set-ntp true

(https://wiki.archlinux.org/title/Installation_guide#Update_the_system_clock)

If it doesn't work, then set your clock to UTC directly in the BIOS. Probably the BIOS prevents your OS from changing that.

You are not dual booting with Windows are you? That needs some additional work: https://wiki.archlinux.org/title/System_time#Time_standard

         \   ^__^ 
          \  (oo)\_______
             (__)\       )\/\
Link to post
Share on other sites

To be fair I never used a controller on Linux but I can tell you what happens if I try to plug my wired USB Microsoft XBOX 360 controller.

I use simply Arch btw, I have no drivers installed manually for controllers. I hope it helps to give a reference, connecting now:

 

1. The light on the controller - top left side of the ring - blinks then lights up steady. Kernel log shows the controller is detected:

$ sudo dmesg

...
[314419.758093] usb 1-1: new full-speed USB device number 7 using xhci_hcd
[314419.906794] usb 1-1: New USB device found, idVendor=045e, idProduct=028e, bcdDevice= 1.14
[314419.906797] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[314419.906798] usb 1-1: Product: Controller
[314419.906799] usb 1-1: Manufacturer: ©Microsoft Corporation
[314419.906800] usb 1-1: SerialNumber: 17EC39B
[314419.918384] input: Microsoft X-Box 360 pad as /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0/input/input21
[314419.918674] usbcore: registered new interface driver xpad
...

 

2. Entries appear in /dev/input

$ ls -l /dev/input

total 0
drwxr-xr-x  2 root root     180 Aug 26 09:41 by-id
drwxr-xr-x  2 root root     240 Aug 26 09:41 by-path
crw-rw----  1 root input 13, 64 Aug 22 18:20 event0
crw-rw----  1 root input 13, 65 Aug 22 18:20 event1
crw-rw----  1 root input 13, 74 Aug 22 18:20 event10
crw-rw----  1 root input 13, 75 Aug 22 18:20 event11
crw-rw----  1 root input 13, 76 Aug 22 18:20 event12
crw-rw----  1 root input 13, 77 Aug 22 18:20 event13
crw-rw----  1 root input 13, 78 Aug 22 18:20 event14
crw-rw----  1 root input 13, 79 Aug 22 18:20 event15
crw-rw----  1 root input 13, 80 Aug 22 18:20 event16
crw-rw----  1 root input 13, 81 Aug 22 18:20 event17
crw-rw----  1 root input 13, 82 Aug 22 18:20 event18
crw-rw----  1 root input 13, 83 Aug 22 18:20 event19
crw-rw----  1 root input 13, 66 Aug 22 18:20 event2
crw-rw----  1 root input 13, 84 Aug 22 18:20 event20
crw-rw----+ 1 root input 13, 85 Aug 26 09:41 event21
crw-rw----  1 root input 13, 67 Aug 22 18:20 event3
crw-rw----  1 root input 13, 68 Aug 22 18:20 event4
crw-rw----  1 root input 13, 69 Aug 22 18:20 event5
crw-rw----  1 root input 13, 70 Aug 22 18:20 event6
crw-rw----  1 root input 13, 71 Aug 22 18:20 event7
crw-rw----  1 root input 13, 72 Aug 22 18:20 event8
crw-rw----  1 root input 13, 73 Aug 22 18:20 event9
crw-rw-r--+ 1 root input 13,  0 Aug 26 09:41 js0
crw-rw----  1 root input 13, 63 Aug 22 18:20 mice
crw-rw----  1 root input 13, 32 Aug 22 18:20 mouse0

 

Note the timestamps for event21 and js0.

 

3. This needs evtest installed:

sudo pacman -S evtest

After it is installed and I run it and I select the appeared input device (event21 in my case):

$ sudo evtest

No device specified, trying to scan all of /dev/input/event*
Available devices:
/dev/input/event0:	Lid Switch
/dev/input/event1:	Power Button
/dev/input/event2:	Power Button
/dev/input/event3:	AT Translated Set 2 keyboard
/dev/input/event4:	Ideapad extra buttons
/dev/input/event5:	PC Speaker
/dev/input/event6:	Integrated Camera: Integrated C
/dev/input/event7:	Logitech USB Keyboard
/dev/input/event8:	Video Bus
/dev/input/event9:	Logitech USB Keyboard Consumer Control
/dev/input/event10:	Logitech USB Keyboard System Control
/dev/input/event11:	KYE SYSTEMS CORP. Wired Mouse
/dev/input/event12:	HDA Intel PCH Mic
/dev/input/event13:	HDA Intel PCH Headphone
/dev/input/event14:	HDA Intel PCH HDMI/DP,pcm=3
/dev/input/event15:	HDA Intel PCH HDMI/DP,pcm=7
/dev/input/event16:	HDA Intel PCH HDMI/DP,pcm=8
/dev/input/event17:	HDA Intel PCH HDMI/DP,pcm=9
/dev/input/event18:	HDA Intel PCH HDMI/DP,pcm=10
/dev/input/event19:	HDA Intel PCH HDMI/DP,pcm=11
/dev/input/event20:	HDA Intel PCH HDMI/DP,pcm=12
/dev/input/event21:	Microsoft X-Box 360 pad
Select the device event number [0-21]:

    21 (enter)

Input driver version is 1.0.1
Input device ID: bus 0x3 vendor 0x45e product 0x28e version 0x114
Input device name: "Microsoft X-Box 360 pad"
Supported events:
  Event type 0 (EV_SYN)
  Event type 1 (EV_KEY)
    Event code 304 (BTN_SOUTH)
    Event code 305 (BTN_EAST)
    Event code 307 (BTN_NORTH)
    Event code 308 (BTN_WEST)
    Event code 310 (BTN_TL)
    Event code 311 (BTN_TR)
    Event code 314 (BTN_SELECT)
    Event code 315 (BTN_START)
    Event code 316 (BTN_MODE)
    Event code 317 (BTN_THUMBL)
    Event code 318 (BTN_THUMBR)
  Event type 3 (EV_ABS)
    Event code 0 (ABS_X)
      Value  -4666
      Min   -32768
      Max    32767
      Fuzz      16
      Flat     128
    Event code 1 (ABS_Y)
      Value   3351
      Min   -32768
      Max    32767
      Fuzz      16
      Flat     128
    Event code 2 (ABS_Z)
      Value      0
      Min        0
      Max      255
    Event code 3 (ABS_RX)
      Value    993
      Min   -32768
      Max    32767
      Fuzz      16
      Flat     128
    Event code 4 (ABS_RY)
      Value   1349
      Min   -32768
      Max    32767
      Fuzz      16
      Flat     128
    Event code 5 (ABS_RZ)
      Value      0
      Min        0
      Max      255
    Event code 16 (ABS_HAT0X)
      Value      0
      Min       -1
      Max        1
    Event code 17 (ABS_HAT0Y)
      Value      0
      Min       -1
      Max        1
  Event type 21 (EV_FF)
    Event code 80 (FF_RUMBLE)
    Event code 81 (FF_PERIODIC)
    Event code 88 (FF_SQUARE)
    Event code 89 (FF_TRIANGLE)
    Event code 90 (FF_SINE)
    Event code 96 (FF_GAIN)
Properties:
Testing ... (interrupt to exit)

Now pushing buttons or hitting the axis on the controller will print events.

 

That is from me, but hey basically this the point where:

 - if you cannot reach this than you most likely have a driver / kernel module problem

 - if you can get here and every button and axix prints an event in evtest then drivers are most likely ok and config in the desktop environment or games or helper applications are to correct

         \   ^__^ 
          \  (oo)\_______
             (__)\       )\/\
Link to post
Share on other sites

6 hours ago, grg994 said:

To be fair I never used a controller on Linux but I can tell you what happens if I try to plug my wired USB Microsoft XBOX 360 controller.

I use simply Arch btw, I have no drivers installed manually for controllers. I hope it helps to give a reference, connecting now:

 

1. The light on the controller - top left side of the ring - blinks then lights up steady. Kernel log shows the controller is detected:


$ sudo dmesg

...
[314419.758093] usb 1-1: new full-speed USB device number 7 using xhci_hcd
[314419.906794] usb 1-1: New USB device found, idVendor=045e, idProduct=028e, bcdDevice= 1.14
[314419.906797] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[314419.906798] usb 1-1: Product: Controller
[314419.906799] usb 1-1: Manufacturer: ©Microsoft Corporation
[314419.906800] usb 1-1: SerialNumber: 17EC39B
[314419.918384] input: Microsoft X-Box 360 pad as /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0/input/input21
[314419.918674] usbcore: registered new interface driver xpad
...

 

2. Entries appear in /dev/input


$ ls -l /dev/input

total 0
drwxr-xr-x  2 root root     180 Aug 26 09:41 by-id
drwxr-xr-x  2 root root     240 Aug 26 09:41 by-path
crw-rw----  1 root input 13, 64 Aug 22 18:20 event0
crw-rw----  1 root input 13, 65 Aug 22 18:20 event1
crw-rw----  1 root input 13, 74 Aug 22 18:20 event10
crw-rw----  1 root input 13, 75 Aug 22 18:20 event11
crw-rw----  1 root input 13, 76 Aug 22 18:20 event12
crw-rw----  1 root input 13, 77 Aug 22 18:20 event13
crw-rw----  1 root input 13, 78 Aug 22 18:20 event14
crw-rw----  1 root input 13, 79 Aug 22 18:20 event15
crw-rw----  1 root input 13, 80 Aug 22 18:20 event16
crw-rw----  1 root input 13, 81 Aug 22 18:20 event17
crw-rw----  1 root input 13, 82 Aug 22 18:20 event18
crw-rw----  1 root input 13, 83 Aug 22 18:20 event19
crw-rw----  1 root input 13, 66 Aug 22 18:20 event2
crw-rw----  1 root input 13, 84 Aug 22 18:20 event20
crw-rw----+ 1 root input 13, 85 Aug 26 09:41 event21
crw-rw----  1 root input 13, 67 Aug 22 18:20 event3
crw-rw----  1 root input 13, 68 Aug 22 18:20 event4
crw-rw----  1 root input 13, 69 Aug 22 18:20 event5
crw-rw----  1 root input 13, 70 Aug 22 18:20 event6
crw-rw----  1 root input 13, 71 Aug 22 18:20 event7
crw-rw----  1 root input 13, 72 Aug 22 18:20 event8
crw-rw----  1 root input 13, 73 Aug 22 18:20 event9
crw-rw-r--+ 1 root input 13,  0 Aug 26 09:41 js0
crw-rw----  1 root input 13, 63 Aug 22 18:20 mice
crw-rw----  1 root input 13, 32 Aug 22 18:20 mouse0

 

Note the timestamps for event21 and js0.

 

3. This needs evtest installed:


sudo pacman -S evtest

After it is installed and I run it and I select the appeared input device (event21 in my case):


$ sudo evtest

No device specified, trying to scan all of /dev/input/event*
Available devices:
/dev/input/event0:	Lid Switch
/dev/input/event1:	Power Button
/dev/input/event2:	Power Button
/dev/input/event3:	AT Translated Set 2 keyboard
/dev/input/event4:	Ideapad extra buttons
/dev/input/event5:	PC Speaker
/dev/input/event6:	Integrated Camera: Integrated C
/dev/input/event7:	Logitech USB Keyboard
/dev/input/event8:	Video Bus
/dev/input/event9:	Logitech USB Keyboard Consumer Control
/dev/input/event10:	Logitech USB Keyboard System Control
/dev/input/event11:	KYE SYSTEMS CORP. Wired Mouse
/dev/input/event12:	HDA Intel PCH Mic
/dev/input/event13:	HDA Intel PCH Headphone
/dev/input/event14:	HDA Intel PCH HDMI/DP,pcm=3
/dev/input/event15:	HDA Intel PCH HDMI/DP,pcm=7
/dev/input/event16:	HDA Intel PCH HDMI/DP,pcm=8
/dev/input/event17:	HDA Intel PCH HDMI/DP,pcm=9
/dev/input/event18:	HDA Intel PCH HDMI/DP,pcm=10
/dev/input/event19:	HDA Intel PCH HDMI/DP,pcm=11
/dev/input/event20:	HDA Intel PCH HDMI/DP,pcm=12
/dev/input/event21:	Microsoft X-Box 360 pad
Select the device event number [0-21]:

    21 (enter)

Input driver version is 1.0.1
Input device ID: bus 0x3 vendor 0x45e product 0x28e version 0x114
Input device name: "Microsoft X-Box 360 pad"
Supported events:
  Event type 0 (EV_SYN)
  Event type 1 (EV_KEY)
    Event code 304 (BTN_SOUTH)
    Event code 305 (BTN_EAST)
    Event code 307 (BTN_NORTH)
    Event code 308 (BTN_WEST)
    Event code 310 (BTN_TL)
    Event code 311 (BTN_TR)
    Event code 314 (BTN_SELECT)
    Event code 315 (BTN_START)
    Event code 316 (BTN_MODE)
    Event code 317 (BTN_THUMBL)
    Event code 318 (BTN_THUMBR)
  Event type 3 (EV_ABS)
    Event code 0 (ABS_X)
      Value  -4666
      Min   -32768
      Max    32767
      Fuzz      16
      Flat     128
    Event code 1 (ABS_Y)
      Value   3351
      Min   -32768
      Max    32767
      Fuzz      16
      Flat     128
    Event code 2 (ABS_Z)
      Value      0
      Min        0
      Max      255
    Event code 3 (ABS_RX)
      Value    993
      Min   -32768
      Max    32767
      Fuzz      16
      Flat     128
    Event code 4 (ABS_RY)
      Value   1349
      Min   -32768
      Max    32767
      Fuzz      16
      Flat     128
    Event code 5 (ABS_RZ)
      Value      0
      Min        0
      Max      255
    Event code 16 (ABS_HAT0X)
      Value      0
      Min       -1
      Max        1
    Event code 17 (ABS_HAT0Y)
      Value      0
      Min       -1
      Max        1
  Event type 21 (EV_FF)
    Event code 80 (FF_RUMBLE)
    Event code 81 (FF_PERIODIC)
    Event code 88 (FF_SQUARE)
    Event code 89 (FF_TRIANGLE)
    Event code 90 (FF_SINE)
    Event code 96 (FF_GAIN)
Properties:
Testing ... (interrupt to exit)

Now pushing buttons or hitting the axis on the controller will print events.

 

That is from me, but hey basically this the point where:

 - if you cannot reach this than you most likely have a driver / kernel module problem

 - if you can get here and every button and axix prints an event in evtest then drivers are most likely ok and config in the desktop environment or games or helper applications are to correct

OK, after a lot of trial and error and following your instructions, it seems like it was finally detected as a controller and the player 1 light is illuminated. Just the Xbox 360 controller is working now, but I'll take it. Thanks!

Link to post
Share on other sites

11 hours ago, RONOTHAN## said:

OK, after a lot of trial and error and following your instructions, it seems like it was finally detected as a controller and the player 1 light is illuminated. Just the Xbox 360 controller is working now, but I'll take it. Thanks!

Great! One more little advice for the other controller: Whenever you install an additional driver / kernel module just make sure that the module is actually loaded into the kernel every time before testing. Some install scripts may not load the module immediately or may not make it load automatically after reboot and further startups.

There is a short wiki page about checking and loading kernel modules here: https://wiki.archlinux.org/title/Kernel_module

 

Edit: Very very rarely passing kernel parameters by the bootloader before boot is also needed for some kernel mode components to work. It can worth to check the github or whatever git page of the driver you are installing if it has additional installation instructions.

Edited by grg994
Additional info
         \   ^__^ 
          \  (oo)\_______
             (__)\       )\/\
Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×