Difference between revisions of "iMX6 Rex Environmental chamber testing"

From Voipac Wiki
Jump to navigation Jump to search
Line 80: Line 80:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
Paste the following line to the end of this file. The output time format will be set as for stressapptest. Cron job performs a current CPU temperature readout and the data will saved in the log file.<br /><br />
+
Paste the following line to the end of this file. The output time format will be set as for stressapptest. Cron job performs a current CPU temperature readout and the data are saved in the log file.<br /><br />
  
 
'''''Note:''''' The percent char '%' has a special purpose in the cron file. When using it in the date command, backslash is reguired before the percent '\%':
 
'''''Note:''''' The percent char '%' has a special purpose in the cron file. When using it in the date command, backslash is reguired before the percent '\%':
Line 88: Line 88:
  
 
=== Setup the SSH connections ===
 
=== Setup the SSH connections ===
During the testing a simple local Ethernet network utilising a LAN switch and a control laptop was created. 2 SSH sessions per board were opened (8 session in total). The first session was used for CPU and memory stress test. In the window below the current CPU temperature was printed out. The other three boards used the same format:
+
During the testing a simple local Ethernet network utilising a LAN switch and a control laptop was created. Two SSH sessions per board were opened (8 session in total). The first session was used for CPU and memory stress test. In the window below the current CPU temperature was printed out. The other three boards used the same format:
 
[[image:iMX6_Rex_Development_kit-Env_chamber-Logs_setup.jpg|800px]]
 
[[image:iMX6_Rex_Development_kit-Env_chamber-Logs_setup.jpg|800px]]
  
 
===  Set up the date ===
 
===  Set up the date ===
As the RTC clock was not used during the test, time after the board boots up need to be set up. A time zone is adjusted first:
+
As the RTC clock was not used during the test, the current time is set after board boots up. A time zone is updated first:
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
ln -sf /usr/share/zoneinfo/Europe/Bratislava /etc/localtime
 
ln -sf /usr/share/zoneinfo/Europe/Bratislava /etc/localtime
 
</syntaxhighlight>
 
</syntaxhighlight>
  
An actual time is changed afterwards. The sequence of digits in this order is used: mouth day hour minute year (in the example used 04-July-2014 08:26):
+
An actual time is changed afterwards. The sequence of digits is used in this order: mouth day hour minute year (the example uses 04-July-2014 08:26):
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
date 070408262014
 
date 070408262014
Line 122: Line 122:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
To make sure test is running smoothly, potential errors can be found while searching for errors in the log file (instead of rolling the stress test printout):
+
To make sure test is running smoothly, potential errors can be found in the log file (instead of rolling the stress test printout):
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
grep -i "error" stressapptest.log
 
grep -i "error" stressapptest.log

Revision as of 16:04, 25 March 2021

On this page environmental stress testing results of iMX6 Rex Development kit are displayed. Detailed instructions how to setup iMX6 Rex Development kit are also shown.

Hardware configuration

For the testing following hardware configurations were used:

  • 3x iMX6 Rex Development kit in Pro configuration
    • i.MX6 Quad 1.0 GHz CPU - extended temperature range (-20°C to +105°C)
    • 2GB DDR3 Memory (4x 4Gb DDR3 Memory chips) - commercial temperature range (0°C to +95°C)
    • 1GBps Ethernet PHY Tranciever KSZ9021RN - commercial temperature range (0°C to +70°C)


  • 1x iMX6 Rex Development kit in modified Pro configuration
    • i.MX6 Quad 1.0 GHz CPU - extended temperature range (-20°C to +105°C)
    • 1GB DDR3 Memory (4x 2Gb DDR3 Memory chips) - commercial temperature range (0°C to +95°C)
    • 1GBps Ethernet PHY Tranciever KSZ9021RN - commercial temperature range (0°C to +70°C)



Note: During the chamber testing a heatsink covering the whole module was used. With a bigger heatsink maximum operating temperature can be further extended.

