mirror of
https://github.com/vincentmli/bpfire.git
synced 2026-04-09 18:45:54 +02:00
106 lines
4.3 KiB
Plaintext
106 lines
4.3 KiB
Plaintext
###############################################################################
|
|
# #
|
|
# IPFire.org - A linux based firewall #
|
|
# Copyright (C) 2007 Michael Tremer & Christian Schmidt #
|
|
# #
|
|
# This program is free software: you can redistribute it and/or modify #
|
|
# it under the terms of the GNU General Public License as published by #
|
|
# the Free Software Foundation, either version 3 of the License, or #
|
|
# (at your option) any later version. #
|
|
# #
|
|
# This program is distributed in the hope that it will be useful, #
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of #
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
|
|
# GNU General Public License for more details. #
|
|
# #
|
|
# You should have received a copy of the GNU General Public License #
|
|
# along with this program. If not, see <http://www.gnu.org/licenses/>. #
|
|
# #
|
|
###############################################################################
|
|
|
|
###############################################################################
|
|
# Definitions
|
|
###############################################################################
|
|
|
|
include Config
|
|
|
|
VER = ipfire
|
|
|
|
THISAPP = usb-stick
|
|
TARGET = $(DIR_INFO)/$(THISAPP)
|
|
|
|
###############################################################################
|
|
# Top-level Rules
|
|
###############################################################################
|
|
|
|
install : $(TARGET)
|
|
|
|
check :
|
|
|
|
download :
|
|
|
|
md5 :
|
|
|
|
###############################################################################
|
|
# Installation Details
|
|
###############################################################################
|
|
IMGfdd := /install/images/$(SNAME)-$(VERSION)-install-usb-fdd.$(MACHINE)-$(ED)-core$(CORE).img
|
|
IMGhdd := /install/images/$(SNAME)-$(VERSION)-install-usb-hdd.$(MACHINE)-$(ED)-core$(CORE).img
|
|
IMGfs := /install/images/fs
|
|
|
|
ifeq "$(ED)" "devel"
|
|
DISKSIZE=480000
|
|
else
|
|
DISKSIZE=120000
|
|
endif
|
|
|
|
define COPY_TO_IMG
|
|
mkdosfs -n IPFIRE -F 16 -I $$IMAGE && \
|
|
for i in /0 `seq 0 7`; do \
|
|
[ -e /dev/loop$${i} ] || continue; \
|
|
if (! losetup /dev/loop$${i} >/dev/null 2>&1 ); then \
|
|
LOOPDEV="/dev/loop$${i}"; \
|
|
break; \
|
|
fi; \
|
|
done; \
|
|
losetup $$LOOPDEV $$IMAGE && \
|
|
mount -t vfat $$LOOPDEV /install/mnt && \
|
|
cp -fR /install/cdrom/* /install/mnt && \
|
|
mv /install/mnt/boot/isolinux/{instroot,vmlinuz,*\.msg,memtest} /install/mnt && \
|
|
rm -rf /install/mnt/boot && \
|
|
cp $(DIR_SRC)/config/syslinux/syslinux.cfg /install/mnt/syslinux.cfg && \
|
|
umount /install/mnt && \
|
|
losetup -d $$LOOPDEV && \
|
|
syslinux $$IMAGE
|
|
endef
|
|
|
|
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
|
|
|
|
# usb-fdd superfloppy (partitionless)
|
|
# compute size +32 blocks for bootsector/fat/etc...
|
|
dd bs=1024 count=$$((`du -k -s /install/cdrom | awk '{print $$1}'` + 2048 )) \
|
|
if=/dev/zero \
|
|
of=$(IMGfdd)
|
|
IMAGE=$(IMGfdd); $(COPY_TO_IMG)
|
|
|
|
# Partitionned images : make a file system bigger than iso size
|
|
# that fit on 128MB key to let free space available
|
|
# on the unique partition. Image will be compressed later
|
|
dd bs=1k if=/dev/zero of=$(IMGfs) count=$(DISKSIZE)
|
|
IMAGE=$(IMGfs); $(COPY_TO_IMG)
|
|
|
|
# usb-hdd (64 heads, 32 sectors geometry, on a partition 1)
|
|
# use 64 heads as 256 does not work on Award bios (Asus A7V8X-X Gilles)
|
|
# use 32 sectors a minima or device is not recognised as hard disk (Frank)
|
|
# add 32 to IMGfs as first partition start at 32
|
|
COUNT=$$((`du -k -s $(IMGfs) | awk '{print $$1}'` + 32 )); \
|
|
dd bs=1k if=/dev/zero of=$(IMGhdd) count=$$COUNT
|
|
# write mbr before partitioning save a 'not msdos fs' warning from sfdisk
|
|
/usr/local/sbin/install-mbr -f $(IMGhdd)
|
|
echo -e "0,,6,*\n;\n;\n;" | sfdisk -qLD -H 64 -S 32 $(IMGhdd)
|
|
# copy the entire partition, make the fs and dd back
|
|
dd if=$(IMGfs) of=$(IMGhdd) bs=512 seek=32
|
|
|
|
gzip -f9 $(IMGfdd) $(IMGhdd)
|
|
rm -rf $$LFS/tmp/* $(IMGfs)
|