Skip to content

HOWTO Collect Hardware Information for a Device


Collect Logs for IGEL Support

Command to run to collect logs, /tmp/tclogs.zip, for IGEL support.

1
/config/bin/create_support_information

NOTE: Details on UMS Logs


Recommendation: Do not enable "Overwrite Session" on any profiles without explicit request from IGEL support

  • Profile(s) should NEVER have Overwrite Sessions set on it!
  • For example, enabling Overwrite Sessions in a profile means that only those settings will apply for all registry keys that have multiple session (end in a % in the registry).

image08


Steps to collect the data

  • Format a USB thumb drive on your PC (FAT or NTFS)
  • Copy the collection script (see below) to USB thumb drive
  • Enable Storage Hotplug (Devices > Storage Devices > Storage Hotplug)
  • Plug USB thumb drive in IGEL OS device (auto mounted in /media folder)
  • Open terminal window (as Root)
  • Run collection script
  • Safely remove USB thumb drive (Start > System > Safely Remove Hardware)
  • Send zip file to your contact

Collection Script

Collection script (collect_data.sh) to copy onto thumb drive

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#!/bin/bash
#set -x
#trap read debug

mkdir data_dump
cd data_dump

# For OS 12 list installed applications
if [ -e /usr/bin/igelpkgctl ]; then
  igelpkgctl list installed > igelpkgctl_list_installed.txt
fi

lshw > lshw_ouptut.txt
lsusb > lsusb_output.txt
lspci > lspci_output.txt
dmesg > dmesg_output.txt
alsa-info --no-upload --output alsa-infor_output.txt
rfkill list all > rfkill_list_all.txt
journalctl > journalctl_output.txt
cp /var/log/Xorg.0.log Xorg.0.log
cp /etc/os-release etc-os-release.txt
cp /wfs/group.ini wfs-group.ini
cp /wfs/setup.ini wfs-setup.ini
cat /proc/bus/input/devices > proc_bus_input_devices.txt
xrandr > xrandr.txt
ip address > ip_address.txt
tar cvjf var-log.tar.bz2 /var/log

# uncomment following lines for Citrix
#mkdir citrix-logs
#cp -R /userhome/.ICAClient/logs citrix-logs

# uncomment following lines for VMware Horizon
# When you gather horizon logs manually from /tmp/vmware-user/
# then the Horizon client needs to be running: The remote session
# can be over or have failed, but the client window must still be there.
# After the client ends the logs will be gathered and the last 3 runs can
# be found in /var/log/vmware-view/ as tar archives.
#mkdir vmware-logs
#cp -R /tmp/vmware-user vmware-logs

# uncomment following lines for OpenSC Smart Card (scard.pkcs11.opensc.default.debug = 9 ; scard.pkcs11.opensc.default.debug_file = /tmp/opensc.log)
#mkdir opensc-logs
#cp -R /tmp/opensc.log opensc-logs

# uncomment following line if using Imprivata
#/services/imprivata/bin/fetch_support_info imprivata_logs_$(date +%y%m%d%H%M).zip

#The log files for IGEL Agent for Imprivata on IGEL OS
#/var/log/user/IGELImprivataAgent.log

# uncomment following lines for Cisco JDVI
#/usr/bin/collect-files
#cp /tmp/VXC-* .

# run IGEL log collection
/config/bin/create_support_information
mkdir tclogs
unzip /tmp/tclogs.zip -d tclogs

cd ..

zip -r data_dump.zip data_dump

NOTE: Additional logging notes:

  • AVD log collection OS 11: sessions.wvd%.options.client-log-level set to Debug

  • AVD log collection OS 12: System > Registry > app > avd > sessions > avd0 > options > client-log-level set to Debug

  • Citrix log collection: ica.logging.debug set to Enabled

  • Zoom VDI log collection: Using the VDI log tool


Search for string (audio) in data_dump files

1
2
cd data_dump
find . -type f -exec echo "File NAME:  ===>> " {} \; -exec grep -i audio {} \; > /tmp/find_string_in_data_dump.txt

Use Microsoft Visual Studio Code to View Log Files

  • Install Microsoft Visual Studio Code on your PC
  • Add Extension to Microsoft Visual Studio Code Log File Highlighter
  • Un-Zip log files
  • Open the folder in Microsoft Visual Studio Code
  • Search for string in Microsoft Visual Studio Code, such as audio

image09


Enable Storage Hotplug (Devices > Storage Devices > Storage Hotplug)

image01


Run Collection Script (Open Terminal Window)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
login as "user" or "root": root
 # df -H | grep media
 /dev/sda1    17G   44M     17G   1%  /media/B2B0AB93
 # cd /media/B2B0AB93
 # ls
 collect_data.sh
 # /bin/bash collect_data.sh
 # ls
 collect_data.sh
 data_dump
 data_dump.zip
 # exit

Safely remove USB thumb drive (Start > System > Safely Remove Hardware)

image02


Create Profile with all settings for a Device

These device profiles can be used to see all settings for a device and can also be used to compare two devices.

The following steps will:

  • Export device settings as a profile
  • Import device settings as a profile

image01 image01 image01


Tips for prepping PC for IGEL OS install


Video driver and booting (blacklist framebuffer driver)

Framebuffer drivers are generally buggy and poorly-supported, and cause suspend failures, kernel panics and general mayhem. For this reason we never load them automatically.

If PC firmware has a Legacy Boot option, it might interfere with the kernel’s ability to use the framebuffer during boot.

