Logo

HP t510: Using 

Using

In May 2020 I heard from a correspondent in Austria who had pressed a t510 into service as a thin client. His main application was video editing and he decided to use the t510 to provide a secondary screen on his main system. You can read about it here

I subsequently heard from him about setting one up with Slax and using it as a media player and web browser. You can read about it here

In November 2020 I heard from Marlon about using the t510 as a Media Player. As part of this exercise he installed the 64-bit version of WES7. This is described here


Web Browser/Media Player

Subsequently I heard more from my correspondent in Austria who this time was pressing the t510 into service as an economical Web browser and Media player station. He also restricted himself to using just the existing 2GB internal flash drive.

In what follows you will find the occasional comment/observation from me (in this font) interspersed with the contribution from Austria which is in italics.

Overview

The HP ThinPro Linux has a web browser and is optimized for the t510 but it cannot be extended easily. So I tried several minimalist Linux distributions:

I succeeded in installing antiX onto the t510 internal flash using the Core ISO image, and installing the GUI later. However, after installing Midori web browser, the internal flash was 100% full. So this was not viable.

I tried a frugal install of Tiny Core Linux but decided I wanted a more user friendly and ready-to-go solution.

Knoppix booted very quickly but the GUI was not readable due to wrong color mapping which is caused by the VIA graphics adapter.

With the built-in 2GB flash of the t510 I can run Slax 32bit Linux, which has a Chromium browser. It can play YouTube videos with picture and sound right after the initial Linux installation. It appears a good first step into a media player, surf station solution.

One can assume that the same will work also for other HP Thin Clients. Slax is available as i686 and 64 bit versions.

I then spent a long time investigating how to get Slax and the OpenChrome driver running on the t510. In the end I found that only one Slax version worked out of the box. One side benefit was that this solution didn't require any editing of the xorg.conf file, a task which is not easy at the best of times.

I now have a 32-bit version of Slax Linux running on the t510 and can browse and receive audio streams on my t510 without any additional hardware. Slax is running from the internal 2GB flash drive which still has plenty of room to install more applications.

As a side effect I have learned a lot about Linux, the Thin Client hardware and how to repurpose old hardware.

The measured power consumption of the setup is:

music streaming : 10.5 Watt
installing Software etc : ~16 Watt
Idle :  9.3 Watt
Power off :  0.7 Watt

In particular I like that this solution is a real second life for old hardware. We have so many power-hungry PCs sitting there just to do simple things like music streaming. So using such a low power, low heat producing Thin Client also saves CO2 and electricity. Also you can connect a suitably sized monitor to allow you to select music and/or look up the news or a recipe in the internet in comfort.

He went on to add:

It works well with a single monitor connected to the DVI-I port of the t510. (This is the one closest to the serial port). I spent hours to trying to understand why two monitors were not recognized properly. Finally I discovered that if only one monitor is connected to the right port it just works. If you want to run a different configuration you will have to get involved in creating an xorg.conf file that specifies things like which device connects with which monitor.

I have read that OpenChrome only supports one monitor. If you connect two monitors they are mirrored with the CEA driver. With the OpenChrome driver you get no picture at all. I tried to use two monitors with different resolutions and did not get the monitor resolution recognized properly. You can see in the /var/log/Xorg.0.log file that the OpenChrome driver tries to locate the monitor and tries to see the EDID data. It failed with two monitors connected. Without a xorg.conf I doubt that this works.

Note from David: As with all things in life there are many variables. The steps below are those taken by my correspondent using what he had to hand. For example, as part of the process he used a 64GB USB flash drive. In contrast I have a range of (small) 1GB/4GB/8GB USB flash drives that I use for testing purposes. Windows will quite happily format these using FAT32 - something that it won't do with drives over 32GB. Remember what follows is a guide - adjust as necessary to suit your environment.

