Manjaro Linux

Русское сообщество

[РЕШЕНО] Microsoft Xbox 360 Controller работает не сразу

Проблемы и вопросы, касающиеся ядра и аппаратной поддержки.

[РЕШЕНО] Microsoft Xbox 360 Controller работает не сразу

Сообщение Tolyak26 » 06 сен 2015, 08:59

Всем привет.

Контроллер от Microsoft Xbox 360 подключен к ПК.

После старта системы он не определяется ОС должным образом. Сама кнопка Xbox на геймпаде начинает мигать раз в 3 секунды. После переподключения usb шнура, геймпад определяется нормально и работает в дальнейшем идеально до повторного старта системы.

Как быть?

Обновление ядра с 3.18.20 до 4.1.6 не помогло.

До этого сидел на Linux Mint 17.2. Там все сразу цеплялось.
Аватара пользователя
Tolyak26
 
Автор темы
Сообщения: 8
Зарегистрирован: 06 сен 2015, 08:51
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Microsoft Xbox 360 Controller работает не сразу

Сообщение dimonmmk » 06 сен 2015, 09:29

Покажите выводы lsusb до и после переподключения шнура.
Аватара пользователя
dimonmmk
 
Сообщения: 604
Зарегистрирован: 10 июл 2014, 19:08
Откуда: 57° 3'51.28" 36° 1'43.38"
Благодарил (а): 14 раз.
Поблагодарили: 134 раз.

Re: Microsoft Xbox 360 Controller работает не сразу

Сообщение Tolyak26 » 06 сен 2015, 09:46

До
Bus 004 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 002: ID 09da:9090 A4Tech Co., Ltd. XL-730K / XL-750BK / XL-755BK Mice
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 006: ID 1c4f:0002 SiGma Micro Keyboard TRACER Gamma Ivory
Bus 001 Device 005: ID 0000:0538
Bus 001 Device 004: ID 045e:028e Microsoft Corp. Xbox360 Controller
Bus 001 Device 003: ID 04a9:1909 Canon, Inc. CanoScan LiDE 110
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

После
Bus 004 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 002: ID 09da:9090 A4Tech Co., Ltd. XL-730K / XL-750BK / XL-755BK Mice
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 006: ID 1c4f:0002 SiGma Micro Keyboard TRACER Gamma Ivory
Bus 001 Device 005: ID 0000:0538
Bus 001 Device 007: ID 045e:028e Microsoft Corp. Xbox360 Controller
Bus 001 Device 003: ID 04a9:1909 Canon, Inc. CanoScan LiDE 110
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub


Одинаково.
Аватара пользователя
Tolyak26
 
Автор темы
Сообщения: 8
Зарегистрирован: 06 сен 2015, 08:51
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Microsoft Xbox 360 Controller работает не сразу

Сообщение dimonmmk » 06 сен 2015, 10:12

Ну где ж "одинаково"? Нумерация девайса изменилась- был четвертым, стал седьмым...
пакет xboxdrv-stable-git установлен?
Аватара пользователя
dimonmmk
 
Сообщения: 604
Зарегистрирован: 10 июл 2014, 19:08
Откуда: 57° 3'51.28" 36° 1'43.38"
Благодарил (а): 14 раз.
Поблагодарили: 134 раз.

Re: Microsoft Xbox 360 Controller работает не сразу

Сообщение Tolyak26 » 06 сен 2015, 10:23

Да. Cтавил 0.8.5 и 0.8.6. Не помогло.
Аватара пользователя
Tolyak26
 
Автор темы
Сообщения: 8
Зарегистрирован: 06 сен 2015, 08:51
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Microsoft Xbox 360 Controller работает не сразу

Сообщение dimonmmk » 06 сен 2015, 10:25

А модуль xpad отключили?

Добавлено спустя 2 минуты 47 секунд:
Вообще, смотрите тут:
https://wiki.archlinux.org/index.php/Ga ... ontrollers
и тут:
http://linrunner.de/en/tlp/docs/tlp-con ... n.html#usb
Аватара пользователя
dimonmmk
 
