Skip to content

Instantly share code, notes, and snippets.

@MuhammetOzturk
Created December 11, 2022 22:23
Show Gist options
  • Save MuhammetOzturk/f8cbca04c21d8d557ab209154df6a4cd to your computer and use it in GitHub Desktop.
Save MuhammetOzturk/f8cbca04c21d8d557ab209154df6a4cd to your computer and use it in GitHub Desktop.
Headless Raspberry Pi
#!/bin/bash
IMAGE=$1
BOOT_POINT="/tmp/raspberrypi/boot"
ROOT_POINT="/tmp/raspberrypi/root"
CONNECTION="/etc/NetworkManager/system-connections/*"
mkdir -p $BOOT_POINT
mkdir -p $ROOT_POINT
mount () {
#Sektor baslangic noktlari
START=( `fdisk -l $IMAGE | tail -n 2 | awk '{print $2}'` )
#Sektor bitis noktalari
END=( `fdisk -l $IMAGE | tail -n 2 | awk '{print $4}'` )
#byte cinsinden hesapla 1 sektor == 512 byte
BOOT=`echo "${START[0]} * 512" | bc`
BSIZE=`echo "${END[0]} * 512" | bc`
ROOT=`echo "${START[1]} * 512" | bc`
RSIZE=`echo "${END[1]} * 512" | bc`
sudo mount -o offset=${BOOT},sizelimit=${BSIZE} -t vfat $IMAGE $BOOT_POINT
sudo mount -o offset=${ROOT},sizelimit=${RSIZE} -t ext4 $IMAGE $ROOT_POINT
}
umount () {
sudo umount $BOOT_POINT
sudo umount $ROOT_POINT
rm -r $BOOT_POINT/..
#rm -r $ROOT_POINT
}
autologin () {
#/dev/tty1 ucbirimi otomotik baslatilir
echo "
[Service]
ExecStart=
ExecStart=-/sbin/agetty --autologin pi --noclear %I $TERM
" > autologin.conf
sudo mv autologin.conf $ROOT_POINT/etc/systemd/system/getty@tty1.service.d/
}
write () {
lsblk -pSn -o NAME,TRAN
USB=( `lsblk -pSn -o NAME,TRAN | grep usb | awk '{print $1}'` )
if [ ${#USB[@]} -eq 0 ]; then
echo "Takili usb bulunamadi!"
return
fi
echo "Tarafini sec..."
for ((i=0; i<${#USB[@]}; i++)) do
printf "$i ==> ${USB[$i]} \n" ;
done
read -n 1 i
if [[ $i =~ ^-?[0-9]+$ ]] && [ $i -lt ${#USB[@]} ]; then
#Secilen usb'ye yaz.
sudo dd if=$IMAGE of=${USB[$i]} status=progress
fi
}
ssh() {
sudo mkdir -p $BOOT_POINT/ssh
}
wireless () {
IFS=';'
CONN="/etc/NetworkManager/system-connections"
echo "ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
country=TR
update_config=1" > wpa_supplicant.conf
for i in `ls -t $CONN | tr '\n' ';'`; do
psk=`sudo cat $CONN/$i | grep 'psk='`;
if [ "$psk" ]; then
ssid=`sudo cat $CONN/$i | grep 'ssid='`;
if ( echo $saved | grep $ssid &>/dev/null ) then
continue;
else
echo "
network={
$ssid
$psk
}
"
saved=( $saved $ssid )
fi;
fi;
done | sed -e 's/ssid=\(.*\)/ssid=\"\1\"/g' -e 's/psk=\(.*\)/psk=\"\1\"/g'>> wpa_supplicant.conf
sudo mv wpa_supplicant.conf $BOOT_POINT
}
#TEST
mount
wireless
autologin
ssh
umount
write
@MuhammetOzturk
Copy link
Author

381717

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