Steps to take to install Slax

  1. BIOS Video RAM setting

    The OpenChrome driver cannot handle a buffer size of 512MB, so, on power-up, hit the ESC key to get into the BIOS and set the Shared Video Memory to 128MB or 256MB.

  2. Prepare the t510 flash

    The aim is to get the internal 2GB flash drive partitioned so that there is a single ext2 Linux partition on it. There can be unwanted interactions/complications if you try to do this using a Slax 'live' USB stick when there is a previous installation of Slax on the t510.

    Here are two ways of achieving this preparation:

    Approach 1: Create a ThinState USB stick with the HP ThinUpdate Windows application:

    Insert a USB stick into your Windows PC and 'clean' it. To do this open a terminal window and run diskpart. The example below used Windows Powershell. Make sure you select the right disk for your 'clean' operation.

    Microsoft DiskPart version 10.0.18362.1
    
    Copyright (C) Microsoft Corporation.
    On computer: BLUETANG
    
    DISKPART> list disk
    
      Disk ###  Status         Size     Free     Dyn  Gpt
      --------  -------------  -------  -------  ---  ---
      Disk 0    Online          447 GB  2048 KB
      Disk 1    Online          238 GB  1024 KB
      Disk 2    Online           14 GB    14 GB
    
    DISKPART> select disk 2
    
    Disk 2 is now the selected disk.
    
    DISKPART> clean
    
    DiskPart succeeded in cleaning the disk.
    
    DISKPART> clean   (Once more to be sure)
    
    DiskPart succeeded in cleaning the disk.
    
    DISKPART> exit
    

    Format with Windows as NTFS.

    Using the HP ThinUpdate application install the t510 ThinPro image on the USB stick (i used T6X52011 image).

    Boot the t510 with this USB stick and then use the following options to prepare the internal flash:

    Option 8: Secure Erase Flash
    Option 9: Format Flash ext2
    Option 3: Exit
    

    power off the t510

    or, Approach 2 using a Linux USB stick running Tiny Core or similar:

    If you don't have such a thing to hand use LiLi (or similar) to put Tiny Core (or your preferred Linux) onto a USB stick. If you are using Tiny Core you need to ensure that you've used the App Browser to load the e2fsprogs.tcz extension.

    Boot it and open a terminal window. Usually you will find that the onboard flash drive is sda and the USB pen drive is sdb. An easy way to check this is to look in the startup message file for the lines that mention sd:

    tc@box:~$ dmesg | grep sd
    usbcore: registered new interface driver ums-isd200
    usbcore: registered new interface driver ums-sddr09
    usbcore: registered new interface driver ums-sddr55
    sd 0:0:1:0: Attached scsi generic sg0 type 0
    sd 0:0:1:0: [sda] 4000041 512-byte logical blocks: (2.05 GB/1.91 GiB)
    sd 0:0:1:0: [sda] Write Protect is off
    sd 0:0:1:0: [sda] Mode Sense: 00 3a 00 00
    sd 0:0:1:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
    sd 0:0:1:0: [sda] Attached SCSI disk
    sd 2:0:0:0: Attached scsi generic sg1 type 0
    sd 2:0:0:0: [sdb] 15630336 512-byte logical blocks: (8.00 GB/7.45 GiB)
    sd 2:0:0:0: [sdb] Write Protect is off
    sd 2:0:0:0: [sdb] Mode Sense: 43 00 00 00
    sd 2:0:0:0: [sdb] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
     sdb: sdb1 sdb2
    sd 2:0:0:0: [sdb] Attached SCSI removable disk
    tc@box:~$
    

    Yellow text is what you type. The two significant lines in the output are shown in red. From these we can see sda is a 2GB drive (the t510's internal flash) and sdb is 8GB - the size of the USB pen drive I'm using.

    Next we use dd to 'hose' the start of the internal flash drive to remove what is there, and then run fdisk to create a single primary partition occupying all of the available space:

    tc@box:~$ dd if=/dev/zero of=/dev/sda bs=1M count=64
    64+0 records in
    64+0 records out
    67108864 bytes (64.0MB) copied, 3.052120 seconds, 21.0MB/s
    tc@box:~$ sudo fdisk /dev/sda
    Device contains neither a valid DOS partition table, nor Sun, SGI, OSF or GPT disklabel
    Building a new DOS disklabel. Changes will remain in memory only,
    until you decide to write them. After that the previous content
    won't be recoverable.
    
    
    Command (m for help): p
    Disk /dev/sda: 1953 MB, 2048020992 bytes, 4000041 sectors
    248 cylinders, 255 heads, 63 sectors/track
    Units: sectors of 1 * 512 = 512 bytes
    
    Device  Boot StartCHS    EndCHS        StartLBA     EndLBA    Sectors  Size Id Type
    
    Command (m for help): n
    Partition type
       p   primary partition (1-4)
       e   extended
    p
    Partition number (1-4): 1
    First sector (63-4000040, default 63): [Enter to take default]
    Using default value 63
    Last sector or +size{,K,M,G,T} (63-4000040, default 4000040): [Enter to take default]
    Using default value 4000040
    
    Command (m for help): p
    Disk /dev/sda: 1953 MB, 2048020992 bytes, 4000041 sectors
    248 cylinders, 255 heads, 63 sectors/track
    Units: sectors of 1 * 512 = 512 bytes
    
    Device  Boot StartCHS    EndCHS        StartLBA     EndLBA    Sectors  Size Id Type
    /dev/sda1    0,1,1       248,252,45          63    4000040    3999978 1953M 83 Linux
    
    Command (m for help): w
    The partition table has been altered.
    Calling ioctl() to re-read partition table
    tc@box:~$ 
    

    Finally we need to create the file system on sda1.

    tc@box:~$ mkfs.ext2 /dev/sda1
    mke2fs 1.45.4 (23-Sep-2019)
    Discarding device blocks: done                            
    Creating filesystem with 499997 4k blocks and 125184 inodes
    Filesystem UUID: c72078d5-e577-42df-b3e2-2f92357b70e5
    Superblock backups stored on blocks: 
            32768, 98304, 163840, 229376, 294912
    
    Allocating group tables: done                            
    Writing inode tables: done                            
    Writing superblocks and filesystem accounting information: done 
    
    tc@box:~$ 
    
  3. Prepare a Slax live USB stick

    The description that follows was the situation at the time of writing (May 2020). You may need to experiment if you wish to use subsequent releases of Slax.

    • The 9.x 32bit and 64bit versions did work with the OpenChrome driver but the monitors were not recognized.
    • 10.1.0 beta did not work at all: the GUI froze: mouse and keyboard were dead.
    • Only 10.2.0-beta1-32 bit worked. (It is likely that the 64 bit version will also work but it was not yet available for download).

    Download the slax-10.2.0-beta1-32bit iso file. This is based on Debian Buster. Note: You will find this in the slax.org blog section, not the Download section.

    During my tests I found that on occasion my test USB stick would not boot on the t510. It turned out that correct preparation of the USB stick is important. The procedure below is tedious but works.

    Note:If you format a >32GB USB stick with Windows you will end up with either: Windows exFAT which the Slax bootinst.bat script cannot make bootable, or you have NTFS which is not automatically mounted in Slax. If you are using a large USB stick then you need to use a third party app like Rufus to end up with a FAT32 file system.

    If your USB stick is <=32GB you can just right-click on it and format it as FAT32. Alternatively right-click on the start button and select 'Disk Management' and format it from that app.

    If the USB stick is greater than 32GB then you need to take the steps below:

    First clean the USB stick with diskpart (as shown above) and then format it as Large FAT32 with Rufus.

    Use Rufus to prepare the USB stick.

    Use these Rufus 3.10 settings:

    • MBR Partition type : not bootable
    • Label : 'SLAXUSB'
    • Format as Large FAT32

    Next we need to copy the slax directory from the ISO file that was downloaded earlier. In Windows 10 you can just right-click on the iso file and select mount from the drop-down menu. This will mount the ISO file as though it were a CDROM. You can then use Windows Explorer to copy the directory slax to the pre-prepared pen drive.

    Alternatively you can use a program like 7-Zip to open the ISO file, right-click on the slax directory and then select 'Copy To' to get the directory onto the pre-prepared pen drive.

    Navigate with Windows File Explorer to the directory on the SLAXUSB stick /slax/boot.

    Run bootinst.bat. A command window will open up and after a few seconds you should end up with:

    ===============================================================================
    
                               ________.__
                              /   ____/|  | _____  ___  ___
                              \____  \ |  | \__  \ \  \/  /
                              /       \|  |__/ __ \_>    <
                             /______  /|____(____  /__/\_ \
                                    \/           \/      \/
    
    ===============================================================================
    
    wait please. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
    Setting up boot record for H: ...
    Installation finished.
    
    Press any key...
    
    

    Hit a key to exit and then eject the SLAXUSB stick

  4. Boot the t510 with the SLAX USB stick

    (I you have an old Slax on the flash drive you must use the "Fresh start" option: press ESC while clover splash screen is shown, select Fresh start)

    As part of the Slax start-up you will see a couple of points where the process hangs for a while. The messages you see are:

    [ *** ] A start Job is running for /dev/sr0 [x min xxs / 1min 30s)
    ......
    [ *** ] A start Job is running for DHCP Client [x min xxs / 3min 1s)
    

    In each case the timer counts up to the timeout figure displayed. Once this is reached the boot process continues. We will fix this problem in a moment.

    Finally a login tty1 screen is shown. Wait till it disappears and after a further short delay you'll be presented with the Slax desktop. If you have speakers connected you should hear a chime.

    Depending on the monitor you have connected the monitor picture may not be sharp and you may see artefacts. This is because at this stage a generic video driver is being used.

    Right click on the desktop and select the keyboard language if required.

  5. Inspect what has happened so far:

    Right click on the Desktop and open a Terminal window and check the log file:

    root@slax:~# cat/var/log/Xorg.0.log | grep chrome
    [   208.654] (==) Matched openchrome as autoconfigured driver 0
    [   208.654] (II) LoadModule: "openchrome"
    [   208.656] (WW) Warning, couldn't open module openchrome
    [   208.657] (EE) Failed to load module "openchrome" (module does not exist, 0)
    

    and you will see that the openchrome driver was matched but is not available

  6. Transfer the operating system to the internal flash

    Running blkid

    root@slax:~# blkid
    /dev/zram0: TYPE="swap"
    /dev/loop0: TYPE="squashfs"
    /dev/loop1: TYPE="squashfs"
    /dev/loop2: TYPE="squashfs"
    /dev/loop3: TYPE="squashfs"
    /dev/loop4: TYPE="squashfs"
    /dev/loop5: TYPE="squashfs"
    /dev/sda1: UUID="c72078d5-e577-42df-b3e2-2f92357b70e5" TYPE="ext2"
    /dev/sdb1: LABEL="SLAXUSB" UUID="E45E-E3D8" TYPE="vfat" PARTUUID="6a1ea69b-01"
    

    shows you the two devices: your USB stick (/dev/sdb1) and the internal flash drive (/dev/sda1). You will recognize your boot USB stick from the label. They should be mounted as /media/sdb1 and /media/sda1. If both are mounted you can transfer the Slax operating system (which is in the slax directory) from one to the other.

    cp -r /media/sdb1/slax /media/sda1
    

    Verify that this was successful:

    ls /media/sda1
    

    you should see the slax directory is listed on the internal flash drive /dev/sda1

    Now make the flash drive bootable. Type

    /media/sda1/slax/boot/bootinst.sh
    
    Another Window opens:
    * attempting to install bootloader to /media/sda1/slax/boot...
    /media/sda1/slax/boot is device /dev/sda1
    Boot installation finished.
    Press Enter...
    

    Wait till the window notifies that the MBR record has been written, then close the window by hitting 'Enter'.

    Ensure everything is written to disk and then close the terminal window:

    sync
    sync
    exit
    

    Right click and select Exit/Logout and then select 'Shut Down'. By using 'Shut Down' it ensures the system shuts down cleanly and gives you the opportunity to remove the USB stick after it has done so.

  7. First Run

    Power on the t510. It will boot from the internal flash drive. As it starts up you will get the same delays as before - you need to be patient.

    If you have suffered the boot-up delay with messages like:

    [ *** ] A start Job is running for /dev/sr0 [x min xxs / 1min 30s)
    

    Now is the time to fix them. The reference to /dev/sr0 is to a CDROM drive - something that does not exist in our environment. As part of the startup process various files in the directory /etc/systemd/system are run. Open a terminal window, 'cd' to that directory, and delete the file media-sr0.mount.

    Then reboot the system: Right click and select Exit/Logout and then select 'Restart' to confirm that all is well. (The other delay will have vanished as well).

    When Slax is up and running open a terminal window and type df. This will show you that only 18% of the 2GB flash drive has been used which leaves plenty of space for the applications you might want to add.

  8. Verify you have Internet

    Run the Net Manager application on the desktop. The status line in the footer line of the Net Manager window shows the status. You should see something similar to:

    Connected to wired network (IP: 192.168.10.14)
    

    In this example we're using a wired connection. Adding WiFi is not covered.

  9. Download the OpenChrome driver

    In a terminal window type:

    apt install xserver-xorg-video-openchrome
    

    This should run and complete without error.

    Exit the terminal and reboot taking the default boot option. A clean exit should mean that Slax will remember your keyboard language selection.

    Once again be patient while Slax boots.

    When the tty1 text login screen is shown, be patient and let Slax find the monitor settings to suit your monitor. You may see patterns on the monitor whilst it is doing this. Eventually, you should see a sharp GUI without artefacts and full screen. The Openchrome driver/hardware is limited to a maximum resolution of 1600x1200 or 1920x1080. It will not go higher than this even if your screen is capable of higher resolutions.

  10. Check available monitor resolutions

    In the GUI, type into a terminal window:

    root@slax:~# xrandr
    Screen 0: minimum 320 x 200, current 1440 x 900, maximum 2044 x 2048
    VGA-1 disconnected primary (normal left inverted right x axis y axis)
    DVI-1 connected 1440x900+0+0 (normal left inverted right x axis y axis) 408mm x 255mm
       1440x900      59.89*+  74.98  
       1280x1024     75.02    60.02  
       1152x864      75.00  
       1024x768      75.03    70.07    60.00  
       832x624       74.55  
       800x600       72.19    75.00    60.32    56.25  
       640x480       75.00    72.81    66.67    59.94  
       720x400       70.08  
    

    to see the possible resolutions for this monitor graphics adapter combination.

    To change the resolution just right-click on the desktop and select the 'Screen resolution' option which will present you with a drop-down list to chose from.

    As mentioned earlier, whilst the monitor may be capable of displaying higher resolutions, the Openchrome driver is more limited. I only saw 1600x1200 on a 4:3 monitor and on another monitor capable of 2560x1440 I was offered 1920x1040 as highest resolution.

    This installation should work without you requiring to create an /etc/X11/xorg.conf file. The Openchrome driver should find all necessary settings. The /var/log/Xorg.0.log file shows the EDID values the openchrome driver has found.

    To see the details:

    cat /var/log/Xorg.0.log | grep "WW"
    
    cat /var/log/Xorg.0.log | grep "EE"
    

    We see in particular the DRM issue which was introduced by the new kernels. Older kernels should work with openchrome and DRM.

    [In this context DRM is Direct Rendering Manager.]

  11. Let's try some applications

    The Chromium web browser works out of the box but takes an age to launch. For an alternative browser you can install midori with

    apt install midori
    

    Unfortunately Midori doesn't create a desktop icon so you have to launch it by typing 'midori' either at the 'Run: _' prompt on the desktop (top left above the icons) or within a terminal window.

  12. Install a Media player to receive audio streams

    This is Clementine which also needs the ASLA subsystem. Once again adding them is a simple job:

    apt install clementine
    apt install gstreamer1.0-alsa
    

    This does create an icon on the desktop for Clementine but for some obscure reason labels it as 'Next'. You can change the Application name (see the slax.org website).

    [David: I failed to find it.]

    Reboot (??)

    To check things out launch Clementine and select an Icecast stream. Type ctrl/P to bring up the preferences screen and select 'Playback' to show the audio settings. The output device should be set to:

    Default device on Output to a sound card via ALSA
    

    Launch Clementine again. When Clementine Window is not displayed click on the icon in the taskbar.

    Increase volume with the slider in Clementine and on the Mixer in the taskbar. The ALSA Mixer volume bars respond to the up/down keys on the keyboard, Left/Right selects which bar.

  13. Maintenance

    At this point df shows 33% of the flash is in use, [I have 41%???] so enough space left

    Update your linux with newest patches:

    apt update
    
    apt-get upgrade
    

    fails because it lacks a swap device.

Result

The t510 ThinClient can be used already for simple web browsing and playing music. The browser takes a while to boot but is quite capable. It plays back mp3, flac, opus, m4a music and video file formats from an external USB stick by selecting the web browser as application to open it. You can launch VLC to install it.

Clementine is a very good music stream Client.

Slax will remember your settings like your keyboard language. When something goes wrong reboot and while the Slax 'clover' boot screen is displayed press ESC. Select 'Fresh start' to begin with a clean boot image.

Caveat: Currently it runs with full root permissions, so it is not a secure solution, not usable for public Kiosk mode.

Enjoy!