Forgot your password?
Hardware Hacking

Journal: How to get Xilinx' ISE WebPACK 10.1 to run under (K)Ubuntu

Journal by jdb2
How to get Xilinx' ISE WebPACK 10.1 to run under (K)Ubuntu

Having moved from Windows to Linux over a year ago, I've been migrating what I used to do while imprisoned by Microsoft to the free world of Linux. One of these things is digital hardware design via FPGAs. I'd used to use Xilinx' tools under Windows, but since I had no Windows installation save for VMWare I needed to get the latest WebPACK tools running under Kubuntu ( 8.04 ) -- Xilinx' tools are officially only supported under RHEL and Suse. Here's my step-by-step guide on how to do it.
  1. First you'll need some prerequisites in the form of shared libraries and the portmap server.
    • sudo apt-get install libmotif3
    • sudo apt-get install portmap
    • sudo apt-get install libstdc++5
  2. Unzip the installation package : unzip -d webpack
  3. Run the installation script : cd webpack ; sudo -E ./setup
  4. Set up the startup script
    1. cd /opt/Xilinx/10.1/ISE ; sudo cp /usr/local/bin/startise
    2. sudo echo -e 'export DISPLAY=:0\nexport LD_PRELOAD=/opt/usb-driver/\nexec ise' >> /usr/local/bin/startise

      ( The 'LD_PRELOAD' will be explained later.)

    3. sudo chmod +x /usr/local/bin/startise

    Remember *Don't execute startise yet* -- we're not finished. :)

  5. Getting the cable to work

    Xilinx' jtag cable (usb and parallel) programming drivers are compiled against specific versions of RHEL and Suse so we can't use them. But, luckily there is a user mode driver that emulates their functionality. This is the driver that the LD_PRELOAD environment variable points to. We need this as it tells the loader to override the RHEL/Suse shared library dependencies in Xilinx' iMPACT tool with our own custom shared library.

    1. sudo apt-get install libusb-dev
    2. wget ';h=HEAD;sf=tgz'
    3. tar xvzf usb-driver-HEAD.tar.gz
    4. cd usb-driver ; make
    5. sudo mkdir /opt/usb-driver ; sudo cp /opt/usb-driver
    6. ( Some of the following may be redundant. Better safe than sorry though )
      sudo usermod -a -G lp,scanner root ; sudo usermod -a -G lp,scanner [YourUserName]

  6. Setting up your environment
    1. cd ; mkdir Xilinx ; cd Xilinx ; cp /opt/Xilinx/10.1/ISE/ .
    2. cd .. ; echo -e 'source /home/[YourUserName]/Xilinx/' >> .bashrc
  7. You're done -- just type startise to launch ISE WebPACK 10.1 . Happy FPGA/CPLD programming! :)

If you find any omissions or errors in this guide please comment

User Journal

Journal: This just in : Either the mods are morons or my humor sucks

Journal by jdb2
Well, I decided to test my sense of humor today by posting something jocular and on-topic. Apparently, either my humor suuuuuuuucks or the mods were particularly clueless. Just look or do a search for scatological and sexual humor on /. and you'll find loads of +5 Funny 's. Particularly ironic is the fact that you'll find that when the above gets combined with any Star Trek reference, it's almost always up-modded. Well, like I said, either my humor does indeed suck donkey balls or the mods are clueless as usual. Their brains were apparently unable to find this obvious line of thought, at least for the "Off Topic" part :

Nanotubes -> nanoprobes -> Borg -> Star Trek Voyager -> 7 of 9 -> Joke involving nanoprobes and 7 of 9's huge pleasure pillows.

Oh well.

User Journal

Journal: De-MarketSpeak translation of Microsoft"'s" "SIP"

Journal by jdb2
Since one can't post and moderate in the same thread, I'm posting this here :

"SIP", or "Software isolated processes" is just MS marketing hype speak for what is known as a Language-based system in which seperate processes can be isolated from one another without paging or other hardware protection mechanisms. This is done using the semantics of the language in which the processes are programmed which excludes any possibility of one process intruding into the address space of another. .

One example of a similar OS would be Bell Labs' Inferno. ( thanks to Knots for pointing this out ) Also, there's JX, which is an open-source microkernel based operating system in which the (micro)kernel and the applications are written in Java and run under a modified version of the JVM.

User Journal

Journal: Making Use of Terabytes of Unused Storage

Journal by jdb2
It seems no one really provided a satisfactory answer to your problem.
Here's a relatively elegant (if I may say so myself ;) and simple solution :

To be more detailed, first create a uniquely named empty directory on each
drive and set it to shared in Windows. ( eg. D1, D2 .. D105 - This can be
done with a script ) Then, set up a Linux system running Samba and UnionFS.
Mount all of the Windows shares on the Linux box. ( again, a script ) Next
create some new directory -- say "D-Store". Then use something like
'mount -t unionfs -o dirs=D1=rw:D2=rw:... unionfs D-Store' to make a union
of all these directories. Lastly, make "D-Store" a Samba share.
And, you're done. :)

Hope this helps.



P.S. You can use RAIF ( an error-correcting redundant extension to UnionFS )
if you want to ensure data integrity. ( works like RAID, but with file
systems )


"Just think of a computer as hardware you can program." -- Nigel de la Tierre