#70 ✓resolved
Kyle Gordon

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

    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

    Brian Michalski February 11th, 2010 @ 10:32 PM

    • State changed from “new” to “open”
  • Andrew Armenia

    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

    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

    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

    Brian Michalski June 5th, 2010 @ 12:28 PM

    • Tag changed from administration, config, dhcp to administration, config, dhcp, v1
  • Brian Michalski

    Brian Michalski April 30th, 2012 @ 12:14 AM

    • State changed from “open” to “resolved”
    • Milestone order changed from “0” to “0”

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.

New-ticket Create new ticket

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>.

Pages