Skip to main content

NVIDIA Jetson

Run PC2 on an NVIDIA Jetson for GPU-accelerated private AI. Your Jetson becomes a sovereign AI node -- running local language models with hardware acceleration, entirely on your hardware.

Supported Devices

ModelRAMGPUAI PerformancePrice
Jetson Nano (4GB)4GB128 CUDA coresEntry-level~$150
Jetson Orin Nano8GB1024 CUDA coresMid-range (recommended)~$250
Jetson Orin NX16GB2048 CUDA coresHigh-end~$900
Jetson AGX Orin64GB2048 CUDA coresEnterprise~$2000

Use the latest JetPack version available for your device. The install script auto-detects your JetPack version.

Step 1: Note Your Network Info

hostname -I

Step 2: Install PC2

One command. This installs everything -- Node.js, WireGuard, AmneziaWG stealth transport, sing-box (VLESS Reality), dependencies, and starts the server:

cd ~ && git clone https://github.com/Elacity/pc2.net.git && cd pc2.net && sudo bash scripts/install-arm.sh

Already have PC2 cloned? Just update and reinstall:

cd ~/pc2.net && git pull origin main && sudo bash scripts/install-arm.sh

Once complete, open http://your-jetson-ip:4200 in a browser on any device on your network.

Your Jetson automatically registers a username.ela.city domain through the Boson network. Anyone can reach your PC2 at https://username.ela.city -- even behind your home router.

Managing PC2

pm2 status          # Check if running
pm2 logs pc2 # View logs
pm2 restart pc2 # Restart
pm2 stop pc2 # Stop

Auto-Start on Boot

pm2 startup         # Follow the printed command
pm2 save # Save current process list

Update

cd ~/pc2.net && git pull origin main && sudo bash scripts/install-arm.sh

Performance Tips

Use NVMe SSD

SD cards are slow. Install an M.2 NVMe SSD and flash JetPack directly to it for better performance.

Max Performance Mode

The install script automatically sets your Jetson to the highest power mode. To verify or change manually:

sudo nvpmodel -q        # Check current mode
sudo nvpmodel -m 0 # Maximum performance
sudo jetson_clocks # Lock to max clock speeds

Increase Swap (for larger AI models)

sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

Monitor GPU

sudo pip3 install jetson-stats
sudo jtop

Troubleshooting

Ollama not using GPU? Run nvcc --version. If not found: sudo apt install -y nvidia-jetpack then sudo systemctl restart ollama.

Out of memory? Use a smaller model, increase swap, or disable bluetooth: sudo systemctl disable bluetooth.

Can't access from browser? Check pm2 status, try curl http://localhost:4200/health, open firewall: sudo ufw allow 4200.

Advanced: Free Up RAM (Remove Desktop)

Irreversible

This removes the graphical desktop environment. After this, interact with your Jetson only via SSH. Make sure SSH access is working first.

sudo systemctl set-default multi-user.target
sudo apt remove --purge -y ubuntu-desktop gnome-shell gdm3
sudo apt autoremove -y
sudo reboot

Want the desktop back later:

sudo apt install -y ubuntu-desktop gdm3
sudo systemctl set-default graphical.target
sudo reboot