Closed GoogleCodeExporter closed 9 years ago
Please can you give me the output of the command : lsusb ?
Original comment by ledjfou125
on 18 Nov 2012 at 3:27
lsusb gives:
Bus 004 Device 004: ID 187c:0521 Alienware Corporation
The laptop is detected as a M14XR1, since M14XR1 and R2 share the same VID/PID.
By the way, I can change the colors with AlienFX Lite (Java GUI).
Original comment by chretie...@gmail.com
on 18 Nov 2012 at 11:51
Can you try to run it as Sudo ? I know that since some update of the Linux
Kernel controlling USB as to go through sudo for some users ! Can you try ?
Original comment by ledjfou125
on 18 Nov 2012 at 1:13
It does not change anything. My user has USB rights and if this were the
problem, it would probably throw a "usb.core.USBError: Access denied
(insufficient permissions)" error.
Original comment by chretie...@gmail.com
on 18 Nov 2012 at 1:33
I know, I just assumed it might help ... I know about the permission error but
I though maybe who knows ;)
Ok well then let's think about that ...
So the error occurs on the detatch_kernel ... can you try to comment that line
?
line 109 in the file : AlienFX/AlienFXEngine.py
If you have an error : "Can't set the configuration. Error : blablabla" then it
means your controler is "occupied" normally ... the detach kernel is here so
that it closes all connections to it so that the driver can take control ...
But that should not help with our issue here ... it is very weird as it does
work for other people under debian based system (not tested for Arch but there
should not be any issue ... )
It is not a libusb issue I think but I can't be sure ... but you installed it
so it should work fine ...
Ok a possibility that I see is that under Arch Linux the controller is not
"mounted" on the 0 interface thus it raise an error.
So please can you do two things :
First comment the line 109 and give me the whole output ?
then also that "might" be usefull can you run the script I attacched ? (please
put it in the pyAlienFX folder and run it from there !)
Original comment by ledjfou125
on 18 Nov 2012 at 2:34
Attachments:
First, I realized that this error happens after I click "Preview". Before that,
if I click lights off for instance, I get:
Sending : Get Status
Packet : 02 06 00 00 00 00 00 00 00
array('B', [16, 0, 0, 0, 0, 0, 0, 0])
Traceback (most recent call last):
File "pyAlienFX.py", line 1106, in on_AlienFX_Menu_Light_Off
self.controller.Send_Packet()
AttributeError: AlienFX_Controller instance has no attribute 'Send_Packet'
But if I click preview, I get the "usb.core.USBError: Entity not found" error,
and if I click lights off again, I also get the "usb.core.USBError: Entity not
found" error.
If I comment line 109 of AlienFXEngine.py, and choose Lights Off, I get the
same error as previously:
Sending : Get Status
Packet : 02 06 00 00 00 00 00 00 00
array('B', [16, 0, 0, 0, 0, 0, 0, 0])
Traceback (most recent call last):
File "pyAlienFX.py", line 1106, in on_AlienFX_Menu_Light_Off
self.controller.Send_Packet()
AttributeError: AlienFX_Controller instance has no attribute 'Send_Packet'
Clicking Preview gives me this new error:
Traceback (most recent call last):
File "pyAlienFX.py", line 937, in on_Apply_pressed
self.Set_Conf()
File "pyAlienFX.py", line 710, in Set_Conf
self.controller.Write_Conf()
File "/home/ben/dev/pyalienfx/AlienFX/AlienFXEngine.py", line 161, in Write_Conf
self.WaitForOk()
File "/home/ben/dev/pyalienfx/AlienFX/AlienFXEngine.py", line 264, in WaitForOk
self.driver.Take_over()
File "/home/ben/dev/pyalienfx/AlienFX/AlienFXEngine.py", line 113, in Take_over
raise DeviceNotFound("Can't set the configuration. Error : %s"%e)
NameError: global name 'DeviceNotFound' is not defined
Output of your debug script:
Kernel active on i=0 : False
Kernel active on i=1 : False
Kernel active on i=2 : False
Kernel active on i=3 : False
Kernel active on i=4 : False
Kernel active on i=5 : False
Kernel active on i=6 : False
Kernel active on i=7 : False
Kernel active on i=8 : False
Kernel active on i=9 : False
Kernel active on i=10 : False
Kernel active on i=11 : False
Kernel active on i=12 : False
Kernel active on i=13 : False
Kernel active on i=14 : False
Kernel active on i=15 : False
Kernel active on i=16 : False
Kernel active on i=17 : False
Kernel active on i=18 : False
Kernel active on i=19 : False
bConfigurationValue = 1
bNumInterfaces = 1
index = 0
bDescriptorType = 2
bmAttributes = 128
bLength = 9
wTotalLength = 41
bMaxPower = 32
iConfiguration = 0
set configuration = YEAH
Can't detach_kernel_driver on bus 0. Error : Entity not found
Can't detach_kernel_driver on bus 1. Error : Invalid parameter
Can't detach_kernel_driver on bus 2. Error : Invalid parameter
Can't detach_kernel_driver on bus 3. Error : Invalid parameter
Can't detach_kernel_driver on bus 4. Error : Invalid parameter
Can't detach_kernel_driver on bus 5. Error : Invalid parameter
Can't detach_kernel_driver on bus 6. Error : Invalid parameter
Can't detach_kernel_driver on bus 7. Error : Invalid parameter
Can't detach_kernel_driver on bus 8. Error : Invalid parameter
Can't detach_kernel_driver on bus 9. Error : Invalid parameter
Original comment by chretie...@gmail.com
on 18 Nov 2012 at 2:52
OK as much as I want to understand this I have no idea why this is happening !
I though of something but it was that ... now ... I have to look deeper ...
I'll check online now ... does it work with previous versions ? especially 0.2 ?
Original comment by ledjfou125
on 18 Nov 2012 at 9:59
Ok mayyyybe I did something that MIIIGhhtt work xD
please can you pull the last git version from the master branch ?
and try ? ;)
if it doesn't work please send me the debug again ;)
We'll get this to work :D
Original comment by ledjfou125
on 19 Nov 2012 at 12:08
[deleted comment]
With the last commit, I get the following message with pyAlienFX.py:
Traceback (most recent call last):
File "pyAlienFX.py", line 939, in on_Apply_pressed
self.Set_Conf()
File "pyAlienFX.py", line 712, in Set_Conf
self.controller.Write_Conf()
File "/home/ben/dev/pyalienfx/AlienFX/AlienFXEngine.py", line 166, in Write_Conf
self.WaitForOk()
File "/home/ben/dev/pyalienfx/AlienFX/AlienFXEngine.py", line 269, in WaitForOk
self.driver.Take_over()
File "/home/ben/dev/pyalienfx/AlienFX/AlienFXEngine.py", line 113, in Take_over
self.dev.attach_kernel_driver(0)
File "/home/ben/dev/pyalienfx/usb/core.py", line 701, in attach_kernel_driver
self._ctx.backend.attach_kernel_driver(self._ctx.handle, interface)
File "/home/ben/dev/pyalienfx/usb/_debug.py", line 52, in do_trace
return f(*args, **named_args)
File "/home/ben/dev/pyalienfx/usb/backend/libusb10.py", line 569, in attach_kernel_driver
_check(_lib.libusb_attach_kernel_driver(dev_handle, intf))
File "/home/ben/dev/pyalienfx/usb/backend/libusb10.py", line 357, in _check
raise USBError(_str_error[retval.value])
usb.core.USBError: Resource busy
The debug gives the exact same output as before.
Original comment by chretie...@gmail.com
on 19 Nov 2012 at 12:18
Ok do you happen to have any other software which could use that USB controller
?
Because to be honnest the only way I managed to get the same bug as you is when
I tried to get the driver two run two instances.
if you ps aux | grep alienfx
what do you got ?
Moreover the fix I did should have detached any other instances ...
Can you pull the git and copy past the Whole output I added some "debug print
msg" on the way ...
Original comment by ledjfou125
on 19 Nov 2012 at 1:23
I launched the daemon and the script right after reboot (ie no other program
using the USB controller), and I got the following error on daemon:
Initializing Driver ...
Comnputer M14XR1 found ! Loading the parameters ...
Kernel Detached (on 1st trial)
CONFIGURATION SET ! (on 1st trial)
Initializing Controller ...
...listening
...connected: ('127.0.0.1', 44586)
Reset,3
can't detach_kernel_driver error : Entity not found
CONFIGURATION SET ! (on 1st trial)
Sending : Get Status
Packet : 02 06 00 00 00 00 00 00 00
array('B', [16, 0, 0, 0, 0, 0, 0, 0])
Set_Loop_Conf,False,1|Add_Speed_Conf,65280|Add_Loop_Conf,1,fixed,0000FF,0000FF|E
nd_Loop_Conf,|Add_Loop_Conf,2,fixed,0000FF,0000FF|End_Loop_Conf,|Add_Loop_Conf,4
,fixed,0000FF,0000FF|End_Loop_Conf,|Add_Loop_Conf,8,fixed,FFFF00,0000FF|End_Loop
_Conf,|Add_Loop_Conf,20,fixed,1e90ff,0000FF|Add_Loop_Conf,20,fixed,FF0000,0000FF
|End_Loop_Conf,|Add_Loop_Conf,40,fixed,0000FF,0000FF|End_Loop_Conf,|Add_Loop_Con
f,80,fixed,00FF00,0000FF|End_Loop_Conf,|Add_Loop_Conf,100,fixed,0000FF,0000FF|En
d_Loop_Conf,|Add_Loop_Conf,200,fixed,0000FF,0000FF|End_Loop_Conf,|Add_Loop_Conf,
1c00,fixed,0000FF,0000FF|End_Loop_Conf,|Add_Loop_Conf,4000,fixed,0000FF,0000FF|E
nd_Loop_Conf,|End_Transfert_Conf,|Write_Conf,
can't detach_kernel_driver error : Entity not found
Can't set the configuration. Error : Resource busy
Traceback (most recent call last):
File "pyAlienFX_daemon.py", line 304, in <module>
Daemon = ServCmd()
File "pyAlienFX_daemon.py", line 81, in __init__
s.__run()
File "pyAlienFX_daemon.py", line 93, in __run
s.__procCmd()
File "pyAlienFX_daemon.py", line 163, in __procCmd
s.controller.Write_Conf()
File "/home/ben/dev/pyalienfx/AlienFX/AlienFXEngine.py", line 172, in Write_Conf
self.WaitForOk()
File "/home/ben/dev/pyalienfx/AlienFX/AlienFXEngine.py", line 275, in WaitForOk
self.driver.Take_over()
File "/home/ben/dev/pyalienfx/AlienFX/AlienFXEngine.py", line 116, in Take_over
self.dev.attach_kernel_driver(0)
File "/home/ben/dev/pyalienfx/usb/core.py", line 701, in attach_kernel_driver
self._ctx.backend.attach_kernel_driver(self._ctx.handle, interface)
File "/home/ben/dev/pyalienfx/usb/_debug.py", line 52, in do_trace
return f(*args, **named_args)
File "/home/ben/dev/pyalienfx/usb/backend/libusb10.py", line 569, in attach_kernel_driver
_check(_lib.libusb_attach_kernel_driver(dev_handle, intf))
File "/home/ben/dev/pyalienfx/usb/backend/libusb10.py", line 357, in _check
raise USBError(_str_error[retval.value])
usb.core.USBError: Resource busy
FYI, the script gave the following output:
Initializing Driver ...
Comnputer M14XR1 found ! Loading the parameters ...
can't detach_kernel_driver error : Entity not found
CONFIGURATION SET ! (on 1st trial)
Initializing Controller ...
Loading : ./Profiles/Default.cfg
SPEED = 63713
Initializing Interface ...
pyAlienFX.py:125: GtkWarning: Can't pass in construct-only parameters to
cancel_button
self.gtk_AlienFX_Main.add_from_file('./glade/AlienFXMain.glade')
pyAlienFX.py:125: GtkWarning: Can't pass in construct-only parameters to
ok_button
self.gtk_AlienFX_Main.add_from_file('./glade/AlienFXMain.glade')
executed
Traceback (most recent call last):
File "pyAlienFX.py", line 1114, in on_AlienFX_Menu_Light_On
self.Set_Conf()
File "pyAlienFX.py", line 712, in Set_Conf
self.controller.Write_Conf()
File "pyAlienFX.py", line 1226, in Write_Conf
self.Send_Packet()
File "pyAlienFX.py", line 1265, in Send_Packet
raise ValueError("Error while communicating with the daemon !")
ValueError: Error while communicating with the daemon !
Traceback (most recent call last):
File "pyAlienFX.py", line 939, in on_Apply_pressed
self.Set_Conf()
File "pyAlienFX.py", line 712, in Set_Conf
self.controller.Write_Conf()
File "pyAlienFX.py", line 1226, in Write_Conf
self.Send_Packet()
File "pyAlienFX.py", line 1265, in Send_Packet
raise ValueError("Error while communicating with the daemon !")
ValueError: Error while communicating with the daemon !
I managed to turn the lights off during a try, but it failed after that.
Original comment by chretie...@gmail.com
on 19 Nov 2012 at 10:05
Ok that's good news !
Can you try first NOT to launch the Daemon ?
I though you used it without the daemon ! The daemon is buggy yet and I really
need to recode the whole thing xD (Then some can ask me WHY did I included it
... )
Anyway can you try without the daemon ? and Give me the whole output again ?
At least it is not as bad as I though :D
here :
Kernel Detached (on 1st trial)
CONFIGURATION SET ! (on 1st trial)
I though that I'll never get your computer to do that xD !
Now that I know it can, it's a matter of understanding what's going wrong and I
might have some ideas ! ;)
But I'll need the debug from pyAlienFX.py alone no daemon, no indicator !
Original comment by ledjfou125
on 20 Nov 2012 at 8:51
[deleted comment]
Actually I tried with and without the daemon. The result seemed to be the same.
I also manager to turn the lights off, but then everything failed.
> python pyAlienFX.py
Gtk-Message: Failed to load module "canberra-gtk-moduleanberra-gtk-module"
Initializing Driver ...
Comnputer M14XR1 found ! Loading the parameters ...
Kernel Detached (on 1st trial)
CONFIGURATION SET ! (on 1st trial)
Initializing Controller ...
the Deamon is disconnected ...
Trying to load the driver manually
Loading : ./Profiles/Default.cfg
SPEED = 63713
Initializing Interface ...
pyAlienFX.py:125: GtkWarning: Can't pass in construct-only parameters to
cancel_button
self.gtk_AlienFX_Main.add_from_file('./glade/AlienFXMain.glade')
pyAlienFX.py:125: GtkWarning: Can't pass in construct-only parameters to
ok_button
self.gtk_AlienFX_Main.add_from_file('./glade/AlienFXMain.glade')
can't detach_kernel_driver error : Entity not found
CONFIGURATION SET ! (on 1st trial)
Sending : Get Status
Packet : 02 06 00 00 00 00 00 00 00
array('B', [17, 0, 0, 0, 0, 0, 0, 0])
Sending : Get Status
Packet : 02 06 00 00 00 00 00 00 00
Sending : Reset All Lights On
Packet : 02 07 03 00 00 00 00 00 00
array('B', [17, 0, 0, 0, 0, 0, 0, 0])
Sending : Get Status
Packet : 02 06 00 00 00 00 00 00 00
Sending : Reset All Lights On
Packet : 02 07 03 00 00 00 00 00 00
Sending : Get Status
Packet : 02 06 00 00 00 00 00 00 00
array('B', [16, 0, 0, 0, 0, 0, 0, 0])
Traceback (most recent call last):
File "pyAlienFX.py", line 1108, in on_AlienFX_Menu_Light_Off
self.controller.Send_Packet()
AttributeError: AlienFX_Controller instance has no attribute 'Send_Packet'
can't detach_kernel_driver error : Entity not found
Can't set the configuration. Error : Resource busy
Traceback (most recent call last):
File "pyAlienFX.py", line 939, in on_Apply_pressed
self.Set_Conf()
File "pyAlienFX.py", line 712, in Set_Conf
self.controller.Write_Conf()
File "/home/ben/dev/pyalienfx/AlienFX/AlienFXEngine.py", line 172, in Write_Conf
self.WaitForOk()
File "/home/ben/dev/pyalienfx/AlienFX/AlienFXEngine.py", line 275, in WaitForOk
self.driver.Take_over()
File "/home/ben/dev/pyalienfx/AlienFX/AlienFXEngine.py", line 116, in Take_over
self.dev.attach_kernel_driver(0)
File "/home/ben/dev/pyalienfx/usb/core.py", line 701, in attach_kernel_driver
self._ctx.backend.attach_kernel_driver(self._ctx.handle, interface)
File "/home/ben/dev/pyalienfx/usb/_debug.py", line 52, in do_trace
return f(*args, **named_args)
File "/home/ben/dev/pyalienfx/usb/backend/libusb10.py", line 569, in attach_kernel_driver
_check(_lib.libusb_attach_kernel_driver(dev_handle, intf))
File "/home/ben/dev/pyalienfx/usb/backend/libusb10.py", line 357, in _check
raise USBError(_str_error[retval.value])
usb.core.USBError: Resource busy
Original comment by chretie...@gmail.com
on 20 Nov 2012 at 6:46
It is funny because the software is following path that aren't suppose to
happen ! I'm reallising how hard it is to code perfectly xD
Ok I corrected :
Traceback (most recent call last):
File "pyAlienFX.py", line 1108, in on_AlienFX_Menu_Light_Off
self.controller.Send_Packet()
AttributeError: AlienFX_Controller instance has no attribute 'Send_Packet'
Can you retry now ? because as you can see here :
Sending : Get Status
Packet : 02 06 00 00 00 00 00 00 00
array('B', [17, 0, 0, 0, 0, 0, 0, 0])
Sending : Get Status
Packet : 02 06 00 00 00 00 00 00 00
Sending : Reset All Lights On
Packet : 02 07 03 00 00 00 00 00 00
array('B', [17, 0, 0, 0, 0, 0, 0, 0])
Sending : Get Status
Packet : 02 06 00 00 00 00 00 00 00
Sending : Reset All Lights On
Packet : 02 07 03 00 00 00 00 00 00
Sending : Get Status
Packet : 02 06 00 00 00 00 00 00 00
array('B', [16, 0, 0, 0, 0, 0, 0, 0])
It works at least partially ! meaning that it can communicate ! No I have to
see why it is buggy like that xD !
Moreover that is happening only on Arch ...
Original comment by ledjfou125
on 21 Nov 2012 at 11:02
Hi,
Just to say that I have same issue here...
the strange thing is pyalienFX works at least one time (first time I installed
one week ago).
Since that no update and it doesn't work anymore ;)
Original comment by sauth...@gmail.com
on 20 Dec 2012 at 9:50
Hi I worked a lot on that problem but the thing is that it has to come from
Arch Linux last updates ...
But I have no idea which one ... kernel ? LibUSB ? Python ? I do not know and I
fear I'll have it too soon enought on Ubuntu ... But I don't know what to do
... maybe you'll find someone on the Arch Linux forum ?
Original comment by ledjfou125
on 21 Dec 2012 at 10:37
Hi,
I have found a workaround and the source of the problem...
I have followed this idea : if libusb is involved in the bug, why do not use
the libusb from ubuntu. In fact, using libusb from ubuntu solved the problem.
Here are the things I have done :
- copy libusb-1.0.so.0 from an ubuntu installation (/lib/x86_64-linux-gnu on my
ubuntu installation)
- in root, I have launched :
LD_PRELOAD=/path/to/copy/of/ubuntu/lib/libusb-1.0.so.0 pyAlienFX
It works (quicker than on ubuntu, no freeze at all when applying ocnfiguration)
!
So I think that we know what is the problem...
Hope this help,
BR,
Original comment by sauth...@gmail.com
on 21 Dec 2012 at 11:47
Last information : my ubuntu is 12.04 (with libusb 1.0.9 patched by ubuntu team)
On arch : libusbx 1.0.14
If someone have an Raring ubuntu platform to see if it works...
libusb 0.1.12-23+nmu1ubuntu1 (strange version number)
libusbx : 1.0.12-2ubuntu1
it's much closer to arch one (libusbx I mean because libusb version is very
strange in this ubuntu version). I don't know which one is present by default
on this version (in arch, libusb doesn't exists enaymore I think...)
Original comment by sauth...@gmail.com
on 21 Dec 2012 at 12:06
Interesting so I should make a special package for Arch Linux ! I'll do it soon
!
Thanks a lot for identifying the problem here and finding a workaround !!
:D
Original comment by ledjfou125
on 21 Dec 2012 at 2:49
[deleted comment]
Hi, I use Fedora 18 and I have the same problem.
Can you attach the libusb you use?
Thanks a lot!
Original comment by monsk...@gmail.com
on 22 Jan 2013 at 4:07
Sure thing here it is !
Original comment by ledjfou125
on 22 Jan 2013 at 5:30
Attachments:
Issue 11 has been merged into this issue.
Original comment by ledjfou125
on 17 Feb 2013 at 5:41
After this issue affected me I thought it was related to the detection of the
computer. I think that the detection message should be rewritten to say the
computer may be R1 or R2. Thanks
Original comment by antoniov...@gmail.com
on 17 Feb 2013 at 6:18
Sure, the porblem is just that R1 and R2 are using the same USB controler so
it's hard to tell which is which but I'll change it to R1/2
Original comment by ledjfou125
on 17 Feb 2013 at 9:01
Thanks!
Original comment by antoniov...@gmail.com
on 17 Feb 2013 at 9:30
Just saying... This is happening me on Debian Sid as well, with libusb version
1.0.15-1. The trick posted above with ubuntu's libusb works for the monent
Original comment by 6tsukiya...@gmail.com
on 8 May 2013 at 3:49
Just a FYI, pyAlienfx was working fine on my laptop with Fedora 17, and then
stopped working when I upgraded to Fedora 19 today. I downloaded the Ubuntu
libusb.so file from a few posts above, used the LD_PRELOAD trick, and it now
works fine.
Original comment by thepos...@gmail.com
on 10 Sep 2013 at 6:35
Having the same issue here since upgrading from Xubuntu 13.04 to 13.10.
LD_PRELOAD trick isn't working for me. Running latest from git.
- Andy
Original comment by aba...@gmail.com
on 25 Nov 2013 at 9:00
Update: I wrote a small patch that appears to fix this issue by commenting out
one of the attempts at setting a USB configuration. That one seemed to be
attempting the set while the device was busy, which caused issues. Git
available here: http://code.google.com/r/abarry-pyalienfx/source/checkout
Original comment by aba...@gmail.com
on 25 Jan 2014 at 10:19
Update: I wrote a small patch that appears to fix this issue by commenting out
one of the attempts at setting a USB configuration. That one seemed to be
attempting the set while the device was busy, which caused issues. Git
available here: http://code.google.com/r/abarry-pyalienfx/source/checkout
Master!!! You Did the trick in debian Jessie with Liquorix Kernel, Alienware
M14xR2
But The Power Button Doest Change I get This:
Traceback (most recent call last):
File "pyAlienFX.py", line 942, in on_Save_pressed
self.Set_Conf(Save=True)
File "pyAlienFX.py", line 745, in Set_Conf
self.controller.Set_Loop_Conf(Save,self.computer.BLOCK_BATT_SLEEPING)
AttributeError: M14XLight instance has no attribute 'BLOCK_BATT_SLEEPING'
Original comment by jisorian...@gmail.com
on 8 Feb 2014 at 4:33
I get that error too. I'll have to look into fixing it sometime.
Original comment by aba...@gmail.com
on 8 Feb 2014 at 5:02
Original issue reported on code.google.com by
chretie...@gmail.com
on 18 Nov 2012 at 12:37