The setup in environmental chamber:
800px

Test description

The main purpose of this test is to check memory stability of iMX6 Rex Module. During the test these threads will be running:

  • 4 threads of extensive memory stress test
  • 4 threads of CPU stress test



This is the main command used for the test:

stressapptest -s 600000 -M 768 -m 4 -C 4 -W --printsec 600 -l /home/ubuntu/testing-env-chamber/stressapptest.log

Detailed description about how to setup and run the whole test can be found in section How to prepare the test. It describes all the scripts and explains log files.

Testing Results

The picture below shows the temperature profile during the whole testing process:
800px

Switch ON/OFF test - PASS

Test description: Boards were switched OFF, left OFF for 10 minutes and then switched ON. These tests were done several times for temperatures between -30°C to -35°C and for a temperature +70°C. All the boards booted up successfully.

400px 400px

Running the boards at -25°C - PASS

Test description: Ambient temperature was set to -25°C and the CPU and Memory stress tests were running. 800px

Running the boards at +70°C - PASS

Test description: Ambient temperature was set to +70°C and the CPU and Memory stress tests were running. 800px

Fast change of the temperature (from -25°C to +70°C) - PASS

Test description: Ambient temperature was rapidly changed from -25°C to +70°C. The CPU and Memory stress tests were running.

Preparing the test

SD card setup

For this test we used this kernel. Modified Xubuntu filesystem can be accessed from here. To create a new SD card, these instructions can be followed.

Create the log files

mkdir /home/ubuntu/testing-env-chamber
cd /home/ubuntu/testing-env-chamber
touch cpu-temp.log
touch stressapptest.log

Setup the cron

To be able to check the CPU temperature every minute a new cron job is setup. For Ubuntu file systems postfix package installation is required:

sudo apt-get install postfix

To setup a cron tab, the file containing all cron jobs needs to be altered. Before running the crontab for the first time selecting a text editor is required:

sudo crontab -e

Paste the following line to the end of this file. The output time format will be set as for stressapptest. Cron job performs a current CPU temperature readout and the data are saved in the log file.

Note: The percent char '%' has a special purpose in the cron file. When using it in the date command, backslash is reguired before the percent '\%':

* * * * * { echo -n $(date +\%Y/\%m/\%d-\%T); echo -n "("; echo -n $(date +\%Z); echo -n ") "; cat /sys/devices/virtual/thermal/thermal_zone0/temp; } >> /home/ubuntu/testing-env-chamber/cpu-temp.log

Setup the SSH connections

During the testing a simple local Ethernet network utilising a LAN switch and a control laptop was created. Two SSH sessions per board were opened (8 session in total). The first session was used for CPU and memory stress test. In the window below the current CPU temperature was printed out. The other three boards used the same format: 800px

Set up the date

As the RTC clock was not used during the test, the current time is set after board boots up. A time zone is updated first:

ln -sf /usr/share/zoneinfo/Europe/Bratislava /etc/localtime

An actual time is changed afterwards. The sequence of digits is used in this order: mouth day hour minute year (the example uses 04-July-2014 08:26):

date 070408262014

Setup the CPU temperature printout

Before the start the CPU and memory stress test, the old logs are backed up:

cd /home/ubuntu/testing-env-chamber
mv cpu-temp.log cpu-temp-testing1.log
mv stressapptest.log stressapptest-testing1.log
touch cpu-temp.log
touch stressapptest.log

To read the temperature tail command is used. It displays the last part of files (the cron job is writing to this log file):

tail -F cpu-temp.log

Start the stress test

stressapptest -s 600000 -M 768 -m 4 -C 4 -W --printsec 600 -l /home/ubuntu/testing-env-chamber/stressapptest.log

To make sure test is running smoothly, potential errors can be found in the log file (instead of rolling the stress test printout):

grep -i "error" stressapptest.log

The original article can be accessed on the iMX6Rex.com website.