| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| 2411D4-02-od4knb-antixradio-23.2-32bit-sysvinit-full.iso | 2024-11-19 | 1.6 GB | |
| 2411D9-Screendump-with-Radio-Kootwijk-wallpaper.pdf | 2024-11-19 | 218.0 kB | |
| Totals: 2 Items | 1.6 GB | 4 | |
od4knb Linux® 🔗
NEW Antix 26 stable is released! Avaliable for x86-64/amd64 and IA-32/i486. Both versions have a Debian 13 (trixie) base, and it works great!
▹ Translation 🔗
[Translate this site - Vertaal deze site - Traduire ce site - このサイトを翻訳する]
▹ E-book download (PDF) 🔗
You can download all howtos on this page as an e-book (PDF format): click on the "2411D3...e-book.pdf" link above. The e-book contains a handy index for quick navigation, available in the left side panel of your PDF viewer.
▹ Aim 🔗
The Howtos (step by step tutorials) on this site, are mainly aimed at Linux Mint Ubuntu Base with Cinnamon Desktop, because that's my favorite Linux distribution (distro) for a modern x86-64/amd64 computer with 4 GB RAM or more, and the best (most complete) distro for novice Linux users, I think. These howtos can easily be adapted to another Debian- or Ubuntu based Linux distro. Minus: Linux Mint doesn't have an .iso file (DVD image, to install the OS) for the Aarch64/arm64 CPU architecture available, but Debian and Ubuntu do.
For older IA-32/i386 computers, with 1.5 GB RAM or more, I recommend Linux Mint Debian Edition v6 with Cinnamon Desktop (LMDE6). Unfortunately, that was the last IA-32/i386 version of LMDE :-(
For even older IA-32/i386 computers, with less than 1.5 GB RAM, I recommend antiX Linux Full 32bit.
For professional audio applications, you better use Ubuntu Studio or AV Linux MX Edition (AVL-MXe).
About Desktop environments: I think both KDE Plasma and Cinnamon are great for professional applications (desktops/workstations). I prefer Cinnamon, but that's a personal choice. Only for tablets, touchscreens (digital kiosks/touch-poles) and smartphones I recommend the GNOME desktop, because it has very large buttons: perfect for children, people who are not so computer savvy, and people with physical disabilities.
⬥ TLDR 🔗
- Download the 2411D4-{version}-od4knb-antiXradio.iso
- "Flash" the .ISO file onto an USB stick using Balena Etcher
- select the USB stick in your BIOS boot menu
- Read the 2411DB Wi-Fi configuration HowTo
⬥ Table of Contents 🔗
- Bug Reports and Reviews
- Mailing Lists (Newsletters)
- Upload files to Sourceforge.net using Filezilla SFTP Client with 2FA
- Markdown (.md) to PDF conversion and debugging
- antiX Linux®
- The od4knb antiXradio project
- antiXradio .deb package for installation on Debian based Linux distros
- antiXradio semi portable .tar.xz package for use on Debian based Linux distros
- antiXradio semi portable .tar.xz package for use on non-Debian based Linux distros
- NEW Install KDE Advanced Radio Player widget
- Play a CSV radio station playlist from radio-browser.info in antiXradio
- Play a XSPF radio station playlist from radio-browser.info in Audacious audio player
- NEW Play a JSON radio station playlist from radio-browser.info in KDE Advanced Radio Player
- Create a bootable USB stick with a Linux OS using Balena Etcher
- Create a bootable CD/DVD with a Linux OS using XFburn
- Boot several .ISO files from an USB/SD/HDD/SSD device using a Ventoy boot loader, and create a Data and Swap partition
- Make or restore a full disk backup with RescueZilla
- Determine your CPU architecture (32/64 bits)
- Determine the base of your Linux distro
- Download and install a MPV Media Player Debian .deb package
- Download and install a MPV Media Player Fedora .rpm package
- Convert a .deb package to .rpm or .pkg for use on non-Debian based Linux distros
- Retrieve encoding, bitrate and mono/stereo info of an audio stream
- Testing antiXradio using Radio Mast reference audio streams
- Using antiXradio debug mode
- Testing URLs of radio stations using MPV Media Player
- Create a .sh Bash script with multiple mpv commands using LibreOffice Calc
- Turn a laptop into a sleep sound machine (white noise machine)
- Using Bluetooth on Linux Mint, Ubuntu, Debian and antiX
- Solving sound problems
- Using Flameshot to create and edit screenshots
- Create an encrypted VeraCrypt file container for privacy-sensitive files
- Split and reassemble a big file using the split & cat command
- List of 32 bit Linux distros (IA32/i386)
- Ranking RAM Usage of Linux Distros
- Error: "su: Authentication failure" Root password is not set (blank)
- Error: "${USER} is not in the sudoers file"
- Error: "Invalid audio PTS" when playing FLAC audio stream in conjuction with "--length=" #16416
- Radio Kootwijk
- Policy, comments and disclaimer
- Post Scriptum
[Contact] [Notice] [License] [Donations] [Credits] [Special thanks] [MD converter] [Broken links checker]
⬥ Bug reports, questions and reviews 🔗
To send me information about a bug/mistake, or ask a question, please send an e-mail to:
od4knb monkey tail gmail dot com
Post a review, on the Reviews tab. You need a free SourceForge account for that.
Don't hesitate to ask for help on the forums of Debian, Ubuntu, Linux Mint or antiX Linux.
⬥ Mailing Lists (Newsletters) 🔗
▹ Mailing list "od4knb-linux-updates" 🔗
- to receive an email about all od4knb Linux updates (new radio station lists etc.): click here
- to unsubscribe: click here
▹ Mailing List "Update Available" 🔗
- to receive an email only when there's a new od4knb-antiXradio ISO file available: ~ go to the header of this site ~ click the "Summary" tab ~ go to the white bar "Get an email when there's a new version of od4knb Linux" ~ enter your email address ~ click the [Next] button
- to unsubscribe: click the "Unsubscribe me from receiving notifications for this project" link in the e-mail you received, with subject "Update Available: od4knb Linux"
⬥ Upload files to SourceForge.net using FileZilla SFTP Client with 2FA 🔗
You can use four different ways to manage your SourceForge.net website:
- Web Interface (only for files smaller than 500 MB)
- SFTP GUI client (e.g. FileZilla, supports files of all sizes)
- SCP command line client (supports files of all sizes)
- Rsync command line client (supports files of all sizes)
The Web Interface is needed for admin actions, other than transferring files to your SourceForge project site, e.g. creating a Mailing List. The Web Interface is pretty slow, only suited for transferring a few small files. The FileZilla GUI app is better suited for file management, I think.
⚠ The SourceForge Using SFTP with FileZilla manual, does not work, when 2FA (TOTP/MFA) is enabled. Consult the Set up Multifactor manual, to enable 2FA authentication (also known as Multi-Factor Authentication (MFA)) using TOTP, on your SourceForge account.
🛈 Some well known TOTP Authenticator apps for your smartphone are: Google Authenticator, Proton Authenticator and BinaryBoot TOTP Authenticator
🛈 Consult the FileZilla tutorial and other documentation to manage the files on your site.
There are two different methods to enter the connection details:
- CLI method (when booting Linux from an .iso file: safest)
- GUI method (when booting an installed Linux: less safe)
▹ CLI method 🔗
🛈 This method is most useful if you boot your Linux operating system from an .iso file (e.g. using a Ventoy bootloader), because any settings you added via the GUI will be lost after a reboot. For an installed Linux operating system, you better use the GUI method instead.
Do the following:
- go to [application menu\accessoiries\Text Editor]
- copy/paste the following command string into the blank page:
UrlProjectName="{YourUrlProjectName}" && \
sudo apt-get install -y filezilla && \
filezilla --logontype=interactive "sftp://frs.sourceforge.net/home/frs/project/${UrlProjectName}/"
- replace "{YourUrlProjectName}" by the "URL project name" of your own project, e.g.:
UrlProjectName="od4knb-linux" && \
sudo apt-get install -y filezilla && \
filezilla --logontype=interactive "sftp://frs.sourceforge.net/home/frs/project/${UrlProjectName}/"
🛈 {YourUrlProjectName} can be found in the URL of your site:
https://sourceforge.net/projects/{YourUrlProjectName}/
e.g.:
https://sourceforge.net/projects/od4knb-linux/
🛈 When you use the URL "sftp://frs.sourceforge.net" instead of "sftp://frs.sourceforge.net/home/frs/project/${UrlProjectName}/" in the command, you'll end up in the "/home/users/{FirstCharOfUserName}/{FirstAndSecondCharOfUserName}/{UserName}/" folder, in my case, the "/home/users/o/od/odiep/" folder. There's nothing to do there.
- copy the customized command string above to your clipboard
- go to [application menu\administration\Terminal]
- right-click in the Terminal window
- click "Paste"
- press [Enter]
- check: the "filezilla" package is installed
- check: the Filezilla GUI app is opened
⚠ Do not close the Terminal window, as this will terminate the Fillezilla GUI
- check: the "Welcome to FileZilla" panel is shown
- click [OK]
- check: the "Enter Username" dialog panel is shown
- type your username
- click [OK]
🛈 When you get a red "ssh_init: Name or service not known - Could not connect to server" error, your Internet connection is probably down.
- check: an "Unknown host key" message panel is shown
- check: the question "Trust this host and carry on connecting?" is asked
- click [OK]
- check: the "Enter password" panel is shown
- check: the "Challenge" pane shows "SSH server authentication - Password:"
- type your (permanent) user password in the "Password" field
- click [OK]
- check: the "Enter password" panel is shown again
- check: the "Challenge" pane shows "SSH server authentication - Verification code:"
- open the "Authenticator" app on your smartphone
- check the "Sourceforge: {YourUsername}" 6-digit TOTP code
- type the (one-time) 6-digit TOTP code in the "Password" field
- click [OK]
- check: in the two panels on the left-side, the contents of your local folder "/home/${USER}/" are shown (on your PC)
- e.g.: "/home/mint/"
- check: in the two panels on the right-side, the contents of your remote folder "/home/pfs/project/{UrlProjectName}" are shown (on the SourceForge server)
- e.g.: "/home/pfs/project/od4knb-linux"
- go to [menu Edit\Settings...]
- check: the "Settings" panel is shown
- go to the "Select page:" pane on the left side
- go to [Connection] in the left-side pane
- go to "Timeout" section in the right-side pane
- note: value "20" implies "disconnect after 20 seconds"
- change the value "20" behind "Timeout in seconds" in "9999"
- note: 9999 seconds = 2:46 hours
- click [OK]
🛈 Use the [menu Server\Disconnect] option, to terminate the SFTP connection
▹ GUI method 🔗
🛈 This method is especially useful, if you boot a Linux OS, that's installed on your HDD/SSD. When booting from an .iso file (e.g. using a Ventoy bootloader), all added settings are lost after a reboot.
Enter the connection details in the [menu File\Site manager ...\General] tab
- go to [application menu\administration\Terminal] (or Konsole)
- issue command:
sudo apt-get install -y filezilla
- check: Filezilla is installed successfully
- go to [application menu\Internet\Filezilla]
- go to [menu File\Site Manager...]
- check: the [Site Manager] panel is opened
- click the [New Site] button
- in the "New Site" field, type: SourceForge.net
- press [Enter]
- go to the [General] tab
- set the following values:
- protocol = "SFTP - SSH File Transfer Protocol"
- host =
frs.sourceforge.net/home/frs/project/${UrlProjectName}/ - e.g.:
frs.sourceforge.net/home/frs/project/od4knb-linux/ - port = 22
- logon type = Interactive
- user = {leave empty}
- click the [OK] button
- check: a dialog panel "Remember passwords?" is shown
- click [Do not save passwords]
- click the [OK] button
- check: the [Site Manager] panel is closed
🛈 When you use "host = frs.sourceforge.net", you'll end up in the "/home/users/{FirstCharOfUserName}/{FirstAndSecondCharOfUserName}/{UserName}/" folder, in my case, the "/home/users/o/od/odiep/" folder. There's nothing to do there.
⚠ Never store a username, password or keyfile on your PC! If your laptop is stolen, or if you backup your boot partition on HDD/SSD in an unencrypted .img image file (or similar), it can be used/restored by a vilain, that can use your username/password/keyfile. Always put usernames/passwords/keyfiles in an encrypted file on an USB flash drive.
- go to [menu Edit\Settings...]
- check: the "Settings" panel is shown
- go to the "Select page:" pane on the left side
- go to [Connection] in the left-side pane
- go to "Timeout" section in the right-side pane
- type, behind "Timeout in seconds": 9999
- note: 9999 seconds = 2:46 hours
- click [OK]
- go to the toolbar with icons
- click the [▼] button (pull down)
- click [Sourceforge.net]
- check: the messages box, beneath the "Host - USername - Password" bar shows:
Command: open "{YourUserName}@frs.sourceforge.net" 22 - check: port 22 is used, this is the default port for the SFTP protocol
- check: the "Enter Username" dialog panel is shown
- type your username
- click [OK]
- check: an "Unknown host key" message panel is shown
- check: the question "Trust this host and carry on connecting?" is asked
- click [OK]
- ignore the following errors in the messages box:
Command: Trust new Hostkey: Once
Error: ssh_init: error during SSH connection setup
Error: Could not connect to server
- note: the above error messages are most often followed by:
Status: Waiting to retry...
Status: Connecting to frs.sourceforge.net...
Response: fzSftp started, protocol_version=11
Command: open "{YourUserName}@frs.sourceforge.net" 22
Command: Trust new Hostkey: Once
Status: Using username "{YourUserName}".
- check: the "Enter password" panel is shown
- check: the "Challenge" pane shows "SSH server authentication - Password:"
- type your (permanent) user password in the "Password" field
- click [OK]
- check: the "Enter password" panel is shown again
- check: the "Challenge" pane shows "SSH server authentication - Verification code:"
- open the "Authenticator" app on your smartphone
- check the "Sourceforge: {YourUsername}" 6-digit TOTP code
- type the (one-time) 6-digit TOTP code in the "Password" field
- click [OK]
- check: in the two panels on the left-side, the contents of your local folder "/home/${USER}/" are shown (on your PC)
- e.g.: "/home/mint/"
- check: in the two panels on the right-side, the contents of your remote folder "/home/pfs/project/{UrlProjectName}" are shown (on the SourceForge server)
- e.g.: "/home/pfs/project/od4knb-linux"
🛈 Use the [menu Server\Disconnect] option, to terminate the SFTP connection
⬥ Markdown (.md) to PDF conversion and debugging 🔗
[tip] You can download the "2411D3....md" file at the top of this page, to investigate the MarkDown code behind this HTML page.
▹ Conversion 🔗
There are two great free online MarkDown (.md file) to PDF converters:
▹ File-Converter.org 🔗
- reasonable looking default font (serif), I guess it's a New Times Roman font
- reasonable layout
- with index in the left pane (table of contents)
- with upload button
- icons with a hyperlink (e.g. link symbol 🔗) are not OK in the PDF output
- icons with a hyperlink are OK in the HTML output
- text between accent grave (Hex60) code tags is always wrapped (overflow-wrap), and will never run off the page
- the default page margins are a bit to large, and cannot be set using the
padding: 20px;CSS property. - you can also convert the .md file into several other formats: .doc, .docx, .html, .odt, .rtf, .tex, .epub and .fb2.
▹ ApiTemplate.io 🔗
- good looking default font (sans-serif), I guess it's an Arial font
- great looking layout
- without index in the left pane (table of contents)
- without upload button (copy/paste the .md code into the left pane)
- icons with a hyperlink (e.g. link symbol 🔗) are not OK in the PDF output
- text between accent grave (Hex60) code tags is always wrapped (overflow-wrap), and will never run off the page
- the default page margins are OK, and can be adjusted using the
padding: 20px;CSS property - you can only convert the .md file into a .pdf file
I prefer a clickable TOC (index) with sub sections in the side panel of my PDF viewer, as it navigates very quickly, so I use File-Converter.org to convert "2411D3...md" to "2411D3...pdf". If you don't use the index in the side panel, because you are satisfied with the [Go to the Table of Contents] links at the end of each section, you better use APITemplate.io to convert your MarkDown file into a PDF file, because the layout looks much better. Jacky Tan from APITemplate.io is very friendly and helpful BTW ;-)
▹ Best practice: Convert MD to ODT to PDF 🔗
In my opinion, the best way to create a PDF file that fully meets your needs, is as follows:
- go to file-converter.org
- click the [Upload Files] button
- browse to and select your .md file
- click [Open]
🛈 There's no need to place a <style></style> CSS section in the MD file. When using file-converter.org, without a <style></style> section, the "body" font is set to "Times New Roman" (we'll replaced it by an "Liberation Sans" font), and the "code" font is set to "Courier New" (we'll replaced it by a "Liberation Mono" or "DejaVu Sans Mono" font)
- click the [Select ▼] button
- click the [ODT] option
- click the [🔄 Convert] button
- wait for processing
- click the [⤓] download button
- check: the .odt file is downloaded to your [/home/${USER}/Downloads/] folder
▹ Check the font substitutes 🔗
In the downloaded .ODT file, the fonts "Times New Roman", "Arial" and "Courier New" are registered, but not incorporated in the file. These fonts cannot be used (displayed) by LibreOffice Writer, as they are not installed by default. You cannot use a font that's not installed. A non-installed font is printed in italics in the LibreOffice Writer font name field in the "B-I-U" bar.
LibreOffice Write replaces (substitutes) a non-installed font by an installed font that best matches the non-installed font (the closed available font). There's no real "substitute list" available in LibreOffice Writer AFAIK, and this topic presents a very moderate solution. To check, by which fonts the "Times New Roman", "Arial" and "Courier New" fonts are replaced, do the following:
- start LibreOffice Writer
- go to [menu File\Open]
- browse to your [/home/${USER}/Downloads/] folder
- select the .odt file
- click the [Open] button
- check: the .odt file, that contains the .md file content, is opened
- note: we'll call this opened file "OpenedFile"
- go to [menu file\New\Text document]
- check: an "Untitled 1" document is opened (a blank page)
- go to "OpenedFile"
- click a heading text (e.g. Heading 1, Heading 2, etc.)
- check: the second field from the left in the "B-I-U" bar, shows the registered font name in italics
- note: in this example, the registered font is Arial
- note: the Arial font is not displayed, because it's not installed
- copy the header text to your clipboard
- paste the text on your clipboard into "Untitled 1"
- check: the second field from the left in the "B-I-U" bar, shows the substitute font
- note: in this example, the substitute for the "Arial" font is "Liberation Sans"
- go to "OpenedFile"
- click a word in the body text
- check: the second field from the left in the "B-I-U" bar, shows the registered font name in italics
- note: in this example, the registered font is Times New Roman
- copy the word to your clipboard
- paste the word on your clipboard into "Untitled 1"
- check: the second field from the left in the "B-I-U" bar, shows the substitute font
- note: in this example, the substitute for the "Times New Roman" font is "Liberation Serif"
- go to "OpenedFile"
- click the
codein a code block ("Preformatted text", e.g.sudo apt install packageName) - check: the second field from the left in the "B-I-U" bar, shows the registered font name for the body text in italics
- note: in this example, the registered font is Courier New
- copy the code to your clipboard
- paste the code on your clipboard into "Untitled 1"
- check: the second field from the left in the "B-I-U" bar, shows the registered font, not the substitute font
- note: this apparently doesn't work for a font in a "Preformatted text" area :-(
- go to "Untitled 1"
- go to [menu File\Export as\Export directly as PDF]
- browse to and select your [/home/${USER}/Documents] folder
- save "Untitled 1" as "TempIdentifyFonts.pdf" (or so)
- go to [application menu\accessoiries\File Manager]
- browse to your [/home/${USER}/Documents] folder
- double-click the "TempIdentifyFonts.pdf" file
- check: the "TempIdentifyFonts.pdf" file is opened in your PDF viewer
- note: for Linux Mint the default PDF reader is "Xreader"
- go to [menu File\Properties\tab Fonts]
Check: the embedded fonts (stored in the .pdf file) are shown, in this example:
- LiberationSans-Bold, TrueType, Embedded subset (this is the heading font)
- LiberationSerif, TrueType, Embedded subset (this is the body text font)
- LiberationMono-Bold, TrueType, Embedded subset (this is the code block font)
- check: the registerd code block font "Courier New", is substituted by the "Liberation Mono" font
▹ Install the "ttf-mscorefonts-installer" package 🔗
If you insist on using the "Times New Roman", "Arial" or "Courier New" font in your .odt and .pdf file, you must install the package "ttf-mscorefonts-installer". Do the following:
- close all LibreOffice apps
- go to [application menu\Terminal] (or "Konsole")
- copy/paste the following command chain:
sudo apt-get install -y ttf-mscorefonts-installer && fc-cache -f
- check: the following panel is presented, with an [OK] button:
title: Configuring ttf-mscorefonts-installer
message: TrueType core fonts for the Web EULA
- press [Tab], [Enter], to "press" the [OK] button
- check: the following panel is presented, with a [Yes] and [No] button:
title: Configuring ttf-mscorefonts-installer
message: Do you accept the EULA license terms?
- press [Tab], [Enter], to "press" the [Yes] button
- check: at the end, the following message is shown:
All done, no errors.
All fonts downloaded and installed.
Processing triggers for fontconfig (PackageVersion) ...
- click the [X] button to close the Terminal window
⚠ On Linux Mint Cinnamon Ubuntu Base 22.3 for amd64, you may encounter the following errors:
E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/u/ubuntu-release-upgrader/python3-distupgrade_24.04.27_all.deb 404 Not Found [IP: 2a06:bc80:0:1000::16 80]
E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/u/ubuntu-release-upgrader/ubuntu-release-upgrader-core_24.04.27_all.deb 404 Not Found [IP: 2a06:bc80:0:1000::16 80]
E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?
⚠ If the installation of the "ttf-mscorefonts-installer" package fails, you cannot use the "Times New Roman", "Arial" or "Courier New" font in your .odt or .pdf file. The missing packages can be found here:
- python3-distupgrade_24.04.27_all.deb (look under "Downloadable files")
- ubuntu-release-upgrader-core_24.04.27_all.deb (look under "Downloadable files")
but the "python3-distupgrade_24.04.27_all.deb" package is broken, it wants to download itself :-(
▹ Replace the non-installed fonts 🔗
In this procedure, we replace the non-installed fonts, like "Times New Roman", "Arial" and "Courier New", by installed fonts like "Liberation Sans", "Liberation Mono" or "DejaVu Sans Mono".
- go to [application menu\Office\LibreOffice Writer]
- go to [menu Tools\Options]
- check: the "Options - LibreOffice" panel is shown
- go to the left-hand menu
- go to [▶ LibreOffice\Fonts]
- click the □ checkbox in front of "Apply replacement table"
- in the "Font" field: type "Times New Roman"
- in the "Replace with" field, type "Liberation Sans"
- click the green [✓] button, behind the "Font" and "Replace" field
- click the □ check box, in the "Always" column
- check: a check mark [✓] is shown in the "Always" column
- in the "Font" field: type "Arial"
- in the "Replace with" field, type "Liberation Sans"
- click the green [✓] button, behind the "Font" and "Replace" field
- click the □ check box, in the "Always" column
- check: a check mark [✓] is shown in the "Always" column
- in the "Font" field: type "Courier New"
- in the "Replace with" field, type "Liberation Mono" or "DejaVu Sans Mono"
- click the green [✓] button, behind the "Font" and "Replace" field
- click the □ check box, in the "Always" column
- check: a check mark [✓] is shown in the "Always" column
- click the [Apply] button
- in the "Options - LibreOffice" panel: go to the left-hand menu
- go to [▶ LibreOffice Witer\Basic Fonts (Western)]
- in the "Default" field: type "Liberation Sans"
- in the "Heading" field: type "Liberation Sans"
- in the "List" field: type "Liberation Sans" (if not already shown)
- in the "Caption" field: type "Liberation Sans" (if not already shown)
- in the "Index" field: type "Liberation Sans" (if not already shown)
- click the [OK] button, to close the configuration panel
🛈 There's no "Preformatted Text" field in the "Basic Fonts (Western)" options panel. A non-installed font in a "Preformatted Text" area, like the "Courier New" font, cannot be replaced by an installed font like "Liberation Mono" or "DejaVu Sans Mono", in the "Basic Fonts (Western)" options panel.
- press and hold the [Ctrl] key, and press the [F] key
- type
sudoor another word (string) that's present in aCode Block - press [Enter]
- click a word (string) in the
Code Block(e.g.sudo) - check: the first field from the left in the "B-I-U" bar, shows [Preformatted Text]
- check: the second field from the left in the "B-I-U" bar, shows the non-installed font Courier New in italics
- note: an installed font is shown upright, a non-installed font is shown in italics
- note: the "Courier New" font has not been replaced by an installed font
- click the [▼] button, behind [Preformatted Text], in the "B-I-U" bar
- click the [▼] button, behind [Preformatted Text], in the pull-down menu
- click [Edit Style...]
- check: the "Paragraph Style:Preformatted Text" panel is opened
- click the [Font] tab, in the second row
- in the "Family Field": type "Liberation Mono"
🛈 You can also type "DejaVu Sans Mono", that's also a good font for a code block
- click the [▼] (pull-down) button, behind "Size"
- select "12 pt"
- click the [Highlighting] tab in the second row
- click the [Color] button
- go to the "Colors" section
- go to the first row, 3rd □ from the right (light grey 4)
- click the □ button in the palette (light grey 4)
- click [OK] to close the panel
- click a word (string) in any
Code Block(e.g.sudo apt install gimp) - check: the first field from the left, in the "B-I-U" bar, shows "Preformatted text"
- check: the second field from the left, in the "B-I-U" bar, shows the installed font "Liberation Mono" (or "DejaVu Sans Mono"), printed upright (meaning "installed font"), not in italics
- check: all code blocks have a grey background
- click on a random word in the body text
- press and hold the [Ctrl] key
- press the [A] key (select all)
- go to [menu Format\Page Style]
- click the [Page] tab
- go to the [Margins] section
- change the values to the following:
- left = 0.50"
- right = 0.50"
- top = 0.50"
- bottom = 0.50"
- gutter = 0.00" (unchanged)
- click the [OK] button
🛈 Convert inches to centimeters at convertunits.com
- go to [menu File\Save], to save the .odt file
- go to [menu File\Export As\Export directly as PDF], to save the .pdf file
🛈 Go to [menu File\Export As\Export as PDF ..], if you want to configure the PDF output (embed .odt, create a PDF/A or PDF/UA file etc.)
- close LibreOffice Writer
- open the .pdf file in your PDF viewer
- check: the index is presented in the panel on the left side
- check: is the layout to your liking?
🛈 Unfortunately, not all internal links that point to an <a name="...">⬥</a> header within the same document (beginning with a "#") work. I have no idea why (do you?). The internal links in the index panel on the left side always work, as do the links that point to an external location (beginning with "http").
▹ CSS Stylesheet code 🔗
To get another font using an MD to PDF converter (e.g. a sans serif font like Arial), and to make sure that your code doesn't fall of the page, you can add the following CSS code at the beginning of your .md file:
<style type="text/css" rel="stylesheet">
code {
font-family: "Courier New";
white-space: pre-wrap;
word-wrap: normal;
overflow-wrap: anywhere;
}
body {
font-family: "Arial";
padding: 20px;
}
</style>
-
the
code {}section ("selector") is intended to prevent overflow (command strings running off page). It only works for code between accent grave (Hex60) code tags. -
the
padding: 20pxproperty should set the left and right margin to 20 pixels, but on File-Converter.org it doesn't work.
You can use any font family in the body {} section, e.g.: font-family: 'Arial';
▹ WYSIWYG MarkDown editors 🔗
Several WYSIWYG MarkDown editors (you'll see the HTML result in a separate pane, as you type) are available, if you don't like creating your MarkDown file in a text editor like XED or Geany. These apps can also export to the PDF, HTML, ODT, TXT, JPG, DOCX, LaTeX and ePub file format.
▹ Tutorials 🔗
▹ Debugging 🔗
To debug your MarkDown file, you best go to:
⚠ First read the TLDR manual in the left panel: lots of good tips!
- click in the left panel
- press the [Ctrl]+[a] keys simultaneously, to select the full manual text
- press the [Delete] key
- paste your MarkDown code in the left panel
- check the HTML result in the right panel
I couldn't find a "real" MarkDown debugger for Linux, or a free online debugger (only "viewers"), but debugging on this site works great: you can change something in the code in the left panel and immediately see the HTML result in the right panel. It's also nice to fuzzle around in your MD code.
Two little minussus:
- the CSS "font-family" variable ("property") in the body section ("selector") doesn't work: when using the following CSS code:
<style type="text/css" rel="stylesheet">
body {
font-family: "Arial", sans-serif;
padding: 20px;
}
</style>
the font isn't changed to 'Arial'.
- the CSS "overflow-wrap" variable in the "code" section doesn't work: when using the following CSS code:
<style type="text/css" rel="stylesheet">
code {
font-family: "Courier New", sans-serif;
white-space: pre-wrap;
word-wrap: normal;
overflow-wrap: anywhere;
}
</style>
and when putting a large code string in a code block (between Hex60 accent grave tags), e.g.:
$ mpv --term-status-msg='${path}\naudio-bitrate:${audio-bitrate}' --length=15 --msg-level=all=v 'PasteUrlHere' 2>&1 | tee -a "/home/${USER}/"$(date '+%Y-%m-%d-%H.%M.%S')-mpv-verbose.log""
the code string is not wrapped, but a horizontal slider is available to make the code that runs off the page (overflow) visible.
⚠ There's no horizontal slider available in your PDF viewer to reveal the overflowing code. Test the MD to PDF conversion with a large code string in a code block, and verify that the entire code string is retained (wrapped).
⚠ Do not put <font color="white"></font> around the <style></style> section, to hide this section in the HTML output, because then, MarkDown Live Preview will no longer parse the CSS code in the <style></style> section.
⚠ Sourceforge does not allow color changes (<font color="color"></font> tags), nor custom fonts (font-family: "FontFamily").
⬥ antiX Linux® 🔗
NEW Antix 26 stable is released! Avaliable for x86-64/amd64 and IA-32/i486. Both versions have a Debian 13 (trixie) base, and it works great!
I'm a big fan of antiX Linux®, it's the fastest lightweight Linux distro there is! It runs very smooth on old i386 (32 bit) hardware. I use antiX Linux runit as the base for my 2411D4 od4knb antiXradio distribution (.iso file/"distro").
[website] [download] [forum] [wiki] [manual] [review]
📻 The od4knb antiXradio project 🔗
The antiXradio app is the antiX Linux® Internet Radio Receiver GUI. It is a .sh Bash script that uses MPV Media Player as its engine.
The 2411D4-{Version}-od4knb-antiXradio.iso/img file contains a customized antiX Linux 23.2-runit-32bit-full installation, that automatically starts the antiXradio app. It contains a lot of Dutch radio stations.
▹ Superb performance 🔗
antiX Linux is the fastest lightweight Linux distro I've ever tested (and I've tested quite a few ...). RAM usage when antiXradio is running is 240 MB, but, when changing radio stations a lot, it can run up to 1 GB. When you restart the antiXradio app, it'll be 240 MB again.
▹ Requirements 🔗
The ISO/IMG is optimized for old (2006) 32bit/i386 computers. The minimum requirements are:
- 1-core 32 bit 1 GHz CPU
- 256 MB RAM for using antiXradio
- 1 GB RAM for using LibreOffice, Firefox etc.
- HDD/SSD is not required, a 8 GB USB stick or DVD-player suffices
▹ Wi-Fi 🔗
Because an .ISO file (contains an ISO9660 File System) is read only by design, you have to enter the Wi-Fi password every time you boot the ISO. Consider a wired connection using UTP (CAT5e/6/6a) cabling, or two PowerLine adapters to connect to your router, that'll work out-of-the-box. When you want to use Wi-Fi, please read the 2411DB Wi-Fi HowTo first.
▹ SSD for better performance 🔗
When your HDD in your old laptop is too slow: you can buy a 2.5 inch 32 GB PATA/IDE SSD (44 pins). You can put a lot of Linux ISO's on a 32 GB SSD, when using a Ventoy bootloader. A 1.8 inch PATA/IDE HDD with ZIF connecter ("CE/LIF", 40 pins) can often be replaced by a 1.8 inch ZIF SSD, with a capacity of 128GB or 256GB.
▹ Hi-Fi 🔗
To make an outstanding HiFi radio player out of your laptop with od4knb-antiXradio, you'll need the following:
- a Class D mini amplifier with one RCA input, a volume control, and an on/off switch
🛈 Look for the simplest Shure/Aiyima/Fosi/S.M.S.L./Nobsound/McGrey amp. You can add a RCA input selector (a "pre-amplifier", just a switch without any electronical components) if you want to connect more audio devices to your amp. Ofcourse, you can also get a big amp from the thrift store.
- two small second hand Hi-Fi loudspeakers
- an audio cable with a 3.5 mm (1/8") 3-pole (stereo) TRS jack male connector at one end, and two (red+white) RCA male connectors (cinch/tulip) at the other end
- two 2.5 mm2 (3/32 in2) 2-pole stranded copper cables to connect your speakers
- four banana connectors for the speaker cables (eight, if your speakers also have banana connector inputs)
▹ USB DAC (Digital to Analog Converter) 🔗
For the best audio quality, and professional features, a PCIe audio card or an external USB DAC (Digital to Analog Converter) is advised. Please read the information on the following websites for advice:
⬥ antiXradio .deb package for installation on Debian based Linux distros 🔗
If you do not want to use the 2411D4-{version}-od4knb-antiXradio.iso/img, but you do want to install the antiXradio GUI on your own Linux installation, you can download the "antixradio_{version}_all.deb" package, for all CPU architectures, from the MX Linux repository:
🛈 MX Linux is the middleweight "nephew" of lightweight antiX Linux. In the MX Linux repository also antiX Linux packages are stored. The MX repo is safe to use.
A .deb package can be installed on all Debian based and Ubuntu based distributions, such as antiX Linux, Ubuntu, Linux Mint and UZL. For other Linux distros: look in the other howtos:
- antiXradio semi portable .tar.xz package for use on Debian based Linux distros
- antiXradio semi portable .tar.xz package for use on non-Debian based Linux distros
🛈 Ubuntu is based on Debian, but distributions based on Ubuntu (e.g. Zorin OS/Pop! OS) are not called "Debian based", but "Ubuntu based" (or Ubuntu derivates), even though they do have Debian components under the hood. To keep it simple: (to me) there are only two "level 1" Linux OS bases: Debian and Fedora, the other distributions are derivatives of those. When I say "Debian based" here, I mean all Linux OSes that contain Debian components, including (e.g.) "level 3" OS Linux Mint (based on "level 2" OS Ubuntu), and "level 4" Ufficio Zero Linux (based on Linux Mint).
🛈 Consult the List of Linux distributions wiki to find out, that there are several other bases than Debian/Ubuntu/Fedora.
The easiest way to install the .deb package is by using the Captain or GDebi Package Installer GUI: right-click the .deb file; click "Open with Package Installer" (or GDebi). When Captain is not installed on your system, you can install it using:
$ sudo apt install captain
When Captain is not available in your repository, you can try installing GDebi:
$ sudo apt install gedebi
🛈 There's a plus for using a GUI package installer like Captain or GDebi: you'll see the package information and instructions, that the developer wants you to see. When you use apt, apt-get or dnf, you'll not see this/these information/instructions. Note, that GUI package installers are always non-interactive: you'll not see any user dialogs, except for the main dialog panel with the [Install Package] button, and the "Additional software has to be installed" panel. You cannot use the [Application menu\Administration\Software Manager] GUI app for installing .deb packages, that are manually downloaded using an Internet browser (or wget command).
If you do not want to use GDebi or Captain, enter the following command in your Terminal/Konsole app:
$ sudo apt install "/home/${USER}/Downloads/antixradio_{version}_all.deb"
or, when you do not like interaction ;-):
$ sudo apt-get install -y "/home/${USER}/Downloads/antixradio_{version}_all.deb"
⚠ Replace {version} with the actual version number.
🛈 There's also a plus for using an interactive CLI package installer, with the sudo apt install {PackageName} or sudo dnf install {PackageName} command, without the non-interactive "-y" switch ("-y" means: automatically answer "yes" to all [y/N] questions, or choose the default option): the CLI user dialogs are shown. An example: the "libappindicator-gtk3" package (not of any use in conjunction with antiXradio ;-) will ask you, only in the interactive CLI mode:
Running transaction
Importing OpenPGP key 0x31645531:
UserID : "Fedora (43) <fedora-43-primary@fedoraproject.org>"
Fingerprint: C6E7F081CF80E13146676E88829B606631645531
From : file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-43-x86_64
Is this ok [y/N]:
Notes:
- antiXradio can only run on Linux systems, as it depends on the Bash Command Line Interpreter (Terminal/Konsole, CLI), which is only available on Linux systems. It runs on all Linux variants.
- Because antiXradio also depends on MPV Media Player (it uses the MPV engine), the MPV package will be installed, when it is not already installed.
⬥ antiXradio semi portable .tar.xz package for use on Debian based Linux distros 🔗
When you did not succeed in installing the .deb package, you can also "install" (just copy, no install) the portable "antixradio_{version}.tar.xz" package on your Debian based Linux system.
🛈 A portable package is not installed in the application folders (/bin, /usr/bin, /etc, /lib etc.), but simply copied to your /home/${USER} folder. A "fully portable" package contains all the required packages (binaries etc.) that the application needs to run. The antiXradio .tar.xz package is "semi portable", as it lacks the required packages mentioned below.
Perform the following actions:
🛈 APT Package Installer (the apt/apt-get command) is available on all Debian based Linux distributions, such as antiX Linux, Ubuntu and Linux Mint.
- Install the packages that are required by antiXradio, by copy/pasting this command string in your Terminal/Konsole (Command Line Interpreter):
$ sudo apt-get -y install mpv && \
sudo apt-get -y install socat && \
sudo apt-get -y install yad && \
sudo apt-get -y install xdotool && \
sudo apt-get -y install wmctrl && \
sudo apt-get -y install netcat-traditional && \
sudo apt-get -y install netcat-bsd && \
sudo apt-get -y install sed && \
sudo apt-get -y install xdg-utils
⚠ The package netcat-traditional or netcat-bsd is required. A Failed installation of one of them is OK. "nc" is netcat for short.
- go to the MX repository
- download the "antixradio_{version}.tar.xz" file to [/home/${USER}/]
🛈 "${USER}" is your user name. In the Terminal/Konsole app (look for a black "$_" icon), your user name is shown before the "@" sign.
- extract the file using your Archive Manager into [/home/${USER}/]
- make [/home/${USER}/antixradio/bin/antiXradio] (the "app", a .sh Bash script) executable (usually using Right-click\Permissions\on=allow executing file as a program)
- create a shortcut (Symlink) to [/home/${USER}/antixradio/bin/antiXradio] on your desktop
- go to [application-menu-button\File Manager]
- go to [Menu View]
- click the "Show hidden files" check box
- open the [/home/${USER}/.config] folder
- create a folder named "antiXradio" (case sensitive!), in the [/home/${USER}/.config] folder
🛈 A {dot}{folderName} folder (e.g. ".config") has a "hidden" label.
- go to folder [/home/${USER}/antixradio/]
- copy the "stations" folder, with all of its contents, into folder [/home/${USER}/.config/antiXradio/]
- right-click the antiXradio shortcut on your desktop
🛈 You can also right-click [/home/${USER}/antixradio/bin/antiXradio]
- click [Open\Execute]
- click the [Run in Terminal]
- the antiXradio GUI is started
- click the [Load another list] button
- select a radios*.txt file
- click the [OK] button
- select a radio station
- click the [Play] button
⬥ antiXradio semi portable .tar.xz package for use on non-Debian based Linux distros 🔗
When APT Package Installer (the apt/apt-get command) is not available on your system, use your GUI software manager, or use one of the following commands:
$ sudo rpm -i {PackageName}
$ sudo dnf install -y {PackageName}
$ sudo yum install -y {PackageName}
$ sudo pkg install -y {PackageName}
$ sudo pacman -S {PackageName}
to install the following required packages:
- mpv (MPV Media Player)
- socat (SOcket CAT byte streams data transfer)
- yad (Yet Another Dialog, GUI for Bash scripts)
- xdotool (X11 Input Simulator)
- wmctrl (Window Manager Control for EWMH/NetWM WMs)
- netcat-traditional or netcat-bsd (TCP/UDP reader/writer)
- sed (SED Stream Editor)
- xdg-utils (XDG Desktop Integration Tools)
and perform the following actions:
- go to the MX repository
- download the "antixradio_{version}.tar.xz" file to [/home/${USER}/]
🛈 "${USER}" is your user name. In the Terminal app (look for a black "$_" icon), your user name is shown before the "@" sign.
- extract the file using your Archive Manager into [/home/${USER}/]
- make [/home/${USER}/antixradio/bin/antiXradio] (the "app", a .sh Bash script) executable (usually using Right-click\Permissions\on=allow executing file as a program)
- create a shortcut (Symlink) to [/home/${USER}/antixradio/bin/antiXradio] on your desktop
- go to [application-menu-button\File Manager]
- go to [Menu View]
- click the "Show hidden files" check box
- open the [/home/${USER}/.config] folder
- create a folder named "antiXradio" (case sensitive!), in the [/home/${USER}/.config] folder
🛈 A {dot}{folderName} folder (e.g. ".config") has a "hidden" label.
- go to folder [/home/${USER}/antixradio/]
- copy the "stations" folder, with all of its contents, into folder [/home/${USER}/.config/antiXradio/]
- right-click the antiXradio shortcut on your desktop
🛈 You can also right-click [/home/${USER}/antixradio/bin/antiXradio]
- click [Open\Execute], and/or:
- click the [Run in Terminal] button
- the antiXradio GUI is started
- click the [Load another list] button
- select a radios*.txt file
- click the [OK] button
- select a radio station
- click the [Play] button
Notes:
- The package netcat-traditional or netcat-bsd is required. A Failed installation of one of them is OK. "nc" is netcat for short.
- Not all Linux distros use the X11 Window manager, so xdotool may not be available for your Linux OS (that's a bummer ;-(
⬥ Install KDE Advanced Radio Player widget 🔗
The Advanced Radio Player KDE widget is a handy radio player app, only available on a KDE Plasma desktop. It uses the JSON file format for its playlists. A "widget" (or desklet) is a small panel, pinned to the desktop. You probably already use widgets, to show the clock, CPU%, or the weather on your desktop.
🛈 The Advanced Radio Player widget, can be installed using the Plasma Discover Software Center, and is tested on:
- Debian Live 13.4.0 KDE for amd64 with KDE Plasma 6.3.6 desktop;
booted from a Ventoy 1.1.10 bootloader, on an x86-64-v1 computer (amd64 Gen.1).
⚠ The Advanced Radio Player widget, cannot be found (and thus not installed) using the Plasma Discover Software Center on:
- Ubuntu 25.10 KDE for amd64 (Kubuntu) with KDE Plasma 6.4.5 desktop and Qt 6.9.2 (fits requirements)
- Fedora Desktop Live 43-1.6 KDE for amd64 with KDE Plasma 6.4.5 desktop and Qt 6.9.2 (fits requirements)
▹ Installation 🔗
- click the application menu button in the left-below corner (Application Launcher)
- go to [System\Discover]
- check: the "Home - Discover" panel is opened
- click the [🏠 Home] button in the left pane
- go to the [🔎 Search] field on top
- type "advanced"
- press [Enter]
- go to the right pane
- check: "Advanced Radio Player" is shown
- click the [⭳ ] (install) button in the "Advanced Radio Player" pane
- check: the [⭳ ] (install) icon has turned into a [🗑] (trash can) icon, meaning "installed"
- click the [X] (close) button in the right-above corner, to close the "Discover" panel
- go to [Application menu\System\Konsole] (terminal emulator)
- type
sudo apt-get install -y qml6-module-qtnetwork - press [Enter]
- check: the "libqt6qmlnetwork6" and "qml6-module-qtnetwork" package are installed
- click the [X] (close) button, in the right-above corner
🛈 Installing these packages prevents the following error:
Sorry! The was an error loading Advanced Radio Player
file:///home/user/.local/share/plasma/plasmoids/
org.kde.plasma.advancedradio/contents/ui/main.qml:3:1: module
"QtNetwork" is not installed
- right-click the desktop
- click [Enter edit mode]
- click [Add or Manage Widgets...]
- check: the "Widgets" panel is shown
- check: a [Advanced Radio Player] pane is shown in the list, with a green [New!] marker
- click the [Advanced Radio Player] pane, but not the red [🗑] (trash can) button in it
- check: a blue [1] marker is shown in the pane
- check: a white [🖌] (brush) marker is shown in the pane
- check: the "Advanced Radio Player" panel (GUI) is shown in the minimized desktop, on the right side of your desktop
- click the [X] (close) button, in the right-above corner of the "Widgets" panel, on the left side of your desktop
- click the [✓ Exit Edit Mode] button in the right-above corner
▹ Widget configuration 🔗
- right-click the desktop
- click [Enter edit mode]
- hoover over the "Advanced Radio Player" widget panel
- check: an [open hand] mouse pointer is shown
- check: the "Advanced Radio Player" widget panel, has 8 black dots at the edge of the panel, meaning "panel is movable"
- click and hold the left mouse button
- check: a [fist] mouse pointer is shown
- slide the panel to a position of your liking
- release the mouse button
- go to the verticle rectangle bar with the [🎵][🎚][a] buttons
- click the middle [🎚] (two-sliders) button (Configure Advanced Radio Player...)
- check: the "Advanced Radio Player Settings" panel is shown
- click the [Stations] button in the left pane
- click [🗑] (trash can) button, to remove a radio station
- click the [+ Add...] button to add a new radio station
- type the name and URL of the station
- click the [✓ OK] button
- check: the new station is added at the end of the list
- click the [✓ OK] button, to close the panel
🛈 To import radio stations from a JSON playlist, consult the Play a JSON radio station playlist from radio-browser.info in KDE Advanced Radio Player howto.
▹ Enable sound card (chip) 🔗
- go to the system tray (notification area), to the left of the clock
- check: an [🕪] (enabled speaker) icon is shown, meaning "audio device is enabled": OK, go to the next section, OR:
- check: a [🔇] (diasabled speaker) icon is shown, meaning "audio device is not enabled", perform the following actions:
- click the [ ⠇>] button in the left-below corner (Application Launcher)
- go to [System\System Settings]
- go the left pane
- go to the "Input & Output" section
- click the [Sound] item
- go to the top bar
- slide the button in front of "Show Inactive Devices" to the right (enabled)
- go to the right pane
- go to the "Inactive Cards" section
- check: "Built-in audio" (the audio chip on your motherboard) is set to "Off"
- click the [Off ▼] pull down button
- click the other option
- 🛈 in my case the other option is "Pro Audio", the designation of my Intel 82801I HD Audio chip
- check: the [🔇] (diasabled speaker) icon in the system tray, has turned into a [🕪] (enabled speaker) icon (pointing to the right ;-)
- click the [X] (close) button in the right-above corner, to close the "System Settings" panel
- go to the "Advanced Radio Player" widget panel on the desktop
- click a radio station in the list
- check: the message "Buffering ... 25%" is shown, at the bottom of the panel
- check: the Bitrate (Kb/s) is shown
- check: sound is audible
▹ Turn off the radio 🔗
You must use the Enter edit mode option, to change settings, add/remove stations, or turn off the radio. There's no "settings" or "stop/pause" button in the panel. When clicking the [▲] (Show hidden icons) button in the system tray (to the left of the clock), there's no "Advanced Radio Player" icon available.
To turn off Advanced Radio Player, do the following:
- right-click the desktop
- click [Enter edit mode]
- click [Add or manage widgets...]
- check: the "Widgets" panel is shown
- check: [Advanced Radio Player] pane (large button) is shown in the list
- in the [Advanced Radio Player] pane, click the [🖌] (brush) button (Remove all instances)
- look in right panel, with a minimized desktop
- check: the "Advanced Radio Player" widget panel is removed
- check: no sound is audible
- go to the "Widgets" panel on the left
- click the [X] close button, in the right-above corner, to close the "Widgets" panel
- click the [✓ Exit edit mode] button in the right-above corner
🛈 To load another JSON radio station playlist in the Advanced Radio Player widget, consult the Play a JSON radio station playlist from radio-browser.info in KDE Advanced Radio Player howto.
⬥ Play a CSV radio station playlist from radio-browser.info in antiXradio 🔗
The radio-browser.info website contains a lot of radio stations. You can listen to them by clicking the [Play] button in the web interface, but it's also posible to create a playlist of the selected radio stations in several file formats: CSV, XML, JSON, M3U, PLS, XSPF and TTL. antiXradio uses the CSV format.
Information about installing the antiXradio app:
- antiXradio .deb package for installation on Debian based Linux distros
- antiXradio semi portable .tar.xz package for use on Debian based Linux distros
- antiXradio semi portable .tar.xz package for use on non-Debian based Linux distros
▹ TLDR: Ready-to-use antiXradio playlists in the "Playlists" folder 🔗
I created a few ready-to-use antiXradio playlists for you. The .deb package is in the playlists folder. Do the following:
- double-click the 2602DV .deb installer package, to install the playlists in the default antiXradio playlist folder "/home/${USER}/.config/antiXradio/stations" of all users of your computer
- to show the hidden "/.config" folder in your file manager, you must enable [menu View\Show hidden files]
- load the new playlists in the antiXradio GUI, by clicking the [Load another list] button
Instead of installing the playlist files, you can also extract ("unzip") the .deb package:
- open your File Manager
- right-click the 2602DV .deb package (or any other .deb package)
- click [Extract here]
- right-click "data.tar.zst"
- click [Extract here]
▹ Install Geany Text Editor 🔗
CSV playlists, downloaded from radio-browser.info, contain a lot of (useless) colums. Only the colums with title "name" (Radio station name) and "url" (Radio station stream URL) must be kept. The CSV file needs to be editted, to use it in antiXradio.
For this action, you need to install the Geany text editor (this genie lives in a teapot 🫖 ;-).
🛈 Geany is preferred over other text editors, because it's advanced but easy to use, it displays the [LF] Line Feed control code clearly, and it has a "strip trailing spaces" option. XED for example, displays an indistinct [⏎] character (is that "[CR][LF]" or "[LF]"?), that you can hardly see, and it doesn't have a "strip trailing spaces" option. antiX Linux already has Geany installed.
- go to [application menu\administration\Terminal]
- type:
sudo apt-get install -y geany
- press [Enter]
- check: Geany is installed successfully
🛈 You can also install Geany using your package installer GUI app, that usually can be found in [Application menu\Administration\Software manager] (Cinnamon), [Application menu\System\Discover] (KDE), or [Taskbar\App Center] or [Taskbar\Software] (GNOME).
▹ Download the CSV playlist from radio-browser.info 🔗
To download a CSV radio station list, do the following:
- go to [application menu\accessories\Files] (file manager)
- go to [My Computer] in the left-side panel
- click the [Music] button
- right-click a free space in the right panel
- click "Create new folder"
- type "Playlists"
- press [Enter]
- check: the "/home/${USER}/Music/Playlists/" folder is created
- e.g. "/home/james/Music/Playlists/"
- open your webbrowser (Firefox, Chrome etc.)
- go to radio-browser.info
- go to the menu bar on top
- click the [By category ▼] button
- click [By Country]
🛈 Besides the "By Country" page, you can use any selection in the menu bar. You can also type "rock", "ambient", or "sleep" (or whatever) in the search field in the right-above corner, to create a Rock, Ambient or Sleep sounds .csv playlist.
- scroll down, to the country of your choice
- note the value in the "Stations" column (the number of radio stations in the list) on a sticky note
- e.g.: Country=NL - Name=The Netherlands - Stations={NumberOfRadioStations}
- note: in this example, the {NumberOfRadioStations} is 1094
- click the button (line) with the country name
- go to the "Other formats" panel on top
- right-click the [CSV] button
- click "Copy link"
- open a new tab in your browser
- paste the URL on your clipboard into the address bar
- note: do not press [Enter]
- change "limit=10" in the URL, into "limit=9999". In this example:
original URL:
https://de1.api.radio-browser.info/csv/stations/search?limit=10&countrycode=NL&hidebroken=true&order=clickcount&reverse=true
custom URL:
https://de1.api.radio-browser.info/csv/stations/search?limit=9999&countrycode=NL&hidebroken=true&order=clickcount&reverse=true
🛈 The value of "limit={value}" must be higher than {NumberOfRadioStations}
- press [Enter]
- check: the .csv is opened in a new browser tab
- click the opened page
- press and hold the [Ctrl] key
- press the [A] key (select all)
- check: the full text in the page is selected (blue)
- press and hold the [Ctrl] key
- press the [C] key (copy)
- release the [Ctrl] key
- note: the full text on the browser tab is now on your clipboard
- go to [application menu\programming\Geany]
- go to [menu File\New]
- check: an [untitled x] tab is opened
- check: the tab contains a blank page
- click in the blank page
- press and hold the [Ctrl] key
- press the [V] key (paste)
- check: the full text in the page is pasted into the [untitled x] tab
- check: the last record (line) has line number {NumberOfRadioStations} + 1 ("1095" in this example)
- note: the first line in the CSV holds the column names, not a radio station stream URL
- go to [menu File\Save as...]
- browse to and open the "/home/${USER}/Music/Playlists/" folder
- e.g. "/home/james/Music/Playlists/"
- go to the "Name:" field
- type: "{YYYY-MM-DD}-RBI-playlist-{CountryCode}-{CountryName}-{NumberOfRadioStations}.csv" (or whatever suits you)
- e.g.: "2026-01-29-RBI-playlist-NL-The-Netherlands-1094-ORIGINAL.csv"
- go to the lower bar
- check: Character encoding = Current locale (UTF-8)
- check: Line ending = Unix/Linux
- check: the far-right pull down menu shows [All Files ▼]
- click the [Save] button
- leave the [{YYYY-MM-DD}-RBI-playlist-{CountryCode}-{CountryName}-{NumberOfRadioStations}.csv] tab opened
🛈 Tips:
- use the "YYYY-MM-DD" date format, to sort your .csv files easily: the oldest file on top
- put the {NumberOfRadioStations} in the file name, to check if there are new stations available, the next time you visit radio-browser.info
- use the "ORIGINAL" designation, that implies "the uneddited, original download"
⚠ Do not put more than two dots in a file name, because then, the "cp" or "rsync" command will give a "cannot stat {pathToFile} No such file or directory" error. To always be safe: use a hyphen-minus as a separator, before the file extension (e.g. ".csv"). I replaced the dot in "browser.info" by a hyphen-minus.
🖒 Special thanks to Ane Sybesma from radioforum.nl, for providing this method!
▹ Convert the CSV playlist to antiXradio format 🔗
An antiXradio CSV (.txt) radio stations file can only contain two colums (two fields on one line): "name" (Radio station name) and "url" (Radio station stream URL), with a comma (\x2C) as a separator between the colums:
{RadioStationName},{RadioStationStreamURL}
For example:
France Bleu,http://icecast.radiofrance.fr/fb1071-midfi.mp3
We're going to strip the "ORIGINAL" CSV file from its redundant columns. There are two methods for that:
- Command sequence method: the least effort
- Geany method: a bit more effort, interactive, use it when the "Command sequence method" fails
▹ Command sequence method (automatically) 🔗
Do the following:
- go to [application menu\programming\Geany] (or another text editor)
- copy/paste the following "raw" command sequence into the blank page:
# 2602DM-01 Convert a radio-browser.info CSV playlist to an antiXradio playlist && \
OriginalPlaylistCSV="PasteTheFullPathToTheOriginalCsvFileHere" && \
antiXradioPlaylistTXT="/home/${USER}/Music/Playlists/$(date '+%Y-%m-%d')-RBI-playlist-{CountryCode}-{CountryName}-{NumberOfRadioStations}-antiXradio.txt" && \
TempFile01="/tmp/$(date '+%Y-%m-%d-%H.%M.%S')-TempFile01.txt" && \
TempFile02="/tmp/$(date '+%Y-%m-%d-%H.%M.%S')-TempFile02.txt" && \
cp "${OriginalPlaylistCSV}" "${TempFile01}" && \
# Replace "changeuuid,stationuuid,," with {nothing} && \
sed -i "s/^........\x2D....\x2D....\x2D....\x2D............\x2C........\x2D....\x2D....\x2D....\x2D............\x2C\x2C//g" ${TempFile01} && \
# Remove all DoubleQuotes && \
sed -i "s/\x22//g" ${TempFile01} && \
# Strip leading white spaces && \
sed -i "s/^[ \s]*//g" ${TempFile01} && \
# Strip leading tabs && \
sed -i "s/^[ \x09]*//g" ${TempFile01} && \
# Strip trailing white spaces && \
sed -i "s/[ \s]*$//g" ${TempFile01} && \
## Remove records that do not start with [0-9], [a-z] or [A-Z] && \
# [i] This command only works with single quotes && \
# [i] This removes names starting with "+", "@", etc., intended to move the station to the top of the list. && \
sed -i '/^[0-9A-Za-z]/!d' ${TempFile01} && \
# Remove empty lines && \
sed -i "/^$/d" ${TempFile01} && \
# Remove the first record, containing the column names && \
sed -i "1d" ${TempFile01} && \
# replace ",http" by "CommaHttp" && \
sed -i "s/\x2Chttp/CommaHttp/g" ${TempFile01} && \
# remove all {comma} chars (a radio station name cannot contain a comma) && \
sed -i "s/\x2C//g" ${TempFile01} && \
# replace "CommaHttp" by ",http" && \
sed -i "s/CommaHttp/\x2Chttp/g" ${TempFile01} && \
# Remove everything after `name,url,' (after the second comma), the second comma is removed as well && \
cut -d, -f1-2 < ${TempFile01} > ${TempFile02} && \
# Remove all lines, that do not contain the string "http" && \
sed -i '/http/!d' ${TempFile02} && \
# sort radio station names: numbers first, than alphabetically && \
sort --ignore-case < ${TempFile02} > ${antiXradioPlaylistTXT}
- leave the Geany window opened
- go to [application menu\accessories\Files] (file manager)
- go to your "/home/${USER}/Music/Playlists/" folder
- e.g.: "/home/james/Music/Playlists/"
- left-click the "{YYYY-MM-DD}-RBI-playlist-{CountryCode}-{CountryName}-{NumberOfRadioStations}.csv" file
- e.g.: "2026-01-29-RBI-playlist-NL-The-Netherlands-1094.csv"
- press and hold the [Ctrl] key
- click the [C] key
- note: the full path to "{YYYY-MM-DD}-RBI-playlist-{CountryCode}-{CountryName}-{NumberOfRadioStations}.csv" is now on your clipboard
- e.g.: "/home/james/Music/Playlists/2026-01-29-RBI-playlist-NL-The-Netherlands-1094.csv"
- go to the opened Geany window
- go to the first line, containing:
OriginalPlaylistCSV="PasteTheFullPathToTheOriginalCsvFileHere" && \
- doubleclick
PasteTheFullPathToTheOriginalCsvFileHere - remark: this is the full path to the CSV input file, that's on your clipboard
- press and hold the [Ctrl] key
- press the [V] key (paste)
- release the [Ctrl] key
- check: the first line now contains e.g.:
OriginalPlaylistCSV="/home/mint/Music/Playlists/2026-01-29-RBI-playlist-NL-The-Netherlands-1072.csv" && \
- go to the second line, containing:
antiXradioPlaylistTXT="/home/${USER}/Music/Playlists/{YYYY-MM-DD}-RBI-playlist-{CountryCode}-{CountryName}-{NumberOfRadioStations}-antiXradio.txt" && \
- change the file name of the TXT output file, after
antiXradioPlaylistTXT=, into a file name that suits you, e.g.:
antiXradioPlaylistTXT="/home/${USER}/Music/Playlists/2026-02-12-RBI-playlist-NL-The-Netherlands-1094-antiXradio.txt" && \
- note: the extension of the output file must be ".txt", but "radios-paesi-bassi.txt" also works perfectly
- remark:
${USER}is the variable containing your username, there's no need to change it - click in the page containing the command sequence
- press and hold the [Ctrl] key
- press the [A] key (select all)
- press the [C] key (copy)
- note: the customized command sequence, containing your file paths, is now on you clipboard
- go to [application menu\administration\Terminal] (or Konsole)
- right-click in the Terminal window
- click [Paste]
- check: the customized command sequence on your clipboard, is pasted in the Terminal window
- press [Enter]
- check: the customized command sequence is issued
- check: the [$] prompt is shown
- close the Terminal window
- go to [application menu\programming\Geany] (or another text editor)
- go to [menu File\Open]
- browse to the "/home/${USER}/Music/Playlists/" folder
- check: the "{YYYY-MM-DD}-RBI-playlist-{CountryCode}-{CountryName}-{NumberOfRadioStations}-antiXradio.txt" playlist is created
- click the "*antiXradio.txt" playlist
- click the [Open] button
- check: the file only contains two columns:
{RadioStationName},{RadioStationStreamURL}
for example:
JOE,https://stream.joe.nl/joe/aachigh
- proceed to the Play the TXT playlist in antiXradio section
▹ Geany method (manually) 🔗
🛈 Regular expressions, that are used in this section:
^= beginning of line$= end of line.= any single character.*= anything or nothing\x2C= comma\x2D= hyphen-minus
- go to [application menu\programmin\Geany]
- go to [menu File\Open]
- browse to [/home/${USER}/Music/Playlists/]
- e.g.: [/home/james/Music/Playlists/]
- select the [{YYYY-MM-DD}-RBI-playlist-{CountryCode}-{CountryName}-{NumberOfRadioStations}.csv] file
- e.g.: "2026-01-29-RBI-playlist-NL-The-Netherlands-1094.csv"
- click the [Open] button
- go to [menu File\Save as...]
- browse to and open the "/home/${USER}/Music/Playlists/" folder
- go to the "Name:" field
- type: "{YYYY-MM-DD}-RBI-playlist-{CountryCode}-{CountryName}-{NumberOfRadioStations}-antiXradio.txt"
- note: use a name that suits you, without the ".csv" extension, with a .txt extension
- e.g.: "2026-01-29-RBI-playlist-NL-The-Netherlands-1094-antiXradio.txt"
- click [Save]
- go to [menu view]
- click "□ Show white space"
- note: this makes the [⟶] tab characters visible
- click "□ Show line endings"
- note: this makes the [LF] line feed control characters visible
1. Replace "changeuuid,stationuuid,," with {nothing}
🛈 A record can only contain two colums (two fields on one line): "name" (Radio station name) and "url" (Radio station stream URL), with a comma (\x2C) as a separator between the colums.
A record now contains:
changeuuid,stationuuid,serveruuid,name,url,url_resolved, (etcetera)
- note: the third column, containing the
serveruuidvalue, is empty: you'll see two commas after the second value. The records with URLs actually contain:
changeuuid,stationuuid,,name,url,url_resolved, (etcetera)
e.g.:
9f79d93b-587a-4e7a-ad32-1ec7a1301661,6add27d4-5573-47b4-ae27-1d05834a9a4a,,JOE,https://stream.joe.nl/joe/aachigh,https://stream.joe.nl/joe/aachigh,https://joe.nl/,https://static.mytuner.mobi/media/tvos_radios/pkhqkus8dmde.jpg,,The Netherlands,NL,,,,,535,2026-01-14 22:54:04,2026-01-14T22:54:04Z,AAC+,95,0,1,2026-01-15 05:46:02,2026-01-15T05:46:02Z,2026-01-15 05:46:02,2026-01-15T05:46:02Z,2026-01-15 05:46:02,2026-01-15T05:46:02Z,2026-02-09 10:51:15,2026-02-09T10:51:15Z,219,219,0,,,,false
We only want to keep the 4th and 5th field:
name,url
name= {RadioStationName}url= {RadioStationStreamURL}
The values in the first two fields (changeuuid, stationuuid) are removed, including the two commas after the second field:
- go to [menu Search\Replace]
- in the "search for:" field, type:
^........\x2D....\x2D....\x2D....\x2D............\x2C........\x2D....\x2D....\x2D....\x2D............\x2C\x2C
- this means: {BeginningOfLine}{8chars}-{4chars}-{4chars}-{4chars}-{12chars}{comma}{8chars}-{4chars}-{4chars}-{4chars}-{12chars}{comma}{comma}
- leave the "replace with:" field empty (replace with nothing)
- note: this implies: replace
changeuuid,stationuuid,,with nothing
🯄 The above RegEx is rather ugly. Do you know a neater (more compact) method?
- click the □ checkbox in front of "Use regular expressions" (must be enabled)
- click the [▶ Replace all] button
- click the [In document] button
- check: all records no longer contain the
changeuuid,stationuuid,serveruuid,values, e.g.:
JOE,https://stream.joe.nl/joe/aachigh,https://stream.joe.nl/joe/aachigh,https://joe.nl/,https://static.mytuner.mobi/media/tvos_radios/pkhqkus8dmde.jpg,,The Netherlands,NL,,,,,535,2026-01-14 22:54:04,2026-01-14T22:54:04Z,AAC+,95,0,1,2026-01-15 05:46:02,2026-01-15T05:46:02Z,2026-01-15 05:46:02,2026-01-15T05:46:02Z,2026-01-15 05:46:02,2026-01-15T05:46:02Z,2026-02-09 10:51:15,2026-02-09T10:51:15Z,219,219,0,,,,false
2. Strip leading white spaces
A record in an antiXradio radio stations playlist, cannot start with one or more {space} characters. The {space} characters will be removed:
- go to [menu Search\Replace]
- in the "search for:" field, type:
^\s+ - leave the "replace with:" field empty
- note:
\s+= one or more of any type of whitespace character (this includes \n, \r, \t, and \f) - check: the ☑ checkbox in front of "Use regular expressions" carries a [✓] checkmark (must be enabled)
- click the [In document] button
- check: all spaces in front of the
namefield {RadioStationName} are removed
3. Strip leading tabs
A record in an antiXradio radio stations playlist, cannot start with one or more {tab} characters. The {tab} characters will be removed:
- go to [menu Search\Replace]
- in the "search for:" field, type:
^\x09+ - leave the "replace with:" field empty
- check: the ☑ checkbox in front of "Use regular expressions" carries a [✓] checkmark (must be enabled)
- click the [In document] button
- check: all tab characters in front of the
namefield {RadioStationName} are removed - check: every line must start with a letter (a-z, A-Z) or a digit
4. Strip trailing white spaces
A record (line) cannot have a space character at the end of a line (a "trailing space"), it must end with a "[LF]" Line Feed control code. The "trailing spaces" will be removed:
- go to menu [Document]
- click "Strip trailing spaces"
- check: all records end with "[LF]"
5. Remove the first record, containing the column names
- manually delete the first record, containing the column names (variable names):
changeuuid,stationuuid,serveruuid,name,url,url_resolved, (etcetera)
6. Remove everything after `name,url' (after the second comma)
Everything after name,url needs to be removed. In this example: everything after JOE,https://stream.joe.nl/joe/aachigh will be removed:
- go to [menu Search\Replace]
- in the "search for:" field, type:
^([^,]*,[^,]*),.*$ - in the "replace with: field type:
\1 - this means: "remove everything after the second comma, and remove the second comma as well"
- check: the ☑ checkbox in front of "Use regular expressions" carries a [✓] checkmark (must be enabled)
- click the [In document] button
Result:
JOE,https://stream.joe.nl/joe/aachigh
- note: this is the format antiXradio expects
7. Sort lines: numbers first, then alphabetically
- go to [menu Edit\Format\Send Selection to\Set Custom Commands]
- check: the "Set custom commands" panel is shown
- click the [Add] button
- check: in the "Command" column, an empty field is shown, with a green ball in front of it
- in the empty field, type:
sort - press [Enter]
- click directly beneath the "Label" column header
- check: an empty field is shown, with a green ball in front of it
- in the empty field, type:
sort(or whatever suits you) - click the [OK] button
- check: the "Set custom commands" panel is closed
- click somewhere in the document that needs to be sorted
- press and hold the [Ctrl] key
- press the [A] key (select all)
- release the [Ctrl] key
- check: all text is selected (marked grey)
- right-click the selected text
- go to [Format\Send selection to]
- click [sort]
- check: the text is sorted: numbers first, then alphabetically
8. Remove records that do not start with [0-9], [a-z] or [A-Z]
Manually remove the lines, sorted on top, that do not start with numbers (0-9), or letters ([a-z] or [A-Z])
9. Remove empty lines
Manually remove the empty lines, sorted on top, showing only a [LF] Line Feed marker:
- click the line with only a [LF] Line Feed marker
- press the [Delete] key
10. Move the playlist to the "stations" folder
- go to [application menu\accessories\Files] (file manager)
- go to [menu View]
- click "□ Show hidden files" (do show)
- go to [My Computer] in the left-side panel
- click the [Music] button
- double-click the "Playlists" folder
- move the "{YYYY-MM-DD}-RBI-playlist-{CountryCode}-{CountryName}-{NumberOfRadioStations}-antiXradio.txt" file to the "/home/${USER}/.config/antiXradio/stations/" folder
- go to [menu View]
- click "□ Show hidden files" (do not show)
🛈 antiXradio can only load radio station lists with a ".txt" file extension. When pressing the [▼ Load another list] button in antiXradio, the "/home/${USER}/.config/antiXradio/stations/" folder is opened, to select a radio stations (.txt) file. The ".config" folder is hidden by default in your file manager. A file in this folder can only be opened in text editors, by right-clicking the file in your file manager, and clicking [Open] (open in default text editor) or [Open with\Geany].
▹ Play the TXT playlist in antiXradio 🔗
- go to [application menu\Sound & Video\antiXradio]
- check: the antiXradio GUI is opened
- click the [▼ Load another list] button
- check: the "/home/${USER}/.config/antiXradio/stations/" folder is opened
- select the "{YYYY-MM-DD}-RBI-playlist-{CountryCode}-{CountryName}-{NumberOfRadioStations}-antiXradio.txt" file
- click the [OK] button
- click the [◯] radio button in front of your favorite station
- click the [▶ Play] button
- check: the radio station is audible
⬥ Play a XSPF radio station playlist from radio-browser.info in Audacious audio player 🔗
The radio-browser.info website contains a lot of radio stations. You can listen to them by clicking the [Play] button in the web interface, but it's also posible to create a playlist of the selected radio stations in several file formats: CSV, XML, JSON, M3U, PLS, XSPF and TTL.
⚠ Audacious only supports the M3U, PLS and XSPF playlist format. The other export formats (CSV, XML, JSON and TTL) won't work. An XSPF playlist, exported from radio-browser.info, works best in Audacious: it gives an excellent display. The M3U and PLS playlist export can be imported into Audacious, but those will give issues, and do not display the radio stations properly [Issue 1725] [Issue 1734].
⚠ Audacious 4.2-1 for Debian 12 Bookworm i386 (e.g. for LMDE6-32bit), requires a "libcue2_2.2.1-4_i386.deb" package, that's not in the Debian repo, but can be downloaded from Ubuntu Launchpad (look beneath "Built files").
▹ TLDR: Ready-to-use XSPF playlists in the "Playlists" folder 🔗
I created a few ready-to-use XSPF playlists for you. They are in the playlists folder.
▹ Download the XSPF playlist from radio-browser.info 🔗
- go to radio-browser.info
- go to the menu bar on top
- click the [By category ▼] button
- click [By Country]
🛈 Besides the "By Country" page, you can use any selection in the menu bar. You can also type "rock", "ambient", or "sleep" (or whatever) in the search field in the right-above corner, to create a Rock, Ambient or Sleep sounds XSPF playlist.
- scroll down, to the country of your choice
- note the value in the "Stations" column (the number of radio stations in the list) on a sticky note
- e.g.: Country=NL - Name=The Netherlands - Stations={NumberOfRadioStations}
- note: in this example, the {NumberOfRadioStations} is 1066
- click the button (line) with the country name
- go to the "Other formats" panel on top
- right-click the [XSPF] button (XSPF playlist format)
- click "Copy link"
- open a new tab in your browser
- paste the URL on your clipboard into the address bar
- note: do not press [Enter]
- change
limit=10in the URL, intolimit=9999. In this example:
original URL:
https://de1.api.radio-browser.info/xspf/stations/search?limit=10&countrycode=NL&hidebroken=true&order=clickcount&reverse=true
custom URL:
https://de1.api.radio-browser.info/xspf/stations/search?limit=9999&countrycode=NL&hidebroken=true&order=clickcount&reverse=true
🛈 The value of "limit={value}" must be higher than the {NumberOfRadioStations} value
- press [Enter]
- check: the "playlist.xspf - Completed -- #Kb" message panel is shown
- check: the "playlist.xspf" file is downloaded to your "/home/${USER}/Dowloads" folder
🖒 Special thanks to Ane Sybesma from radioforum.nl, for providing this method!
▹ Import the XSPF playlist in Audacious 🔗
- go to [application menu\accessories\Files] (file manager)
- go to [My Computer] in the left-side panel
- click the [Downloads] button
- rename the "playlist.xspf" file into "{YYYY-MM-DD}-RBI-playlist-{CountryCode}-{CountryName}-{NumberOfRadioStations}.xspf" (or whatever you like)
- e.g.: "2026-01-29-RBI-playlist-NL-The-Netherlands-1066.xspf"
- note: use the "YYYY-MM-DD" date format, to sort your .xspf files easily: the oldest file on top
- note: put the {NumberOfRadioStations} in the file name, to check if there are new stations available, the next time you visit radio-browser.info
⚠ Do not put more than two dots in a file name, because then, the "cp" or "rsync" command will give a "cannot stat {pathToFile} No such file or directory" error. To always be safe: use a hyphen-minus as a separator in the file name, before the file extension (e.g. ".csv"). I replaced the dot in "browser.info" by a hyphen-minus.
- go to [My Computer] in the left-side panel
- click the [Music] button
- right-click a free space in the right panel
- click "Create new folder"
- type "Playlists"
- press [Enter]
- move the .xspf file from the "Downloads" folder into the newly created "Playlists" folder.
⚠ You cannot store the .xspf file in the "/home/${USER}/.config/audacious/playlists" folder. The playlist cannot be imported using the [menu Playlist\Import ...] option, because the hidden ".config" folder in the "Home" folder is not shown, even if the [menu view\Show hidden files] option is enabled in your file manager.
- go to [application menu\Sound & Video\Audacious]
- go to [menu Playlist\Import...]
- browse to the [Music\Playlists] folder
- select the .xspf file containing the radio station URLs
- e.g.: "2026-01-29-RBI-playlist-NL-The-Netherlands-1094.xspf"
- click the [Import] button in the right-below corner
- check: the playlist is loaded in the Audacious GUI
🛈 You can import any .xspf, .m3u or .pls playlist file this way
- check: the "Title" colmn contains the radio statio name
- check: the "Album" field contains the hostname (server URL) part of the radio station URL
- e.g.: the radio station URL in the .xspf file = http://playerservices.streamtheworld.com/api/livestream-redirect/RADIO538.mp3, the "Album" column shows "playerservices.streamtheworld.com"
- check: the "Artist" colum is empty
- check: no radio station is selected or played
- click in the header of the "Title" column, to sort the radio stations alphabetically
- right-click the tab, containing the name of the .xspf file
- e.g.: "2026-01-29-RBI-playlist-NL-The-Netherlands-1066.xspf"
- note: this name is far too long for a tab name
- click "Rename..."
- type an appropriate short name for this list (e.g. "Radios NL")
- press [Enter]
- double-click a radio station to play (record turns blue)
- check: the radio station is played
- check: the name of the station is shown in the "Artist" column.
- check: the Artist name and Song title are shown in the "Title" column
- or: the radio station name is shown in the "Title" column
🛈 You can tidy up the .xspf file manually in a text editor like XED, Geany etc.
▹ Listening to a radio station in Audacious 🔗
- click the [Artist] button, on top of the "Artist" column
- check: the column "Artist" (with the radio station name) is now sorted alphabetically
- double-click the radio station to listen; OR:
- left-click the radio station, and click the [▶] (play) button
- check: the sound is audible
To search for a radio station name in the "Title" column, do the following:
- left-click any place in the right panel
- press and hold the [Ctrl] key
- press the [F] key
- check: a search panel is shown in the right-below corner, near the spectrum analizer
- type "rock" (or "gospel" ;-)
- press [Enter]
- check: the first radio station starting with "rock" is selected
- double-click the selected radio station
🛈 The [Ctrl]+[F] option works perfectly in a XSPF playlist with 1000 radio stations, and in a playlist with 300 FLAC/MP3 files, but not in an imported M3U or PLS playlist with 1000 radio stations [Issue 1725] [Issue 1734].
⬥ Play a JSON radio station playlist from radio-browser.info in KDE Advanced Radio Player widget 🔗
The radio-browser.info website contains a lot of radio stations. You can listen to them by clicking the [Play] button in the web interface, but it's also posible to create a playlist of the selected radio stations in several file formats: CSV, XML, JSON, M3U, PLS, XSPF and TTL. KDE Advanced Radio Player (ARP) uses the JSON format.
▹ TLDR: Ready-to-use JSON playlists in the "Playlists" folder 🔗
TODO Create a "od4knb-arp-playlists-2603en-{version}-all.deb" package
I created a few ready-to-use JSON playlists for you. They're in the "od4knb-arp-playlists-2603en-{version}-all.deb" package in the playlists folder. Do the following:
- double-click the "od4knb-json-playlists-2603en-{version}-all.deb" installer package, to install the playlists in the default "/home/${USER}/Music/Playlists" folder of all users of your computer
Instead of installing the playlist files, you can also extract ("unzip") the .deb package:
- open your File Manager
- right-click the .deb package
- click [Extract here]
- right-click "data.tar.zst"
- click [Extract here]
▹ Backup the default playlist in main.xml as a JSON playlist 🔗
When you load another playlist in Advanced Radio Player, you'll not find the default playlist afterwards. You need to backup the default playlist, and convert it to the JSON format first.
The default radio station playlist of the Advanced Radio Player widget, is not a separate .json file, but it is integrated in the "main.xml" file, located in the hidden [/home/${USER}/.local/share/plasma/plasmoids/org.kde.plasma.advancedradio/contents/config] folder. This folder cannot be found using the item selector, that's shown using [right-click-desktop\Enter edit mode\Advanced Radio Player panel\sidebar\two-sliders-button\Stations\Import-button]. You can load a playlist from a file in the hidden [/home/${USER}/.local] folder, but you have to click [two-sliders-button\show hidden files] in your item selector ("Open file").
My advice: create a "Playlists" folder in your [/home/${USER}/Music] folder, and always store your .json playlists in it ("${USER}" is your user name). Playlists in your [/home/${USER}/Music/Playlists] folder are always easily accessible. Do the following:
- go to [application launcher\system\Dolphin] (file manager)
- go to the left panel
- click the [🏠 Home] button
- double-click the [Music] folder in the right pane
- right-click the right pane
- click [+ Create new]
- click [Folder...]
- type "Playlists"
- click [OK]
- check: [> Home > Music > Playlists] folder is shown in the top bar
- note: the actual path is [/home/${USER}/Music/Playlists]
- click the [☰] (hamburger) button in the top bar
- click the □ checkbox in front of "Show hidden files"
- click the [🏠 Home] button
- browse to the [.local/share/plasma/plasmoids/org.kde.plasma.advancedradio/contents/config] folder
- right-click the "main.xml" file
- click [Copy]
- click the [🏠 Home] button
- browse to the [> Home > Music > Playlists] folder folder
- right-click the right pane
- click [Paste one file]
- check: "main.xml" is copied to your Playlists folder
- right-click the "main.xml" file
- click [Open with\Kate] (text editor)
- go to [menu File\save as...]
- in the "Name:" field, type "Default ARP radio stations playlist.json"
- click [Save]
- remove all code before the "[" sign (SquareBracketOpen), at the beginning of the file:
<?xml version="1.0" encoding="UTF-8"?>
*** Also remove all lines in beween ***
<label>Stations</label>
<default>
- remove all code after the "]" sign (SquareBracketClose), at the end of the file:
</default>
</entry>
</group>
<group name="Appearance">
*** Also remove all lines in beween ***
</group>
</kcfg>
- go to the last line
- after the "]" sign: press [Enter]
- remove all spaces before the "]" sign
Result:
[
{"active":true,"hostname":"https://mangoradio.stream.laut.fm/mangoradio?t302=2022-12-13_14-45-27&uuid=b8559986-54ba-4368-9ac0-f2f4745d4b78","name":"MANGORADIO"},
*** Lines in between are not shown ***
{"active":true,"hostname":"http://18103.live.streamtheworld.com:3690/977_COUNTRY_SC","name":".977 Country"}
]
🛈 "active":true" means "visable in widget", "active":false" means "not visible in widget"
- click the [Save] button in the top bar
- click the [X] (close) button in the right-above corner, to close the Kate text editor
- note: you can now open the "Default ARP radio stations playlist.json" file using [right-click-desktop\Enter edit mode\Advanced Radio Player panel\sidebar\two-sliders-button\Stations\Import-button]
▹ Download the JSON playlist from radio-browser.info 🔗
To download a JSON radio station list, do the following:
- go to [application menu\accessories\Files] (file manager)
- go to [My Computer] in the left-side panel
- click the [Music] button
- right-click a free space in the right panel
- click "Create new folder"
- type "Playlists"
- press [Enter]
- check: the "/home/${USER}/Music/Playlists/" folder is created
- e.g. "/home/james/Music/Playlists/"
- open your webbrowser (Firefox, Chrome etc.)
- go to radio-browser.info
- go to the menu bar on top
- click the [By category ▼] button
- click [By Country]
🛈 Besides the "By Country" page, you can use any selection in the menu bar. You can also type "rock", "ambient", or "sleep" (or whatever) in the search field in the right-above corner, to create a Rock, Ambient or Sleep sounds .csv playlist.
- scroll down, to the country of your choice
- note the value in the "Stations" column (the number of radio stations in the list) on a sticky note
- 🛈 in this example: Country=NL - Name=The Netherlands - Stations={NumberOfRadioStations}
- 🛈 in this example, the {NumberOfRadioStations} is 1149
- click the button (line) with the country name
- go to the "Other formats" panel on top
- right-click the [JSON] button
- click "Copy link"
- open a new tab in your browser
- paste the URL on your clipboard into the address bar
- note: do not press [Enter]
- change "limit=10" in the URL, into "limit=9999". In this example:
original URL:
https://de1.api.radio-browser.info/json/stations/search?limit=10&countrycode=NL&hidebroken=true&order=clickcount&reverse=true
custom URL:
https://de1.api.radio-browser.info/json/stations/search?limit=9999&countrycode=NL&hidebroken=true&order=clickcount&reverse=true
🛈 The value of "limit={value}" must be higher than {NumberOfRadioStations}
- press [Enter]
- check: the .json file is opened in a new browser tab
- go to the top bar beneath the tabs [JSON - Raw Data - Headers]
- click the [Save] button
- check: the "Save as" item selector panel is shown
- browse to the [/home/${USER}/Music/Playlists] folder
- go to the [Name:] field
- type an appropriate name for your playlist
- 🛈 for example: "{YYYY-MM-DD}-RBI-playlist-{CountryCode}-{CountryName}-{NumberOfRadioStations}.json"
- 🛈 in this example:"2026-03-21-RBI-playlist-NL-The-Netherlands-1149-ORIGINAL.json"
🛈 Tips:
- use the "YYYY-MM-DD" date format, to sort your .json files easily: the oldest file on top
- put the {NumberOfRadioStations} in the file name, to check if there are new stations available, the next time you visit radio-browser.info
- use the "ORIGINAL" designation, that implies "the uneddited, original download"
⚠ Do not put more than two dots in a file name, because then, the "cp" or "rsync" command will give a "cannot stat {pathToFile} No such file or directory" error. To always be safe: use a hyphen-minus as a separator, before the file extension (e.g. ".csv"). I replaced the dot in "browser.info" by a hyphen-minus.
🖒 Special thanks to Ane Sybesma from radioforum.nl, for providing this method!
▹ Edit the JSON playlist 🔗
The downloaded .json file has to be editted, before it can be loaded into Advanced Radio Player. Do the following:
- go to [applicaion launcher\Utilities\Kate] (text editor)
- click [menu File\New]
- check: a blank page is opened, named "Untitled"
- copy the following command sequence to the "Untitled" page:
# 2603EP-01 Convert a radio-browser.info JSON playlist to an ARP JSON playlist && \
OriginalJsonPlaylist="PasteTheFullPathToTheOriginalJsonPlaylistFileHere" # downloaded radio-browser.info JSON playlist (input) && \
ArpJsonPlaylist="/home/${USER}/Music/Playlists/$(date '+%Y-%m-%d')-TypeAnAppropriateNameHereForYourPlaylist.json" # JSON playlist for ARP that will be created (output) && \
TempFile01="/tmp/$(date '+%Y-%m-%d-%H.%M.%S')-TempFile01.txt" && \
TempFile02="/tmp/$(date '+%Y-%m-%d-%H.%M.%S')-TempFile02.txt" && \
cp "${OriginalJsonPlaylist}" "${TempFile01}" && \
# Replace "{SquareBracketOpen}" by "{nothing}" (only one occurence, at the beginning of the file) && \
# [!] {SquareBracketOpen} is buggy! \\x5B does NOT work in this command! && \
sed --in-place "s/\[//g" ${TempFile01} && \
# Replace "{SquareBracketClose}" by "{comma}" (only one occurence, at the end of the file) && \
# [!] {SquareBracketClose} is buggy! \\x5D does NOT work in this command! && \
sed --in-place "s/\]/\x2C/g" ${TempFile01} && \
# Replace all "{AccoladeClose}{comma}" with "{AccoladeClose}{comma}{LineFeed}" && \
sed --in-place "s/\\x7D\x2C/\\x7D\x2C\x0A/g" ${TempFile01} && \
# Replace all "{DoubleQuote}changeuuid{DoubleQuote}{EveryThing}{DoubleQuote}serveruuid{DoubleQuote}{colon}null{comma}" with {nothing} && \
sed --in-place "s/\x22changeuuid\x22.*\x22serveruuid\x22\x3Anull\x2C//g" ${TempFile01} && \
# Replace all "{comma}{DoubleQuote}url_resolved{DoubleQuote}{EveryThing}{AccoladeClose}" with {AccoladeClose} && \
sed --in-place "s/\x2C\x22url\x5Fresolved\x22.*\\x7D/\\x7D/g" ${TempFile01} && \
# Temporarily remove string "{BeginningOfLine}{AccoladeOpen}{DubberlQuote}name{DubberlQuote}{colon}{DubberlQuote}" from every line && \
sed --in-place "s/^\\x7B\x22name\x22\x3A\x22//g" ${TempFile01} && \
# Remove all types of white space at the beginning of a line && \
# [i] \s = any type of whitespace character (this includes \n, \r, \t, and \f) && \
sed --in-place "s/^[ \s]*//g" ${TempFile01} && \
## Remove all illegal characters at the beginning of a record: && \
# Remove one ore more characters, at the beginning of a line, that are not letters or digits, and have a HexCode [\x21 - \x2F]
sed --in-place -e "s/^[ \x21]*//g" -e "s/^[ \x22]*//g" -e "s/^[ \x23]*//g" -e "s/^[ \\x24]*//g" -e "s/^[ \x25]*//g" -e "s/^[ \x26]*//g" -e "s/^[ \x27]*//g" -e "s/^[ \\x28]*//g" -e "s/^[ \\x29]*//g" -e "s/^[ \\x2A]*//g" -e "s/^[ \\x2B]*//g" -e "s/^[ \x2C]*//g" -e "s/^[ \x2D]*//g" -e "s/^[ \\x2E]*//g" -e "s/^[ \x2F]*//g" ${TempFile01}
# Remove one ore more characters, at the beginning of a line, that are not letters or digits, and have a HexCode [\x3A - \x40] && \
sed --in-place -e "s/^[ \x3A]*//g" -e "s/^[ \x3B]*//g" -e "s/^[ \x3C]*//g" -e "s/^[ \x3D]*//g" -e "s/^[ \x3E]*//g" -e "s/^[ \\x3F]*//g" -e "s/^[ \x40]*//g" ${TempFile01} && \
# Remove one ore more characters, at the beginning of a line, that are not letters or digits, and have a HexCode [\\x5B - \x60] && \
# [!] {SquareBracketOpen} \\x5D is buggy! It must have an abnormal RegEx: "s/^[\\x5D]*//g" instead of "s/^[ \\x5D]*//g" && \
sed --in-place -e "s/^[ \\x5B]*//g" -e "s/^[ \\x5C]*//g" -e "s/^[\\x5D]*//g" -e "s/^[ \\x5E]*//g" -e "s/^[ \x5F]*//g" -e "s/^[ \x60]*//g" ${TempFile01} && \
# Remove one ore more characters, at the beginning of a line, that are not letters or digits, and have a HexCode [\\x7B - \x7E] && \
sed --in-place -e "s/^[ \\x7B]*//g" -e "s/^[ \\x7C]*//g" -e "s/^[ \\x7D]*//g" -e "s/^[ \x7E]*//g" ${TempFile01} && \
# Restore the temporarily removed string "{AccoladeOpen}{DubberlQuote}name{DubberlQuote}{colon}{DubberlQuote}" at the beginning of every line && \
sed --in-place "s/^/\\x7B\x22name\x22\x3A\x22/g" ${TempFile01} && \
# Replace "{AccoladeOpen}{DoubleQuote}name{DoubleQuote}" at the beginning of every line, with && \
# "{AccoladeOpen}{DoubleQuote}active{DoubleQuote}{DoubleDot}true{Comma}{DoubleQuote}name{DoubleQuote}" && \
sed --in-place "s/^\\x7B\x22name\x22/\\x7B\x22active\x22\x3Atrue\x2C\x22name\x22/g" ${TempFile01} && \
# Change variable name "{DoubleQuote}url{DoubleQuote}" into "{DoubleQuote}hostname{DoubleQuote}" && \
sed --in-place "s/\x22url\x22/\x22hostname\x22/g" ${TempFile01} && \
# [?] ***TODO swap the "hostname" an "name" variable:value (using cut command, perhaps not neccesary: ***TEST) && \
# Sort ${TempFile01} numbers first, then alphabetically && \
sort --ignore-case < ${TempFile01} > ${TempFile02} && \
# remove the last character of the file, a {comma} in this case && \
sed --in-place '$ s/.$//' ${TempFile02} && \
# add an empty line at the beginning of the file, and place a {SquareBracketOpen} in it && \
sed --in-place '1i \[' ${TempFile02} && \
# add an empty line at the end of the file, and place a {SquareBracketClose} in it && \
sed '$a\\]' ${TempFile02} > ${ArpJsonPlaylist}
- go to [application launcher\System\Dolphin] (file manager)
- in the left pane, click [🏠 Home]
- in the right pane, double-click the [Downloads] folder, OR:
- double-click the [Music] folder, double-click the [Playlists] folder
- check: the downloaded JSON playlist file is shown
- left-click the downloaded JSON playlist file
- press and hold the [Ctrl] key
- press the [C] key (copy)
- release the [Ctrl] key
- note: the full path to the downloaded JSON playlist file, is now on your clipboard
- go to the Kate window, with the opened "Untitled" page
- double-click "PasteTheFullPathToTheOriginalJsonPlaylistFileHere" in the following record:
OriginalJsonPlaylist="PasteTheFullPathToTheOriginalJsonPlaylistFileHere" # downloaded radio-browser.info JSON playlist (input) && \
- press and hold the [Ctrl] key
- press the [V] key (paste)
- release the [Ctrl] key
- note: the full path to the downloaded JSON playlist file, is pasted into the "OriginalJsonPlaylist" variable, e.g.:
OriginalJsonPlaylist="/home/mint/Music/Playlists/2026-03-21-15.05-RBI-playlist-NL-The-Netherlands-1149-ORIGINAL.json" # downloaded radio-browser.info JSON playlist (source) && \
- modify the following line as desired, including the full path to the JSON playlist for ARP, that will be created:
ArpJsonPlaylist="/home/${USER}/Music/Playlists/$(date '+%Y-%m-%d')-TypeAnAppropriateNameHereForYourPlaylist.json" # JSON playlist for ARP that will be created (output) && \
e.g.:
ArpJsonPlaylist="/home/${USER}/Music/Playlists/$(date '+%Y-%m-%d')-Distortion-playlist-Daniel.json" # JSON playlist for ARP that will be created (output) && \
or:
ArpJsonPlaylist="/home/${USER}/Music/Playlists/Distortion.json" # JSON playlist for ARP that will be created (output) && \
- click somewhere in the "Untitled" page, opened in Kate
- press and hold the [Ctrl] key
- press the [A] key (select all)
- check: the full text (the command sequence) is marked blue
- release the [Ctrl] key
- note: the the command sequence in the "Untitled" page, is now on your clipboard
- go to [Application Launcher\System\Konsole]
- right-click in the Konsole window
- click [Paste]
- press [Enter]
- check: the command sequence is executed
- check: the ":~$" prompt is shown again, meaning "ready"
- go to [Application Launcher\System\Dolphin] (file manager)
- in the left pane: click [🏠 Home]
- in the right pane: double-click the [Music] folder
- in the right pane: double-click the [Playlists] folder
- check: the newly created JSON playlist for Advanced Radio Player is shown
🛈 A record in the default main.xml playlist looks like this:
{"active":true,"hostname":"http://18103.live.streamtheworld.com:3690/977_COUNTRY_SC","name":"977 Country"}
A record in the newly created playlist looks like this:
{"active":true,"name":"00s Alive","hostname":"https://stream.00sa.live/00s-alive.aac"},
The "name" and "hostname" fields are swapped, but that makes no difference for the ARP widget: the station names are shown correctly, and the stations are played correctly as well.
🛈 You can hide an ugly/silent radio station from the list, bij changing "active":true into "active":false, and then load the JSON playlist again. When you use the 🗑 (trash can) button to hide a station, the loaded JSON playlist file is not altered.
🛈 There's no search option in the ARP widget panel: the [Ctrl]+[F] key sequence does not work. Just scroll down in the ARP panel, or open the the newly created JSON file in the Kate text editor, and use [Ctrl]+[F] to find your station.
▹ Load the JSON playlist in Advanced Radio Player 🔗
- right-click the desktop
- click [Enter edit mode]
- hoover over the "Advanced Radio Player" widget panel
- check: an [open hand] mouse pointer is shown
- check: the "Advanced Radio Player" widget panel, has 8 black dots at the edge of the panel, meaning "panel is movable"
- go to the verticle rectangle bar, on the right-side of the "Advanced Radio Player" widget panel, with the [🎵][🎚][a] buttons
- click the middle [🎚] (two-sliders) button (Configure)
- check: the "Advanced Radio Player Settings" panel is shown
- click the [Stations] button in the left pane
- click the [Import...] button
- check: the "Open File" item slector panel is shown
- remove the text "ARP Stations backup" from the "Filter:" field at the bottom of the panel
- browse to and select the newly created JSON playlist
- click the [Open] button
- check: the "Configuration has been loaded..." message is shown
- click the [✓ Apply] button
- check: the new radio stations list is loaded in the "Stations" pane
- click the [✓ OK] button
- check: you're no longer in the "Edit mode"
- check: the "Advanced Radio Player" widget shows the new radio stations
- click a radio station to play and enjoy!
⬥ Create a bootable USB stick with a Linux OS using Balena Etcher 🔗
This procedure describes how to flash only one .iso file, containing the Linux OS of your choice, onto an USB stick or SD card using the Balena Etcher app.
The Balena Etcher method, is the method that flashes (not copies) only one .iso file onto an USB stick or SD card. Tools like Rufus, Linux Mint USB Image Writer and Fedora Media Writer use the same ("flash") method. Balena Etcher has the most clear GUI, and is available for Linux (.deb and .rpm), Windows and macOS, on IA-32-, amd64- and arm64 CPU architectures.
⚠ When you "flash" an ISO file onto an USB stick (flash drive), all data on it is lost! Make a backup of your valuable data first!
⚠ The Balena Etcher method is only useful for a small USB stick (say 4 or 8 GB), because it allows you to put only one .ISO file on the USB stick, that covers the whole drive. It's not possible to create a data or swap partition alongside the ISO file. For USB devices with a capacity larger than 8 GB, use the Ventoy method.
- download the Live-OS .iso file of your favorite Linux OS to "flash" onto the USB stick, e.g. od4knb Linux IA-32, antiX Linux amd64/IA-32, Linux Mint Ubuntu Ed. amd64, Linux Mint Debian Ed. IA-32, Ubuntu amd64/arm64 or Debian amd64
🛈 Debian only has Live-OS (Live-CD) .iso files for amd64. For the arm64/armhf/ppc64el/riscv64/s390x CPU architectures, only Installer images (.iso) (to install Debian onto HDD/SSD) are available. Choose the .iso file in the "iso-dvd" folder, that's the most complete one.
- go to the Balena Etcher download page
- click on the "Download" link behind the operating system and CPU architecture of the PC you are currently working on
🛈 A Debian .deb or Red Hat .rpm package is preferred over the generic "Etcher for Linux x64 (64-bit) (zip)" package. Go to the Download page, click [▶ Assets], click the .deb or .rpm package.
- go to your Downloads folder: [C:\Documents and Settings\{YourUserName}\Downloads\] or [/home/{YourUserName}/Downloads/]
- Windows: double click the "balenaEtcher-{version}.Setup.exe" file, and follow the on screen instructions
- Linux: double-click the "balena-etcher_{version}_amd64.deb" or "balena-etcher-{version}.x86_64.rpm" file, click [Install Package], click [Continue], click the [X] button when finished
- take a USB stick, with a capacity larger than the size of the .iso file.
🛈 Only Ubuntu creates very large .iso files (approximately 6 GB), but most Linux ISOs will fit on a 4 GB USB stick.
- label the USB stick "{LinuxOsOfYourChoice}", e.g. "Ubuntu-24.04".
- write down the brand name and capacity of this USB stick on a memo, for example "Kingston/8GB"
- unmount and remove all removable media (USB-stick/SD card/HDD/SSD) from your computer
- insert the USB stick labeled "{LinuxOsOfYourChoice}"
- go to [start menu\accessoires\balenaEtcher]
- click the [Flash from file] button
- check: a item selector is shown
- browse to your Downloads folder
- select "{LinuxOsOfYourChoice}.iso"
- click the [Open] button
- click the [Select Target] button
- click the □ checkbox in front of the USB stick labeled "{LinuxOsOfYourChoice}"
⚠ The brand name and capacity (GB value) of the USB stick must match the brand/capacity you noted on a memo! Make sure, that you select the correct USB stick, because all data on it will be lost!
- click the [Select 1] button
- click the [Flash!] button
- check: a hourglass with "Flashing...1%" is shown
- wait until the message "Flash Completed!" is shown
- click the [X] button to close the window
- unmount (safely remove) the "{LinuxOsOfYourChoice}" USB stick
- power off the PC/laptop to boot with the "{LinuxOsOfYourChoice}" USB stick
- insert the "{LinuxOsOfYourChoice}" USB stick into the PC/laptop
- power on the PC/laptop
- repeatedly press the button to access the BIOS boot menu
- select your USB stick using the [arrow down] button
- press [enter]
- check: the welcome screen of {LinuxOsOfYourChoice} is shown
- follow the on-screen instructions
🛈 Sometimes (e.g. with Ubuntu), you're promped with an [Install] or [Try] choice. Click the [Try] button, to boot from the ISO file.
⬥ Create a bootable CD/DVD with a Linux OS using XFburn 🔗
Older computers, manufactured before say 2001, might not have an option to boot from an USB stick (flash drive), but, when an internal CD/DVD-player is available, you can boot from a CD or DVD (CD-R, DVD+/-R or DVD+/-RW).
A bootable ISO file can also be "burned" to CD/DVD, instead of beeing "flashed" to an USB stick. To do so, you need a burning app that has a "Burn ISO" or "Burn Image" option. In this manual we use the lightweight Xfburn (for Linux), but you can use any CD/DVD burning app. K3b (for Linux) is also a nice app, but pretty heavy on your resources. On Windows, you can use CDBurnerXP for example.
Do the following:
- Install xfburn using your GUI software manager, or type the appropriate installer command:
$ sudo apt-get install -y xfburn
$ sudo rpm -i xfburn
$ sudo dnf install -y xfburn
$ sudo yum install -y xfburn
$ sudo pacman -S xfburn
You can also download the xfburn package from the Ubuntu, Debian or Fedora repository.
- Download the ISO file you want to burn onto CD/DVD
- Insert a blank CD-R or DVD+/-R, or a non-blank CD-RW or DVD+/-RW, with a capacity larger than the size of the ISO file
- Go to [application menu\Accessoiries\Xfburn]
- Click the [Burn Image] button
- Behind "Image to burn": click the folder icon
- Browse to the folder containing the ISO file
- Select the ISO file, click the [Open] button
- Behind "Speed": select the lowest speed available, but not zero
- Leave all other options default
- Click the [Burn Image] button
- Wait for the message "Done"
- Click the [Close] button
- Click the [X] button to close the app
⬥ Boot several .ISO files from an USB/SD/HDD/SSD device using a Ventoy boot loader, and create a Data and Swap partition 🔗
[Warning!] When you install the Ventoy bootloader onto an USB/SD/HDD/SSD device, all data on it is lost! Make a backup of your valuable data first, with e.g. RescueZilla.
▹ TLDR 🔗
- go to the Ventoy repository
- click the folder with the highest version number (e.g. "v1.1.07")
- download "ventoy-{HighestVersion}-windows.zip"
- extract the .zip file
- double-click "Ventoy2Disk.exe"
- select the USB stick
- click [Install], [OK], [OK]
- copy the .iso files to the "Ventoy" partition
- reboot your PC
- select the USB stick in the BIOS boot menu
🛈 When you only use this TLDR, there's no data or swap partition available. When you're OK with that, you're all set. If not, proceed to the section Change the partition schema using Gparted.
▹ This HowTo in PDF format 🔗
This HowTo is also available in .PDF file format, with the referenced images 📷. Go to the howtos folder and click on the [2505MG-{version}-HowTo-Ventoy-on-USB-SD-HDD-SSD-with-data-and-swap-partition.pdf] file.
▹ Goal 🔗
This procedure describes how to copy (not flash) several .ISO files with Linux OS-es (or other bootable .ISO files from BSD, Kolibri, Microsoft etc.), to a USB/SD/HDD/SSD device, and boot them using a Ventoy bootloader. A data partition to store personal files, and a swap partition to prevent performance issues or a system crash, are created on the USB/SD/HDD/SSD device as well.
This method is especially useful for USB sticks (flash drives) and SD cards with a capacity larger than 8 GB, Hard Disk Drives (HDD) and Solid State Drives (SSD), as it allows you to copy multiple .ISO files to the USB/SD/HDD/SSD device. For an USB stick with a high capacity (say 256 GB), it's a serious waste of space to flash only one .ISO file of say 3 GB onto a 256 GB device using the Balena Etcher method, as the ISO9660 file system in the .ISO file covers the entire USB stick (one read-only ISO9660 partition), with no possibility to resize the ISO9660 partition, or to create a Data- or Swap partition alongside it.
🛈 Almost all Linux ISOs can be booted using a Ventoy bootloader. You can check the list of tested ISOs on the Ventoy site. Not only ISO files, but also WIM-, VHD(x)-, IMG- and EFI files can be booted using a Ventoy bootloader.
▹ Helpful websites 🔗
▹ Points of attention 🔗
🛈 The Ventoy Boot Loader, that's installed using the Ventoy2Disk app, is created and maintained by @longpanda, who resides in the People's Republic of China. If you have any doubts about Ventoy's security, please read this conversation, which explains that @longpanda has only good intentions (BLOB in this case means "binary file from another source"). Ventoy is licensed under the GPLv3, which stands for "Open Source", which is a pretty good guarantee for safety. Ventoy is great software and GPLv3 compliant, so od4knb Linux does recommend it.
⚠ The iVentoy Server software (the PXE server) on the other hand, is closed source [reference]. The iVentoy Client software (the PXE client) is only partly open source: the incorporated iPXE binaries in the client software (the PXE client) are open source, but the other binaries are closed source, so it's safety is not guaranteed. Please read the software license information of iVentoy before using it: go to the iVentoy download page, click [▶ Assets], click [iventoy-{version}-linux-free.tar.gz], and read the information in the [/Downloads/iventoy-{version}/doc/LICENSE_EN.txt] file. Because the iVentoy software is not GPLv3 compliant, od4knb Linux does not recommend it.
🛈 To create a GPLv3 compliant PXE client/server setup, use a dnsmasq DHCP/DNS/TFTP/PXE Server in conjunction with an iPXE client. Do not use the ISC DHCP server, as it is no longer being maintained.
▹ Procedure 🔗
In this procedure (step-by-step HowTo) we'll do the following:
- install a Ventoy bootloader onto an USB stick (flash drive), SD card, internal (in your PC/laptop) or external (in an USB casing) hard disk drive (HDD), or solid state drive (SSD)
- create a Ventoy boot partition (to store several .iso files)
- create a data partition (to store your personal documents)
- create a swap partition (to store the Linux swap/page file), to prevent system slowdown or a system crash
- copy (not flash) serveral .iso files, containing Linux OS-es (or Microsoft/BSD/Kolibri .iso files etc.), to the Ventoy boot partition, using your file manager
- boot a Linux OS from an .iso file from the Ventoy boot partition
[tip] You can attach an USB stick (or a HDD/SSD in a casing with an USB bridge controller) onto your motherboard (internally) using an USB 2.0 pin header 9 pin to USB-A adapter, or USB 3.0 pin header 19 pin to USB-A adapter. Buy a fast USB stick, and check the manual of your motherboard, to see which pin header is available. An USB stick is much cheaper than an SSD. USB 3.0 is much faster than USB 2.0. An SSD on a SATA or PCIe controller, is usually faster than a device on a USB 3.0 controller.
▹ Comparison Balena Etcher method and Ventoy method 🔗
These are the differences between the two methods:
▹ Balena Etcher method 🔗
🛈 The Balena Etcher method is the method that flashes (not copies) only one .iso file onto an USB stick or SD card. Tools like Rufus and Linux Mint USB Image Writer use the same method. Balena Etcher has the most clear GUI, and is available for Linux, Windows and macOS, on IA-32-, amd64- and arm64 CPU architectures.
- only one .iso file can be flashed onto an USB stick or SD card, this means:
- only one bootable Linux OS (or a Windows install DVD .iso file etc.) can be put on an USB stick or SD card
- the .iso file cannot be flashed onto an internal or external HDD/SSD
- the .iso file covers the whole USB stick
- no data partition, alongside the partition with the .iso file, to store your documents
- no swap partition, alongside the partition with the .iso file, to prevent system freeze or crash
- on a 256 GB USB stick (about 232 GB free for files), you can put only one Linux Mint Ubuntu Ed. ISO file of say 3 GB, wasting about 229 GB.
🛈 When you're OK with this, e.g. for a 4 GB USB stick, please use the Balena Etcher method.
▹ Ventoy method 🔗
- several .iso files can be copied to an USB stick, SD card, or internal/external HDD/SSD, this means:
- several Linux OS-es (or Microsoft/BSD/Kolibri .iso files etc.) can be put on an USB stick/SD card/HDD/SSD
- the .iso files can also be copied to an internal or external HDD/SSD
- the partition with the .iso files, does not cover the whole USB stick/SD card/HDD/SSD
- a data partition, to store your documents alongside the partition with the .iso files, is possible
- a swap partition, to prevent system freeze or crash, alongside the the partition with the .iso files, is possible
- on a 256 GB USB stick, you can put about 100 .iso files, wasting about 0 GB.
⚠ It's actually better to leave 10-20% of an exFAT partition unused, otherwise the drive's performance will suffer.
▹ Install the Ventoy2Disk installer GUI 🔗
To install the Ventoy bootloader onto an USB/SD/HDD/SSD, we first need to get the Ventoy2Disk Installer GUI app on our screen.
There are four different situations, choose the one that suits you:
▹ 1. On a PC/laptop with Linux installed 🔗
- insert the USB stick/SD-card or attach the external HDD/SSD, on which you want to install the Ventoy bootloader; OR:
- if you want to install the Ventoy bootloader onto the internal HDD/SSD, do not insert anything ;-)
- on a Cinnamon desktop: go to [Application menu\Accessoiries\Disks], OR:
- on a GNOME desktop: click the [3 ball ring] or [⋮⋮⋮] button, [System Utilities], [Disks]
- in the left panel: click on the USB/SD/HDD/SSD on which you want to install the Ventoy bootloader
⚠ Make sure that you click the right device, and write down the correct device mount point on a Post-it memo. Look at the size in GB/TB! Ignore the "Block Device" and "Loop Device" entries. A "Thumb Drive" is an USB stick (flash drive).
- under "Volumes", go to the "Device" variable
- check: you'll see a value like "/dev/sda1", "/dev/sdb1" or "/dev/sdc1"
🛈 "/dev/sda1", "/dev/sdb1" and "/dev/sdc1" (e.g) are the mount points of the first partition on the selected USB/SD/HDD/SSD 📷.
🛈 To get the device mount point (the mount point of the whole USB stick/SD card/HDD/SSD), you have to remove the digit from the partition mount point. E.g.: partition mount point is "/dev/sda1", than the device mount point is "/dev/sda". When the USB/SD/HDD/SSD is empty, you'll see the device mount point behind "Device" , e.g. "/dev/sdc" 📷
- write down the device mount point on a Post-it memo ("/dev/sda" or "/dev/sdb" or "/dev/sdc", etc.)
- go to the Ventoy repository on Sourceforge
- click the folder with the highest version number (e.g. "v1.1.07")
- click the "ventoy-{HighestVersion}-linux.tar.gz" link (e.g. "ventoy-1.1.07-linux.tar.gz")
- check: the file is downloaded to your [/home/${USER}/Downloads] folder
🛈 "${USER}" is your user name. It's shown before the "@" sign in the [Application menu\Terminal] app (or "Konsole").
- click the [Files] icon in the task bar (file manager)
- go to [/home/${USER}/Downloads/]
- right-click the "ventoy-{HighestVersion}-linux.tar.gz" file
- click [Extract here]
- check: the contents of the tar.gz container are extracted to the [/home/${USER}/Downloads/ventoy-{HighestVersion}/] folder
- delete the "ventoy-{HighestVersion}-linux.tar.gz" file
- create a folder [/home/${USER}/Apps/]
- move the [/home/${USER}/Downloads/ventoy-{HighestVersion}/] folder to the [/home/${USER}/Apps/] folder
- open the [/home/${USER}/Apps/ventoy-{HighestVersion}/] folder
- on an x86-64/amd64 PC/laptop: right-click "VentoyGUI.x86_64", OR:
- on an aarch64/arm64 PC/laptop: right-click "VentoyGUI.aarch64", OR:
- on an IA-32/i386 PC/laptop: right-click "VentoyGUI.i386", OR:
- on a device with a MIPS64EL CPU: right-click "VentoyGUI.mips64el"
🛈 If you are unsure what your CPU architecture is: enable "Allow executing file as a program" on all four executables above.
- click [Properties]
- click tab [Permissions]
- click the □ checkbox in front of Allow executing file as a program
- click the [Close] button
- on an x86-64/amd64 PC/laptop: left-click "VentoyGUI.x86_64", OR:
- on an aarch64/arm64 PC/laptop: left-click "VentoyGUI.aarch64", OR:
- on an IA-32/i386 PC/laptop: left-click "VentoyGUI.i386", OR:
- on a device with a MIPS64EL CPU: left-click "VentoyGUI.mips64el"
🛈 If you're not sure what your CPU architecture is: try all four of the above executables, until you find the one that doesn't present an error message (boom means halt ;-).
- press the [Ctrl]+[c] keys on your keyboard simultaneously, to copy the path to this executable to your clipboard
- go to [Application menu\Terminal] (or "Konsole")
- type "sudo" and press the [Space] key (the cursor blinks after "sudo{space}")
- right-click in the Terminal window
- click [Paste]
- check: the path to the executable "VentoyGUI.{CpuArchitecture}" is pasted:
- check: you'll see something like this:
$ sudo /home/${USER}/Apps/ventoy-{HighestVersion}/VentoyGUI.{CpuArchitecture}
for example on Linux Mint, on an x86-64/amd64 CPU:
$ sudo /home/mint/Apps/ventoy-1.1.07/VentoyGUI.x86_64
🛈 This command only works, when there are no spaces in the file path. When you do not use the folder name "Apps", but another one with spaces in it, use dubbelquotes around the file path, e.g.:
$ sudo "/home/mint/Folder Name With Spaces/ventoy-1.1.07/VentoyGUI.x86_64"
- press [Enter]
- the Ventoy2Disk GUI is presented 📷
- leave the Ventoy2Disk GUI (window) opened
- proceed to the Configure the Ventoy2Disk app section below
▹ 2. On a PC/laptop with Windows installed 🔗
- start your Internet browser (e.g. Chrome or Edge)
- go to the Ventoy repository on Sourceforge
- click the folder with the highest version number (e.g. "v1.1.07")
- click the "ventoy-{HighestVersion}-windows.zip" link
- check: the file is downloaded to your [Downloads] folder
- go to [Start button\All programs\Accessoiries\Windows Explorer]
- click on the [Organize ▼] button 📷
- click [Folder and search options]
- click on the [View] tab
- remove the check mark in front of "Hide extensions for known file types" 📷
- click [OK]
- go to your [Downloads] folder (C:\Users\YourUserName\Downloads) 📷
- right-click the "ventoy-{HighestVersion}-windows.zip" file
- click [Extract All...]
- check: the "Extract Compressed (Zipped) Folders" panel is shown 📷
- check: behind "Files will be extracted to this folder:", the path "C:\Users\YourUserName\Downloads\ventoy-{HighestVersion}-windows.zip" is shown
- remove ".zip" from the path
- remove the marker in front of "Show extracted files when complete"
- click the [Extract] button
- check: the folder [ventoy-{HighestVersion}] is created in your [Downloads] folder
- delete the "ventoy-{HighestVersion}-windows.zip" file
- open the [ventoy-{HighestVersion}] folder (e.g. "\Downloads\ventoy-1.1.07")
- open the [altexe] folder (e.g. "\Downloads\ventoy-1.1.07\altexe")
- move all .exe files in the [altexe] folder to the [\Downloads\ventoy-{HighestVersion}] folder (one level up) 📷
- delete the empty [altexe] folder
- leave the Windows Explorer window opened
We're now going to determine the mount point (C:, D:, E: etc.) of the device that you want to put the Ventoy boot loader on.
- press the [Windows] key and the [r] key simultaneously
- check: the "Run" panel is opened
- type: "diskmgmt.msc"
- press [Enter]
- check: the Disk Management app is opened
- find the USB stick/SD card/HDD/SSD that you want to put the Ventoy boot loader on (check its "capacity" in GB)
- write down its device mount point in the "Volume" column on a memo ("J:" in this example)
- right-click on the "Disk #" square (e.g. "Disk 0", "Disk 1" etc.) in the panel below ("Disk 6" in this example) 📷
- click [Properties]
- check: the "Device properties" panel is shown
- write down the brand name and model of the device on a memo ("Corsair UFD" in this example) 📷
- click [Cancel]
- click the [X] button in the right above corner
Double-click the "Ventoy2Disk" .exe file, that matches your CPU architecture:
- [Ventoy2Disk.exe]: for Intel 32 bit, old computers with an IA-32/i386 CPU
- [Ventoy2Disk_X64.exe]: for Intel/AMD 64 bit, most common, an x86-64/AMD64 CPU
- [Ventoy2Disk_ARM.exe]: for ARM 32 bit, not common, an AArch32/ARM32 CPU
- [Ventoy2Disk_ARM64.exe]: for ARM 64 bit, laptops and SBCs with an AArch64/ARM64 CPU 📷
🛈 If you're not sure what your CPU architecture is: try all four of them, until you find the one that doesn't give an error message (boom means halt ;-).
🛈 The VentoyPlugson_X64.exe (Plugin Configurator), and VentoyVlnk.exe (Create a VLNK link to a non-Ventoy partition) apps are for system admins only.
- the Ventoy2Disk GUI is presented 📷
- leave the Ventoy2Disk GUI (window) opened
- proceed to the Configure the Ventoy2Disk app section below
🛈 Windows mount points like "C:" or "E:", can be a device or a partition mount point. Use Disk Management ([Windows key]+[r], diskmgmt.msc, the equivalent of gnome-disk-utility) to find out where the mount point refers to.
▹ 3. On a 32 bit PC/laptop without an OS installed (IA-32/i386 bare-metal) 🔗
- start your Internet browser (e.g. Chrome, Edge or Firefox) on a PC/laptop with Linux, macOS or Windows installed
- go to the antiX Linux repository on SourceForge
- click the Final folder
- click the [antiX-{HighestVersion}] folder (e.g. "antiX-23.2")
- click the [antiX-{HighestVersion}_386-full.iso] (e.g. "antiX-23.2_386-full.iso", "386" = IA-32/i386)
- flash (not copy) the [antiX-{HighestVersion}_386-full.iso] onto a small USB stick (#1) using the Balena Etcher method. The .iso file is about 1.8 GB in size.
- label USB stick #1 "antiX 23.2 i386"
- grab another USB stick (#2), that's already formatted with FAT32 or exFAT (a file system without permissions)
🛈 When you do not have a FAT32/exFAT USB stick laying around, use a Partition Manager app to format the USB stick to FAT32 or exFAT. Be aware that all data on it will be lost!. Make a backup of your valuable data first!
- go to the Ventoy repository on Sourceforge
- click the folder with the highest version number (e.g. "v1.1.07")
- click the "ventoy-{HighestVersion}-linux.tar.gz" link (e.g. "ventoy-1.1.07-linux.tar.gz")
- check: the file is downloaded to your [Downloads] folder
- click the [Files] icon in the task bar, or open another file manager (Windows Explorer etc.)
- go to your [Downloads] folder
- move the "ventoy-{HighestVersion}-linux.tar.gz" file to USB stick #2
- right-click the "ventoy-{HighestVersion}-linux.tar.gz" file on USB stick #2
- click [Extract here]
- check: the contents of the tar.gz container are extracted to USB stick #2
- check: the folder [ventoy-{HighestVersion}] is created on USB stick #2 (e.g. "ventoy-1.1.07")
- delete the "ventoy-{HighestVersion}-linux.tar.gz" file
- safely remove USB stick #1 and #2 from the PC/laptop
- insert USB stick #1 in the 32 bit PC/laptop, on which you want the Ventoy bootloader installed
- power on the PC/laptop
- Repeatedly press the appropriate key to enter the BIOS boot menu
- Select the USB stick, by pressing the [arrow-down] key
- press [Enter]
- check: the antiX Linux boot menu is presented
- press [Enter] (the default option is OK)
- check: the antiX desktop is shown
- insert USB stick #2
- go to [4-leave-clover button\File Manager]
- click on the name of USB stick #2 in the left above corner
- copy the folder [ventoy-{HighestVersion}] (e.g. "ventoy-1.1.07") on USB stick #2 to [/home/${USER}/]
- open the folder [/home/${USER}/ventoy-{HighestVersion}] (e.g. "/home/${USER}/ventoy-1.1.07")
- right-click the "VentoyGUI.i386" file
- go to [Properties\Permissions]
- put a check marker in all "Execute" boxes
- click [OK]
- left-click the "VentoyGUI.i386" file
- press the [Ctrl]+[c] keys on your keyboard simultaneously, to copy the path to this executable to your clipboard
- go to [Application menu\Terminal] (or "Konsole")
- type "sudo" and press the [Space] key (the cursor blinks after "sudo {space sign})
- right-click in the Terminal window
- click [Paste]
- check: the path to the executable "VentoyGUI.*" is pasted
- check: you'll see something like this:
$ sudo /home/demo/ventoy-1.1.07/VentoyGUI.386
- press [Enter]
- the Ventoy2Disk GUI is presented 📷
- go to the opened File Manager
- right-click on USB-stick #2 in the left above corner
- click [- Unmount]
- remove USB stick #2
- leave USB stick #1 in the PC/laptop
- leave the Ventoy2Disk GUI (window) opened
- proceed to the Configure the Ventoy2Disk app section below
▹ 4. On a 64 bit PC/laptop without an OS installed (x86-64/amd64 bare-metal) 🔗
- go to the Ventoy repository on Sourceforge on a PC/laptop with Linux, macOS or Windows installed
- click the folder with the highest version number (e.g. "v1.1.07")
- click the "ventoy-{HighestVersion}-livecd.iso" link (e.g. "ventoy-1.1.07-livecd.iso", this .iso is only for amd64)
- check: the file is downloaded to your [/home/${USER}/Downloads] or [Downloads] folder
- flash (not copy) the .iso file onto a small USB stick using the Balena Etcher method
- insert the USB stick, on which you flashed "ventoy-1.1.07-livecd.iso", into the 64 bit PC/laptop on which you want the Ventoy bootloader installed
- power on the 64 bit PC/laptop
- Repeatedly press the appropriate key to enter the BIOS boot menu
- Select the USB stick, by pressing the [arrow-down] key
- press [Enter]
- the Ventoy2Disk GUI is presented 📷
- leave the Ventoy2Disk GUI (window) opened
- proceed to the Configure the Ventoy2Disk app section below
▹ Configure the Ventoy2Disk app 🔗
- check: the Ventoy2Disk GUI app (window) is shown on your screen. If not: check the appropriate procedure above to open the Ventoy2Disk GUI app.
▹ 1. When you want to put the Ventoy bootloader on an USB stick (flash drive) or SD card: 🔗
- go to the "device" section
- click the [▼] button to open the pull down menu
- select the device mount point that you wrote on a Post-it memo (in this example it is "/dev/sdc", "sdc" for short, or "J:") 📷 📷
⚠ Your device mount point can be different!
- check the brand, model name and size of the device, to be absolutely sure this is the right device!
- leave the Ventoy2Disk GUI (window) opened
- proceed to the Using the "Preserve some space" option section below
▹ 2. When you want to put the Ventoy bootloader on an internal HDD/SSD: 🔗
🛈 "Internal HDD/SSD" means "a HDD/SSD inside the PC/laptop casing, attached to an internal SATA connector or inserted into a PCIe slot"
- go to menu [Option]
- click "Show all devices" 📷
- go to the "device" section
- click the [▼] button to open the pull down menu
- select "/dev/sda", "sda" for short 📷
⚠ When you have two or more internal HDD/SSD devices (IT nerds only ;-), it is possible, that you want the Ventoy bootloader installed on another HDD/SSD than "/dev/sda". Please consult [Application menu\accessoiries\Disks] or [3 ball ring] or [⋮⋮⋮] button, [System Utilities], [Disks], to find the device mount point of this HDD/SSD.
🛈 When the HDD/SSD is larger than 2 TB, or when you want to create more than four partitions on the disk: go to menu [Option], click [Partition style], click [GPT], otherwise leave the "Partition style" default (Master Boot Record). 📷
- leave the Ventoy2Disk GUI (window) opened
- proceed to the Using the "Preserve some space" option section below
▹ 3. When you want to put the Ventoy bootloader on an external HDD/SSD: 🔗
🛈 "External HDD/SSD" means "a HDD/SSD in an external casing, attached to the USB port of your PC/laptop"
- go to menu [Option]
- click "Show all devices" 📷
- go to the "device" section
- click the [▼] button to open the pull down menu
- select the device mount point of the external HDD/SSD, that you wrote on a Post-it memo (e.g. in this example it is "/dev/sdc", "sdc" for short) 📷
🛈 When the HDD/SSD is larger than 2 TB, or when you want to create more than four partitions on the disk: go to menu [Option], click [Partition style], click [GPT], otherwise leave the "Partition style" default (Master Boot Record). 📷
- leave the Ventoy2Disk GUI (window) opened
- proceed to the Using the "Preserve some space" option section below
▹ Using the "Preserve some space" option 🔗
This option can be used to create a free space area, to create the data and swap partition in it. Using this option will save you some steps in the Creating the partitions section.
⚠ The "Preserve some space at the end of the disk", doesn't always work as expected. Sometimes you'll end up with a broken boot partition with a file system of type "Unknown" and/or an error message "Unable to detect filesystem". In that case, you need to remove the partition in gParted, and create a new partition, according to the howto in the Delete the default "Ventoy" exFAT partition section.
If you do not want to use the "Preserve some space" option, go to the Install the Ventoy bootloader section below.
If you do want to use the "Preserve some space" option, do the following:
- check: the Ventoy2Disk GUI app (window) is shown on your screen
- if not: check the appropriate procedure above to install and open the Ventoy2Disk GUI app
- read the information in the Create a partition schema section
- go to [menu Option\Partition Configuration]
- click the □ check box in front of "Preserve some space at the end of the disk" (enable)
- go to the field in front of [GB ▼] pull down menu
- type the total amount of GBs you want to use for the data + swap partition
- click the [OK] button
- follow the instructions in the Install the Ventoy bootloader section
- go to the 2. Create the new partitions section
- go to the step [* right-click the third line marked "unallocated"]
▹ Install the Ventoy bootloader 🔗
[Warning!] When you install the Ventoy bootloader onto an USB/SD/HDD/SSD device, all data on it is lost! Make a backup of your valuable data first, e.g. with RescueZilla.
- click the [Install] button
- check: the message "The device will be formatted and all data will be lost. Continue?" is shown
- click [OK]
- check: the message "The device will be formatted and all data will be lost. Continue? (Double Check)" is shown
- click [OK]
- check: the message "Congratulations! Ventoy has been succesfully installed to the device" is shown 📷
- click [OK]
- check: in the right panel "Ventoy in Device", the version number of the Ventoy bootloader is shown 📷 📷
- click the [X] button in the right above corner to close the Ventoy2Disk app
- check: in the [Application menu\accessories\Disks] app, the USB stick looks like this 📷
- check: in the [Windows]+[r], "diskmgmt.msc" app, the USB stick looks like this 📷
If you do not want a a data partition (to store your personal documents) and/or swap partition (to prevent a system crash), and you are satisfied with only the "Ventoy" exFat boot partition to store the .iso files, proceed to the Download several .iso files to the boot partition section.
If you do want a a data partition (to store your personal documents) and/or swap partition (to prevent a system crash), proceed to the Change the partition schema using Gparted section below.
▹ Change the partition schema using Gparted 🔗
[Warning!] Be very careful using a partition manager like GParted, as you can wipe a complete USB/SD/HDD/SSD with it! Make a backup of your valuable data first.
On a Linux system, GParted is the default partition manager. On Windows it's Disk Management ([Windows key]+[r], diskmgmt.msc) and on macOS "Disk Utility". There are also several freeware partition managers for Windows on CNET.com (scroll down to the panels with '★★★').
Windows Disk Management cannot move the "VTOYEFI" ESP partition, nor can it delete the "Ventoy" exFAT partition. Other apps for Windows like Active@ Partition Manager Free, Paragon Partition Manager Free and NIUBI Partition Editor Free can't perform the required tasks either.
My advice: boot Linux Mint Ubuntu Ed. amd64 or Linux Mint Debian Ed. IA-32 from an USB stick, and use the Gparted app. Gparted also has a gparted-live-{version}-amd64.iso file available, but that's not mend for normal users. The Debian amd64 and Ubuntu amd64/arm64 Live-OS (Live-CD) .iso files also contain the Gparted app.
▹ Create a partition schema 🔗
First plan your partition schema. This is my partition schema for a 256 GB (238 GiB) USB stick, that has 236,447 MiB (231 GiB) free space:
| Partition no. | Partition mount point | Size MiB | Size GiB | Label | File system | Flag |
|---|---|---|---|---|---|---|
| #1 | /dev/sd*1 | 222208 | 217 | 2509PF_Boot | exFAT | boot |
| #2 | /dev/sd*2 | 32 | - | VTOYEFI | FAT16 | esp |
| #3 | /dev/sd*3 | 10240 | 10 | 2509PF_Data | exFAT | none |
| #4 | /dev/sd*4 | 4096 | 4 | 2509PF_Swap | linux-swap | swap |
| Partition no. | Comment |
|---|---|
| #1 | Boot partition, to store the .iso files |
| #2 | EFI System Partition, with the Ventoy bootloader |
| #3 | For storing personal documents or transport files |
| #4 | Temporary space for the Linux swap file ("page file") |
🛈 "size=217 GiB" (for partition #1) is calculated as follows: 231 GiB (the available free space) minus 10 GiB for the Data partition, minus 4 GiB for the Swap partition (approx. RAM size). A Linux "swap file" is the equivalent of a Windows "page file", intended to prevent a system freeze or crash.
🛈 MiBs and GiBs are a factor of 1024 KiB: 1 MiB = 1024 KiB, 1 GiB = 1024 MiB. MBs and GBs are a factor of 1000 KB: 1 MB = 1000 KB, 1 GB = 1000 MB. The size of your RAM (the memory modules in the slots of your motherboard) is always specified in GB. To keep it simple: with 8 GB RAM (8000 MB) on your motherboard, type "8000 MiB" in the "New size (MiB)" field, when creating a swap partition.
▹ Size Unit Conversion calculators 🔗
- GiB to MiB
- MiB to GiB
- GB to GiB
- MB to MiB
- MB to KB
- Bytes to KB
- Anyting to AnyThing (type e.g.: from=TB, to=GB)
▹ Creating the partitions 🔗
We're going to create the new partitions, according to the partition schema plan above.
▹ 1. Delete the default "Ventoy" exFAT partition 🔗
The "Ventoy" exFAT partition, intended to store your .iso files, now covers the entire USB/SD/HDD/SSD. Well, except for the 32 MiB "VTOYEFI" EFI system partition (ESP). To create the above partition schema, we first have to delete the "Ventoy" exFAT partition.
- go to [Application menu\Administration\Gparted] (or start your favorite Windows/macOS partition manager)
- wait until the message "Searching /dev/*** partitions ..." has disappeared
- click the [▼] button in the right above corner 📷
- select the device mount point that you wrote on a Post-it memo (in this example it is "/dev/sdc") 📷
- check: the first partition named "Ventoy" is mounted (key symbol) by the file manager, it must be unmounted first
- right-click the first partition named "Ventoy"
- click [Unmount] 📷
- right-click the first partition named "Ventoy"
- click [Delete] 📷
- go to [menu Edit]
- click [Apply all operations] 📷
- check: the message "Are you sure you want to apply the pending operations?" is shown
- click [Apply]
- check: the message "All operations successfully completed" is shown
- click [Close]
🛈 You cannot resize an exFAT partition. You have to delete it, and create a new exFAT partition with the desired size. exFAT is preferred over FAT32 because it can host files that are larger that 4 GB. exFAT is preferred over EXT4 or NTFS because it doesn't carry file permissions, which is desired for transport media like USB flash drives and SD cards, but also for a partition on a internal HDD/SSD that holds the .iso files, and needs to be accessed by the Ventoy bootloader. You must also be able to access it, booted from any Linux OS on an USB stick, to copy .iso files onto it, and this can only be achieved, when the partition holds no file permissions.
▹ 2. Create the new partitions 🔗
We're going to build the partition schema, I planned in the Create a partition schema section above.
- go to [Application menu\Administration\Gparted]
- click the [▼] button in the right above corner 📷
- select the device mount point that you wrote on a Post-it memo (in this example it is "/dev/sdc") 📷
- right-click the first line marked "Unallocated"
- click [New] 📷
- check: the "Create a new partition" panel is opened
- add the following values:
- Free space preceding (MiB): 1
- New size (MiB): 222208 (217 GiB)
- File system: exfat
- Label: 2509PF_Boot
- leave every other value unchanged
- click [Add] 📷
🛈 Of course, instead of label "2509PF_Boot", you can choose your own label, e.g. "AMD64_ISOs". Ik like the "YYMM##" codes, because you can always refer to it, without any ambiguity. "##" is A1, A2, A3 enz.; AA, AB, AC enz. "Boot" in the Label, refers to the "boot" flag (boot partition), that we put on it later on. When using a "YYMM##" code in a partition label, you'll never unmount the wrong USB stick again (I hope).
- right-click the third partition marked "VTOYEFI"
- click [Resize/Move] 📷
- check: the "Resize/Move /dev/sd*2" panel is opened (in this example: /dev/sdc2)
- point the cursor to the green rectangle in the right above corner
- check: a [cross anchor] cursur is shown
- click and hold your left mouse button
- slide the green rectangle to the far left 📷
- release your left mouse button
- click the [Resize/Move] button 📷
- check: a panel is shown with the message "Moving a partition might cause your operating system to fail to boot"
- click [OK]
⚠ Moving the "VTOYEFI" ESP partition is required: it must be the second partition (/dev/sd*2). The boot partition, in this example "2509PF_Boot", must be the first partition (/dev/sd*1). You cannot leave the "VTOYEFI" partition at the end of the disk, and create the data and swap partition in front of it, because then the disk will not be bootable.
- right-click the third line marked "unallocated"
- click [New] 📷
- check: the "Create a new partition" panel is opened 📷
- add the following values:
- Free space preceding (MiB): 0 (default)
- New size (MiB): 10240 (10 GiB)
- File system: exfat
- Label: 2509PF_Data
- leave every other value unchanged
- click [Add]
- right-click the fourth line marked "unallocated"
- click [New] 📷
- Free space preceding (MiB): 0 (default) 📷
- New size (MiB): 3999 (about 4 GiB, the rest)
- File system: linux-swap
- Label: 2509PF_Swap
- leave every other value unchanged
- click [Add]
- go to [menu Edit\Apply all operations] 📷
- check: the panel "Are you sure you want to apply the pending operations?"
- click [Apply]
- check: the panel "Applying pending operations" is shown
- check: the message "All operations successfully completed" is shown
- click the [Close] button
- check: the "esp" and "swap" flags are set correctly, but the "boot" flag on the first partition "2509PF_Boot" is missing
- right-click the first partition "2509PF_Boot"
- click [Manage Flags] 📷
- click the □ checkbox in front of "boot" 📷
- click the [Close] button
- check: the "boot" flag is set, the partition schema is complete 📷
- click the [X] button to close Gparted
🛈 What GParted calls the "boot flag", is also named the active or bootable bit/label/flag. When you type sudo fdisk -l /dev/sdc, it's the asterisk sign (*) in the "boot" column.
▹ Checking your CPU%, RAM% and Swap 🔗
🛈 A mounted swap partition prevents RAM overflow. Most Linux Live-OS (Live-CD) .iso files automatically mount the swap partition by default, but not all of them do. Linux Mint Ubuntu Ed. amd64 does, but Linux Mint Debian Ed. (LMDE) amd64 and Debian amd64 doesn't. This means that Linux Mint Ubuntu Ed. will not freeze when RAM is almost full, but LMDE and Debian will. Booting from "debian-live-13.1.0-amd64-cinnamon.iso", the swap partition was not mounted automatically. My strong advice:
⚠ When you boot from a new Linux Live-OS (Live-CD) .iso file: allways check if the swap partition is mounted
There are four different methods to check the swap partition (and also check the CPU% and RAM%):
▹ Command method 🔗
To check and mount the swap partition:
- go to [application menu\Terminal] (or "Konsole")
- type the following command:
swapon
The output shoud read something like this:
mint@mint:~$ swapon
NAME TYPE SIZE USED PRIO
/dev/sda4 partition 6.7G 60.7M -2
In this case the "/dev/sda4" swap partition is mounted correctly.
🛈 In the case of a swap partition, "Mounted" means "connected/linked to the OS" In other words: "active", "in use" or "enabled".
There can be more than one mounted swap partition:
mint@mint:~$ swapon
NAME TYPE SIZE USED PRIO
/dev/sda4 partition 6.7G 84.2M -2
/dev/sdc4 partition 7G 0B -3
When the output is empty (when there's no information returned):
mint@mint:~$ swapon
mint@mint:~$
there's no swap partition mounted. You're risking a system freeze or system crash! Do the following:
- booted from the internal HDD/SSD, type:
sudo swapon /dev/sda4
- booted from an USB stick, SD card or external HDD/SSD, type:
sudo swapon /dev/sd*4
🛈 to retrieve the partition mount point of the swap partition ("/dev/sd*4"), use [Application menu\accessoiries\Disks]. "/dev/sd*4" can be "/dev/sdb4", "/dev/sdc4", etc.
▹ Disks GUI app method (gnome-disk-utility) 🔗
To check and mount the Swap partition, you can also use the "Disks" GUI app.
🛈 When the Disks app is not installed, you can install it on most systems by typing sudo apt install gnome-disk-utility or sudo dnf install gnome-disk-utility in your Terminal/Konsole app.
- go to [application menu\accessoiries\Disks] or [3 ball ring] / [⋮⋮⋮] button, [System Utilities], [Disks]
- click on the USB/SD/HDD/SSD in the left sidebar
- go to "Volumes"
- click the rectangle field with the name "swap" (e.g. swap - Partition 4 - 4 GB Swap)
- when there's a [▶] button shown, and "Not Active" is shown behind "Contents": the swap partition is not mounted (disabled), click the [▶] button to mount (enable) it
- when there's a [■] button shown, and "Active" is shown behind "Contents": the swap partition is mounted (enabled)
▹ System Monitor GUI app method 🔗
🛈 You can only check the Swap state using the System Monitor GUI app, not mount a Swap partition.
To check if a swap partition is mounted, you can also consult [application menu\administration\System monitor\tab Resources\Memory and Swap]. When you read "Swap - not available" on the right side, the swap partition is not mounted, and overflow might occur. Allways try to prevent 100% CPU or 100% RAM usage: check the graphs in this panel when your system freezes or slows down.
▹ System Monitor Graph desklet method 🔗
🛈 You can only check the Swap state using the System Monitor Graph desklet, not mount a Swap partition.
To keep an eye on the CPU%, RAM%, Swap% usage and Swap state on Linux Mint Ubuntu Ed. amd64 and Linux Mint Debian Ed. IA-32, you can use the "System monitor graph" desklet. It has almost the same functionality as the Conky desklet, but it is much nicer to look at, and easier to manage. Do the following:
- go to [LM menu\preferences\System Settings\Preferences\Desklets\tab Download]
- type "monitor" in the search field with the looking glass
- click "System monitor graph" by rcassani
- click the [arrow-down] button (install)
- check: a check mark is placed in front of "System monitor graph" (installed)
- click the tab [Manage]
- click "System monitor graph" by rcassani
- click the [+] button 3 times
- press [Ctrl]+[d] to show the desktop
- check: there's one [CPU %] desklet shown, but there are also two desklets underneath it
- drag the three desklets to the desired location on your desktop
- right-click the second desklet
- click [Configure...]
- System variable for graph = RAM
- optional: Scale factor for desklet = 0.7 (to make it a bit smaller)
- click the [X] close button
- right-click the third desklet
- click [Configure...]
- System variable for graph = Swap
- click the [X] close button
- check: there are now three different desklets on your desktop: CPU%, RAM% and Swap% 📷
⚠ When the Swap desklet shows "Swap NaN%", the swap partition is not mounted (not enabled). Mount the swap partition, using one of the other methods above.
▹ Download several .iso files to the boot partition 🔗
You can now download all .iso files of your favorite Linux OS-es to the "2509PF_Boot" or "Ventoy" partition.
- set the "2509PF_Boot" or "Ventoy" partition as your temporary "Downloads" folder:
In Firefox:
- click the [+] button in the second bar from the top (opens a new tab)
- click the [☰] button in the right above corner 📷
- click [Settings]
- click [General] in the side menu on the left (gear icon)
- scroll down to the [Files and Applications] section
- behind "Save files to", click the [Browse ...] button
- click the [2509PF_Boot] or [Ventoy] label in the left side bar 📷
- click the [Open] button
- close the [Settings] tab
In Chrome:
- click the [+] button in the second bar from the top (opens a new tab)
- click the [⋮] button in the right above corner 📷
- click [Settings]
- scroll down in the left side panel menu
- click [Downloads]
- click the [Change] button
- click the [2509PF_Boot] or [Ventoy] label in the left side bar 📷
- click the [Select] button
- close the [Settings] tab
- download all the .iso files you want. I suggest you try:
- Linux Mint Ubuntu Ed.: Cinnamon, MATE or XFCE desktop, only amd64
- Linux Mint Debian Ed. amd64: Cinnamon desktop, amd64
- Linux Mint Debian Ed. IA-32: Cinnamon desktop, IA-32 (i386/32 bit)
- Ubuntu Desktop GNOME: GNOME desktop with large buttons, amd64 or arm64
- Ubuntu Desktop Flavors: all kinds of desktops and special editions, like EduBuntu, Kubuntu and Ubuntu Studio for musicians
- Debian: all kinds of flavors: Cinnamon, Junior, GNOME, KDE Plasma etc.
- antiX Linux: IA-32 (i386/32 bit) and amd64, super-lightweight, choose the "Runit" edition
🛈 A lot of .iso files can be booted using a Ventoy bootloader. You can check the list of tested .iso files on the Ventoy site. Not only .ISO files, but also .WIM-, .VHD(x)-, .IMG- and .EFI files can be booted using a Ventoy bootloader.
- when ready downloading: set the download location of your browser to your [Downloads] folder again
[tip] Add "0_" at the beginning of the .iso filename of your most favorite Linux OS, to make it always appear on top in the Ventoy boot menu, and select it by pressing the [Enter] key (e.g. "0_linuxmint-22.2-cinnamon-64bit.iso").
▹ Booting Ventoy from an internal HDD/SSD 🔗
- restart your computer
- check: the Ventoy boot menu is shown 📷
- press the [arrow down] or [page down] key to select the Linux OS to boot
- press [Enter]
- check: the "Boot in normal mode" option is selected
- press [Enter]
- check: the boot menu of the Linux OS is shown
- press [Enter] (the default option on top is OK, most of the time)
- check: the Linux OS is starting up
- check: the desktop is shown
▹ Retrieving the BIOS boot menu key for your PC/laptop 🔗
Find the [key] or [key]+[key] sequence, to enter the BIOS boot menu on your computer, in this table:
| Brand | BIOS boot menu key |
|---|---|
| Acer | [F9], [F12], [Esc] |
| ASRock | [F11] |
| ASUS | [F8], [Esc], [Tab]>[F8] |
| Compaq | [F9], [Esc] |
| Dell | [F12] |
| EMachines | [F12] |
| EVGA | [F7] |
| Fujitsu | [F12] |
| Gateway | [F10], [F11], [Esc] |
| Gigabyte | [F12] |
| HP | [F9], [Esc] |
| Huawei | [F2] |
| iBall | [F9] > [boot option] > [choose media] |
| Intel | [F10] |
| Lenovo | [F8], [F10], [F12], [Fn]+[F11] |
| Nec | [F5] |
| MSI | [F11] |
| Packard Bell | [F8] |
| Panasonic | [F2] > [exit] > [boot order] |
| Samsung | [F12], [Esc] |
| Sharp | [F9] |
| Sony | [F10], [F11], [Assist] |
| Toshiba | [F12] |
| Xiaomi | [Fn]+[F2] > [choose boot] |
(source: TechoFide.com)
- "[key1], [key2], [key3]+[key4]+[key5]" means: try all of these keys or key sequences, until you find the one that works
- "[key1]+[key2]" or "[key1]+[key2]+[key3]" means: key sequence, press these keys simultaneously
- "[key] > [option1] > [option2]" means: press [key], after that: select [option1], and after that: select [option2]
- "[key1]>[key2]" means: first press [key1], and after that press [key2]
▹ Booting Ventoy from an external USB/SD/HDD/SSD 🔗
- insert the USB stick or SD card, or attach the external HDD/SDD, with the [2509PF_Boot] or [Ventoy] partition, into/to the USB port of your computer
- power on your computer
- enter the [BIOS boot menu], by repeatedly pressing the key or key sequence you found in the Retrieving the BIOS boot menu key for your PC/laptop section above 📷
- check: the BIOS boot menu is shown 📷
- select the USB stick or external HDD/SSD using the [arrow-down] key
- press [Enter]
- check: the Ventoy boot menu is shown 📷
- press the [arrow down] or [page down] key to select the Linux OS to boot
- press [Enter]
- check: the "Boot in normal mode" option is selected 📷
- press [Enter]
- check: the boot menu of the Linux OS is shown
- press [Enter] (the default option on top is OK, most of the time)
- check: the Linux OS is starting up
- check: the desktop is shown
▹ Retrieving the BIOS Setup key for your PC/laptop 🔗
Find the [key] or [key]+[key] sequence, to open the (UEFI) BIOS Setup (configuration) app on your computer, in this table:
| Brand | BIOS Setup key |
|---|---|
| Acer | [F1], [F2], [F12], [Delete], [Esc], [Ctrl]+[Alt]+[Esc] |
| ARI/ALR/AST | [Ctrl]+[Alt]+[Esc], [Ctrl]+[Alt]+[Delete] |
| ASRock | [F2], [Delete] |
| ASUS | [F2], [Delete] |
| Compaq | [F1], [F2], [F10], [Delete] |
| Cybermax | [Esc] |
| Dell | [F2], [Fn]+[Esc], [Fn]+[F1] |
| ECS | [Delete] |
| EMachines | [F2], [Tab], [Delete] |
| Fujitsu | [F2] |
| Gateway | [F1], [F2] |
| Gigabyte | [F2], [Delete] |
| HP | [F1], [F10], [F11], [F12] or [Esc] |
| IBM | [F1], [F2] |
| Lenovo | [F1], [F2], [Fn]+[F1], [Fn]+[F2], [Ctrl]+[Alt]+[F3], [Ctrl]+[Alt]+[Insert] |
| Medion | [Delete] |
| Micron MCP | [F1], [F2], [Delete] |
| Microsoft | Press and hold the [volume-up] button (Surface) |
| MSI | [Delete] |
| NEC | [F2] |
| Origin | [F2] |
| Packard Bell | [F1], [F2], [Delete] |
| Samsung | [F2] |
| Shuttle | [F2], [Delete] |
| Sony | [F1], [F2], [F3] |
| Tandon | [Ctrl]+[Shift]+[Esc] |
| Toshiba | [F1], [F2], [F12], [Esc] |
| Zotac | [Delete] |
(sources: TomsHardware.com and Scribd.com)
- "[key1], [key2], [key3]+[key4]+[key5]" means: try all of these keys or key sequences, until you find the one that works
- "[key1]+[key2]" or "[key1]+[key2]+[key3]" means: key sequence, press these keys simultaneously
▹ Disable UEFI Secure boot to access the BIOS boot menu 🔗
⚠ When your computer has a modern UEFI BIOS, the "Secure Boot" option might be enabled, that prevents you from booting an USB stick or external HDD/SSD. You might get a "Secure boot violation" message. 📷. To disable the "Secure boot" option, do the following:
- power on your computer
- enter the [BIOS Setup app], by repeatedly pressing the key or key sequence you found in the Retrieving the BIOS Setup key for your PC/laptop section above
- check: the Setup app is opened
- press the [arrow-down] or [arrow-right] key to select the [Startup] or [Boot] option or tab 📷
- press the [arrow-down] key to select "Secure boot"
- press the [arrow-left]/[arrow-right] or [F5]/[F6] key to select the "Disabled" value
- press the [Enter] key
- press the [F10] key to save this setting
- on the prompt "Are you sure?": select the [OK] button using the [arrow-left] or [arrow-right] key
- press [Enter]
You can now access the BIOS boot menu (I hope ...)
🛈 When a password is set on the BIOS Setup app, you need to retrieve this password, or reset it to [empty], to open the app. You can usually reset the password by removing the battery on your motherboard, wait 10 minutes, and put it back. Often there's also a jumper (wire bridge) that can be removed to reset the password. Please Google for a detailed HowTo. On a laptop this can be difficult.
▹ Questions, welcome panels and passwords 🔗
You may encounter a few questions or "Welcome" panels, when booting a Linux Live-OS (Live-CD) .iso file:
- install or try?: click the [Try] button. This is the Live-OS (Live-CD) mode
- update your system?: Click the [Skip], [Close] or [X] button
- select your keyboard layout: select "US (English)" or "US 105 key" (qwerty, OK most of the time)
- "Welcome" or "Welcome Center" panel: click the [Close] or [X] button
🛈 When you are prompted to enter a password (e.g. when installing software), the password can be found Googling "live user password site:{URL of Linux OS home}", e.g. "live user password Debian site:debian.org". These are the default passwords for a few Linux distros:
| Linux OS | Default username | Password |
|---|---|---|
| antiX | demo | demo |
| AV Linux MX Edition (AVL-MXe) (Audio distro) | demo | demo |
| Bodhi | bodhi | [empty] |
| Clonezilla | user | live |
| Damn Small Linux (DSL) | demo, exton, or dsl | demo, linux, [empty] |
| Debian | user | live or [empty] |
| Devuan | devuan or root | devuan or toor |
| Exton | user, life, or root | live or root |
| Fedora | liveuser | liveuser or [empty] |
| Garuda | garuda | garuda |
| Kali | kali | kali |
| Linux Mint | mint | [empty] |
| MX | demo | demo |
| od4knb | od4knb | od4knb |
| Porteus | guest or root | guest or toor |
| Refracta OS | user or root | life, user, or root |
| Rescuezilla | root | live or [empty] |
| Ubuntu | ubuntu | [empty] |
| Ubuntu Studio (Audio distro) | ubuntu | [empty] |
| Ufficio Zero Linux (UZL) | ufficiozero | ufficiozero |
Have fun trying out all these Linux distros! I'm stuck on Linux Mint Ubuntu Ed. amd64 with a Cinnamon desktop on my bulky AMD64 PC with 4 GB RAM (braggart! 😉) for a lot of years, and on antiX Linux IA-32 and Linux Mint Debian Ed. IA-32 on my IA-32 (32 bit, i686) laptops, that I use to create the 32 bit .iso files on this site. Hopefully, you'll find your favorite Linux OS as well.
⬥ Make or restore a full disk backup with RescueZilla 🔗
If you have Linux, Windows, macOS or another operating system installed on your internal hard drive/SSD, it makes sense to make a full disk backup ("disk image"):
- of the pristine installation (as provided by the OEM)
- right after removing unnecessary junk, installing additional software and configuration (clean, without having used the internet browser)
If your (Windows!) system is wrecked, you can restore the HDD/SSD to its original state by restoring the full disk backup, which also contains the boot track. Rescuezilla refers to the boot track (MBR) as the "partition table", but the entire MBR, including the partition table, is copied to the disk image.
I think it is best to use RescueZilla for this task, as it uses the CloneZilla format, a robust standard for Linux professionals. I don't need to write a HowTo, because I found these (almost) perfect HowTos for you:
- Make a Full Disk Backup with Rescuezilla (2203DN) (Step 2. Select the partitions to save = all)
- Restore a Full Disk Backup with Rescuezilla (2411DP)
⚠ Make sure to backup your valuable data before restoring a full disk backup, as it will overwrite (destroy) all data on the HDD/SSD!
🛈 A RescueZilla .IMG disk image is not a file, but a folder with files whose name ends with ".IMG". You can also create/restore an .IMG disk image with CloneZilla, but that app is pretty user-unfriendly (it doesn't have a GUI), it's only suitable for IT professionals. RescueZilla on the other hand, has a very user-friendly/simple GUI, which makes it perfect for regular people.
⚠ RescueZilla works great, but has two drawbacks:
- You can only restore a disk image of (for example) a 512 GB HDD/SSD to a HDD/SSD that's 512 GB or larger. RescueZilla cannot resize partitions.
- It is not suitable for data backup (your documents) of data stored on a designated data partition, because RescueZilla Image Explorer (to restore one or more files from an .img image) does not work well. Place your valuable data in a Veracrypt container, and make regular copies of it, to an external HDD/SSD.
⬥ Determine your CPU architecture (32/64 bits) 🔗
When you want to install a Linux OS on your PC/laptop, you'll notice that there are several different .ISO files (images to "flash" onto USB stick or "burn" onto DVD), for different CPU instruction set architectures available. The most common PC/laptop (baseline) CPU instruction set architectures are:
- IA-32 Intel CPU 32 bit, most commonly named i386, also referred to as x86, i486, i586 or i686 [overview]
- x86-64 Intel or AMD CPU 64 bit, most commonly named amd64, also referred to as x64, x86_64, em64t or Intel64 [overview]
- AArch64 64 bit, most commonly named arm64, also referred to as "a64"
An AArch64/arm64 CPU is often used in:
- laptops with a Qualcomm Snapdragon/Broadcom System On a Chip (SoC)
- single board computers (SBC)
- embedded systems with a SoC, System on a Module (SoM) or System in a Package (SiP)
🛈 You can run an IA-32/i386 Linux OS, such as LMDE-32bit, on a PC with an IA-32/i386 or x86-64/amd64 CPU, but you cannot run a x86-64/amd64 Linux OS on an IA-32/i386 CPU. To get the best performance and results: run an IA-32/i386 Linux OS on an IA-32/i386 CPU, and run a x86-64/amd64 Linux OS on a x86-64/amd64 CPU.
For servers you'll find ISOs for: riscv64, ppc64le, s390x, mips64el, and several other architectures. Debian and Fedora support quite a few of them, but Gentoo supports them all!
You can also Google for "{CpuModel} {ManufacturerArchitecture}" (e.g. "Intel Pentium M Dothan"), but most of the time, you won't even find the CPU instruction set architecture that way.
To choose the right .iso file, or the right .deb/.rpm (etc.) installer package, you have to determine the bit width (32 or 64 bit), baseline architecture (IA-32, x86-64 or aarch64), and microarchitecture/feature level (sub-architecture) of the CPU in your PC/laptop. Do the following:
▹ 1. Determine the CPU bit width 🔗
- grab an USB stick, with a capacity of 2 GB or larger
- label the USB stick "antiX-32bit"
- download the antiX-{HighestVersion}-386-full.iso
⚠ This is the 32 bits IA-32 .iso file, containing a Runit init system, intended for an IA-32/i386 computer, but it'll also run on a x86-64/amd64 system. You cannot use a 64 bits x86-64/amd64 .iso file for this procedure, because it will not boot on a 32 bits IA-32/i386 computer.
- check: "antiX-{HighestVersion}_386-full.iso" (approximately 1.8 GB) is downloaded to your Downloads folder
- use the Balena Etcher method to "flash" the "antiX-{HighestVersion}_386-full.iso" file onto an USB stick
- power off the PC/laptop
- insert the "antiX-32bit" USB stick into the PC/laptop
- power on the PC/laptop
- repeatedly press the button to access the BIOS boot menu of your PC
⚠ When the Secure Boot option is enabled in your BIOS/UEFI, you probably cannot access the boot menu. Disable the Secure Boot option first.
- select your USB stick (to be recognized by the brand name) using the [arrow down] button
- press [enter]
- check: after a while the desktop is shown
⚠ When this .iso file doesn't boot at all, the CPU in your computer is neither IA-32 nor x86-64. It's probably an aarch64/arm64 CPU. You can use any aarch64/arm64 .iso file, and any aarch64/arm64 installer package, of any Linux OS, such as Ubuntu or Debian on your computer.
- click the 4-leave clover application menu button in the left below corner
- click [Terminal] (or "Konsole")
- type:
inxi -v8
- search in the output for the "CPU" section, for example:
CPU:
Info: model: Intel Pentium M bits: 32 arch: M Dothan built: 2003-05
process: Intel 90nm family: 6 model-id: 0xD (13) stepping: 8 microcode: 0x20
Topology: cpus: 1x dies: 1 cores: 1 smt: {unsupported} cache: 2 MiB
note: check
Speed (MHz): 800 min/max: 800/1867 scaling: driver: acpi-cpufreq
governor: schedutil core: 1: 800 bogomips: 3724
- look behind [CPU\Info\bits]
- when the value of [CPU\Info\bits] is "32": the bit width of your CPU is 32 (a "32 bit CPU")
- when the value of [CPU\Info\bits] is "64": the bit width of your CPU is 64 (a "64 bit CPU")
🛈 Do not look at the CPU architecture mentioned behind [CPU\Info\arch]. That's the CPU architecture designation of the manufacturer (e.g. "M Dothan"), not the CPU instruction set architecture (e.g. IA-32, x86-64 or arm64).
⚠ Do not look at the values behind [System\Host\arch] and [System\Host\bits]. That's the achitecture and bit width of the loaded Linux kernel, not the CPU.
🛈 You can also use the $ lshw command to determine the bit width of your CPU, when booting an IA-32/i386 (32 bit) ISO on an x86-64/amd64 (64 bit) computer. Ignore the faulty hostname\width: 32 bits on top. The *-cpu\width: 64 bits (one CPU core) or *-cpu:0\width: 64 bits (two or more CPU cores) reading is correct.
▹ 2. Determine the CPU architecture baseline 🔗
▹ On a 32 bit computer 🔗
- When the [CPU\Info\bits] value, in the output of [$ inxi -v8] reads "32":
There's only one baseline for a common 32 bit computer: Intel IA-32 (x86/i386). AFAIK that's the only 32 bits CPU architecture in computers available from the thrift store. Go to the Determine the CPU microarchitecture/sub-architecture/feature level section.
▹ On a 64 bit x86-64 computer 🔗
- When the [CPU\Info\bits] value, in the output of [$ inxi -v8] reads "64":
An IA-32/i386 .iso file, such as "antiX-{HighestVersion}-386-full.iso", can only boot on a computer containing a IA-32/i386 or x86-64/amd64 CPU, not on a computer with an aarch64/arm64 CPU. So, when you successfully booted the "antiX-{HighestVersion}_386-full.iso" on your PC, and [CPU\Info\bits] in the [$ inxi -v8] output reads "64", your computer has an x86-64/amd64 CPU aboard. Proceed to the Determine the CPU microarchitecture/sub-architecture/feature level section, or perform the following pointless actions ;-):
- grab an USB stick, with a capacity of 4 GB or larger
- label the USB stick "Linux Mint amd64"
- Download Linux Mint Ubuntu Ed. Cinnamon amd64 (or choose the MATE or XFCE Desktop version)
⚠ You cannot use a Linux Mint Debian Ed. (LMDE) IA-32 .iso file (or another IA-32/i386 .iso file) for this procedure, because then [$ lscpu], [$ uname -m], [$ lshw] and [$ arch] will return an incorrect "i686" (IA-32 6th Gen.) architecture on an x86-64 (amd64) CPU.
- check: "linuxmint-{version}-cinnamon-64bit.iso" (approximately 2.7 GB) is downloaded to your Downloads folder
- follow the instructions in the Create a bootable USB stick with a Linux OS using Balena Etcher section, to "flash" the "linuxmint-{version}-cinnamon-64bit.iso" file onto an USB stick
- power off the PC/laptop
- insert the "Linux Mint amd64" USB stick into the PC/laptop
- power on the PC/laptop
- repeatedly press the button to access the BIOS boot menu of your PC
- select your USB stick (to be recognized by the brand name) using the [arrow down] button
- press [enter]
- check: after a while the desktop is shown
- click the [application menu] button
- click [Terminal] (or "Konsole")
- type:
uname -morarchorlscpu
In case of an x86-64/amd64 CPU the output looks like this:
x86_64
or this:
Architecture: x86_64
Oh! We already knew that ;-)
▹ 3. Determine the CPU microarchitecture/sub-architecture/feature level 🔗
▹ On a IA-32/i386 computer 🔗
- power off the PC/laptop
- insert the "antiX-32bit" USB stick into the PC/laptop
- power on the PC/laptop
- repeatedly press the button to access the BIOS boot menu of your PC
- select your USB stick (to be recognized by the brand name) using the [arrow down] button
- press [enter]
- check: after a while the desktop is shown
- click the 4-leave clover application menu button in the left below corner
- click [Terminal] (or "Konsole")
- type:
uname -morarchorlscpu
the output probably looks like this:
i686
or this:
Architecture: i686
The i386 (Intel 80386), i486 (Intel 80486), i586 (Intel Pentium 5, P5) and i686 (Intel Pentium Pro, P6) CPU architectures are sub-architectures of the 32 bit Intel IA-32 family.
An "i486" .iso file, intended for an Intel 80486 CPU and newer, won't run on a "real" i386 (Intel 80386) CPU, but an "i386" .iso file can run on any Intel 32 bit CPU, including an i486, i586 and i686. It's a bit confusing: the common name of an IA-32 Intel 32 bit CPU (which includes the i386, i486, i586 and i686 sub-architectures) is "i386".
⚠ Bad news for IA-32/i386 PC owners: Fedora is thinking of dropping 32-bit support, and Debian has dropped 32 bit support as of version 13.0.0.
⚠ As of Linux Kernel 6.15, i386, i486, and several i586 CPU's are no longer supported, but i686 CPU's (IA-32 6th Gen. introduced in 1995) are still supported.
▹ On a x86-64/amd64 computer 🔗
The x86-64/amd64 CPU architecture baseline is devided into four microarchitecture levels (feature levels or sub-architectures): x86-64-v1, x86-64-v2, x86-64-v3 and x86-64-v4. Each feature level has its own set of features ("commands" you could say) that a Linux OS or app can use, to make it work more efficiently. An app or Linux OS (kernel) that's compiled (build) for an x86-64-v3 CPU, can run on a CPU that supports x86-64-v3 and/or x86-64-v4, but not on a CPU that only supports x86-64-v1 and/or x86-64-v2.
🛈 The highest x86-64 microarchitecture level "x86-64-v4" is also known as AVX-512 (Intel Advanced Vector eXtensions 512 Bit), as these processors support (part of the) AVX-512 instruction set. Be aware that not all recent amd64 CPUs support x86-64-v4/AVX-512. In the list of CPUs that support AVX-512, you'll see that Intel Rocket Lake, Ice Lake, and Tiger Lake support AVX-512, but not all subsets are supported.
Most Linux OS-es support all four x86-64 microarchitecture levels in their x86-64/amd64 .iso file. For those OS-es it's enough to know your CPU architecture baseline.
🛈 The tool x86-64-level, to determine the x86-64 microarchitecture level, has no .deb package available, only source code. The package is not in the Debian/Ubuntu/Linux Mint repositories.
▹ Distributions that dropped x86-64-v1 and x86-64-v2 suppport 🔗
Linux distros, that don't suppport the x86-64-v1 microarchitecture level any more, and will only run on a CPU that supports at least x86-64-v2:
A Linux distro that's considering dropping suppport for x86-64-v1:
Linux distros, that don't suppport the x86-64-v1 and x86-64-v2 microarchitecture levels any more, and will only run on a CPU that supports at least x86-64-v3:
Not a good move by these distros. Performance is only marginally better, and this results in more e-waste :-(
▹ Determine the microarchitecture (feature) level of your x86-64 CPU 🔗
To determine the microarchitecture (feature) level of your CPU, do the following:
- grab an USB stick, with a capacity of 4 GB or larger
- label the USB stick "Linux Mint amd64"
- Download Linux Mint Ubuntu Ed. Cinnamon amd64
⚠ You cannot use a 32 bit .iso file for this procedure, because a 32 bit .iso doesn't contain the required 64 bit "ld-linux-x86-64.so.2" app.
- check: "linuxmint-{version}-cinnamon-64bit.iso" (approximately 2.8 GB) is downloaded to your Downloads folder
- follow the instructions in the Create a bootable USB stick with a Linux OS using Balena Etcher section, to "flash" the "linuxmint-{version}-cinnamon-64bit.iso" file onto an USB stick
- power off the PC/laptop to boot with the "Linux Mint amd64" USB stick
- insert the "Linux Mint amd64" USB stick into the PC/laptop
- power on the PC/laptop
- repeatedly press the button to access the BIOS boot menu of your PC
- select your USB stick (to be recognized by the brand name) using the [arrow down] button
- press [enter]
- check: after a while the desktop is shown
- click the [LM button] to access the application menu
- click [Terminal] (or "Konsole")
- type:
$ /usr/lib64/ld-linux-x86-64.so.2 --help | grep x86-64-
- check: the "ld-linux-x86-64.so.2" app is started, with the "--help" parameter
- in the output, only lines with "x86-64-" are shown
- when it reads:
x86-64-v4
x86-64-v3
x86-64-v2
your CPU does support x86-64-v1 but not x86-64-v2, x86-64-v3 and x86-64-v4. The Linux distros, mentioned in the Distributions that dropped x86-64-v1 and x86-64-v2 suppport section, cannot run on this CPU. x86-64-v1 is the lowest level, not shown in this list, but it is always supported on a x86-64 CPU.
🛈 "/usr/lib64/ld-linux-x86-64.so.2" is actually a symbolic link file, pointing to "/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2", a shared library, not a binary file (app).
- when it reads:
x86-64-v4
x86-64-v3 (supported, searched)
x86-64-v2 (supported, searched)
your CPU does support x86-64-v1, x86-64-v2, and x86-64-v3, but not x86-64-v4. The Linux distros, mentioned in the Distributions that dropped x86-64-v1 and x86-64-v2 suppport section, can run on this CPU.
- when it reads:
bash: /usr/lib64/ld-linux-x86-64.so.2: No such file or directory
you booted from a 32 bit Linux .iso file (or 32 bit installed Linux OS), which never contains the required 64 bit "ld-linux-x86-64.so.2" shared library file.
▹ Sidenote about inxi 🔗
🛈 The inxi "-v8" switch implies "show all information", but even then, some info is still unavailable. To show all info, do the following:
$ sudo apt-get install -y smartmontools(to show the HDD/SSD temperatures)$ sudo inxi -v8(to show all <superuser required> and <root privileges required> information)
⬥ Determine the base of your Linux distro 🔗
TLDR: Find the Base OS of your Linux distro in the List of Linux distributions.
When you want to install an app, using your GUI software manager, or by typing [$ sudo apt install {AppName}] (e.g.), the package might not be available in the software repository (repo) of your Linux OS. You'll get an error message: "E: Unable to locate package {AppName}".
When the desired package is not in the repo of your Linux OS (distro), you can still download a package that's designed for the Linux OS "base" (the OS that's "under the hood") of your Linux distro, from the creator's website, or from another repo elsewhere (e.g. Github.com or SourceForge.net). For that, you need to know:
- the CPU instruction set architecture of your PC/laptop
- the Linux OS "base" that's "under the hood" of your Linux OS.
⚠ Be very careful, when downloading a package from another source (e.g. creator's website, github.com, sourceforge.net, PPA, or Additional (unofficial) repository) than the official repositories of your Linux OS, as it may contain malware. The safest way to go, is using your package installer (SoftWare Manager GUI, gdebi GUI, captain GUI or apt/apt-get/dnf command). Check the repositories that are available to your package installer:
- Linux Mint Cinnamon: [LM menu\Administration\Software Sources] (which edits "/etc/apt/sources.list.d/official-package-repositories.list" and "/usr/share/mint-mirrors/linuxmint.list")
- Ubuntu GNOME:
$ cat /etc/apt/sources.list.d/ubuntu.sources(⚠ [3-dot-ring\Software & Updates] presents no URLs!) ※[ref2601CF] - Debian Cinnamon:
$ cat /etc/apt/sources.list(⚠ [Application menu\Administration\Software\☰\Software Repositories] presents no URLs!) ※[ref2601CG] - antiX: [🍀menu\App Select\Package Repository Manager] (which edits "/etc/apt/sources.list.d/debian.list" and "TODO Mirror list")
The following repositories are safe to use:
- Linux Mint Package Repository (http)
- Linux Mint .iso download and its mirror servers
- Ubuntu Package Search
- Ubuntu .iso download - GNOME and its mirror servers
- Ubuntu .iso download - Flavors
- Ubuntu Archive (http), and its mirror servers
- Ubuntu Security (has no mirrors)
- Debian Package Search
- Debian live system .iso download - amd64 and its mirror servers
- Debian installer .iso download - all architectures and its mirror servers
- Debian Archive (http), and its mirror servers
- antiX Package repository
- MX Package repository
🛈 The lack of TLS (HTTPS, "SSL") is not a security issue in this case, as no privacy-sensitive data is transported.
To determine the OS base:
- Open your Terminal app (or "Konsole")
- type:
$ inxi -v8
- Go to the "System" section
System:
Host: od4knb Kernel: 5.10.224-antix.1-486-smp arch: i686 bits: 32
compiler: gcc v: 12.2.0 clocksource: hpet avail: acpi_pm
parameters: BOOT_IMAGE=/boot/vmlinuz-5.10.224-antix.1-486-smp
Desktop: IceWM v: 3.6.0 tools: avail: slock,xlock dm: slimski v: 1.5.0
Distro: antiX-23.2_386-full Arditi del Popolo 6 October 2024 base: Debian
GNU/Linux 12 (bookworm)
- Look behind [System:\Desktop:\base:]
In this case the base OS is Debian 12, codename "bookworm"
When inxi is not installed, issue the appropiate command to install it:
$ sudo apt-get install -y inxi
$ sudo dnf install -y inxi
$ sudo rpm -i inxi
$ sudo yum install -y inxi
$ sudo pacman -S inxi
🛈 You can install an installer package (containing an app), when your Linux operating system is booted from an .iso file (flashed to an USB stick or copied to a Ventoy boot partition). The package will be temporarily installed into the RamDisk (RamDrive), which is part of your computer's volatile memory (RAM). However, after a reboot your RAM is cleared, and the app is deleted as a result. Nonetheless, this can be very usefull when you quickly need a small app like a screendump utility, or a encryption app, e.g. (my favorites):
$ sudo apt-get install -y flameshot && sudo apt-get install -y zulucrypt-gui
or, on Fedora:
$ sudo dnf install -y flameshot && sudo dnf install -y zulucrypt
🛈 Note, that when you install apps on your RamDisk, the amount of memory (RAM) available for the running apps will be lower. Do not install large apps like LibreOffice or K3b on your RamDisk. This will take a long time to install, and will fill your memory (RAM), which can crash your PC. The "zulucrypt-gui" package is called "zulucrypt" in the Fedora repo (no typo).
⬥ Download and install a MPV Media Player Debian .deb package 🔗
When the installation of MPV Media Player, using the "antixradio_{version}_all.deb" package failed, you can download the MPV Media Player package from the Debian repository, or Ubuntu repository. Download "mpv_{HighestVersion}_amd64.deb" for an Intel/AMD 64 bit computer (x86-64), or "mpv_{HighestVersion}_i386.deb" for an older Intel 32 bit computer. You'll also find packages for computers with an ARM CPU (processor).
⚠ Allways install a "mpv_{HighestVersion}_{amd64/i386}.deb" package. Never install a "{fileName}.ddeb" package, or packages that have "devel", "dbg" or "dbgsym" in the file name, those are "development" or "debug" packages.
- Use GDebi or Captain Package Installer GUI to install the .deb package, or
- Use the following command:
$ sudo apt-get install -y "/home/${USER}/Downloads/mpv_{HighestVersion}_{amd64/i386}.deb"
🛈 ${USER}" is your user name. In the Terminal/Konsole app (look for a black "$_" icon), your user name is shown before the "@" sign. Replace {HighestVersion} with the actual version number. Replace "{amd64/i386}" with the actual CPU architecture.
🛈 If your Linux OS needs a .rpm or .pkg package: read the Download and install a MPV Media Player Fedora .rpm package or Convert a .deb package to .rpm or .pkg for use on non-Debian based Linux distros section.
⬥ Download and install a MPV Media Player Fedora .rpm package 🔗
When your Linux OS cannot install a Debian based .deb package, there are ready-to-install mpv packages availabe in the .rpm (Red Hat Package Manager) package format. RPM packages are available for all RPM based distributions.
⚠ This HowTo is about Fedora .rpm packages, which can be installed on all Fedora based distros. There's no guarantee that .rpm Fedora package will install on a RPM based distribution that doesn't have Fedora "under the hood", such as OpenSUSE or Mandriva.
- Go to Fedora Packages Search
- Type "mpv"
- click [Search]
- Click "mpv - Movie player playing most video formats and DVDs"
- click the Builds button
- click the "mpv-{HighestMpvVersion}.fc{FedoraVersion}" link beneath "NVR", of the {FedoraVersion} that's under the hood of your Linux distro, and has a green "State=complete" marker
🛈 Only download "fc" (Fedora Core) packages. "fc42" (e.g.) is intended for a Fedora 42 GNOME, KDE Plasma or CoreOS consumer distro. Do not use the "el/ep" (for Fedora Enterprise Linux EPEL), or "eln" (Enterprise Linux Next development environment) packages, unless you are a Linux-pro.
- scroll down to the "RPMs" section
- go to the CPU architecture that's in your computer (most likely x86-64)
- click the "download" link behind "mpv-{version}.x86_64.rpm" (link on top)
⚠ Do not use a devel, libs, debuginfo, debugsource or libs-debuginfo package
🛈 There's also an aarch64 (ARM64) package available, but no i386 (Intel 32 bit CPU) package.
- Install the "mpv-{HighestMpvVersion}.fc{FedoraVersion}.x86_64.rpm" package using your GUI package installer, or one of the following commands:
$ sudo rpm -i "/home/${USER}/Downloads/mpv-{HighestMpvVersion}.fc{FedoraVersion}.x86_64.rpm"
$ sudo dnf install -y "/home/${USER}/Downloads/mpv-{HighestMpvVersion}.fc{FedoraVersion}.x86_64.rpm"
$ sudo yum install -y "/home/${USER}/Downloads/mpv-{HighestMpvVersion}.fc{FedoraVersion}.x86_64.rpm"
🛈 MPV Media Player is also available for Microsoft Windows, macOS, Android and BSD. You can download the installers/packages from the MPV website. The antiXradio GUI (a Bash .sh script, that uses MPV "under the hood"), can only run on a Linux OS.
⬥ Convert a .deb package to .rpm or .pkg for use on non-Debian based Linux distros 🔗
When your Linux OS cannot install a Debian based .deb package, and you couldn't find a ready-to-use .rpm package, you can also convert the "antixradio_{version}_all.deb" package, to a package format that your OS can install.
You can convert a .deb package using Alien Package Converter. Alien can convert the .deb package into the following formats:
- Red Hat Package Manager (.rpm, for all RPM based distros)
- Oracle Solaris (.pkg, BSD based)
- Linux Standard Base (.lsb)
- Slackware (.tgz, .txz, .tbz, .tlz)
- Stampede (.slp)
🛈 Alien cannot convert from/to a Pacman .pkg.tar.zst or .pkg.tar.xz package used by Arch Linux bases OS-es
▹ Install Alien 🔗
- APT: all Debian based Linux distributions (Debian, antiX, MX, Ubuntu, Linux Mint, etc.):
$ sudo apt-get -y install alien
- DNF: all Fedora based distros (Fedora, CentOS Stream, Qubes etc.):
$ sudo dnf install -y alien
- DNF: all Red Hat Enterprise Linux (RHEL) based distros (RHEL, AlmaLinux, Oracle, Rocky etc.):
$ sudo dnf install -y epel-release && \
sudo dnf install -y alien
🛈 Red Hat Enterprise Linux (RHEL) is the commercial variant of Fedora Linux
- APK: Android, Alpine Linux:
$ sudo apk add alien
Convert the .deb package:
- to antixradio_{version}_all.rpm (all RPM based distros):
$ sudo alien --to-rpm "/home/${USER}/Downloads/antixradio_{version}_all.deb"
🛈 Replace {version} with the actual version number
- to antixradio_{version}_all.pkg (Solaris):
$ sudo alien --to-pkg "/home/${USER}/Downloads/antixradio_{version}_all.deb"
▹ Install the converted package 🔗
- antixradio_{version}_all.rpm (all RPM based distros), use one of the following commands:
$ sudo rpm -i "/home/${USER}/Downloads/antixradio_{version}_all.rpm"
$ sudo dnf install -y "/home/${USER}/Downloads/antixradio_{version}_all.rpm"
$ sudo yum install -y "/home/${USER}/Downloads/antixradio_{version}_all.rpm"
🛈 Replace {version} with the actual version number
- antixradio_{version}_all.pkg (Solaris package):
$ sudo pkg install -y "/home/${USER}/Downloads/antixradio_{version}_all.pkg"
⬥ Retrieve encoding, bitrate and mono/stereo info of an audio stream 🔗
To get the encoding (AAC/MP3 etc.), bitrate (Kbit/s) and mono/stereo (channels: 1ch/2ch) info of the audio stream, you can use the following command:
$ mpv --term-status-msg='${path}\naudio-bitrate:${audio-bitrate}' --length=15 'PasteUrlHere' 2>&1 | tee -a "/home/${USER}/mpv-encoding-channels-bitrate.log"
e.g.:
$ mpv --term-status-msg='${path}\naudio-bitrate:${audio-bitrate}' --length=15 'https://eilo.org/getm3u.php?m3u=drum' 2>&1 | tee -a "/home/${USER}/mpv-encoding-channels-bitrate.txt"
🛈 2>&1 | tee -a = standard messages and errors are printed on screen, and in the .log file.
The log file looks like this:
(+) Audio --aid=1 (mp3 2ch 44100Hz)
AO: [pipewire] 44100Hz stereo 2ch floatp
http://eilo.org:8000/drum
audio-bitrate:128 kbps
File tags:
icy-title: Stoyan - Live at Drum & Jazz 23.11
This example reads:
- mp3 = encoding
- 2ch = audio channels (2ch = stereo)
- 44100Hz = sample rate (44.1 kHz)
- 128 kbps = bitrate (Kbit/s)
- icy-title = performer - song title
🛈 In the case of FLAC encoding (and sometimes with AAC) you will see the bitrates go up and down, because it uses VBR (Variable BitRate). When you execute multiple commands in succession, all output is collected in the same log file (due to ">>"). MPV automatically disconnects from the streaming server after 15 seconds (--length=15).
To automate the stream information retrieval, you can put multiple commands in a .sh script:
#!/bin/bash
mpv --term-status-msg='${path}\naudio-bitrate:${audio-bitrate}' --length=15 'https://eilo.org/getm3u.php?m3u=drum' 2>&1 | tee -a "/home/${USER}/mpv-encoding-channels-bitrate.log"
mpv --term-status-msg='${path}\naudio-bitrate:${audio-bitrate}' --length=15 'http://ic2255.c471.fast-serv.com/listen' 2>&1 | tee -a "/home/${USER}/mpv-encoding-channels-bitrate.log"
mpv --term-status-msg='${path}\naudio-bitrate:${audio-bitrate}' --length=15 'https://dubtec-radio.radiocult.fm/stream' 2>&1 | tee -a "/home/${USER}/mpv-encoding-channels-bitrate.log"
or copy/paste a chain with several commands into your Terminal window:
mpv --term-status-msg='${path}\naudio-bitrate:${audio-bitrate}' --length=15 'https://eilo.org/getm3u.php?m3u=drum' 2>&1 | tee -a "/home/${USER}/mpv-encoding-channels-bitrate.log" && \
mpv --term-status-msg='${path}\naudio-bitrate:${audio-bitrate}' --length=15 'http://ic2255.c471.fast-serv.com/listen' 2>&1 | tee -a "/home/${USER}/mpv-encoding-channels-bitrate.log" && \
mpv --term-status-msg='${path}\naudio-bitrate:${audio-bitrate}' --length=15 'https://dubtec-radio.radiocult.fm/stream' 2>&1 | tee -a "/home/${USER}/mpv-encoding-channels-bitrate.log"
🛈 2>&1 | tee -a = standard messages and errors are printed on screen, and in the .log file.
When not installed, you can install MPV Media Player (mpv command) by issueing command:
$ sudo apt-get install -y mpv
You can also download the MPV Media Player package from the MPV website.
To automate the testing of a lot of URLs: go to the Create a .sh Bash script with multiple mpv commands using LibreOffice Calc section.
⬥ Testing antiXradio using Radio Mast reference audio streams 🔗
When antiXradio cannot play certain radio stations, the first step is to load the 2501KV-{version}-antiXradio-reference-audio-streams.txt file in the antiXradio GUI, using the file selector that pops up, when you click the [Load another list] button in the antiXradio GUI. You can load the file from HDD/SSD/USB device.
These reference audio streams are from the Radio Mast website. The streams are not Geo-Blocked, and are intended to always produce sound.
⬥ Using antiXradio debug mode 🔗
To run antiXradio in debugmode, do the following:
- Issue command:
$ sudo geany /usr/local/bin/antiXradio
(replace "geany" with your text editor)
- Change
flag_debugmode=0
into
flag_debugmode=1
- Issue command:
$ antiXradio 2>&1 | tee -a "/home/${USER}/"$(date '+%Y-%m-%d-%H.%M.%S')-antiXradio-debug.log""
- check: the antiXradio GUI is opened
- Select the failing radio station
- Press the [Play] button
- Examine the log file in [/home/${USER}/]
⬥ Testing URLs of radio stations using MPV Media Player 🔗
antiXradio has MPV Media Player "under the hood". If a streaming URL does not produce sound or something else is wrong, there are 3 mpv commands you can use:
- Verbose mode (enough for normal testing):
$ mpv --term-status-msg='${path}\naudio-bitrate:${audio-bitrate}' --length=15 --msg-level=all=v 'PasteUrlHere' 2>&1 | tee -a "/home/${USER}/"$(date '+%Y-%m-%d-%H.%M.%S')-mpv-verbose.log""
e.g.:
$ mpv --term-status-msg='${path}\naudio-bitrate:${audio-bitrate}' --length=15 --msg-level=all=v 'https://stream.aiir.com/umh0gvsar97tv' 2>&1 | tee -a "/home/${USER}/"$(date '+%Y-%m-%d-%H.%M.%S')-mpv-verbose.log""
- Debug messages (extensive debugging):
$ mpv --term-status-msg='${path}\naudio-bitrate:${audio-bitrate}' --length=15 --msg-level=all=debug 'PasteUrlHere' 2>&1 | tee -a "/home/${USER}/"$(date '+%Y-%m-%d-%H.%M.%S')-mpv-debug.log""
- Trace messages (extensive debugging):
$ mpv --term-status-msg='${path}\naudio-bitrate:${audio-bitrate}' --length=15 --msg-level=all=trace 'PasteUrlHere' 2>&1 | tee -a "/home/${USER}/"$(date '+%Y-%m-%d-%H.%M.%S')-mpv-trace.log""
Examine the log files in [/home/${USER}/]
To automate the testing of a lot of URLs: go to the Create a .sh Bash script with multiple mpv commands using LibreOffice Calc section
When not installed, you can install MPV Media Player (mpv command) by issueing command:
$ sudo apt-get install -y mpv
You can also download the MPV Media Player package from the MPV website
⬥ Create a .sh Bash script with multiple mpv commands using LibreOffice Calc 🔗
When you need to test hundreds of stream URLs, it is useful to automate this task. For this procedure you don't need any scripting experience.
⚠ Requirement: MPV Media Player must be installed. When not installed, issue command:
$ sudo apt-get install -y mpv
or use the appropriate (rpm/dnf/yum/pacman) command for your Linux distro.
⚠ The Geany text editor is highly recommended because it can clearly display the Hex0A [LF] control character and has a reload option, which other text editors lack. Install Geany with:
$ sudo apt-get install -y geany
or use the appropriate (rpm/dnf/yum/pacman) command for your Linux distro.
Perform the following actions:
- start [Application menu\File Manager]
- go to [menu View] or [menu View\Panel 1 View]
- on = Show hidden files
- go to [/home/${USER}/.config/antiXradio/stations/]
- copy the "radios*.txt" to be tested to [/home/${USER}/Documents/] (e.g. radios_en_GB.txt)
- rename the file "radios.txt" to "radios-copy.txt" (e.g. radios_en_GB-copy.txt)
🛈 The folder [/home/${USER}/Documents/] is often shown in the File Manager GUI as "Documents" or "Home\Documents". "${USER}" is your user name. In the Terminal app (look for a black "$_" icon), your user name is shown before the "@" sign.
- start [application menu\applications\programming\Geany] or your preferred text editor
- go to [menu File\Open]
- go to [/home/${USER}/Documents/radios*-copy.txt]
- remove all lines that start with a "#" character
- remove all lines with a fake "https://void.void.void/void" URL
- remove all blank lines
- go to [menu Search\Replace]
- Search for (or "Find what"): ' ("Apostrophe", U+0027)
- Replace with: ′ ("Prime", U+2032)
- click the [> Replace All] button; click the [In Document] button, or:
- click the □ "Replace all at once" checkbox
- click the [Find and Replace] button
🛈 An U+0027 "Apostrophe" character) (straight up single quote) in the radio station name (e.g. "Rock 'n Roll Radio"), will be interpreted by Bash, so it must be replaced by a U+2032 "Prime" character (accent aigu), which Bash won't interpret.
🛈 You can search for characters to copy/paste, in several different ways:
- general: Google for "utf-8 {NameOfCharacter}", e.g. "utf-8 yen sign", OR:
- for characters on your keyboard, and control codes (e.g. [CR] or [LF]): ascii-code.com, OR:
- for characters that are not on your keyboard: compart.com, type in the Search field:
-
{NameOfCharacter}, e.g.bulletto find all sorts of bullets, OR:
-
{NameOfIcon}, e.g.radioto find a coulorful radio icon, OR:
-
U+{HexadecimalCode}, e.g.U+2032for the [′] "Prime" character (Decimal code is′), OR:
-
&#{DecimalCode}, e.g.¥for the [¥] "Yen Sign" character (Hexadecimal code isU+00A5)
- check: the last line with an URL, ends with a [LF] (line feed) control code
- if not: press [Enter] after the last URL
🛈 To show the [LF] control codes in the geany text editor: go to [menu View], and click the □ in front of "Show Line Endings" (enabled)
- go to [File\Save as...]
- save this file as [/home/${USER}/Documents/radios*-only-url-records.txt] (e.g. radios_en_GB-only-url-records.txt)
- start [Application menu\Applications\Office\LibreOffice Calc] (or another spreadsheet app)
- go to [menu Tools]
- off = Automatic spell checking
- off = AutoInput
- go to [menu Tools\AutoCorrect Options...]
- go to tab [Options]
- empty all □ checkboxes
- go to tab [Localized Options]
- empty all □ checkboxes
- click the [OK] button
🛈 This is the procedure for turning off all AutoCorrect and AutoComplete options in LibreOffice Calc. Use Google to find the procedure for another spreadsheet app.
- go to [menu File\Open]
- the "Open" file selector panel is shown
- go to [/home/${USER}/Documents/]
- select the "radios*-only-url-records.txt" file
- click the [Open] button
- the "Text Import" panel is shown
- go to the "Separator options" section:
- off=Tab, off=Semicolon
🛈 In the line [Tab-Comma-Semicolon-Space-Other], only the "Comma" box must be checked, as this is the radios*.txt separator charachter
- leave everything else default
- click the [OK] button
- check: column A = radio station number/name/comments, column B = URLs
🛈 As we are creating a script, we need a mono spaced font, to show every character clearly
- left-click cell (box) A1 (column A, line 1) to select it
- press and hold the [Ctrl] key
- press the [A] key (select all)
- release the [Ctrl] key
- check: all cells in the sheet are selected now (all blue)
- go to [menu Format\Cells...\tab Font]
- go the "Family:" section
- "select "DejaVu Sans Mono" in the menu
- check: "DejaVu Sans Mono" is now shown behind "Family:"
- leave everything else default
- go to [tab Numbers]
- in the "Category" menu, select "Text"
- leave everything else default
- click the [OK] button
🛈 The column width must be decreased to work comfortably
- left-click cell (box) A1 (column A, line 1) to select it
- press and hold the [Ctrl] key
- press the [A] key (select all)
- release the [Ctrl] key
- check: all cells in the sheet are selected now (all blue)
- right-click the header of colum B
- click "Column width"
- width = 4" (10 cm.)
- click the [OK] button
🛈 Some values overlap values in other columns. Word Wrap must be enabled.
- left-click cell (box) A1 (column A, line 1) to select it
- press and hold the [Ctrl] key
- press the [A] key (select all)
- release the [Ctrl] key
- check: all cells in the sheet are selected now (all blue)
- go to [menu Format\Text]
- on = Wrap Text
- left-click the header of colum B to select it
- check: all cells in column B are selected now (column B is blue)
- right-click the header of colum B
- click "Insert Columns Before"
- check: column B = empty, column C = URLs
- left-click the header of colum A to select it
- check: all cells in column A are selected now (column A is blue)
- right-click the header of colum A
- click "Insert Columns Before"
- check: column A = empty, column B = radio station number/name/comments, column C = empty, column D = URLs
- left-click the empty cell A1 (column A, line 1)
- copy/paste the following into cell A1:
echo '----------------
⚠ If the lowercase "e" is now replaced with an uppercase "E", the AutoCorrect options have not been turned off correctly. This will result in a script error.
⚠ Only use single quotes (') in a command, as Libre OfficeCalc will put al lot of redundant double quotes in the output, when using double quotes
- left-click cell (box) A1 (column A, line 1) to select it
- check: the borders of cell A1 are bold and blue (meaning "selected")
- press and hold the [Ctrl] key
- left-click the lower-right corner of cell A1
- check: a "+" sign is shown
- pull the "+" sign downwards, to the last record containing an URL, while holding the [Ctrl] key
- release the mouse button
- release the [Ctrl] key
- check: all cells in column A must contain the same string of characters
- left-click empty cell C1 (column C, line 1) to select it
- copy/paste the following into cell C1:
' 2>&1 | tee -a /home/${USER}/Documents/${LogDate}-mpv-channels-encoding-bitrate.log && mpv --term-status-msg='${path}\naudio-bitrate:${audio-bitrate}' --length=15 '
⚠ Pay attention to the single quote (') at the beginning and at the end. \n = line feed control character [LF].
🛈 When "--length=15" is set, mpv will disconnect from the streaming server after 15 seconds. In most cases this is time enough to test the stream URL. Note, that testing 250 URLs, takes about one hour to finish (((15*250)/60)/60).
🛈 2>&1 | tee -a = standard messages and errors are printed on screen, and in the .log file.
⚠ If [Hyphen-Minus][Hyphen-Minus]length= (2 x U+002D has incorrectly been concatenated into a single long [En Dash]length= (U+2013, the AutoCorrect options have not been turned off correctly. This will result in a script error. Check:
- the UTF-8 Decimal code of any character
- ASCII code table with Decimal and Hexadecimal values
- convert a Decimal value to a Hexadecimal value
- convert text to Hexadecimal codes
- left-click cell (box) C1 (column C, line 1) to select it
- check: the borders of cell C1 are bold and blue (meaning "selected")
- press and hold the [Ctrl] key
- left-click the lower-right corner of cell C1
- check: a "+" sign is shown
- pull the "+" sign downwards, to the last record containing an URL, while holding the [Ctrl] key
- release the mouse button
- release the [Ctrl] key
- check: all cells in column C must contain the same string of characters
- left-click empty cell E1 (column E, line 1)
- copy/paste the following into cell E1:
' 2>&1 | tee -a /home/${USER}/Documents/${LogDate}-mpv-channels-encoding-bitrate.log
⚠ Pay attention to the single quote (') at the beginning
- left-click cell (box) E1 (column E, line 1) to select it
- check: the borders of cell E1 are bold and blue
- press and hold the [Ctrl] key
- left-click the lower-right corner of cell E1
- check: a "+" sign is shown
- pull the "+" sign downwards, to the last record containing an URL, while holding the [Ctrl] key
- release the mouse button
- release the [Ctrl] key
- check: all cells in column E must contain the same string of characters
- go to [menu File\Save as...]
- click the Documents folder [/home/${USER}/Documents/]
- check: the item selector "Save" is shown
- go to the "Name:" field
- type: "radios-{Designation}-mpv-channels-encoding-bitrate-draft" (e.g. "radios_en_GB-mpv-channels-encoding-bitrate-draft")
- go to the pull down menu, in right below corner
- select "Text CSV (.csv)" (comma separated file)
- click the [Save] button
- check: the dialog panel "Confirm File Format" is shown
- click the [Use Text CSV Format] button
- check: the dialog panel "Export Text File" is shown
- check: Character set: Unicode (UTF-8)
- Field delimiter: {empty}
- String delimiter: {empty}
- leave everything else default
- Click the [OK] button
- go to [menu File]
- click "Exit LibreOffice"
- start [application menu\applications\programming\Geany] or your preferred text editor
- go to [menu File\Open]
- go to [/home/${USER}/Documents/radios*-mpv-channels-encoding-bitrate-draft.csv]
- click the [Open] button
- go to [menu Search\Replace]
- Search for (or "Find what"): , (comma)
- Replace with: {nothing} (leave this field empty)
- click the [> Replace All] button; click the [In Document] button, OR:
- click the □ "Replace all at once" checkbox; click the [Find and Replace] button
🛈 This action is for safety: in case the "Export Text File" dialog box was not shown when saving the *draft.csv.
- go to [menu Search\Replace]
- Search for (or "Find what"): ( (left parenthesis/round bracket open UTF-8-Dec40)
- Replace with: - (hypen/minus UTF-8-Dec45/Dec8208)
- click the [> Replace All] button; click the [In Document] button, OR:
- click the □ "Replace all at once" checkbox; click the [Find and Replace] button
🛈 Bash stumbles over brackets in an echo command, e.g. when a radio station comment is enclosed by brackets. Hyphens (minus "-", Dec45/Dec8208) are never interpreted, so they are safe to use. Round brackets are never used in an URL.
- go to [menu Search\Replace]
- Search for (or "Find what"): ) (right parenthesis/round bracket close UTF-8-Dec41)
- Replace with: - (hypen/minus UTF-8-Dec45/Dec8208)
- click the [> Replace All] button; click the [In Document] button, OR:
- click the □ "Replace all at once" checkbox; click the [Find and Replace] button
- add six blank lines at the beginning of the file
- copy/paste the following into these new lines:
#!/bin/bash
LogDate="$(date +%Y-%m-%d-%H.%M.%S)"
LogFile="/home/${USER}/Documents/${LogDate}-mpv-channels-encoding-bitrate.log"
sudo apt-get install -y mpv 2>&1 | tee -a ${LogFile}
echo 'script [radios*-mpv-channels-encoding-bitrate.sh] is running - please wait...'
echo 'logfile: [/home/${USER}/Documents/${LogDate}-mpv-channels-encoding-bitrate.log]'
🛈 The apt-get install command can be redundant, it's been added for safety
🛈 2>&1 | tee -a = standard messages and errors are printed on screen, and in the .log file
- press and hold the [Ctrl] key
- press the [End] key
- release the [Ctrl] key
- check: you're now at the end of the file
- add a blank line
- copy/paste the following into the blank line:
echo "--------------------------------------------------------------------"
echo "Excecution of $SCRIPT has finished."
echo "--------------------------------------------------------------------"
echo "Investigate the logfile:"
echo "/home/${USER}/Documents/${LogDate}-mpv-channels-encoding-bitrate.log"
read -p "Press [Enter] to close this Terminal window" UserInput
if [ "${UserInput}" = "" ]; then
exit
fi
- go to [menu File\Save as...]
- click the Documents folder [/home/${USER}/Documents/]
- the item selector "Save" is shown
- type, in the field after "Name:": radios*-mpv-channels-encoding-bitrate.sh (e.g. "radios_en_GB-mpv-channels-encoding-bitrate.sh")
- click the [Save] button
- go to [File\Quit]
- start [Application menu\File Manager]
- go to [/home/${USER}/Documents/]
- right-click the file "radios*-mpv-channels-encoding-bitrate.sh" (e.g. "radios_en_GB-mpv-channels-encoding-bitrate.sh")
- click the "properties" option
- go to the "permissions" tab
- click the □ checkbox before "allow executing file as a program" (or click all "execute" boxes)
- click the [Close] or [OK] button
- right-click the .sh file
- click [Open\Execute], or:
- click the [Open] option, and click the [Run in Terminal] button
- the Terminal window is shown, with the following message:
script [radios*-mpv-channels-encoding-bitrate.sh] is running - please wait...
logfile: [/home/${USER}/Documents/${LogDate}-mpv-channels-encoding-bitrate.log]
🛈 When your Linux OS doesn't execute the script using the procedure above, do the following:
- left-click the file "radios*-mpv-channels-encoding-bitrate.sh" to select it
- press [Ctrl]+[c] simultaneously
- the full path to this file is now on your clipboard
- go to [application menu\Terminal]
- right-click in the Terminal Window, right after "~$"
- click [Paste]
- press the [Enter] key
- the script should now be executed
🛈 When testing 250 URLs, and "--length=15" is set (disconnect after 15 seconds), the script takes about one hour to finish. Calculation: (((250*15)/60)/60). To check if the script is still running, and to awake your GPU/monitor, press the [ALT] key, so the run will not be disturbed.
- open [/home/${USER}/Documents/{DateTime}-mpv-channels-encoding-bitrate.log] in your text editor, to investigate the results
🛈 In Geany you can press [Ctrl]+[r] to reload the log file, while the script is running. In Text Editors, that don't have a "reload" menu option, you probably have to: ~ press [F5] ~ click [Cancel] ~ click [Reload].
When the run of the script has ended, the following message is shown:
--------------------------------------------------------------------
Excecution of radios*-mpv-channels-encoding-bitrate.sh has finished.
--------------------------------------------------------------------
Investigate the logfile:
/home/${USER}/Documents/${LogDate}-mpv-channels-encoding-bitrate.log
Press [enter] to close this Terminal window"
- The log of an audio stream that gives sound, looks like this:
---------------- Funky Corner Radio UK
(+) Audio --aid=1 (mp3 2ch 44100Hz)
File tags:
icy-title: Maggie Rogers - Shatter
AO: [pipewire] 44100Hz stereo 2ch floatp
https://ais-sa2.cdnstream1.com/2447_192.mp3
audio-bitrate:(unavailable)
https://ais-sa2.cdnstream1.com/2447_192.mp3
audio-bitrate:192 kbps
https://ais-sa2.cdnstream1.com/2447_192.mp3
audio-bitrate:191 kbps
https://ais-sa2.cdnstream1.com/2447_192.mp3
audio-bitrate:192 kbps
This example reads:
- mp3 = encoding (can also be "aac", "flac", or "ogg")
- 2ch = channel count (1ch=mono, 2ch=stereo)
- 44100Hz = sample rate (44.1 kHz)
- 192 kbps = bitrate (Kbit/s)
- icy-title = performer - song title
- ignore the "(unavailable)" message
🛈 In the case of FLAC encoding (and sometimes with AAC) you will see the bitrates go up and down, because it uses VBR (Variable BitRate).
- A failing audio stream URL (silent) gives "audio-bitrate:0 kbps", e.g.:
---------------- Insanity Radio
(+) Audio --aid=1 (flac 2ch 44100Hz)
AO: [pipewire] 44100Hz stereo 2ch s16
https://stream.cor.insanityradio.com/insanity.flac
audio-bitrate:(unavailable)
Invalid audio PTS: 0.522449 -> 589440.731429
https://stream.cor.insanityradio.com/insanity.flac
audio-bitrate:(unavailable)
https://stream.cor.insanityradio.com/insanity.flac
audio-bitrate:0 kbps
https://stream.cor.insanityradio.com/insanity.flac
audio-bitrate:0 kbps
- The log of a video stream URL, the sound of which is also played in MPV Media Player and antiXradio, looks like this:
---------------- Now 70s
Video --vid=1 (h264 640x360 25.000fps) (1021 kbps)
Video --vid=2 (h264 848x480 25.000fps) (1250 kbps)
(+) Video --vid=3 (h264 1280x720 25.000fps) (3802 kbps)
Audio --aid=1 (aac 2ch 48000Hz) (1021 kbps)
Audio --aid=2 (aac 2ch 48000Hz) (1250 kbps)
(+) Audio --aid=3 (aac 2ch 48000Hz) (3802 kbps)
libEGL warning: failed to get driver name for fd -1
libEGL warning: MESA-LOADER: failed to retrieve device information
libEGL warning: failed to get driver name for fd -1
[vo/gpu] High bit depth FBOs unsupported. Enabling dumb mode.
[vo/gpu] Most extended features will be disabled.
AO: [pipewire] 48000Hz stereo 2ch floatp
VO: [gpu] 1280x720 yuv420p
https://lightning-now70s-samsungnz.amagi.tv/playlist.m3u8
audio-bitrate:(unavailable)
https://lightning-now70s-samsungnz.amagi.tv/playlist.m3u8
audio-bitrate:129 kbps
https://lightning-now70s-samsungnz.amagi.tv/playlist.m3u8
audio-bitrate:126 kbps
This example reads:
- h264 = video codec
- aac = audio codec
- ignore the "libEGL warning" and [vo/gpu] messages, they refer to the video stream
- ignore the "(unavailable)" message
- put a "#" character before all failing (silent) URLs, in the [/home/${USER}/.config/antiXradio/stations/radios*.txt] file, that has been tested in this case (e.g. radios_en_GB.txt), to hide (disable) them for the antiXradio GUI
- send a file with all failing (silent) URLs, to the audio stream collectors websites (e.g. od4knb Linux, the antiXradio project, garfnet.org.uk, or radio-browser.info etc.), where you got the URLs from, so they can update their station list as well. A "merge request" (request for change/addition) can be send in clicking the [Email a new merge request to this project] link at the bottom of the project page.
[tip] You can also use this procedure for other tasks/commands, such as distributing an .ISO file to the Ventoy partition of multiple computers, by placing the first IP address in the first cell of a column, and then pull the "+" down without holding the [Ctrl] key.
⬥ Turn a laptop into a sleep sound machine (white noise machine) 🔗
When your surroundings are a bit noisy, you can buy an expensive White Noise Machine or use your smartphone (with a Bluetooth transceiver) and ear buds to sleep tight, or you can use an old laptop, and let an audio player play the MP3 sound file or stream that works best for you.
⚠ Be careful when playing sleep sounds, especially with babies or young children. Start at a low volume level, and increase the volume in small steps. Please read this and this article (ignore the cookie wall, scroll down) before playing sleepsounds.
A sleep sound machine (SSM) can provide relief from insomnia, but can also be used as sound therapy for Tinnitus ("ringing in the ears"). The American Tinnitus Association offers extensive information about tinnitus and provides sound files specifically for people with tinnitus.
For extended information about the different sound "colors" (white, pink, brown, etc.), go to the Sleep Disorders Resource Center website. SDRC also has lots of other usefull sleep related info too.
▹ Sleep Sound Machine devices 🔗
There are several configurations that can be used as a Sleep Sound Machine (SSM):
- MP3 player or smartphone with Bluetooth headband/earbuds
- An SSM-PC with two satellite speakers
- An SSM-PC with Bluetooth headband/earbuds
▹ Using an MP3 player or smartphone with Bluetooth earbuds 🔗
Most MP3/MP4 players are not suited as a sleep sound machine, because they do not have gapless repeat, and the battery only lasts for about 6 hours, when the Bluetooth transceiver is enabled.
My brand new LENCO Xemio-280 MP3 player doesn't have gapless repeat, its Bluetooth 4.2 transceiver is poor (ticking sounds), its battery lasts for about 6 hours (with Bluetooth transceiver enabled), and its transmitting range is about 1 meter. It's OK for playing music using cabled headphones, but it's not suited as an SSM.
Before buying an MP3 player, visit your electronics store and test the device of your choice:
- does it have a "repeat 1" (endlessly repeat one song) function? (most music players do)
- play a 2 minutes sleep sound, e.g. my favorite Heater 1 - #21 from wNoise.org
- do you hear silence (a gap) or a hiccup (click/tick) at the end of the MP3? (means: no gapless repeat)
- do you hear ticking sounds when playing the MP3? (means: poor Bluetooth transceiver)
- does the battery last for at least 8 hours, when the Bluetooth transceiver is enabled? (specs might say 10 hours, but that's only with cabled headphones)
My Fairphone FP5 smartphone with Andoid 15, has an excellent Bluetooth 5.2 LE transceiver (no ticking sounds at all), and works flawlessly in conjunction with Poweramp Music Player for Android, and my Femur Bluetooth headband. The FP5's transmission range is over 10 meters, and its battery life has only decreased by 15% after 12 hours of Bluetooth playback.
A Femur headband can be recognized by the "Enjoying", "Music" or "Perytong" on the control panel. It has a pretty good audio quality, and its battery lasts for at least 12 hours.
▹ An SSM with two satellite speakers 🔗
If you want to use speakers, you need:
- an old laptop (or PC) from the thrift store, with 512 MB RAM, no SSD or HDD required
- Linux Mint or antix Linux flashed onto an USB stick
- a computer speaker-set with satellite speakers, OR:
- a Class D mini amplifier with two satellite speakers
In my experience, a Sleep Sound Machine works best with two small satellite speakers (with only a mid-range and treble unit), one next to each ear. I don't use a sub woofer, but perhaps you do need it to drown out lower frequencies.
▹ An SSM with Bluetooth headband/earbuds 🔗
If you want to use Bluetooth earbuds or a Bluetooth headband, you need:
- an old laptop (or PC) from the thrift store, with 512 MB RAM, no SSD or HDD required
- Linux Mint or antix Linux flashed onto an USB stick
- a Bluetooth USB adapter (transceiver), e.g. an ASUS USB-BT500
- a BlueTooth headband (very comfy for side-sleepers, also for runners), OR:
- sleep headphones, OR:
- sleepbuds
My ASUS USB-BT500 USB BlueTooth adapter (to plug into your PC) works great, in conjunction with Linux Mint Cinnamon Ubuntu Ed. 22.3 amd64, or antiX Linux Runit full 23.2 i386, and my Femur bluetooth headband. BTW, the audio quality of my (cheap) Femur headband, when playing FLAC/MP3 music files, is not as good as my (expensive) JBL over-ear headphones, but it is far better then expected!
▹ Audio players suited for a Sleep Sound Machine 🔗
For a Sleep Sound Machine, it is crucial, that the audio player app provides "gapless repeat". "Gapless repeat" is not the same as "continuous play":
-
Gapless repeat: when one audio file is being played (e.g. a sleep sound) and the "repeat" or "repeat one file" function is enabled, there will be no audible interruption when the audio file is repeated (starts playing again). This function is also named "seamless repeat", and is required for a Sleep Sound Machine.
-
Continuous play: when several audio files are being played (e.g. a playlist or a folder), there will be no audible interruption between the audio (sound) of the present file, and the next file. The next file is immediately (seamless) played, skipping any silence at the beginning of the file. This function is only correctly implemented in an audio player, if it detects the silent part at the beginning and at the end of a file, and skips the silent parts. I don't know of any "normal user" audio player that can do this. I guess you need Mixxx (DJ app), available in Ubuntu Studio or AV Linux MX Edition (AVL-MXe), for that.
Some popular Linux audio players I've tested:
| Application name | Repeat function | Repeat button | Gapless repeat | Equalizer | Website | Download main |
|---|---|---|---|---|---|---|
| Audacious ref1 | yes | yes | yes | yes | Website | Download main |
| Celluloid | yes | yes | yes | no | Website | Download main |
| GNOME Videos | yes | yes | no | no | Website | Download main |
| KDE Elisa | yes | yes | no | no | Website | Download main |
| KDE Haruna | yes | no ref2 | yes | no | Website | Download main |
| MPV Pseudo GUI ref4 | yes | no | no | no | Website | Download main |
| PowerAmp for Android ref7 | yes | yes | yes | yes | Website | Download main |
| Rhythmbox | yes | yes | no | no | Website | Download main |
| SMplayer ref6 | yes | no ref3 | yes | no | Website | Download main |
| XMMS ref5 | yes | yes | no | yes | Website | MX repo |
| Application name | Download Debian | Download Ubuntu | Download Fedora | Dev. site |
|---|---|---|---|---|
| Audacious ref1 | Download Debian | Download Ubuntu | Download Fedora | Github |
| Celluloid | Download Debian | Download Ubuntu | Download Fedora | Github |
| GNOME Videos | Download Debian | Download Ubuntu | Download Fedora | Gitlab |
| KDE Elisa | Download Debian | Download Ubuntu | Download Fedora | Github |
| KDE Haruna | Download Debian | Download Ubuntu | Download Fedora | Github |
| MPV Pseudo GUI ref4 | Download Debian | Download Ubuntu | Download Fedora | Github |
| PowerAmp for Android ref7 | N/A | N/A | N/A | N/A |
| Rhythmbox | Download Debian | Download Ubuntu | Download Fedora | Gitlab |
| SMplayer ref6 | Download Debian | Download Ubuntu | Download Fedora | Github |
| XMMS ref5 | N/A | N/A | N/A | N/A |
| Application name | Package name | i386 | amd64 | arm64 |
|---|---|---|---|---|
| Audacious ref1 | audacious | yes | yes | yes |
| Celluloid | celluloid | yes | yes | yes |
| GNOME Videos | totem | yes | yes | yes |
| KDE Elisa | elisa/elisa-player | yes | yes | yes |
| KDE Haruna | haruna | yes | yes | yes |
| MPV Pseudo GUI ref4 | mpv | yes | yes | yes |
| PowerAmp for Android ref7 | N/A | no | no | yes |
| Rhythmbox | rhythmbox | yes | yes | yes |
| SMplayer ref6 | smplayer | yes | yes | yes |
| XMMS ref5 | xmms | yes | yes | no |
🛈 ※[ref1] Audacious (my absolute favorite!) is also available for Windows and macOS. There's also an AppImage package for Linux amd64. To open the equalizer panel, go to [menu Output\Equalizer...].
⚠ Audacious 4.2-1 for Debian 12 Bookworm i386 (e.g. for LMDE6-32bit), requires a "libcue2_2.2.1-4_i386.deb" package, that's not in the Debian repo, but can be downloaded from Ubuntu Launchpad (look beneath "Built files").
🛈 ※[ref7] Poweramp Music Player for Android is not a free app, it costs about EUR 11, but it is money well spent! It's a great app that has gapless repeat, no adds or privacy violations, and it has an equalizer to adjust any sleep sound MP3 or URL, to gloss over (drown out) the external disturbing sound.
🛈 ※[ref6] SMplayer is also available for Windows and macOS
🛈 ※[ref2] The Haruna audio/video player does not have a repeat button, but it does have a "hidden" repeat function. To enable the repeat function:
- click the [🎚️ Settings] button in the right-above corner
- go to [Custom commands]
- click [Add Command] or [+ Add]
- Command:
set loop-file inf - OSD Message:
Loop file ${loop-file}(with accolades/braces) - Type = keyboard shortcut
- click [Save]
- click [None]
- press a key on your keyboard, e.g. [F12]
- note: you can use any key to toggle "repeat on/repeat off", but you best use a key that's probably not already used by Haruna, like [F12]
- click the [X] button in the right-above corner (close panel)
- press the [F12] key, to enable the repeat function
- check: the message "Loop file inf" is shown, meaning "Repeat enabled"
- note: you can enable/disable (toggle) the repeat function by pressing the [F12] key
🛈 ※[ref3] The SMplayer audio/video player does not have a repeat button, but it does have a "hidden" repeat function. To enable the repeat function:
- go to [menu Options\Preferences]
- click [Advanced] in the left-side panel
- click the [Mplayer/mpv] tab
- go to the "Options:" field
- type:
--loop-file=inf - note: this is actually an MPV Media Player switch: SMplayer has MPV "under the hood"
- click [OK]
- note: to disable the repeat function, you must remove
--loop-file=inffrom the [Mplayer/mpv] tab
🛈 The --loop-file=inf (MPV) switch also works in Windows and macOS.
▹ antiX audio players 🔗
🛈 antiX-26_386-full has three GUI audio players aboard by default:
🛈 Audacious cannot be installed on antiX 32bit
▹ Celluloid 🔗
This is the same audio/video player that is the default player in Linux Mint: not my favorite. See the Audio players suited for a Sleep Sound Machine table above.
▹ MPV Media Player Pseudo GUI 🔗
※[ref4] Pretty bare audio player. You have to drag & drop files from the file manager into the MPV window. The control buttons are shown, when you hoover over the lower part of the window. There's no "Preferences/Settings" or "About" menu option.
This "MPV Pseudo GUI" is started with command:
mpv --player-operation-mode=pseudo-gui
The repeat function is enabled using:
mpv --player-operation-mode=pseudo-gui --loop-file=inf
🛈 Type mpv --list-options to get all available MPV switches, or consult the MPV manual
The repeat function works flawlessly on linuxmint-22.3-cinnamon-64bit, but not on antiX-26_386-full. On this antiX edition, the sound is distorted (hiccups), when the file is repeated.
This makes, that MPV Pseudo GUI can be used as a Sleep Sound Machine on linuxmint-22.3-cinnamon-64bit, but not on antiX-26_386-full.
▹ XMMS Audio player 🔗
※[ref5] This is my favorite audio player for an IA-32/i386 PC. Nice Winamp-alike GUI, simple to use, and it works perfectly for normal music playback. Unfortunately, it's not suited as a Sleep Sound Machine, as it does not have "gapless repeat".
The GUI is very easy to use, but some buttons need explanation:
- [EQ] = show equalizer panel: click the [ON] button in the "Equalizer" panel to enable it
- [PL] = show playlist panel
- [REP] = repeat one (one file in the playlist), or repeat all (multiple files in the playlist)
- check: a green "LED" is shown in the corner of the button when the function is enabled
The GUI needs some minor configuration:
- click the [🍀] (clover) button in the left-below corner (application menu)
- go to [applications\Multimedia\XMMS]
- check: the GUI is very small (suited for a 640 * 480 monitor or so)
- click the [⚌] button in the left-above corner of the GUI
- click [Options]
- click □ "Double size"
- check: the GUI is much larger now
- click the [⚌] button in the left-above corner of the GUI
- go to [Options\Preferences]
- click the [Fonts] tab
- go to the "Playlist" section
- check: the value in this field reads:
-adobe-helvetica-bold-r-*-*-10-*
- change the above value into:
-adobe-helvetica-bold-r-*-*-20-*
- remark: just change
10into20 - remark: this is the font size in the "Playlist" panel
- click the [OK] button
- click the [PL] (playlist) button
- check: a "green LED" in the corner of the button is shown
- check: the "XMMS - Playlist" panel is opened
- click and hold the right-below corner of the panel
- slide the corner to enlarge the "XMMS - Playlist" panel
- click the [⚌] button in the left-above corner of the GUI
- click [Play Directory]
- check: the "Select directory to add:" panel is shown
- click andd hold the right-below corner of the panel
- slide the corner to enlarge the "Select directory to add:" panel
- browse to and select the folder that contains the music files to play
- note: an USB stick (flash drive) can be found in the "/media/" or "/media/{Username}/" folder
- note: your "Music" folder can be found in the "/home/{Username}/" folder
- note: the {Username} when booted from an .iso file is "demo" (with password "demo")
- click the [OK] button
- check: the music files in the chosen folder are shown in the "XMMS - Playlist" panel
- check: the first song in the list is played
- check: the sound is audible on your headset
- enjoy!
▹ Audacious cannot be installed on antiX 32bit 🔗
Audacious can only be installed on antiX-26_x64-full.iso (x86-64/amd64), using an AppImage package for amd64, not on antiX-26_386-full (IA-32/i386). There's no AppImage package available for IA-32/i386. When you issue command:
sudo apt-get install -y audacious
you'll get an error message:
E: Package 'audacious' has no installation candidate
When you look in the Debian package repository, you do find several "audacious" packages available for IA-32/i386. As antiX-26_386-full has a Debian-13-trixie base, I tried:
- package "audacious" 4.4.2-1 for Debian-13-trixie-i386: lots of "Unsatisfied dependencies"
- package "audacious" 4.2-1 for Debian-12-bookworm-i386: also lots of "Unsatisfied dependencies".
I also found two (portable) AppImage packages:
- GNAmp Audacious AppImage: 9 years old, GUI looks dated
- Audacious-appimage: current, but only for x86-64/amd64, not for IA-32/i386
▹ Using EasyEffects graphic equalizer 🔗
A graphic equalizer, integrated in your audio player (Audacious), or as a separate app, can be used to change the sleep sound (white noise), for different reasons:
- make it more pleasant to listen to (e.g. less lower frequencies)
- increase the volume of the frequency, matching an disturbing external sound (e.g. the sound of an excavator or asphalt paver machine)
🛈 The Active Noise Cancelling (ANC) function on your headphones, can only compensate for constant noises (constant frequency), such as an airplane engine or an extractor hood, not the fluctuating low frequencies of heavy machinery.
Most equalizers, that are integrated in an audio player app, are limited. They do not have that many volume faders, which implies that the disturbing frequencies cannot be compensated precisely. My advice: install the advanced, but easy to use graphic equalizer app "EasyEffects". Do the following:
- go to [application menu\administration\Terminal]
- type:
sudo apt-get install -y easyeffects
🛈 antiX already has the EasyEffects app installed
- check: the EasyEffects app is being installed
- start Audacious audio player (or any other audio player)
- start playback of an audio file
- go to [application menu\Sound & Video\EasyEffects]
- check: the EasyEffects GUI is opened
- click the [🎵 Effects] button at the bottom of the window
- click the [Add Effect ▶] button in the left-hand panel
- check: an item selector panel is shown
- scroll down to "Equalizer"
- click the [+] button
- click on any non-clickable location in the window, to close the "Add Effect" item selector panel
🛈 You kan add more effects in the "Add Effect ▶" item selector panel. Consult the EasyEffects manual for additional help, or view this video
- check: the "Equalizer" is added beneath "Players", in the left-hand panel
- check: the (vertical) volume faders are shown in the right-hand panel
- click and hold the right-below corner of the window
- pull the corner of the window to the right to maximize it
- check: not all faders are shown, only the faders for the lower frequencies
- pull the horizontal slider directly beneath the volume faders to the right
- check: the faders for the higher frequencies are shown
- increase the volume of the frequency, matching the disturbing external sound (e.g. the sound of the excavator); OR:
- change the music to your liking
▹ Sleep/meditation/pause count down timer for audacious audio player 🔗
TODO
Also suited for meditation, and for pause music (fades volume gradually down)
TODO Finish app: 2601CP-{version}-sleep-meditation-pause-count-down-timer-for-audacious-audio-player-linux.sh
▹ Kshutdown count down timer 🔗
TODO
Kshutdown will stop audio playback abruptly, and power off your computer Kshutdown runs with user permissions (no sudo password needed)
▹ Methods for Windows, macOS and Linux 🔗
- 3. Stream a sleep sound URL in your internet browser (the least effort, simple, heavyweight, for all laptops with 1.5 GB RAM or more)
- 4. Stream a sleep sound URL in the SMplayer GUI (a little effort, simple, middleweight, for all laptops with 1 GB RAM or more)
- 5. Play a sleep MP3 sound file in the SMplayer GUI (a little effort, simple, middleweight, for all laptops with 1 GB RAM or more)
🛈 When playing a audio stream URL (radio station) in your browser, SMplayer or MPV, there should'nt arise any hiccups (short interruptions in the sound) at all, because a radio station doesn't need to restart at "the end of the track", it's always infinite.
⚠ When playing an MP3 file infinitely, using the --loop-file=inf switch in SMplayer, an MPV command, or the repeat function of an MP3 player (device), it is normal that there's a hiccup at the end of the track (MP3 file), when the player replays the same track. When you hate the hiccup at the end of the track, use the 3. Stream a sleep sound URL in your internet browser or look in the Audio players suited for a Sleep Sound Machine table for a suitable audio player.
▹ Methods only for Linux 🔗
- 6. Command method booted from an Linux ISO file (a bit more effort, lightweight, for all laptops with 256 MB RAM or more)
- 7. Play a .csv radio station playlist from radio-browser.info in antiXradio (some more effort)
- 8. Script method on an installed Linux OS (the most effort, lightweight, for all laptops with 256 MB RAM or more)
▹ Method only for Windows 10\/11 🔗
- 9. Script method for Windows (the most effort, lightweight)
Don't be intimidated by the commands. This HowTo is aimed at beginning Windows/macOS/Linux users and everything is described step by step. Once the command or script method is set up, everything works flawlessly. This HowTo focuses on Linux Mint and antiX Linux, which uses the Debian (APT) package installer, but can easily be adapted to Windows, macOS, and other Linux distributions (maybe with a little help from a computer nerd ;-).
▹ 1. Download MP3 files with sleep sounds 🔗
- create a folder [/home/${USER}/Music/SleepSounds] on a installed Linux OS, OR:
- create a "SleepSounds" folder on an USB stick, when booting from a Linux ISO file, OR:
- create a "SleepSounds" folder in your Windows/macOS "My Music" directory
Download all the files you want from:
- The American Tinnitus Association (60 minutes MP3, free for personal use only)
- The MC2 Method (10 or 60 minutes MP3, free for personal use only)
- wNoise.org (2 or 10 minutes MP3, free for personal use only, click [⭳] button)
- wNoise.org (5 minutes Mp3, public domain: free for any use, also commercial, click [⭳] button)
to your "SleepSounds" folder.
🛈 Google for white noise MP3 when looking for other sleep sounds to download. Download only the smallest files (10 min.), you don't need the larger ones (60 min.) as we are using the infinite repeat function of the media player.
▹ 2. Check your power management settings 🔗
When playing sleep sounds, you want your laptop to use as little power as possible, as it runs for about eight hours (during your sleep, hopefully!). The screen should go black after a short time. Do the following (Linux Mint):
- go to [application menu\preferences\power management]
- Turn off the screen when inactive for = 5 minutes
- Suspend when inactive for = Never
- When the lid is closed = Lock screen
- Power mode = Power Saver
- Dim your laptop screen, by (most often) holding down the [FN] key (blue print), and repeatedly pressing the [arrow-down] key
🛈 When the [arrow-down] key doesn't work, try the [arrow-left] key, or look for the [F5] or [F6] key with a sun or lightbulb, printed in blue.
🛈 When your laptop gets too hot, consider using a laptop cooler. When you experience hiccups when the laptop lid is closed, leave the lid opened, and dim your screen.
▹ 3. Stream a sleep sound URL in your internet browser (Windows, macOS and Linux) 🔗
⚠ When there's no Internet connection in the bedroom, use "4. GUI method using SMplayer".
The easiest and quickest way to get started, is streaming sleep sound URLs (radio stations) in your web browser.
▹ Use the browser on your Windows\/macOS\/Linux laptop 🔗
Go to one of the following websites:
- Radio-browser.info: tags [sleep], [noise] and [ambient] (a lot of stations!)
- wNoise.org (several noises)
- Muso.fm (ambient sounds)
- You.radio (white noise)
- Internet-radio.com (several noises)
and click the "radio station" that's broadcasting your favorite sleep sound.
To stop playback:
- click the speaker or musical note icon in the system tray (next to the date/time display)
- click the [filled square] icon (stop symbol)
🛈 wNoise.org has the same sounds as The MC2 Method (MP3 files).
▹ Use the browser on an old laptop 🔗
You can also use an old laptop, and do the following:
- download the antiX Linux Runit Full 32 bit (IA-32/i386) ISO file (for all 32 bit laptops with 256 MB or more RAM), OR:
- download the antiX Linux Runit Full 64 bit (x86-64/amd64) ISO file (for 64 bit amd64 laptops with 256 MB or more RAM)
🛈 An antiX Linux ISO file allways has MPV Media Player installed.
- flash the ISO file onto an USB stick with Balena Etcher
- boot from USB stick
- start Firefox
- go to a radio station website (see section "Use the browser on your Windows/macOS/Linux laptop")
- click the "radio station" that's broadcasting your favorite sleep sound
🛈 Keep in mind that this is the "heavyweight solution", as a web browser uses more power, CPU an RAM than an audio player like MPV (CLI, lightweight) or SMplayer (GUI, middleweight).
▹ 4. Stream a sleep sound URL in the SMplayer GUI (Windows, macOS and Linux) 🔗
🛈 This method can be used on any computer that has the GUI media player "SMplayer" installed, and has an Internet connection. You can download the SMplayer app for Windows, macOS and several Linux variants. For antix/LMDE 32 bit, you can use a Debian 32bit (i386) .deb package, but try the "apt-get install" command first. When installing SMplayer, MPV is also installed, because SMplayer uses MPV as it's engine.
▹ Install and configure SMplayer 🔗
- install SMplayer by typing the following command in your Terminal:
sudo apt-get install -y smplayer
- or, when using a downloaded .deb package:
sudo apt-get install -y "/home/${USER}/Downloads/smplayer_25.6.0-1+1.1_i386.deb"
🛈 Change the path, to match the real file name of the .deb package
- or: install SMplayer using the downloaded Windows (.exe) or macOS (.dmg) package
- or: use [Application menu\Administration\Software Manager] (Linux Mint Installer GUI)
- go to [Application menu\Sound & Video\SMplayer]
- go to [menu Options\Preferences\Advanced\tab Mplayer/mpv]
- type the following mpv switch in the "Options:" field:
--loop-file=inf
- click [OK]
▹ Copy a sleep sound radio station (stream) URL 🔗
-
go to Radio-browser.info: tags [sleep], [noise] and [ambient]
-
go to the radio station of your choice
- click on the radio station name in the "Name" column
- check: the radio station information page is opened
- go to the "Details" section
- select the URL after "url" using a "rubberband" select
- press the [Ctrl]+[c] keys simultaneously (copy)
- check: the URL of the radio station is now on your clipboard
▹ Play a sleep sound radio station (stream) URL 🔗
- go to [menu Open\URL...]
- paste the URL on your clipboard into the the field after "URL:"
- click [OK]
- check: SMplayer is playing your sleep sound radio station
⚠ SMplayer can play the streams (URLs) from Radio-browser.info, but not the streams from wNoise.org, Muso.fm, You.radio and Internet-radio.com.
To automatically play this URL at startup:
- go to [application menu\preferences\startup applications]
- click the [+] button
- click [Custom command]
- Name = Sleep Sound Machine
- Command = smplayer "https://stream.epic-classical.com/classical-music-for-sleep"
- Comment = SMplayer plays a sleep sound radio station
- Startup delay = 10
- click [Add]
🛈 Change the URL after "Command:" to the URL of your favorite sleep sound radio station, or hard rock station, whatever suits you ;-)
▹ 5. Play a sleep sound MP3 file in the SMplayer GUI (Windows, macOS and Linux) 🔗
🛈 This method can be used on any computer with the GUI media player "SMplayer" installed. You can download the SMplayer app for Windows, macOS and several Linux variants. For antix/LMDE 32 bit, you can use a Debian 32bit (i386) .deb package, but try the "apt-get install" command first. When installing SMplayer, MPV is also installed, because SMplayer uses MPV as it's engine.
-
follow the instructions in section "4. Stream sleep sounds in the SMplayer GUI", sub-section "Install and configure SMplayer"
-
go to [menu Open\File]
- browse to the [/home/${USER}/Music/SleepSounds] folder, OR:
- browse to the "SleepSounds" folder on an USB stick, OR:
- browse to the "SleepSounds" folder in your Windows/macOS home directory
- select your favorite sleep sound MP3 file
- click [Open]
To automatically play this file at startup:
- go to [application menu\preferences\startup applications]
- click the [+] button
- click [Custom command]
- Name = Sleep Sound Machine
- Command = smplayer "/home/${USER}/Music/SleepSounds/01-White-Noise-10min.mp3"
- Comment = SMplayer plays a sleep sound MP3 file
- Startup delay = 10
- click [Add]
🛈 Change the path after "Command:" to the path of your favorite MP3 file.
▹ 6. Command method booted from an Linux ISO file 🔗
This method is your best choice, if you want to skip the time-consuming installation of a Linux OS. You can simply boot the Linux OS of your choice from an USB stick (flash drive), and issue a command to play the MP3 file, that's located on another USB stick.
🛈 You need an Internet connection to issue the full command, as the MPV package is downloaded from a Linux repository. If there's no Internet connection available in the bedroom, you best use an antiX Linux ISO file, because antiX allways has MPV installed.
Do the following:
- Take an USB stick (#1) of at least 4 GB (to flash the Linux ISO file)
- Take an USB stick (#2) of at least 1 GB (for the MP3 files with sleep sounds)
Download the ISO file of the Linux OS, that best matches the specifications of your laptop/PC:
- Linux Mint Ubuntu Ed. x86-64/amd64 (heavyweight, CPU=2-core-2Ghz, RAM=4GB)
- Linux Mint Debian Ed. IA-32/i386 (middleweight, CPU=1-core-2Ghz, RAM=1.5GB)
- antiX Linux Runit Full x86-64/amd64 (lightweight, CPU=1-core-1Ghz, RAM=256MB)
- antiX Linux Runit Full IA-32/i386 (lightweight, CPU=i386/1-core-1Ghz, RAM=256MB)
- Ubuntu Desktop 64 bit arm64/aarch64 (heavyweight, CPU=2-core-2Ghz, RAM=4GB)
🛈 A hard disk or SSD is not required for this method.
- flash the ISO file onto USB stick #1 using Balena Etcher
- create a "SleepSounds" folder on USB stick #2
- put the sleep sound MP3 files in the "SleepSounds" folder
- boot from USB stick #1
- insert USB stick #2 (with the MP3 files)
- open the file manager
- browse to the "SleepSounds" folder on USB stick #2
- right-click in the folder panel
- click [Create new documen\Empty document]
- check: your text editor app is opened
- copy/paste the following command into the empty text file:
sudo apt-get install -y mpv && mpv --loop-file=inf "CopyPasteThePathToTheMp3FileHere"
- go to [menu File\save as...]
- browse to the "SleepSounds" folder containing the MP3 files on USB stick #2
- in the field after "Name:" type: "0_Sleep-sound-command.txt" (0=zero)
🛈 The "0_" makes sure, that the file always appears at the top of the file list
- click the [Save] button
- leave the text editor opened
- go to the file manager
- browse to the "SleepSounds" folder containing the MP3 files on USB stick #2
- left-click the MP3 file with your favorite sleep sound
- press the [Ctrl]+[c] keys simultaneously, to copy the path to the MP3 file to your clipboard
- go to the text editor, with "0_Sleep-sound-command.txt" opened
- double-click "CopyPasteThePathToTheMp3FileHere"
- press the [Ctrl]+[v] keys simultaneously, to to paste the path to the MP3 file, that's on your clipboard
- check: the command in "0_Sleep-sound-command.txt" now looks like this:
sudo apt-get install -y mpv && mpv --loop-file=inf "/media/mint/USB_stick2/SleepSounds/01-White-Noise-10min.mp3"
🛈 This is an example, the path to your MP3 file is different
- click in the text editor's text panel
- press the [Ctrl]+[a] keys simultaneously, to select the full command
- press the [Ctrl]+[c] keys simultaneously, to copy the command to your clipboard
- go to [Menu File\Save]
- go to [application menu\Terminal]
- right-click in the Terminal window
- click [Paste], to paste the command that's on your clipboard
- press [Enter]
- check: your MP3 file is played by MPV, and it's showing something like this:
Reading package lists... Done
{lines removed}
(+) Audio --aid=1 (mp3 2ch 48000Hz)
File tags:
Artist: MC2Method.org
Album: MC2Method.org WhiteNoise
Title: White Noise 01
Track: 1
AO: [pipewire] 48000Hz stereo 2ch floatp
A: 00:01:38 / 00:10:01 (18%)
- press [Ctrl]+[c] simultaneously, to silence MPV
▹ 7. Play a .csv radio station playlist from radio-browser.info in antiXradio 🔗
This method is described in the Play a .csv radio station playlist from radio-browser.info in antiXradio section.
▹ 8. Script method on an installed Linux OS 🔗
The script method is the best way to go, if you want to make your Sleep Sound Machine start automatically at startup, or when there's no Internet connection available in the bedroom. Do the following (Linux Mint Cinnamon):
- install MPV Media Player, by typing the following command in Terminal:
sudo apt-get install -y mpv
🛈 You can also use your Software Manager GUI to install the MPV Media Player
- go to the file manager
- browse to [/home/${USER}/Music/SleepSounds], or to the "SleepSounds" folder on USB stick #2
- left-click the MP3 file with your favorite sleep sound
- press [Ctrl]+[c] simultaneously, to copy the path to the MP3 file to your clipboard
- open your text editor (e.g. Xed or Geany)
- paste the path to the MP3 file into a (temporary) "memo.txt" text file
- leave "memo.txt" opened in the text editor
- create a folder [/home/${USER}/Scripts]
🛈 You can also find the script beneath as "2508NN-{version}-sleep-sound-machine-script-for-linux.sh" in the scripts folder. After downloading the file, rename it into "sleep-sound-machine.sh"
- open your text editor (e.g. Xed or Geany)
- copy/paste the following text into a blank text file:
#! /bin/bash
# Scriptcode=2508NN
# Please enter the full path to your favorite sleep sound MP3 file, or the URL of the radio station:
MySleepSoundFile="CopyPasteThePathToTheMp3FileHere"
# For example:
# MySleepSoundFile="/home/${USER}/Music/SleepSounds/01-White-Noise-10min.mp3"
# or (on an USB stick):
# MySleepSoundFile="/media/mint/USB_stick/SleepSounds/ATA-Air-purifier-60min.mp3"
# or (a radio station):
# MySleepSoundFile="http://uk1.internet-radio.com:8280/listen.pls"
echo "==================================================="
echo " Sleep Sound Machine"
echo "==================================================="
echo ""
echo "The following file is played infinitely:"
echo "$MySleepSoundFile"
echo ""
echo "Press [Ctrl]+[c] to silence the Sleep Sound Machine"
echo ""
echo "==================================================="
echo ""
mpv --loop-file=inf $MySleepSoundFile
- go to [menu File\Save as]
- save this script as [/home/${USER}/Scripts/sleep-sound-machine.sh]
- leave "sleep-sound-machine.sh" opened in the text editor
- click on the "memo.txt" tab in the text editor (or open "memo.txt" when closed)
- press [Ctrl]+[a] simultaneously, to select the full path to your favorite MP3 file
- press [Ctrl]+[c] simultaneously, to copy the path to your clipboard
- delete the "memo.txt" text file
- go to the opened [/home/${USER}/Scripts/sleep-sound-machine.sh] file
- double-click "CopyPasteThePathToTheMp3FileHere"
- press [Ctrl]+[v] simultaneously, to to paste the path to the MP3 file, that's on your clipboard
- check: the line with "MySleepSoundFile=" now looks like this:
MySleepSoundFile="/home/mint/Music/SleepSounds/01-White-Noise-10min.mp3"
or:
MySleepSoundFile="/media/mint/USB_stick2/SleepSounds/01-White-Noise-10min.mp3"
🛈 These are examples, the path to your MP3 file is different.
- make the script executable, by typing the following command in Terminal:
sudo chmod 770 /home/${USER}/Scripts/sleep-sound-machine.sh
🛈 In Linux Mint, this can also be achieved by using the option [sleep-sound-machine.sh\right-click\Properties\Permissions\Execute], on = "Allow executing file as a program". This panel may look different in another Linux OS. When you see three "execute" □ checkboxes, only check "owner" and "group".
Put "Make Link" in the context menu of your File Manager:
- go to [Application menu\accessories\Files]
- go to [Menu Edit\preferences\Context Menus\Selection]
- on = Make Link
Create a shortcut on your desktop:
- right-click [/home/${USER}/Scripts/sleep-sound-machine.sh]
- click "Make Link"
- move [/home/${USER}/Scripts/Link to sleep-sound-machine.sh] to [/home/${USER}/Desktop]
- right-click the shortcut, click "Rename"
- rename the shortcut into "Sleep Sound Machine"
- right-click the shortcut, click "Properties"
- click the icon
- type "sleep"
- click the "gnome-session-sleep" icon
- click [Select], [Close]
Make the script auto-start:
- go to [application menu\preferences\startup applications]
- click the [+] button
- click [Custom command]
- Name = Sleep Sound Machine
- Command = bash /home/${USER}/Scripts/sleep-sound-machine.sh
- Comment = Start the Sleep Sound Machine script
- Startup delay = 10
- click [Add]
▹ 9. Script method for Windows 🔗
- start your Internet browser
- go to the shinchiro Github site to download Ffmpeg and MPV Media Player
🛈 You can find alternative download sites here
- go to the version that has the [latest] tag
- click [▶ Assets]
- download the "ffmpeg...7z" package, that matches your CPU architecture
🛈 The Ffmpeg package is required by MPV Media Player. "aarch64" = arm64, "i686" = 32bit/IA-32/i386, "x86-64" = amd64/x86-64-v1 & x86-64-v2, "x86-64-v3" = amd64/x86-64-v3 & x86-64-v4. When you're not sure what CPU is in your laptop, it's most likely "x86-64-v3" (amd64) or "aarch64" (arm64). You can also read the instructions in the Determine your CPU architecture (32\/64 bits) section.
- download the "mpv...7z" package, that matches your CPU architecture
⚠ Do not download a "mpv-dev-...7z", or "mpv...gcc...7z" file
- go to the 7-Zip download page
🛈 A ".7z" file is an archive container ("zip") created by the free 7-Zip app. I use 7-Zip in this example, but you can also try WinZip (paid, but has a trial version), or your Windows archive manager to extract ("unzip") the .7z archives.
- download the .exe package that matches your CPU architecture.
🛈 When you're not sure what CPU is in your laptop, it's most likely a "64-bit x64" (x86-64/amd64) or "64-bit arm64" (aarch64) CPU. You can also read the instructions in the Determine your CPU architecture (32\/64 bits) section.
- go to [Start menu\all programs\accessoiries\Windows Explorer]
- go to [Desktop\My Documents\Downloads] or [This computer\C:\Documents and Settings\YourUserName\My Documents\Downloads]
- double-click the "7z{version}-{CpuArchitecture}.exe" file (e.g. "7z2501-x64.exe")
- check: the "7-Zip {version} Setup" panel is opened
- click [Install], [Close]
- go to [Start menu\all programs\accessoiries\Windows Explorer]
- go to [Desktop\My Documents\Downloads] or [This computer\C:\Documents and Settings\YourUserName\My Documents\Downloads]
- right-click the "ffmpeg...7z" file (e.g. "ffmpeg-x86-64-git-6711c6a89.7z")
- select [7-Zip]
- click [extract to "ffmpeg...\"]
- open the "ffmpeg...\" folder
- check: ffmpeg.exe is extracted here
- double-click "ffmpeg.exe"
- follow the on-screen instructions to install Ffmpeg
- right-click the "mpv...7z" file (e.g. "mpv-x86_64-20250811-git-01b7edc.7z")
- select [7-Zip]
- click [extract to "mpv...\"]
- open the "mpv...\" folder
- check: mpv.exe is extracted here
- double-click "mpv.exe"
- follow the on-screen instructions to install MPV Media Player
- go to [Start menu\all programs\accessoiries\Windows Explorer]
- go to [Desktop\My Documents\Downloads] or [This computer\C:\Documents and Settings\YourUserName\My Documents]
- right-click in the right panel
- click [New\Folder]
- type: "Scripts" [Enter]
- check: the folder [C:\Documents and Settings\YourUserName\My Documents\Scripts] is created
🛈 You can also find the script beneath as "2508NP-{version}-sleep-sound-machine-script-for-windows.cmd" in the scripts folder. After downloading the file, rename it into "sleep-sound-machine.cmd"
- go to [start menu\all programs\accessoiries\Notepad]
- copy/paste the following code into the blank page:
:: ScriptCode="2508NP"
:: Please enter the full path to your favorite sleep sound MP3 file, or the URL of the radio station:
SET MySleepSoundFile="CopyPasteThePathToTheMp3FileHere"
:: For example:
:: SET MySleepSoundFile="C:\Documents and Settings\YourUserName\My Documents\My Music\SleepSounds\01-White-Noise-10min.mp3"
:: or (on an USB stick):
:: SET MySleepSoundFile="E:\SleepSounds\01-White-Noise-10min.mp3"
:: or (a stream or radio station):
:: SET MySleepSoundFile="http://uk1.internet-radio.com:8280/listen.pls"
echo ===================================================
echo Sleep Sound Machine
echo ===================================================
echo
echo The following file is played infinitely:
echo %MySleepSoundFile%
echo
echo Press [Ctrl]+[c] to silence the Sleep Sound Machine
echo
echo ===================================================
echo
mpv --loop-file=inf %MySleepSoundFile%
- go to [menu File\Save as]
- browse to [C:\Documents and Settings\YourUserName\My Documents\Scripts]
- File name = sleep-sound-machine.cmd
- Save as type = All files
- Encoding = UTF-8
- Click the [Save] button
- go to [Start menu\all programs\accessoiries\Windows Explorer]
- go to [C:\Documents and Settings\YourUserName\My Documents\Scripts]
- check: the script "sleep-sound-machine.cmd" is present, without ".txt" at the end
- right-click "sleep-sound-machine.cmd"
- click [Create shortcut]
- move the "Shortcut to sleep-sound-machine.cmd" file to [C:\Documents and Settings\All Users\Desktop]
- rename "Shortcut to sleep-sound-machine.cmd" into "Sleep Sound Machine"
- right-click the "Sleep Sound Machine" shortcut
- click [Properties], [Another icon], [Browse]
- go to [C:\Windows\Icons] (or anywhere else)
- select the 32x32 pixels icon of your choice
🛈 You can also download a nice crescent icon (.png) from Flaticon, and change/convert it using IloveIMG.
- go to [Start menu\all programs\accessoiries\Windows Explorer]
- cut & paste all the sleep sound MP3 files from [C:\Documents and Settings\YourUserName\My Documents\Downloads] to [C:\Documents and Settings\YourUserName\My Documents\My Music\Sleepsounds]
- go to [C:\Documents and Settings\YourUserName\My Documents\My Music\Sleepsounds]
- right-click on your favorite sleep sound MP3 file, e.g. "01-White-Noise-10min.mp3"
- go to [tab general\Location]
- select the full path behind "Location:" using a "rubberband select", or:
- click at the beginning of the path (right before before e.g. "C:\..."), press [Shift]+[End]
- right-click the selection
- click [Copy], [Cancel]
🛈 The path to your favorite sleep sound MP3 file is now on your clipboard
- go to [Start menu\all programs\accessoiries\Windows Explorer]
- go to [C:\Documents and Settings\YourUserName\My Documents\Scripts]
- right-click "sleep-sound-machine.cmd"
- select [Edit] or [Edit with Notepad]
- check: Notepad is showing the contents of the script file
🛈 This way you can always edit the script, to change the path to your favorite sleep sound MP3
- you'll find the following lines:
:: Please enter the full path to your favorite sleep sound file:
SET MySleepSoundFile="CopyPasteThePathToTheMp3FileHere"
- double-click "CopyPasteThePathToTheMp3FileHere"
- press [Ctrl]+[v] simultaneously, to to paste the path to the MP3 file, that's on your clipboard
- check: the line with "SET MySleepSoundFile=" now looks like this:
SET MySleepSoundFile="C:\Documents and Settings\YourUserName\My Documents\My Music\SleepSounds\01-White-Noise-10min.mp3"
or (on an USB stick):
SET MySleepSoundFile="E:\SleepSounds\01-White-Noise-10min.mp3"
🛈 These are examples, the path to your MP3 file is different.
- go to [menu File\Save]
- go to [menu File\Quit]
- double-click the "Sleep Sound Machine" shortcut on your desktop
- check: you'll see something like this:
===================================================
Sleep Sound Machine
===================================================
The following file is played infinitely:
C:\Documents and Settings\YourUserName\My Documents\My Music\SleepSounds\01-White-Noise-10min.mp3
Press [Ctrl]+[c] to silence the Sleep Sound Machine
===================================================
(+) Audio --aid=1 (mp3 2ch 48000Hz)
File tags:
Artist: MC2Method.org
Album: MC2Method.org WhiteNoise
Title: White Noise 01
Track: 1
AO: [pipewire] 48000Hz stereo 2ch floatp
A: 00:01:38 / 00:10:01 (18%)
- check: your sleep sound should now be played
If you want to automatically start the Sleep Sound Machine when you boot your laptop:
- go to [Start menu\all programs\accessoiries\Windows Explorer]
- go to [C:\Documents and Settings\All Users\Desktop]
- copy shortcut [C:\Documents and Settings\All Users\Desktop\Sleep Sound Machine] to [C:\Documents and Settings\YourUserName\Start menu\Programs\Startup]
⬥ Using Bluetooth on Linux Mint, Ubuntu, Debian and antiX 🔗
▹ Tested Linux distributions 🔗
This howto covers the following Linux distributions (distros):
- Linux Mint Ubuntu Based with Cinnamon Desktop for x86-64/amd64
- Linux Mint Debian Edition (LMDE) with Cinnamon Desktop for IA-32/i386
- Debian with Cinnamon desktop for x86-64/amd64
- Debian with KDE Plasma desktop for x86-64/amd64
- Debian with GNOME desktop for x86-64/amd64
- Ubuntu with Cinnamon desktop for x86-64/amd64
- Ubuntu with KDE Plasma desktop (Kubuntu) for x86-64/amd64
- Ubuntu with GNOME desktop (Workstation) for x86-64/amd64
- antiX with IceWM desktop for IA-32/i486
▹ ASUS USB-BT500 Bluetooth adapter 🔗
This howto is tested using a ASUS USB-BT500 Bluetooth USB adapter (transceiver), with a Realtek RTL8761B Bluetooth chip. I chose this adapter, because it should work with all modern Linux distributions, most often without the need to install a driver. The driver is incorporated in the "btusb" driver, in Linux IA-32 kernel 4.16 (2018) and up, and Linux amd64 kernel 5.8 (2020) and up. For older kernels, you can use the driver on the ASUS website. ASUS usually offers excellent Linux support.
🛈 There's no such thing as a "Bluetooth transmitter" (in, or connected to the host PC) and a "Bluetooth receiver" (in your headset). When you press the [volume up/down] or [previous/next] button on your headset, it transmits a command signal, that's received by the Bluetooth adapter in your PC (or MP3 player etc.). There are also Bluetooth microphones, by the way.
🛈 Use an USB 2.0 extension cable, about 2 meters in length, with a female and a male USB-A connector, to connect the BlueTooth adapter to your PC. It will improve the quality of the Bluetooth signal if placed optimally. Using such a cable, the reception in my entire three-storey house, with reinforced concrete floors, is excellent.
▹ Determine your Linux kernel version 🔗
The Linux "kernel" is the core of the operating system. The kernel contains the device drivers (e.g. for your Bluetooth adapter). The latest kernel contains drivers for current hardware. You can determine the kernel version of your Linux distro as follows:
- go to [application menu\administration\Terminal]
- install Inxi system indexer :
sudo apt-get install -y inxi
- note: most Linux distros already have inxi installed by default
- type:
inxi -v8
- note:
-v8means: index everything - press [Enter]
- go to the "System:\Host:" section on top
- the output looks like this:
System:
Host: mint Kernel: 6.14.0-37-generic arch: x86_64 bits: 64 compiler: gcc
v: 13.3.0 clocksource: tsc avail: hpet,acpi_pm
parameters: BOOT_IMAGE=/casper/vmlinuz boot=casper
initrd=/casper/initrd.lz uuid=6e72f523-dc09-4880-8910-93ffa64401c5
username=mint hostname=mint quiet splash --
- check:
6.14.0-37is the kernel version
🛈 In this case, you can also use the command inxi -S, but it does not show the entire "System" section: the subsections "Desktop" and "Distro" are not shown. Be lazy: just remember -v8.
▹ Linux Mint 🔗
🛈 There are two different Linux Mint main editions:
- Ubuntu based: a "linuxmint-{version}-{desktop}-64bit.iso" file, without a base designation, is always Ubuntu based. The Ubuntu based edition, is available with a Cinnamon, MATE or XFCE desktop. As of v20, only available for the x86-64/amd64 architecture. v19.3 was the last version with a IA-32/i386 edition, not available any more.
- Debian based: a "lmde-{version}-cinnamon-32bit.iso" or "lmde-{version}-cinnamon-64bit.iso" file is Debian based. Linux Mint Debian Edition (LMDE) is only available with a Cinnamon desktop. As of LMDE7, LMDE is only available for the x86-64/amd64 architecture. LMDE6 was the last version with a IA-32/i386 edition, and the IA-32/i386 edition is still available.
Note, that Linux Mint Ubuntu Based (a 3rd level distro) is the base OS for Ufficio Zero Linux (UZL, a 4th level distro ...).
▹ Linux Mint Ubuntu Based with Cinnamon Desktop for x86-64/amd64 🔗
🛈 This procedure is tested on linuxmint-22.3-cinnamon-64bit.iso, booted from the original .iso file, using a Ventoy 1.1.10 bootloader, on a x86-64-v1 (amd64) computer.
- power off your computer (shutdown)
- insert the USB Bluetooth adapter (transceiver) into the computer
- power on your computer
- boot Linux Mint Ubuntu Based with Cinnamon Desktop for x86-64/amd64
- go to [application menu\preferences\Bluetooth Manager]
- check: the "Bluetooth Devices" GUI is opened (blueman-manager binary)
- power on your headphones
- press the [Bluetooth] button on your headphones (enable pairing mode)
- check: most often a blue LED is blinking on your headphones (meaning "transmitting pairing code")
- go to the "Bluetooth devices" GUI (Bluetooth Manager)
- click the [Search] button
- ignore any detected device with an "Unknown" or "Miscellaneous" designation
- check: the brand and model of your headphones is shown, with designation "headset", and a "headset" icon.
- check: the MAC address (format 'A0:B1:C2:D3:E4:F5') of your Bluetooth adapter is shown
- right-click the device with designation "headset"
- click [Connect]
- check: the device with designation "headset" has a [wireless] icon (meaning "connected and paired")
- note: the Bluetooth connection with your headphones is now available to your favorite Audio Player app
- play a beautiful song in your favorite Audio Player app
- check: the sound is audible in your Bluetooth headphones
🖒 Note, that everything works out-of-the-box, without any hazzle: no command sequence (see below) needed. Linux Mint Ubuntu Based Cinnamon is great!
▹ Linux Mint Debian Edition (LMDE) with Cinnamon Desktop for IA-32/i386 🔗
🛈 This procedure is tested on lmde-6-cinnamon-32bit.iso, booted from the original .iso file, using a Ventoy 1.1.10 bootloader, on an IA-32/i686 computer.
- power off your computer (shutdown)
- insert the USB Bluetooth adapter (transceiver) into the computer
- power on your computer
- boot Linux Mint Debian Edition Cinnamon 32bit (IA-32)
The "Bluetooth Manager" shortcut is hidden in the LM application menu. Make it visible by doing the following:
- right-click the [LM] button (application menu) in the task bar
- click "Edit menu"
- go to the left panel
- click [Preferences]
- click the □ checkbox in front of "Bluetooth Manager"
- click the [Close] button
- go to [LM menu\Preferences\Bluetooth Manager]
- check: the "Bluetooth Devices" GUI is shown (the blueman-manager GUI)
- check: the [Shall Bluetooth get enabled automatically?] message panel is shown
- click the [Yes] button
- power on your headphones
- press the [Bluetooth] button on your headphones (enable pairing mode)
- check: most often a blue LED is blinking on your headphones (meaning "transmitting pairing code")
- go to the "Bluetooth devices" GUI (Bluetooth Manager)
- click the [Search] button
- ignore any detected device with an "Unknown" or "Miscellaneous" designation
- check: the brand and model of your headphones is shown, with designation "headset"
- check: the MAC address (format 'A0:B1:C2:D3:E4:F5') of your Bluetooth adapter is shown
- right-click the device with designation "headset"
- check: the device with designation "headset" has a [key] icon (meaning "paired")
- note: the Bluetooth connection with your headphones is now available to your favorite Audio Player app
- play a music file in your favorite Audio Player app
- check: the sound is audible in your Bluetooth headphones
⚠ The sound isn't perfect: there are some stuttering sounds. The sound settings still need some fine-tuning. Disable PipeWire, to get plain ALSA playback?
▹ Debian 🔗
Debian has editions with several dekstop environments, and is available for a lot of CPU architectures. This howto covers the following editions:
- Debian with Cinnamon Desktop for x86-64/amd64
- Debian with KDE Plasma Desktop for x86-64/amd64
- Debian with GNOME Desktop for x86-64/amd64
Note, that Debian is the base OS for Ubuntu Workstation.
▹ Debian with Cinnamon Desktop for x86-64/amd64 🔗
🛈 This procedure is tested on debian-live-13.3.0-amd64-cinnamon.iso, booted from the original .iso file, using a Ventoy 1.1.10 bootloader, logged into the "Cinnamon on Wayland" environment, on a x86-64-v1 (amd64) computer.
- power off your computer (shutdown)
- insert the USB Bluetooth adapter (transceiver) into the computer
- power on your computer
- boot Debian with a Cinnamon desktop
- copy the following command sequence to your clipboard:
echo "----------------------------" && \
echo "2601CK-04 Bluetooth Manager (blueman-manager) command sequence for Debian Cinnamon amd64" && \
echo "If the brand, model and MAC-address of your Bluetooth adapter" && \
echo "(e.g. 'ASUS USB-BT500 - A0:B1:C2:D3:E4:F5') are listed below," && \
echo "then the Bluetooth adapter (transceiver) is correctly installed" && \
echo "----------------------------" && \
lsusb && \
bluetoothctl list && \
echo "----------------------------" && \
echo "- Removing conflicting 'pulseaudio-module-bluetooth' package ..." && \
sudo apt-get purge -y pulseaudio-module-bluetooth && \
echo "- Installing required 'libspa-0.2-bluetooth' package ..." && \
sudo apt-get install -y libspa-0.2-bluetooth && \
echo "- Installing required 'bluez' package ..." && \
sudo apt-get install -y bluez && \
echo "- Installing required 'blueman' package ..." && \
sudo apt-get install -y blueman && \
echo "- Restarting 'bluetooth' service ..." && \
sudo systemctl restart bluetooth && \
systemctl status bluetooth | grep -i "Active:" && \
echo "- Restarting 'pipewire' service ..." && \
systemctl --user restart pipewire && \
systemctl --user status pipewire | grep -i "Active:" && \
blueman-manager
- go to [application menu\administration\Terminal]
- right-click in the Terminal window
- click "Paste"
- press [Enter]
- check: the command sequence is issued
- check: the "Bluetooth Devices" GUI (Bluetooth Manager/blueman-manager) is opened
- go to the slide button with a [>ᛒ] Bluetooth symbol, in the 'Search - Send file' bar
- if not blue: click the button (it turns blue, meaning "Bluetooth service is enabled")
- power on your Bluetooth headset
- press the [>ᛒ] Bluetooth button on your headset
- check: most often a blue LED is blinking on your headphones (meaning "transmitting pairing code")
- press the [Search] button in the 'Bluetooth Devices' GUI (Bluetooth Manager)
- ignore detected devices with a 'Miscellaneous' or 'Unknown' designation
- right-click the detected device with a 'Headset' icon and designation
- click the 'Connect' option
- the 'Pairing request for brand-model' message panel is shown
- click the [Confirm] button
- you can now play a music file in your Audio Player app, using your Bluetooth headphones
🛈 On Debian Cinnamon the "Rhythmbox" audio player is available by default. My advice: install the excellent Audacious audio player using sudo apt-get install -y audacious. It provides "gapless repeat" (needed for a Sleep Sound Machine), and all current audio codecs.
🛈 You can manually start the "Bluetooth Devices" (blueman-manager) GUI, by using one of these methods:
- click the [>ᛒ] Bluetooth icon in the taskbar, OR:
- go to [application menu\Preferences\Bluetooth Manager], OR:
- type "blueman-manager" in Terminal, press [Enter]
▹ Debian with KDE Plasma Desktop for x86-64/amd64 🔗
🛈 This procedure is tested on debian-live-13.3.0-amd64-kde.iso, booted from the original .iso file, using a Ventoy 1.1.10 bootloader, on a x86-64-v1 (amd64) computer.
- power off your computer (shutdown)
- insert the USB Bluetooth adapter (transceiver) into the computer
- power on your computer
- boot Debian with KDE Plasma Desktop
- go to the system tray
- click the [>ᛒ] Bluetooth button
- check: the "Bluetooth" window is opened
- if not blue: click the [>ᛒ Enable Bluetooth] button (it turns blue, meaning "Bluetooth service is enabled")
- power on your headset
- press the [>ᛒ] Bluetooth button on your headset
- check: most often a blue LED is blinking on your headphones (meaning "transmitting pairing code")
- press the [+ Pair Device ...] button in the 'Bluetooth' GUI
- ignore detected devices with a 'Miscellaneous' or 'Unknown' designation
- click the detected device with a 'Headset' icon, and the brand & model of your headset
- click [Next]
- check: the "Add Bluetooth device" panel is shown with a 6 digit pairing code
- click the [Matches] button
- check: the "Bluetooth" window is closed
- go to the system tray
- click the [>ᛒ] Bluetooth button
- check: the "Bluetooth" window is opened
- check: the brand & model of your headset is shown
- check: the designation "Connected - Audio device - X% Battery" is shown
- you can now play a music file in your favorite audio player app, using your Bluetooth headphones
🛈 On Debian KDE (with KDE Plasma desktop), the "JuK" audio player is available by default, that looks like Rhythmbox. My advice: install the excellent Audacious audio player using sudo apt-get install -y audacious. It provides "gapless repeat" (needed for a Sleep Sound Machine), and it contains all current audio codecs.
▹ Debian with GNOME Desktop for x86-64/amd64 🔗
🛈 This procedure is tested on debian-live-13.3.0-amd64-gnome.iso, booted from the original .iso file, using a Ventoy 1.1.10 bootloader, on a x86-64-v1 (amd64) computer.
- power off your computer (shutdown)
- insert the USB Bluetooth adapter (transceiver) into the computer
- power on your computer
- boot Debian with GNOME desktop
- copy the following command sequence to your clipboard:
echo "----------------------------" && \
echo "2601CT-03 Bluetooth Manager (blueman-manager) command sequence for Debian GNOME amd64" && \
echo "If the brand, model and MAC-address of your Bluetooth adapter" && \
echo "(e.g. 'ASUS USB-BT500 - A0:B1:C2:D3:E4:F5') are listed below," && \
echo "then the Bluetooth adapter (transceiver) is correctly installed" && \
echo "----------------------------" && \
lsusb && \
bluetoothctl list && \
echo "----------------------------" && \
echo "- Removing conflicting 'pulseaudio-module-bluetooth' package ..." && \
sudo apt-get purge -y pulseaudio-module-bluetooth && \
echo "- Installing required 'libspa-0.2-bluetooth' package ..." && \
sudo apt-get install -y libspa-0.2-bluetooth && \
echo "- Installing required 'bluez' package ..." && \
sudo apt-get install -y bluez && \
echo "- Installing required 'blueman' package ..." && \
sudo apt-get install -y blueman && \
echo "- Installing required 'menulibre' package ..." && \
sudo apt-get install -y menulibre && \
echo "- Restarting 'bluetooth' service ..." && \
sudo systemctl restart bluetooth && \
systemctl status bluetooth | grep -i "Active:" && \
echo "- Restarting 'pipewire' service ..." && \
systemctl --user restart pipewire && \
systemctl --user status pipewire | grep -i "Active:" && \
blueman-manager
- click the [▬▬ •] button in the left-above corner (show taskbar)
- click the [⠇⠇⠇] button
- click the [>] button
- click the [Terminal] button
- right-click in the Terminal window
- click "Paste"
- press [Enter]
- check: the command sequence is issued
- check: the "Bluetooth Devices" GUI (Bluetooth Manager/blueman-manager) is opened
- go to the slide button with a [>ᛒ] Bluetooth symbol, in the 'Search - Send file' bar
- if not blue: click the button (it turns blue, meaning "Bluetooth service is enabled")
- power on your headset
- press the [>ᛒ] Bluetooth button on your headset
- check: most often a blue LED is blinking on your headphones (meaning "transmitting pairing code")
- press the [Search] button in the 'Bluetooth Devices' GUI (Bluetooth Manager)
- ignore detected devices with a 'Miscellaneous' or 'Unknown' designation
- right-click the detected device with a 'Headset' icon and designation
- click the 'Connect' option
- the 'Pairing request for brand/model' message panel is shown
- click the [Confirm] button
- you can now play a music file in your Audio Player app, using your Bluetooth headphones
🛈 On Debian GNOME, only the "GNOME Videos" (formerly "Totem") audio/video player is available by default, actually not the nicest app for playing music. My advice: install the excellent Audacious audio player using sudo apt-get install -y audacious. It provides "gapless repeat" (needed for a Sleep Sound Machine), and all current audio codecs.
▹ Ubuntu 🔗
Ubuntu has a lot of different flavors. This howto covers:
- Ubuntu with Cinnamon Desktop for x86-64/amd64
- Ubuntu with KDE Plasma Desktop (Kubuntu) for x86-64/amd64
- Ubuntu with GNOME Desktop (Workstation) for x86-64/amd64
Ubuntu with GNOME Desktop (Workstation), is the main edition: it's the "base OS" for the other "flavors". Note that Debian is the base OS for Ubuntu, and Ubuntu is the base OS for Linux Mint.
▹ Ubuntu with Cinnamon Desktop for x86-64/amd64 🔗
🛈 This procedure is tested on ubuntucinnamon-25.10-desktop-amd64.iso, booted from the original .iso file, using a Ventoy 1.1.10 bootloader, on a x86-64-v1 (amd64) computer.
- power off your computer (shutdown)
- insert the USB Bluetooth adapter (transceiver) into the computer
- power on your computer
- boot Ubuntu with a Cinnamon desktop
- go to [application menu\Preferences\Bluetooth Manager]
- power on your headphones
- press the [Bluetooth] button on your headphones (enable pairing mode)
- check: most often a blue LED is blinking on your headphones (meaning "transmitting pairing code")
- go to the "Bluetooth devices" GUI (Bluetooth Manager)
- click the [Search] button
- ignore any detected device with an "Unknown" or "Miscellaneous" designation
- check: the brand and model of your headphones is shown, with designation "headset", and a "headset" icon.
- check: the MAC address (format 'A0:B1:C2:D3:E4:F5') of your Bluetooth adapter is shown
- right-click the device with designation "headset"
- click [Connect]
- check: the device with designation "headset" has a [Wireless] icon (meaning "connected and paired")
- note: the Bluetooth connection with your headphones is now available to your favorite Audio Player app
- play a beautiful song in your favorite Audio Player app
- check: the sound is audible in your Bluetooth headphones
🛈 The Rhythmbox and Videos audio players are available
▹ Ubuntu with KDE Plasma Desktop (Kubuntu) for x86-64/amd64 🔗
🛈 This procedure is tested on kubuntu-25.10-desktop-amd64.iso, booted from the original .iso file, using a Ventoy 1.1.10 bootloader, on a x86-64-v1 (amd64) computer.
- power off your computer (shutdown)
- insert the USB Bluetooth adapter (transceiver) into the computer
- power on your computer
- boot Ubuntu with KDE Plasma Desktop (Kubuntu)
- click the [Try Kubuntu] button
- click the [Skip] button
- check: the desktop is shown
- go to the system tray
- click the [>ᛒ] Bluetooth button
- check: the "Bluetooth" panel is opened
- if not blue: click the [>ᛒ Enable Bluetooth] button (it turns blue, meaning "Bluetooth service is enabled")
- check: the "No devices paired" message is shown
- power on your headset
- press the [>ᛒ] Bluetooth button on your headset
- check: most often a blue LED is blinking on your headphones (meaning "transmitting pairing code")
- press the [+ Pair Device ...] button in the 'Bluetooth' GUI
- ignore detected devices with a 'Miscellaneous' or 'Unknown' designation
- click the detected device with a 'Headset' icon, and the brand & model of your headset
- click [Next]
- check: the "Add Bluetooth device" panel is shown with a 6 digit pairing code
- click the [Matches] button
- check: the "Bluetooth" window is closed
- go to the system tray
- click the [>ᛒ] Bluetooth button
- check: the "Bluetooth" window is opened
- check: the brand & model of your headset is shown
- check: the designation "Connected - Audio device - X% Battery" is shown
- check: the connection with your headset is OK
- go to the system tray
- check: the [Speaker] icon has a diagonal red line (sound is disabled)
- click the [Speaker] icon
- slide the "Headset" slider to the right, to say 50%
- you can now play a music file in your favorite audio player app, using your Bluetooth headphones
- play some distortion in your favorite Audio Player app
- check: the sound is audible in your Bluetooth headphones
🛈 The Haruna and Elisa audio players are available
▹ Ubuntu with GNOME Desktop (Workstation) for x86-64/amd64 🔗
🛈 This procedure is tested on ubuntu-25.10-desktop-amd64.iso (Ubuntu Workstation), booted from the original .iso file, using a Ventoy 1.1.10 bootloader, on a x86-64-v1 (amd64) computer.
- power off your computer (shutdown)
- insert the USB Bluetooth adapter (transceiver) into the computer
- power on your computer
- boot Ubuntu Workstation with GNOME desktop
- copy the following command sequence to your clipboard:
echo "----------------------------" && \
echo "2601CX-03 Bluetooth Manager (blueman-manager) command sequence for Ubuntu GNOME amd64" && \
echo "If the brand, model and MAC-address of your Bluetooth adapter" && \
echo "(e.g. 'ASUS USB-BT500 - A0:B1:C2:D3:E4:F5') are listed below," && \
echo "then the Bluetooth adapter (transceiver) is correctly installed" && \
echo "----------------------------" && \
lsusb && \
bluetoothctl list && \
echo "----------------------------" && \
echo "- Removing conflicting 'pulseaudio-module-bluetooth' package ..." && \
sudo apt-get purge -y pulseaudio-module-bluetooth && \
echo "- Installing required 'libspa-0.2-bluetooth' package ..." && \
sudo apt-get install -y libspa-0.2-bluetooth && \
echo "- Installing required 'bluez' package ..." && \
sudo apt-get install -y bluez && \
echo "- Installing required 'blueman' package ..." && \
sudo apt-get install -y blueman && \
echo "- Installing required 'menulibre' package ..." && \
sudo apt-get install -y menulibre && \
echo "- Restarting 'bluetooth' service ..." && \
sudo systemctl restart bluetooth && \
systemctl status bluetooth | grep -i "Active:" && \
echo "- Restarting 'pipewire' service ..." && \
systemctl --user restart pipewire && \
systemctl --user status pipewire | grep -i "Active:" && \
blueman-manager
- click the [▬▬ •] button in the left-above corner (show taskbar)
- click the [3 dot ring] button
- click the [>] button
- click the [Terminal] button
- right-click in the Terminal window
- click "Paste"
- press [Enter]
- check: the command sequence is issued
- check: the "Bluetooth Devices" GUI (Bluetooth Manager/blueman-manager) is opened
- go to the slide button with a [>ᛒ] Bluetooth symbol, in the 'Search - Send file' bar
- if not orange: click the button (it turns orange, meaning "Bluetooth service is enabled")
- power on your headset
- press the [>ᛒ] Bluetooth button on your headset
- check: most often a blue LED is blinking on your headphones (meaning "transmitting pairing code")
- press the [Search] button in the 'Bluetooth Devices' GUI (Bluetooth Manager)
- ignore detected devices with a 'Miscellaneous' or 'Unknown' designation
- right-click the detected device with a 'Headset' icon and designation
- click the 'Connect' option
- check: a green [wireless] icon is put on the "Headset" bar
- note: there's no green [paired] icon on the "Headset" bar, but the device is paired
- you can now play a music file in your Audio Player app, using your Bluetooth headphones
🛈 On Ubuntu GNOME, the "Rhythmbox" music player is installed, but is not shown in the [3 ball ring] "Show Apps" menu ¯\(ツ)/¯ Without adjustments, Rhythmbox can only be started from the File Manager (right-click a music file, [Open with...], [Rhythmbox], [Open]), or from the Terminal (type "rhythmbox", [Enter]). You can use the Create a button (shortcut/icon) for any installed application method below, to create a shortcut in the "Show Apps" menu.
🛈 My advice: install the excellent Audacious audio player using sudo apt-get install -y audacious. It provides "gapless repeat" (needed for a Sleep Sound Machine), and all current audio codecs.
▹ antiX 🔗
▹ antiX Linux runit with IceWM desktop for IA-32/i386 🔗
🛈 This procedure is tested on antiX-26_386-full.iso, with kernel 5.10.240 for the IA-32 Gen.2 (i486) CPU architecture, booted from the original .iso file, using a Ventoy 1.1.10 bootloader, on an IA-32 Gen.4 (i686) computer.
🛈 Kernel 5.10.240 does contain a device driver for the ASUS USB-BT500 Bluetooth adapter. No need to install an additional driver.
- power off your computer (shutdown)
- insert the USB Bluetooth adapter (transceiver) into the computer
- power on your computer
- boot antiX Linux runit with IceWM desktop for IA-32/i386
- select version "2026-01-28"
- admire the new beautiful wallpaper!
- click the [🍀] (clover) button in the left-below corner (application menu)
- go to [applications\preferences\Bluetooth Manager]
- check: the "Bluetooth Devices" panel is opened"
- check: the [>ᛒ] Bluetooth button in the right-above corner is grey (meaning "Bluetooth service is disabled")
- check: the [Search] button is greyed out (meaning "Search devices" function is not available)
- click the [>ᛒ] Bluetooth button
- check: the [>ᛒ] Bluetooth button has turned blue (meaning "Bluetooth service is enabled")
- check: the [Search] button is not greyed out any more (meaning "Search devices" function is available)
- power on your headphones
- press the [>ᛒ] Bluetooth button on your headphones (enable pairing mode)
- check: most often a blue LED is blinking on your headphones (meaning "transmitting pairing code")
- go to the "Bluetooth devices" GUI (Bluetooth Manager)
- click the [Search] button
- ignore any detected device with an "Unknown" or "Miscellaneous" designation
- check: the brand and model of your headphones is shown, with designation "headset", and a "headset" icon.
- check: the MAC address (format 'A0:B1:C2:D3:E4:F5') of your Bluetooth adapter is shown
- right-click the device with designation "headset"
- click [Connect]
- check: a panel with "Connected 100%" is shown
- check: the device with designation "headset" has a [Wireless] icon (meaning "connected and paired")
- note: the Bluetooth connection with your headphones is now available to your favorite Audio Player app
- play a beautiful song in your favorite Audio Player app
- check: the (perfect) sound is audible in your Bluetooth headphones
- note: the PipeWire audio server is enabled, but that works fine with XMMS!
🛈 To check if the PipeWire audio server is enabled or disabled: go to [🍀\Control Centre\Hardware]. When the [Disable PipeWire] button is shown, the PipeWire audio server is enabled. When you disable PipeWire, Bluetooth will no longer work.
▹ Create a button (shortcut/icon) in the GNOME "Show Apps" application menu 🔗
The GNOME desktop environment does not provide an option, to create a shortcut (button/icon) in the [3 ball ring] (Ubuntu) or [⠇⠇⠇] button (Debian) "Show Apps" menu, by default. You can always type the name of the binary/script of the app (to be found in the "/bin" folder) in your Terminal, e.g. blueman-manager to start the "Bluetooth Manager" GUI, but it's much easier to use a "Bluetooth Manager" shortcut in the "Show Apps" menu, that can be created with the MenuLibre "Menu Editor" app.
With MenuLibre, you can create any shortcut (button/icon) in the "Show Apps" menu, for any installed app. You can also create a new shortcut for a portable app (e.g. an AppImage package), or a home made script (e.g. a Bash or Python script).
The MenuLibre "Menu Editor" app is installed by the 2601CT command sequence above, but you can also install it without running the 2601CT command sequence. Do the following:
- click the [▬▬ •] button in the left-above corner (show taskbar)
- click the [3 ball ring] button (Ubuntu), OR:
- click the [9 dots] button (Debian)
- click the [>] button on the right side
- click the [Terminal] button
- type the following command:
sudo apt-get install -y menulibre
- check: menulibre is successfully installed
▹ Create a "Bluetooth Manager" button (shortcut/icon) in GNOME 🔗
You can always type blueman-manager in your Terminal to start the "Bluetooth Manager" GUI, but it's much easier to create a "Bluetooth Manager" shortcut in the "Show Apps" menu, with the MenuLibre app.
To create a "Bluetooth Manager" shortcut, do the following:
- click the [▬▬ •] button in the left-above corner (show taskbar)
- click the [3 ball ring] button (Ubuntu), OR:
- click the [⠇⠇⠇] button (Show Apps)
- click the [>] button
- click the [Menu Editor] button (MenuLibre)
- go to the top bar
- go to the search field with an [hour glass] icon
- type "blue"
- press [Enter]
- go to the left panel "Search results"
- go to [⚙ System Tools\Preferences]
- click [>ᛒ Bluetooth Manager]
- check: in the right panel you see the properties of the "Bluetooth Manager" application
- check: [Application Details\Command] shows "blueman-manager" (the "/bin/blueman-manager" binary file)
- go to the "Options" section
- check: the "Hide from menus" button is blue (meaning "Bluetooth Manager" is hidden in the "Show apps" application menu)
- click the button behind "Hide from menus" (button turns grey, meaning "Bluetooth Manager" is shown in the "Show apps" application menu)
- click the [X] close button, in the right above corner
- check: the "Save Changes" message panel is shown
- click the [Save] button
- click the [▬▬ •] button in the left-above corner (show taskbar)
- click the [3 ball ring] button (Ubuntu), OR:
- click the [⠇⠇⠇] button (Show Apps)
- click the [>] button
- check: the [>ᛒ Bluetooth Manager] button (icon/shortcut) is shown
- click the [>ᛒ Bluetooth Manager] button
- check: the "Bluetooth Devices" (blueman-manager) GUI is opened
▹ Create a button (shortcut/icon) for any installed application in GNOME 🔗
In this example, a shortcut in the [3 ball ring] or [9 dots] "Show Apps" menu will be created, for the "Rhythmbox" music player, which is installed by default, but not shown in the "Show Apps" menu of Ubuntu GNOME Workstation.
- click the [▬▬ •] button in the left-above corner (show taskbar)
- click the [3 ball ring] button (Ubuntu), OR:
- click the [9 dots] button (Debian)
- click the [>] button on the right side
- click the [Menu Editor] button (MenuLibre)
- check: the MenuLibre GUI is opened
- if a blue "Invalid desktop files detected!" message bar is shown: click the [X] button on the right-side of the bar
- go to the left-hand panel
- go to [Sound & Video] menu item
- click the [>] button in front of [Sound & Video]
- check: two "Rhythmbox Music Player" entries are shown
- click the first entry (upright font)
- go to the right panel
- click the "Rhythmbox Music Player" text on top
- change the text "Rhythmbox Music Player" into "Rhythmbox Context Menu Shortcut"
- note: the command "rhythmbox %U" means "send file or URL to the Rhythmbox GUI app".
- note: the shortcut is shown in file manager context menu
- check: the "Hide from menus" button is grey (disabled), that's OK (apparently)
- press [Enter]
- go to the button bar on top of the window
- click the [⭳] (Save Launcher) button
- click the second entry (italics font, meaning "Hide from menus" is enabled)
- go to the right panel
- click the "Rhythmbox Music Player" text on top
- change the text "Rhythmbox Music Player" into "Rhythmbox Command Line Tool"
- note: the command "rhythmbox-client --select-source %U" means "send file or URL to the Rhythmbox Command Line Tool"
- check: the "Hide from menus" button is orange (enabled), and it doesn't show up anywhere (?)
- press [Enter]
- go to the button bar on top of the window
- click the [⭳] (Save Launcher) button
- click the [+] button in the left-above corner of the window
- click [Add Launcher]
- check: a [New Launcher] entry ia added to the [Sound & Video] menu
- go to the right panel
- click the "New Launcher" text on top
- change the text "New Launcher" into "Rhythmbox Music Player GUI"
- press [Enter]
- go to the "Add comment" field
- type "Rhythmbox Music Player user application"
- press [Enter]
- go to the "Command" field
- type "rhythmbox" (without quotes)
- click on the [⚙] (gear) button, in the left-above corner of the panel
- click [Browse icons...]
- go to the search field (hour glass)
- type "rhythm"
- click the [rhythmbox] item
- click [Apply]
- go to the button bar on top of the window
- click the [⭳] (Save Launcher) button
- click the [X] (Close Window) button in the right-above corner
- click the [▬▬ •] button in the left-above corner (show taskbar)
- click the [3 ball ring] button (Ubuntu), OR:
- click the [9 dots] button (Debian)
- click the [>] button on the right side
- click the [Rhythmbox Music Player GUI] button
- check: the Rhythmbox Music Player GUI is shown
⬥ Solving sound problems 🔗
▹ No sound 🔗
When you have no sound, the onboard sound card (connected to the green jack output) is most likely not selected. Perhaps the audio chip on your video card is selected instead. Try the following (Linux Mint):
- insert the jack plug of your headphones/speakers into the green outlet (before you power on the PC/laptop)
- power-on the computer speakers or mini-amp
- power on the laptop/PC
- go to [application menu\preferences\audio\tab Output\Device]
- select another audio device (audio chip, sound card)
- go to "Device settings"
- click the [Test sound] button
- click the [Front left] button
- check: a voice says "Front left"
- click the [Front right] button
- check: a voice says "Front right"
- click the [Close] button
If that doesn't solve the problem, try the following:
- insert the jack plug of your headphones/speakers/mini-amp into the green outlet (before you power on the PC/laptop)
- power-on the computer speakers or mini-amp
- power on the laptop/PC
- go to [application menu\Terminal]
- type
alsamixer - press [Enter]
- press the [F6] key (Select sound card)
- select another sound card by pressing the [arrow-down] key
- press [Enter]
- press the [Esc] key
- click the [X] button
▹ Clipping (sound distortion) 🔗
Don't set your sound card's master volume too high, as this can cause clipping (distortion). The sound card's master volume slider is usually shown when clicking the speaker or musical note icon in the system tray (next to the date/time display). Best practice:
- set the sound card master volume level to a maximum of 75%
- set the audio player app volume level to a maximum of 75% (e.g. in the SMplayer GUI, or the in-browser app)
- set the external mini-amp or computer speakers volume level to a maximum of 75%
- close all apps on your desktop, except for the app that's playing the audio file or audio stream URL
If the sound is still distorted, try lowering the sound card master volume level. When using headphones or the internal laptop speakers, set the audio player app volume level to your liking.
▹ Hiccups (short interruptions in sound) 🔗
When playing an MP3 file infinitely, using the "--loop-file=inf" switch in SMplayer or an MPV command, it is normal that there's a hiccup at the end of the track (file), when the player replays the same track. During the playback of the track, there should'nt be any hiccups. When using a 60 or 75 minutes MP3 file, the "end of file hiccup" is once every 60/75 minutes, instead of every 10 minutes, when using a "10min" MP3 file.
When playing a stream URL (radio station) in SMplayer, MPV or your browser, there should'nt arise any hiccups at all, because a radio station doesn't have "an end of a track", it's always infinite.
To investigate your sound configuration, do the following (Linux Mint):
- go to [apllication menu\Terminal]
- install the "PulseAudio Volume Control" GUI app, by typing:
sudo apt-get install -y pavucontrol
⚠ antiX Linux doesn't have a PulseAudio sound server (the "pulseaudio" package) installed, but does have the "PulseAudio Volume Control" app, and the "pipewire-pulse" package installed. pipewire-pulse provides an interface for PulseAudio applications to work with a PipeWire sound server.
- insert your headphones, or cable to your computer speakers/mini-amp, into the green female jack on your PC/laptop
- go to [application menu\sound & video\PulseAudio Volume Control]
- go to [tab Configuration]
- go to the section [Built-in Audio] (the onboard audio controller)
🛈 When your PC has more than one audio controller (sound chip), probably on your sound card or video card, go to the controller to which your speakers or mini-amp are connected. A video card can also have a sound chip, to add sound to the HDMI or DisplayPort output.
- click the [▼] button behind "Profile:", to open the pull down menu
- select "analog stereo output" (not "analog stereo duplex")
- go to [tab Output devices\Built-in Audio\Port]
- select the port (green female jack) in which the audio cable is plugged-in: analog output = green laptop jack; headphones = PC front panel/laptop; line out = PC backplane
- set the volume slider to 75% (this is the sound card master volume level)
🛈 When the slider cannot be moved, audio is muted. Press the [speaker-square] button, next to the [padlock] button. When you want to set the left and right volume seperately, click the [padlock] button.
- click the [▶] button before "Advanced", to show the advanced options
- in the field behind "Latency offset:", enter value "0.00", if not already entered
- click the [X] button to close the "Volume Control" window
- close your network connection, by clicking the [3-square] icon in the system tray, and sliding the [Wired] or [Wi-Fi] button to the left
- close all apps on your desktop, except for the app that's playing the audio file or audio stream URL (SMplayer/browser/terminal)
- when audio is still distorted, also close the desklets (small panels with time, CPU, RAM etc.) on your desktop
🛈 When you experience hiccups when the laptop lid is closed, leave the lid opened, and dim your screen by (most often) holding down the [FN] key (blue print), and repeatedly pressing the [arrow-down] key. When the [arrow-down] key doesn't work, try the [arrow-left] key, or look for the [F5] or [F6] key with a sun or lightbulb, printed in blue.
▹ Get the brand and model number of your audio chip (sound card/controller) 🔗
When you want to search for drivers (software) for your sound card, you need the brand and model number of the device.
- go to [application menu\Terminal]
- type:
sudo apt-get install -y inxi && inxi -v8
- go to the "Audio:" section
- go to "Device-1"
- the value of "Device-1" gives the brand and model number of your audio chip
▹ Check the installed driver for your sound card 🔗
- go to [application menu\administration\driver manager]
- select another driver for your sound card (when displayed)
- click [Apply changes]
🛈 You can only select, not add a driver in this applet
▹ Install a proprietary audio driver from the manufacturer's website 🔗
TODO The package must be installed with the sudo apt-get install -y {PackageName} command
⬥ Using Flameshot to create and edit screenshots 🔗
The Flameshot app is much easier to work with, and has a lot of features that the "Screenshot" app (gnome-screenshot, default in Linux Mint) lacks. With Flameshot you can highlight or hide an area, add numbers, arrows and text, etc.
Flameshot can capture a pull down menu, but not the mouse pointer. Considering the great features of Flameshot, I don't consider that a disadvantage.
Packages are available for several different distros. To use Flameshot, do the following:
- in your Terminal window, type:
sudo apt-get install -y flameshot
- press [enter]
- check: Flameshot is being installed
- type "exit" [Enter]
- go to [application menu\accessoiries\Flameshot]
- right-click the Flameshot icon in the system tray (Ubuntu: top right, Linux Mint: bottom right)
- click [Open Launcher]
- check: the "Capture Launcher" panel is opened
- behind "Area:" select "Rectangular region"
- behind "Delay:" select "5 seconds"
- behind "BxH+x+y", in the four separate fields, type successively: "500", "500", "0", "0"
- press the [Windows] and [D] key simultaneously, to minimize all windows
- put the application window, that you want to make a screenshot of, on the left side of your desktop
- put the "Capture Launcher" panel on the right side of your desktop
- click the [Take new screenshot] button
- quickly open the pull down menu in the application window, that you want to make a screenshot of
- note: the mouse pointer will not be captured
- release your mouse and keyboard
- wait for the purple "Mouse - Ctrl+S - Ctrl+C (etc.)" panel to show
- click and pull the purple dots in the outline, to select the desired capture area
- edit the selected area, by using the buttons to mark or hide an area, place numbers or arrows, or add text
- press the [Floppy Disk] icon, to save the capture as a .png file
- check: a "Save Screenshot" item selector panel is shown
- after "Name:", and after "YYYY-MM-DD_hh-mm", type an an appropriate name for the screenshot
- browse to the desired folder
- click the [Save] button
⚠ Flameshot 12.1.0 (Debian 12.1.0-2build2) works perfectly on Linux Mint 22, but version 12.1.0 (Debian 12.1.0+ds-2) doesn't work correctly on Ubuntu 25.04. I posted an issue at the Flameshot Issue page.
⬥ Create an encrypted VeraCrypt file container for privacy-sensitive files 🔗
It is strongly advised to store your privacy-sensitive and business-critical data in an encrypted Veracrypt file container. Storing these files unencrypted on an internal or external USB/SD/HDD/SSD is not good practice.
Instead of the mediumweight Veracrypt app, that can only be downloaded from Veracrypt.io or Sourceforge.net, you can also use the lightweight Zulycrypt-GUI app, which also handles the Veracrypt file format. A container that's created using the Veracrypt app, can be opened by Zulucrypt-GUI, and vice versa. Zulucrypt-GUI is available in the Debian-, Ubuntu, and Fedora repositories. Zulucrypt-gui isn't suited for novice Linux users, as it does not mount the Veracrypt container as a disk partition, like Veracrypt does (e.g. "/media/veracrypt1/"), but as "/run/media/private/${USER}/VeraCryptContainerJohn.vcc/" that's not shown in the "Disks" (gnome-disk-utility) app, nor in the partition list (with a preceding ▶) of the Nemo file manager.
You can install the Zulycrypt-GUI app using the sudo apt-get install -y zulucrypt-gui or sudo dnf install -y zulucrypt command. The "zulucrypt-gui" package is called "zulucrypt" in the Fedora repo (no typo).
Because Veracrypt is not in the repositories of the major distros mentioned above, it is often considered less safe than apps that are in the repositories. Veracrypt is not compatible with the Debian Free Software Guidelines (DFSG) [reference], but it is Open Source, and I consider it to be perfectly safe. [reference1] [reference2] [reference3].
Note, that Veracrypt is maintained by Idrix SARL, a french company, whose software is used by major companies. It has packages (installers) for Linux, Windows, macOS and Raspberry Pi, and the packages are regularly updated.
Zulycrypt-GUI on the other hand, is maintained by a single developer, is only available for Linux, and the package is not regularly updated. You need to compile the newest Zulucrypt-GUI package from the source code yourself, to create a .deb package. The newest Zulucrypt-GUI .rpm package (named plain "zulucrypt") is available in the Fedora repository though. Additionally, you can rest assured that the Zulucryp GUI packages (installers) in the Debian repository, that are marked "stable" or "oldstable", have been extensively tested. Keep this in mind, if you use encryption applications in a corporate environment.
⚠ Aldough Veracrypt is a very reliable application, you should make regular backups of your Veracrypt file containers
⚠ It is also strongly advised to only upload encrypted file containers (splitted, or in one piece) to your online drive. The .zip file format also has strong encryption, but that format is only workable for a few small files. Be aware, that Proton Drive does encrypt all uploaded files, but Google Drive (e.g.) doesn't [reference].
Follow the steps in the Split and reassemble a big file using the split & cat command section, to chop your Veracrypt container in pieces, and glue it together again.
You can install an app from a .deb or .rpm installer package, when your Linux operating system is booted from a Live-OS (Live-CD) .iso file (flashed to an USB stick or copied to a Ventoy boot partition). The app will be temporarily installed on the RamDisk (RamDrive), which is part of your computers' volatile memory (RAM). However, after a reboot your RAM is cleared, and the app is deleted as a result. Nonetheless, this can be very usefull when you quickly need a small application like Veracrypt or Zulucrypt-GUI.
Note that, when you install apps on your RamDisk, the amount of memory (RAM) available for the running apps will be lower. Do not install large apps like LibreOffice, RescueZilla or K3b on your RamDisk. This will take a long time to install, and will fill your volatile memory (RAM), which can crash your PC.
▹ Helpful websites 🔗
▹ Best practice for safe computer use 🔗
I advise the following:
- do not store privacy-sensitive files on the internal HDD/SSD device of a workstation/PC/Laptop (neither unencrypted nor encrypted)
- boot from an original Linux Live-OS (Live-CD) .iso file (which is hard to infect, as it is read-only/immutable) e.g.:
🛈 Use the Balena Etcher method, or the Ventoy method to create a bootable USB stick (flash drive) with the downloaded Linux Live-OS .iso file.
- do not boot from an installed OS (which can get infected, as it is mutable)
- disconnect your computer from the network before opening an encrypted Veracrypt file container
- don't encrypt a drive or partition (that will make the backup/restore procedure for this drive/partition very complicated)
- for several files: create a large Veracrypt file container on an external USB/HDD/SSD device (easy to use, can contain a lot of files, opening (mounting) a large container goes very quickly)
- for only a few files: create a .zip file container ("archive") on an external USB/HDD/SSD device, using your Archive Manager (easy to use, only suitable for a few small files, the container cannot be mounted, but is unpacked when opened, which takes a lot of time)
- create a backup (copy) of the Veracrypt/.zip container regularly, using your usual file manager (or a scheduled backup script, with a simple copy command)
- store your encrypted backups in another building or on an online drive
- put a strong password on the container
🛈 You can create an encrypted .zip file container ("archive") with [application menu\accessoiries\Archive Manager] (Debian, Ubuntu and Linux Mint), or with [application menu\accessoiries\File Roller] (Fedora). Note, that the popular ".tar.gz" archive format does not support encryption (you cannot set a password).
🛈 It is very easy to create and use a Veracrypt file container, even for novice Linux users. Making a backup of it is simple as well: just copy the container to your external HDD/SSD, or split the file, and upload the pieces to your online drive. To restore the file on another computer you only have to copy the file from the (online) backup device to the new computer. Store the password and PIM value that's "on" the container in your password database, possibly a .txt file, stored in a separate encrypted .zip file. Do not store the password database in the VeraCrypt file container (duh).
⚠ It is very complicated to manage the backup and restore of an encrypted drive or partition. You need to use a special imaging/cloning app like RescueZilla or CloneZilla to create a sector-by-sector image of the drive/partition, and to restore it. When using Microsoft Bitlocker, you cannot use another TPM chip to restore the image, it must be the TPM on the original motherboard (that was lost in a fire, or stolen by villains...). Even when you have the Recovery Key at hand, it won't work. Another no-go: Microsoft might give your Bitlocker keys to the FBI. So: don't encrypt a disk or partition, and certainly not with Microsoft Bitlocker!
▹ Download and install the Veracrypt GUI 🔗
- go to the Veracrypt download page
- download the installer that matches your OS and your CPU architecture
🛈 A "Debian/Ubuntu package" (a .deb file) is preferred over an AppImage, Generic Installer or Linux Legacy installer. In this example I use the "Ubuntu 24.04 GUI" installer, because I run Linux Mint Ubuntu Ed. 22.2 (amd64), that has Ubuntu 24.04 under the hood.
- go to [application menu\accessories\Files] (your file manager)
- go to your [/home/${USER}/Downloads] folder
- check: the "veracrypt-{VeracryptVersion}-Ubuntu-{UbuntuVersion}-amd64.deb" file is downloaded
- double click the "veracrypt-{VeracryptVersion}-Ubuntu-{UbuntuVersion}-amd64.deb" file
- check: the package installer GUI panel is opened
- click the green [Install Package] button
- check: the "Installing file" panel is shown
- check: the "Installation was successful" message is shown
- click the [X] button in the right above corner
▹ Create the Veracrypt container 🔗
Do the following:
- go to [application menu\accessories\Veracrypt]
- check: the Veracrypt GUI is opened
- click the [Create Volume] button
- check: the "Veracrypt volume creation wizard" panel is shown
- leave everything default
- click [Next]
- leave everything default
- click [Next]
- click the [Select File...] button
- browse to the partition and folder, in which you want to store the Veracrypt file container
- after "Name:" on the top of the panel: type a unique filename for the Veracrypt file container
🛈 Prevent ambiguity in container file names. You can use an obvious file name like "VeraCryptContainer{YourName}1.vcc" or so, but you can also use a disguise name like "2025-10-27-Dull-management-video.mp4" to mislead MI5 ;-)
- click [Save]
- click [Next]
- check: the "Encryption Options" panel is shown
- leave everything default
- click [Next]
- check: the "Volume size" panel is shown
- check the value behind "Free space available"
- click the [MiB ▼] button
- click [GiB] (or whatever matches your goal)
- type the desired container size in the field preceding the [▼] button
- click [Next]
- check: the "Volume password" is shown
- type a very strong password in the "Password:" field
- retype the password in the "Confirm password:" field
- put a checkmark in front of "Use PIM"
- put a checkmark in front of "Display password"
- leave everything else default
- ⚠ store the password in your password database (e.g. an encrypted .zip file), noting the unique containers' file name
- click [Next]
🛈 A "PIM" (Personal Iterations Multiplier) is an "extra password" (actually a number) on the container, which makes it extremely difficult to crack the container. It's highly advised to use a PIM, but don't' lose it!
⚠ When you get a message "WARNING: Short passwords are easy to crack using brute force techniques", you have to enter a stronger password!
- check: the "Volume PIM" panel is shown
- put a checkmark in front of "Display PIM"
- in the "Volume PIM:" field: type a number beween 485 and 500
- ⚠ store the PIM value in your password database (e.g. an encrypted .zip file), noting the unique containers' file name
- click [Next]
- the "Volume format" panel is shown
- behind "File system:", click the [▼] button and select "exFAT"
🛈 The exFAT file system holds no file permissions and can store files larger than 4 GB. Every modern OS (Windows, macOS, Linux etc.) supports the exFAT file system. Do not use a file system like NTFS or EXT4 that does hold file permissions, as this reduces the portability of the Veracrypt container.
- click [Next]
- check: the "Cross platform support" panel is shown
- leave everything default
- click [Next]
- ignore the message "Please note that the volume ..."
- click [OK]
- check: the "Volume format" panel is shown
- move your mouse, making all kinds of guestures, until the hourglass is at 25% or so
- click [Format]
- check: the "Volume Created" message is shown
- click [Exit]
▹ Mount the Veracrypt container 🔗
- go to [application menu\accessories\Veracrypt]
- check: the Veracrypt GUI is opened
- go to the "Slot - Volume - Size - Mount directory - Type" panel
🛈 A horizontal slider for this panel will pop up, when you hoover the mouse pointer above the [Create Volume] button. The GUI (window) cannot be resized.
- click on [🖴 1] in the the "Slot" column (or another number without a file path)
- click the [Select file] button
- browse to and select the Veracrypt container
- click the [Open] button
- check: the path to the container in the "Slot - Volume - Size - Mount directory - Type" panel is shown
- click the [Mount] button
🛈 This action implies: mount (open) the container in the Veracrypt GUI app, and mount (connect/attach) it to the OS file system (file manager)
- check: the "Enter password" panel is shown
- in the "Password:" field: type the password that's "on" this Veracrypt container (stored in your password database)
- click the check mark in front of "Use PIM"
- in to the "Volume PIM:" field: type the PIM value for this Veracrypt container (stored in your password database)
- click the [OK] button
- check: the "Please wait" message is shown
- check: the Veracrypt container is opened in your File Manager app
- check: on a Cinnamon and GNOME desktop: in the left-side panel "⏏ {DesiredContainerSize} GB Volume [⏏]" is shown (e.g. "1 GB Volume")
- check: on a KDE Plasma desktop: in the left-side panel "🖴 {DesiredContainerSize} MiB Internal Drive (dm-#) [⏏]" is shown (e.g. "1,023.8 MiB Internal Drive (dm-2)")
-
check: the file path to the Veracrypt container (e.g. "/media/mint/USB_Stick/2511AR-VeraCryptContainer.vcc") is shown in the Veracrypt GUI app, behind [🖴 1], in the "Volume" column, meaning "password typed in correctly, and opened in the Veracrypt GUI app"
-
check: the mount point of the Veracrypt container (e.g. "/media/veracrypt1") is shown in the Veracrypt GUI app, behind [🖴 1], in the "Mount directory" column, meaning "mounted to the file system (file manager), you can view/edit files in it"
🛈 You can use the [⏏] button (eject symbol) behind the "{DesiredContainerSize} MiB Internal Drive (dm-#)Volume" label, to unmount (disconnect) the Veracrypt partition ("volume") from the file system (file manager). When the [⏏] button behind the "{DesiredContainerSize} GB Volume" label is not shown, the Veracrypt partition is not mounted to the file system (file manager), but it can still be opened (mounted) in the Veracrypt GUI app.
▹ Label the partition inside the Veracrypt container 🔗
When you mount the Veracrypt container, that you created in the procedure "Create the Veracrypt container" above, the partition label (partition name) is "{DesiredContainerSize} GB Volume", or "{DesiredContainerSize} MiB Internal Drive (dm-#)". That's an unclear label. The partition label is shown in your file manager, in the partition list in the left-side panel, when the Veracrypt container is mounted (attached to the file system). In this procedure, we change the partition label into a label that covers the load.
- close all foreground tasks (apps/windows), except the Veracrypt GUI app and the "Disks" app
- go to [application menu\accessories\Veracrypt] (if not opened already)
- check: the Veracrypt GUI is opened
- check: the file path to the Veracrypt container (e.g. "/media/mint/USB_Stick/2511AR-VeraCryptContainer.vcc") is shown in the Veracrypt GUI app, behind [🖴 1], in the "Volume" column, meaning "password typed in correctly, and opened in the Veracrypt GUI app"
- if not: mount (open) the Veracrypt container in the Veracrypt GUI app, using procedure "Mount the Veracrypt container"
- check: the mount point of the Veracrypt container (e.g. "/media/veracrypt1") is shown in the Veracrypt GUI app, behind [🖴 1], in the "Mount directory" column, meaning "mounted to the file system (file manager), you can view/edit files in it", OR:
- check: the mount point of the Veracrypt container (e.g. "/media/veracrypt1") is not shown in the Veracrypt GUI app, behind [🖴 1], in the "Mount directory" column, meaning "not mounted to the file system (file manager), you cannot view/edit files in it"
- leave the Veracrypt GUI app (window) opened
- go to [application menu\accessories\Disks] (Cinnamon desktop), OR:
- go to [3 ball ring] or [⋮⋮⋮] button, [System Utilities], [Disks] (GNOME desktop)
🛈 When there's no "Disks" (gnome-disk-utility) shortcut available, you can try installing the app using sudo apt-get install -y gnome-disk-utility (Debian-based Linux) or sudo dnf install -y gnome-disk-utility (Fedora-based Linux). On a KDE Plasma desktop the "Disks" app also works fine!
⚠ You cannot use a Partition Manager, like gParted (Cinnamon and GNOME desktop) or KDE Partition Manager (on KDE Plasma desktop), to change the label of a virtual partition such as a partition inside a Veracrypt container. These apps can only manage real partitions on a fysical device, mounted as /dev/sd (e.g. /dev/sda, /dev/sdb etc.), not a virtual partition mounted in "/dev/mapper/" (Block Device, e.g. /dev/mapper/veracrypt1). You can ignore the Veracrypt partition mounted as /dev/loop (Loop Device, e.g. /dev/loop1, /dev/loop2 etc.).
- go to the left-hand panel
- click the "Block Device" with a "/dev/mapper/veracrypt#" mount point
- go to the right-hand panel
⚠ Never unmount:
- (disconnect) a Veracrypt container** from the file system (file manager), OR:
- (close) a Veracrypt container in the Veracrypt GUI app, OR:
- (eject/unplug) the storage device on which the Veracrypt container is stored (HDD/SSD/USB/SD),
when you have files in the Veracrypt container opened in an user application (e.g. text editor, LibreOffice Calc etc.). See the "Unmount the Veracrypt container and storage device" section below for more information.
- if a [■] button is shown: click the [■] button to unmount (disconnect) the Veracrypt container from the file system, OR:
- if a [▶] button is shown: do nothing, the Veracrypt container is already unmounted (disconnected) from the file system
- click the [⚙⚙] (gear) button (Cinnamon/GNOME), or the [triangle-in-square] button (KDE Plasma) (Additional partition options), next to the [▶] button
- click "Edit File System"
- check: the "Change Filesystem label" panel is shown
- in the "Label" field: type a partition label, that covers the contents of the Veracrypt container, e.g. "Private_001", when the file name of the container is "Private_001.vcc"
🛈 The label on an exFAT partition cannot be longer than 11 characters.
- click the [Change] button
- click the [▶] button to mount the Veracrypt container to the file system (file manager)
- click the [X] button in the right-above corner, to close the "Disks" app
▹ Store files in the Veracrypt container 🔗
- go to [application menu\accessories\Files] (file manager)
- check: in the left-side panel "⏏ Private_001 ⏏" or "🖴 Private_001 ⏏" is shown (your partition label is different). OK, the Veracrypt container is mounted, OR:
- check: in the left-side panel "⏏ Private_001" or "🖴 Private_001" is shown (your partition label is different). The Veracrypt container is not mounted. Follow the procedure "Mount the Veracrypt container" to mount the container.
- click the volume label in the left-side panel
- right-click the blank panel on the right side
- click [Create new document\Empty document]
- type "[i] This is {NameOfVeracryptcontainer}", e.g. "[i] This is VeracryptContainerJames1.vcc"
- press [Enter]
- check: the text file "[i] This is VeracryptContainerJames1.vcc" is created, it's title serves as a memo
- create a backup of all your privacy-sensitive files/folders
- move all your privacy-sensitive files/folders to the right panel
- open any file in the container by double-clicking it
- check: the file is opened in the appropriate user application (e.g. LibreOffice Writer)
- edit the file in the user application
- when ready: follow the instructions in the "Unmount the Veracrypt container and storage device" section
▹ Unmount the Veracrypt container and storage device 🔗
⚠ Never unmount:
- (disconnect) a Veracrypt container** from the file system (file manager), OR:
- (close) a Veracrypt container in the Veracrypt GUI app, OR:
- (eject/unplug) the storage device on which the Veracrypt container is stored (HDD/SSD/USB/SD),
when you have files in the Veracrypt container opened in an user application (e.g. text editor, LibreOffice Calc etc.).
When you do, the file that's opened in the user application is abandoned (disconnected), and you can no longer save the changes made to the file in the Veracrypt container! Rescue: temporarily save the abandoned file in your "/home/${USER}/Documents" folder, unmount, and than mount the Veracrypt container in the Veracrypt GUI app again, and move the file in "/home/${USER}/Documents" to the Veracrypt container. Always close all windows, except the Veracrypt GUI app and your file manager, before unmounting the Veracrypt container, or unmounting the storage device.
To get all mount (connection) statuses of the Veracrypt container:
- go to [application menu\accessoiries\Veracrypt]
- check: the VeraCrypt GUI app is opened
- look for the name of the Veracrypt container in the "Volume" column
- click the line with name of the Veracryt container to check/manage
🛈 A horizontal slider will pop up, when you hoover the mouse pointer above the [Create Volume] button. The GUI (window) cannot be resized.
When the path to the Veracryt container in the "Volume" column:
- is shown (e.g. /media/mint/USB_Stick/VeraCryptContainer1.vcc), the Veracrypt container is mounted in (opened in) the Veracrypt GUI app
- is not shown, the Veracrypt container is not mounted in (opened in) the Veracrypt GUI app
when the [Unmount] button:
- is shown, the Veracrypt container is mounted in (opened in) the Veracrypt GUI app
- is not shown (the [Mount] button is shown instead), the Veracrypt container is not mounted in (opened in) the Veracrypt GUI app
When a file system mount pount in the "Mount Directory" column:
- is shown (e.g. "/media/veracrypt1"), the Veracrypt container is mounted by (connected to) the file system (file manager). You can edit files in the Veracrypt container
- is not shown, the Veracrypt container is not mounted by (connected to) the file system (file manager). You cannot edit files in the Veracrypt container
🛈 The "Disks" app (gnome-disk-utility) will also detect that the Veracrypt container is mounted (connected) to a file system, and will offer to unmount the container from the file system for you. It will not unmount (close) the Veracrypt container in the Veracrypt GUI app.
Follow the steps below, in the given sequence, when unmounting a Veracrypt container:
- 1. Close all foreground apps (e.g. text editor, LibreOffice Calc etc.), except the Veracrypt GUI app
- 2. Unmount the Veracrypt container in the Veracrypt GUI app (this will also unmount the container from the file system)
- 3. Unmount the external storage device(e.g. USB stick, external HDD/SSD, SD card)
▹ 1. Close all foreground apps 🔗
- leave the Veracrypt GUI app (window) opened
- close all other windows, by clicking the [X] button in the right-above corner
▹ 2. Unmount the Veracrypt container in the Veracrypt GUI app 🔗
- go to [application menu\accessoiries\Veracrypt]
- check: the VeraCrypt GUI app is opened
- look for the name of the Veracrypt container in the "Volume" column
- click the line with name of the Veracryt container
- click the [Unmount] button
- check: the name of the Veracrypt container in the "Volume" column, has disappeared
▹ 3. Unmount the external storage device 🔗
Unmount (disconnect) the storage device (USB/SD/HDD/SSD), on which the Veracrypt is stored:
- go to [application menu\accessoiries\file manager]
- go to the left-side panel
- click the [⏏] (eject) button behind the volume label of the device (e.g. "⏏ USB_John"), OR:
- right-click the volume label (e.g. "⏏ USB_John"), and then click "Unmount"
or:
- go to the right-below corner of your desktop
- look at the left of the date/time display in your task bar
- click the [⏏] icon (Removable drives)
- check: a pop-up menu with devices is shown
- click the [⏏] button (Unmount) behind the device name (e.g. "USB_John [⏏]")
⚠ Always wait for the message panel "Device /dev/sd can be removed" or "Device /dev/sd can be turned off if neccesary" before unplugging the device from the USB port.
⬥ Split and reassemble a big file using the split & cat command 🔗
It's not advised to upload a very large file (e.g. a backup of a 25 GB VeraCrypt container) in one piece to your online Proton Drive, Google Drive, Microsoft OneDrive etc., because, when your Internet connection is stuttering after two hours, with the upload hourglass at say 50%, the complete upload is lost, and you have to start all over again :-(
▹ TLDR 🔗
- edit the following command sequence, to match your situation:
SourceFullPath="PasteTheSourceFullPathHere" # the full path to BigFile && \
TargetPartitionFullPath="PasteTheTargetPartitionFullPathHere" # partition to temporarily store the pieces && \
TargetFileName=""$(date '+%Y-%m-%d-%H-%M')"-Backup-PasteYourTargetFileNameHere" # file name of the pieces && \
TargetFolder=""${TargetPartitionFullPath}"/"${TargetFileName}"" # folder in which the pieces are created && \
if [ ! -d "${TargetFolder}" ]; then mkdir "${TargetFolder}"; fi # the ${TargetFolder} is created automatically && \
split --bytes=1GB --suffix-length=3 --numeric-suffixes=001 --verbose "${SourceFullPath}" "${TargetFolder}/${TargetFileName}." 2>&1 | tee -a "${TargetFolder}/${TargetFileName}.log"
- copy the command sequence to your clipboard
- right-click your Terminal/Konsole window
- click [Paste]
- press [Enter]
▹ Explanation 🔗
🛈 Chopping up a BigFile that's larger than 4 GB can also be very handy, when you need to copy such a file, to a file system that doesn't support files larger than 4 GB, such as FAT16 or FAT32.
This how-to includes the following method:
- create a pieces set of the "Master" BigFile, with pieces of 1 GB using the split command
- upload the folder with the pieces of the BigFile to your online drive
⚠ The original "Master" BigFile is not chopped up, it stays untouched
In case of an emergency:
- download the pieces of BigFile from your online drive
- reassemble the pieces of BigFile using the cat command
⚠ Before working with highly sensitive files, always disconnect from the network first. Reconnect when you're ready to upload or download your (split) files.
⚠ Best practice: create an encrypted container to store your sensitive files with the user-friendly VeraCrypt GUI app, available for Linux, Windows, macOS and Raspberry Pi. Use the exFAT file system for the container, and put a strong password on it.
🛈 In Windows, you can use the GSplit GUI app, to split a big file, and reassemble ("unite") the pieces. But remember: GUI applications (and Windows as a whole) are for whoosies ;-).
Do the following:
▹ Create a split set of BigFile 🔗
In this procedure, we'll create a pieces (split) set of the "Master" BigFile (that needs to be backed up), that's located on drive "2511AT_MSTR" (the source drive), to another drive "2505MK_HDD" (the target drive).
🛈 Note, that the "Master" BigFile "YYMMAB-MASTER-VeraCryptContainer.vcc" is actually not chopped in pieces. The "Master" file will not be altered. A split set (the pieces) of the "Master" file is created in another folder, and the original "Master" BigFile stays untouched.
- go to [application menu\accessories\Text Editor] (or any other text editor like Geany, CudaText etc.)
- go to [menu File\New]
- 🛈 a blank page is opened
- copy/paste the following command sequence into the blank page:
SourceFullPath="PasteTheSourceFullPathHere" # the full path to BigFile && \
TargetPartitionFullPath="PasteTheTargetPartitionFullPathHere" # partition to temporarily store the pieces && \
TargetFileName=""$(date '+%Y-%m-%d-%H-%M')"-Backup-PasteYourTargetFileNameHere" # file name of the pieces && \
TargetFolder=""${TargetPartitionFullPath}"/"${TargetFileName}"" # folder in which the pieces are created && \
if [ ! -d "${TargetFolder}" ]; then mkdir "${TargetFolder}"; fi # the ${TargetFolder} is created automatically && \
split --bytes=1GB --suffix-length=3 --numeric-suffixes=001 --verbose "${SourceFullPath}" "${TargetFolder}/${TargetFileName}." 2>&1 | tee -a "${TargetFolder}/${TargetFileName}.log"
- go to [application menu\accessories\Files] (your File Manager)
- go to the source drive, on which the "Master" BigFile, that needs to be backed up, is located
- left-click the BigFile in the source folder
- press and hold the [Ctrl] key, and then press the [C] key, to copy the "SourceFullPath" to the "Master" BigFile to your clipboard
- go to your text editor window, with the above command sequence
- double-click "PasteTheSourceFullPathHere"
- press and hold the [Ctrl] key, and then press the [V] key, to paste the "SourceFullPath" to the "Master" BigFile
In this example (on Linux Mint, with logged-in account "mint", on drive "2511AT_MSTR", with only one partition):
SourceFullPath="/media/mint/2511AT_MSTR/VeraCryptContainers/YYMMAB-MASTER-VeraCryptContainer.vcc" # the full path to BigFile && \
- insert/attach the SD/USB/HDD/SSD device into/to your computer, on which the pieces of the "Master" BigFile will be temporarily placed.
- 🛈 this drive/device will be named target drive
- go to [application menu\accessories\Disks] (gnome-disk-utility)
- 🛈 If not available: install the "Disks" app by issueing command
sudo apt-get install -y gnome-disk-utility - go to the devices list in the left pane, below [Disks ☰]
- click the target drive (device), on which the pieces of the "Master" BigFile will be temporarily placed
- 🛈 you can identify the drive by its size in GB
⚠ There must be enough free space available on the target drive (HDD/SSD/USB-stick): at least the size of your "Master" BigFile in "SourceFullPath"
- go to the right pane
- go to the [Volumes] section
- click the target partition (part of the drive), in the blue/white rectange pane, on which the pieces of the "Master" BigFile will be temporarily placed
- 🛈 when there's only one partition in the blue/white rectange pane, you don't have to click anything
- go tho the "Contents" variable, below [■ ⚙]
- right-click the path after "Mounted at"
- click [Copy link address]
- 🛈 The full path to the target partition is now on your clipboard, in this example:
/media/mint/2505MK_HDD, a drive with only one partition
- go to your text editor window, with the above command sequence
- double-click "PasteTheTargetPartitionFullPathHere"
- press and hold the [Ctrl] key, and then press the [V] key, to paste the "TargetPartitionFullPath"
In this howto it is:
TargetPartitionFullPath="/media/mint/2505MK_HDD" # partition to temporarily store the pieces && \
- go to your text editor window, with the above command sequence
- double-click "PasteTheTargetPartitionFullPathHere"
- type a file name that "covers the load", e.g.:
TargetFileName="2026-03-14-Backup-of-music-collection-suzanne.zip" # file name of the pieces && \
when you've put your complete MP3/FLAC music collection into a .zip container archive, that's located in your "Music" folder:
SourceFullPath="/home/suzanne/Music/music-collection-suzanne.zip" # the full path to BigFile && \
In this howto it is:
TargetFileName=""$(date '+%Y-%m-%d')"-Backup-YYMMAB-MASTER-VeraCryptContainer.vcc" # file name of the pieces && \
🛈 "YYMMAB" is an "Item-ID", my way to identify any file or disc, without disambiguity. E.g. "2602A4" means: "2026 februari, series A, number 4". This method yields 1296 (36*36) combinations per month.
🛈 The "TargetFileName" contains a "YYYY-MM-DD-hh-mm" timestamp, that's perfect for sorting and identifying (searching) files, but you can use any file name, e.g.: TargetFileName=""$(date '+%Y-%m')"-backup" (result: "2026-03-backup"). You can also use "$(date '+%Y-%m-%d')" or "$(date '+%Y-%m-%d-%H-%M-%S')", or any other combination.
🛈 In my example, the name of the TargetFileName (the file name of the pieces) and the TargetFolder (in which the pieces are created) are the same, but you can use any folder name, e.g.: TargetFolder=""${TargetPartitionFullPath}"/Pieces".
My command sequence in the text editor page now looks like this:
SourceFullPath="/media/mint/2511AT_MSTR/VeraCryptContainers/YYMMAB-MASTER-VeraCryptContainer.vcc" # the full path to BigFile && \
TargetPartitionFullPath="/media/mint/2505MK_HDD" && \
TargetFileName=""$(date '+%Y-%m-%d-%H-%M')"-Backup-YYMMAB-MASTER-VeraCryptContainer.vcc" # file name of the pieces && \
TargetFolder=""${TargetPartitionFullPath}"/"${TargetFileName}"" # folder in which the pieces are created && \
if [ ! -d "${TargetFolder}" ]; then mkdir "${TargetFolder}"; fi # the ${TargetFolder} is created automatically && \
split --bytes=1GB --suffix-length=3 --numeric-suffixes=001 --verbose "${SourceFullPath}" "${TargetFolder}/${TargetFileName}." 2>&1 | tee -a "${TargetFolder}/${TargetFileName}.log"
🛈 Tip: if you have modified the command sequence above to your liking, save it to a file such as "backup-split-cat-command.txt" (or so) for future use.
Explanation of the split command:
--bytes=1GB= all pieces are 1 GB in size, except for the last one (the remainder)--bytes=500MB= 500 MB pieces--suffix-length=3= the addition behind the piece filename is 3 characters long--numeric-suffixes=001= the numbering of the pieces (the suffix) starts at "001", next piece is "002", etc.--verbose= extended information in the logfile${SourceFullPath}= "/path/to/MasterBigFile" = full path to the BigFile, that needs to be backuped up${TargetFolder}= "/path/to/TargetFolder" = in this folder, the pieces will be created${TargetFileName}.= the filename of the pieces, in front of the suffix (numbering). Must be followed by a period.$(date '+%Y-%m-%d')= fills in the "YYYY-MM-DD" of the present day2>&1 | tee -a= standard messages and errors are printed on screen, and in the "${TargetFolder}/${TargetFileName}.log" file
⚠ Always create a logfile, otherwise, when the Terminal crashes, you can't determine the cause of faillure.
- copy the command sequence above, adapted to your situation, to your clipboard
- go to [application menu\Terminal] (or Konsole)
- right-click in the Terminal window
- click "Paste"
- press [Enter]
- check: you'll see a message in the Terminal window, e.g.:
creating file '/media/${USER}/2505MK_HDD/2026-01-03-Backup-YYMMAB-MASTER-VeraCryptContainer.vcc/2026-01-03-Backup-YYMMAB-MASTER-VeraCryptContainer.vcc.001'
- go to [application menu\accessories\Files] (your File Manager)
- browse to the TargetFolder
- go to [menu View]
- click [List view]
- check: the pieces appear in the right panel:
2026-01-03-Backup-YYMMAB-MASTER-VeraCryptContainer.vcc.001
2026-01-03-Backup-YYMMAB-MASTER-VeraCryptContainer.vcc.002
2026-01-03-Backup-YYMMAB-MASTER-VeraCryptContainer.vcc.003 (etc.)
- ☕ (creating the files takes a while)
- check: the command prompt is shown in the Terminal window, indicating that the splitting process has finished
- go to [application menu\accessoiries\text editor]
- open the [/media/${USER}/2505MK_HDD/2026-01-03-Backup-YYMMAB-MASTER-VeraCryptContainer.vcc/2026-01-03-Backup-YYMMAB-MASTER-VeraCryptContainer.vcc.log] logfile, in this example it reads:
creating file '/media/${USER}/2505MK_HDD/2026-01-03-Backup-YYMMAB-MASTER-VeraCryptContainer.vcc/2026-01-03-Backup-YYMMAB-MASTER-VeraCryptContainer.vcc.001'
creating file '/media/${USER}/2505MK_HDD/2026-01-03-Backup-YYMMAB-MASTER-VeraCryptContainer.vcc/2026-01-03-Backup-YYMMAB-MASTER-VeraCryptContainer.vcc.002'
{lines removed}
creating file '/media/${USER}/2505MK_HDD/2026-01-03-Backup-YYMMAB-MASTER-VeraCryptContainer.vcc/2026-01-03-Backup-YYMMAB-MASTER-VeraCryptContainer.vcc.054'
- check the logfile for errors
🛈 In the Geany text editor you can press [Ctrl]+[R] to reload the log file, while the split command is running. In other text editors, that do not have a "reload" menu option, you probably have to: ~ press [F5] ~ click [Cancel] ~ click [Reload].
- go to [application menu\accessories\Files] (your File Manager)
- browse to the TargetFolder, e.g. "/media/${USER}/2505MK_HDD/2026-01-03-Backup-YYMMAB-MASTER-VeraCryptContainer.vcc"
- check: all pieces are created
▹ Start the Caffeine app 🔗
To prevent your computer from going to sleep while the pieces of the BigFile are beeing uploaded, you can adjust your power management settings, but that doesn't always work as expected. Starting the Caffeine app is a simple and effective way to keep your computer awake. Caffeine is also available for Windows (cnet.com is safe to use).
- go to [application menu\Terminal] (or "Konsole")
- issue one of the following commands:
sudo apt-get install -y caffeine # Debian/Ubuntu/Linux Mint based
sudo dnf install -y caffeine # Fedora based
- go to [application menu\Accessoiries\Caffeine Indicator]
- check: a ☕ icon is shown in the system tray (notification area)
- click the ☕ icon
- click "Activate"
- check: the ☕ has turned "hot", meaning "computer stays awake"
🛈 When caffeine is active, the computer will not enter the hibernation state, and the GPU will keep sending video signals to your monitor, but the screen saver is not disabled. When the screen saver is active, only press the [Alt] key, to show the desktop.
- go to [application menu\preferences\screen saver\customize]
- go to the "Away message" section
- Show this message when the screen is locked = "Upload in progress, do not touch keyboard/mouse"
- behind "Font", click the [Ubuntu Regular 14] button
- go to the "Size" slider
- slide it to "50" (or so)
- click the [Select] button
- click the [X] button to close the "Screensaver" panel
🛈 You can also use a Mouse Jiggler, an USB device that simulates mouse movements, to prevent your PC from falling asleep.
▹ Configure Cinnamon Inhibit applet 🔗
The Cinnamon Inhibit Applet, available on every Cinnamon dekstop, inhibits the computer to fall asleep. Let's just hope the computer obeys ;-)
- go to [application menu\Preferences\Applets]
- scroll down to [Inhibit Applet]
- click [Inhibit Applet] (selection turns blue)
- click the [+] button
- check: a [✓] checkmark is shown in front of "Inhibit Applet", meaning "enabled"
- click the [⚙] gear button (Configure)
- behind "Inhibit power management", click the first [unassigned] button
- check: the text "Pick an accelerator" is shown, meaning "pick a keyboard shortcut"
- press the [Ctrl]+[Alt]+[I] keys simultaneously (or another appropriate key sequence)
- click the [X] button, to close the Inhibit Applet panel
- press the [Ctrl]+[Alt]+[I] keys simultaneously
- check: the message "Power Management: inhibited" is shown, meaning "Power Management disabled"
🛈 Aside the [Ctrl]+[Alt]+[I] key sequence, you can also click the [zz] icon in the system tray, to enable/disable power management and notifications.
▹ Choose your online drive provider 🔗
In the following examples I upload the pieces to a Proton Drive and a Google Drive, but the procedure is similar for other online drive providers.
- read this review about online drive providers
⚠ For a business/person in the European Union (European Community), it is strongly advised not to use an US online drive provider, like Apple, Microsoft or Google, for your business critical and sensitive personal data, as the US government can block access to your data, or retrieve your data [reference1] [reference2]. Use a Provider in the EU/EFTA instead.
🛈 Switzerland is only a member of the EFTA, not the EU. Switzerland used to have very strict privacy laws, but unfortunately, the Swiss surveillance laws are changing. Therefore, Proton AG is moving servers to Norway (EFTA) and Germany (EU).
| Online Drive Providers in the EU/EFTA | Country | EU | EFTA | Encrypted storage | Renewable energy | Free account |
|---|---|---|---|---|---|---|
| Cryptee | Estonia | yes | no | yes | no | yes |
| Filen | Germany | yes | no | unknown | no | yes |
| Infomaniak kDrive | Switzerland | no | yes | unknown | yes | no |
| InterNXT | Spain | yes | no | yes | no | no |
| JottaCloud | Norway | no | yes | unknown | yes | yes |
| Koofr | Slovenia | yes | no | yes | yes | yes |
| pCloud [ref1] | Switzerland | no | yes | yes | no | no |
| Proton | Switzerland | no | yes | yes | no | yes |
| Tresorit | Switzerland | no | yes | yes | no | no |
| Twake/Cozy | France | yes | no | unknown | no | yes |
🛈 ※[ref1] pCloud is the only provider in this list, that has a Linux app. pCloud provides a portable AppImage package, read the "installation" manual first. You cannot install an AppImage package, as it is portable: just download it, move it to "/home/${USER}/Apps", make it executable, and double-click it. You can create a shortcut to it with MenuLibre. Proton only has an app for Windows/macOS/iOS/Android, not for Linux :-(
- choose an online drive provider
- create an account on the website of the chosen online drive provider
⚠ It is strongly advised to only upload an encrypted file container (splitted, or in one piece) to your online drive. Use Veracrypt to create a large encrypted exFAT file container. The .zip file format also has strong encryption, but that format is only workable for small files, e.g. a file with your passwords. Be aware, that Proton does encrypt all uploaded files, but Google (e.g.) doesn't [reference]. Please read the information in the Create an encrypted VeraCrypt container for privacy-sensitive files section.
⚠ It is strongly advised to enable Two Factor Authentication (2FA) in your online drive account, in conjunction with a TOTP app like Proton Authenticator, Google Authenticator etc.
▹ Upload the pieces to your Proton Drive 🔗
- enable your network connection
- start your browser (Firefox, in this example)
- close all foreground tasks (apps/windows), except your browser
- log in to your Proton Drive
- close all other tabs
- click the [+ New] button in the left panel
- click [Upload folder]
- browse to your TargetFolder (e.g. "/media/${USER}/2505MK_HDD/2026-01-03-Backup-YYMMAB-MASTER-VeraCryptContainer.vcc"), that contains the *.001, *002 etc. pieces
- left-click the folder name
- click the [Upload] button
- check: the message "Are you sure you want to upload all files from {FolderName}? Only do this if you trust the site" is shown
- click the [Upload] button
- check: the message panel "Uploading a large file or folder" is shown
- click the [Upload anyway] button
Check:
- an "In progress" pane is presented, showing "0% completed"
- in front of several pieces, a rotating circle (hour glass) is shown
- several pieces are uploaded simultaneously
- the message "Uploading - {AlreadyUploaded} MB/{SizeOfOnePiece} MB" is shown for several pieces
🯄 A 1 GB piece is actually 1000 MB, not 954 MB, as Proton idicates. 1 GB = 954 MiB, but let's not nitpick about that ;-)
⚠ Do not click anything in your browser, when the files are being uploaded, as it might interrupt the upload. Only press the [Alt] key once, to show the desktop, and check the upload status.
- leave the Proton Drive website opened
- do not log off from the Proton Drive website
- power off your monitor
- ☕ (uploading the pieces may take several hours)
- go to the Proton Drive website
- double-click the folder with the pieces (e.g. "YYYY-MM-DD-Backup-YYMMAB-MASTER-VeraCryptContainer.vcc")
- check if any sequence numbers (suffixes) are missing, if so:
- click the [+ New] button in the left-side panel
- click [Upload file]
- browse to the TargetFolder with the pieces
- press and hold the [Ctrl] key
- left-click the files with the sequence numbers (suffixes) that were not uploaded (missing in the website folder)
- click the [Open] button
- check: the message panel "Uploading a large file or folder" is shown
- click [Upload anyway]
Check:
- an "In progress" pane is presented, showing "0% completed"
- in front of several pieces, a rotating circle (hour glass) is shown
- several pieces are uploaded simultaneously
- the message "Uploading - {AlreadyUploaded} MB/{SizeOfOnePiece} MB" is shown for several pieces
⚠ Do not click anything in your browser, when the files are being uploaded, as it might interrupt the upload. Only press the [Alt] key once, to show the desktop, and check the upload status.
- leave the Proton Drive website opened
- do not log off from the Proton Drive website
- power off your monitor
- ☕ (uploading the pieces takes a while)
- check: the purple progress bar, shows "{AmountOfFiles} uploaded"
- log out from the Proton Drive website
- go to [application menu\accessories\Files] (your File Manager)
- go to the target drive, on which the pieces of the "Master" BigFile are put
- click the target folder "YYYY-MM-DD-Backup-{NameOfMasterVeracryptContainer}", that contains the pieces
- press and hold the [Shift] button, and then press the [Delete] button, to permanently delete the folder
▹ Upload the pieces to your Google Drive 🔗
- enable your network connection
- start your browser (Firefox, in this example)
- close all foreground tasks (apps/windows), except your browser
- log in to your Google Drive
- click the [+ New] button in the left above corner
- click [Folder Upload]
- browse to your "YYYY-MM-DD-hh.mm-Backup-FileNameOfYourBigFile" folder (formerly named "Temp1"), that contains the .001, 002 etc. pieces , e.g.:
"/media/mint/2511AT_MSTR/2025-10-17-23.20-Backup-VeraCryptContainerJohn.vcc/"
- single-click the folder name
- click the [Upload] button
- check: the message "Are you sure you want to upload all files from {FolderName}? Only do this if you trust the site" is shown
- click the [Upload] button
- check: the message "Uploading a large file or folder. For best results, avoid streaming and memory-intensive activities or split your upload into smaller batches"
- click the [Upload anyway] button
- check: a bar showing "Uploading 54 items" is shown
- check: the file with suffix "001" is being uploaded
- click [My Drive] in the left panel
- double-click the [2025-10-17-23.20-Backup-VeraCryptContainerJohn.vcc] folder
- check: the files are uploaded in suffix order, 001 first, than 002, etc.
⚠ Do not click anything in your browser, when the files are being uploaded, as it might interrupt the upload. Only press the [Alt] key, to show the desktop, and check the upload status.
- close all foreground tasks (apps/windows), except your browser
- leave the Google Drive page opened
- do not log off from Google Drive
- power off your monitor
- ☕ (uploading the pieces takes a while)
- go to your Google Drive
- go to the [My Drive\2025-10-17-23.20-Backup-VeraCryptContainerJohn.vcc] folder
- check: all pieces are uploaded successfully
- log out from your Google Drive
- go to [application menu\accessories\Files] (your File Manager)
- go to the target drive, on which the pieces of the "Master" BigFile are put
- click the target folder "YYYY-MM-DD-Backup-{NameOfMasterVeracryptContainer}", that contains the pieces
- press and hold the [Shift] button, and then press the [Delete] button, to permanently delete the folder
▹ Download the pieces from your Proton Drive 🔗
- go to [application menu\accessories\Files] (your File Manager)
- create a folder "Temp1" on your HDD/SSD/USB-stick
🛈 In this example, we're going to download the pieces of BigFile "VeraCryptContainerJohn.vcc" that are on your Proton Drive, to the "Temp1" folder, located on an external drive labled "2511AT_MSTR"
🛈 There must be enough free space available on the HDD/SSD/USB-stick: at least twice the size of your BigFile
- start your browser (Firefox, in this example)
- click the [☰] menu button in the right above corner
- click [Settings]
- scroll down to [Files and applications\Downloads]
- click the [Browse ...] button
- browse to and select the "Temp1" folder
- click [Open]
- close the "Settings" tab
- log in to your Proton Drive
- open the folder, containing the pieces (named "2025-10-17-23.20-Backup-VeraCryptContainerJohn.vcc" in this example)
- put a check mark in front of the file with suffix "001"
- click the [⭳] (download) button (in the top bar with the 🛈 and 🗑 symbol)
⚠ Do not click the [⋮] button behind the folder name, and than click [Download]. This results in a .zip file being downloaded to your RAM (volatile memory), not to the "Temp1" folder. The .zip file contains all pieces, and is therefore almost the size of the original BigFile. Unless you have a lot of RAM in your PC, this will crash your OS. A swap partition won't prevent a crash in this case. You need to download the pieces one-by-one, but even than, a single piece is first downloaded (build) in RAM, and than copied to the "Temp1" folder. There must be enough RAM available to temporarily store one piece (500MB in this example).
🛈 The method of assembling the downloaded file in RAM, and not in the "Downloads" folder (the common method for e.g. .iso files), has to do with the end-to-end file encryption of Proton Drive, that e.g. Google Drive lacks.
- check: a message "Browser might run out of memory. Your current browser does not support the downloading of large files/multiple files. Download the desktop app for seamless uploads and downloads" is shown
🛈 The message "Your current browser does not support downloading large/multiple files" is incorrect. I used Firefox 142.0 for this test, and that browser is perfectly capable of downloading large files, such as the above-mentioned Ubuntu Desktop .iso file which is about 6GB. Clicking several large .iso file links in a row, puts them in a queue, which is displayed when you click the [☰ button\Downloads]: works like a charm.
🛈 The Proton Drive desktop app, that doesn't have the limitations mentioned above, is only available for Windows/macOS/iOS/Android, not for Linux.
- click the [Continue on web] button
- check: the file with suffix "001" is being downloaded (build) in RAM
- check: when done, the file with suffix "001" is copied to the "Temp1" folder
🛈 Keep an eye on your free RAM (volatile memory), by looking at the [application menu\Administration\System Monitor\Resources\Memory and swap] graph.
- remove the check mark in front of the file with suffix "001"
- put a check mark in front of the file with suffix "002"
- click the [⭳] (download) button in the top bar with the 🛈 and 🗑 symbol
- wait for the file being downloaded to the "Temp1" folder
- repeat the four steps above for the other pieces (003, 004, etc.)
- check: all pieces are present in the "Temp1" folder
- log out from your Proton Drive
- click the [☰] menu button in the right above corner
- click [Settings]
- scroll down to [Files and applications\Downloads]
- click the [Browse ...] button
- browse to and select the [/home/${USER}/Downloads/] folder
- click [Open]
- close the "Settings" tab
- go to the 8. Reassemble the pieces section
▹ Download the pieces from your Google Drive 🔗
- go to [application menu\accessories\Files] (your File Manager)
- create a folder "Temp1" on your HDD/SSD/USB-stick, OR:
- when the "Temp1" already exists: empty the "Temp1" folder
🛈 In this example, we're going to download the pieces of BigFile "VeraCryptContainerJohn.vcc" that are on your Google Drive, to the "Temp1" folder, located on an external drive labled "2511AT_MSTR"
🛈 There must be enough free space available on the HDD/SSD/USB-stick: at least twice the size of your BigFile
- start your browser (Firefox, in this example)
- click the [☰] menu button in the right above corner
- click [Settings]
- scroll down to [Files and applications\Downloads]
- click the [Browse ...] button
- browse to and select the "Temp1" folder
- click [Open]
- close the "Settings" tab
- log in to your Google Drive
- click the [My Drive] button in the left panel
- single-click the folder containing the pieces of BigFile (named "2025-10-17-23.20-Backup-VeraCryptContainerJohn.vcc", in this example)
- click the [⋮] button, behind the folder name
- click [ ⭳ Download]
- check: the message "Preparing downlowd - zipping 1 file" is shown in the right below corner
- don't click anything in the Google Drive page
- leave the Google Drive page opened
- go to [application menu\accessories\Files] (your File Manager)
- go to the "Temp1" folder on your HDD/SSD/USB-stick
- check: the .zip containers, containing the pieces of BigFile are being build, you'll see something like this:
2025-10-17-23.20-Backup-VeraCryptContainerJohn.vcc-20251026T123915Z-1-001.TqL7PlFR.zip.part
2025-10-17-23.20-Backup-VeraCryptContainerJohn.vcc-20251026T123915Z-1-001.zip
2025-10-17-23.20-Backup-VeraCryptContainerJohn.vcc-20251026T123915Z-1-002.RjPNP3Yq.zip.part
2025-10-17-23.20-Backup-VeraCryptContainerJohn.vcc-20251026T123915Z-1-002.zip
- wait, until there are no more ".zip.part" files shown, implying "ready"
- right-click the *.001.zip file
- click [Extract here]
- check: a message panel "Extract archive - Extracting the files from *001.zip" is shown
- note: extracting the files takes a while
- check: in the "Temp1" folder, a folder is created (named "2025-10-17-23.20-Backup-VeraCryptContainerJohn.vcc", in this example)
- open the "2025-10-17-23.20-Backup-VeraCryptContainerJohn.vcc" folder
- check: several pieces of BigFile are present (*.001, *.002, etc.), but not all of them.
- go to the "Temp1" folder
- left-click the "*.001.zip" file
- press the [Shift]+[Delete] keys simultaneously (delete permanently)
- click the [Delete] button
- go to the "Temp1" folder
- right-click the *.002.zip file
- click [Extract here]
- check: a message panel "Extract archive - Extracting the files from *002.zip" is shown
- check: extracting the files takes a while
- open the "2025-10-17-23.20-Backup-VeraCryptContainerJohn.vcc" folder
- check: several pieces of BigFile are present (e.g. *.001 ... *.006), but not all of them.
- go to the "Temp1" folder
- left-click the "*.002.zip" file
- press the [Shift]+[Delete] keys simultaneously (delete permanently)
- click the [Delete] button
- repeat the above steps, for the "*.003.zip" file, the "*.004.zip" file, etc., until there are no more .zip files left
- open the "2025-10-17-23.20-Backup-VeraCryptContainerJohn.vcc" folder
- check: all pieces, except the last one, are 500 MB (or 1 GB, if you cut the BigFile into 1 GB pieces)
- check: all suffixes (001, 002 etc.) are present, meaning: all pieces are present
- move all pieces in this folder (*.001, *.002, etc.) to the "Temp1" folder (one level up)
- delete the empty "2025-10-17-23.20-Backup-VeraCryptContainerJohn.vcc" folder
- log out from your Google Drive
- click the [☰] menu button in the right above corner
- click [Settings]
- scroll down to [Files and applications\Downloads]
- click the [Browse ...] button
- browse to and select the [/home/${USER}/Downloads/] folder
- click [Open]
- close the "Settings" tab
- go to the 8. Reassemble the pieces section
▹ Reassemble the pieces 🔗
- go to [application menu\accessories\Files] (your File Manager)
- go to your HDD/SSD/USB-stick that contains the downloaded pieces of BigFile
- check: all pieces of BigFile are present in the "Temp1" folder
- left-click the "Temp1" folder
- press the [Ctrl]+[c] buttons on your keyboard simultaneously, to copy the file path to the "Temp1" folder to your clipboard
- go to [application menu\accessoiries\Text editor]
- create a blank "memo.txt" file
- paste the file path to "Temp1" on your clipboard, into the "memo.txt" file
- leave the text editor opened
- go to [application menu\accessories\Files] (your File Manager)
- go to your HDD/SSD/USB-stick that contains the downloaded pieces of BigFile
- create a folder "Temp2" on the HDD/SSD/USB-stick
- left-click the "Temp2" folder
- press the [Ctrl]+[c] buttons on your keyboard simultaneously, to copy the file path to the "Temp2" folder to your clipboard
- go to [application menu\accessoiries\Text editor]
- paste the file path to "Temp2" on your clipboard, into the opened "memo.txt" file
🛈 In this example, the downloaded pieces of BigFile "2025-10-17-23.20-VeraCryptContainerJohn.vcc" are in the Temp1 folder (the source folder), located on an external drive labled "2511AT_MSTR":
/media/mint/2511AT_MSTR/Temp1/
🛈 In this example, we're going to reassamble BigFile "2025-10-17-23.20-VeraCryptContainerJohn.vcc" in the Temp2 folder (the target folder), located on an external drive labled "2511AT_MSTR":
/media/mint/2511AT_MSTR/Temp2/
- change the following command to match your situation:
cat /PathToBackupDisk/Temp1/YYYY-MM-DD-mm.ss-Backup-VeraCryptContainer{Designation}.vcc.??? > /PathToBackupDisk/Temp2/YYYY-MM-DD-mm.ss-Backup-VeraCryptContainer{Designation}.vcc
In this example it is:
cat /media/mint/2511AT_MSTR/Temp1/2025-10-17-23.20-VeraCryptContainerJohn.vcc.??? > /media/mint/2511AT_MSTR/Temp2/2025-10-17-23.20-VeraCryptContainerJohn.vcc
⚠ Do not put quotes around the file path, otherwise you will get an error message "No such file or directory". The file path cannot contain spaces.
- copy the command, that matches your situation, to your clipboard
- go to [application menu\Terminal]
- right-click the blinking cursor
- click [Paste]
- press [Enter]
- check: when no error is presented, the cat app is conCATenating the pieces
- ☕ (this takes a while)
- check: the prompt is shown in the Terminal window, meaning "Done"
- click the [X] button, to close the Terminal window
- go to [application menu\accessories\Files] (your File Manager)
- browse to the "Temp2" folder
- check: the reassembled container is present
- check: file size of the container must be the same as the original BigFile (if available)
- open the container in the appropriate app, in this case VeraCrypt
- test: restore one file from the container, to [/home/${USER}/Documents]
- check: the file is restored correctly
⬥ List of 32 bit Linux distros (IA-32/i386) 🔗
▹ Lightweight 🔗
- antiX Linux runit & Runit (very complete, od4knb's choice! Debian based)
- Bodhi Linux (bare, but the most beautiful 32bit lightweight distro! Ubuntu based)
- BunsenLabs Boron (Debian based)
- Damn Small Linux (DSL) (antiX Runit based. Click "please go to the download page for DSL YYYY")
- Slax (SlackWare based)
- Sparky Linux Minimal GUI (Debian based)
- Tiny Core Linux CorePlus (click "Core x86 Release Files" beneath "Base system". TCL is a base OS)
▹ Mediumweight 🔗
- Linux Mint Debian Edition (LMDE) (od4knb's choice!)
- MX Linux Fluxbox & XFCE (Debian based)
- Refracta OS XFCE (Debian based)
- Ufficio Zero Linux: UZL-## & Minimal (base: UZL-##=LMDE; Minimal=Devuan, UZL-## = e.g. UZL-11)
- Void Linux XFCE (Void Linux is a base OS)
🛈 Debian doesn't create IA-32 ISO files anymore. The last 32 bit (i386) version was 12.12.0
▹ Ultra lightweight 🔗
- KolibriOS: not Linux, but very nice! Experimental, fits on a floppy disk, lots of old games included. [Read the review]
▹ Tools 🔗
- Rescuezilla (disk/partition backup) [od4knb's choice!]
- ShredOS (data wiper) (Click [▶ Assets])
▹ Reviews 🔗
- DebugPoint: 32 bit Linux distributions
- HowToGeek: Linux distributions to breathe new life into old hardware
- It's FOSS: 32 bit Linux distributions
- Reddit: 32 bit distro for beginners under 2 GB
▹ No live-system (only installer) 🔗
The following .iso files do not contain a "Live-OS" (Live-CD), but an installer app, to install the OS onto the internal HDD/SSD:
▹ No Desktop Environment (no GUI) 🔗
- Alpine Linux Standard & Extended
- CloneZilla (disk/partition backup)
- Gentoo install x86 minimal
- Gentoo AdminCD x86
- Refracta OS NOX (NOX = No X11)
- Slax Debian
- Void Linux Base-live & Base-rootfs-tarball
▹ ISO files that can't be booted using a Ventoy bootloader 🔗
- Porteus Linux (7 different i586 ISOs)
- Puppy Linux editions BookWormPup32-23.12-251101 [IA-32] and VanillaPup-10.0.91 [IA-32]
- Redox OS Desktop i686 2024-09-07_1225 (no support for USB peripherals or storage)
⬥ Ranking RAM Usage of Linux Distros 🔗
Ranking RAM usage at startup ("idle" state) of several lightweight and mediumweight Linux distro's: (booted from the original Live-OS (Live-CD) .ISO file, using a Ventoy bootloader)
- Damn Small Linux (DSL) (IA-32): 86 MB
- antiX Linux runit & Runit full (IA-32): 95 MB
- Bodhi Linux (IA-32): 140 MB
- antiX Linux runit full (amd64): 214 MB
- antiX Linux Runit full (amd64): 228 MB
- Sparky Linux Minimal GUI (i686): 250 MB
- Puppy Linux VanillaPup (amd64): 258 MB
- BunsenLabs Boron (IA-32): 265 MB
- MX Linux Fluxbox (IA-32): 500 MB (MX Linux is the middleweight nephew of lightweight antiX Linux)
- Puppy Linux BookwormPup64 (amd64): 552 MB
- Linux Mint Debian Edition Cinnamon - LMDE6 (IA-32): 780 MB
- MX Linux Xfce 23.6 (IA-32): 790 MB (23.6 was the last IA-32 version)
- Linux Mint Ubuntu Base Xfce (amd64): 830 MB
- Linux Mint Ubuntu Base MATE (amd64): 870 MB
- Linux Mint Ubuntu Base Cinnamon (amd64): 1.1 GB
- Linux Mint Debian Edition Cinnamon (LMDE) (amd64): 1.1 GB
- CachyOS-Xfce 250828 (amd64): 1.5 GB
- Zorin OS 18 Core GNOME (amd64): 1.9 GB
🛈 For comparison: Windows 11 uses 5.4 GB RAM at startup ¯\(ツ)/¯
The Bodhi IA-32 ISO is very beautiful, but bare (out-of-the-box): no firewall applet, no LibreOffice, no Chromium/Firefox, and it does not support the exFAT File System (my standard FS for transport media) ... You have to install Bodhi, instead of just booting the ISO, and add a lot of apps to make it workable. The antiX-full-ISO's (IA-32 and amd64) on the other hand, are very complete OOTB: all the apps and tools you need.
Even Ubuntu (amd64) is pretty bare OOTB: no inxi, gUFW, ifconfig, Timezone applet, GDebi/Captain etc. Debian doesn't even have a firewall installed, but the UFW Firewall package is in the repo though. Bare ISO's are not suitable for novice Linux users [ref2601CF] [ref2601CG].
For several years, my daily driver is Linux Mint Ubuntu Base Cinnamon (amd64): stable, fast, complete and beautiful, looks just like Windows 10, but, to run it you'll need at least a 2-core-2GHz-CPU + 4 GB RAM. It's not suitable for really old computers.
⬥ Error: "su: Authentication failure" Root password is not set (blank) 🔗
On Linux Mint (e.g.) the root password is not set (blank) by default. When you issue the command su - root to use the root account's privileges in the Terminal app, and you press [Enter] on the "Password:" prompt, you'll get an error message:
su: Authentication failure
For certain applications, such as [$ visudo] (to change the /etc/sudoers file), the sudo command (elevatad privileges for a normal user) doesn't suffice. When you issue sudo visudo you'll notice the message in the /etc/sudoers file:
# This file MUST be edited with the 'visudo' command as root.
To use the visudo command (e.g.) you have to set the root password first. Do the following:
- type
sudo passwd root - press [Enter]
- check: the prompt
[sudo] password for ${USER}:is shown
🛈 When this message is not presented, you can proceed to ref1
🛈 "${USER}" is your user name (account name). This name is shown before the "@" sign in the Terminal app.
- enter the password of ${USER}
- press [Enter]
🛈 The default password of ${USER} can be blank (e.g. Linux Mint or Ubuntu). In that case, just press [Enter] at the prompt.
- ※[ref1] check: the prompt
New password:is shown - type the new password for the "root" (administrator) account
⚠ The root password must be strong, otherwise you might get an error message "You must choose a longer password".
- press [Enter]
- check: the prompt
Retype new password:is shown - type the new password for the "root" account again
- press [Enter]
- check: the message
passwd: password updated succesfullyis shown - register the root password in your password database
You can now issue commands as root in the Terminal app, for example:
$ su - root
$ visudo
⬥ Error: "${USER} is not in the sudoers file" 🔗
In order to install application packages, you must have the appropriate rights to execute the "sudo" (SuperUserDO) command. Therefore, your user name must be registered in the [/etc/sudoers] file. On a default Debian installation, a normal user is not registered in the [/etc/sudoers] file. The sudo command temporarily gives elevated (but not root) privileges to a normal user.
When you issue a sudo command, e.g. [$ sudo apt install {PackageName}], and you receive the error message:
${USER} is not in the sudoers file
🛈 "${USER}" is your user name. Your user name is shown before the "@" sign in the Terminal app.
you have to perform the following actions:
- go to [application menu\Terminal]
- issue command:
$ su - root
- the prompt "Password:" is shown
- type the password of the root account
🛈 When the root password is not set (blank), you can't just press [enter] here. Go to ref1 beneath for instructions.
- press [enter]
- check: the Terminal prompt is now "root@{ComputerName}:~#"
- issue command:
$ visudo
- press the [arrow-down] button on your keyboard repeatedly
- go to section "# User privilege specification"
- add a line beneath "root...ALL":
${USER} ALL=(ALL:ALL) ALL
🛈 Replace "${USER}" with your user name, e.g.:
obi7kenobi ALL=(ALL:ALL) ALL
- press [Ctrl]+[o] (write out)
- message: "file name to write: /etc/sudoers.tmp"
- press [enter]
🛈 This file name is OK. The actual file is [/etc/sudoers]
- press [Ctrl]+[x] to exit the editing mode
- You can now issue the "sudo" command
🛈 ※[ref1] When the root password is not set, you can't issue the [$ su - root] command. You have to set the root password first. Follow the instructions in the Error: "su: Authentication failure" Root password is not set (blank) section.
⬥ Error: "Invalid audio PTS" when playing FLAC audio stream in conjuction with "--length=" #16416 🔗
WAITING Waiting for a solution from the MPV team
▹ Problem 🔗
When playing a FLAC encoded audio stream URL, using MPV Media Player 0.37.0, I get an error message "Invalid audio PTS". There's only a split second of sound.
▹ Steps to reproduce this problem 🔗
I issue command:
$ mpv --term-status-msg='${path}\naudio-bitrate:${audio-bitrate}' --length=15 'https://streams.radiomast.io/ref-lossless-ogg-flac-stereo' 2>&1 | tee -a ~/mpv.log
The logfile contains:
(+) Audio --aid=1 (flac 2ch 44100Hz)
AO: [pipewire] 44100Hz stereo 2ch s16
https://streams.radiomast.io/ref-lossless-ogg-flac-stereo
audio-bitrate:(unavailable)
Invalid audio PTS: 0.371519 -> 1033210.612971
https://streams.radiomast.io/ref-lossless-ogg-flac-stereo
audio-bitrate:(unavailable)
https://streams.radiomast.io/ref-lossless-ogg-flac-stereo
audio-bitrate:0 kbps
Exiting... (End of file)
https://streams.radiomast.io/ref-lossless-ogg-flac-stereo
audio-bitrate:0 kbps
Notes:
- the error
Invalid audio PTS: 0.371519 -> 1033210.612971, orInvalid audio PTS:with other values, in conjunction withaudio-bitrate:0 kbpsmeans: no sound - an Audio Presentation TimeStamp (Audio PTS) indicates the precise time a specific audio or video unit should be presented to the player
The above URL is taken from the Radio Mast reference audio streams page, which has the following properties:
- encoding: Ogg FLAC (Lossless)
- transport protocol: HTTPS
- bitrate: Variable (VBR)
- channelMode: Stereo (2ch)
- sample rate: 44100 Hz
- sample format: 16-bit
- nominal bitrate: between 300 and 1500 kbit/s
🛈 This reference audio stream is supposed to always produce sound
▹ Investigation 🔗
The URL of the failing audio stream, plays fine in the Firefox native audio player.
MPV Media Player discards all audio (and video) streams, that do not match the MPV requirements, regarding the audio PTS interval between two two consecutive audio frames. MPV doesn't allow more that X milliseconds (I can't find the exact value) between the audio PTS of two consecutive audio frames.
The MPV switches --no-correct-pts, --correct-pts=no or --initial-audio-sync=no do not correct this problem. ref
Disable PTS Correction:
- Open MPV's configuration file [/etc/mpv/mpv.conf]
- Add or modify the line
no-correct-pts=yes. This tells MPV to skip correcting timestamps, potentially resolving the error.
The [/home/${USER}/.config/mpv/] folder is empty.
I added a line no-correct-pts=yes to [/etc/mpv/mpv.conf], and issued:
$ mpv --term-status-msg='${path}\naudio-bitrate:${audio-bitrate}' --length=15 'https://streams.radiomast.io/ref-lossless-ogg-flac-stereo' 2>&1 | tee -a ~/mpv.log
result:
Error parsing option correct-pts (option doesn't take a parameter)
/etc/mpv/mpv.conf:2: setting option no-correct-pts='yes' failed.
I added a line containing "no-correct-pts" (withoud a parameter) to the [/etc/mpv/mpv.conf] file, and issued:
$ mpv --term-status-msg='${path}\naudio-bitrate:${audio-bitrate}' --length=15 'https://streams.radiomast.io/ref-lossless-ogg-flac-stereo' 2>&1 | tee -a ~/mpv.log
result:
(+) Audio --aid=1 (flac 2ch 44100Hz)
AO: [pipewire] 44100Hz stereo 2ch s16
https://streams.radiomast.io/ref-lossless-ogg-flac-stereo
audio-bitrate:(unavailable)
Invalid audio PTS: 0.371519 -> 7616754.044807
https://streams.radiomast.io/ref-lossless-ogg-flac-stereo
audio-bitrate:(unavailable)
https://streams.radiomast.io/ref-lossless-ogg-flac-stereo
audio-bitrate:0 kbps
Exiting... (End of file)
https://streams.radiomast.io/ref-lossless-ogg-flac-stereo
audio-bitrate:0 kbps
When I change --length=15 to --length=60, it still plays only for a split second.
[SUCCESS] When I leave out the --length=15 switch, and issue:
mpv --term-status-msg='${path}\naudio-bitrate:${audio-bitrate}' 'https://streams.radiomast.io/ref-lossless-ogg-flac-stereo' 2>&1 | tee -a ~/mpv-term-status-msg-2.log
the stream plays OK
[SUCCESS] When I issue command:
mpv --gpu-debug --log-file=mpv-term-status-msg.log 'https://streams.radiomast.io/ref-lossless-ogg-flac-stereo'
the stream plays OK as well.
I tried installing the newest MPV package mpv_0.40.0-dmo1, but failed, due to uncorrectable package dependencies.
▹ Cause 🔗
The --length= switch does not work correctly, when playing a FLAC audio stream.
▹ Solution 🔗
Unknown
▹ Workaround 🔗
Use another audio player to play FLAC audio streams. Unfortunately, antiXradio needs MPV as engine.
🛈 This issue is posted on Github.
⬥ Radio Kootwijk 🔗
Radio Kootwijk is located nearby Apeldoorn and Arnhem in The Netherlands. Perhaps you've seen it on the TV series Arcadia or the Mindhunters movie.
The radio technology of Radio Kootwijk was quite impressive, and its architecture still is. The desktop wallpaper of od4knb Linux gives a nice impression of the signal room. The building is located in the middle of beautiful nature, nearby De Hoge Veluwe National Park. Visit Radio Kootwijk and De Hoge Veluwe National Park!
[Website Radio Kootwijk] [On the map] [Tourist information] [Website De Hoge Veluwe National Park]
🛈 Radio Kootwijk (owned by Dutch State Forest Management) and De Hoge Veluwe National Park (a privately owned independent foundation are non-commercial endeavours.
⬥ Policy, comments and disclaimer 🔗
▹ General 🔗
od4knb Linux:
- is not part of antiX Linux, it only uses its software as a base for the "od4knb-antiXradio.iso/img" files
- has not been assigned a trademark by the Linux Mark Institute, but follows it's guidelines.
- keeps the antiX Linux principle "Proudly anti-fascist" in mind (not authoritarian, not nationalistic)
- does not accept any financial donations, but please consider a donation to antiX Linux or Linux Mint
- has no interest in the brands of devices/software/websites etc. mentioned in od4knb Linux publications
- doesn't earn any money with it's activities in any way, and does not receive any non-monetary compensation
- presents all software downloads under the GNU General Public License v3 (GPLv3): free to use, open source, but it is greatly appreciated if you put a link 🔗 to od4knb Linux in your publications/software
- presents all non-software downloads (audio files, playlists, manuals etc.) as Public Domain: free for personal and commercial use, unless mentioned otherwise in the Licenses section
▹ Distributions (distros) 🔗
od4knb Linux:
- cannot guarantee that its distibutions (.iso/.img files, distros, containing a Linux OS) are completely safe and unwreckable
- has done it's very best to prevent malware slipping into the installation: ~ the internet browser has not been used for browsing the Internet on the Build PC ~ the network egress firewall is set to "High", unsafe UDP/TCP ports are closed ~ this SourceForge site is 2FA protected ~ scripts are carefully written and thoroughly tested
▹ Applications/Packages 🔗
od4knb Linux reports the following:
- the applications (apps), integrated (installed) in the od4knb distributions (distros), have been installed using installer packages from the official Debian/Ubuntu/Linux Mint/MX Linux repositories, as far as possible
- the following integrated applications, that are not in the official Debian/Ubuntu/Linux Mint/MX Linux repositories, have been installed using packages from the official application websites: ~ Cudatext ~ Refracta Snapshot ~ Rescuezilla ~ Safing Portmaster ~ Ventoy ~ Veracrypt
▹ Radio station playlists 🔗
od4knb Linux:
- has not checked the radio stations stream URLs in the playlists for legality, because checking this is extremely complicated and time consuming. To check the radio stations stream URLs for legality, there are several checks that need to be carried out: does the broadcaster: ~ earn money by broadcasting (commercials)? ~ receive donations (also considered income by the tax authorities)? ~ pay its taxes to the government? ~ pay a fee to the music creators association? ~ call for violence? ~ broadcast illegal/criminal/offensive/discriminatory spoken content? ~ etcetera
- has not tested all radio station stream URLs in the playlists, so it is possible that some stations will be silent
⚠ You cannot test audio/video streaming URLs in a different geographic location (another country), even through a VPN connection. Streaming servers may be "Geo-blocked". When testing streaming URLs from servers abroad, you might encounter streaming servers, that have a list of VPN server IP addresses aboard, that answer your connection request with a HTTP 403 Forbidden error, which a tester in the country where the streaming server is located won't receive.
⚠ If you notice something wrong, please let me know! I will take appropriate measures.
⬥ Post scriptum 🔗
▹ Contact 🔗
od4knb monkey tail gmail dot com
▹ Notice 🔗
- The antiXradio app is an antiX Linux® project, maintained by @robin
- antiX Linux®, and antiXradio, are not connected in any way to the Antix Music Network.
- od4knb Linux® and its od4knb antiXradio project, are not part of antiX Linux
▹ Licenses 🔗
▹ GPLv3 License 🔗
- All od4knb Linux software is published under the GNU General Public License v3 (GPLv3), except for the content registered under "Other Licenses" beneath
- Anyone can copy, modify and distribute this software
- You have to include the license and copyright notice with each and every distribution
- You can use this software privately
- You can use this software for commercial purposes
- If you dare build your business solely from this code, you risk open-sourcing the whole code base
- If you modify it, you have to indicate the changes made to the code
- Any modifications of this code base MUST be distributed with the same license, GPLv3
- This software is provided without warranty
- The software author or license can not be held liable for any damages inflicted by the software
▹ Other licenses 🔗
- Veracrypt is Open Source and GPLv3 compliant, but not compatible with the DebianFreeSoftwareGuidelines (DFSG)
- wNoise.org/white-noise-sounds.html audio files are public domain: free to download for any use, including commercial use.
- Radio Mast reference audio streams are free for personal and commercial use
- Site logo is created by Braja Omar, permission to use for the od4knb Linux project only
- od4knb Linux manuals, HowTos, documentation and radio station lists are public domain
- The Proton VPN Client for Linux is Open Source, and GPLv3 compliant
▹ Under Copyright 🔗
- Desktop Wallpaper copyright owner: National Archives of The Netherlands (Collection Spaarnestad/Het Leven/Photographer unknown/ref. SFA022812731), permission to use for the od4knb Linux project only
▹ Donations 🔗
- antiX Linux (click the [Donate] button at the end of the page)
- Linux Mint
🛈 od4knb Linux doesn't accept any donations
▹ Credits 🔗
- Linux® is the registered trademark of Linus Torvalds in the U.S. and other countries.
▹ Special thanks to 🔗
- Hendrik Jansen, maintainer of Webradiostreams.nl, for providing many URLs in the radio station lists
- @alpage2, for testing the huge amount of streams in 2501KX-{version}-antiXradio-station-list-United-Kingdom.txt
- @robin, for his in-depth antiX Linux knowledge
- Albert Santoni of Radio Mast, for his help creating the 2501KV-{version}-antiXradio-reference-audio-streams.txt file
- Garf from GarfNet, for providing a lot of UK streaming URLs
- Stichting Willem Smit Historie Nijmegen for providing the desktop wallpaper
- Reid from The MC2 Method and wNoise, for providing the sleep sound MP3 audio files
⚠ 🛈 🗑 ⠇ ☰ ⚌ ⭳ ⏏ 🍀☕ 🏠 🖒 🖓 🯄 📷 🖼 ⬥ 🔗 🔄 ▼ ▲ ▶ ◀ ■ ◯ ▬ • ✓ 🎵 🎚 □ ☑ ❌ ✅ 1️⃣ 2️⃣ 3️⃣ 4️⃣ 🎯 (goal) 🔎 📌 🚨(TLDR) ⏻ ⎊ ⚙(gear)※