Xilinx USB JTAG Platform Cable Vivado Linux

If you work with Xilnx Vivado Design Suite [1] for FPGA development using USB JTAG interface such as Xilinx USB Platform Cable [2] or its cheaper clone from WaveShare [3], everything seems to be connected properly, but it cannot find the Target for programming, you probably need to perform drivers setup manually [4]. Error message looks like this:

ERROR: [Labtoolstcl 44-494] There is no active target available for server at localhost.
Targets(s) ", jsn3" may be locked by another hw_server.

Error message may indicate that another instance of hw_server is running in the background but that is not the case. Check your drivers first [4]. Some hints:

  • Run as root and be careful as this will modify your OS.
  • Install script location is Vivado/2020.2/data/xicom/cable_drivers/lin64/install_script/install_drivers.
  • Platform Cable USB interface is pcusb.
  • Make sure UDEV rules are installed in /etc/udev/rules.d/ (i.e. 52-xilinx-pcusb.rules file).
  • After drivers are set up remember to restart UDEV with service udev restart command and re-attach your USB JTAG cable.

[1] https://www.xilinx.com/products/design-tools/vivado.html
[2] https://www.xilinx.com/products/boards-and-kits/hw-usb-ii-g.html
[3] https://www.waveshare.com/platform-cable-usb.htm
[4] https://www.xilinx.com/support/answers/54381.html

Why Linux Sux?

Imagine you have a disk full of your precious data that you want to mount to a new Ubuntu Linux system and add user to match the existing home directory.

# adduser user
Adding user `user' ...
Adding new group `user' (1000) ...
Adding new user `user' (1000) with group `user' ...
Creating home directory `/home/user' ...
Stopped: Couldn't create home directory `/home/user': File exists.

Removing directory `/home/user' ...
Removing user `user' ...
Removing group `user' ...
groupdel: group 'user' does not exist
adduser: `groupdel user' returned error code 6. Exiting.

Now you can say your all precious data goodbye. No questions asked. Core Linux utility adduser just found your existing data and erased them without even asking. The years is 2021 (30 years since Linux was created).

This is why for over 15 years I am only working with BSD Operating Systems [1] [2] [3] [4]. Its Open-Source with long-term maintenance and self-compatibility in mind.  BSD license is even more liberal than GPL for your products [5]. You should try BSD too :-)

[1] https://www.freebsd.org/
[2] https://www.openbsd.org/
[3] https://netbsd.org/
[4] https://www.dragonflybsd.org/
[5] https://en.wikipedia.org/wiki/List_of_products_based_on_FreeBSD

Docker and Travis are Linux only solutions

If you wonder to use Docker [1] or Travis CI [2] for build test or more advanced automation, note that these are Linux [3] only solutions and will not work with other operating systems such as FreeBSD [4]. You may want to take a look at old good Jenkins [5] for wider application possibilities :-)

[1] https://www.docker.com/
[2] https://travis-ci.org/
[3] https://www.linux.com/
[4] https://www.freebsd.org/
[5] https://jenkins.io/

RAID HDD and UEFI BIOS

If you want to build your own disk array, let’s say RAID, on your computer to increase disk space and efficiency, you should know about few important things in general:

  • You can consider MBR and x86 obsolete. New way is GPT, UEFI, AMD64.
  • Large RAID arrays (over 2TB) will not work with older hardware and OS (except FreeBSD) due to architecture limitations.
  • To use large RAID volumes you must use GPT partition scheme. MBR will not do the job.
  • Some systems can use GPT only with UEFI BIOS (i.e. Windows works with GPT only via UEFI). You may be forced to buy new motherboard.
  • UEFI and GPT is totally different way of bootstrap so you can forget what you know about BIOS and MBR here.
  • Hard Drives have hidden corruption-fix mechanisms in firmware that will make your RAID array fail to operate. For RAID choose dedicated drives such as WD RED (not Green, not Black, not Blue).

In order to use GPT and UEFI I have replaced my nice ASUS M4A88TD-V EVO/USB3 motherboard with M5A97 R2.0 only because M4 series did not support UEFI. New BIOS is totally different, but I am not really sure if replacing the hardware was mandatory..

Summing up, if you want to use large RAID volumes make sure first that you can use GPT and UEFI BIOS is present on your AMD64 hardware. If not, still you can use the FreeBSD as it knows how to bypass some limitations. Also remember to use dedicated HDD for RAID operations.

GRUB2 default boot menu entry

Q: How to change the default boot menu entry in GRUB2 used widely on Linux systems?

A: You can do it easily as root in three following steps:

  1. Run update-grub program and copy entry name that you want to make default.
  2. Edit /etc/default/grub and add or modify existing GRUB_DEFAULT="your_menu_entry_here".
  3. Run update-grub program again to update the grub bootloader configuration.

LanManager

Lanmanager to prosty system zarządzania dostępem do routera uniksowego, napisany na potrzeby sieci komputerowej, ułatwiający egzekwowanie opłat. W bardzo prosty sposób pozwala udostępnić połączenie internetowe oraz zasoby serwera jedynie wskazanym komputerom z sieci wewnętrznej.

Read More