====== Ubuntu 22.04 Installation & Setup ======
{{:qortal_official_logo_transparent_.png?400|}}
Hello Qortians! This guide is for installation of Ubuntu 22.04 with Cinnamon Desktop Environment and a bunch of custom configurations by crowetic to setup everything necessary for Qortal, and automate as much as possible.
**Please note:** IF YOU ARE GOING TO BE INSTALLING UBUNTU ON THE CURRENT COMPUTER YOU'RE USING, YOU WILL NEED TO SKIP THE BIOS CONFIGURATION UNTIL AFTER YOU HAVE DOWNLOADED THE UBUNTU 22.04 INSTALLATION MEDIA, AND BURNED IT TO A FLASH DRIVE, YOU WILL ALSO WANT TO BACKUP YOUR PERSONAL FILES, QORTAL WALLET BACKUP, DOCUMENTS, PICTURES, AND ANYTHING ELSE YOU NEED FROM YOUR COMPUTER TO ANOTHER HARD DRIVE. IDEALLY YOU WILL HAVE AN EXTERNAL HDD TO BACKUP FILES, AND A FLASH DRIVE FOR WRITING THE UBUNTU INSTALLATION MEDIA. WE DO NOT TAKE RESPONSIBILITY FOR ANYONE FOLLOWING THIS GUIDE AND NOT READING THOROUGHLY, AND LOSING PERSONAL DATA OR THEIR QORTAL BACKUP FILE. MAKE SURE YOU BACKUP THINGS FIRST!
This guide will also include **customizations** to make Ubuntu look/feel **like Windows** so that it will be an EASY SWITCH for users.
It is crowetic's opinion that if everyone were to run an installation like this, there would be many less overall issues with Qortal, as well as with infections/potential data leaks, etc.
Hope you enjoy the guide and it helps you to get your computer setup in an **optimal fashion** that is **safer, faster, and more secure** than you current installation.
=====Configuring The BIOS=====
Any good base-level setup guide includes starting at the lowest possible level. In our case, this means sarting **in the BIOS**. For those that are not aware, the BIOS is where the pre-OS configuration for the computer takes place, and it is where you can enable and disable motherboard settings, and other low level options.
**All BIOS are different** - this makes walking through EXACT configuration essentially not fully possible in this guide, however, I CAN give a 'general idea' of what is important to check in the BIOS.
For the purposes of this guide, I am doing the configuration and installation on a Dell Latitude 7370 laptop, Desktops and Laptops are also fairly different when it comes to what is available in the BIOS, however certain options are at least similar.
=====Disabling Nonsense=====
There are multiple things in the BIOS (especially newer machines) that are completely UNNECESSARY. These are things that should simply be DISABLED with prejudice! They include but are not limited to **Intel Management Engine, computrace** (which only functions in Windows, so is not AS important in terms of this guide), **and TPM.**
The above settings are generally found in the **Security** section of the BIOS, and you should be able to go into each one and DISABLE them. **note** - many machines do not have a direct link to the Intel Management Engine settings, so if you don't see it then it's possible that the settings are not there, or are in a separate section of the BIOS (like pushing another key to access them during boot.) You will have to do a little looking around in order to find them. If you can't, don't worry, disable what you can of the above, and move on.
=====Disabling 'Secure Boot'=====
(this is OPTIONAL and avoids certain other configuration that would be needed)
Secure Boot is supposedly meant to 'verify' things and make sure the OS is 'correct' and not 'infected'. However, in my opinion it is simply unnecessary garbage that is meant for insecure Operating Systems like Windows. It is totally fine to DISABLE IT when installing Ubuntu, as it does not require it.
There are also options with Secure Boot to 'clear keys' - You CAN do this first, but if you're going to disable it, it doesn't matter as it won't be utilized anyway. Either way is fine. You CAN use it but you don't have to. If you DO, certain other installations will require that you set a secure boot password, etc.
=====UEFI VS 'Legacy' Boot Modes=====
There are TWO boot 'modes' with newer computer systems. 'UEFI' and 'Legacy'. Legacy is the old BIOS boot method, where you can simply select which device you boot from, and it will boot. UEFI is the newer style setup wherein you have to have an EFI boot partition with EFI boot files in order to boot.
Some machines have 'CSM' or Compatibility Support Module - This will allow you to choose UEFI mode with Legacy support if you like, which is what I usually choose if I have the option.
(UEFI mode is 'better' because it will allow firmware updates from within the OS, and a few other things to take place that wouldn't be possible in Legacy boot mode.)
=====Setting Boot Sequence=====
When in UEFI boot, if after your installation completes your machine doesn't boot correctly, you may have to add a UEFI boot option. Ubuntu should show up once it has been installed if you install in UEFI mode.
=====Other BIOS Settings=====
(Optional configuration, recommended.)
- Virtual Machine Settings - enable all VM options (this is for if you decide to run Virtual Machines on your system.)
- CPU configuration - enable HyperThreading and TurboBoost
- Battery Configuration - I generally keep this on 'adaptive' mode (if you have these settings) this will 'tune' the battery charging to whatever is optimal based on your computer usage habits.
I think that's about it for the BIOS/UEFI configuration. Next, we'll move on to the actual OS installation.
=====Installing Ubuntu 22.04=====
**SKIP TO THIS SECTION FIRST IF YOU'RE INSTALLING ON THE SAME COMPUTER YOU'RE USING TO CREATE THE INSTALLATION MEDIA. DOWNLOAD AND CREATE THE MEDIA FIRST, THEN DO THE ABOVE BIOS CONFIGURATION**
Now that we've gotten the BIOS/UEFI configuration out of the way, we can boot to a USB flash drive with Ubuntu 22.04 installer on it, and install the OS.
**Download Ubuntu 22.04 Desktop Installation ISO** - You can go here... https://ubuntu.com/download/desktop - to download the Ubuntu 22.04 ISO file. (This is an image for the installation 'disk' for Ubuntu Desktop 22.04.)
(In this guide, I will assume that you have a **Windows Computer** that you are going to use to create the installation media. If you are using a computer that does NOT have windows, you will need to use another tool to write the installation media to your flash drive.)
**Download Rufus for Windows** - this tool is used to write the Ubuntu 22.04 installer to the flash drive, so that it will be BOOTABLE and you can use it to boot/install the OS to the computer. You can find rufus download here - http://rufus.ie/en/
Once you have **downloaded both the Ubuntu ISO and Rufus**, you will **run Rufus** - in the Rufus options, you will see a button to **Browse** for an **ISO image**. Use this button and find the Ubuntu 22.04 ISO you downloaded. Then create the bootable Ubuntu installation disk. This will take a few minutes.
**Once you have the bootable flash drive** connect it to your computer, and **restart**. BEFORE The OS boots, you will push either the 'boot options' key, or 'setup' key in order to change the boot order.
Normally, and on the Dell machine I'm using, 'boot options' is **f12**
Generally though, what I do, is **do the BIOS/UEFI configuration above at the same time as setting the boot sequence to include USB flash drive** - The BIOS/UEFI will only SHOW the flash drive as an option, if the drive is CONNECTED when the machine is powered on.
If you do what I do, once you exit with config changes made, it will automatically boot to the USB drive. If you choose **'boot options'** it will give you a menu to select which boot option you want to use temporarily. Choose **'UEFI and your USB flash drive.**
You will then be presented with a menu that says **Try or Install Ubuntu** and you will select that option, at which point it will boot into a **Live Install version of Ubuntu**. This **live install** will include the option to 'Install Ubuntu' as well as the option to 'try Ubuntu'. We will choose **Install Ubuntu**. (If you would like to 'test' the system first, to see how compatible everything is, you can choose 'try ubunutu' and it will give you a live environment to play with.) Generally the only things that may have issues functioning or functioning correctly, are **wifi** and **specific video cards**. However, even if one or the other of those do NOT function correctly with the 'try ubuntu' option, that does NOT mean that they can't function once you have INSTALLED. So I usually just install no matter what, then configure things afterward that need it. Most of the time the hardware issues can be resolved with a proprietary driver from the MFG. (This obviously isn't IDEAL, but it is what it is, and nVidia cards often times run better with the nVidia driver anyway. This is the ONLY proprietary thing I end up using on the machines I build.)
=====Ubuntu Installation Wizard=====
The Ubuntu installation wizard is pretty straightforward, you will basically **click 'next' through most portions of it**. There are only a few pieces that need to be noted.
At first, it will ask you to connect to a wireless network if you're not already connected via LAN. If you aren't connected via LAN, simply connect via Wifi. Then it will ask you if you want to 'download updates during installation' I usually leave this checked by default.
**use the username qortal** if you wish to have the **automation scripts setup by the install script to work correctly.** if you do NOT use the the username **qortal** then you will have to **manually moodify the crontab** in order for **the automation to work correctly.**
When you get to the window for disk setup, you will choose **Erase Disk and Install Ubuntu** to perform a full format/installation with Ubuntu as the ONLY OS on the drive. By default it should choose your HDD/SSD unless you have multiple drives on your system, in which case it will give you a **choice of which drive to use**. This is **up to you**, you will choose whichever drive you want Ubuntu to be installed on.
Once you have gotten through the basic steps of the install wizard, it should handle itself from there. When complete, it will pop up a dialog box that says **restart to finish installation**. Click OK and restart the machine. It will then say **remove installation media and press ENTER**, do that, and machine will reboot.
At this point, it SHOULD **boot into Ubuntu** - if it does NOT, then you may have to change your boot settings as mentioned above in the UEFI settings portion. Depending on which mode you installed in, you will need to potentially add a **UEFI boot option.** But in most cases, the machine **SHOULD boot into Ubuntu.**
=====Installing Software & Configuring Ubuntu=====
**Congratulations! You now have Ubuntu Installed** - Now we simply need to **install some software** so that Qortal and the Qortal UI will run correctly, and **configure Ubuntu** for look and feel, and **theme** so that everything works, looks, and feels exactly the way we would like it to.
=====Crowe's 'rebuilt-machine.sh' Script =====
This script will setup all the base level dependencies for Qortal and Qortal UI, install Qortal and Qortal UI, setup a few images on the machine, and a few automation scripts, and configure cron to use the automation scripts.
**Download the 'rebuilt-machine.sh' script** and **run it**
(Any command given like the one below, is meant to be **run using the 'Terminal'** - before you have installed 'cinnamon desktop' the terminal can be found by clicking 'activities' at the top and typing 'terminal', then clicking 'terminal'.)
cd && wget https://raw.githubusercontent.com/crowetic/QORTector-scripts/main/rebuilt-machine.sh && chmod +x rebuilt-machine.sh && ./rebuilt-machine.sh
The above command will **download and run the script** for you. It will ask you to **input password** - go ahead and **put in your password you set during installation for your user** and push **ENTER**.
The script will then **install everything for you** including Qortal, the UI, all base level packages, Chromium Browser, Cinnamon Desktop Environment, and VLC Media Player. It will also download some images from qortal cloud to use for the desktop icons and launchers, and a text document that explains a few things. **a few scripts** will be in the home folder, and **Qortal UI and status script in the qortal folder.**
Simply **wait for this to complete**. When it is completed, it will **automatically restart your machine**.
=====Using Cinnamon Desktop=====
Once your machine has rebooted, you will need to modify the Desktop Environment, to use **Cinnamon** Desktop Environment. **The script in previous step installed this for you.**
When you get to the LOGIN screen, **click your username** then STOP there. **before entering your password and logging in, click the settings icon at the bottom right.** This settings icon is where you **change the desktop environment.** Change it to **Cinnamon**, THEN input your password and login. You will then be taken to your **NEW Cinnamon Desktop Environment.**
*NOTE* - If you are on a **laptop** and using the **touchpad** during the 'click your username' section, you will need to actually use the **physical mouse buttons**. Trying to 'tap-to-click' does NOT work on this pre-login screen. (I am not exactly sure WHY, but it's just a thing.) After you get into the OS, tap-to-click should be enabled by default, and will work as it is supposed to.
**Mouse/Touchpad settings** - since I am mentioning the mouse here, I figured mentioning the mouse settings I use would be good as well. Once you're in the desktop environment, click the menu (bottom left, the 'start menu' replacement in Ubuntu with Cinnamon Desktop) and type 'mouse'. This will take you to 'mouse/touchpad' settings. Under the 'touchpad' options, click 'reverse scrolling direction'. That's usually the only setting required there, but if your mouse is 'bouncy' or 'acting weird' at all, you can set 'custom acceleration' and change both (usually about middle of the slider is good for most with issues) so that the mouse 'acts right'.
=====Ubuntu Settings Configuration=====
**Configuring Desktop**
**Right click the desktop** and click '**customize**' then turn **OFF 'auto-arrange'** - you can also configure the spacing settings as preferred.
Click **desktop settings** and turn on all of the desktop icons you prefer, I usually do all except 'network'.
**Right click desktop** - click **'create new launcher here'** - configure this launcher with name 'Qortal-UI' and the icon from the pictures folder called **'qortal.ico'**. The command for the launcher, click 'browse' and go to home/qortal and find 'Qortal UI'. Select that, save the launcher. Say 'YES' when asked about the icon in the menu.
**Right click the Desktop** again, and click **'create new launcher here'** - configure this launcher with a name 'Qortal' and the icon from the pictures folder called **QLogo-512.png**. The command for the launcher you can click 'browse' and go to - Home - '**start-qortal.sh**'. Select that, save the launcher. It will **pop up asking** if you want to **place the icon in menu** say **YES.**
**arrange the desktop icons** with **Qortal top left**, and **Qortal UI to the right of that.**
Put trash icon bottom right, about 2 inches from the bottom (as the Qortal logo will be in bottom right corner, we want trash icon above that for ease of visibility.)
To **set desktop background** the easy way - **open files app** (this is on the panel at the bottom as well as searchable in the menu) - open '**Pictures**' folder, in that folder you will see a file called '**Qortal-The-Future-Wallpaper.png**', **right click that file** and click **set as wallpaper...**
The **rebuilt-machine.sh** script that was utilized above, also includes with it a text file that is placed **on the desktop** - this file includes a few other settings that should be modified if the user wishes the machines to be EXACTLY like the ones setup by CHD.
**Configuring Menu**
The 'menu' is the equivalent of the 'start menu' on Windows, where you can see and search for installed applications on the computer. In the menu we would like to ensure that the **launchers** for both **Qortal** core and **Qortal UI** are included.
Since we have already created the **Desktop Launcher** for the **Qortal Core** (and subsequently told it upon creation to also create a launcher in the 'menu') we should already have the **Qortal** icon in the menu, under the **other** category. Therefore we do NOT need to do anything else to get the Qortal launcher in the menu.
However, we have not yet created the **Qortal UI** menu launcher. In order to do this, simply do the following.
-**Right click** the menu and click '**configure**'.
-In the window that comes up find '**Menu**' **tab** at the top.
-In the Menu tab, click '**Open the menu editor**' - this will open the menu editor.
-In the menu editor, click the '**other**' category **on the left**.
-Click '**add item**' button on the right. This will open the launcher creator just like the desktop one.
-**Name** your launcher '**Qortal UI**'
-Browse for the **qortal.ico** file in your **Pictures** folder, **add that**.
-**Browse** for the **Qortal UI** AppImage **this will just be called 'Qortal UI'** on the desktop.
-**Click OK**
You will now have **both launchers** in both the **menu and on the desktop** and will be able to **click the menu** and **search for Qortal** to find either.
**Another thing** that I like to do, is to **add both of these to favorites** so that they show up on the left side of the menu when clicked. To do this **click the menu and type 'Qortal'** it will come up with both launchers. **Right click** 'Qortal' and click 'add to favorites'. Repeat the search process and do the same for 'Qortal UI'.
That's it, now you have launchers configured, favorites for Qortal and Qortal UI, and a fully configured Desktop that is very similar in functionality to Windows, but MUCH MORE SECURE.
There are a few other visual settings that I will go over in the next section of the guide, but the majority is now completed. Enjoy your **AWESOME NEW LINUX DESKTOP SETUP** that is **fully customized to run and automate Qortal!**
=====Ubuntu Power Settings=====
In order for the Qortal Core to run ALL THE TIME no matter what, we will need to configure a few of the **default power settings** on the machine. We will want to **disable sleep** and **disable any action when laptop lid is closed**. In order to do this, **click the menu and type 'power'**, this will bring up '**Power Management**' configuration.
Open Power Management, and make sure **sleep is fully disabled** - 'suspend when inactive for' should be set to **NEVER**. 'when the lid is closed' should be set to **DO NOTHING**, and 'when the power button is pressed' set to '**ASK**'. Also, **check the box** that says '**perform lid-closed action even with external monitors attached**'.
Make sure you do this for **both plugged in AND battery settings** (if you're doing this setup on a laptop with a battery, it will have a duplicate set of options for battery as it does for plugged in, ensure that both of these are configured as described above.)
=====Qortal Startup Settings=====
To make Qortal startup (with the Qortal icon) - click the Menu - search for 'startup' and you will see **Startup Applications (Cinnamon-Settings)** - open this application.
Click **plus icon** at the bottom and click **custom command** - Name the command **start-qortal** - then **browse** under the command section, and go to - Home - and find **start-qortal.sh** script.
You **can set a 5-10 second delay** for Qortal startup, to ensure your network connection is connected BEFORE Qortal starts.
Save, that's it! Now your Qortal core will **start automatically** after you login, and **show the Qortal icon** on the taskbar.
===== Ubuntu Visual Settings =====
**Desktop**
Make sure that 'auto-arrange' is turned OFF and that spacing is ideal to your preference.
**Menu** - Set the various icon sizes slightly larger for ease of use. I generally set the 'category' size slightly larger than 'application' size, and 'favorites' size larger than category size. Ultimately this is individual preference, but I find size 42 for favorites to be nice on 1080 displays, and 38 for category, 35 for applications.
**Text editor**
The text editor has strange default configuration that I find annoying. I generally go into 'preferences' in the text editor (you can simply open the text file on the desktop then click the 3-line 'menu' button at the right of the editor, and go to 'preferences') and **modify a few things**. I like to **remove line numbers** by default (as that is only useful when coding and debugging) and **remove 'highlight current line'** as I simply find that to be annoying, especially with a dark theme. I also then go to **colors** and set it to **solarized dark** which I think looks the best with the overall dark theme.
**Terminal**
The terminal also has a default setting that makes the terminal window too small, in my opinion, so I modify that. **open a terminal** and go to **edit - preferences** and make the following changes. **default window size** should be set to a larger size, I generally set it to 135x35. Also, the default colors of the terminal aren't as visually appealing, so I **modify the colors** to **solarized** at the bottom of the '**colors**' **tab**, under **built-in schemes**. *note - the window size setting will only take effect the **next time** you open the terminal, colors will apply immediately.
**Ubuntu Themes**
In order to TRULY **make the machine's GUI LOOK GREAT**, you will need to make use of the '**Themes**' app that is built-in to Ubuntu.
**Click the Menu, and type 'themes'**, then **open the Themes app**. Within this app the first tab, 'Themes', will show you the current settings, we can skip that at first and go to **Add/Remove** tab at the top.
This will update the list first, then show you the available free themes from Ubuntu and its theme community.
We want to find **3 specific themes** that will be utilized for **our custom overall theme**.
Those 3 themes are - **'Adapta-Nokto', 'CBlack', and 'Windows 10 Light Theme'.**
Click the **download button** (little downward-facing arrow) to **install these 3 themes**.
Once you HAVE them, **go back to the main 'Themes' tab** at the top. Here we will **set the themes** we just downloaded, to **specific sections** of Ubuntu visual options.
**Window borders** - set this to **Adapta-Nokto**
**Icons** - set to '**yaru-blue-dark**'
**Controls** - set to '**CBlack**'
**Mouse Pointer** - set to **'DMZ-Black'**
**Desktop** - set to **Windows-10**
That's it, now you should have a BEAUTIFUL and EASY to USE overall GUI theme for your machine. There is only **ONE FINAL THING** that truly **sets it off** and makes it look **awesome!** This is the **custom Menu Button and label**.
**Customizing Menu Button and Label**
For this **finishing touch** we will **right click the menu** and click **configure**, it will then open the settings. On the first tab **Panel** at the top under **Appearance** we will say **use a custom icon and label**, and modify to the following:
**Icon** - **Browse** to your **Pictures** and find the **blue-gray-menu-button.png** file, select that.
**Icon Size** - Set the icon size to **40**.
**Text** - Set text to say '**ortal-OS**' - (Yes, it is deliberately missing the Q in 'Qortal', you'll see why when you set it ;) )
**THAT'S IT, YOU NOW HAVE A FULLY CUSTOMIZED MACHINE!**
I will continue updating this guide as necessary as time goes on, and I will also include pictures for the settings configuration to make it as easy as possible for all learning types. Eventually I will also consider doing a full 'setup video' guide as well.
Hope this helps you to have an AWESOME, SECURE, and VISUALLY APPEALING computer for your Qortal Node!
===== Additional Notes =====
If you did **not use the username 'qortal** during your installation, then the **automation for the auto-fix scripts** will **not work** until you **do the following**
-Open crontab editor
crontab -e
It will ask you which editor you would like to use, choose **nano** (generally option 1.)
Once you do that it will take you to the crontab, **edit any of the lines that have /home/qortal** and replace that with **/home/your-username-here**
To **save and exit** use **cntrl+x** then **Y** and **ENTER**, once you have **done this** your **automation will function as intended.