1## Tools used in OpenBMC Test Automation 2 3## IPMItool considerations: 4 5IPMItool version 1.8.18 or later. 6 7``` 8 $ ipmitool -V 9 ipmitool version 1.8.18 10``` 11 12## Hardware Test Executive (HTX): 13 14HTX is a suite of test tools for stressing system hardware. It is routinely used 15by the test suites under `systest/`. Refer to 16[README](https://github.com/open-power/HTX) 17 18## Remote Logging via Rsyslog 19 20Refer to 21[README](https://github.com/openbmc/phosphor-logging/blob/master/README.md#remote-logging-via-rsyslog) 22 23## Converting SELs to readable format: 24 25Pre-requisite: A Power Linux system is required. 26 27- Obtain the SEL (System Error Log) parser tools: 28 29 - Go to https://openpower.xyz/job/openpower/job/openpower-op-build/ 30 - Click the link for the BMC system of interest (e.g. witherspoon) 31 - Click the "host_fw_debug.tar" link in order to download the tar file. 32 - On your Power Linux system, untar the file with the following command: 33 34 ``` 35 $ tar -xvf host_fw_debug.tar 36 ``` 37 38 - Rename the untarred files with: 39 40 ``` 41 $ for file_name in host_fw_debug* ; do mv $file_name ${file_name#host_fw_debug} ; done 42 ``` 43 44 The files of interest are: eSEL.pl hbotStringFile hbicore.syms 45 46- The error log binary parser is also required: 47 48 - Go to https://sourceforge.net/projects/linux-diag/files/ppc64-diag/ 49 - Download the latest release version of the source tar zipped. 50 - Extract the tarball and compile. Refer to README in the source. 51 - On successful compilation, get `opal-elog-parse` binary. 52 53- To generate a readable error log from binary SEL data: 54 55 Create a directory and copy the binary files there. Next, 56 57 ``` 58 $ export PATH=$PATH:<path to directory> 59 ``` 60 61 And run 62 63 ``` 64 $ eSEL.pl -l SEL_data -p decode_obmc_data --op 65 ``` 66 67 where `SEL_data` is the file containing SEL binary data and option "--op" will 68 refer "opal-elog-parse" instead or errl. 69 70 The output file `SEL_data.txt` contains the readable error log (SEL) data. 71 72## The opal-prd Tool: 73 74opal-prd is a tool used by the Energy Scale and RAS tests. It should be 75installed on the OS of the system under test before running those tests. 76 77opal-prd may be installed on Ubuntu with: ` apt install opal-prd ` and on RedHat 78with: ` yum install opal-prd ` 79 80## Obtain a copy of GitHub issues in CSV format: 81 82Note: You will be prompted to enter your GitHub password. 83 84Usage: 85 86``` 87$ cd tools/ 88$ python github_issues_to_csv <github user> <github repo> 89``` 90 91Example for getting openbmc issues: 92 93``` 94$ python github_issues_to_csv <github user> openbmc/openbmc 95``` 96 97Example for getting openbmc-test-automation issues: 98 99``` 100$ python github_issues_to_csv <github user> openbmc/openbmc-test-automation 101``` 102 103## Generate Documentation for Robot Test Cases: 104 105Usage: 106 107``` 108$ ./tools/generate_test_document <Robot test directory path> <test case document file path> 109``` 110 111Example for generating tests cases documentation for tests directory: 112 113``` 114$ ./tools/generate_test_document tests testsdirectoryTCdocs.html 115``` 116 117Example for generating tests cases documentation: Note: Invoke the tool without 118arguments: 119 120``` 121$ ./tools/generate_test_document 122``` 123 124## Non-Volatile Memory Express Command Line Interface (nvme-cli): 125 126nvme-cli is a linux command line tool for accessing Non-Volatile Storage (NVM) 127media attached via PCIe bus. 128 129Source: https://github.com/linux-nvme/nvme-cli 130 131To install nvme-cli on RedHat: 132 133``` 134yum install name-cli 135``` 136 137To install nvme-cli on Ubuntu: 138 139``` 140sudo apt-get install nvme-cli 141``` 142 143- Obtaining the PPA for Ubuntu 144 - Add the sbates PPA to your sources: 145 https://launchpad.net/~sbates/+archive/ubuntu/ppa 146 147## The Hdparm tool: 148 149hdparm is a command line utility for setting and viewing hardware parameters of 150hard disk drives. 151 152To install hdparm on RedHat: 153 154``` 155yum install hdparm 156``` 157 158To install hdparm on Ubuntu: 159 160``` 161sudo apt-get update 162sudo apt-get install hdparm 163``` 164 165## OpenSSL tool: 166 167OpenSSL is an open-source command line tool that is commonly used to generate 168certificates and private keys, create CSRs and identify certificate information. 169 170To generate a self-signed certificate with a private key: 171 172``` 173openssl req -x509 -sha256 -newkey rsa:2048 -nodes -days <number of days a certificate is valid for> -keyout <certificate filename> -out <certificate filename> -subj "/O=<Organization Name>/CN=<Common Name>" 174``` 175 176_Example:_ 177 178``` 179openssl req -x509 -sha256 -newkey rsa:2048 -nodes -days 365 -keyout certificate.pem -out certificate.pem -subj "/O=XYZ Corporation /CN=www.xyz.com" 180``` 181 182To view installed certificates on a OpenBMC system: 183 184``` 185openssl s_client -connect <BMC_IP>:443 -showcerts 186``` 187 188Refer to the 189[OpenSSL manual](https://www.openssl.org/docs/manmaster/man1/req.html) for more 190details. 191 192## peltool: 193 194peltool is an open-source platform event log(PEL) tool generally used to view 195and delete pel logs that are generated on the BMC system. Also, provides various 196pel related operations as mentioned in the 'peltool --help'. 197 198``` 199 peltool -h 200OpenBMC PEL Tool 201Usage: peltool [OPTIONS] 202 203Options: 204 --help Print this help message and exit 205 --file TEXT Display a PEL using its Raw PEL file 206 -i,--id TEXT Display a PEL based on its ID 207 --bmc-id TEXT Display a PEL based on its BMC Event ID 208 -a Display all PELs 209 -l List PELs 210 -n Show number of PELs 211 -r Reverse order of output 212 -h Include hidden PELs 213 -f,--info Include informational PELs 214 -t,--termination List only critical system terminating PELs 215 -d,--delete TEXT Delete a PEL based on its ID 216 -D,--delete-all Delete all PELs 217 -s,--scrub TEXT File containing SRC regular expressions to ignore 218 -x Display PEL(s) in hexdump instead of JSON 219 --archive List or display archived PELs 220``` 221 222## guard tool: 223 224guard tool on BMC provides an option to create, view and delete the faulty 225units. Refer to [README](https://github.com/open-power/guard#readme) 226 227## pldmtool: 228 229pldmtool is an open-source client tool that acts as a PLDM requester which runs 230on the BMC. pldmtool supports the subcommands for PLDM types such as base, 231platform, bios, fru, and oem-ibm as mentioned in the 'pldmtool --help'. Refer to 232[README](https://github.com/openbmc/pldm/tree/master/pldmtool#README.md) 233