Created
December 11, 2022 22:23
-
-
Save MuhammetOzturk/f8cbca04c21d8d557ab209154df6a4cd to your computer and use it in GitHub Desktop.
Headless Raspberry Pi
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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 |
Author
MuhammetOzturk
commented
Mar 20, 2024
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment