+++ /dev/null
-###############################################################################
-# #
-# 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 = pxe
-TARGET = $(DIR_INFO)/$(THISAPP)
-
-###############################################################################
-# Top-level Rules
-###############################################################################
-
-install : $(TARGET)
-
-check :
-
-download :
-
-md5 :
-
-###############################################################################
-# Installation Details
-###############################################################################
-
-$(TARGET) :
- # Create install pxe package as an alternate way to boot during install
- rm -rf /tmp/*
- mkdir -p /tmp/$(VERSION) /tmp/pxelinux.cfg
- cp /usr/lib/syslinux/pxelinux.0 /tmp
- cp /install/images/initrd /tmp/$(VERSION)/instroot
- cp /boot/vmlinuz-$(KVER)-ipfire /tmp/$(VERSION)/vmlinuz
- cp $(DIR_SRC)/config/syslinux/options.msg /tmp/$(VERSION)/options.msg
- cp $(DIR_SRC)/config/syslinux/splash.lss /tmp/$(VERSION)/splash.lss
- cp /usr/lib/memtest86+/memtest.bin /tmp/$(VERSION)/memtest
- sed -e "s|splash.lss|$(VERSION)/splash.lss|" \
- $(DIR_SRC)/config/syslinux/boot.msg \
- > /tmp/$(VERSION)/boot.msg
- sed -e "s|vmlinuz|$(VERSION)/vmlinuz|" \
- -e "s|instroot|$(VERSION)/instroot|" \
- -e "s|KERNEL memtest|KERNEL $(VERSION)/memtest|" \
- -e "s|boot.msg|$(VERSION)/boot.msg|" \
- -e "s|options.msg|$(VERSION)/options.msg|" \
- $(DIR_SRC)/config/syslinux/syslinux.cfg \
- > /tmp/pxelinux.cfg/$(SNAME)-pxe-$(VERSION).model
- ln -s $(SNAME)-pxe-$(VERSION).model /tmp/pxelinux.cfg/default
- chmod 444 /tmp/$(VERSION)/instroot
- cd /tmp && tar cvzf \
- /install/images/$(SNAME)-$(VERSION).$(MACHINE)-pxe.tgz *
- rm -rf /tmp/*
if [ -e /dev/loop/0 ] || [ -e /dev/loop0 ]; then
ipfiremake usb-stick
fi
- ipfiremake pxe
mv $LFS/install/images/{*.iso,*.tgz,*.img.gz} $BASEDIR >> $LOGFILE 2>&1
ipfirepackages
######
-OBJS=main.o nic.o net.o config.o ../libsmooth/libsmooth.o unattended.o
+OBJS=main.o config.o ../libsmooth/libsmooth.o unattended.o
install: $(OBJS)
$(LINK) $(OBJS) -o $@ $(LIBS)
char options[STRING_SIZE];
};
-/* nic.c */
-int networkmenu(struct keyvalue *ethernetkv);
-
-/* net.c */
-int checktarball(char *, char *message);
-
/* config.c */
int write_disk_configs(struct devparams *dp);
int write_lang_configs( char *lang);
#include "install.h"
#define _GNU_SOURCE
-#define CDROM_INSTALL 0
-#define URL_INSTALL 1
-#define DISK_INSTALL 2
#define INST_FILECOUNT 6200
#define UNATTENDED_CONF "/cdrom/boot/unattended.conf"
extern char *en_tr[];
extern char *de_tr[];
-int detect_smp() {
- FILE *fd = NULL;
- char line[STRING_SIZE];
- int cpu_count = 0;
-
- if ((fd = fopen("/proc/cpuinfo", "r")) == NULL) {
- return 0;
- }
- while (fgets(line, STRING_SIZE, fd) != NULL) {
- if (strstr(line, "processor") == line) {
- cpu_count++;
- }
- }
- (void)fclose(fd);
- return (cpu_count > 1);
-}
-
int main(int argc, char *argv[])
{
char *langnames[] = { "Deutsch", "English", NULL };
char hdletter;
char harddrive[11], sourcedrive[5]; /* Device holder. */
struct devparams hdparams, cdromparams; /* Params for CDROM and HD */
- int cdmounted = 0; /* Loop flag for inserting a cd. */
int rc = 0;
char commandstring[STRING_SIZE];
- char *installtypes[] = { "CDROM/USB", "HTTP/FTP", NULL };
- int installtype = CDROM_INSTALL;
char mkfscommand[STRING_SIZE];
char *fstypes[] = { "Reiser4", "ReiserFS", "ext3", NULL };
int fstype = REISER4;
// Starting hardware detection
runcommandwithstatus("/bin/probehw.sh", ctr[TR_PROBING_HARDWARE]);
- if (!unattended) {
- sprintf(message, ctr[TR_WELCOME], NAME);
- newtWinMessage(title, ctr[TR_OK], message);
-
- sprintf(message, ctr[TR_SELECT_INSTALLATION_MEDIA_LONG], NAME);
- rc = newtWinMenu(ctr[TR_SELECT_INSTALLATION_MEDIA], message,
- 50, 5, 5, 6, installtypes, &installtype, ctr[TR_OK],
- ctr[TR_CANCEL], NULL);
- } else {
- rc = 1;
- installtype = CDROM_INSTALL;
- }
+ sprintf(message, ctr[TR_WELCOME], NAME);
+ newtWinMessage(title, ctr[TR_OK], message);
- if (rc == 2)
+ switch (mysystem("/bin/mountsource.sh")) {
+ case 0:
+ break;
+ case 10:
+ errorbox(ctr[TR_NO_CDROM]);
goto EXIT;
-
- /* CDROM INSTALL */
- if (installtype == CDROM_INSTALL) {
- switch (mysystem("/bin/mountsource.sh")) {
- case 0:
- installtype = CDROM_INSTALL;
- cdmounted = 1;
- break;
- case 1:
- installtype = DISK_INSTALL;
- break;
- case 10:
- errorbox(ctr[TR_NO_CDROM]);
- goto EXIT;
- }
-
- /* read source drive letter */
- if ((handle = fopen("/tmp/source_device", "r")) == NULL) {
- errorbox(ctr[TR_ERROR_PROBING_CDROM]);
- goto EXIT;
- }
- fgets(sourcedrive, 5, handle);
- fprintf(flog, "Source drive: %s\n", sourcedrive);
- fclose(handle);
}
- /* Configure the network now! */
- if (installtype == URL_INSTALL) {
- /* Network driver and params. */
- if (!(networkmenu(ethernetkv))) {
- errorbox(ctr[TR_NETWORK_SETUP_FAILED]);
- goto EXIT;
- }
-
- /* Check for ipfire-<VERSION>.tbz2 */
- if (checktarball(SNAME "-" VERSION ".tbz2", ctr[TR_ENTER_URL])) {
- errorbox(ctr[TR_NO_IPCOP_TARBALL_FOUND]);
- goto EXIT;
- }
+ /* read source drive letter */
+ if ((handle = fopen("/tmp/source_device", "r")) == NULL) {
+ errorbox(ctr[TR_ERROR_PROBING_CDROM]);
+ goto EXIT;
}
+ fgets(sourcedrive, 5, handle);
+ fprintf(flog, "Source drive: %s\n", sourcedrive);
+ fclose(handle);
i = 0;
while (found == 0) {
goto EXIT;
}
- if (installtype == URL_INSTALL) {
- snprintf(commandstring, STRING_SIZE,
- "/bin/wget -q -O - %s/" SNAME "-" VERSION ".tbz2 | /bin/tar -C /harddisk -xvjf -", url);
- }
-
- if (installtype == CDROM_INSTALL) {
- snprintf(commandstring, STRING_SIZE,
- "/bin/tar -C /harddisk -xvjf /cdrom/" SNAME "-" VERSION ".tbz2");
- }
+ snprintf(commandstring, STRING_SIZE,
+ "/bin/tar -C /harddisk -xvjf /cdrom/" SNAME "-" VERSION ".tbz2");
if (runcommandwithprogress(60, 4, title, commandstring, INST_FILECOUNT,
ctr[TR_INSTALLING_FILES]))
chmod("/harddisk/boot/grub/grubbatch", S_IXUSR | S_IRUSR | S_IXGRP | S_IRGRP | S_IXOTH | S_IROTH);
snprintf(commandstring, STRING_SIZE,
- "/sbin/chroot /harddisk /boot/grub/grubbatch");
+ "/sbin/chroot /harddisk /usr/sbin/grub-install --no-floppy %s", hdparams.devnode_disk);
if (runcommandwithstatus(commandstring, ctr[TR_INSTALLING_GRUB])) {
errorbox(ctr[TR_UNABLE_TO_INSTALL_GRUB]);
goto EXIT;
+++ /dev/null
-/* SmoothWall install program.
- *
- * This program is distributed under the terms of the GNU General Public
- * Licence. See the file COPYING for details.
- *
- * (c) Lawrence Manning, 2001
- * Stuff for downloading the smoothwall tarball using wget.
- *
- */
-
-#include "install.h"
-
-extern FILE *flog;
-extern char *mylog;
-
-extern char **ctr;
-
-static int got_url = 0;
-
-char url[STRING_SIZE] = "http://";;
-
-static int gettarballurl(char *url, char *message);
-
-int checktarball(char *file, char *message)
-{
- int done;
- int tries = 0;
- char commandstring[STRING_SIZE];
-
- done = 0;
- while (!done)
- {
- if (!got_url && gettarballurl(url, message) != 1)
- return 0;
-
- /* remove any successive /'s */
- while (url[strlen(url)-1] == '/') { url[strlen(url)-1] = '\0'; }
-
- snprintf(commandstring, STRING_SIZE, "/bin/wget -q --spider -O /dev/null %s/%s", url, file);
- if (!(runcommandwithstatus(commandstring, ctr[TR_CHECKING])))
- {
- done = 1;
- got_url = 1;
- }
- else
- {
- errorbox(ctr[TR_FAILED_TO_FIND]);
- got_url = 0;
- if (tries == 3)
- return 1; /* failure */
- }
- tries++;
- }
-
- return 0;
-}
-
-static int gettarballurl(char *url, char *message)
-{
- char *values[] = { url, NULL }; /* pointers for the values. */
- struct newtWinEntry entries[] =
- { { "", &values[0], 0,}, { NULL, NULL, 0 } };
- char title[STRING_SIZE];
- int rc;
-
- sprintf (title, "%s %s - %s", NAME, VERSION, SLOGAN);
- rc = newtWinEntries(title, message,
- 60, 5, 5, 50, entries, ctr[TR_OK], ctr[TR_CANCEL], NULL);
-
- strncpy(url, values[0], STRING_SIZE);
-
- return rc;
-}
+++ /dev/null
-/* SmoothWall install program.
- *
- * This program is distributed under the terms of the GNU General Public
- * Licence. See the file COPYING for details.
- *
- * (c) Lawrence Manning, 2001
- * Contains stuff related to firing up the network card, including a crude
- * autodector.
- *
- */
-
-#include "install.h"
-
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-
-extern FILE *flog;
-extern char *mylog;
-
-extern char **ctr;
-
-//extern struct nic nics[];
-//extern struct knic knics[];
-
-int networkmenu(struct keyvalue *ethernetkv)
-{
- int rc;
- char driver[STRING_SIZE] = "";
- char driveroptions[STRING_SIZE] = "";
- int result = 0;
- char commandstring[STRING_SIZE];
- char address[STRING_SIZE], netmask[STRING_SIZE];
- int done;
- char description[1000];
- char message[1000];
- char title[STRING_SIZE];
- done = 0;
-
- while (!done)
- {
- rc = newtWinTernary(ctr[TR_CONFIGURE_NETWORKING], ctr[TR_PROBE],
- ctr[TR_SELECT], ctr[TR_CANCEL], ctr[TR_CONFIGURE_NETWORKING_LONG]);
-
- if (rc == 0 || rc == 1)
- {
- probecards(driver, driveroptions);
- if (!strlen(driver))
- errorbox(ctr[TR_PROBE_FAILED]);
- else
- {
- //findnicdescription(driver, description);
- sprintf (title, "%s v%s - %s", NAME, VERSION, SLOGAN);
- sprintf(message, ctr[TR_FOUND_NIC], NAME, description);
- newtWinMessage(title, ctr[TR_OK], message);
- }
- }
- else
- done = 1;
-
- if (strlen(driver))
- done = 1;
- }
-
- if (!strlen(driver))
- goto EXIT;
-
- /* Default is a GREEN nic only. */
- /* Smoothie is not untarred yet, so we have to delay actually writing the
- * settings till later. */
- replacekeyvalue(ethernetkv, "CONFIG_TYPE", "0");
- replacekeyvalue(ethernetkv, "GREEN_DEV", "eth0");
- replacekeyvalue(ethernetkv, "GREEN_DISPLAYDRIVER", driver);
-
- if (!(changeaddress(ethernetkv, "GREEN", 0, "")))
- goto EXIT;
-
- strcpy(address, ""); findkey(ethernetkv, "GREEN_ADDRESS", address);
- strcpy(netmask, ""); findkey(ethernetkv, "GREEN_NETMASK", netmask);
-
- snprintf(commandstring, STRING_SIZE, "/sbin/ifconfig eth0 %s netmask %s up",
- address, netmask);
- if (mysystem(commandstring))
- {
- errorbox(ctr[TR_INTERFACE_FAILED_TO_COME_UP]);
- goto EXIT;
- }
-
- result = 1;
-
-EXIT:
-
- return result;
-}