Skip to content

JSON Output #20

@karlkobel

Description

@karlkobel

Here is my modification to output the versions in JSON (original code commented out):

#!/usr/bin/env python

-- coding: UTF-8 --

MIT License

Copyright (c) 2017-2022 Jetsonhacks

Please see accompanying license information

from future import print_function
import os,sys
import json
import sys

class terminalColors:
WARNING = '\033[93m'
FAIL = '\033[91m'
ENDC = '\033[0m'

import pprint
import subprocess

command = ['bash', '-c', 'source scripts/jetson_variables.sh && env']

proc = subprocess.Popen(command, stdout = subprocess.PIPE)
environment_vars = {}
for line in proc.stdout:
(key, _, value) = line.partition(b"=")
environment_vars[key.decode()] = value.decode()

proc.communicate()

sys_data = {}

Jetson Model

#print("NVIDIA " + environment_vars["JETSON_MODEL"].strip())
sys_data["NVIDIA"] = environment_vars["JETSON_MODEL"].strip()

#L4T Version
#print(' L4T ' + environment_vars['JETSON_L4T'].strip() + ' [ JetPack ' +environment_vars['JETSON_JETPACK'].strip()+' ]')
sys_data["L4T"] = environment_vars['JETSON_L4T'].strip() + ' [ JetPack ' +environment_vars['JETSON_JETPACK'].strip()+' ]'

Ubuntu version

if os.path.exists('/etc/os-release'):
with open('/etc/os-release', 'r') as ubuntuVersionFile:
ubuntuVersionFileText=ubuntuVersionFile.read()
for line in ubuntuVersionFileText.splitlines():
if 'PRETTY_NAME' in line:
# PRETTY_NAME="Ubuntu 16.04 LTS"
ubuntuRelease=line.split('"')[1]
#print(' ' + ubuntuRelease)
sys_data["Ubuntu"] = ubuntuRelease
else:
print(terminalColors.FAIL + 'Error: Unable to find Ubuntu Version' + terminalColors.ENDC)
print('Reason: Unable to find file /etc/os-release')

Kernel Release

if os.path.exists('/proc/version'):
with open('/proc/version', 'r') as versionFile:
versionFileText=versionFile.read()
kernelReleaseArray=versionFileText.split(' ')
#print(' Kernel Version: ' + kernelReleaseArray[2])
sys_data["Kernel Version"] = kernelReleaseArray[2]
else:
print(terminalColors.FAIL + 'Error: Unable to find Linux kernel version' + terminalColors.ENDC)
print('Reason: Unable to find file /proc/version')

command1 = ['bash', '-c', 'source scripts/jetson_libraries.sh && env']

proc1 = subprocess.Popen(command1, stdout = subprocess.PIPE)

environment_vars = {}

for line in proc1.stdout:
(key, _, value) = line.partition(b"=")
environment_vars[key.decode()] = value.decode()

#print(' CUDA ' + environment_vars['JETSON_CUDA'].strip())
sys_data["CUDA"] = environment_vars['JETSON_CUDA'].strip()
#print(' CUDA Architecture: ' + environment_vars['JETSON_CUDA_ARCH_BIN'].strip())
sys_data["CUDA Architecture"] = environment_vars['JETSON_CUDA_ARCH_BIN'].strip()
#print(' OpenCV version: ' + environment_vars['JETSON_OPENCV'].strip())
sys_data["OpenCV version"] = environment_vars['JETSON_OPENCV'].strip()
#print(' OpenCV Cuda: ' + environment_vars['JETSON_OPENCV_CUDA'].strip())
sys_data["OpenCV Cuda"] = environment_vars['JETSON_OPENCV_CUDA'].strip()
#print(' CUDNN: ' + environment_vars['JETSON_CUDNN'].strip())
sys_data["CUDNN"] = environment_vars['JETSON_CUDNN'].strip()
#print(' TensorRT: ' + environment_vars['JETSON_TENSORRT'].strip())
sys_data["TensorRT"] = environment_vars['JETSON_TENSORRT'].strip()
#print(' Vision Works: ' + environment_vars['JETSON_TENSORRT'].strip())
sys_data["Vision Works"] = environment_vars['JETSON_TENSORRT'].strip()
#print(' VPI: ' + environment_vars['JETSON_VPI'].strip())
sys_data["VPI"] = environment_vars['JETSON_VPI'].strip()
#print(' Vulcan: ' + environment_vars['JETSON_VULKAN_INFO'].strip())
sys_data["Vulcan"] = environment_vars['JETSON_VULKAN_INFO'].strip()

sys_data["Python"] = str(sys.version_info[0]) + "." + str(sys.version_info[1])

system_data = json.dumps(sys_data)
print(system_data)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions