1. Information

  • Debian 8.11 Jessie, 9.13 Stretch, 10.13 Buster are End Of Life.

  • Debian 8.11 Jessie, 9.13 Stretch, 10.13 Buster cannot provide systemd networking.

  • Debian 8.11 Jessie, 9.13 Stretch, 10.13 Buster are missing remmina RDP client package configuration.

  • Debian 8.11 Jessie, 9.13 Stretch don’t provide the xorgxrdp RDP server package.

  • The older the distro the smaller the iso file and the faster it boots.

  • The older the USB key the slower it boots.

  • Newer computers require the latest wireless firmware packages for the wireless interface.

    • TBHFNB-IT01, Bullseye: No wireless interface.

  • Old computers (SMRU-ANC-OR1) can’t boot from a new and fast USB key (32 GB SanDisk).

  • Some UEFI computers can’t boot from a USB key with a 32-bit operating system.

    • SMRU-ANC-OR1, Dell Vostro 1014

    • SMRUNB-IT01, Dell Latitude 5300

    • TBHFNB-IT01, Dell Latitude 5450

    • TBHFWS-IT03, Dell Precision 3660

    • TBHF-TMP-MRM, Dell OptiPlex 3010

  • Note: Do not use 32-bit architecture.

  • Note: Do not use legacy networking.

  • Note: Do not use Debian 8.11 Jessie, 9.13 Stretch, 10.13 Buster distro’s.

  • Make sure the following works:

    • Computer can boot from USB key.

    • Wireless interface is up and running.

    • Computer has been given a DHCP IP address.

    • Todo: Computer connects to smru-clinic and not to Private wireless network.

    • OpenBox works and Firefox shows ANC server login page of ANC application.

    • It is possible to RDP into the ANC client from a Windows computer.

    • It is possible to RDP into the PMS server from the ANC client.

  • For older and slower computers use the oldest distro that works.

  • For newer and faster computers use the oldest distro that can get the wireless interface up and running.

    Distro                  End of life
    -------------------     -----------
    Debian 8 Jessie         2020-06-30
    Debian 9 Stretch        2022-07-01
    Debian 10 Buster        2024-06-30
    Debian 11 Bullseye      2026-08-31
    Debian 12 Bookworm      2028-06-10
    Debian 13 Trixie        2030-06-30
  • Bootup time measurements were done on 2025-09-04.

                                                                                                            Ethernet        Wireless
                                            BIOS            UEFI            UEFI            UEFI            UEFI            UEFI
    Debian Host/Target:             Wi-Fi   SMRU-ANC-OR1    SMRUNB-MSB05    SMRUNB-IT01     TBHFNB-IT01     TBHF-TMP-MRM    TBHF-TMP-MRM    USB Key
    -------------------             -----   ------------    ------------    -----------     -----------     ------------    ------------    ---------------------
    Bullseye 11.11 systemd x64      1)      42 seconds      45 seconds      38 seconds      34 seconds 1)   40 seconds      37 seconds 2)   Memorex, grey, 1 GB
    Bullseye 11.11 systemd x64      1)      3)              27 seconds      22 seconds      21 seconds 1)   32 seconds      30 seconds 2)   SanDisk, black, 32 GB
    Bookworm 12.11 systemd x64      OKAY    58 seconds      62 seconds      46 seconds      45 seconds      51 seconds      46 seconds 2)   Memorex, grey, 1 GB
    Bookworm 12.11 systemd x64      OKAY    3)              30 seconds      22 seconds      19 seconds      43 seconds      44 seconds 2)   SanDisk, black, 32 GB
    Trixie 13.0 systemd x64         OKAY    58 seconds      59 seconds      44 seconds      40 seconds      47 seconds      47 seconds 4)   Memorex, grey, 1 GB
    Trixie 13.0 systemd x64         OKAY    3)              29 seconds      21 seconds      20 seconds      38 seconds      37 seconds 4)   SanDisk, black, 32 GB
    
    Trixie 13.0 systemd x64         OKAY    47 seconds      33 seconds      24 seconds      22 seconds      38 seconds      38 seconds 4)   SanDisk, black, 16 GB
    Trixie 13.0 systemd x64         OKAY    47 seconds      43 seconds      37 seconds      33 seconds      42 seconds      43 seconds 4)   SanDisk, pink, 16 GB
  • Bootup time measurements were done on 2025-09-04.

    Debian Host/Target:             Wi-Fi   smrunb-anc25    smrunb-anc32    SMRUNB-IT01
    -------------------             -----   ------------    ------------    -----------     -----------     ------------    ------------    ---------------------
    Trixie 13.0 systemd x64         OKAY    50 seconds      ## seconds      ## seconds      ## seconds      ## seconds      ## seconds      Kingston, blue,  4 GB, SD Card
    Trixie 13.0 systemd x64         OKAY    36 seconds      ## seconds      ## seconds      ## seconds      ## seconds      ## seconds      SanDisk, black, 32 GB, SD Card, 100 MB/s
    Trixie 13.0 systemd x64         OKAY    40 seconds      36 seconds      ## seconds      ## seconds      ## seconds      ## seconds      SanDisk, black, 16 GB, USB Key
    Trixie 13.0 systemd x64         OKAY    37 seconds      38 seconds      ## seconds      ## seconds      ## seconds      ## seconds      SanDisk, black, 32 GB, USB Key
    Trixie 13.0 systemd x64         OKAY    41 seconds 5)   38 seconds 5)   ## seconds      ## seconds      ## seconds      ## seconds      SanDisk, grey,  16 GB, Micro SD Card
    Trixie 13.0 systemd x64         OKAY    42 seconds 5)   39 seconds 5)   ## seconds      ## seconds      ## seconds      ## seconds      UDInfo,  black,  8 GB, Micro SD Card

ok: No build errors.
OK: Working in VirtualBox with ethernet network connection.
OKAY: Working in Notebook with wireless network connection.

1) TBHFNB-IT01: USB key boots, but no wlan0 interface.
TBHFNB-IT01 + EnGenius USB Wi-Fi adapter: USB key boots, and wlan0 interface.
2) TBHF-TMP-MRM + Archer T2U Nano USB Wi-Fi adapter: USB key boots, but no wlan0 interface.
TBHF-TMP-MRM + EnGenius USB Wi-Fi adapter: USB key boots, and wlan0 interface.
3) SMRU-ANC-OR1 + 32 GB SanDisk, new and fast USB Key: USB key not found.
4) TBHF-TMP-MRM + EnGenius USB Wi-Fi adapter: USB key boots, and wlan0 interface but it is down and no ip address.
5) Micro SD Card inside USB adapter.

  • USB key boots, and wlan0 interface but it is down and no ip address.

  • Tested on TBHF-TMP-MRM with ethernet cable connected to Private network.

    sudo systemctl --type=service
    sudo systemctl restart systemd-networkd
    sudo systemctl status systemd-networkd
    sudo systemctl start wpa_supplicant@wlan0
    sudo systemctl status wpa_supplicant@wlan0
    sudo ip link set wlan0 up
    USB Wi-Fi Adapter       Color   Color   wlan0   Mac address             lsusb
    ----------------------- -----   -----   -----   -----------------       -------------------------------------
    Asus USB-AX55 Nano      Black   Silver  -       -                       0b05:1a62 ASUSTek Computer, Inc. 802.11ax WLAN Adapter
    D-Link DWA-132          Black   Silver  UP      54:b8:0a:45:af:ee       2001:3c22 D-Link Corp. 802.11 n WLAN, <TBHF-OPS-MRM: 3BB>
    EnGenius EUB9707        White   Silver  UP      00:02:6f:c8:b9:72       1740:9707 Senao 802.11 n WLAN, <TBHF-OPS-MRM: Private>
    EnGenius EUB9707        White   Silver  UP      00:02:6f:c8:b9:7c       1740:9707 Senao 802.11 n WLAN
    MSi US300EX Lite        White   Copper  UP      00:1f:cf:52:95:19       148f:3070 Ralink Technology, Corp. RT2870/RT3070 Wireless Adapter
    TP-LINK TL-WN725N       White   Silver  UP/Auth a0:f3:c1:18:50:e5       0bda:8176 Realtek Semiconductor Corp. RTL8188CUS 802.11n WLAN Adapter, <TBHF-OPS-MRM: Guest>
    TP-LINK TL-WN725N       Black   Silver  UP      c0:4a:00:28:98:d7       0bda:8179 Realtek Semiconductor Corp. RTL8188EUS 802.11n Wireless Network Adapter
    TP-LINK TL-WN725N       Black   Gold    UP      78:8c:b5:ed:ac:3f       0bda:8179 Realtek Semiconductor Corp. RTL8188EUS 802.11n Wireless Network Adapter
    tp-link Archer T2U Nano Black   Gold    UP      60:a4:b7:82:ef:01       2357:011e TP-Link AC600 wireless Realtek RTL8811AU [Archer T2U Nano]
    tp-link Archer T2U Nano Black   Gold    UP      60:a4:b7:82:e4:67       2357:011e TP-Link AC600 wireless Realtek RTL8811AU [Archer T2U Nano]
    tp-link Archer T2U Nano Black   Gold    UP      60:a4:b7:82:ef:7c       2357:011e TP-Link AC600 wireless Realtek RTL8811AU [Archer T2U Nano]
  • Run the following command on the TBHFNB-IT01 notebook that has two USB3 ports inside Debian 13.1 Trixie.

  • Type lsusb -v | grep -Ei '^Bus.*Device|bcdUSB|idVendor|idProduct' | grep -Eiv "Couldn’t open device, some information will be missing"

    USB Keys
    Key             Color   Size    Type    Id              Vendor                  Product                         SMRU-ANC-OR1
    -------         -----   -----   ----    ---------       ----------------------  ----------------------------    ------------
    Memorex         Grey     1 GB   2.00    12F7:1E23       Memorex Products, Inc.  TravelDrive 2007 Flash Drive    OK
    SanDisk         Blue     8 GB   2.10    0781:5567       SanDisk Corp.           Cruzer Blade                    OK
    SanDisk         Blue    16 GB   2.00    0781:5567       SanDisk Corp.           Cruzer Blade                    OK
    SanDisk         Pink    16 GB   2.00    0781:5567       SanDisk Corp.           Cruzer Blade                    OK
    SanDisk         Black   16 GB   3.10    0781:5583       SanDisk Corp.           Ultra Fit                       OK
    SanDisk         Black   32 GB   3.20    0781:5583       SanDisk Corp.           Ultra Fit                       x
    USB Key: SanDisk Black 32 GB 0781:5583
    Acer Aspire 4730Z       OK      smrunb-anc40
    Acer emachines D725     OK
    Dell Vostro 1014        x       SMRU-ANC-OR1
    Dell Vostro 1450        OK
    Dell Vostro 2421        OK
    Dell Latitude 3440      OK      smrunb-anc47
    Dell Latitude E5470     OK      smrunb-anc25
    LENOVO 20369            OK      smrunb-anc28
    TOSHIBA Satellite C640  OK
    TOSHIBA Satellite C650  OK      smrunb-anc32
    ANC Clients
    smrunb-anc20    192.168.30.20   Debian 12.0     Dell Vostro 1450        1005:b113 Apacer Technology, Inc. Handy Steno/AH123 / Handy Steno 2.0/HT203
    smrunb-anc21    192.168.25.21   Debian 12.0     Acer emachines D725     SD Card
    smrunb-anc22    192.168.25.22   Debian 12.0     Acer emachines D725     SD Card
    smrunb-anc23    192.168.25.23   Debian 12.0     Acer emachines D725     SD Card
    smrunb-anc24    192.168.28.24   Debian 12.0     Dell Vostro 2421        090c:1000 Silicon Motion, Inc. - Taiwan (formerly Feiya Technology Corp.) Flash Drive
    smrunb-anc25    192.168.25.25   Debian 12.0     Dell Latitude E5470     SD Card                                 _Spare
    smrunb-anc26    192.168.25.26   Debian 12.0     Acer emachines D725     SD Card
    smrunb-anc27    192.168.25.27   Debian 12.0     Acer emachines D725     SD Card
    smrunb-anc28    192.168.25.28   Debian 12.0     LENOVO 20369            0781:5583 SanDisk Corp. Ultra Fit
    smrunb-anc29    192.168.27.29   Debian 12.0     TOSHIBA Satellite C640  0781:5583 SanDisk Corp. Ultra Fit
    smrunb-anc30    192.168.27.30   Debian 12.0     TOSHIBA Satellite C640  0781:5583 SanDisk Corp. Ultra Fit
    smrunb-anc32    192.168.27.32   Debian 12.0     TOSHIBA Satellite C650  0781:5583 SanDisk Corp. Ultra Fit       _Spare
    smrunb-anc35    192.168.28.35   Debian 12.0     TOSHIBA Satellite C640  090c:1000 Silicon Motion, Inc. - Taiwan (formerly Feiya Technology Corp.) Flash Drive
    smrunb-anc36    192.168.27.36   Debian 12.0     TOSHIBA Satellite C640  1005:b113 Apacer Technology, Inc. Handy Steno/AH123 / Handy Steno 2.0/HT203
    smrunb-anc37    192.168.30.37   Debian 12.0     Dell Latitude E5470     0781:5583 SanDisk Corp. Ultra Fit
    smrunb-anc38    192.168.30.38   Debian 12.0     Dell Vostro 2421        090c:1000 Silicon Motion, Inc. - Taiwan (formerly Feiya Technology Corp.) Flash Drive
    smrunb-anc39    192.168.30.39   Debian 12.0     Dell Vostro 2421        0781:5583 SanDisk Corp. Ultra Fit
    smrunb-anc40    192.168.28.40   Debian 12.0     Acer Aspire 4730Z       1005:b113 Apacer Technology, Inc. Handy Steno/AH123 / Handy Steno 2.0/HT203
    smrunb-anc45    192.168.27.45   Debian 12.0     Dell Vostro 1450        0781:5583 SanDisk Corp. Ultra Fit       Segmentation fault      Input/output error
    smrunb-anc46    192.168.27.46   Debian 12.0     Dell Vostro 1450        0781:5583 SanDisk Corp. Ultra Fit
    smrunb-anc47    192.168.30.47   Debian 12.0     Dell Latitude 3440      0bda:0177 Realtek Semiconductor Corp. USB2.0-CRW
    smrunb-anc48    192.168.25.48   Debian 12.0     Dell Latitude E5470     SD Card ???
    smrunb-anc49    192.168.28.49   Debian 12.0     Dell Latitude E5470     SD Card ???

