Ubuntu 18.04 LTS#

Ubuntu Logo

Additional Informations#

Base Installation#

This installation is based on Ubuntu 18.4 LTS and ROS Melodic Morenia.

Default Tools#

sudo apt-get install git curl vim openssh-server krename rar unrar kget diffutils kate x11vnc
echo "Configure Firewall and Port for ssh"
sudo ufw allow ssh
sudo ufw enable
sudo ufw status
sudo service ssh restart

ZSH#

sudo apt-get install zsh
sudo chsh -s /bin/zsh $USER

Oh My ZSH#

cd ~/Downloads
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

SublimeText 3#

wget -qO - https://download.sublimetext.com/sublimehq-pub.gpg | sudo apt-key add -
sudo apt-get install apt-transport-https
echo "deb https://download.sublimetext.com/ apt/stable/" | sudo tee /etc/apt/sources.list.d/sublime-text.list
sudo apt-get update
sudo apt-get install sublime-text

SublimeMerge#

wget -qO - https://download.sublimetext.com/sublimehq-pub.gpg | sudo apt-key add -
sudo apt-get install apt-transport-https
echo "deb https://download.sublimetext.com/ apt/stable/" | sudo tee /etc/apt/sources.list.d/sublime-text.list
sudo apt-get update
sudo apt-get install sublime-merge

Krusader#

sudo apt-get install krusader

Yakuake#

sudo apt-get install yakuake

Once the main tool is installed, make you have qdbus-qt5 installed :

which qdbus-qt5

If it is not installed, simply install it :

sudo apt-get install qdbus-qt5

Now create a script such as yakuake-startup.sh :

#!/bin/bash
INITIAL_ID=`qdbus org.kde.yakuake /yakuake/sessions org.kde.yakuake.activeSessionId`
function addSession {
   SESSION_ID=`qdbus org.kde.yakuake /yakuake/sessions org.kde.yakuake.addSession`
   qdbus org.kde.yakuake /yakuake/tabs setTabTitle $SESSION_ID "$1"
   if [ ! -z "$2" ]; then
         qdbus org.kde.yakuake /yakuake/sessions runCommandInTerminal $SESSION_ID "$2"
   fi
}

addSession "shell 0"
addSession "shell 1"
addSession "tools 0" "cd tools"
addSession "tools 1" "cd tools"

qdbus org.kde.yakuake /yakuake/sessions org.kde.yakuake.removeSession $INITIAL_ID

This will create 4 tabs in Yakuake when you execute this script. It is very useful to retrieve specific tabs when launching the Ubuntu machine.

FSearch#

sudo add-apt-repository ppa:christian-boxdoerfer/fsearch-daily
sudo apt update
sudo apt-get install fsearch-trunk

Anaconda#

cd ~/Downloads
wget https://repo.anaconda.com/archive/Anaconda3-2019.10-Linux-x86_64.sh
bash Anaconda3-2019.10-Linux-x86_64.sh

QT-Creator#

QT Creator Login

Email: gilles.mottiez@hevs.ch
PW: Spl2019
cd ~/Downloads
wget http://download.qt.io/official_releases/qt/5.13/5.13.1/qt-opensource-linux-x64-5.13.1.run
chmod +x qt-opensource-linux-x64-5.13.1.run
./qt-opensource-linux-x64-5.13.1.run
sudo apt-get install build-essential
sudo apt-get install libfontconfig1
sudo apt-get install mesa-common-dev
sudo apt-get install libglu1-mesa-dev -y

Visual Studio Code#

curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg
sudo install -o root -g root -m 644 packages.microsoft.gpg /usr/share/keyrings/
sudo sh -c 'echo "deb [arch=amd64 signed-by=/usr/share/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/vscode stable main" > /etc/apt/sources.list.d/vscode.list'

sudo apt-get install apt-transport-https
sudo apt-get update
sudo apt-get install code # or code-insiders

Hitachi SDK Installation Guide#

For the Hitachi SDK installation visit the ROS Install

ROS Installation Guide#

For the ROS installation visit ROS Install

Configuration#

Oh My ZSH Config#

