How to set up a new jetson for working within the LIFE camera system.
Finishing Factory Install of Jetson TK1
-
DO NOT CONNECT TO ETHERNET YET!!
- Connect an HDMI monitor, and a usb-hub with keyboard and mouse. (follow the cardboard printed guide in packaging).
- Connect power supply to socket, then (once everything else is connected), connect power to jetson (it auto-boots).
- login with ubuntu/ubuntu
- cd ${HOME}/NVIDIA_INSTALLER
- sudo ./installer.sh
- When done, sudo reboot Now it's safe to proceed as with a normal Ubuntu installation.
Ubuntu Setup for Jetson TK1
-
Usability basics:
- hold Xorg from being updated and broken (nvidia-specific thing) sudo apt-mark hold xserver-xorg-core
- fix keyboard and location (use UI)
- change timezone/location to sundsvall
- disable screen lock, dimming (for convenient headed mode)
- enable USB 3.0 sudo gedit /boot/extlinux/extlinux.conf change "usb_port_owner_info=0" to "usb_port_owner_info=2" add "usbcore.usbfs_memory_mb=1000" to the same file/line
- disable usb autosuspend sudo gedit /etc/rc.local add echo -1 > /sys/module/usbcore/parameters/autosuspend before "exit 0"
-
Security basics:
- Change password (check with Martin/Elijs for psw) sudo passwd
- Change Hostname ('tegra-ubuntuN' where N is the sequential number in jetson stack) sudo gedit /etc/hostname sudo gedit /etc/hosts
-
Log into the router controlling jetsons, connect the new jetson in the LAN, and add a static IP address for the jetson. (verify on the new jetson with ifconfig - its ok to have dhcp on the jetson interface).
- Setup port forwarding in the router for incoming ssh connections
-
Package config
- Config UI updater to not notify/upgrade to new distro versions, to not do any auto-updating
- install basic software updates sudo apt-get update && sudo apt-get upgrade
-
install required packages sudo apt-add repository universe sudo apt-get update sudo apt-get install bash-completion command-not-found sudo apt-file update &>/dev/null sudo update-command-not-found &>/dev/null sudo apt-get install build-essential make cmake cmake-curses-gui g++ sudo apt-get install nano sudo apt-get install subversion ssh keygen ssh-copy-id ver.miun.se sudo apt-get install gparted sudo install libglibm-2.4-dev libgtkmm-3.0-dev
- reboot sudo reboot
-
add camera port [PORTNUMBER] to the ssh-ports-tegra-list (e.g. 10035), make sure it's one increment higher than existing ports (and same as in router settings).
-
from a local device with 3DLab reporsitory installed, run preliminary build scripts: cd .../3DLab/code/scripts
./send-to jetson-scripts/build-asio-lib [PORTNUMBER] ./send-to jetson-scripts/build-base64-lib [PORTNUMBER] -
Install and test-make the camera-specific libraries (basler, fotonic, kinect, etc.) according to the specific jetson's purpose. (Check with Elijs for this in detail).
-
Setup virtual disk for recording videos
- Make sure that there's at least 5 or 6 GB free in the jetson filesystem df -h
- Run setup script from remote device ./send-to jetson-scripts/create-virtual-media-filesystem [PORTNUMBER]
- Verify in headed or ssh mode that you can enter and see stuff in ~/StreamData
- Check that StreamData is mounted and is approx 5GB in size dh -h
- Develop and/or build applets to run on cameras (Ping, CameraSettings, GrabImage). Send the MessageHost and MessageListener apps to the jetson (use build scripts in the jetson-scripts directory).
Running applets on the camera
- Verify that the applets you build are running correctly when launched from the commandline on jetson (e.g. through ssh).
-
Launch the message listener on the new jetson ./send-to jetson-scripts/nohup-jetson-message-listener [PORTNUMBER]
- If something breaks, kill the message listener process ./send-to jetson-scripts/kill-jetson-message-listener [PORTNUMBER]