2. ISO File

  • Log in as smru on tbhf-tst-mrm.

  • The default architecture is x64.

  • The default distribution is trixie.

  • The default networking is systemd.

  • Enter the following commands at a Command Line with root privileges.

    # Install required packages.
    apt-get --yes install debootstrap
    apt-get --yes install dosfstools        # Contains mkfs.vfat command.
    apt-get --yes install mtools            # Contains mcopy and mmd commands.
    apt-get --yes install openssh-client    # Contains scp command.
    apt-get --yes install squashfs-tools
    apt-get --yes install unzip
    apt-get --yes install xorriso
    
    # Install required packages.
    apt-get --yes install isolinux syslinux syslinux-common syslinux-efi
    apt-get --yes install grub-efi-amd64-bin grub-efi-ia32-bin grub-pc-bin
    # Create Debian tarball.
    tarball=/tmp/debian-rootfs.tgz; rm -rf /tmp/target $tarball; mkdir -p /tmp/target
    
    debootstrap --exclude=isc-dhcp-client,isc-dhcp-common --keep-debootstrap-dir --make-tarball=$tarball bullseye /tmp/target
    debootstrap --exclude=isc-dhcp-client,isc-dhcp-common --keep-debootstrap-dir --make-tarball=$tarball bookworm /tmp/target
    debootstrap --exclude=isc-dhcp-client,isc-dhcp-common --keep-debootstrap-dir --make-tarball=$tarball trixie   /tmp/target
    # Get architecture, distro and latest Debian point release information.
    tar xfz "${tarball}" --directory=/tmp/target --wildcards var/cache/apt/archives/base-files*.deb
    dpkg-deb -x /tmp/target/var/cache/apt/archives/base-files_*.deb /tmp/target
    ARCH="$(ls /tmp/target/var/cache/apt/archives/dash* | sed -e 's/^.*_\(.*\)\.deb$/\1/')"
    ARCH="$(echo "${ARCH}" | sed -e 's/i386/x86/' | sed -e 's/amd64/x64/')"
    DISTRO="$(cat /tmp/target/debootstrap/suite)"
    if [ -z "${DISTRO}" ]; then
      DISTRO="$(grep -i '^VERSION=' /tmp/target/usr/lib/os-release | sed -e 's/^.*(\(.*\))"$/\1/')"
    fi
    RELEASE="$(cat /tmp/target/etc/debian_version)"
    RELEASE="$(echo "${RELEASE}" | sed -e 's|bookworm/sid|12|')"
    RELEASE="$(echo "${RELEASE}" | sed -e 's|trixie/sid|13|')"
    echo $RELEASE $DISTRO $ARCH
    # Add architecture, distro and Debian point release info to tarball name.
    # Use binary instead of alias to prevent interactive prompt when file already exists.
    /bin/mv "${tarball}" "/tmp/debian-${RELEASE}-${DISTRO}-rootfs-${ARCH}.tgz"
    
    # List tarballs.
    ls -alt /tmp/debian-*rootfs-*.tgz
    
    # Save tarball.
    DATE=$(date +"%Y-%m-%d")
    SOURCE=/tmp/debian-${RELEASE}-${DISTRO}-rootfs-${ARCH}.tgz
    TARGET=/home/Other/${DATE}-debian-${RELEASE}-${DISTRO}-rootfs-${ARCH}.tgz
    scp -p ${SOURCE} smru@10.10.1.2:${TARGET}
    # Get latest stable Delta Linux Tools.
    scp -p smru@10.10.1.2:/media/Windows/Software/_Delta/delta-linux-tools-1.9.1-1-all.deb /tmp
    ls -al /tmp/delta-linux-tools-1.9.1-1-all.deb
    dpkg -i /tmp/delta-linux-tools-1.9.1-1-all.deb
    
    # Optional: Get latest unstable Delta Linux Tools.
    scp -p smru@10.10.1.2:/media/Windows/Software/_Delta/delta-linux-tools-1.9.2beta-1-all.deb /tmp
    ls -al /tmp/delta-linux-tools-1.9.2beta-1-all.deb
    dpkg -i /tmp/delta-linux-tools-1.9.2beta-1-all.deb
    # Optional: Build and copy kernel module for TP-Link AC600 Realtek RTL8811AU [Archer T2U Nano].
    # See https://github.com/morrownr/8821au-20210708
    # Log in on a Debian GNU/Linux computer with same architecture and point release as this target.
    sudo apt-get update
    sudo apt-get upgrade
    sudo apt-get dist-upgrade
    sudo apt-get autoremove
    sudo apt-get autoclean
    uname -r
    
    # Restart the computer.
    cd /tmp
    uname -r
    sudo apt-get install bc build-essential dkms git iw libelf-dev linux-headers-$(uname -r) rfkill
    git clone https://github.com/morrownr/8821au-20210708.git
    cd 8821au-20210708
    make
    
    # Optional: Only do on target.
    sudo make install
    sudo modprobe 8821au
    sudo lsmod | grep au
    
    scp -p 8821au.ko smru@10.10.1.2:/home/Other/8821au-$(uname -r).ko
    
    # Log in as *smru* on *tbhf-tst-mrm*.
    scp -p smru@10.10.1.2:/home/Other/8821au-<kernel version>.ko /tmp/8821au.ko
    # Optional: Latest drivers for TP-Link AC600 Realtek RTL8811AU [Archer T2U Nano].
    cd /tmp
    wget http://ftp.us.debian.org/debian/pool/non-free-firmware/f/firmware-nonfree/firmware-realtek_20250808-1_all.deb
    ls -al
    cd -
    # Optional: Latest drivers for Ralink.
    cd /tmp
    wget http://ftp.us.debian.org/debian/pool/non-free-firmware/f/firmware-nonfree/firmware-amd-graphics_20250808-1_all.deb
    wget http://ftp.us.debian.org/debian/pool/non-free-firmware/f/firmware-nonfree/firmware-misc-nonfree_20250808-1_all.deb
    wget http://ftp.us.debian.org/debian/pool/non-free-firmware/f/firmware-nonfree/firmware-linux-nonfree_20250808-1_all.deb
    firmware-amd-graphics
    ls -al
    cd -
    # Create custom iso file.
    SOURCE=/tmp/debian-11.11-bullseye-rootfs-x64.tgz
    SOURCE=/tmp/debian-12.11-bookworm-rootfs-x64.tgz
    SOURCE=/tmp/debian-13.1-trixie-rootfs-x64.tgz
    make-delta-debian-live-iso                                                                       --tarball $SOURCE
    make-delta-debian-live-iso                   --image anc                                         --tarball $SOURCE
    make-delta-debian-live-iso                   --image anc   --networking legacy --tarball $SOURCE
    make-delta-debian-live-iso                   --image anc   --startpage "http://tbhf-anc/anc-app" --tarball $SOURCE      # Old ANC application.
    make-delta-debian-live-iso --distro Bullseye --image anc   --startpage "http://tbhf-anc/anc-app" --tarball $SOURCE      # Old ANC application.
    make-delta-debian-live-iso --distro Bookworm --image anc   --startpage "http://tbhf-anc/anc-app" --tarball $SOURCE      # Old ANC application.
    make-delta-debian-live-iso --distro Trixie   --image anc   --startpage "http://tbhf-anc/anc-app" --tarball $SOURCE      # Old ANC application.
    make-delta-debian-live-iso                   --image anc   --startpage "http://tbhf-anc:5000"    --tarball $SOURCE      # New ANC application using TBHF-ANC-SKK.
    make-delta-debian-live-iso                   --image anc   --startpage "http://tbhf-pms:8000"    --tarball $SOURCE      # New ANC application using SMRU-PMS-SKK.
    make-delta-debian-live-iso                   --image anc   --startpage "https://tbhf-anc:5001"   --tarball $SOURCE      # New ANC application using TBHF-ANC-SKK.
    make-delta-debian-live-iso                   --image anc   --startpage "https://tbhf-pms:8001"   --tarball $SOURCE      # New ANC application using SMRU-PMS-SKK.
    make-delta-debian-live-iso                   --image email                                       --tarball $SOURCE
    
    # Restore hostname if changed inside chroot.
    hostname                # tbhf-anc-client
    echo "tbhf-tst-mrm" > /proc/sys/kernel/hostname
    hostname                # tbhf-tst-mrm
  • Verify the installation settings.

  • Press Enter to continue.

  • Wait about 30 minutes for the installation to finish.

3. USB Key

3.1. Linux

  • Attach the USB device.

  • Enter the following commands at a Command Line with root privileges.

    scp -p /tmp/tbhf-*-live/*.iso smru@10.10.1.2:/home/Other
    
    lsblk -l | grep -E 'disk|part'
    dd if=/home/Other/YYYY-MM-DD-tbhf-anc-client-#.#-x64-live.iso of=/dev/sdX bs=4M; sync
    lsblk -l | grep -E 'disk|part'
    ISOFILE=/home/Other/2025-09-11-tbhf-anc-client-13.1-systemd-x64-v1.8.8-834eaea-live.iso
    lsblk -l | grep -E "disk|part"
    dd if=${ISOFILE} of=/dev/sdX bs=4M; sync
    lsblk -l | grep -E "disk|part"
  • Detach the USB device.

3.2. Windows

  • Enter the following commands at a Command Line.

    ISOFILE=/tmp/tbhf-vpn-client-11.##-x64-live/YYYY-MM-DD-tbhf-vpn-client-test.vpn-11.##-x64-live.iso
    KEYFILE=/media/Windows/Software/_Delta/id_rsa-auto
    scp -B -i ${KEYFILE} -o StrictHostKeyChecking=no -p ${ISOFILE} Administrator@TBHFWS-IT01:C:/Tmp
  • Attach the USB device.

  • Start Rufus with administrative privileges.

  • Click SELECT.

  • Select the C:\Tmp\2021-08-04-tbhf-vpn-client-test.vpn-11.0-x64-live.iso file.

  • Click Open.

  • Click START.

  • Choose Write in DD Image mode.

  • Click OK.

  • Click OK to confirm.

  • Click CLOSE.

  • Detach the USB device.

4. Live Usage

  • Enter the following commands at a Command Line.

    ip address
    
    cat /run/live/medium/isolinux/isolinux.cfg
    
    sudo iw dev wlan0 scan | grep -Ei "^BSS|freq:|signal:|SSID:" | grep -Eiv "HESSID:"
    sudo iwlist wlan0 scan | grep -Ei "Cell|Freq|Qual|SSID"

5. Debug

5.1. chroot

  • Enter the following commands at a Command Line.

    # Install required packages.
    sudo apt-get --yes install isolinux squashfs-tools syslinux syslinux-common xorriso
    sudo apt-get --yes install grub-efi-amd64-bin grub-pc-bin mtools syslinux-efi
    
    # Extract iso file.
    sudo mount -o loop /media/Other/2021-04-30-tbhf-anc-client-10.9-x64-live.iso /mnt
    rm -rf /tmp/image; cp -a /mnt /tmp/image
    sudo umount /mnt
    
    # Set target.
    target="/tmp/fs"
    
    # Extract squash file system.
    rm -rf "${target}"; sudo unsquashfs -d "${target}" /tmp/image/live/filesystem.squashfs
    
    # Prepare for chroot.
    sudo mount --bind /sys      "${target}/sys"
    sudo mount --bind /proc     "${target}/proc"
    sudo mount --bind /dev      "${target}/dev"
    sudo mount --bind /dev/pts  "${target}/dev/pts"
    sudo mount --bind /run/udev "${target}/run/udev"
    
    # Enter chroot.
    sudo chroot "${target}"
    
    # Fix name resolution inside chroot.
    file="/etc/resolv.conf"
    folder="/run/systemd/resolve"
    mkdir -p "${folder}"
    /bin/cp -a "${file}.org" "${folder}/resolv.conf"
    
    # Fix apt repositories.
    apt-get --allow-releaseinfo-change update
    apt-get update
    apt-get upgrade
    apt-get dist-upgrade
    apt-get autoremove
    apt-get autoclean
    cat /etc/debian_version
    
    # Do your thing.
    
    # Exit chroot.
    exit
    
    # Clean up after chroot.
    folder="${target}/dev/pts;                 if [ -d "${folder}" ] && mount | grep -q "${folder}"; then sudo umount "${folder}"; fi
    folder="${target}/dev;                     if [ -d "${folder}" ] && mount | grep -q "${folder}"; then sudo umount "${folder}"; fi
    folder="${target}/proc;                    if [ -d "${folder}" ] && mount | grep -q "${folder}"; then sudo umount "${folder}"; fi
    folder="${target}/run/udev;                if [ -d "${folder}" ] && mount | grep -q "${folder}"; then sudo umount "${folder}"; fi
    folder="${target}/sys/fs/fuse/connections; if [ -d "${folder}" ] && mount | grep -q "${folder}"; then sudo umount "${folder}"; fi
    folder="${target}/sys;                     if [ -d "${folder}" ] && mount | grep -q "${folder}"; then sudo umount "${folder}"; fi
    
    # Create squash file system.
    /bin/cp -a "${target}"/boot/vmlinuz-*       /tmp/image/live/vmlinuz
    /bin/cp -a "${target}"/boot/initrd.img-*    /tmp/image/live/initrd
    /bin/cp -a /usr/lib/ISOLINUX/isolinux.bin   /tmp/image/isolinux
    /bin/cp -a /usr/lib/syslinux/modules/bios/* /tmp/image/isolinux
    /bin/cp -a /usr/lib/grub/x86_64-efi/*       /tmp/image/boot/grub/x86_64-efi
    rm -f /tmp/image/live/filesystem.squashfs; sudo mksquashfs "${target}" /tmp/image/live/filesystem.squashfs -e boot
    
    # Create iso file.
    isofile="YYYY-MM-DD-tbhf-debug-x64-live.iso"
    title="YYYY-MM-DD SMRU Debug x64 live"
    volume="DELTA_DEBUG_X64_LIVE"
    
    file=/tmp/image/isolinux/isolinux.cfg
    cat << EOF | sed -e "s/^  //" > "${file}"
      UI menu.c32
      prompt 0
      menu title ${title}
      timeout 10
    
      # Use "net.ifnames=0" boot parameter to disable systemd v197 fixed network interface names.
      label ${title}
        menu label ${title}
        menu default
        kernel /live/vmlinuz
        append initrd=/live/initrd boot=live net.ifnames=0
    EOF
    
    file=/tmp/image/boot/grub/grub.cfg
    cat << EOF | sed -e "s/^  //" > "${file}"
      search --set=root --file /DEBIAN_CUSTOM
    
      set default="0"
      set timeout=1
    
      # Use "insmod all_video" to prevent the following errors during boot.
      #   error: no suitabe video mode found
      #   Booting in blind mode
      # Use "net.ifnames=0" boot parameter to disable systemd v197 fixed network interface names.
      menuentry "${title}" {
        insmod all_video
        linux (\$root)/live/vmlinuz boot=live biosdevname=0 net.ifnames=0
        initrd (\$root)/live/initrd
      }
    EOF
    
    rm -rf /tmp/tmp; mkdir -p /tmp/tmp
    file=/tmp/tmp/grub-standalone.cfg
    cat << EOF | sed -e "s/^  //" > "${file}"
      search --set=root --file /DEBIAN_CUSTOM
      set prefix=(\$root)/boot/grub/
      configfile /boot/grub/grub.cfg
    EOF
    
    touch /tmp/image/DEBIAN_CUSTOM
    
    grub-mkstandalone \
      --format="x86_64-efi" \
      --output=/tmp/tmp/bootx64.efi \
      --locales="" \
      --fonts="" \
      boot/grub/grub.cfg=/tmp/tmp/grub-standalone.cfg
    
    (cd /tmp/image/EFI/boot && \
      sudo dd if=/dev/zero of=efiboot.img bs=1M count=20 && \
      sudo mkfs.vfat efiboot.img && \
      sudo mmd -i efiboot.img efi efi/boot && \
      sudo mcopy -vi efiboot.img /tmp/tmp/bootx64.efi ::efi/boot/
    )
    
    rm -f "${isofile}"
    
    xorriso \
      -as mkisofs \
      -iso-level 3 \
      -o "${isofile}" \
      -full-iso9660-filenames \
      -volid "${volume}" \
      -isohybrid-mbr /usr/lib/ISOLINUX/isohdpfx.bin \
      -eltorito-boot \
          isolinux/isolinux.bin \
          -no-emul-boot \
          -boot-load-size 4 \
          -boot-info-table \
          --eltorito-catalog isolinux/isolinux.cat \
      -eltorito-alt-boot \
          -e /EFI/boot/efiboot.img \
          -no-emul-boot \
          -isohybrid-gpt-basdat \
      -append_partition 2 0xef /tmp/image/EFI/boot/efiboot.img \
      /tmp/image
    
    cp -a "${isofile}" /media/Other

5.2. firefox

  • Press Alt+Enter to open xterm.

  • Comment out the pref('browser.tabs.autoHide', true); line in the /usr/lib/firefox-esr/mozilla.cfg file.

  • Comment out all lines in the home/smru/.mozilla/firefox/smru.default-esr/chrome/userChrome.css file.

6. SSH with X Forwarding

  • Log in as smru on an TBHF anc client computer using PuTTY.

  • Enter the following commands at a Command Line.

    ps ax | grep -i firefox
    sudo kill -9 <pid>

6.1. Linux

  • Log in as smru on a Linux desktop computer using RDP.

  • Enter the following commands at a Command Line.

    ssh -X <ip> firefox
    ssh -X <ip> remmina -c rdp://SMRU-PMS

6.2. Windows with Xming server

  • Log on to a Windows 10 computer with Xming installed.

  • Start Xming X Server.

  • Enter the following commands at a Command Prompt.

    set "DISPLAY=127.0.0.1:0.0"
    ssh.exe -Y smru@<ip> firefox
    ssh.exe -Y smru@<ip> remmina -c rdp://SMRU-PMS
  • Close Xming X Server.

    • Right-click the Xming Server:0.0 icon in the Notification Area and Select Exit.

    • Click Exit to confirm.

6.3. Windows with X410 server

  • Log on to a Windows 10 computer with X410 installed.

  • Start X410.

    • Double-click the C:\Program Files\Choung Networks\X410\X410.exe file.

  • Enter the following commands at a Command Prompt.

    set "DISPLAY=127.0.0.1:0.0"
    ssh.exe -Y smru@<ip> firefox
    ssh.exe -Y smru@<ip> remmina -c rdp://SMRU-PMS
  • Close X410.

    • Right-click the X410 @ DISPLAY=127.0.0.1:0.0 icon in the Notification Area and Select 0.

    • Select Shut down.

    • Click OK to confirm.

7. XRDP

  • Log in as smru on an TBHF anc client computer using RDP.