Using DHCP to pass server URL
Reported by Kyle Gordon | February 8th, 2010 @ 07:47 PM
Evening all,
It occurred to me that it should be possible to use DHCP Vendor Extensions to pass the URL of the Concerto server, rather than compiling it into the ISO.
By using DHCP Option 43, the URL could be passed from central management directly to the display device, without having to worry about redeployment of the config or OS. Essentially, centralising it all would make it all a bit easier for admins :-)
One for the wishlist/feature request!
Kyle
Comments and changes to this ticket
-
Brian Michalski February 11th, 2010 @ 10:32 PM
I'm no DHCP expert, but I don't know how easy this would be for us to implement in an environment where we don't have DHCP control, or any access to those lower-level network functions & configurations.
Here at RPI we started this pilot project using what we had access to, which was only the ability to plug in ethernet and get a valid IP... that said, this might be worth exploring in the future.
Andrew might know a bit more about how feasible this is....
-
Brian Michalski February 11th, 2010 @ 10:32 PM
- State changed from new to open
-
Andrew Armenia February 12th, 2010 @ 11:41 AM
This should be possible by parsing the dhclient.leases file. I'll look at
perhaps trying to package this as a plugin. At the moment, everything is
passed around as environment variables, which are set initially on boot when
config.pl is read, so it might be a bit tricky. But possible nonetheless.-Andrew
-
Kyle Gordon February 12th, 2010 @ 12:47 PM
Hi all,
I must read up about this plugin feature :-) Now that it's the weekend, I'll have a look at cobbling together something that works.
Cheers
Kyle
-
Andrew Armenia February 12th, 2010 @ 01:19 PM
There isn't much documentation yet, which is probably a bug unto itself. But
here's what you'll need to know. Plugins are the .plugin files you see in
the ISO image, and they are SquashFS filesystem images generated using the
mksquashfs program, and combined with the main filesystem via unionfs.The two interesting locations to place files in your plugin are
/etc/init_tasks and /etc/tasks. Executable files in /etc/init_tasks are executed in lexicographical order on initial system boot. Once all tasks in
/etc/init_tasks are completed, executables in /etc/tasks are spawned in separate processes. If a program in /etc/tasks dies, it is automatically
respawned after a brief delay.Also, /etc/xtasks.pl is run by /etc/init_tasks/xserver.pl to spawn all
necessary X11 clients. Actually, this is probably where you'll want to place
your code. For development purposes, it might be helpful to ssh into a
running box and look around. For instance, if you edit /etc/xtasks.pl in
place on a box, then "killall Xorg" or something similar, you should be able
to do some testing on the fly before you build and deploy the plugin.For integration with the existing Concerto boot scripts, I'd recommend
writing your plugin's scripts in Perl. I'm not sure whether our released ISO
images contain the bootup splash screen server (look for
splash-server.plugin, or a blue-and-white Concerto splash screen on boot).
If they do, your script can use the Concerto::InitScript module to interact
with the splash screen's text display area. init_script("message") displays
a message on the splash screen, and log_and_splash("message") allows
printing of diagnostic messages on the bottom area of the screen.We're using ISC's dhclient as the DHCP client right now.
Sorry for the lack of documentation - please let me know if you have any
more questions.-Andrew
-
Brian Michalski June 5th, 2010 @ 12:28 PM
- Tag changed from administration, config, dhcp to administration, config, dhcp, v1
-
Brian Michalski April 30th, 2012 @ 12:14 AM
- State changed from open to resolved
- Milestone order changed from 0 to 0
(from [083e69a118a59e32bcb2e8760684cdee485a5d46]) Better handle content type errors. Closes #70. https://github.com/concerto/concerto/commit/083e69a118a59e32bcb2e87...
Please Sign in or create a free account to add a new ticket.
With your very own profile, you can contribute to projects, track your activity, watch tickets, receive and update tickets through your email and much more.
Create your profile
Help contribute to this project by taking a few moments to create your personal profile. Create your profile ยป
Concerto is an open source digital signage system that makes it easy to engage a large community of people with graphical and text-based announcements, bulletins, and other messages... but enough about us, you came here to get involved.
<br />
If you think you've <b>found a bug in Concerto</b>, please click 'Create new ticket' and let us know about it.
<br />
Looking to peek at our source code? Head to <a href="https://github.com/concerto/concerto_v1">https://github.com/concerto/concerto_v1</a> (Concerto version 1) or <a href="https://github.com/concerto/concerto">https://github.com/concerto/concerto</a> (Concerto version 2).
<br />
Our getting started guide is available here: <a href="https://github.com/concerto/concerto/wiki/Getting-Involved">https://github.com/concerto/concerto/wiki/Getting-Involved</a>.