How Can I use jetbot on nano emmc module ,not on the nano sd module

Because there is no nano sd module, so I want to use emmc module instead sd module, could you please tell me how can I use it, or some steps to install jupyterlab and jetbot on other modules is preffered

Please check Using Docker Container - JetBot
Or report a bug by creating an issue

Something to keep in mind is that the software flash for any module is separate from installing user applications. User applications (like jupyterlab) will have the same instructions for install and use regardless of being an SD card model or eMMC model (i.e., only flash differs, so if the system is already up and running, you can use the instructions for either model to install…just skip the flash step).

the question is I want to use jetbot on emmc nano module ,but there is no solution ,I know what you said and I installed jupyterlab already, but I can’t install jetbot on emmc module

I’ve never worked with jetbot, so I’m not sure what its instructions are. How is jetbot installed on the SD card version?

Scratch installation is here. (for JetPack 4.4)

It requires tensorflow and pytorch. So I think it cannot install on 16GB emmc. (Because no space left.)

With usb storage and docker, jetbot may work.
But I don’t have jetson nano emmc so can’t be sure.

If this is an eMMC model, then I assume the carrier board is from a third party. Is that correct? If so, then the third party carrier board manufacturer would provide the SD card slot, and they would have the flash software and instructions. This would include how to boot from their carrier board using the SD card. The eMMC model on a dev kit carrier board does not support SD card booting (there might be some unofficial unsupported method, but I am not aware of it). It is trivial though on any model to use an SD card partition on the “/usr/local” mount point, which in turn is where most of that “bulky” software resides, and this would solve the problem without actually booting from an SD card solution (if you know those packages reside somewhere else, then you might mention where since it would offer a clue as to whether there is a simple solution without booting from an external device).

yeah,there no space on 16GB emmc

When you have as much installed as you can without the system not booting, what do you see from this:
sudo du -h -s /usr/local
…and:
df -H -T /

I am thinking that before installing optional content (the content you need, but isn’t actually a boot requirement) is by far located in “/usr/local”. I cannot help with Jetbot since I know so little about it, but the software space issues are almost always related to content in “/usr/local”, and this content can be mounted on a separate device much more easily than booting from another device can be accomplished.

I tried with a SD card with limited capacity + custom JetBot code.
I uninstalled several apt packages to free up space to install JetBot.

Before installation.
jetbot-jp461-before

After installation.
jetbot-jp461-after

  1. Install JetPack 4.6.1 (username: jetbot, no swap)
  2. Setup wifi. (I don’t check this. but maybe you need wifi)
  3. run a.sh (First, disable the GUI and reboot. Then run a.sh again.)

a.sh

#!/bin/bash

set -e

########################################
# Login password
########################################
password='jetbot'

########################################
# Record the time this script starts
########################################
date

########################################
# Get the full dir name of this script
########################################
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"

########################################
# Keep updating the existing sudo time stamp
########################################
sudo -v
while true; do sudo -n true; sleep 120; kill -0 "$$" || exit; done 2>/dev/null &


########################################
# No GUI
########################################
CHECK_GUI=`readlink -f /etc/systemd/system/default.target`
if [ "$CHECK_GUI" = "/lib/systemd/system/graphical.target" ]; then
  # GUI enabled -> disabled
  sudo systemctl set-default multi-user.target
  sudo reboot
elif [ "$CHECK_GUI" = "/lib/systemd/system/multi-user.target" ]; then
  # GUI disabled.
  echo "pass"
fi


########################################
# Remove apt packages
########################################
apt list --installed
sudo apt autoremove -y
sudo apt-get remove -y *xorg
sudo apt-get remove -y lxde* # 133MB
sudo apt-get remove -y unity*
sudo apt-get remove -y python2*
sudo apt-get remove -y lxsession*
sudo apt-get remove -y xserver-xorg*
sudo apt-get remove -y nautilus*
sudo apt-get remove -y gnome-themes*
sudo apt-get remove -y lightdm*
sudo apt-get remove -y libvisionworks*
sudo apt autoremove -y # 38.3MB

sudo rm -rf /etc/apt/sources.list.d/visionworks*

########################################
# Enable i2c permissions
########################################
echo -e "\e[100m Enable i2c permissions \e[0m"
sudo usermod -aG i2c $USER

########################################
# Install apt packages
########################################
echo -e "\e[104m Install apt packages \e[0m"
sudo apt-get update
sudo apt-get install -y \
  python3-markupsafe \
  python3-pip \
  libffi-dev

pip3 install -U --no-cache-dir pip
pip3 install -U --no-cache-dir testresources
pip3 install -U --no-cache-dir launchpadlib
pip3 install -U --no-cache-dir setuptools
pip3 install -U --no-cache-dir wheel
pip3 install -U --no-cache-dir packaging
pip3 install -U --no-cache-dir protobuf==3.19.4
pip3 install -U --no-cache-dir numpy==1.19.4
pip3 install -U --no-cache-dir jupyterlab
pip3 install -U --no-cache-dir gdown

PATH="$HOME/.local/bin:$PATH"

df
du -h -d1 | sort -hr


########################################
# Jupyter password
########################################
jupyter notebook --generate-config
python3 -c "from notebook.auth.security import set_password; set_password('jetbot', '$HOME/.jupyter/jupyter_notebook_config.json')"


########################################
# JupyterLab
########################################
python3 -m ipykernel install --name python3 --user


########################################
# nodejs
########################################
# https://github.com/nodesource/distributions/blob/master/README.md
sudo apt-get install -y \
  curl
curl -fsSL https://deb.nodesource.com/setup_17.x | sudo -E bash -
sudo apt-get update
sudo apt-get install -y \
  nodejs


########################################
# nodejs legacy provider
########################################
# https://stackoverflow.com/questions/69692842/error-message-error0308010cdigital-envelope-routinesunsupported
# Error: error:0308010C:digital envelope routines::unsupported
export NODE_OPTIONS=--openssl-legacy-provider


########################################
# jupyter_clickable_image_widget
########################################
jupyter labextension install @jupyter-widgets/jupyterlab-manager

mkdir -p ~/github
cd ~/github
git clone -b jupyterlab-3 https://github.com/naisy/jupyter_clickable_image_widget
cd jupyter_clickable_image_widget
pip3 --no-cache-dir install -e .

jupyter labextension install js
jupyter-lab build

# cleaning
npm cache clean --force
jlpm cache clean

# https://stackoverflow.com/questions/53918811/project-too-large
# ~/github/jupyter_clickable_image_widget/ + ~/.cache/yarn/ = 1GB


########################################
# Disable Jupyter autosave
########################################
mkdir -p ~/.jupyter/lab/user-settings/\@jupyterlab/docmanager-extension
echo '{
    // Document Manager
    // @jupyterlab/docmanager-extension:plugin
    // Document Manager settings.
    // ***************************************

    // Autosave Documents
    // Whether to autosave documents
    "autosave": false
}'\
>  ~/.jupyter/lab/user-settings/\@jupyterlab/docmanager-extension/plugin.jupyterlab-settings


########################################
# JetBot
########################################
cd ~/github
git clone -b fabo_2022 --depth 1 https://github.com/FaBoPlatform/jetbot
cd ~/github/jetbot
rm -rf .git/ docs/
pip3 install --no-cache-dir -e .

mkdir -p ~/data/Notebooks
cp -r ~/github/jetbot/notebooks ~/data/Notebooks/jetbot

sudo apt-get install -y \
  libcairo2-dev \
  libgirepository1.0-dev
pip3 install -U --no-cache-dir Jetson.GPIO
pip3 install -U --no-cache-dir PyGObject


########################################
# pytorch 1.10.0
########################################
cd
wget https://nvidia.box.com/shared/static/fjtbno0vpo676a25cgvuqc1wty0fkkg6.whl -O torch-1.10.0-cp36-cp36m-linux_aarch64.whl
pip3 install --no-cache-dir torch-1.10.0-cp36-cp36m-linux_aarch64.whl
rm torch-1.10.0-cp36-cp36m-linux_aarch64.whl


########################################
# torchvision v0.11.1
########################################
cd
gdown https://drive.google.com/uc?id=1iMBGTJpmT-4EpG1ZIrMo5-d4PLVyGVYN -O torchvision-0.11.1-cp36-cp36m-linux_aarch64.whl
pip3 install --no-cache-dir torchvision-0.11.1-cp36-cp36m-linux_aarch64.whl
rm torchvision-0.11.1-cp36-cp36m-linux_aarch64.whl


########################################
# torch2trt tensorrt8
########################################
sudo apt-get install -y \
  libopenblas-base \
  libopenmpi-dev 

export OPENBLAS_CORETYPE=ARMV8

mkdir -p ~/github
cd ~/github
git clone -b jp4.6_tensorrt8 https://github.com/chitoku/torch2trt
cd torch2trt
python3 setup.py install --plugins --user


########################################
# models
########################################
python3 -c "import torchvision; \
  model = torchvision.models.resnet18(pretrained=True)"


########################################
# Jupyter launch
########################################
export NODE_OPTIONS=--openssl-legacy-provider
export LD_PRELOAD=/usr/lib/aarch64-linux-gnu/libgomp.so.1
export OPENBLAS_CORETYPE=ARMV8
jupyter-lab --ip=0.0.0.0 --no-browser --ServerApp.root_dir=/ --LabApp.default_url=/lab?file-browser-path=$HOME/data/Notebooks

Customized part:
・This is the Japanese version.
・Modified to use Jetson.GPIO for i2c bus number detection, so it can work with Jetson Xaiver NX.
・Object Following is rewritten to TF2OD. But you cannot run it. (Important libraries have not been installed. Because no space left.)
・JupyterLab is 3.x. (To check the build, usability)

You can run:
・collision_avoidance: 01, 02, 03, 04
・road_following: 01, 02, 03, 04

When you have finished running the notebook, please shut down Jupyter Kernel to free up memory before proceeding to the next notebook.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.