Skip to content

Commit cd85fcf

Browse files
committed
First cut at adding libpruio
1 parent ce68695 commit cd85fcf

File tree

2 files changed

+49
-8
lines changed

2 files changed

+49
-8
lines changed

Diff for: fabfile.py

+40-8
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,16 @@ def deploy():
2929
disable_bonescript_and_release_http_port()
3030
update_debian_package_lists()
3131
remove_unneeded_debian_packages()
32-
install_debian_packages()
32+
for package in DEBIAN_PACKAGES_TO_INSTALL:
33+
install_debian_package(package)
3334
install_python_modules()
3435
install_rascal_software()
3536
install_config_files()
3637
allow_uwsgi_to_control_supervisor()
3738
allow_uwsgi_to_access_usb_port()
39+
install_libpruio()
3840
install_oh_my_zsh()
41+
autoremove_debian_package_remnants()
3942
print(green('Rascal 2 deployment complete. Rebooting . . .'))
4043
reboot()
4144

@@ -74,14 +77,14 @@ def package_installed(package):
7477
result = run(cmd)
7578
return result.succeeded
7679

77-
def install_debian_packages():
78-
for package in DEBIAN_PACKAGES_TO_INSTALL:
79-
if not package_installed(package):
80-
print(green('\nInstalling package: {0}'.format(package)))
81-
run('apt-get install -y ' + package, pty=False)
82-
else:
83-
print(green('Package ' + package + ' already installed'))
80+
def install_debian_package(package):
81+
if not package_installed(package):
82+
print(green('\nInstalling package: {0}'.format(package)))
83+
run('apt-get install -y ' + package, pty=False)
84+
else:
85+
print(green('Package ' + package + ' already installed'))
8486

87+
def autoremove_debian_package_remnants():
8588
print(green('\nRemoving unneeded package remnants'))
8689
run('apt-get autoremove -y', pty=False)
8790

@@ -138,6 +141,35 @@ def allow_uwsgi_to_control_supervisor():
138141
def allow_uwsgi_to_access_usb_port():
139142
run('usermod -a -G dialout www-data')
140143

144+
def install_libpruio():
145+
install_debian_package('am335x-pru-package')
146+
147+
run('wget http://www.freebasic-portal.de/dlfiles/589/BBB_fbc-1.00.tar.bz2')
148+
run('tar xjf BBB_fbc-1.00.tar.bz2')
149+
run('mv BBB_fbc-1.00/usr/bin/fbc /usr/bin/')
150+
run('mv BBB_fbc-1.00/usr/lib/freebasic /usr/lib/')
151+
run('rm -rf BBB_fbc-1.00')
152+
153+
run('http://www.freebasic-portal.de/dlfiles/539/FB_prussdrv-0.0.tar.bz2')
154+
run('tar xjf FB_prussdrv-0.0.tar.bz2')
155+
run('mkdir /usr/include/freebasic/BBB')
156+
run('mv FB_prussdrv-0.0/include /usr/include/freebasic/BBB/')
157+
run('rm /usr/bin/pasm')
158+
run('mv FB_prussdrv-0.0/bin/pasm /usr/bin/pasm')
159+
run('rm -rf FB_prussdrv-0.0')
160+
161+
run('wget https://github.com/rascalmicro/libpruio/archive/master.zip')
162+
run('tar xjf master.zip')
163+
run('mv master/src/c_wrapper/libpruio.so /usr/lib') # directory name is probably wrong
164+
run('ldconfig')
165+
run('mv master/src/c_wrapper/pruio*.h* /usr/include')
166+
run('mv master/src/config/libpruio-00A0.dtbo /lib/firmware') # note corrected filename 0A00 -> 00A0
167+
run('mv master/src/pruio/pruio*.bi /usr/include/freebasic/BBB')
168+
run('mv master/src/pruio/pruio.hp /usr/local/include/freebasic/BBB')
169+
run('echo uio_pruss >> /etc/modules') # load uio_pruss module at boot
170+
put('libpruio.service', '/etc/systemd/system/libpruio.service')
171+
run('systemctl enable libpruio.service')
172+
141173
def install_oh_my_zsh():
142174
run('wget --no-check-certificate http://install.ohmyz.sh -O - | sh')
143175

Diff for: libpruio.service

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
[Unit]
2+
Description=Programmable Realtime Unit IO library
3+
4+
[Service]
5+
Type=oneshot
6+
ExecStart=/bin/echo libpruio > /sys/devices/bone_capemgr.*/slots
7+
8+
[Install]
9+
WantedBy=multi-user.target

0 commit comments

Comments
 (0)