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:

Axzez Interceptor PoE driver version 2.0
0-0: power-on 0 15.50 47.8750 0.05250/0.80000 34.0625/150.0000 
0-1: backoff ? 0.00 47.8750 0.00000/0.80000 35.5625/150.0000 
0-2: detecting ? 0.00 47.8750 0.00000/0.80000 36.4375/150.0000 
0-3: backoff ? 0.00 47.8750 0.00000/0.80000 34.3750/150.0000 
...
0: 47.8750/40.0000-60.0000 0.05250/2.50000 15.50/120
1-0: backoff ? 0.00 48.0625 0.00000/0.80000 29.6250/150.0000 
...

Output format:

<board>-<port>: <status> <class> <power> <voltage> <current>/<max_current> <temp>/<max_temp>
  • board-port: Board number (0 or 1) and port number (0-7)
  • status: Port state (power-on, backoff, detecting, disabled)
  • class: PoE class (0-4 for powered devices, ? for unpowered)
  • power: Current power draw in watts
  • voltage: Bus voltage (should be ~48V)
  • current: Current draw and limit in amps
  • temp: Temperature readings

Port Status Values

StatusMeaning
power-onDevice detected and receiving power
detectingPort enabled, detecting PoE device
backoffTemporary backoff after detection failure (no device connected)
disabledPort administratively disabled
faultError condition (overcurrent, short, etc.)

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 Active Ports

head -20 /proc/pse | grep "power-on"

Monitor Status in Real-Time

The /proc/pse interface streams continuously, so you can monitor it directly:

cat /proc/pse
# Press Ctrl+C to stop

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 (snapshot)

echo "=== PoE Port Status ==="
head -20 /proc/pse

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

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

Last modified February 25, 2026