The kernel may hang on framebuffer driver. As first step in debugging, blacklist the framebuffer driver in file /etc/modprobe.d/blacklist-framebuffer.conf

For example, add the following entry to the System/Firmware Customization/Custom Commands/Base Initialization section of IGEL Setup:

echo “blacklist efifb” >> /etc/modprobe.d/blacklist-framebuffer.conf

Save the change and reboot without the “Force VESA driver” option being set.

image03

IGEL OS Boot Menu Explained – Video

IGEL KB - Boot Menu

Try VESA only boot

Steps:

  • Reboot device
  • Keep hitting Esc
  • Select > VESA only boot

Improve sound quality for internal speakers or HDMI / DP

Setting to improve sound quality:

System > Registry > multimedia.pulseaudio.daemon.resample-method > speex-float-3


Touchscreen debugging

Obtain the touchscreen vendor information from the following script:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
#!/bin/bash
tmp_dir=$(mktemp -d)
pushd $tmp_dir > /dev/null
# Export whole database
udevadm info --export-db > udevdb.txt
csplit -s udevdb.txt /^$/ {*}
FILES=./xx*
for f in $FILES
do
  if [[ ! -z $(grep ID_INPUT_TOUCHSCREEN=1 $f) ]] && [[ ! -z $(grep " NAME=*" $f) ]];
  then
        # Extract touchscreen name
        grep " NAME=*" $f | cut -d "=" -f 2
  fi
done
popd > /dev/null
rm -rf $tmp_dir

Access terminal console, terminal log screen, or setup

  • Access to terminal console: Ctrl+Alt+F12
  • Switch back to GUI: Ctrl+Alt+F1
  • Access terminal log screen: Ctrl+Alt+F10
  • Access IGEL setup: Ctrl+Alt+S

Extended Logging With Syslog, Tcpdump and Netlog

The IGEL Linux Registry offers a number of extended logging options that can help customers, Support and PreSales debug system and network issues.

IGEL - KB - Extended Logging With Syslog, Tcpdump and Netlog


Steps to update firmware from USB drive

1. Configure at least one hotplug USB device:
   setparam devices.hotplug.usb-storage.numdevices 1
2. Apply your changes:
   kill_postsetupd
3. Connect the USB storage device to the device.
4. Wait for the USB storage device to be mounted automatically.
5. Determine the mount point:
   ls /media/
6. Configure the update parameters:
   setparam update.protocol file
   setparam update.file.path /media/<name of USB storage device>
7. Start the update process in the / directory using the command update
   update

Sample script:

1
2
3
4
5
6
7
8
9
#!/bin/bash

setparam devices.hotplug.usb-storage.numdevices 1
kill_postsetupd
sleep 5
setparam update.protocol file
# next command only works if one device is mounted into /media
setparam update.file.path /media/$(ls /media)
update

Updating to IGEL OS - Current Version

Configure Firmware Update settings with the following parameters and then select "Update firmware":

Parameter Setting Comment
Protocol https
Server name fw.igelize.me North America
Server name fwemea.igelize.me Western Europe
Port 443
Server path igelos/current

image04

Sample script:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
#!/bin/bash

# Updating to IGEL OS - Current Version

# Configure the update server
setparam update.protocol https

# North America
setparam update.https.server fw.igelize.me

# Western Europe
#setparam update.https.server fwemea.igelize.me

setparam update.https.port 443
setparam update.https.path igelos/current

#Start the update process
update

North America fw.igelize.me server layout

The layout path structure:
igelos/amd64
igelos/arm64
igelos/current
Under the igelos/amd64 and igelos/arm64 paths, the subpaths for the various versions of IGEL OS public and private.
igelos/amd64/11.09.310
igelos/amd64/11.08.440
igelos/amd64/11.07.920
igelos/amd64/11.07.170
igelos/arm64/11.02.120

Hardware Notes

Secured-Core PCs: Microsoft 3d-Party UEFI Certificate for Secure Boot

Dynabook Setup TECRA A40-J (PMM10U) || Version: PMM10U-00101U

Lenovo - PSREF Product Specifications Reference

Lenovo - BIOS simulator shows how to navigate the BIOS for each hardware type.

Lenovo - ThinkLMI - Lenovo BIOS Setup using Linux WMI - Deployment Guide

Laptop Docking Station - HP USB-C Dock G5. Link to HP's web site -- LINK. This device will work for other laptops that support USB-C docks. IGEL UMS supports firmware updates to this dock.

Microsoft Surface

How to reset USB controllers

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#!/bin/bash
#set -x
#trap read debug
# Resets all USB host controllers of the system.
# This is useful in case one stopped working
# due to a faulty device having been connected to it.

base="/sys/bus/pci/drivers"
sleep_secs="1"

# This might find a sub-set of these:
# * 'ohci_hcd' - USB 3.0
# * 'ehci-pci' - USB 2.0
# * 'xhci_hcd' - USB 3.0
echo "Looking for USB standards ..."
for usb_std in "$base/"?hci*
do
    echo "* USB standard '$usb_std' ..."
    for dev_path in "$usb_std/"*:*
    do
        dev="$(basename "$dev_path")"
        echo "  - Resetting device '$dev' ..."
        printf '%s' "$dev" | sudo tee "$usb_std/unbind" > /dev/null
        sleep "$sleep_secs"
        printf '%s' "$dev" | sudo tee "$usb_std/bind" > /dev/null
        echo "    done."
    done
    echo "  done."
done
echo "done."

KVM (Keybaord Video Monitor) Switch