~/.zshrc additions#
echo"#------------------------------------------------------------------------------" >> ~/.zshrc
echo "# Program in Path" >> ~/.zshrc
echo "#" >> ~/.zshrc
echo "#------------------------------------------------------------------------------" >> ~/.zshrc
echo "# Special zsh config" >> ~/.zshrc
echo "# Show hidden files and folders" >> ~/.zshrc
echo "setopt globdots" >> ~/.zshrc
echo "#------------------------------------------------------------------------------" >> ~/.zshrc
echo "# Goto Alias" >> ~/.zshrc
echo "# Common home locations" >> ~/.zshrc
echo "alias home='cd ~'" >> ~/.zshrc
echo "alias root='cd /'" >> ~/.zshrc
echo "alias dtop='cd ~/Desktop'" >> ~/.zshrc
echo "alias dwld='cd ~/Downloads'" >> ~/.zshrc
echo "alias docs='cd ~/Documents'" >> ~/.zshrc
echo "alias www='cd /var/www/html'" >> ~/.zshrc
echo "alias workspace='cd ~/Workspace'" >> ~/.zshrc
echo "alias aptlock-rm='sudo rm /var/lib/dpkg/lock && sudo rm /var/lib/dpkg/lock-frontend'" >> ~/.zshrc
echo "# Common commands" >> ~/.zshrc
echo "alias o=open" >> ~/.zshrc
echo "alias ..='cd ..'" >> ~/.zshrc
echo "alias ...='cd ..; cd ..'" >> ~/.zshrc
echo "alias ....='cd ..; cd ..; cd ..'" >> ~/.zshrc
echo "# Common command shortcuts" >> ~/.zshrc
echo "alias cls=clear" >> ~/.zshrc
echo "alias ll='ls -la'" >> ~/.zshrc

SublimeText 3 Config#

~/.zshrc additions#
echo "# Sublime Text" >> ~/.zshrc
echo "export PATH=$PATH:/opt/sublime_text" >> ~/.zshrc

echo "# Sublime Text" >> ~/.bashrc
echo "export PATH=$PATH:/opt/sublime_text" >> ~/.bashrc

cp ./../config/sublimetext/Package Control.sublime-settings ~/.config/sublime-text-3/Packages/User/

SublimeMerge Config#

~/.zshrc additions#
echo "#Sublime Merge" >> ~/.zshrc
echo "export PATH=$PATH:/opt/sublime_merge" >> ~/.zshrc

echo "#Sublime Merge" >> ~/.bashrc
echo "export PATH=$PATH:/opt/sublime_merge" >> ~/.bashrc

QT Creator Config#

TODO

Visual Studio Code Config#

TODO

How To Use Ubuntu Tools#

SSH#

  • <user> = spl

  • <remoteip> = spl-spectra-1.local or ip address

  • <portnumer> = 22

SSH connection without password#

# On your local machine generate a RSA Key pair
ssh-keygen -t rsa

# Copy your local public key to the remote machine safely
ssh-copy-id -i ~/.ssh/id_rsa.pub "<user>@<remoteip> -p <portnumber>"
# OR
scp id_rsa.pub <user>@<remoteip>:~/.ssh/machine.pub

# Append key to file authorized_keys
cat ~/.ssh/*.pub | ssh <user>@<remoteip> -p <portnumber> 'umask 077; cat >>.ssh/authorized_keys'

Open SSH Connection#

# Just ssh
ssh <user>@<remoteip>

# ssh with portforwarding
ssh -L <local-port>:localhost:<remote-port> <user>@<remoteip>
# ssh with vnc port forwarding
ssh -L 5900:localhost:5900 spl@<remoteip>

VNC#

On remote PC x11vnc needs to be installed and launched. Prefereable add to startup commands

Create password#

Only needed if not only localhost used.

x11vnc -storepasswd

Launch x11vnc#

# Command with all options
x11vnc -usepw -forever -display :0 -safer -bg -o /home/zas/Documents/log/vnc/x11vnc.log -localhost

# Minimal command but still restricted to localhost
x11vnc -forever -display :0 -safer -bg -localhost

XRDP#

XRDP is needed to con>nect the the GUI (XServer) of the linux machine even without a monitor attached. VNC won’t work because no xerver is created. XRDP automtically creates an xserver.

sudo apt install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils
sudo apt install xrdp
sudo adduser xrdp ssl-cert
echo gnome-session > ~/.xsession

Optional you can configure the Firewall

sudo ufw allow from 192.168.33.0/24 to any port 3389 (allow from certain LAN Network)
sudo ufw allow 3389 # allow from anywhere (unsafe)

Getting information about the XRDP service .. code-block:: bash

sudo systemctl status xrdp sudo systemctl restart xrdp

Important

Once an Xserver is launched not two users can use it at the same time. So either XRDP or a user with a connected screen.

Linux Ubuntu