- Run simulation at low process priority.
- Added ``Bug Report`` button to ``Admin`` -> ``General``.
- Only render 3D view as needed to save CPU.
+ - Prevent lockup due to browser causing out of memory condition.
## v0.4.1
- Fix toolpath view axes bug.
include src/avr/bbctrl-avr-firmware.hex
include scripts/avr109-flash.py
include scripts/buildbotics.gc
+include scripts/xinitrc
recursive-include src/py/camotics *
global-exclude .gitignore
--- /dev/null
+#!/usr/bin/env python3
+
+import os
+import sys
+import resource
+import subprocess
+
+# Limit memory usage
+limit = 1.5e9
+resource.setrlimit(resource.RLIMIT_DATA, (limit, limit))
+
+# Clear browser errors
+prefs = '/home/pi/.config/chromium/Default/Preferences'
+subprocess.run(
+ ('sed', '-i', 's/"exited_cleanly":false/"exited_cleanly":true/', prefs))
+subprocess.run(
+ ('sed', '-i', 's/"exit_type":"Crashed"/"exit_type":"Normal"/', prefs))
+
+# Start browser
+cmd = '/usr/lib/chromium-browser/chromium-browser'
+args = (
+ '--no-first-run',
+ '--disable-infobars',
+ '--noerrdialogs',
+ '--single-process',
+ 'http://localhost/'
+)
+os.execvp(cmd, args)
REBOOT=true
fi
+# Increase swap
+grep 'CONF_SWAPSIZE=1000' /etc/dphys-swapfile >/dev/null
+if [ $? -ne 0 ]; then
+ sed -i 's/^CONF_SWAPSIZE=.*$/CONF_SWAPSIZE=1000/' /etc/dphys-swapfile
+ REBOOT=true
+fi
+
+# Install xinitrc
+cp scripts/xinitrc ~pi/.xinitrc
+chmod +x ~pi/.xinitrc
+chown pi:pi ~pi/.xinitrc
+
# Install default GCode
if [ ! -d /var/lib/bbctrl/upload -o -z "$(ls -A /var/lib/bbctrl/upload)" ]; then
mkdir -p /var/lib/bbctrl/upload/
xset s noblank
while true; do
- chromium-browser http://localhost/ \
- --user-data-dir=/tmp/browse --no-first-run
+ tvservice -s 2>&1 | grep "state 0x40001" >/dev/null
+ if [ $? -ne 0 ]; then
+ /usr/local/bin/browser
+ fi
+ sleep 1
done
'scripts/sethostname',
'scripts/reset-video',
'scripts/config-wifi',
+ 'scripts/browser',
],
install_requires = 'tornado sockjs-tornado pyserial pyudev smbus2'.split(),
zip_safe = False,