Difference between revisions of "iMX6 Rex Environmental chamber testing"
(12 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | [[Category:iMX6 Rex Development | + | [[Category:iMX6 Rex Development Kit]] |
<!-- --> | <!-- --> | ||
<div style="float:right">__TOC__</div> | <div style="float:right">__TOC__</div> | ||
− | On this page environmental stress testing results of iMX6 Rex Development | + | 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 == | == Hardware configuration == | ||
− | + | Following hardware configurations were used for the testing: | |
<br /> | <br /> | ||
− | * 3x iMX6 Rex Development | + | * 3x iMX6 Rex Development Kit in [[iMX6 Rex Pro|Pro configuration]] |
** i.MX6 Quad 1.0 GHz CPU - extended temperature range (-20°C to +105°C) | ** 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) | ** 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) | ** 1GBps Ethernet PHY Tranciever KSZ9021RN - commercial temperature range (0°C to +70°C) | ||
<br /> | <br /> | ||
− | * 1x iMX6 Rex Development | + | * 1x iMX6 Rex Development Kit in modified Pro configuration |
** i.MX6 Quad 1.0 GHz CPU - extended temperature range (-20°C to +105°C) | ** 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) | ** 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) | ** 1GBps Ethernet PHY Tranciever KSZ9021RN - commercial temperature range (0°C to +70°C) | ||
<br /><br /> | <br /><br /> | ||
− | '''''Note:''''' During the chamber testing a heatsink covering the whole module was used. With a bigger heatsink maximum operating temperature can be further extended.<br ./><br /> | + | '''''Note:''''' During the chamber testing a heatsink covering the whole module was used. With a bigger heatsink, maximum operating temperature can be further extended.<br ./><br /> |
The setup in environmental chamber:<br /> | The setup in environmental chamber:<br /> | ||
− | [[image: | + | [[image:iMX6_Rex_Development_Kit-Environmental_chamber_testing_boards.jpg|800px]] |
== Test description == | == Test description == | ||
− | The main purpose of this test is to check memory stability of iMX6 Rex Module. During the test these threads | + | The main purpose of this test is to check memory stability of iMX6 Rex Module. During the test these threads were running: |
* 4 threads of extensive memory stress test | * 4 threads of extensive memory stress test | ||
* 4 threads of CPU stress test | * 4 threads of CPU stress test | ||
Line 37: | Line 37: | ||
== Testing Results == | == Testing Results == | ||
The picture below shows the temperature profile during the whole testing process:<br /> | The picture below shows the temperature profile during the whole testing process:<br /> | ||
− | [[image: | + | [[image:iMX6_Rex_Development_Kit-Env_chamber-Temperature_profile.png|680px]] |
− | === Switch ON/OFF test | + | === 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.<br /> | 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.<br /> | ||
{| | {| | ||
− | |[[image: | + | |[[image:iMX6_Rex_Development_Kit-Env_chamber_testing_-25°C.jpg|396px]] |
− | |[[image: | + | |[[image:iMX6_Rex_Development_Kit-Env_chamber_testing_+70°C.jpg|396px]] |
|} | |} | ||
− | === Running the boards at -25°C | + | === 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. | Test description: Ambient temperature was set to -25°C and the CPU and Memory stress tests were running. | ||
− | [[image: | + | [[image:iMX6_Rex_Development_Kit-Env_chamber-Logs_-25°C.png|800px]] |
− | === Running the boards at +70°C | + | === 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. | Test description: Ambient temperature was set to +70°C and the CPU and Memory stress tests were running. | ||
− | [[image: | + | [[image:iMX6_Rex_Development_Kit-Env_chamber-Logs_+70°C.png|800px]] |
− | === Fast change of the temperature (from -25°C to +70°C) | + | === 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. | Test description: Ambient temperature was rapidly changed from -25°C to +70°C. The CPU and Memory stress tests were running. | ||
== Preparing the test == | == Preparing the test == | ||
=== SD card setup === | === SD card setup === | ||
− | + | [http://downloads.voipac.com/files/iMX6_Rex_Development_Kit/module/software/linux/binaries/old/imx6rex-uImage-default-02-MAY-2014 Linux 4.1] kernel was used for this test. Modified Xubuntu filesystem can be accessed from [http://downloads.voipac.com/files/iMX6_Rex_Development_Kit/module/software/filesystem/filesystem_download.txt here]. To create a new SD card, [[iMX6 Rex Pro Creating Bootable microSD Card|these instructions]] can be followed. | |
=== Create the log files === | === Create the log files === | ||
Line 70: | Line 70: | ||
=== Setup the cron === | === Setup the cron === | ||
− | To be able to check the CPU temperature every minute a new cron job | + | To be able to check the CPU temperature every minute a new cron job was setup. For Ubuntu file systems ''postfix'' package installation is required: |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
sudo apt-get install postfix | sudo apt-get install postfix | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | To setup a cron tab, the file containing all cron jobs needs to be altered. Before running | + | 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: |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
sudo crontab -e | sudo crontab -e | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | Paste the following line to the end of | + | Paste the following line to the end of the cron list file. The output time format will be set the same as for stressapptest. Cron job performs a current CPU temperature readout and the data are saved in the log file: |
− | |||
− | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
* * * * * { 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 | * * * * * { 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 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | '''''Note:''''' The percent sign '%' has a special purpose in the cron file. As this sign is needed to write the date formats, the backslash is required to be placed before the percent sign: '\%'. | ||
=== 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. Two SSH sessions per board were opened (8 | + | 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 sessions 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: | + | [[image:iMX6_Rex_Development_Kit-Env_chamber-Logs_setup.png|800px]] |
=== Set up the date === | === Set up the date === | ||
− | As the RTC clock was not used during the test, the current time is set after | + | As the RTC clock was not used during the test, the current time is set after boards boot 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> | ||
− | + | The actual time is changed afterwards. Sequence of digits in the following order was used: month day hour minute year. The command below sets this time and date: 04-July-2014 08:26 | |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
date 070408262014 | date 070408262014 | ||
Line 103: | Line 102: | ||
=== Setup the CPU temperature printout === | === Setup the CPU temperature printout === | ||
− | Before | + | Before the CPU and memory stress tests start, the old logs were backed up: |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
cd /home/ubuntu/testing-env-chamber | cd /home/ubuntu/testing-env-chamber | ||
Line 112: | Line 111: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | Tail command is used to read the temperature. It displays the last part of files (the cron job is writing to this log file): | |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
tail -F cpu-temp.log | tail -F cpu-temp.log | ||
Line 127: | Line 126: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | <br /> | ||
The original article can be accessed on the [https://www.imx6rex.com/software/memory-stress-testing-in-environmental-chamber/ iMX6Rex.com website]. | The original article can be accessed on the [https://www.imx6rex.com/software/memory-stress-testing-in-environmental-chamber/ iMX6Rex.com website]. |
Latest revision as of 08:58, 26 October 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
Following hardware configurations were used for the testing:
- 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:
Test description
The main purpose of this test is to check memory stability of iMX6 Rex Module. During the test these threads were 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:
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.
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.
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.
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
Linux 4.1 kernel was used for this test. 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 was 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 the cron list file. The output time format will be set the same as for stressapptest. Cron job performs a current CPU temperature readout and the data are saved in the log file:
* * * * * { 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
Note: The percent sign '%' has a special purpose in the cron file. As this sign is needed to write the date formats, the backslash is required to be placed before the percent sign: '\%'.
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 sessions 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:
Set up the date
As the RTC clock was not used during the test, the current time is set after boards boot up. A time zone is updated first:
ln -sf /usr/share/zoneinfo/Europe/Bratislava /etc/localtime
The actual time is changed afterwards. Sequence of digits in the following order was used: month day hour minute year. The command below sets this time and date: 04-July-2014 08:26
date 070408262014
Setup the CPU temperature printout
Before the CPU and memory stress tests start, the old logs were 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
Tail command is used to read the temperature. 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.