Getting Started with the Open Timecard

Accessing the Open Timecard via the host device:

Insert Open Timecard into the Host device.

If the device is inserted correctly, you will be able to see it with the following commands:

lspci | grep -i i226
b0:00.0 Ethernet controller: Intel Corporation Ethernet Controller I226-LM (rev 04)

Enable SSH access to the Open Timecard:

On the host device, set an IP interface on the Open Timecard interface (typically ensX)

The MAC address of the interface should match: 8c:1f:64:10:XX:XX

ip a
root@localhost:~# ip a

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host noprefixroute 
       valid_lft forever preferred_lft forever
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000

3: ens1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 8c:1f:64:10:XX:XX brd ff:ff:ff:ff:ff:ff
    altname enp1s0

Set an IP address on ens1 (or equivalent), this should match the subnet of the Open Timecard

# nmcli con mod eth0 ipv4.addresses 10.101.101.122/24”

# nmcli con mod eth0 ipv4.method manual

# nmcli con up ens1

Step 0.3: check the IP address is set correctly

ip a
root@localhost:~# ip a

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host noprefixroute 
       valid_lft forever preferred_lft forever
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000

3: ens1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 8c:1f:64:10:41:56 brd ff:ff:ff:ff:ff:ff
    altname enp1s0
    inet 10.101.101.122/24 brd 10.101.101.255 scope global noprefixroute ens1
       valid_lft forever preferred_lft forever
    inet6 fe80::d35:5799:14a3:33ea/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

SSH to the Open Timecard device

ssh [email protected]
[email protected]'s password: 1234

Enter as root and enable SSH login as root

sudo su
nano /etc/ssh/sshd_config

#This is the sshd server system-wide configuration file.  See

#sshd_config(5) for more information.
#This sshd was compiled with PATH=/usr/local/bin:/usr/bin:/bin:/usr/games
#The strategy used for options in the default sshd_config shipped with
#OpenSSH is to specify options with their default value where
#possible, but leave them commented.  Uncommented options override the
#default value.

