Building a Custom OS Template for Linux

DaDesktop already supports many well-known Linux distributions, but you might occasionally need one we don't currently offer. We're happy to accommodate most mainstream Linux distros—just provide the download location for the ISO file and specify which server you'd like to use for the custom OS template.

Important:

About Disk Partitioning
Custom templates need either a single partition, or two: one for EFI/Boot and the other for the system and data.
LVM partitioning is not supported, so avoid using it.
Incorrect partitioning will prevent automatic disk resizing and other features from working.

Linux Template

Once the ISO file is downloaded to the server, you can find it in your account under Admin Menu->OS IMAGES->ISO FILES.

Next, set up the template under Admin Menu->OS IMAGES->CUSTOM OS TEMPLATES

Please follow this guide carefully, and complete all the steps as otherwise full DaDesktop operation is likely not to work.

  1. Install the operating system
  2. Set both the default username and password to "student"
  3. Enable auto-login for the "student" account
  4. Apply the DaDesktop or your own brand wallpaper
    DaDesktop or your own brand wallpaper
  5. Many distributions now default to Wayland as the display driver. While it works with DaDesktop, we currently recommend switching back to X11.

    To disable Wayland:

    Edit /etc/gdm/custom.conf, for example:

    # Uncomment the line below to force the login screen to use Xorg
            WaylandEnable=false
            

    Then log out and log back in.

  6. Install spice-vdagent using your package manager (the easiest method). Depending on your distribution, it may already be present.
    • After installation, reboot; you should see two processes running: spice-vdagent and spice-vdagentd.
    • Install spice-vdagent, using your package manager  in linux
  7. Install qemu-guest-agent, again best done via your package manager.
  8. Install X11VNC. Note: for certain distributions, you may need to add extra repositories—for example, the 'epel' repo for Red Hat-based systems like Oracle Linux or Rocky Linux.
  9. Configure X11VNC
    • Make sure X11VNC is installed.
    • Run sudo -i to open a root shell.
    • Execute the command below to have X11VNC start automatically after a reboot:

      cat > /etc/xdg/autostart/x11vnc.desktop <<EOF
                      [Desktop Entry]
                      Type=Application
                      Exec=/usr/bin/x11vnc -N -no6 -rfbportv6 -1 -allow 10.0.3.1 -nopw -shared -alwaysshared -forever -repeat -nowireframe -noscr -nocursorshape -skip_lockkeys -cursor_drag -grab_buster -deferupdate 10 -speeds 6000,5000,20 -afteraccept announce-vnc-users.sh -gone announce-vnc-users.sh
                      Hidden=false
                      X-MATE-Autostart-enabled=true
                      X-MATE-AutoRestart=true
                      Name[en_US]=X11VNC
                      Name=X11VNC
                      Comment[en_US]=Share desktop over VNC
                      Comment=Share desktop over VNC
                      EOF
                      
  10. Set up the desktop notification script using the commands below:

    cat > /usr/local/bin/announce-vnc-users.sh <<EOF
            notify-send -a x11vnc "VNC users connected: $RFB_CLIENT_COUNT"
            EOF
            chmod +x /usr/local/bin/announce-vnc-users.sh
  11. Restart the machine.
  12. Verify your firewall settings: TCP port 5900 must be open. For example, use ss -pntl.

  13. Disable the sudo password (recommended).
  14. Check that everything is working correctly.

    When you connect, if the URL is updated with a token query parameter, it's a sign that X11VNC is functioning properly. Additionally, the text box in the bottom-left corner—used for copying and pasting between your local desktop and the virtual machine—should also be operational.

     

Please Note

If you need extra optional features, such as:

please get in touch with DaDesktop Tech Support.