AlienFX Lite (Linux + Windows AlienFX tool)

Discussion in 'Alienware' started by Wattos, Feb 10, 2010.

Thread Status:
Not open for further replies.
  1. tepp

    tepp Notebook Enthusiast

    Reputations:
    0
    Messages:
    32
    Likes Received:
    8
    Trophy Points:
    16
    OK, for Windows users, here's how I think you can get this working, or at least a good start.

    NOTE: I did this on Windows 7, no idea about Win 8

    NOTE: The pyalienfx project seems to have the PyUSB project code embedded directly in it, which is important to know.

    Download the newest libusb code from the supposed legacy libusb project site (this project is currently maintained, but the libusb.info site claims libusb.org is obsolete... is this just arrogance or is there a technical difference?):

    http://sourceforge.net/projects/libusb/files/libusb-1.0/

    Navigate to your desired (usually the newest) package and make sure to download the "-win" file, such as libusb-1.0.19-rc1-win.7z. Once you have the package, extract the file "libusb-1.0.dll" from the "MS32\dll" folder and put it somewhere in the Python path on your system. For me, although C:\Windows\System 32 is in my path on the command line, it's not in Python's path. Whatever, I just put the file in C:\Python27 and Python found it there. Good enough.

    Note - there are a few other libusb and/or libusb-windows projects out there, and maybe they would also work, but I didn't try them.

    EDIT: It appears you might also need to assign a driver specifically for the ALienFX device on your system in addition to all this. I have seen Python be able to connect to the device without doing this, which confuses me a little and makes me wonder if this step is necessary, but it might be.... go get Zadig: http://zadig.akeo.ie/ and follow the instructions - you may need to tell it to show all devices if there is already a driver assigned to the device, but everything should be obvious. Use the WinUSB driver. You can always go find that device in your device manager and roll back the driver if you need.

    For pyAlienFX, you can skip the installation entirely, since it's broken and irrelevant on Windows. Go to the place you extracted the pyalienfx package and execute pyAlienFX_daemon.py directly. EDIT: however, the GUI seems to be launched with the "Indicator" file, and that code is built with all kinds of assumptions that you are using Unity. Did someone claim this was portable?!? Not in the least. One package the author leans on in no small way is appindicator, but he completely fails to mention this. What's more, appindicator seems to be iffy when you leave Unity, so the pyAlienFX code may not work in other Linux environments, not to mention Windows. Why would there even be any hints dropped that it "might" work on Windows????!!!!! It is not compatible with Windows. End of story.

    Oh, and just another note of Windows incompatibilities: the calls to (de/a)ttach_kernel_driver are not implemented in Windows and need to be skipped as such. (in the AlienFXEngine.py file)
     
    Last edited: Feb 17, 2015
  2. tepp

    tepp Notebook Enthusiast

    Reputations:
    0
    Messages:
    32
    Likes Received:
    8
    Trophy Points:
    16
    How to add your computer to the list of known computers if it's not already there. In Linux, people seem to be doing this:

    sudo lsusb | grep -i alien

    Output seems to be like this:

    Bus 002 Device 005: ID 187c:0513 Alienware Corporation

    The needed vendor ID is always the same: 187c and in this case, the product ID is 0513 (both in hex).

    In Windows, I just fished around in the Device Manager until I found a HID device (it's very generic looking, no indication what it is or what it does, or that it comes from Dell), clicked on its properties and saw that same vendor ID and a very similar product ID.

    Note, Alienware 18 product ID seems to be 0523

    FYI, here's the latest list of supported computers and a discussion with people trying to add their devices:

    https://code.google.com/p/pyalienfx/wiki/SupportedComputer

    Also, note that the current release package for pyalienfx does NOT have all the latest computers. You can get the newest code by going here and downloading a zip of the code (https://code.google.com/p/pyalienfx/source/browse/).
     
    Last edited: Feb 17, 2015
  3. tepp

    tepp Notebook Enthusiast

    Reputations:
    0
    Messages:
    32
    Likes Received:
    8
    Trophy Points:
    16
    [deleted]
     
    Last edited: Feb 17, 2015
  4. Mobius 1

    Mobius 1 Notebook Nobel Laureate

    Reputations:
    3,440
    Messages:
    9,069
    Likes Received:
    6,375
    Trophy Points:
    681
    Just requesting a help, you seem to have extracted the AlienFX program.

    Is it possible that you remove a part of the program that checks if your motherboard is dell/3rd party so AlienFX would work on desktop Alienware with 3rd party motherboard?

    Thanks in advance!
     
  5. tepp

    tepp Notebook Enthusiast

    Reputations:
    0
    Messages:
    32
    Likes Received:
    8
    Trophy Points:
    16
    If you're asking me, I'm not sure. I am digging around in pyAlienFx not the java program that this thread started with. But having read through the python version a bit, it's all down to finding the correct USB hardware IDs (vendor and product). For most Dell products, the vendor ID is the same, but I'm not sure what device you have in your desktop and if it would have a different vendor ID. Moreover, the protocol spoken by the AlienFX device is specific to how Dell built it, so you'd need to figure out if what you have is compatible with that as well.
     
  6. tepp

    tepp Notebook Enthusiast

    Reputations:
    0
    Messages:
    32
    Likes Received:
    8
    Trophy Points:
    16
    So after spending way too much time digging around in pyAlienFX and finding it to be built in a non-portable manner (to be nice), I am thinking that it would be nice to have a Python AlienFX app that works in Windows. From what I understand, the Java version might be dead, but I also refuse to install Java on my machine.

    It may be possible to salvage some of the pyAlienFX code to shortcut the work needed on the protocol end of things, but I am out of time for now to try to reverse engineer how the pyAlienFX_Indicator.py code sends requests via the daemon to pyAlienFX_Engine.py (yes, you'll have to deconstruct another protocol which is not documented at all).

    Since I only change colors and whatnot very rarely, I don't see that a GUI is necessary...

    Would be fun to take this project and keep building it, but I personally have to let this lay for now so I hope someone else can pick it up. Read my posts above for hints on what you need to pull out of the code if you borrow from pyAlienFX.
     
Loading...
Thread Status:
Not open for further replies.

Share This Page