Сообщения: 604
Зарегистрирован: 10 июл 2014, 19:08
Откуда: 57° 3'51.28" 36° 1'43.38"
Благодарил (а): 14 раз.
Поблагодарили: 134 раз.

Re: Microsoft Xbox 360 Controller работает не сразу

Сообщение Tolyak26 » 06 сен 2015, 10:30

Он выгружен. Если его загрузить снова и запустить xboxdrv, то:
xboxdrv 0.8.6 - http://pingus.seul.org/~grumbel/xboxdrv/
Copyright © 2008-2011 Ingo Ruhnke <[email protected]>
Licensed under GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it under certain
conditions; see the file COPYING for details.

Controller: Microsoft Xbox 360 Controller
Vendor/Product: 045e:028e
USB Path: 003:004
Controller Type: Xbox360

Your Xbox/Xbox360 controller should now be available as:
/dev/input/js1
/dev/input/event16

Press Ctrl-c to quit, use '--silent' to suppress the event output


И всё равно мигает и не работает должным образом.
Аватара пользователя
Tolyak26
 
Автор темы
Сообщения: 8
Зарегистрирован: 06 сен 2015, 08:51
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Microsoft Xbox 360 Controller работает не сразу

Сообщение dimonmmk » 06 сен 2015, 11:19

Ну, не знаю, попробуйте такой костыль...
Создать файл usbreset.c со следующим содержимым:
usbreset.c
/* usbreset -- send a USB port reset to a USB device */

#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <errno.h>
#include <sys/ioctl.h>

#include <linux/usbdevice_fs.h>


int main(int argc, char **argv)
{
const char *filename;
int fd;
int rc;

if (argc != 2) {
fprintf(stderr, "Usage: usbreset device-filename\n");
return 1;
}
filename = argv[1];

fd = open(filename, O_WRONLY);
if (fd < 0) {
perror("Error opening output file");
return 1;
}

printf("Resetting USB device %s\n", filename);
rc = ioctl(fd, USBDEVFS_RESET, 0);
if (rc < 0) {
perror("Error in ioctl");
return 1;
}
printf("Reset successful\n");

close(fd);
return 0;
}

Скомпилировать :
# cc usbreset.c -o usbreset ,
скопировать в /usr/bin/, сделать исполняемым:
# sudo chmod +x /usr/bin/usbreset

Создать скрипт:
Код: Выделить всё
#!/bin/bash
bus=$(lsusb | grep Xbox360 | gawk '{print $2}')
port=$(lsusb | grep Xbox360 | gawk '{print $4}' | cut -d":" -f1)
usbreset /dev/bus/usb/$bus/$port

сделать исполняемым.
Запускать на старте через systemd- создать файл /etc/systemd/system/myscript.service:
Код: Выделить всё
[Unit]
Description=My script
[Service]
Type=oneshot
User=root
Group=root
ExecStart=/usr/bin/my-script
[Install]
WantedBy=multi-user.target

А можно и вручную запускать. Или прописать на старте игрушки. Но тогда пароль будет просить.
Аватара пользователя
dimonmmk
 
Сообщения: 604
Зарегистрирован: 10 июл 2014, 19:08
Откуда: 57° 3'51.28" 36° 1'43.38"
Благодарил (а): 14 раз.
Поблагодарили: 134 раз.

Re: Microsoft Xbox 360 Controller работает не сразу

Сообщение Tolyak26 » 06 сен 2015, 11:43

Попробую. Спасибо за помощь. Даже steamos-xpad не помог :(
Аватара пользователя
Tolyak26
 
Автор темы
Сообщения: 8
Зарегистрирован: 06 сен 2015, 08:51
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Microsoft Xbox 360 Controller работает не сразу

Сообщение dimonmmk » 06 сен 2015, 11:48

Хpad в принципе не нужен- после передергивания шнура пад работает что через него что через xboxdrv, без разницы. Все что нужно- это порт передернуть. Собственно, костыль это и делает.
Аватара пользователя
dimonmmk
 
Сообщения: 604
Зарегистрирован: 10 июл 2014, 19:08
Откуда: 57° 3'51.28" 36° 1'43.38"
Благодарил (а): 14 раз.
Поблагодарили: 134 раз.

След.

Вернуться в Ядро & Оборудование



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron