PoE Control

Software commands for managing PoE ports

The Interceptor PoE Board is managed through the /proc/pse interface, which provides control over individual PoE ports.

The /proc/pse Interface

The PoE ports are controlled via a simple text-based interface at /proc/pse.

Checking Port Status

cat /proc/pse

Example output:

Board 0:
  Port 0: power on (15.2W)
  Port 1: disabled
  Port 2: power on (8.7W)
  Port 3: searching
  Port 4: disabled
  Port 5: power on (12.1W)
  Port 6: searching
  Port 7: disabled

Port Status Values

StatusMeaning
power onDevice detected and receiving power
searchingPort enabled, looking for PoE device
disabledPort administratively disabled
faultError condition (overcurrent, short, etc.)
backoffTemporary backoff after detection failure

Controlling Ports

Enable a Port

echo "enable-port <board> <port>" > /proc/pse

Examples:

# Enable port 0 on board 0
echo "enable-port 0 0" > /proc/pse

# Enable port 5 on board 0
echo "enable-port 0 5" > /proc/pse

# Enable port 2 on board 1 (second PoE board)
echo "enable-port 1 2" > /proc/pse

Disable a Port

echo "disable-port <board> <port>" > /proc/pse

Examples:

# Disable port 3 on board 0
echo "disable-port 0 3" > /proc/pse

# Disable port 7 on board 1
echo "disable-port 1 7" > /proc/pse

Reset a Port

Power-cycle a port (disable then re-enable):

echo "reset-port <board> <port>" > /proc/pse

Example:

# Reset port 2 on board 0
echo "reset-port 0 2" > /proc/pse

Set PoE Mode (AF vs AT)

By default, ports are configured for 802.3at (PoE+, 30W). To limit a port to 802.3af (15W), use:

echo "set-af-mode <board> <port>" > /proc/pse

Example:

# Set port 2 on board 0 to AF mode (15W max)
echo "set-af-mode 0 2" > /proc/pse
ModeStandardMax Power
AT (default)802.3at (PoE+)30W
AF802.3af (PoE)15W

Board and Port Numbering

Single PoE Board Configuration

Carrier ConnectorBoard NumberPorts
J900-7

Dual PoE Board Configuration

Carrier ConnectorBoard NumberPorts
J900-7
J1010-7

Common Operations

Enable All Ports on Board 0

for port in 0 1 2 3 4 5 6 7; do
  echo "enable-port 0 $port" > /proc/pse
done

Disable All Ports on Board 0

for port in 0 1 2 3 4 5 6 7; do
  echo "disable-port 0 $port" > /proc/pse
done

Check Power Consumption

cat /proc/pse | grep "power on"

Monitor Status in Real-Time

watch -n 1 'cat /proc/pse'

Important Notes

The ip link set command controls the network interface, not the PoE power.

# This controls the network link, NOT the PoE power
ip link set poe0 up    # ❌ Does not enable PoE power
ip link set poe0 down  # ❌ Does not disable PoE power

# Use /proc/pse to control PoE power
echo "enable-port 0 0" > /proc/pse   # ✅ Enables PoE power
echo "disable-port 0 0" > /proc/pse  # ✅ Disables PoE power

Power Budget Management

The system does not automatically manage power budget. If you enable more ports than your PSU can handle, you may experience:

  • Voltage drops
  • Port resets
  • System instability

Calculate your power budget before enabling ports:

DevicesTypical PowerMax Power
IP Camera (basic)5-8W12W
IP Camera (PTZ)15-25W30W
WiFi AP8-12W15W
VoIP Phone3-6W10W

Fault Recovery

If a port enters fault status:

  1. Check for short circuits or damaged cables
  2. Verify the connected device is PoE-compatible
  3. Reset the port:
    echo "reset-port 0 <port>" > /proc/pse
    

Scripting Examples

Startup Script to Enable Specific Ports

Create /usr/local/bin/poe-init.sh:

#!/bin/bash
# Enable PoE ports on boot

# Ports to enable on board 0
ENABLED_PORTS="0 1 2 5"

for port in $ENABLED_PORTS; do
  echo "enable-port 0 $port" > /proc/pse
  sleep 0.5
done

echo "PoE ports initialized"

Make executable and add to startup:

chmod +x /usr/local/bin/poe-init.sh
# Add to /etc/rc.local or create a systemd service

Port Status Check Script

#!/bin/bash
# Check PoE port status

echo "=== PoE Port Status ==="
cat /proc/pse

echo ""
echo "=== Active Ports ==="
cat /proc/pse | grep "power on" | wc -l
echo "ports delivering power"

echo ""
echo "=== Total Power ==="
cat /proc/pse | grep -oP '\d+\.\d+W' | awk '{sum += $1} END {print sum "W total"}'

Troubleshooting

“Permission denied” Error

You need root privileges to write to /proc/pse:

sudo echo "enable-port 0 0" > /proc/pse   # ❌ Won't work

# Use this instead:
echo "enable-port 0 0" | sudo tee /proc/pse

# Or run as root:
sudo -i
echo "enable-port 0 0" > /proc/pse

Port Won’t Enable

  1. Check if /proc/pse exists (OS version requirement)
  2. Verify board is connected (FFC cable)
  3. Check 48V power is connected
  4. Look for error messages in dmesg:
    dmesg | grep -i poe
    

Device Not Receiving Power

  1. Verify port shows “power on” in /proc/pse
  2. Check device is PoE-capable
  3. Try a different cable
  4. Try a different port
  5. Check total power budget

API Reference

Commands

CommandSyntaxDescription
Enableenable-port <board> <port>Enable PoE on specified port
Disabledisable-port <board> <port>Disable PoE on specified port
Resetreset-port <board> <port>Power-cycle specified port
Set AF Modeset-af-mode <board> <port>Limit port to 15W (802.3af)

Parameters

ParameterRangeDescription
<board>0-1PoE board number
<port>0-7Port number on board

Note for Cruiser Board Users

Last modified December 30, 2025