134
134
create_partitions() {
135
if [ "${IMAGE_FILE}" ]; then
136
partdev=${IMAGE_FILE}
135
if [ "${IMAGE_FILE}" ]; then
136
partdev=${IMAGE_FILE}
141
if [ "$FAT_SIZE" = "32" ]; then
141
if [ "$FAT_SIZE" = "32" ]; then
142
142
PARTITION_TYPE="0x0C"
144
144
PARTITION_TYPE="0x0E"
147
# Create a VFAT or FAT16 partition of 9 cylinders which is about 64M
148
# and a linux partition of the rest
150
sudo sfdisk -D -H $HEADS -S $SECTORS $CYLINDER_ARG $partdev << THEEND
147
# Create a VFAT or FAT16 partition of 9 cylinders which is about 64M
148
# and a linux partition of the rest
149
sudo sfdisk -D -H $HEADS -S $SECTORS $CYLINDER_ARG $partdev << THEEND
151
150
,9,$PARTITION_TYPE,*
155
if [ "${IMAGE_FILE}" ]; then
156
VFATOFFSET=$(($(fdisk -l -u $IMAGE_FILE | grep FAT | awk '{print $3}')*512))
157
VFATSIZE=$(($(fdisk -l -u $IMAGE_FILE | grep FAT | awk '{print $5}')*1024))
158
ROOTOFFSET=$(($(fdisk -l -u $IMAGE_FILE | grep Linux | awk '{print $2}')*512))
159
ROOTSIZE2=$(($(fdisk -l -u $IMAGE_FILE | grep Linux | awk '{print $3}')))
160
ROOTSIZE1=$(($(fdisk -l -u $IMAGE_FILE | grep Linux | awk '{print $2}')))
161
ROOTSIZE=$((((ROOTSIZE2-ROOTSIZE1)/2)*1024))
162
MMC1=$(sudo losetup -f --show $IMAGE_FILE --offset $VFATOFFSET --sizelimit $VFATSIZE)
163
MMC2=$(sudo losetup -f --show $IMAGE_FILE --offset $ROOTOFFSET --sizelimit $ROOTSIZE)
154
if [ "${IMAGE_FILE}" ]; then
155
VFATOFFSET=$(($(fdisk -l -u $IMAGE_FILE | grep FAT | awk '{print $3}')*512))
156
VFATSIZE=$(($(fdisk -l -u $IMAGE_FILE | grep FAT | awk '{print $5}')*1024))
157
ROOTOFFSET=$(($(fdisk -l -u $IMAGE_FILE | grep Linux | awk '{print $2}')*512))
158
ROOTSIZE2=$(($(fdisk -l -u $IMAGE_FILE | grep Linux | awk '{print $3}')))
159
ROOTSIZE1=$(($(fdisk -l -u $IMAGE_FILE | grep Linux | awk '{print $2}')))
160
ROOTSIZE=$((((ROOTSIZE2-ROOTSIZE1)/2)*1024))
161
MMC1=$(sudo losetup -f --show $IMAGE_FILE --offset $VFATOFFSET --sizelimit $VFATSIZE)
162
MMC2=$(sudo losetup -f --show $IMAGE_FILE --offset $ROOTOFFSET --sizelimit $ROOTSIZE)
168
167
prepare_partitions() {
171
echo "Formating Boot Partition"
174
sudo mkfs.vfat -F ${FAT_SIZE} ${MMC1} -n ${BOOT_LABEL}
177
echo "Formating ${RFS} Partition"
179
sudo mkfs.${RFS} -U "$RFS_UUID" ${MMC2} -L ${RFS_LABEL}
169
echo "Formating Boot Partition"
172
sudo mkfs.vfat -F ${FAT_SIZE} ${MMC1} -n ${BOOT_LABEL}
175
echo "Formating ${RFS} Partition"
177
sudo mkfs.${RFS} -U "$RFS_UUID" ${MMC2} -L ${RFS_LABEL}
182
180
populate_boot() {
184
echo "Populating Boot Partition"
188
echo "Installing Boot Loader"
191
if [ "$IS_LIVE" ]; then
197
mkdir -p ${DIR}/disk || true
198
sudo mount ${MMC1} ${DIR}/disk
201
if [ "$DEVIMAGE" = "beagle" ]; then
202
if [ -e binary/${parts_dir}/${MLO_FILE} ] && [ -e binary/${parts_dir}/${UBOOT_FILE} ]; then
203
sudo cp -v binary/${parts_dir}/${MLO_FILE} ${DIR}/disk/MLO
204
sudo cp -v binary/${parts_dir}/${UBOOT_FILE} ${DIR}/disk/u-boot.bin
211
sudo mkimage -A arm -O linux -T kernel -C none -a 0x80008000 \
212
-e 0x80008000 -n Linux -d "${DIR}/binary/${parts_dir}"/vmlinuz-*omap \
215
sudo mkimage -A arm -O linux -T ramdisk -C none -a 0 \
216
-e 0 -n initramfs -d "${DIR}/binary/${parts_dir}"/initrd.img-*-omap \
217
"${DIR}/disk/uInitrd"
219
sudo mkimage -A arm -O linux -T script -C none -a 0 \
220
-e 0 -n "$CODENAME 10.05" -d "${DIR}/binary/boot.cmd" \
221
"${DIR}/disk/boot.scr"
222
sudo cp -v ${DIR}/disk/boot.scr ${DIR}/disk/boot.ini
225
sudo tar --strip-components=5 -C ${DIR}/disk/ -xf $BINARY_TARBALL binary/usr/lib/u-boot/ca9x4_ct_vxp/u-boot.bin
226
sudo mkimage -A arm -O linux -T kernel -C none -a 0x60008000 -e 0x60008000 \
227
-n "Linux" -d ${DIR}/binary/${parts_dir}/vmlinuz*-vexpress ${DIR}/disk/uImage
228
sudo mkimage -A arm -O linux -T ramdisk -C none -a 0x81000000 \
229
-e 0x81000000 -n "initramfs" -d \
230
${DIR}/binary/${parts_dir}/initrd.img-*-linaro-vexpress \
231
"${DIR}"/disk/uInitrd
234
echo "Set --dev parameter: --dev <beagle|igep|vexpress>" 1>&2
245
sudo umount ${DIR}/disk || true
182
echo "Populating Boot Partition"
186
echo "Installing Boot Loader"
189
if [ "$IS_LIVE" ]; then
195
mkdir -p ${DIR}/disk || true
196
sudo mount ${MMC1} ${DIR}/disk
199
if [ "$DEVIMAGE" = "beagle" ]; then
200
if [ -e binary/${parts_dir}/${MLO_FILE} ] && [ -e binary/${parts_dir}/${UBOOT_FILE} ]; then
201
sudo cp -v binary/${parts_dir}/${MLO_FILE} ${DIR}/disk/MLO
202
sudo cp -v binary/${parts_dir}/${UBOOT_FILE} ${DIR}/disk/u-boot.bin
209
sudo mkimage -A arm -O linux -T kernel -C none -a 0x80008000 \
210
-e 0x80008000 -n Linux -d "${DIR}/binary/${parts_dir}"/vmlinuz-*omap \
213
sudo mkimage -A arm -O linux -T ramdisk -C none -a 0 \
214
-e 0 -n initramfs -d "${DIR}/binary/${parts_dir}"/initrd.img-*-omap \
215
"${DIR}/disk/uInitrd"
217
sudo mkimage -A arm -O linux -T script -C none -a 0 \
218
-e 0 -n "$CODENAME 10.05" -d "${DIR}/binary/boot.cmd" \
219
"${DIR}/disk/boot.scr"
220
sudo cp -v ${DIR}/disk/boot.scr ${DIR}/disk/boot.ini
223
sudo tar --strip-components=5 -C ${DIR}/disk/ -xf $BINARY_TARBALL binary/usr/lib/u-boot/ca9x4_ct_vxp/u-boot.bin
224
sudo mkimage -A arm -O linux -T kernel -C none -a 0x60008000 -e 0x60008000 \
225
-n "Linux" -d ${DIR}/binary/${parts_dir}/vmlinuz*-vexpress ${DIR}/disk/uImage
226
sudo mkimage -A arm -O linux -T ramdisk -C none -a 0x81000000 \
227
-e 0x81000000 -n "initramfs" -d \
228
${DIR}/binary/${parts_dir}/initrd.img-*-linaro-vexpress \
229
"${DIR}"/disk/uInitrd
232
echo "Set --dev parameter: --dev <beagle|igep|vexpress>" 1>&2
243
sudo umount ${DIR}/disk || true
248
246
populate_rootfs() {
250
echo "Populating rootfs Partition"
251
echo "Be patient, this may take a few minutes"
253
sudo mount ${MMC2} ${DIR}/disk
255
sudo tar -xf $BINARY_TARBALL --strip-components=1 -C disk/
257
# add fstab entry for rootfs and boot
258
echo "UUID=${RFS_UUID} / ${RFS} errors=remount-ro 0 1 " | sudo tee -a ${DIR}/disk/etc/fstab
260
if [ "$CREATE_SWAP" ] ; then
263
echo "Creating SWAP File"
266
SPACE_LEFT=$(df ${DIR}/disk/ | grep ${MMC2} | awk '{print $4}')
268
let SIZE=$SWAP_SIZE*1024
270
if [ $SPACE_LEFT -ge $SIZE ] ; then
271
sudo dd if=/dev/zero of=${DIR}/disk/SWAP.swap bs=1M count=$SWAP_SIZE
272
sudo mkswap ${DIR}/disk/SWAP.swap
273
echo "/SWAP.swap none swap sw 0 0" | sudo tee -a ${DIR}/disk/etc/fstab
275
echo "SWAP file bigger then whats left on partition"
248
echo "Populating rootfs Partition"
249
echo "Be patient, this may take a few minutes"
251
sudo mount ${MMC2} ${DIR}/disk
253
sudo tar -xf $BINARY_TARBALL --strip-components=1 -C disk/
255
## add fstab entry for rootfs and boot
256
echo "UUID=${RFS_UUID} / ${RFS} errors=remount-ro 0 1 " | sudo tee -a ${DIR}/disk/etc/fstab
258
if [ "$CREATE_SWAP" ] ; then
261
echo "Creating SWAP File"
264
SPACE_LEFT=$(df ${DIR}/disk/ | grep ${MMC2} | awk '{print $4}')
266
let SIZE=$SWAP_SIZE*1024
268
if [ $SPACE_LEFT -ge $SIZE ] ; then
269
sudo dd if=/dev/zero of=${DIR}/disk/SWAP.swap bs=1M count=$SWAP_SIZE
270
sudo mkswap ${DIR}/disk/SWAP.swap
271
echo "/SWAP.swap none swap sw 0 0" | sudo tee -a ${DIR}/disk/etc/fstab
273
echo "SWAP file bigger then whats left on partition"
280
echo "Creating /etc/flash-kernel.conf"
283
echo "UBOOT_PART=/dev/mmcblk0p1" > ${DIR}/disk/etc/flash-kernel.conf
290
sudo umount ${DIR}/disk || true
278
echo "Creating /etc/flash-kernel.conf"
281
echo "UBOOT_PART=/dev/mmcblk0p1" > ${DIR}/disk/etc/flash-kernel.conf
288
sudo umount ${DIR}/disk || true
294
FDISK=$(sudo LC_ALL=C sfdisk -l | grep "[Disk] ${MMC}" | awk '{print $2}')
292
FDISK=$(sudo LC_ALL=C sfdisk -l | grep "[Disk] ${MMC}" | awk '{print $2}')
296
if test "-$FDISK-" = "-$MMC:-"
300
echo "sudo sfdisk -l:"
301
sudo LC_ALL=C sfdisk -l | grep "[Disk] /dev/" --color=never
304
mount | grep -v none | grep "/dev/" --color=never
306
read -p "Are you 100% sure, on selecting [${MMC}] (y/n)? "
307
[ "$REPLY" == "y" ] || exit
311
echo "Are you sure? I Don't see [${MMC}], here is what I do see..."
313
echo "sudo sfdisk -l:"
314
sudo LC_ALL=C sfdisk -l | grep "[Disk] /dev/" --color=never
317
mount | grep -v none | grep "/dev/" --color=never
294
if test "-$FDISK-" = "-$MMC:-"
298
echo "sudo sfdisk -l:"
299
sudo LC_ALL=C sfdisk -l | grep "[Disk] /dev/" --color=never
302
mount | grep -v none | grep "/dev/" --color=never
304
read -p "Are you 100% sure, on selecting [${MMC}] (y/n)? "
305
[ "$REPLY" == "y" ] || exit
309
echo "Are you sure? I Don't see [${MMC}], here is what I do see..."
311
echo "sudo sfdisk -l:"
312
sudo LC_ALL=C sfdisk -l | grep "[Disk] /dev/" --color=never
315
mount | grep -v none | grep "/dev/" --color=never
323
321
check_fs_type() {
326
if test "-$FS_TYPE-" = "-ext2-"
332
if test "-$FS_TYPE-" = "-ext3-"
338
if test "-$FS_TYPE-" = "-ext4-"
344
if test "-$FS_TYPE-" = "-btrfs-"
350
if [ "$IN_VALID_FS" ] ; then
324
if test "-$FS_TYPE-" = "-ext2-"
330
if test "-$FS_TYPE-" = "-ext3-"
336
if test "-$FS_TYPE-" = "-ext4-"
342
if test "-$FS_TYPE-" = "-btrfs-"
348
if [ "$IN_VALID_FS" ] ; then
355
353
calculatesize() {
356
IMAGE_SIZE=${IMAGE_SIZE/G/M*1024}
357
IMAGE_SIZE=${IMAGE_SIZE/M/K*1024}
358
IMAGE_SIZE=${IMAGE_SIZE/K/*1024}
359
IMAGE_SIZE=$(($IMAGE_SIZE))
354
IMAGE_SIZE=${IMAGE_SIZE/G/M*1024}
355
IMAGE_SIZE=${IMAGE_SIZE/M/K*1024}
356
IMAGE_SIZE=${IMAGE_SIZE/K/*1024}
357
IMAGE_SIZE=$(($IMAGE_SIZE))
366
if [ "${IMAGE_FILE}" ]; then
364
if [ "${IMAGE_FILE}" ]; then
368
366
CYLINDERSIZE=$(($HEADS*$SECTORS*$SECTORSIZE))
369
367
CYLINDERS=$(($IMAGE_SIZE/$CYLINDERSIZE))
370
368
CYLINDER_ARG="-C $CYLINDERS"
371
369
IMAGE_SIZE=$(($CYLINDERS*$CYLINDERSIZE))
378
sudo qemu-img create -f raw $IMAGE_FILE $IMAGE_SIZE
376
sudo qemu-img create -f raw $IMAGE_FILE $IMAGE_SIZE
382
echo "usage: $(basename $0) --mmc /dev/sdd"
384
echo "usage: $(basename $0) --image_file mmc.img"
380
echo "usage: $(basename $0) --mmc /dev/sdd"
382
echo "usage: $(basename $0) --image_file mmc.img"
387
385
required options: