Pidora-Headless-Mode
What is headless mode?
Headless mode is a system configuration in which the display device, keyboard, or mouse is lacking. When this feature is enabled, firstboot is bypassed.
Enabling headless mode on Pidora
To enable headless mode, you will need to create a file named "headless" in the boot filesystem on your SD card before you insert the card into your Pi.
On Linux:
Tutorial Video: http://youtu.be/ALUAmw6Mz_o
Insert the SD card into your system, and create a file named "headless" in the filesystem labelled "boot".
On Windows:
Insert the SD card into your system. Only the boot filesystem will be made available, because Windows will not be able to read other partitions on the card. Create a file named "headless" on that
There are two possible configurations for headless-mode "DHCP" configuration and "Static" configuration.
DHCP Configuration
If you would like to obtain an ip address dynamically via DHCP, leave the "headless" file empty.
Static Configuration
If you would like to specify a specific IP address you will need to include the IP Address, Netmask and Gateway, place the following information in the "headless" file:
Sample headless file Static Configuration
IPADDR=192.168.1.105 NETMASK=255.255.255.0 GATEWAY=192.168.1.1
Headless Mode is enable with DHCP -- How do I find out my ip-address?
After you have enabled headless mode with either the DHCP configuration or Static IP configuration, the ip address that has been assigned to Raspberry Pi will be played through the speakers 2 minutes after you have powered the Raspberry Pi, and 30 seconds later it will also flash your ip address through Pi's OK/ACT LED.
Headless Mode Script Update
Initially there were a few issues with dchp and headless mode since our release the headless script has been updated. It has not been officially added to the updates repo yet but, if you are interested in trying this mode out now you can copy and replace the old headon script with the updated one located at /usr/bin/headon
- !/bin/bash
headless=`ls /boot/headless* 2> /dev/null | head -n 1` echo "Headless Mode Enabled" if [ -e "$headless" ] then
systemctl enable sshd.service systemctl start sshd.service systemctl stop firstboot-graphical.service systemctl disable firstboot-graphical.service
headtext=`grep '[0-9]' "$headless"` if [ "$headtext" != "" ] then
ip_address=$(sed -n 's/IPADDR=//p' $headless) ip_netmask=$(sed -n 's/NETMASK=//p' $headless) ip_gateway=$(sed -n 's/GATEWAY=//p' $headless)
swap_size=$(sed -n 's/SWAP=//p' $headless)
cat << EOF > /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0 IPADDR=$ip_address NETMASK=$ip_netmask GATEWAY=$ip_gateway BOOTPROTO=static ONBOOT=yes NM_CONTROLLED=yes EOF
systemctl restart NetworkManager.service
else
cat << EOF > /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0 BOOTPROTO=dhcp ONBOOT=yes NM_CONTROLLED=yes EOF
fi
else
systemctl stop headless-mode.service systemctl disable headless-mode.service
fi
- Check headless file for resize option
- Check headless file for resize and swap option
grep -iE 'resize|swap' $headless
if [ $? -eq 0 -a ! -f /.resized ] then
touch /.rootfs-repartition touch /.resized
echo $swap | grep -o '[0-9]*' > /.swap
reboot
else
- resized already remove resize flag if it exists
rm -f /.rootfs-repartition
rm -f /.swap fi
- read ip address
systemctl start ip-read.service
- flashing ip address
systemctl start ip-flash.service