Include /etc/ssh/sshd_config.d/*.conf

#Port 22
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::
#HostKey /etc/ssh/ssh_host_rsa_key
#HostKey /etc/ssh/ssh_host_ecdsa_key
#HostKey /etc/ssh/ssh_host_ed25519_key
#Ciphers and keying
#RekeyLimit default none
#Logging
#SyslogFacility AUTH
#LogLevel INFO
#Authentication:
#LoginGraceTime 2m
PermitRootLogin yes         # modify this line to match

Step 2.2: save and exit the file

To exit the config file, run:

ctrl+x y

Modify root password for root login

passwd root
New password: 1234
Retype new password: 1234

HOW TO UPDATE FIRMWARE

When logged into the device make sure you have transferred the new firmware to the Open Timecard. We recommend placing the firmware in /root/ for this guide.

Check to make sure the firmware is in the correct folder.

root@raspberrypi:/home/admin# ls -la /root/
total 304

drwx------  6 root  root    4096 Nov 12 16:30 .
drwxr-xr-x 18 root  root    4096 Oct 22 14:17 ..  
-rw-------  1 root  root    3770 Nov 13 14:43 .bash_history
-rw-r--r--  1 root  root     571 Apr 10  2021 .bashrc
drwx------  2 root  root    4096 Oct 22 14:07 .cache
-rw-------  1 root  root      20 Nov 12 16:30 .lesshst
drwxr-xr-x  3 root  root    4096 Oct 31 14:01 .local
-rw-r--r--  1 root  root     218 Oct 31 14:05 noeth.dtbo
-rw-r--r--  1 root  root     151 Oct 31 14:03 noeth-overlay.dts
-rw-------  1 admin admin 131072 Nov  1 14:22 otc_clkgen.v2.XX.XXX.bin <------- (this is the fw)
-rw-r--r--  1 root  root     161 Jul  9  2019 .profile
drwx------  2 root  root    4096 Nov 12 13:37 .ssh
drwx------  3 root  root    4096 Oct 22 14:17 .vnc

SSH to the Timebeat CLI:

For this, Timebeat must be running; by default, Timebeat starts when the Open Timecard boots up.

ssh -p 65129 [email protected]
[email protected]'s password: password

If entered correctly, you will see the following:

Welcome to Timebeat 2.1.14-enterprise CLI


Timebeat# 

Enter the command to flash the Timebeat firmware

Timebeat#  set opentimecard sbc clockgen firmware flash /root/otc_clkgen.v2.XX.XXX.bin

Wait for the firmware to be loaded. This can take 5-10 mins

If done successfully, you will see the following:

Welcome to Timebeat 2.1.14-enterprise CLI
Timebeat# set opentimecard sbc clockgen firmware flash /root/otc_clkgen.v2.XX.XXX.bin

eeprom flashed ok

Timebeat# 

Now, full power cycle of the host (not just reboot)

MODIFY THE IP ADDRESS ON THE OPEN TIMECARD:

Modify the IP details of the Open Timecard

SSH into the Open timecard

ssh [email protected]
[email protected]'s password: 1234

Check the ethernet device name

nmcli con show
root@raspberrypi:/home/admin# nmcli con show

NAME  UUID                                  TYPE      DEVICE 
eth0  a47ff482-e691-3f8b-a171-8b892c30de95  ethernet  eth0   
lo    3ada4415-3a14-415d-b393-2033a1a65d40  loopback  lo     

If Wired connection 1 shows inline with eth0 follow the next steps if not skip ahead

Modify Wired connection 1 name

nmcli con mod "Wired connection 1" connection.id eth0

Modify the network connection information:

nmcli con mod eth0 ipv4.addresses "XX.XXX.XXX.XX/24”
nmcli con mod eth0 ipv4.gateway XX.XXX.XXX.1
nmcli con mod eth0 ipv4.dns X.X.X.X
nmcli con mod eth0 ipv4.method manual

Now Bring up the interface with the new ip information:

nmcli con up eth0

If successful you will see the below

root@raspberrypi:/home/admin# nmcli con up eth0
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/4)

!! Note that at this point you may be disconnected from the Open Timecard and will need to ssh into the device again.

Check eth0 ip details

ip a
root@raspberrypi:/home/admin# ip a

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host noprefixroute 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 8c:1f:64:10:41:10 brd ff:ff:ff:ff:ff:ff
    inet XX.XXX.XXX.XXX/24 brd 10.66.9.255 scope global noprefixroute eth0
       valid_lft forever preferred_lft forever
    inet6 fd14:7740:89cb:8500:a70d:de48:a671:e3e4/64 scope global dynamic noprefixroute 
       valid_lft 7190sec preferred_lft 3590sec
    inet6 fe80::87f8:fdb8:691:868e/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

UPDATING THE TIMEBEAT SOFTWARE:

Step 6: update the Timebeat software release:

For this step, you will require the Timebeat release on the Open Timecard; in this guide, we will have the release in /root/

ls -al /root/
root@raspberrypi:~# ls -al /root/
total 35080
drwx------  6 root  root      4096 Nov 13 15:15 .
drwxr-xr-x 18 root  root      4096 Oct 22 14:17 ..
-rw-------  1 root  root      3847 Nov 13 15:07 .bash_history
-rw-r--r--  1 root  root       571 Apr 10  2021 .bashrc
drwx------  2 root  root      4096 Oct 22 14:07 .cache
-rw-------  1 root  root        20 Nov 13 15:08 .lesshst
drwxr-xr-x  3 root  root      4096 Oct 31 14:01 .local
-rw-r--r--  1 root  root       218 Oct 31 14:05 noeth.dtbo
-rw-r--r--  1 root  root       151 Oct 31 14:03 noeth-overlay.dts
-rw-------  1 admin admin   131072 Nov  1 14:22 otc_clkgen.vX.XX..bin
-rw-r--r--  1 root  root       161 Jul  9  2019 .profile
drwx------  2 root  root      4096 Nov 12 13:37 .ssh
-rw-r--r--  1 admin admin 35609800 Nov  1 10:58 timebeat-2.2.1-arm64.deb  <---- Timebeat sw
drwx------  3 root  root      4096 Oct 22 14:17 .vnc

Update the Timebeat software

apt install ./timebeat-2.2.1-arm64.deb
root@raspberrypi:~# apt install ./timebeat-2.2.1-arm64.deb 
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Note, selecting 'timebeat' instead of './timebeat-2.2.1-arm64.deb'
The following packages will be upgraded:
  timebeat
1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/35.6 MB of archives.
After this operation, 1,024 B of additional disk space will be used.
Get:1 /root/timebeat-2.2.1-arm64.deb timebeat arm64 2.2.1 [35.6 MB]
Reading changelogs... Done    
(Reading database ... 129040 files and directories currently installed.)
Preparing to unpack .../root/timebeat-2.2.1-arm64.deb ...
Unpacking timebeat (2.2.11) over (2.1.14) ...
Setting up timebeat (2.2.11) ...
Configuration file '/etc/timebeat/timebeat.yml'
 ==> Modified (by you or by a script) since installation.
 ==> Package distributor has shipped an updated version.
   What would you like to do about it ?  Your options are:
    Y or I  : install the package maintainer's version
    N or O  : keep your currently-installed version
      D     : show the differences between the versions
      Z     : start a shell to examine the situation
 The default action is to keep your current version.
*** timebeat.yml (Y/I/N/O/D/Z) [default=N] ? 
!! During the update you will be greeted with a choice on whether to upgrade the config file to the new default config or keep your current. For this we recommend choosing N
Once selected you will see the below denoting a successful installtion/upgrade
*** timebeat.yml (Y/I/N/O/D/Z) [default=N] ? N
N: Download is performed unsandboxed as root as file '/root/timebeat-2.1.15-arm64.deb' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied)