Dedicated SBC Camera Monitor
A guide for setting up a dedicated SBC (here beaglebone) that will monitor the video feed from a camera that you choose. I'll also include some steps on getting a custom kernel for I2C. The WM will be DWM, terminal ST, and browser will be Surf. It will be a minimal installation with no DE, no extra programs. You will save RAM here, over an installation of LXDE, the default for the Beaglebone Black.
I will also include some settings that turn this into a 'kiosk mode' video monitor, so it cannot be changed.
Setup
Requirements:
- >=4GB SD Card
- SBC (although this works on a desktop)
- Internet connection
- Computer monitor
- HDMI cable for BBB
Install beaglebone black using elinux.com's BeagleBoardDebian page.
Use the direct image (under Demo, below NetInstall). Not the netinstall, which is slower, unless you know what you are doing.
After you boot from SD card, migrate to devuan using this guide:
Next complete the following commands
su root
apt-get install xorg libx11-dev libxft-dev libxinerama-dev gcc make htop sudo tcpdump
Complete these for Surf
apt-get install libwebkitgtk-dev libgtk2.0-dev linux-headers-$(uname -r)
Then download our three stars of the night.
git clone http://git.suckless.org/dwm && git clone git://git.suckless.org/st && git clone git://git.suckless.org/surf
Edit the config for dwm
nano dwm/config.def.h
- Disable the bar
- Remove all workspaces except for 1 (*tags)
- (leave #1 only)
- Set Mod4Mask as modkey
- Set MODKEY|Shiftmask to 0 and XK_c to XK_F12 for killclient (personal preference)
- Later disable spawm of dmenucmd and termcmd, but for now leave enabled.
cd dwm make make install cd ../st nano config.def.h
- Set termname[] to xterm (resolves some issues with programs that don't understand default termname).
make make install cd ../surf nano config.def.h
- Set runinfullscreen to TRUE
make make install
Intermediate Cleanup Time
apt-get remove nfs-common rpcbind wpasupplicant avahi-daemon ofono apache2
Of course, leave wpasupplicant if you use wifi. Net installer may want to install acpid.
Should be about 40MB RAM, and <5% CPU. Remove Exim4 if you want as well.
Clock
# apt-get install ntpdate
Set cron to run ntpdate periodically
*/5 * * * * ntpdate pool.ntp.org
This is leaner than running ntpd 24/7
I2C Configuration
Here are some notes, from my own setup of I2C on the BBB. It can be confusing if you are new to the BBB. This guide is helpful for configuring the peripherals or GPIO of the BBB.
https://github.com/beagleboard/bb.org-overlays
Follow this link. Ignore the part about pre built kernels if you used the RCN based installer or image from elinux.org's BeagleBoardDebian. You already have cape manager support.
If you don't have DTC where is asks for it in the 2nd step for dtc -version, ignore that step. The ./dtc_overlay.sh script will install the latest compatible device tree compiler.
Next
https://github.com/cdsteinkuehler/beaglebone-universal-io
And use this to configure the pins.
There are also preset modes with the pins configured in various states, but I found it more satisfying to customize them to my needs.