...
- Broadband image to be flashed
- Video image to be flashed
- extract.sh script file
...
- sh
...
...
|
#--------------------------------------------------------------------------------------------------
# Extract meta information of Downloaded image
#--------------------------------------------------------------------------------------------------
mkdir -p extblock
fdisk -u -l $1 > extblock/sector.txt
linux_sector=`tail -2 extblock/sector.txt | tr -s ' ' | cut -d'*' -f2 | cut -d' ' -f2 | head -n1`
linux_offset=$((linux_sector*512))
rootfs_sector=`tail -2 extblock/sector.txt | tr -s ' ' | cut -d'*' -f2 | cut -d' ' -f2 | tail -1`
rootfs_offset=$((rootfs_sector*512))
mkdir -p extblock/linux_data
mkdir -p extblock/rootfs_data
mkdir -p extblock/vlinux_backup_data
mkdir -p extblock/vrootfs_backup_data
#sudo mount /dev/mmcblk0p1 extblock/bank0_linux
#--------------------------------------------------------------------------------------------------
# Loop mount + Extract kernel and bootload data of Downloaded image to storage area
#--------------------------------------------------------------------------------------------------
sudo mount -o loop,offset=$linux_offset $1 extblock/linux_data
cp -R extblock/linux_data/* extblock/vlinux_backup_data/
sudo umount extblock/linux_data
rm -rf extblock/linux_data
#--------------------------------------------------------------------------------------------------
# Loop mount + Extract rootfs data of Downloaded image to storage area
#--------------------------------------------------------------------------------------------------
sudo mount -o loop,offset=$rootfs_offset $1 extblock/rootfs_data
cp -R extblock/rootfs_data/* extblock/vrootfs_backup_data
sudo umount extblock/rootfs_data
rm -rf extblock/rootfs_data |
- multiSDcardmultiSDcard_partition.sh
Code Block |
---|
language | bash |
---|
title | multiSDcard_partition |
---|
collapse | true |
---|
|
# This code is for partitioning and image flashing into multiple SD cards
echo Please enter the input arguments in this order : bash partition.sh bb_image video_image SDcardDetail_filename
echo Please keep the script extract.sh in the same folder
# Get user input for Broadband and Video image and SD card partition names and their respective sizes
echo Broadband image : $1
echo Video image : $2
echo SDcard details filename : $3
echo Deleting few folders if they are pre-existing...
sudo rm -rf videomnt/
sudo rm -rf extblock/
echo Video image is going to be extracted...
sudo sh extract.sh $2
sudo mkdir videomnt
loopcnt=1
while IFS=' ' read -r part_name sdcard_size
do
sudo mkdir videomnt/videomnt'_'$loopcnt
dir_name='videomnt/videomnt''_'$loopcnt
echo $dir_name
echo Calling the thread script which will paralleley execute for multiple SD cards...
sudo bash threadSD.sh $1 $part_name $sdcard_size $dir_name &
loopcnt=`expr $loopcnt + 1`
done < $3
# Check file inside videomnt is empty or not
cd videomnt
while true
do
for file in *; do
echo Check for file present in the directory...
done
if [ "$file" == "*" ]
then
echo All SD card partitioning and image flashing are completed !!
# Deleting temporary folders.
cd ..
sudo rm -rf videomnt
sudo rm -rf extblock/
exit 1
fi
sleep 60
sleep_cnt=`expr $sleep_cnt + 1`
if [ "$sleep_cnt" == "10" ]
then
echo Multisd card flashing failed due to slow processing or error. Increase sleep count thresold sleep_cnt.
exit 1
fi
done |
- threadSD.sh
...
|
# This program implements thread functionality for better performance for multiple SD card partitioning and image flashing
# Input arguments
bb_image=$1
part_name=$2
sdcard_size=$3
dir_name=$4
echo Going to flash the Broadband image in SD card which loaded in $part_name ...
`sudo dd if=$bb_image of=$part_name bs=4M`
echo Broadband Image flashed in SD card !!
echo SD card partitioning is going to start !!
sudo parted $part_name --script print
sudo parted $part_name --script resizepart 2 2048
sudo parted $part_name --script print free
sudo parted $part_name --script mkpart primary ext4 2049 4096
sudo parted $part_name --script print free
sd_size=$sdcard_size'GB'
sudo parted $part_name --script mkpart primary ext4 4097 $sd_size
sudo parted $part_name --script print
sudo parted $part_name --script quit
part3=$part_name'3'
part4=$part_name'4'
sudo mkfs.ext4 $part3
sudo mkfs.ext4 $part4
echo Video image is going to be copied in the extended partition ...
sudo mount $part4 $dir_name
sudo cp -r extblock/v* $dir_name/
sudo cp -r extblock/vrootfs_backup_data/* $dir_name/
echo Video image is stored in extended partition !!
sleep 10
sudo umount $dir_name
sleep 10
echo SD card unmounted.
echo Partitioning and Image flashing in the SD card mounted in $part_name is Completed !!!
sudo rm -rf $dir_name |
- Create a file (For ex. sudo vi sd_part_size) where all the SD card partition names and their respective sizes are mentioned
2) Connect all the SD cards with host PC and execute the command : sudo fdisk -l . It will list all the SD card partitions with their respective sizes
...