jetson-cli 0.2.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- jetson_cli-0.2.0/CLAUDE.md +126 -0
- jetson_cli-0.2.0/LICENSE +21 -0
- jetson_cli-0.2.0/MANIFEST.in +21 -0
- jetson_cli-0.2.0/PKG-INFO +213 -0
- jetson_cli-0.2.0/README.md +164 -0
- jetson_cli-0.2.0/docs/requests/jetson-cli-package.md +148 -0
- jetson_cli-0.2.0/docs/suggestions/jetson-cli-enhancements.md +241 -0
- jetson_cli-0.2.0/jetson_cli/__init__.py +8 -0
- jetson_cli-0.2.0/jetson_cli/cli.py +205 -0
- jetson_cli-0.2.0/jetson_cli/utils.py +144 -0
- jetson_cli-0.2.0/jetson_cli.egg-info/PKG-INFO +213 -0
- jetson_cli-0.2.0/jetson_cli.egg-info/SOURCES.txt +26 -0
- jetson_cli-0.2.0/jetson_cli.egg-info/dependency_links.txt +1 -0
- jetson_cli-0.2.0/jetson_cli.egg-info/entry_points.txt +2 -0
- jetson_cli-0.2.0/jetson_cli.egg-info/requires.txt +14 -0
- jetson_cli-0.2.0/jetson_cli.egg-info/top_level.txt +1 -0
- jetson_cli-0.2.0/pyproject.toml +104 -0
- jetson_cli-0.2.0/scripts/configure-docker.sh +288 -0
- jetson_cli-0.2.0/scripts/configure-power-mode.sh +135 -0
- jetson_cli-0.2.0/scripts/configure-ssd.sh +271 -0
- jetson_cli-0.2.0/scripts/configure-swap.sh +265 -0
- jetson_cli-0.2.0/scripts/configure-system-gui.sh +174 -0
- jetson_cli-0.2.0/scripts/create-env-profile.sh +449 -0
- jetson_cli-0.2.0/scripts/probe-system.sh +390 -0
- jetson_cli-0.2.0/scripts/setup-system.sh +170 -0
- jetson_cli-0.2.0/scripts/system-config.yaml +41 -0
- jetson_cli-0.2.0/setup.cfg +4 -0
- jetson_cli-0.2.0/setup.py +70 -0
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
# CLAUDE.md
|
|
2
|
+
|
|
3
|
+
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
This repository is a Jetson setup system that includes the `jetson-containers` framework - a modular container build system for AI/ML packages on NVIDIA Jetson devices. The repository provides system setup scripts and integrates the jetson-containers framework as a Git submodule.
|
|
8
|
+
|
|
9
|
+
## Common Commands
|
|
10
|
+
|
|
11
|
+
### Jetson CLI (Recommended)
|
|
12
|
+
```bash
|
|
13
|
+
# Install the CLI package globally
|
|
14
|
+
pip install jetson-cli
|
|
15
|
+
|
|
16
|
+
# System operations
|
|
17
|
+
jetson-cli probe # analyze system configuration
|
|
18
|
+
jetson-cli init # create environment profile
|
|
19
|
+
jetson-cli setup # complete system setup
|
|
20
|
+
jetson-cli configure docker # configure specific components
|
|
21
|
+
jetson-cli status # show system status
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
### Container Building
|
|
25
|
+
```bash
|
|
26
|
+
# Install the container tools
|
|
27
|
+
bash jetson-containers/install.sh
|
|
28
|
+
|
|
29
|
+
# Build a container with specific packages
|
|
30
|
+
jetson-containers build pytorch # single package
|
|
31
|
+
jetson-containers build pytorch jupyterlab # multiple packages chained
|
|
32
|
+
jetson-containers build --multiple pytorch tensorflow # separate containers
|
|
33
|
+
jetson-containers build --name=my_container pytorch # custom name
|
|
34
|
+
|
|
35
|
+
# List available packages
|
|
36
|
+
jetson-containers build --list-packages
|
|
37
|
+
jetson-containers build --show-packages
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### Running Containers
|
|
41
|
+
```bash
|
|
42
|
+
# Run a container (pulls/builds if needed)
|
|
43
|
+
jetson-containers run $(autotag l4t-pytorch)
|
|
44
|
+
|
|
45
|
+
# Manual docker run
|
|
46
|
+
sudo docker run --runtime nvidia -it --rm --network=host dustynv/l4t-pytorch:r36.2.0
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### System Setup (Direct Scripts)
|
|
50
|
+
```bash
|
|
51
|
+
# Run system setup scripts directly
|
|
52
|
+
./scripts/setup-system.sh # main system configuration
|
|
53
|
+
./scripts/configure-docker.sh # Docker daemon setup
|
|
54
|
+
./scripts/configure-swap.sh # memory/swap tuning
|
|
55
|
+
./scripts/configure-ssd.sh # storage configuration
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## Architecture
|
|
59
|
+
|
|
60
|
+
### Core Structure
|
|
61
|
+
- **`jetson-containers/`**: Git submodule containing the main container framework
|
|
62
|
+
- `jetson_containers/`: Python modules for build system (`build.py`, `container.py`, `packages.py`)
|
|
63
|
+
- `packages/`: Container package definitions organized by category (llm/, ml/, robotics/, etc.)
|
|
64
|
+
- `build.sh`/`run.sh`: Wrapper scripts for container operations
|
|
65
|
+
- `install.sh`: System installation script
|
|
66
|
+
|
|
67
|
+
- **`scripts/`**: System configuration scripts for Jetson devices
|
|
68
|
+
- Environment setup, Docker configuration, hardware tuning
|
|
69
|
+
|
|
70
|
+
- **`jetson_cli/`**: Python CLI package for system management
|
|
71
|
+
- `cli.py`: Main Click-based command interface
|
|
72
|
+
- `utils.py`: Platform detection and script execution utilities
|
|
73
|
+
- Provides user-friendly interface to underlying scripts
|
|
74
|
+
|
|
75
|
+
### Package System
|
|
76
|
+
The container framework uses a modular package system where:
|
|
77
|
+
- Each package has a `Dockerfile` and optional `config.py` for dynamic configuration
|
|
78
|
+
- Packages specify dependencies, build requirements, and metadata via YAML headers or config files
|
|
79
|
+
- The build system resolves dependencies and chains Dockerfiles together
|
|
80
|
+
- Base images default to JetPack-compatible containers (l4t-base, l4t-jetpack, or ubuntu)
|
|
81
|
+
|
|
82
|
+
### Container Categories
|
|
83
|
+
- **ML/AI**: PyTorch, TensorFlow, ONNX Runtime, transformers
|
|
84
|
+
- **LLM**: SGLang, vLLM, MLC, text-generation-webui, ollama, llama.cpp
|
|
85
|
+
- **VLM**: LLaVA, VILA, NanoLLM (vision-language models)
|
|
86
|
+
- **Robotics**: ROS, Genesis, OpenVLA, LeRobot
|
|
87
|
+
- **Computer Vision**: NanoOWL, SAM, CLIP, DeepStream
|
|
88
|
+
- **Graphics**: Stable Diffusion, ComfyUI, NeRF Studio
|
|
89
|
+
|
|
90
|
+
### Build Process
|
|
91
|
+
1. Package scanning finds available packages under `jetson-containers/packages/`
|
|
92
|
+
2. Dependency resolution determines build order
|
|
93
|
+
3. Dockerfiles are chained together with intermediate images
|
|
94
|
+
4. Build commands and logs are saved under `jetson-containers/logs/`
|
|
95
|
+
5. Containers are tagged with L4T/JetPack version compatibility
|
|
96
|
+
|
|
97
|
+
## Testing
|
|
98
|
+
Test scripts are typically included with each package as `test.py` or `test.sh` files. The build system can run tests automatically during container builds.
|
|
99
|
+
|
|
100
|
+
## Version Management
|
|
101
|
+
- `CUDA_VERSION`: Can be overridden to rebuild stack for different CUDA versions
|
|
102
|
+
- `L4T_VERSION`: Automatically detected JetPack/L4T version for compatibility
|
|
103
|
+
- Package versions are managed through config files and can be pinned or dynamically selected
|
|
104
|
+
|
|
105
|
+
## CLI Package Development
|
|
106
|
+
|
|
107
|
+
### Installation
|
|
108
|
+
```bash
|
|
109
|
+
# Development installation
|
|
110
|
+
pip install -e .
|
|
111
|
+
|
|
112
|
+
# Production installation
|
|
113
|
+
pip install jetson-cli
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
### GitHub Actions Pipelines
|
|
117
|
+
- **CI Pipeline**: Tests across Python versions, linting, security scans
|
|
118
|
+
- **Release Pipeline**: Automated version bumping and PyPI publishing on main branch merges
|
|
119
|
+
- **Installation Testing**: Validates package installation across environments
|
|
120
|
+
|
|
121
|
+
### CLI Commands Reference
|
|
122
|
+
- `jetson-cli probe [--output table|json|yaml] [--save file]`: System analysis
|
|
123
|
+
- `jetson-cli init [--profile-name name] [--force]`: Environment profile creation
|
|
124
|
+
- `jetson-cli setup [--skip-docker] [--skip-swap] [--interactive]`: Complete setup
|
|
125
|
+
- `jetson-cli configure <docker|swap|ssd|power|gui>`: Component configuration
|
|
126
|
+
- `jetson-cli status [--format table|json]`: System status overview
|
jetson_cli-0.2.0/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Ori Nachum
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
include README.md
|
|
2
|
+
include LICENSE
|
|
3
|
+
include CLAUDE.md
|
|
4
|
+
include pyproject.toml
|
|
5
|
+
include setup.py
|
|
6
|
+
|
|
7
|
+
recursive-include jetson_cli *.py
|
|
8
|
+
recursive-include jetson_cli/scripts *.sh
|
|
9
|
+
recursive-include jetson_cli/config *.yaml *.yml *.json
|
|
10
|
+
|
|
11
|
+
recursive-include scripts *.sh *.yaml *.yml
|
|
12
|
+
recursive-include docs *.md
|
|
13
|
+
|
|
14
|
+
exclude .gitignore
|
|
15
|
+
exclude .github/workflows/*
|
|
16
|
+
exclude tests/*
|
|
17
|
+
exclude jetson-containers/*
|
|
18
|
+
|
|
19
|
+
global-exclude __pycache__
|
|
20
|
+
global-exclude *.py[co]
|
|
21
|
+
global-exclude .DS_Store
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: jetson-cli
|
|
3
|
+
Version: 0.2.0
|
|
4
|
+
Summary: Command-line interface for NVIDIA Jetson setup and configuration
|
|
5
|
+
Home-page: https://github.com/your-org/jetson-setup
|
|
6
|
+
Author: Jetson Setup Team
|
|
7
|
+
Author-email: Jetson Setup Team <support@jetson-setup.com>
|
|
8
|
+
License: MIT
|
|
9
|
+
Project-URL: Homepage, https://github.com/your-org/jetson-setup
|
|
10
|
+
Project-URL: Documentation, https://github.com/your-org/jetson-setup/blob/main/README.md
|
|
11
|
+
Project-URL: Repository, https://github.com/your-org/jetson-setup.git
|
|
12
|
+
Project-URL: Bug Reports, https://github.com/your-org/jetson-setup/issues
|
|
13
|
+
Keywords: jetson,nvidia,embedded,ai,ml,docker,containers,setup
|
|
14
|
+
Classifier: Development Status :: 4 - Beta
|
|
15
|
+
Classifier: Environment :: Console
|
|
16
|
+
Classifier: Intended Audience :: Developers
|
|
17
|
+
Classifier: Intended Audience :: System Administrators
|
|
18
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
19
|
+
Classifier: Operating System :: POSIX :: Linux
|
|
20
|
+
Classifier: Programming Language :: Python :: 3
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.8
|
|
22
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
23
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
24
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
25
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
26
|
+
Classifier: Topic :: System :: Systems Administration
|
|
27
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
28
|
+
Classifier: Topic :: Utilities
|
|
29
|
+
Requires-Python: >=3.8
|
|
30
|
+
Description-Content-Type: text/markdown
|
|
31
|
+
License-File: LICENSE
|
|
32
|
+
Requires-Dist: click>=8.0.0
|
|
33
|
+
Requires-Dist: pyyaml>=6.0
|
|
34
|
+
Requires-Dist: tabulate>=0.9.0
|
|
35
|
+
Requires-Dist: packaging>=20.0
|
|
36
|
+
Requires-Dist: psutil>=5.8.0
|
|
37
|
+
Requires-Dist: rich>=12.0.0
|
|
38
|
+
Provides-Extra: dev
|
|
39
|
+
Requires-Dist: pytest>=6.0; extra == "dev"
|
|
40
|
+
Requires-Dist: pytest-cov>=2.0; extra == "dev"
|
|
41
|
+
Requires-Dist: black>=22.0; extra == "dev"
|
|
42
|
+
Requires-Dist: flake8>=4.0; extra == "dev"
|
|
43
|
+
Requires-Dist: isort>=5.0; extra == "dev"
|
|
44
|
+
Requires-Dist: bump2version>=1.0; extra == "dev"
|
|
45
|
+
Dynamic: author
|
|
46
|
+
Dynamic: home-page
|
|
47
|
+
Dynamic: license-file
|
|
48
|
+
Dynamic: requires-python
|
|
49
|
+
|
|
50
|
+
# jetson-cli
|
|
51
|
+
|
|
52
|
+
A comprehensive CLI tool for setting up NVIDIA Jetson devices and building containerized AI/ML applications using the jetson-containers framework.
|
|
53
|
+
|
|
54
|
+
## Overview
|
|
55
|
+
|
|
56
|
+
jetson-cli provides a streamlined interface for:
|
|
57
|
+
- Analyzing and configuring Jetson hardware
|
|
58
|
+
- Setting up development environments
|
|
59
|
+
- Building and running containerized AI/ML applications
|
|
60
|
+
- Managing the jetson-containers ecosystem
|
|
61
|
+
|
|
62
|
+
## Installation
|
|
63
|
+
|
|
64
|
+
### From PyPI (Recommended)
|
|
65
|
+
```bash
|
|
66
|
+
pip install jetson-cli
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### From Source
|
|
70
|
+
```bash
|
|
71
|
+
git clone https://github.com/orinachum/jetson-cli.git
|
|
72
|
+
cd jetson-cli
|
|
73
|
+
pip install -e .
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## Quick Start
|
|
77
|
+
|
|
78
|
+
1. **Analyze your system**:
|
|
79
|
+
```bash
|
|
80
|
+
jetson-cli probe
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
2. **Initialize environment**:
|
|
84
|
+
```bash
|
|
85
|
+
jetson-cli init
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
3. **Complete setup**:
|
|
89
|
+
```bash
|
|
90
|
+
jetson-cli setup
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
## Commands
|
|
94
|
+
|
|
95
|
+
### System Analysis
|
|
96
|
+
```bash
|
|
97
|
+
jetson-cli probe # Show system configuration
|
|
98
|
+
jetson-cli probe --output json # Output as JSON
|
|
99
|
+
jetson-cli probe --save config.yaml # Save to file
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
### Environment Setup
|
|
103
|
+
```bash
|
|
104
|
+
jetson-cli init # Create environment profile
|
|
105
|
+
jetson-cli init --profile-name dev # Custom profile name
|
|
106
|
+
jetson-cli init --force # Overwrite existing profile
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
### System Configuration
|
|
110
|
+
```bash
|
|
111
|
+
jetson-cli setup # Complete system setup
|
|
112
|
+
jetson-cli setup --skip-docker # Skip Docker configuration
|
|
113
|
+
jetson-cli setup --interactive # Interactive mode
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
### Component Management
|
|
117
|
+
```bash
|
|
118
|
+
jetson-cli configure docker # Configure Docker daemon
|
|
119
|
+
jetson-cli configure swap # Setup swap file
|
|
120
|
+
jetson-cli configure ssd # Configure SSD storage
|
|
121
|
+
jetson-cli configure power # Power management settings
|
|
122
|
+
jetson-cli configure gui # GUI environment setup
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
### Status Monitoring
|
|
126
|
+
```bash
|
|
127
|
+
jetson-cli status # Show system status
|
|
128
|
+
jetson-cli status --format json # JSON output format
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
## jetson-containers Integration
|
|
132
|
+
|
|
133
|
+
This tool integrates with the [jetson-containers](https://github.com/dusty-nv/jetson-containers) framework to provide containerized AI/ML packages:
|
|
134
|
+
|
|
135
|
+
### Container Building
|
|
136
|
+
```bash
|
|
137
|
+
# After jetson-cli setup, use jetson-containers directly
|
|
138
|
+
jetson-containers build pytorch # Build PyTorch container
|
|
139
|
+
jetson-containers build pytorch jupyterlab # Chain multiple packages
|
|
140
|
+
jetson-containers build --name=my_app pytorch # Custom container name
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
### Available Packages
|
|
144
|
+
- **ML/AI**: PyTorch, TensorFlow, ONNX Runtime, transformers
|
|
145
|
+
- **LLM**: SGLang, vLLM, MLC, text-generation-webui, ollama
|
|
146
|
+
- **VLM**: LLaVA, VILA, NanoLLM (vision-language models)
|
|
147
|
+
- **Robotics**: ROS, Genesis, OpenVLA, LeRobot
|
|
148
|
+
- **Computer Vision**: NanoOWL, SAM, CLIP, DeepStream
|
|
149
|
+
- **Graphics**: Stable Diffusion, ComfyUI, NeRF Studio
|
|
150
|
+
|
|
151
|
+
### Running Containers
|
|
152
|
+
```bash
|
|
153
|
+
jetson-containers run $(autotag l4t-pytorch)
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
## Examples
|
|
157
|
+
|
|
158
|
+
### Complete Jetson Setup Workflow
|
|
159
|
+
```bash
|
|
160
|
+
# 1. Analyze hardware and software configuration
|
|
161
|
+
jetson-cli probe --save system-info.yaml
|
|
162
|
+
|
|
163
|
+
# 2. Create development environment profile
|
|
164
|
+
jetson-cli init --profile-name ml-dev
|
|
165
|
+
|
|
166
|
+
# 3. Configure the system for AI/ML development
|
|
167
|
+
jetson-cli setup
|
|
168
|
+
|
|
169
|
+
# 4. Verify everything is working
|
|
170
|
+
jetson-cli status
|
|
171
|
+
|
|
172
|
+
# 5. Build and run your first container
|
|
173
|
+
jetson-containers build pytorch
|
|
174
|
+
jetson-containers run $(autotag l4t-pytorch)
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
### Selective Component Configuration
|
|
178
|
+
```bash
|
|
179
|
+
# Configure only Docker (skip other components)
|
|
180
|
+
jetson-cli configure docker
|
|
181
|
+
|
|
182
|
+
# Setup additional swap space
|
|
183
|
+
jetson-cli configure swap
|
|
184
|
+
|
|
185
|
+
# Configure external SSD storage
|
|
186
|
+
jetson-cli configure ssd
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
## Architecture
|
|
190
|
+
|
|
191
|
+
- **CLI Interface** (`jetson_cli/`): User-friendly Click-based commands
|
|
192
|
+
- **System Scripts** (`scripts/`): Low-level system configuration scripts
|
|
193
|
+
- **Container Framework** (`jetson-containers/`): Modular container build system
|
|
194
|
+
- **Package Ecosystem**: 100+ pre-built AI/ML container packages
|
|
195
|
+
|
|
196
|
+
## Requirements
|
|
197
|
+
|
|
198
|
+
- NVIDIA Jetson device (Nano, Xavier, Orin series)
|
|
199
|
+
- JetPack 4.6+ or L4T R32.7+
|
|
200
|
+
- Python 3.6+
|
|
201
|
+
- Docker support
|
|
202
|
+
|
|
203
|
+
## Contributing
|
|
204
|
+
|
|
205
|
+
1. Fork the repository
|
|
206
|
+
2. Create your feature branch (`git checkout -b feature/amazing-feature`)
|
|
207
|
+
3. Commit your changes (`git commit -m 'Add amazing feature'`)
|
|
208
|
+
4. Push to the branch (`git push origin feature/amazing-feature`)
|
|
209
|
+
5. Open a Pull Request
|
|
210
|
+
|
|
211
|
+
## License
|
|
212
|
+
|
|
213
|
+
This project is licensed under the MIT License - see the LICENSE file for details.
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
# jetson-cli
|
|
2
|
+
|
|
3
|
+
A comprehensive CLI tool for setting up NVIDIA Jetson devices and building containerized AI/ML applications using the jetson-containers framework.
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
jetson-cli provides a streamlined interface for:
|
|
8
|
+
- Analyzing and configuring Jetson hardware
|
|
9
|
+
- Setting up development environments
|
|
10
|
+
- Building and running containerized AI/ML applications
|
|
11
|
+
- Managing the jetson-containers ecosystem
|
|
12
|
+
|
|
13
|
+
## Installation
|
|
14
|
+
|
|
15
|
+
### From PyPI (Recommended)
|
|
16
|
+
```bash
|
|
17
|
+
pip install jetson-cli
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
### From Source
|
|
21
|
+
```bash
|
|
22
|
+
git clone https://github.com/orinachum/jetson-cli.git
|
|
23
|
+
cd jetson-cli
|
|
24
|
+
pip install -e .
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Quick Start
|
|
28
|
+
|
|
29
|
+
1. **Analyze your system**:
|
|
30
|
+
```bash
|
|
31
|
+
jetson-cli probe
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
2. **Initialize environment**:
|
|
35
|
+
```bash
|
|
36
|
+
jetson-cli init
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
3. **Complete setup**:
|
|
40
|
+
```bash
|
|
41
|
+
jetson-cli setup
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Commands
|
|
45
|
+
|
|
46
|
+
### System Analysis
|
|
47
|
+
```bash
|
|
48
|
+
jetson-cli probe # Show system configuration
|
|
49
|
+
jetson-cli probe --output json # Output as JSON
|
|
50
|
+
jetson-cli probe --save config.yaml # Save to file
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### Environment Setup
|
|
54
|
+
```bash
|
|
55
|
+
jetson-cli init # Create environment profile
|
|
56
|
+
jetson-cli init --profile-name dev # Custom profile name
|
|
57
|
+
jetson-cli init --force # Overwrite existing profile
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### System Configuration
|
|
61
|
+
```bash
|
|
62
|
+
jetson-cli setup # Complete system setup
|
|
63
|
+
jetson-cli setup --skip-docker # Skip Docker configuration
|
|
64
|
+
jetson-cli setup --interactive # Interactive mode
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### Component Management
|
|
68
|
+
```bash
|
|
69
|
+
jetson-cli configure docker # Configure Docker daemon
|
|
70
|
+
jetson-cli configure swap # Setup swap file
|
|
71
|
+
jetson-cli configure ssd # Configure SSD storage
|
|
72
|
+
jetson-cli configure power # Power management settings
|
|
73
|
+
jetson-cli configure gui # GUI environment setup
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### Status Monitoring
|
|
77
|
+
```bash
|
|
78
|
+
jetson-cli status # Show system status
|
|
79
|
+
jetson-cli status --format json # JSON output format
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
## jetson-containers Integration
|
|
83
|
+
|
|
84
|
+
This tool integrates with the [jetson-containers](https://github.com/dusty-nv/jetson-containers) framework to provide containerized AI/ML packages:
|
|
85
|
+
|
|
86
|
+
### Container Building
|
|
87
|
+
```bash
|
|
88
|
+
# After jetson-cli setup, use jetson-containers directly
|
|
89
|
+
jetson-containers build pytorch # Build PyTorch container
|
|
90
|
+
jetson-containers build pytorch jupyterlab # Chain multiple packages
|
|
91
|
+
jetson-containers build --name=my_app pytorch # Custom container name
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
### Available Packages
|
|
95
|
+
- **ML/AI**: PyTorch, TensorFlow, ONNX Runtime, transformers
|
|
96
|
+
- **LLM**: SGLang, vLLM, MLC, text-generation-webui, ollama
|
|
97
|
+
- **VLM**: LLaVA, VILA, NanoLLM (vision-language models)
|
|
98
|
+
- **Robotics**: ROS, Genesis, OpenVLA, LeRobot
|
|
99
|
+
- **Computer Vision**: NanoOWL, SAM, CLIP, DeepStream
|
|
100
|
+
- **Graphics**: Stable Diffusion, ComfyUI, NeRF Studio
|
|
101
|
+
|
|
102
|
+
### Running Containers
|
|
103
|
+
```bash
|
|
104
|
+
jetson-containers run $(autotag l4t-pytorch)
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
## Examples
|
|
108
|
+
|
|
109
|
+
### Complete Jetson Setup Workflow
|
|
110
|
+
```bash
|
|
111
|
+
# 1. Analyze hardware and software configuration
|
|
112
|
+
jetson-cli probe --save system-info.yaml
|
|
113
|
+
|
|
114
|
+
# 2. Create development environment profile
|
|
115
|
+
jetson-cli init --profile-name ml-dev
|
|
116
|
+
|
|
117
|
+
# 3. Configure the system for AI/ML development
|
|
118
|
+
jetson-cli setup
|
|
119
|
+
|
|
120
|
+
# 4. Verify everything is working
|
|
121
|
+
jetson-cli status
|
|
122
|
+
|
|
123
|
+
# 5. Build and run your first container
|
|
124
|
+
jetson-containers build pytorch
|
|
125
|
+
jetson-containers run $(autotag l4t-pytorch)
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
### Selective Component Configuration
|
|
129
|
+
```bash
|
|
130
|
+
# Configure only Docker (skip other components)
|
|
131
|
+
jetson-cli configure docker
|
|
132
|
+
|
|
133
|
+
# Setup additional swap space
|
|
134
|
+
jetson-cli configure swap
|
|
135
|
+
|
|
136
|
+
# Configure external SSD storage
|
|
137
|
+
jetson-cli configure ssd
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
## Architecture
|
|
141
|
+
|
|
142
|
+
- **CLI Interface** (`jetson_cli/`): User-friendly Click-based commands
|
|
143
|
+
- **System Scripts** (`scripts/`): Low-level system configuration scripts
|
|
144
|
+
- **Container Framework** (`jetson-containers/`): Modular container build system
|
|
145
|
+
- **Package Ecosystem**: 100+ pre-built AI/ML container packages
|
|
146
|
+
|
|
147
|
+
## Requirements
|
|
148
|
+
|
|
149
|
+
- NVIDIA Jetson device (Nano, Xavier, Orin series)
|
|
150
|
+
- JetPack 4.6+ or L4T R32.7+
|
|
151
|
+
- Python 3.6+
|
|
152
|
+
- Docker support
|
|
153
|
+
|
|
154
|
+
## Contributing
|
|
155
|
+
|
|
156
|
+
1. Fork the repository
|
|
157
|
+
2. Create your feature branch (`git checkout -b feature/amazing-feature`)
|
|
158
|
+
3. Commit your changes (`git commit -m 'Add amazing feature'`)
|
|
159
|
+
4. Push to the branch (`git push origin feature/amazing-feature`)
|
|
160
|
+
5. Open a Pull Request
|
|
161
|
+
|
|
162
|
+
## License
|
|
163
|
+
|
|
164
|
+
This project is licensed under the MIT License - see the LICENSE file for details.
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
# Request: Jetson CLI Package Development
|
|
2
|
+
|
|
3
|
+
**Date**: 2025-07-26
|
|
4
|
+
**Status**: In Progress
|
|
5
|
+
**Priority**: High
|
|
6
|
+
|
|
7
|
+
## Overview
|
|
8
|
+
|
|
9
|
+
Create a `jetson-cli` pip package that provides a command-line interface for NVIDIA Jetson setup and configuration, with automated GitHub pipelines for deployment and release management.
|
|
10
|
+
|
|
11
|
+
## Requirements
|
|
12
|
+
|
|
13
|
+
### Core CLI Commands
|
|
14
|
+
|
|
15
|
+
1. **`jetson-cli probe`** - System probing and analysis
|
|
16
|
+
- Maps to: `scripts/probe-system.sh`
|
|
17
|
+
- Output formats: table, JSON, YAML
|
|
18
|
+
- Save results to file option
|
|
19
|
+
|
|
20
|
+
2. **`jetson-cli init`** - Environment profile creation
|
|
21
|
+
- Maps to: `scripts/create-env-profile.sh`
|
|
22
|
+
- Custom profile naming
|
|
23
|
+
- Force recreate option
|
|
24
|
+
|
|
25
|
+
3. **`jetson-cli setup`** - Complete system setup
|
|
26
|
+
- Maps to: `scripts/setup-system.sh`
|
|
27
|
+
- Interactive/non-interactive modes
|
|
28
|
+
- Skip individual components (docker, swap, ssd)
|
|
29
|
+
|
|
30
|
+
4. **`jetson-cli configure <component>`** - Individual component configuration
|
|
31
|
+
- Components: docker, swap, ssd, power, gui
|
|
32
|
+
- Maps to respective `configure-*.sh` scripts
|
|
33
|
+
|
|
34
|
+
5. **`jetson-cli status`** - System status overview
|
|
35
|
+
- Show current configuration state
|
|
36
|
+
- Multiple output formats
|
|
37
|
+
|
|
38
|
+
### Package Structure
|
|
39
|
+
|
|
40
|
+
```
|
|
41
|
+
jetson-cli/
|
|
42
|
+
├── setup.py # Package configuration
|
|
43
|
+
├── jetson_cli/
|
|
44
|
+
│ ├── __init__.py # Version and package info
|
|
45
|
+
│ ├── cli.py # Main CLI interface using Click
|
|
46
|
+
│ ├── utils.py # Utility functions
|
|
47
|
+
│ ├── scripts/ # Embedded scripts (if needed)
|
|
48
|
+
│ └── config/ # Configuration files
|
|
49
|
+
├── tests/ # Unit tests
|
|
50
|
+
├── docs/ # Documentation
|
|
51
|
+
└── .github/workflows/ # CI/CD pipelines
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### GitHub Actions Pipelines
|
|
55
|
+
|
|
56
|
+
#### 1. CI Pipeline (`.github/workflows/ci.yml`)
|
|
57
|
+
- **Triggers**: Push to main/develop, Pull requests
|
|
58
|
+
- **Jobs**:
|
|
59
|
+
- Test across Python 3.8-3.12
|
|
60
|
+
- Code linting (flake8, black, isort)
|
|
61
|
+
- Shell script linting (shellcheck)
|
|
62
|
+
- Security scanning (bandit)
|
|
63
|
+
- CLI functionality testing
|
|
64
|
+
|
|
65
|
+
#### 2. Release Pipeline (`.github/workflows/release.yml`)
|
|
66
|
+
- **Triggers**: Push to main branch, Manual workflow dispatch
|
|
67
|
+
- **Features**:
|
|
68
|
+
- Automated version bumping (minor on merge to main)
|
|
69
|
+
- Smart version detection from commit messages
|
|
70
|
+
- PyPI package publishing
|
|
71
|
+
- GitHub release creation
|
|
72
|
+
- Release notes generation
|
|
73
|
+
|
|
74
|
+
#### 3. Installation Testing (`.github/workflows/test-install.yml`)
|
|
75
|
+
- **Triggers**: New releases
|
|
76
|
+
- **Tests**:
|
|
77
|
+
- PyPI installation across Python versions
|
|
78
|
+
- Docker-based installation testing
|
|
79
|
+
- CLI functionality verification
|
|
80
|
+
|
|
81
|
+
### Version Management
|
|
82
|
+
|
|
83
|
+
- **Automatic Minor Bump**: On merge to main branch
|
|
84
|
+
- **Manual Version Control**: Workflow dispatch with patch/minor/major options
|
|
85
|
+
- **Semantic Versioning**: Based on commit message analysis
|
|
86
|
+
- **Release Assets**: Wheel files, release notes, changelog
|
|
87
|
+
|
|
88
|
+
### Dependencies
|
|
89
|
+
|
|
90
|
+
- **Runtime**: click, pyyaml, tabulate, packaging, psutil, rich
|
|
91
|
+
- **Development**: pytest, flake8, black, isort, bump2version
|
|
92
|
+
- **CI/CD**: GitHub Actions, PyPI publishing, automated testing
|
|
93
|
+
|
|
94
|
+
## Implementation Status
|
|
95
|
+
|
|
96
|
+
### ✅ Completed
|
|
97
|
+
- [x] Package structure (`setup.py`, `__init__.py`)
|
|
98
|
+
- [x] CLI interface with Click framework
|
|
99
|
+
- [x] Core command implementations (probe, init, setup, configure, status)
|
|
100
|
+
- [x] Utility functions for script execution and platform detection
|
|
101
|
+
- [x] GitHub Actions CI pipeline
|
|
102
|
+
- [x] Automated release pipeline with version management
|
|
103
|
+
- [x] Installation testing workflow
|
|
104
|
+
|
|
105
|
+
### 🔄 In Progress
|
|
106
|
+
- [ ] Integration with existing shell scripts
|
|
107
|
+
- [ ] Comprehensive testing suite
|
|
108
|
+
- [ ] Documentation and usage examples
|
|
109
|
+
|
|
110
|
+
### ⏳ Pending
|
|
111
|
+
- [ ] PyPI account setup and API token configuration
|
|
112
|
+
- [ ] Repository secrets configuration (PYPI_API_TOKEN)
|
|
113
|
+
- [ ] Beta testing and feedback integration
|
|
114
|
+
- [ ] Production deployment
|
|
115
|
+
|
|
116
|
+
## Technical Considerations
|
|
117
|
+
|
|
118
|
+
### Platform Detection
|
|
119
|
+
- Jetson platform detection via device tree and hardware indicators
|
|
120
|
+
- Graceful fallback for non-Jetson environments
|
|
121
|
+
- Environment variable override for testing
|
|
122
|
+
|
|
123
|
+
### Script Integration
|
|
124
|
+
- Scripts embedded in package or referenced from repository
|
|
125
|
+
- Proper error handling and user feedback
|
|
126
|
+
- Progress indicators for long-running operations
|
|
127
|
+
|
|
128
|
+
### User Experience
|
|
129
|
+
- Rich CLI output with colors and progress bars
|
|
130
|
+
- Comprehensive help text and examples
|
|
131
|
+
- Consistent command patterns and options
|
|
132
|
+
|
|
133
|
+
## Success Criteria
|
|
134
|
+
|
|
135
|
+
1. **Functional**: All CLI commands work correctly on Jetson platforms
|
|
136
|
+
2. **Installable**: `pip install jetson-cli` works globally
|
|
137
|
+
3. **Automated**: Releases happen automatically on main branch merges
|
|
138
|
+
4. **Tested**: Comprehensive test coverage and CI validation
|
|
139
|
+
5. **Documented**: Clear usage instructions and API documentation
|
|
140
|
+
|
|
141
|
+
## Next Steps
|
|
142
|
+
|
|
143
|
+
1. Configure PyPI account and repository secrets
|
|
144
|
+
2. Test the complete CI/CD pipeline
|
|
145
|
+
3. Create comprehensive test suite
|
|
146
|
+
4. Beta release for community feedback
|
|
147
|
+
5. Documentation and tutorial creation
|
|
148
|
+
6. Production release announcement
|