Giter VIP home page Giter VIP logo

rbonghi / jetson_easy Goto Github PK

View Code? Open in Web Editor NEW
280.0 27.0 44.0 306 KB

🔩 Automatically script to setup and configure your NVIDIA Jetson [Nano, Xavier, TX2i, TX2, TX1, TK1] . This script run different modules to update, fix and patch the kernel, install ROS and other...

Home Page: http://rnext.it/project/jetson-easy/

License: MIT License

Shell 100.00%
nvidia jetson-tx1 jetson-tx2 ros zed kernel nvidia-jetson jetson-easy jetson-performance jetson

jetson_easy's Introduction

Jetson Easy setup configurator

Welcome in the Jetson setup configurator - Visit the Official website or read the Wiki

The idea of this project is automatically update and setup your NVIDIA Jetson [Nano, Xavier, TX2i, TX2, TX1, TK1] embedded board without wait a lot of time.

Main features:

If you want start with this toolkit you can write in your server bash:

ubuntu@server:~$ git clone https://github.com/rbonghi/jetson_easy.git
ubuntu@server:~$ cd jetson_easy
ubuntu@server:~/jetson_easy$ ./biddibi_boddibi_boo.sh

Biddibi Boddibi Boo

Biddibi Boddibi Boo Logo

The main script is called biddibi_boddibi_boo.sh and you can setup in one shot all your board. The system has different modules to control your automatic installation, the list follow:

  1. Update & Distribution upgrade & Upgrade Update, upgrade and distribution upgrade the NVIDIA Jetson in only one shot
  2. Install Jetson release and performance service It's an automatic installer for Jetson_performance, jetson_variables and jetson_release
  3. Patch the NVIDIA Jetson from known errors If your release of NVIDIA Jetson have errors or require a patch this module update and fix automatically
  4. Kernel Update This module fix the NVIDIA Jetson and add the common drivers (FTDI, ACM, etc...)
  5. Set hostname Update permantly the hostname of your board
  6. Install ROS With this modules you install the release ROS in your board, add the workspace and set the ROS_MASTER_URI
  7. Set git user.name and user.email in your NVIDIA Jetson
  8. Install standard packages You can add in your NVIDIA Jetson the common packages (nano, htop, ... ) to ZED drivers (coming soon) and other...

The biddibi_boddibi_boo.sh run with an easy user interface or you can use the silent mode and following a setup file the system will be installed automatically without other messages. If you want know all features you can write:

ubuntu@server:~/jetson_easy$ ./biddibi_boddibi_boo.sh -h
Bibbibi Boddibi Boo is an automatic install for different type of modules.
Usage:
./biddibi_boddibi_boo.sh [options]
options,
   -h|--help      | This help
   --nogui        | Launch the system in silent mode (Without GUI)
   -q|--quiet     | If required, force automatically the reboot
   -c [file]      | Load configuration file from other reference [file]
   -m [user@host] | Remote connection with NVIDIA Jetson host
   -p [passwd]    | Load password without any other request from the script

Remote connection

The Bibbibi Boddibi Boo script recognize if the script run on the NVIDIA Jetson or remotely and request the address and the password to connect on your board.

Biddibi Boddibi Boo - remote 3

After savind the remote configuration the script automatically connect on your board without write again the user and the password.

Biddibi Boddibi Boo - remote 1

Interactive user interface

When you launch the script you can read the information about your board, from user and hostname, release of the kernel to the NVIDIA Jetson hardware release if installed the version of ROS Biddibi Boddibi Boo - page 1

In second menu you can setup your board and setup which type of installation you like. Finally you can save and store all information in a file and use same setup for the future. Biddibi Boddibi Boo - page 2

Finally you can startup the installer and wait that jetson_easy complete the installation for you!

Command line

Look like the Interactive user interface this command start the installer without show you any type of messages

nvidia@tegra-ubuntu:~/jetson_easy$ ./biddibi_boddibi_boo.sh -q

Jetson_performance, jetson_variables and jetson_release

  • jetson_variables - This script generate the easy environment variables to know which is your Hardware version of the Jetson and which Jetpack you have already installed
  • jetson_release - The command show the status and all information about your NVIDIA Jetson
  • jetson_performance - This service load jetson_clock.sh has a linux service

jetson_easy's People

Contributors

14nrv avatar amnayak avatar rafcin avatar rbonghi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

jetson_easy's Issues

JSON Output

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)

Supporting latest L4T

Seems, that scripts don't yet support the latest release of L4T R32.2 and because of that some parts of the tool are failing.

Work with latest jetPack 4.4 DP ?

Hello,

Can you confirm that this script work with ? :

NVIDIA Jetson AGX Xavier - Jetpack 4.4 DP [L4T 32.4.2]

 - Up Time:        1 days 1:31:37                                                                         Version: 2.0.4
 - Jetpack:        4.4 DP [L4T 32.4.2]                                                                     Author: Raffaello Bonghi
 - Board:                                                                                                  e-mail: [email protected]
   * Board(s):     P2888-0001, P2822-0000
   * Code Name:    galen
   * GPU-Arch:     7.2
   * SN:           
   * SOC:          tegra194 - ID:25
   * Type:         AGX Xavier
 - Libraries:
   * CUDA:         10.2.89
   * OpenCV:       4.3.0-dev compiled CUDA: YES
   * TensorRT:     7.1.0.16
   * VisionWorks:  1.6.0.501
   * cuDNN:        8.0.0.145
 - Hostname:       xavier

Have a good day
thks.

Thank you!

My SDD on my Jetson destroyed it's self somehow the day before a comp (today) and I lost all my code and configurations, but this package you made just saved my life, it saved me so much install time!

Thank you for existing, you are a miracle man!

errors :(

Hi,
Nice project

I run the script on my VM (ubuntu) and I got those errors. Do u have an idea why?
I would like to have the ACM module

  • I can manually make ssh on my jetson nano.
  • I installed rsync on my vm.
  • Linux r-nano 4.9.140-tegra #1 SMP PREEMPT Wed Mar 13 00:32:22 PDT 2019 aarch64 aarch64 aarch64 GNU/Linux

Capture d’écran 2019-06-05 à 22 47 50

Support for ROS melodic

Hey there

First of all, nice idea - a script like that is badly needed for the Jetson family of boards.

I gave it a spin today and have noticed that on Ubuntu 18.04 (artful) only Kinetic is presented as a viable option...do you have a timeframe when ROS melodic will be integrated? Also, even though Kinetic is available as an option, it does not install anything.

cheers,
michael

Default carrier board only?

I have a J120 carrier board, will the process work for non-default carrier board of Jetson TX1/2? Thanks.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.