Enable/Disable Core MyPi IO Devices
Several GPIO lines are reserved for configuring the on board peripherals and usage of the front LEDs.
By using a device tree file we can configure these GPIO lines and drive as desired very early in the power up boot stage, the customised device tree file dt-blob.bin is stored in /boot (see 'Device tree and overlay files' in Installing Linux section for more information)
The source file for this is located in /root/device-tree and is fully documented with instructions for enabling/disabling core features and re-compiling.
By using a bash script (mypi.sh) as part of the init startup sequence we can also configure GPIO line states, shortcuts and user level access, this is located in /etc/init.d/mypi.sh
||Function||Operation||Shortcut||Default Boot State|
|39||mPCI-E (#WDIS) Enable/Disable||1=Disable 0=Enable||/dev/pcie-disable||Enabled|
|34||SD Card (/Reset) Enable/Disable||1=Disable 0=Enable||/dev/sd-disable||Enabled|
|44||LAN (/Reset) Enable/Disable||1=Disable 0=Enable||/dev/lan-disable||Enabled|
|35||Status LED Red||1=On 0=Off||/dev/led-red||Off|
|36||Status LED Green||1=On 0=Off||/dev/led-green||Off|
The shortcuts are symlinks created by the mypi.sh file to the respective GPIO exports in /sys/class/gpio
Note that when the LAN/mPCIE/SD interfaces are disabled the respective chip is held in reset mode, which removes the device from the OS (or depending on modem type puts it into airplane mode), this reduces the boards overall power consumption - significantly in some cases.
By disabling and then enabling the mPCI-E interface (with a 5 second pause in between) it is possible to gracefully reset the device installed in the event of comms lockup.
By using echo commands at the command line shell prompt as root user (or sudo) you can change the state of the GPIO lines
# echo 1 >/dev/led-green
# echo 0 >/dev/led-green
When run as root user the above will toggle the state of the green front panel status LED
With careful sequencing it is even possible to disable and re-enable the LAN chip for extra power saving, the key here is to shut-down any and all LAN interfaces and services before disabling the chip.
# /etc/init.d/ssh stop
# /etc/init.d/networking stop
# echo 1 >/dev/lan-disable
# echo 0 >/dev/lan-disable
# /etc/init.d/networking start
# /etc/init.d/ssh start
For more information on how to use GPIO lines the following pages give some useful info :