Add support to the Alienware 15 R3 computer
alienware-kbl responds with "Your Computer is not yet supported" The window is blank (with the exception of the message) and menus are not active (except "Help"). I am running Ubuntu 16.10 (64 bit). "Computer Data" output is below.
Device: ID 187c:0530 Alienware Corporation
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 0.02
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x187c Alienware Corporation
idProduct 0x0530
bcdDevice 0.00
iManufacturer 1 Alienware
iProduct 2 AW1517
iSerial 3 02.90
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 41
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xe0
Self Powered
Remote Wakeup
MaxPower 0mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 0 No Subclass
bInterfaceProtocol 0 None
iInterface 0
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.01
bCountryCode 0 Not supported
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 56
Report Descriptors:
** UNAVAILABLE **
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x000a 1x 10 bytes
bInterval 10
Device Status: 0x0000
(Bus Powered)
Hello FarrokhNaj thanks for reporting it, I've created the testing branch and pushed some commits for start giving support to your computer. I'll be waiting for your feedback and I hope that we can make it work pretty soon :)
I downloaded and installed (via setup) the code from unstable branch. alienware-kbl still reports this computer not supported. The "Computer Data" is exactly as before. I rebooted the computer and the following showed up in syslog
Nov 26 18:30:50 Melissa systemd[1]: Started alienware-kbl daemon.
Nov 26 18:30:50 Melissa bash[3434]: The computer is not supported
Nov 26 18:30:50 Melissa systemd[1]: alienware-kbl.service: Main process exited, code=exited, status=1/FAILURE
Nov 26 18:30:50 Melissa systemd[1]: alienware-kbl.service: Unit entered failed state.
Nov 26 18:30:50 Melissa systemd[1]: alienware-kbl.service: Failed with result 'exit-code'.
Lastly, syslog was repeatedly complaining about "executable permission" on /usr/lib/systemd/system/alienware-kbl.service I changed the permission to 644 and that warning stopped, however "Computer not supported" is still there.
Thanks for your help!
Thanks for pointing the permission problem of the systemd service file. I've fixed that.
Concerning your computer, it seems pretty weird that your computer is not being recognized since I added your idVendorand idProduct...
I noticed that you closed the bug, do you want to stop adding your computer to the configuration? I'd actually like to debug and find what's going on!
Rafael:
Thanks for the reply.
I probably closed the bug by mistake. How can I re-open it? I would be happy to continue this.
I downloaded the unstable branch again and installed it (which "setup" reports installed successfully).
I ran aliwnware-kbl on command line and it generated a crash report which I have attached if it is of any help. By the way, the crash report still complains about permissions.
Thanks, Farrokh
Farrokh Najmabadi Emeritus Prof. of Electrical & Computer Engineering UC San Diego
On Sun, Nov 27, 2016 at 7:34 AM, Rafael Senties Martinelli < [email protected]> wrote:
Thanks for pointing the permission problem of the systemd service file. I've fixed that.
Concerning your computer, it seems pretty weird that your computer is not being recognized since I added your idVendorand idProduct...
I noticed that you closed the bug, do you want to stop adding your computer to the configuration? I'd actually like to debug and find what's going on!
— You are receiving this because you modified the open/close state. Reply to this email directly, view it on GitHub https://github.com/rsm-gh/alienware-kbl/issues/8#issuecomment-263128571, or mute the thread https://github.com/notifications/unsubscribe-auth/AWnazBpGuBF_MsDxadtTPomFLjMrStLwks5rCaMLgaJpZM4K7UQM .
-- Farrokh Najmabadi
Please ignore my previous message. By mistake, I had added an old crash report.
In any case, a new development. I finally managed to disable secure boot on this laptop. Alienware-kbl now starts (i.e., I get the GUI) but togging colors and/or changing intensity does not have any impact. Starting on the command line, I get the error list below when I close the program:
Traceback (most recent call last):
File "/usr/share/alienware-kbl/DefaultArguments.py", line 24, in <module>
from Paths import Paths; PATHS=Paths()
File "/usr/share/alienware-kbl/Paths.py", line 70, in __init__
shutil.rmtree(self.CONFIGURATION_PATH)
NameError: name 'shutil' is not defined
Runing without daemon.
root
profile added Default
Exception in thread Thread-9:
Traceback (most recent call last):
File "/usr/lib/python3.5/threading.py", line 914, in _bootstrap_inner
self.run()
File "/usr/lib/python3.5/threading.py", line 862, in run
self._target(*self._args, **self._kwargs)
File "/usr/share/alienware-kbl/GUI.py", line 718, in ILUMINATE_keyboard
self.controller.Write_Conf()
File "/usr/share/alienware-kbl/Engine.py", line 179, in Write_Conf
self.WaitForOk()
File "/usr/share/alienware-kbl/Engine.py", line 255, in WaitForOk
self.Get_State()
File "/usr/share/alienware-kbl/Engine.py", line 271, in Get_State
msg = self.driver.ReadDevice(request)
File "/usr/share/alienware-kbl/Engine.py", line 120, in ReadDevice
msg = self.dev.ctrl_transfer(self.READ_REQUEST_TYPE, self.READ_REQUEST,
self.READ_VALUE, self.READ_INDEX, len(msg[0].packet))
File "/usr/lib/python3/dist-packages/usb/core.py", line 1043, in
ctrl_transfer
self.__get_timeout(timeout))
File "/usr/lib/python3/dist-packages/usb/backend/libusb1.py", line 883,
in ctrl_transfer
timeout))
File "/usr/lib/python3/dist-packages/usb/backend/libusb1.py", line 595,
in _check
raise USBError(_strerror(ret), ret, _libusb_errno[ret])
usb.core.USBError: [Errno 75] Overflow
Thanks, Farrokh
Farrokh Najmabadi Emeritus Professor of Electrical & Computer Engineering UC San Diego
On Sun, Nov 27, 2016 at 7:34 AM, Rafael Senties Martinelli < [email protected]> wrote:
Thanks for pointing the permission problem of the systemd service file. I've fixed that.
Concerning your computer, it seems pretty weird that your computer is not being recognized since I added your idVendorand idProduct...
I noticed that you closed the bug, do you want to stop adding your computer to the configuration? I'd actually like to debug and find what's going on!
— You are receiving this because you modified the open/close state. Reply to this email directly, view it on GitHub https://github.com/rsm-gh/alienware-kbl/issues/8#issuecomment-263128571, or mute the thread https://github.com/notifications/unsubscribe-auth/AWnazBpGuBF_MsDxadtTPomFLjMrStLwks5rCaMLgaJpZM4K7UQM .
-- Farrokh Najmabadi
That seems like good news!
I've corrected the shutil (import error) and I've also modified the installation scripts for fixing the permissions. I actually ignore why the previous patch didn't work as expected, but I made some modifications to the setup procedure and the permissions seems to be fine now. Could you confirm this?
Concerning your problems with the GUI, you possibly had them because of the shutil import error, but it is nice that your computer is now being recognized. Normally if no error is shown, you should be able of at least turning on/off the keyboard since those hex blocks seem to be common for all the alienware computers.
Please keep me updated and thanks for your support!
As pointed by @Heerkaas this computer is not completely supported yet. I've just added the configuration so it can be detected, but I need that some one test it and tell me what are the lights problems.
F.A.Q: My computer is not supported! What can I do? & The block testing window.
Hi, I have an Alienware 15 r3 with Ubuntu 16.04. I remember that I tried this kbl in Nov. 2016 (right after purchase this laptop), but the whole system crashed as I can't even start the computer, so I have to reinstall Ubuntu. But anyway thanks for supporting. I read the above comments and think I can test it again now if I have a free weekend. I will let you @rsm-gh know the results then.
I got the following messeges with Block 1 Test. I tried a few configures but nothing happens to my kbl.
Traceback (most recent call last):
File "/usr/share/alienware-kbl/GUI.py", line 1098, in on_button_block_testing_lights_off_clicked
self.testing_controller.Reset(self.testing_driver.computer.RESET_ALL_LIGHTS_OFF)
File "/usr/share/alienware-kbl/Engine.py", line 280, in Reset
msg = self.driver.ReadDevice(request)
File "/usr/share/alienware-kbl/Engine.py", line 120, in ReadDevice
msg = self.dev.ctrl_transfer(self.READ_REQUEST_TYPE, self.READ_REQUEST, self.READ_VALUE, self.READ_INDEX, len(msg[0].packet))
File "/usr/lib/python3/dist-packages/usb/core.py", line 971, in ctrl_transfer
self.__get_timeout(timeout))
File "/usr/lib/python3/dist-packages/usb/backend/libusb1.py", line 819, in ctrl_transfer
timeout))
File "/usr/lib/python3/dist-packages/usb/backend/libusb1.py", line 552, in _check
raise USBError(_strerror(ret), ret, _libusb_errno[ret])
usb.core.USBError: [Errno 75] Overflow
Traceback (most recent call last):
File "/usr/share/alienware-kbl/GUI.py", line 1091, in on_button_block_make_test_clicked
self.ILUMINATE_keyboard_block()
File "/usr/share/alienware-kbl/GUI.py", line 662, in ILUMINATE_keyboard_block
gtk_append_text_to_buffer(self.textbuffer_block_testing,BLOCK_TEST.format( zone_block,
NameError: name 'BLOCK_TEST' is not defined
Hi @Zephyr-D, I just fixed the bug you found on the block testing window, it should now work!
That's great! Thank you very much for debugging (though it seems still works to do) Now I got the following test result. BTW, do I have to reinstall it (run 'setup' again) after git pull with updates?
[Device found]: Vendor ID: 6268 Product ID: 1328
Traceback (most recent call last):
File "/usr/share/alienware-kbl/GUI.py", line 1098, in on_button_block_testing_lights_off_clicked
self.testing_controller.Reset(self.testing_driver.computer.RESET_ALL_LIGHTS_OFF)
File "/usr/share/alienware-kbl/Engine.py", line 280, in Reset
msg = self.driver.ReadDevice(request)
File "/usr/share/alienware-kbl/Engine.py", line 120, in ReadDevice
msg = self.dev.ctrl_transfer(self.READ_REQUEST_TYPE, self.READ_REQUEST, self.READ_VALUE, self.READ_INDEX, len(msg[0].packet))
File "/usr/lib/python3/dist-packages/usb/core.py", line 971, in ctrl_transfer
self.__get_timeout(timeout))
File "/usr/lib/python3/dist-packages/usb/backend/libusb1.py", line 819, in ctrl_transfer
timeout))
File "/usr/lib/python3/dist-packages/usb/backend/libusb1.py", line 552, in _check
raise USBError(_strerror(ret), ret, _libusb_errno[ret])
usb.core.USBError: [Errno 75] Overflow
[TEST]: block: 1 hex: 0x1 mode:blink speed:1 color1:#00ff00 color2: #00ff00
Traceback (most recent call last):
File "/usr/share/alienware-kbl/Engine.py", line 127, in Take_over
self.dev.set_configuration()
File "/usr/lib/python3/dist-packages/usb/core.py", line 799, in set_configuration
self._ctx.managed_set_configuration(self, configuration)
File "/usr/lib/python3/dist-packages/usb/core.py", line 128, in managed_set_configuration
self.backend.set_configuration(self.handle, cfg.bConfigurationValue)
File "/usr/lib/python3/dist-packages/usb/backend/libusb1.py", line 730, in set_configuration
_check(self.lib.libusb_set_configuration(dev_handle.handle, config_value))
File "/usr/lib/python3/dist-packages/usb/backend/libusb1.py", line 552, in _check
raise USBError(_strerror(ret), ret, _libusb_errno[ret])
usb.core.USBError: [Errno 16] Resource busy
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/share/alienware-kbl/GUI.py", line 1091, in on_button_block_make_test_clicked
self.ILUMINATE_keyboard_block()
File "/usr/share/alienware-kbl/GUI.py", line 679, in ILUMINATE_keyboard_block
self.testing_controller.Write_Conf()
File "/usr/share/alienware-kbl/Engine.py", line 179, in Write_Conf
self.WaitForOk()
File "/usr/share/alienware-kbl/Engine.py", line 254, in WaitForOk
self.driver.Take_over()
File "/usr/share/alienware-kbl/Engine.py", line 129, in Take_over
self.dev.detach_kernel_driver(0)
File "/usr/lib/python3/dist-packages/usb/core.py", line 1005, in detach_kernel_driver
interface)
File "/usr/lib/python3/dist-packages/usb/backend/libusb1.py", line 838, in detach_kernel_driver
_check(self.lib.libusb_detach_kernel_driver(dev_handle.handle, intf))
File "/usr/lib/python3/dist-packages/usb/backend/libusb1.py", line 552, in _check
raise USBError(_strerror(ret), ret, _libusb_errno[ret])
usb.core.USBError: [Errno 2] Entity not found
Ah, it seems to be an usb.core.USBError error.. those are hard to fix ! I'll see what I can do..
Anyways, thanks for your feedback @Zephyr-D , and yes, you should run the setup every time that there's an update!
O! I just installed ubuntu myself and I'm getting the same error. NAME="Ubuntu" VERSION="17.04 (Zesty Zapus)" ID=ubuntu ID_LIKE=debian
My alienware is M14x tho'...
hi @razvanc-r have you tried the solution of @KickinWingAnimalDoctor that is given here? It is probably due to the libusb version.
I recently tested the software under Ubuntu 16.04.2 and everything worked alright, I'll check the 17.04...
@rsm-gh honestly, I have no idea what this is all about. I didn't try compiling libusb from source, I'd be ok with doing that if I were to do stuff in the $HOME folder, but at the OS level let's just say that I had bad experiences and I'd like to keep away from experimentation. Those instructions from @KickinWingAnimalDoctor are not very specific, except for the DATA_LENGTH thing.
Thing is, the Alienware-KBL GUI works (probably with some errors in the background) and I'm happy enough with this. Sure, would be nice to have it functioning as it should, if there wouldn't be any messing with the OS I'd be happy to look into it, but oh well...
In any case, I checked the libusb version from Ubuntu 17.04 repositories and it's the latest, unless they did something in their master branch, compiling the latest stable libusb shouldn't have any effect.
Thanks for the hard work, even if it has bugs, it's still better than nothing! :)
@rsm-gh I'm having the overflow USB error on Kubuntu 17.10. Is there something I can do to help out? With some guidance I could work on the code as well.
@butla try by using the block testing window, and changing the DATA_LENGTH variable from 9 to 12. It may fix the problem
@rsm-gh Ok, I set the DATA_LENGTH to 12 in /usr/share/AlienwareKBL/Configuration/Computers.py, restarted alienware-kbl service (so that the daemon picks up the change) and I was able to turn the lights off and on. But the colors and zones are all messed up. And the power button blinks from time to time :)
I'd be able to do more good if I understood how to read USB packets captured with USBCap on Windows. Do you know of any good guides for that? Then I'd know what exactly alienwa-kbl is doing wrong and I could maybe fix it.
As I suggested there's no need in modifying the Computers.py file. You can simply use the block testing window alienware-kbl --block-testing and test the parameters in there. It will also allow you to try to check the colors, the zones etc.
About the USB packets, well, you can read the debug messages of alienware-kbl, sadly I haven't wroten info about it and even some parts are mysterious to me.
For me the best thing you can do is to play with the block testing window, and if it doesn't succeeds, well, try to really understand the USB part.
Good luck !
Iam having this errors, computer is detected (15 R3)
ERROR from
/usr/share/AlienwareKBL/Bindings.pyon method_command: Command=set_lights, arguments=[root,False] Traceback (most recent call last): File "/usr/share/AlienwareKBL/Bindings.py", line 54, in _command response = getattr(self._pyro, command)(*args) File "/usr/lib64/python3.5/site-packages/Pyro4/core.py", line 185, in call return self.__send(self.__name, args, kwargs) File "/usr/lib64/python3.5/site-packages/Pyro4/core.py", line 454, in _pyroInvoke data = serializer.deserializeData(msg.data, compressed=msg.flags & message.FLAGS_COMPRESSED) File "/usr/lib64/python3.5/site-packages/Pyro4/util.py", line 170, in deserializeData return self.loads(data) File "/usr/lib64/python3.5/site-packages/Pyro4/util.py", line 558, in loads return self.recreate_classes(serpent.loads(data)) File "/usr/lib64/python3.5/site-packages/Pyro4/util.py", line 411, in recreate_classes return self.dict_to_class(literal) File "/usr/lib64/python3.5/site-packages/Pyro4/util.py", line 575, in dict_to_class return super(SerpentSerializer, cls).dict_to_class(data) File "/usr/lib64/python3.5/site-packages/Pyro4/util.py", line 390, in dict_to_class raise errors.SerializeError("unsupported serialized class: " + classname) Pyro4.errors.SerializeError: unsupported serialized class: usb.core.USBError
Need some help here.. thanks
@josedellabosca You're having the same errors as I am (checkout my description in #39). The fix would require sending a differently assembled set of usb commands to the controller on R3, so that's some more logic to write.
I could do that, but I don't understand the protocol yet. But I'm planning on having an USB capture session with AlienwareFX on Windows at one point.
I confirm having same issue.
With the current version on git, this works:
index 1df273b..3d482d6 100755
--- a/usr/share/AlienwareKBL/Configuration/Computers.py
+++ b/usr/share/AlienwareKBL/Configuration/Computers.py
@@ -39,7 +39,7 @@ class Computer:
self.VENDOR_ID = 6268
self.PRODUCT_ID = None
self.SUPPORTED_COMMANDS = 15
- self.DATA_LENGTH = 9
+ self.DATA_LENGTH = 12
self.START_BYTE = 2
self.FILL_BYTE = 0
hi @hawkowl thanks for the feedback ! can you give more details please? does all the options work? are all the zones okay?
Regards
Hi I also have an alienware 13 R3. When I changed from
self.DATA_LENGTH = 9
to
self.DATA_LENGTH = 12
I can use this tool to change the colors. BUT the colors I select are not the ones I get physically
@hawkowl fix allows me to switch off the lights on a 15 R3 via the gui, but everything else appears to be broken, for colors cannot be set. Even turning the lights back on messes up the configuration
EDIT: actually... Just run a few more tests. Colors do not work correctly as reported by @DerThorsten, with the exception of black and red. Also, my alienware head keeps blinking every so often.
Also, the following aprts are not mapped correctly: speaker left => led on the right of the keyboard (not the keyboard lights themselves) speaker right => led on the left side of the screen touchpad => led on the left of the keyboard (not the keyboard lights themselves) tact-x => led on the right side of the screen
By @Soulsuke, pull 45:
This allows to identify the correct zones on Alienware 15R3, and to actually change their colors.
There are still some issues though:
Organize "Side" areas to be shown near eachother in the GUI Colors chosen are not the one displayed (eg. #0000FF becomes green when applied) Alienware HEAD is sort of buggy
@rsm-gh I'm sorry to be that guy... But e31de336bfa52939215672d57d3b933b8eaab012 put back in erroneous area names for 15 R3. This model has some side stripes which replace some areas of other models (eg. speakers)...
@Soulsuke I'm currently working in some big improvements for the multi-computer support. If when launching the GUI, the computer is recognized as an "Alienware15 R3" then your remarks may be accurate.
Recently I noticed that the "Alienware15 R3" has the same idProduct than the "M17X R4" and that can be really problematic.
I haven't fixed that problem because I'm currently working in a new color toolbar. After taking a deep look to those 2 subjects, I'll come back to this thread to check if the error that you are reporting is really because of the configuration file.
Anyways, feel you free of pushing your corrections to the configuration file, if you think that it is wrong.
Regards! rsm
I'm gonna close this thread for the following reasons:
- Its kinda dead
- It has too much information
- The computer is now kinda supported
Users following this thread may be interested by Alienware 15 R3 Colors.
Regards,
Hello,
An update on this, I just remember that this may be caused because of the LD_PRELOAD patch:
LD_PRELOAD=/usr/share/alienware-kbl/libusb_patch/libusb-1.0.so.0
maybe updating the library or removing the patch will work for you. Some info here: https://github.com/rsm-gh/akbl/issues/3