We could do what most people do, plug the USB drive in to PC. Boot it or reboot it in single boot mode. Select the USB-drive to boot from. Boot and start a Linux Mint installation. This will perfectly work but I learned that then after install the system is as slow at startup and functionality as Windows is. So we can do better with a small amount of extra work. That’s why we created the Gparted USB-drive.
Insert the Gparted USB-drive and boot or reboot the PC. Enable the BIOS menu(s) (press F12 at boot for a Dell PC) and set the PC to boot from the USB-drive. Save and close the settings and let the PC boot in Gparted mode.
When Gparted started, make the Gparted view/window as big as possible (get a good overview).
If the partition table attribute reads msdos
instead of gpt
, then it's wrong and need
to be changed. Select the disk of which you want to change the partition, then select [Device]-[Create Partition Table]
from the menu. A warning about destroying all data will pop up. The warning contains the current type of the partition msdos
what is the old format. Click msdos
and select in the presented list gpt
.
All other options are for other operating systems or architectures.
REMARK 1: If a warning displays that the device contains active partitions, unmount these first (2). Note that you cannot unmount partitions of your currently running operating system.
REMARK 2: Unfortunately creating/changing a new partition table destroys the existing one and all data on the disk.
REMARK: When installing on other PC brands, similar options as discussed above are available in the BIOS. Sometimes a extra option need to be set in order to make the PC boot in UEFI configuration before loading other drivers. Make sure to set this option.
You should have now a very fast booting Linux Mint PC.
Be aware that after the first reboot the OS will want to install a big amount of updates!
Allow this to happen.
REMARK: The first time the software updater starts it will ask to setup system snapshots.
Follow the procure to do this. System snapshots will be taken from that moment on regularly base and can save you life later on.
This is something everybody needs to do following his/her own taste and colors. The chapter below only provides a set of basic customisation making the use of Mint more enjoyable.
TLP is a great command line tool for improving the battery performance for your laptop running Linux mint 19. This advanced power management tool comes with automated background tasks which can help you get the most out of your battery.
To install TLP in Linux Mint 19,
sudo add-apt-repository ppa:linrunner/tlp
sudo apt update
sudo apt install tlp tlp-rdw
sudo tlp start
Most noteworthy is that the default settings would be the recommended one and that it is safe to assume that it would do well enough.
A must have these days in my opinion.
Install openVPN and subscribe to a VPN provider as NordVPN.
Reading package lists... Done
Building dependency tree
Reading state information... Done
openvpn is already the newest version (2.4.4-2ubuntu1.3).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
This is a lot handier than running a VPN connection from the terminal.
Advantages:
As easy as it is now to start a VPN session, it is required to each time perform the manual operation to start the VPN service. If you forget to do it, you are vulnerable.
When rebooting or booting the PC a VPN connection is automatically established and internet connection is always secure. It is also still possible to switch or close the VPN connection using the Network Manager in the bottom right of the screen
Having a Network Attached Storage (NAS) device for storing backups, photos, music, movies and lots of other things is no longer a luxury. Those NAS devices are most of the time equipped with dual harddisks providing a very safe way to store all kinds of data that cannot be lost. NAS devices can be accessed different ways; some have a web/browser interface but all support SMB (samba) and/or NFS (Network File System) access.
Years ago I’ve been told NFS was difficult to setup and not user friendly and … thus I’ve used for a long time samba to access my NAS devices. Accessing the NAS that way turned very often into issues/problems of folders not wanting to mount, NAS not found, and …. Therefore I decided to try NFS and surprisingly its relative easy to setup, supported in all Linux distributions and access and transfer speed are fast. So, I’m thus setting up on every Linux PC in house a NFS connection to the NAS.
Static NFS mounts
Since the NAS is always running, I setup static NFS mounts, this way:
user@hostname:~$ showmount -e 192.100.1.1
Export list for 192.100.1.1:
/volume1/PublicMedia 192.100.1.1/255.255.255.192
/volume1/Family 192.100.1.1/255.255.255.192
/volume1/Josephine 192.100.1.1/255.255.255.192
/volume1/Marcel 192.100.1.1/255.255.255.192
Explained with an example:
Here is the list of programs and tools installed on my computer but depending on what you use the computer for you might need other tools.
What is it:
Rhythmbox is a music playing application for GNOME and gnome oriented desktop environments as Cinnamon.
Installation:
Rhytmbox itself is pre-installed with Mint/Ubuntu. When the earlier given instructions for enabling of Bluetooth are followed, Rhytmbox can be used with Bluetooth speakers, headphones or other. The only thing missing is a good equalizer tool to adjust sound to your mood.
When searching the web for install instructions, sometimes the instruction to install "rhytmbox-plugin-complete" is given. THIS IS WRONG! Follow below instructions.
sudo add-apt-repository ppa:fossfreedom/rhythmbox-plugins
sudo apt update
sudo apt install rhythmbox-plugin-equalizer
What is it:
Synaptic is a graphical package Manager for apt (apt-get). Allows to install, remove packages (programs) in the system, and perform other actions associated with managing packages.
Installation:
According to the utility's official documentation: "GDebi lets you install local deb packages resolving and installing its dependencies. apt does the same, but only for remote (http, ftp) located packages."
Starting with GNOME 3.0, for storing system settings uses the GSettings framework, based on the file format dconf. GSettings is used to store environment settings and applications and track their changes. For the user and the applications they are represented as a single "tree" of options, like the Windows registry. In addition, GSettings allows system administrators to limit the change of those or other settings, making them mandatory for users. dconf is a low-level configuration system, the configuration system is based on keys, which stores the settings for most applications. The configuration keys are in the unstructured database (keys are logically interconnected grouped into categories), the key database is stored in a binary file located:
Clean Your System and Free Disk Space. When your computer is getting full, BleachBit quickly frees disk space. When your information is only your business, BleachBit guards your privacy. With BleachBit you can free cache, delete cookies, clear Internet history, shred temporary files, delete logs, and discard junk you didn't know was there. Designed for Linux and Windows systems, it wipes clean thousands of applications including Firefox, Internet Explorer, Adobe Flash, Google Chrome, Opera, Safari,and more. Beyond simply deleting files, BleachBit includes advanced features such as shredding files to prevent recovery, wiping free disk space to hide traces of files deleted by other applications, and vacuuming Firefox to make it faster. Better than free, BleachBit is open source.
Keep everything organized without breaking your flow. Dropbox brings your files together, in one central place. They’re easy to find and safely synced across all your devices—so you can access them anytime, anywhere. No more wasting the day tracking down work.
Java is a programming language and computing platform first released by Sun Microsystems in 1995. There are lots of applications and websites that will not work unless you have Java installed, and more are created every day. Java is fast, secure, and reliable. From laptops to datacenters, game consoles to scientific supercomputers, cell phones to the Internet, Java is everywhere! The Java slogan of Oracle: Java Powers Our Digital World
/usr/lib/jvm/jdk-12.0.2/bin/java
sudo update-alternatives --install "/usr/bin/java" "java" "<some_path>/bin/java" 1500
sudo update-alternatives --install "/usr/bin/javac" "javac" "<some_path>/bin/javac" 1500
The <some_path> is the retained path discovered in gdebi.
sudo update-alternatives --config java
here are 2 choices for the alternative java (providing /usr/bin/java).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/lib/jvm/jdk-12.0.1/bin/java 1500 auto mode
1 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1101 manual mode
2 /usr/lib/jvm/jdk-12.0.1/bin/java 1500 manual mode
Press <enter> to keep the current choice[*], or type selection number: ^C
# Oracle Java
JAVA_HOME=/usr/lib/jvm/jdk-12.0.1/bin/java
sudo apt update
a message as below can be displayed
Reading state information... Done
2 packages can be upgraded. Run 'apt list --upgradable' to see them.
It is possible to run apt with suggested options in order to get the packages updated/upgraded but it is possibly easier to do the graphical way.
After doing this regularly checking the icon in the taskbar keeps the machine up to date with the latest packages.
The Belgian eID is an essential element in the chain of trust that provides a framework for safe digital exchanges. By its virtue of certifying the identity of the person doing the exchange and protecting access to citizens' data, the Belgian eID card actively participates in the success of e-Government policy.
sudo apt update (the terminal output should include repositories for Eid)
sudo apt install eid-mw
sudo apt install eid-viewer
Cheese for Linux uses your webcam to take photos and videos, applies fancy special effects, and lets you share the fun with others. Under the hood, Cheese uses GStreamer to apply fancy effects to photos and videos. With Cheese it is easy to take photos of you, your friends, pets, or whatever you want and share them with others.
Deluge is one of the most used torrent downloaders. It’s stable and easier to use as any other torrent client but the team makes it more stable by providing fix updates.
sudo add-apt-repository ppa:deluge-team/ppa
sudo apt update
sudo apt install deluge
Although the default settings work pretty well, it might be useful to tune Deluge for a faster, better download experience. Possibly you can then use this web site. To make Deluge use a VPN connection and that VPN connection only, go here for instructions. With this script installed when there is no VPN running Deluge is killed.
A screencasting tool for Linux. Vokoscreen is a new application that helps you to record your Linux desktop. It’s very simple and it uses a minimalistic GUI.
sudo add-apt-repository ppa:vokoscreen-dev/vokoscreen
sudo apt-get update
sudo apt-get install vokoscreen
sudo add-apt-repository ppa:pmjdebruijn/darktable-release
sudo apt-get update
sudo apt install darktable
Pinegrow is a non-free web editor that lets you build responsive websites faster with live multi-page editing, CSS & SASS styling, CSS Grid editor and smart components for Bootstrap, Foundation and WordPress.
sudo apt-get update
sudo apt-get install libnss3
cd /opt
sudo mkdir Pinegrow
cd Pinegrow
[Desktop Entry]
Name[en.US]=Pinegrow
Comment=Create Amazing Web Sites
GenericName=HTML Editor
StartupNotify=true
Terminal=false
Type=Application
Categories=Application
Icon=/opt/Pinegrow/Pinegrow.png
Exec=/opt/Pinegrow/PinegrowLibrary
Keywords=webpages;web;
Categories=GNOME;GTK;Internet;
/home/<user>/.local/share/applications
REMARK: It's possible that the directory applications does not exist. If that is the case create the directory and copy then the pinegrow.desktop file into it.
The Free & Open Source Image Editor
GIMP stands for the GNU Image Manipulation Program. GIMP is a cross-platform image editor available for GNU/Linux, OS X, Windows and more operating systems. It is free software, you can change its source code and distribute your changes. Whether you are a graphic designer, photographer, illustrator, or scientist, GIMP provides you with sophisticated tools to get your job done. You can further enhance your productivity with GIMP thanks to many customization options and 3rd party plugins.
sudo add-apt-repository ppa:otto-kesselgulasch/gimp
sudo apt update
sudo apt install gimp
Inkscape is professional quality vector graphics software which runs on Windows, Mac OS X and GNU/Linux. It is used by design professionals and hobbyists worldwide, for creating a wide variety of graphics such as illustrations, icons, logos, diagrams, maps and web graphics. Inkscape uses the W3C open standard SVG (Scalable Vector Graphics) as its native format, and is free and open-source software.
sudo add-apt-repository ppa:inkscape.dev/stable
sudo apt update
sudo apt install inkscape
Freedom to build what you want. FreeCAD is an open-source parametric 3D modeler made primarily to design real-life objects of any size. Parametric modeling allows you to easily modify your design by going back into your model history and changing its parameters. Create 3D from 2D & back. FreeCAD allows you to sketch geometry constrained 2D shapes and use them as a base to build other objects. It contains many components to adjust dimensions or extract design details from 3D models to create high quality production ready drawings.
sudo add-apt-repository ppa:freecad-maintainers/freecad-stable
sudo apt update
sudo apt install freecad
Freeplane is a free and open source software application that supports thinking, sharing information and getting things done at work, in school and at home. The software can be used for mind mapping and analyzing the information contained in mind maps. Freeplane runs on any operating system that has a current version of Java installed. It can be run locally or portably from removable storage like a USB drive
sudo ln -nsf /opt/FreePlane/freeplane-1.7.9/freeplane.sh /usr/bin/freeplane
cd /home/marc/.local/share/applications
alacarte-made-2a16d922-c0f9-11e9-8b3a-34e6d7289be6.desktop
Foxit Reader is a fast, free, lightweight alternative to Adobe Reader for opening and displaying PDF files. It's also feature-packed. I've been using Foxit Reader since back in the day… The day when Adobe Reader had become a fat slob of a program that took forever to boot and load files. Adobe has improved greatly, but so has Foxit Reader.
sudo ./FoxitReader.enu.setup.2.4.4.0911.x64.run
PDFsam Visual PDFsam Visual is a powerful tool to visually compose PDF files, reorder pages, delete pages. Split PDF files into individual pages, delete or rotate pages, easily merge PDF files together or edit and modify PDF files. A free and open source application, a powerful visual tool or a professional PDF editor, join thousands of happy users, we have the solution you are looking for.
TeX Live is an easy way to get up and running with the TeX document production system.
./install-tl -gui
./install-tl -gui text
/opt/TexLive/<year>
export TL_ROOT=/opt/TexLive/2019
export PATH=$PATH:TL_ROOT/bin/x86_64-linux
Texmaker is a free, modern and cross-platform LaTeX editor for linux systems that integrates many tools needed to develop documents with LaTeX, in just one application. It includes unicode support, spell checking, auto-completion, code folding and a built-in pdf viewer with synctex support and continuous view mode. Texmaker is easy to use and to configure. Texmaker is released under the GPL license .
LaTeXDraw is a graphical drawing editor for LaTeX. LaTeXDraw can be used to:
LaTeXDraw is developed in Java (Java 8 is needed).
java --version
.
sudo ./install_debian_ubuntu
./install_debian_ubuntu: 3: ./install_debian_ubuntu: gksu: not found
This error is correct because the gksu package, which provides GTK+ front-ends for su (gksu) and sudo (gksudo), is removed from Ubuntu 18.04 and Linux Mint 19 Tara repositories, so it won't be available anymore starting with this Ubuntu/Mint release.
Editing the install_debian_ubuntu script learns that the file contains one line: gksu java -jar installer.jar
. This is necessary when the script is run as normal user.
sudo java -jar installer.jar
.
This will start a graphical installer tool.
Typora provides a seamless experience as both a Markdown reader and a writer. It removes the preview window, mode switcher, syntax symbols of markdown source code, and all other unnecessary distractions of other markdown readers & writers.
wget -qO - https://typora.io/linux/public-key.asc | sudo apt-key add -
# Mint repository add
echo -e "\ndeb https://typora.io/linux ./" | sudo tee -a /etc/apt/sources.list
# Ubuntu repository add
sudo add-apt-repository 'deb https://typora.io/linux ./'
sudo apt update
sudo apt install typora
sudo apt upgrade
Pandoc is a universal document text converter. Typora is using it to support file import/export features for several file types (pdf, html, docx, ...). The GitHub Atom text edit is also using it.
What is it:
Files and directories comparison is the task that is often required, Meld takes this job seriously and is considered one of the best tools to perform comparisons between files, directories, and version control projects. It is widely used by Linux desktop users and app developers to cater their daily comparison needs. Here are some of the noteworthy features of this application.
sudo apt update
sudo apt install meld
Whenever the Linux Mint installation is going to be used for scientific use, programming, electronics, testing, and etcetera the below descriptions show part of the path.
Atom is a free and open-source text and source code editor for macOS, Linux, and Microsoft Windows with support for plug-ins written in Node.js, and embedded Git Control, developed by GitHub. Atom is a desktop application built using web technologies. Most of the extending packages have free software licenses and are community-built and maintained. Atom is based on Electron formerly known as Atom Shell, a framework that enables cross-platform desktop applications using Chromium and Node.js. It is written in CoffeeScript and Less.
which pandoc
Git Cola is a sleek and powerful graphical user interface for Git. Git Cola is free software and written in Python (v2 + v3). It is mainly for use with GitHub. Github is now part of Microsoft and some people don't like that. Those can use Bitbucket. Then the use of the free version of GitKraken might be more useful than GitCola
sudo apt update
sudo apt install git-cola
GitKraken is an application for working with Git and includes two tools: the Git Client and Glo Boards. Developers can track code changes, switch between branches and projects, and visualize workflow through the application. Users can track tasks from inside the GitKraken Git Client, VS Code, Atom, or a browser using Glo Boards.
The GitKraken Git Client is free for open source, early-stage startups and non-commercial use.
Of course in order to do something meaningful with GitCola and/or GitKraken it is necessary to have an account with GitHub or Bitbucket and also be a registered user for GitKraken.
CMake is an extensible, open-source system that manages the build process in an operating system and in a compiler-independent manner. Unlike many cross-platform systems, CMake is designed to be used in conjunction with the native build environment. CMake is designed to support complex directory hierarchies and applications dependent on several libraries. For example, CMake supports projects consisting of multiple toolkits (i.e., libraries), where each toolkit might contain several directories, and the application depends on the toolkits plus additional code. CMake can also handle situations where executables must be built in order to generate code that is then compiled and linked into a final application. Because CMake is open source, and has a simple, extensible design, CMake can be extended as necessary to support new features. Using CMake is simple.
wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | sudo apt-key add -
sudo apt-add-repository 'deb https://apt.kitware.com/ubuntu/ bionic main'
sudo apt update
sudo apt install kitware-archive-keyring
sudo apt-key --keyring /etc/apt/trusted.gpg del C1F34CDD40CD72DA
sudo apt install cmake
Tcl (Tool Command Language) is a powerful, open source, business-friendly and easy to learn programming language. Tcl is a mature yet evolving language that is truly cross platform, easily deployed and highly extensible. It is suitable for a very wide range of uses, including web and desktop applications, networking, administration, testing and many more.
Tk is a graphical user interface toolkit that act as the standard GUI for not only Tcl but for many other languages It can can produce rich, native applications that run unchanged across Windows, Mac OS X, Linux and more.
Find here beside software; tutorials, manuals and links to all kind of other related stuff.
cd ActiveTcl-8.6.9.8609.2-x86_64-linux-glibc-2.5-dcd3ff05d
-
xed ~/.bash_aliases
or xed ~/.bashrc
# TCL-TK settings (ActiveState)
export TCLTK_ROOT=/opt/ActiveTcl-8.6
export PATH=$PATH:$TCLTK_ROOT/bin:$TCLTK_ROOT/lib
export MANPATH=$TCLTK_ROOT/man
Python, like most other modern programming languages, has its own unique way of downloading, storing, and resolving packages. Pyenv is a simple, powerful and cross-platform Python version management tool. pyenv is a wonderful tool for managing multiple Python versions. Even if Python is already installed on the system, it is worth having pyenv installed so that it is easy to try out new language features or help contribute to a project that is on a different version of Python.
“System Python” is the Python that comes default installed with the operating system. If Python is already installed, why not use it? One way to look at it is that this "System Python" really belongs to the operating system. After all, it came installed with the operating system. Installing add-ons and new packages must be done system wide, as sudo, and there is the risk to get different versions of the same package with different tools. At the end it can end up in a real mess and create nightmares to be able to run tools. So leave the "System Python" what it is and use a dedicated Python for all programming work. pyenv even allows the use of different versions of Python on the same system.
Thus when multiple versions of Python are needed or when wanting to keep teh operating system clean and save when programming in Python, install pyenv.
Virtual environments are kind of different. that are isolated independent environments that can have both a specific version of Python and of any project-specific packages installed within them, without affecting any other projects. This is handled by tools, packages as venv.
pyenv is one of the most important tools that most of the Python developers use.
Great installation notes are available with the pyenv
documentation
Useful FAQ along with common build problems are also available.
sudo apt install -y make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev \
libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python-openssl
sudo
because pyenv is installed for you user of the system.
curl https://pyenv.run | bash
export PATH="/home/marc/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
Python is a general-purpose programming language that can be used on any modern operating system. It is used for processing text, numbers, images, scientific data and just about anything else you. Examples where it is used: Google search engine, YouTube, NASA and even the New York Stock Exchange.
Python is an interpreted language. This means that it is not converted to computer-readable code before the program is run but at runtime. In the past, this type of language was called a scripting language, intimating its use was for trivial tasks. However, programming languages such as Python have forced a change in that nomenclature. Increasingly, large applications are written almost exclusively in Python. Some ways that you can apply Python include:
For much more about Python, Jupyter Notebook (Jupyterlab), Using Python and QT, MyHDL and more view the Python and Tools document.
Pyenv is installed, so it will be used to install one or multiple versions of Python. When using pyenv to avoid the use of the installed "System Python" one one or two versions need to be installed. With pyenv you can check first what versions of Python are available.
pyenv install --list | grep " 3\.[6789]"
.
pyenv install --list
.
pyenv install -v 3.7.4
Run each of the commands and wait till finished before running the other.
ls ~/.pyenv/versions/
and pyenv versions
. The result of the latter command is:
pyenv global 3.7.4
and check if the version sis now in use by typing pyenv versions
. The * should be moved in front of the 3.7.4 version.
python -m test
Running the Python test suite might take a while!
When using Python and needing certain or specific functions one does not need to invent then, there is PyPi . PyPi is a site with thousands of packages written in and for Python. These packages are written by users for users and having simply an account for PyPi allows on eto use all that power. Perhaps, one day, you can put a own written package on PyPi so that other people can use it.
Below a list of "necessary" Python packages. Install all, none or some of these and maybe install even other packages you might need while developing tools in Python. A good rule is to look in PyPi when something particular is required during programming.
To install a package do:
pip install <package_name>
.pip install ~/.pyenv/Wheels/3.7.4/<package_wheel_file_name>
pip list
.pip install --upgrade pip
.Qt is a free and open-source widget toolkit for creating graphical user interfaces as well as cross-platform applications that run on various software and hardware platforms such as Linux, Windows, macOS, Android or embedded systems with little or no change in the underlying codebase while still being a native application with native capabilities and speed. Qt is developed by The Qt Company, a publicly listed company, and the Qt Project under open-source governance, involving individual developers and organizations working to advance Qt
Qt will be installed for use with Python.
The Open Source version of the QT tools will be installed. This holds that some obligations need to be fulfilled by the user. Please read the text about licensing and obligations on the Qt web site.
chmod 775 qt-unified....run
.sudo ./qt-unified-linux-x64-<version>-online.run
A Cross Platform and Open Source Electronics Design Automation Suite. Now, June 2019, at version 5.1.
View, read the Use KiCad document for detailed information about the use and maintenance of KiCad.
sudo add-apt-repository ppa:js-reynaud/kicad-5.1
sudo apt update
sudo apt install --install-suggests kicad
Libraries are included along with KiCad installation. Downloading the libraries above is only necessary when a newer version is required than the one offered with the installed KiCad version. Libraries can be kept up to date with the latest additions by cloning the library repositories using Git. Tracking the library repositories using Git means that only the changes to the libraries need to be downloaded, rather than retrieving the entire library set each time. It is also a good idea to download the libraries and keep them up to date in case there is no internet connection available.
There are also third party libraries available form:
The open-source compiler and simulator for VHDL, a Hardware Description Language (HDL). GHDL is not an interpreter: it allows you to analyze and elaborate sources to generate machine code from a design. Native program execution is the only way for high speed simulation.
GHDL is written in ADA. Every way of setting up GHDL needs a ADA compiler. That will thus be the first action to accomplish.
chmod +x path_to_the_package/gnat-comunity-...-bin
sudo ./gnat-community-<year>-<version>-x86_64-linux-bin
To recognize the just install GNAT tool add below lines to the .bashrc or .bah_aliases file:
# GNAT GPL (ADA Compiler) for GHDL
export PATH=$PATH:/opt/Gnat/2019/bin
Save the file and open a new terminal window for the rest of the installation.
Two GHDL build options provide a lot of simulation possibilities, the first is when GHDL is build using the Low Level Virtual Machine (LLVM), the second when the GNU Compiler Collection (GCC) approach is taken. Although GCC is default available with each Linux installation it is a lot more difficult than it is using the LLVM way. In both cases extra software needs to be installed before GHDL can be build.
Install LLVM and CLANG only when it is the plan to build GHDL this way or when the plan is to use C/C++ to write software . Once LLVM and surroundings are installed, it is a lot simpler to build GHDL than with GCC while the possibilities and performance are similar. Although the GHDL documentation states that LLVM can be used till version 5.0 it perfectly works with the latest available version 8. Let’s get it and make it work.
sudo xed
, and copy the apt lines for latest version in the open document.
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key|sudo apt-key add -
sudo apt update
The comments from this action should end without any error, else probably some typo is made.
apt install libllvm-9-ocaml-dev libllvm9 llvm-9 llvm-9-dev llvm-9-doc llvm-9-examples llvm-9-runtime
apt install clang-9 clang-tools-9 clang-9-doc libclang-common-9-dev libclang-9-dev libclang1-9 clang-format-9 python-clang-9
apt install libfuzzer-9-dev
apt install lldb-9
apt install lld-9
apt install libc++-9-dev libc++abi-9-dev
apt install libomp-9-dev
clang-9 -–version
When getting an output in the terminal as below, then everything is installed perfectly.
user@machine:~$ clang-9 --version
clang version 9.0.1-svn363027-1~exp1~20190611211629.77 (branches/release_90)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
Remark 1: This are the extra, extra things I had to do to make everything work: Remark 2: The latest version of Mint_19.2 I installed from scratch on a PC already had below zlib1g-dev installed.
ls clang*
This lists following files: clang-9 clang++-9 clang-cpp-9 clang++-libc++
Create two symbolic links, one for clang and one for clang++
sudo ln -s /usr/bin/clang-9 clang
sudo ln -s /usr/bin/clang++-9 clang++
A new ls, list now clang clang++ clang-9 clang++-9 clang-cpp-9 clang++-libc++sudo apt install zlib1g-dev
cd ~/Downloads/ghdl-master
mkdir build
, and change into it cd build
.../configure --with-llvm-config=/usr/lib/llvm-9/bin/llvm-config --prefix=/opt/Ghdl
make
sudo make install
an error pops up about gnatmake.sudo chown -R <user> /opt/Ghdl
sudo chgrp -R <user> /opt/Ghdl
sudo
Process ends without errors or warnings./opt/Ghdl/lib/ghdl/vendors
directory.GTKWave is a fully featured wave viewer for Unix, Win32, and Mac OSX which reads LXT, LXT2, VZT, FST, and GHW files as well as standard Verilog VCD/EVCD files and allows their viewing.
http://gtkwave.sourceforge.net/
Click here to download the latest release as of July 2019 (gtkwave-3.3.101.tar.gz) and save it on the machine. The /Downloads directory is the default space where downloads get saved.
Can be found here as PDF file.
There are NO repositories, thus for updates timely visit the gtkwave web site.
That is when the most up to date version is wanted because earlier (older) versions are available in Linux Mint repositories and can simply be installed by typing: sudo apt install gtkwave
To install the latest version do this:
cd ~/Downloads/gtkwave<verion>
and then mkdir build
.
cd build
../configure -–prefix=/opt/GtkWave
The command takes of and generates status text lines ending with an error about TCL.
checking for Tcl configuration... configure: error: Can't find Tcl configuration definitions. Use --with-tcl to specify a directory containing tclConfig.sh
The new Mint 19 installation does not seem to have Tcl-Tk installed by default and that is confirmed after a check (type in the terminal tclsh and wish to find out if Tcl and Tk are installed). Thus the first thing to do now is to install Tcl-Tk. Consult the description on how to do this somewhere else in this document. After install and testing of Tcl-Tk come back to this point 4 and run ../configure --prefix=/opt/GtkWave
again.
After installation of Tcl-TK and running ../configure –prefix=/opt/GtkWave
the same errors pops up. At least now Tcl-Tk is installed and we know it :-). The error complains about some tcl file that cannot be found. So give the path to the file with the configure command. Do the same for Tk.
../configure --prefix=/opt/GtkWave --with-tcl=/opt/ActiveTcl-8.6/lib --with-tk=/opt/ActiveTcl-8.6/lib
After running configure with teh above command a lot more status text is displayed in the terminal but it end with an new error message
configure: error: Couldn't find a usable gperf program.
Please install gperf which is available from
ftp://ftp.gnu.org/pub/gnu/gperf/
Install gperf as instructed but use apt to do it. Use this command line: sudo apt install gperf
Third time configure, good time? run the configure command again. No, it seems that the third time is not the good time because a new error ends configure.
checking for lzma_end in -llzma... no
configure: error: LZMA support for VZT is enabled, but xz could not be found.
Please install the xz-devel package, see the http://tukaani.org/xz website, or use the --disable-xz flag.
A check shows that xz-utils are installed but it seems that the configure command cannot find it.
Run the Synaptic tol and [Search] for xz-dev
. Synaptic pops up one library: golang-xi2-x-xz-dev.
Install that library, right click and select ''Mark for Installation", then hit [Apply].
This will pop up some other stuff that needs to be installed, allow it.
../configure --prefix=/opt/GtkWave --with-tcl=/opt/ActiveTcl-8.6/lib --with-tk=/opt/ActiveTcl-8.6/lib
This new run end in yet another error
checking for GTK... no
configure: error: Package requirements (gtk+-2.0 >= 2.2.0) were not met:
No package 'gtk+-2.0' found
Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix.
Alternatively, you may set the environment variables GTK_CFLAGS and GTK_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details.
The machine has everything for gtk-3 installed. A search how to get gtk-2 learns to run this command: `sudo apt install libgtk2.0-dev`. Running that command in a terminal seem to install a lot of stuff.
Rerun the command: `../configure --prefix=/opt/GtkWave --with-tcl=/opt/ActiveTcl-8.6/lib --with-tk=/opt/ActiveTcl-8.6/lib` and now finally the process ends without warnings or errors.
Change the
5. Run `make`
6. Run the `sudo make install` command to install the GtkWave tool.
7. Add GTKwave to the path.
Edit */home/<user>/.bash_aliases* or */home/<user>/.bash* and add GtkWave to the PATH.
export GTKWAVE_ROOT="/opt/GtkWave" export PATH=$PATH:$GTKWAVE_ROOT/bin
8. Open a new terminal and check if GtkWave works; type `gtkwave` and watch what happens.
An error is what happens.
gtkwave: error while loading shared libraries: libtcl8.6.so: cannot open shared object file: No such file or directory
That library must be installed when ActiveState Tcl-Tk was installed and a search for it proves it’s installed and available in: */opt/ActiveTcl-8.6/lib*
How make GtkWave know that the library is available, well:
Open/edit the */home/<user>/.bash_aliases* or */home/<user>/.bash* again and add following to the Tcl-Tk settings: `export LD_LIBRARY_PATH=$TCLTK_ROOT/lib` and save the file.
9. Start a new terminal and run again: `gtkwave` and view the waveforms window popping up.
<img src="./Figures/Figure_17.png" alt="Figure 17" style="zoom:50%;" />
## Final
Linux Mint 19.2 is installed and all tools needed to start developing hardware and/or software are installed.
Not all are installed! because it's now possible to write VHDL and simulate it or write Python and simulate it but it's still not possible to implement what's created. Also some of the tools or tool add-ons relay on not yet installed tools for libraries and other stuff.
What's still needed are the tools from Xilinx and/or Lattice Semiconductor.