Skip to content

Instantly share code, notes, and snippets.

@Roy-Orbison
Created June 12, 2025 07:59
Show Gist options
  • Save Roy-Orbison/96ee54db5df2ed0e449c292ec8498f6a to your computer and use it in GitHub Desktop.
Save Roy-Orbison/96ee54db5df2ed0e449c292ec8498f6a to your computer and use it in GitHub Desktop.
Install a DCA printer monitoring solution in a VM running Alpine.

EKM Global DCA on Alpine Linux

Assumes you have Alpine set up and running. I use a little VM so the DCA can have the privileges it wants and not interfere with anything else, but you might want to use Docker, etc.

The default installer failed, and when I got it working, the service would not stay up. This is what I did to get it going.

  1. Copy the relevant installer URL from EKM's updates site.

  2. Fetch it. It's a shell script with binaries appended, so can take a while, e.g.:

    wget https://updates.ekmglobal.com/dist/DCA/Vanilla/Linux_amd64/DCA-6_20_2_30_b01_Setup_unix-amd64.sh
  3. It comes with its own JRE, but this doesn't work. Install one with the package manager, which must be v11:

    apk add openjdk11-jre-headless
  4. Run the installer, informing it you have your own JRE, e.g.:

    INSTALL4J_DISABLE_BUNDLED_JRE=true sh DCA-6_20_2_30_b01_Setup_unix-amd64.sh
  5. Stop and disable the built-in service that is not adapted for OpenRC, and uses the s-s-d mode. This is because the service seems to die eventually and won't restart itself, thus you're left without any monitoring.

    Check if it's running:

    rc-status -s

    Stop it if so:

    rc-service i2emfw stop

    See if it has a runlevel set:

    rc-update show

    If listed, remove it, e.g.:

    rc-update del i2emfw default
  6. Save this service definition to /etc/init.d/i2emfw-superv, and make it executable:

    #!/sbin/openrc-run
    
    name=$RC_SVCNAME
    description='Wrapper to supervise i2emfw, thus prevent silent failures.'
    # supervisor deliberately defined here, because makes no sense to disable with conf
    supervisor=supervise-daemon
    command=/etc/init.d/i2emfw
    command_args_foreground=start-launchd
    
    depend() {
    	need net
    }
  7. Enable the service (default runlevel):

    rc-update add i2emfw-superv
  8. Start the service:

    rc-service i2emfw-superv start

Good luck.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment