backport some fixes from the trunk to the 3.1.3 branch, to be 3.1.3b.
most notably unbreaks floppy driver.
This commit is contained in:
parent
818b1a2741
commit
6ec8998639
@ -128,6 +128,6 @@ char **argv;
|
|||||||
sync();
|
sync();
|
||||||
|
|
||||||
reboot(flag, monitor_code, strlen(monitor_code));
|
reboot(flag, monitor_code, strlen(monitor_code));
|
||||||
fprintf(stderr, "%s: reboot(): %s\n", strerror(errno));
|
fprintf(stderr, "%s: reboot(): %s\n", prog, strerror(errno));
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
@ -130,10 +130,10 @@ static void el3_write_fifo(dpeth_t * dep, int pktsize)
|
|||||||
bytes = iovp->iod_iovec[ix].iov_size; /* Size of buffer */
|
bytes = iovp->iod_iovec[ix].iov_size; /* Size of buffer */
|
||||||
if (bytes > pktsize) bytes = pktsize;
|
if (bytes > pktsize) bytes = pktsize;
|
||||||
/* Writes from user buffer to Tx FIFO */
|
/* Writes from user buffer to Tx FIFO */
|
||||||
r= sys_safe_insb(dep->de_data_port, iovp->iod_proc_nr,
|
r= sys_safe_outsb(dep->de_data_port, iovp->iod_proc_nr,
|
||||||
iovp->iod_iovec[ix].iov_grant, 0, bytes);
|
iovp->iod_iovec[ix].iov_grant, 0, bytes);
|
||||||
if (r != OK)
|
if (r != OK)
|
||||||
panic(__FILE__, "el3_write_fifo: sys_safe_insb failed", r);
|
panic(__FILE__, "el3_write_fifo: sys_safe_outsb failed", r);
|
||||||
|
|
||||||
if (++ix >= IOVEC_NR) { /* Next buffer of IO vector */
|
if (++ix >= IOVEC_NR) { /* Next buffer of IO vector */
|
||||||
dp_next_iovec(iovp);
|
dp_next_iovec(iovp);
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
/*
|
/*
|
||||||
** File: eth.c Version 1.00, Jan. 14, 1997
|
** File: dp.c Version 1.01, Oct. 17, 2007
|
||||||
|
** Original: eth.c Version 1.00, Jan. 14, 1997
|
||||||
**
|
**
|
||||||
** Author: Giovanni Falzoni <gfalzoni@inwind.it>
|
** Author: Giovanni Falzoni <gfalzoni@inwind.it>
|
||||||
**
|
**
|
||||||
@ -50,6 +51,11 @@
|
|||||||
** +------------+---------+---------+---------------+
|
** +------------+---------+---------+---------------+
|
||||||
**
|
**
|
||||||
** $Id$
|
** $Id$
|
||||||
|
**
|
||||||
|
** 2007-10-17: modified by jfdsmit@gmail.com
|
||||||
|
** added a third argument to the reply() function because not
|
||||||
|
** every reply should be of DL_TASK_REPLY (one should be
|
||||||
|
** DL_STAT_REPLY)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "drivers.h"
|
#include "drivers.h"
|
||||||
@ -92,10 +98,10 @@ static char DevName[] = "eth#?";
|
|||||||
static void do_getname(message *mp);
|
static void do_getname(message *mp);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Name: void reply(dpeth_t *dep, int err)
|
** Name: void reply(dpeth_t *dep, int err, int m_type)
|
||||||
** Function: Fills a DL_TASK_REPLY reply message and sends it.
|
** Function: Fills a reply message and sends it.
|
||||||
*/
|
*/
|
||||||
static void reply(dpeth_t * dep, int err)
|
static void reply(dpeth_t * dep, int err, int m_type)
|
||||||
{
|
{
|
||||||
message reply;
|
message reply;
|
||||||
int status = FALSE;
|
int status = FALSE;
|
||||||
@ -103,7 +109,7 @@ static void reply(dpeth_t * dep, int err)
|
|||||||
if (dep->de_flags & DEF_ACK_SEND) status |= DL_PACK_SEND;
|
if (dep->de_flags & DEF_ACK_SEND) status |= DL_PACK_SEND;
|
||||||
if (dep->de_flags & DEF_ACK_RECV) status |= DL_PACK_RECV;
|
if (dep->de_flags & DEF_ACK_RECV) status |= DL_PACK_RECV;
|
||||||
|
|
||||||
reply.m_type = DL_TASK_REPLY;
|
reply.m_type = m_type;
|
||||||
reply.DL_PORT = dep - de_table;
|
reply.DL_PORT = dep - de_table;
|
||||||
reply.DL_PROC = dep->de_client;
|
reply.DL_PROC = dep->de_client;
|
||||||
reply.DL_STAT = status /* | ((u32_t) err << 16) */;
|
reply.DL_STAT = status /* | ((u32_t) err << 16) */;
|
||||||
@ -423,7 +429,7 @@ static void do_vwrite_s(message * mp)
|
|||||||
} else if (dep->de_mode == DEM_SINK)
|
} else if (dep->de_mode == DEM_SINK)
|
||||||
dep->de_flags |= DEF_ACK_SEND;
|
dep->de_flags |= DEF_ACK_SEND;
|
||||||
|
|
||||||
reply(dep, OK);
|
reply(dep, OK, DL_TASK_REPLY);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -466,7 +472,7 @@ static void do_vread_s(message * mp)
|
|||||||
dep->de_flags &= NOT(DEF_STOPPED);
|
dep->de_flags &= NOT(DEF_STOPPED);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
reply(dep, OK);
|
reply(dep, OK, DL_TASK_REPLY);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -491,7 +497,7 @@ static void do_getstat_s(message * mp)
|
|||||||
(vir_bytes)&dep->de_stat,
|
(vir_bytes)&dep->de_stat,
|
||||||
(vir_bytes) sizeof(dep->de_stat), 0)) != OK)
|
(vir_bytes) sizeof(dep->de_stat), 0)) != OK)
|
||||||
panic(DevName, CopyErrMsg, rc);
|
panic(DevName, CopyErrMsg, rc);
|
||||||
reply(dep, OK);
|
reply(dep, OK, DL_STAT_REPLY);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -623,7 +629,7 @@ PUBLIC int main(int argc, char **argv)
|
|||||||
dep->de_int_pending = TRUE;
|
dep->de_int_pending = TRUE;
|
||||||
(*dep->de_interruptf) (dep);
|
(*dep->de_interruptf) (dep);
|
||||||
if (dep->de_flags & (DEF_ACK_SEND | DEF_ACK_RECV))
|
if (dep->de_flags & (DEF_ACK_SEND | DEF_ACK_RECV))
|
||||||
reply(dep, !OK);
|
reply(dep, !OK, DL_TASK_REPLY);
|
||||||
dep->de_int_pending = FALSE;
|
dep->de_int_pending = FALSE;
|
||||||
sys_irqenable(&dep->de_hook);
|
sys_irqenable(&dep->de_hook);
|
||||||
}
|
}
|
||||||
|
@ -85,7 +85,7 @@ int main(void)
|
|||||||
case BUSC_PCI_DEV_NAME_S: do_dev_name_s(&m); break;
|
case BUSC_PCI_DEV_NAME_S: do_dev_name_s(&m); break;
|
||||||
case BUSC_PCI_SLOT_NAME_S: do_slot_name_s(&m); break;
|
case BUSC_PCI_SLOT_NAME_S: do_slot_name_s(&m); break;
|
||||||
case BUSC_PCI_ACL: do_acl(&m); break;
|
case BUSC_PCI_ACL: do_acl(&m); break;
|
||||||
case PROC_EVENT: do_sig_handler(); break;
|
case PROC_EVENT: break;
|
||||||
default:
|
default:
|
||||||
printf("PCI: got message from %d, type %d\n",
|
printf("PCI: got message from %d, type %d\n",
|
||||||
m.m_source, m.m_type);
|
m.m_source, m.m_type);
|
||||||
|
@ -21,7 +21,7 @@ OBJ = printer.o
|
|||||||
all build: $(DRIVER)
|
all build: $(DRIVER)
|
||||||
$(DRIVER): $(OBJ)
|
$(DRIVER): $(OBJ)
|
||||||
$(CC) -o $@ $(LDFLAGS) $(OBJ) $(LIBS)
|
$(CC) -o $@ $(LDFLAGS) $(OBJ) $(LIBS)
|
||||||
install -S 8k $(DRIVER)
|
install $(DRIVER)
|
||||||
|
|
||||||
# install with other drivers
|
# install with other drivers
|
||||||
install: /usr/sbin/$(DRIVER)
|
install: /usr/sbin/$(DRIVER)
|
||||||
|
@ -90,7 +90,7 @@ PRIVATE int revive_status; /* revive status */
|
|||||||
PRIVATE int done_status; /* status of last output completion */
|
PRIVATE int done_status; /* status of last output completion */
|
||||||
PRIVATE int oleft; /* bytes of output left in obuf */
|
PRIVATE int oleft; /* bytes of output left in obuf */
|
||||||
PRIVATE char obuf[128]; /* output buffer */
|
PRIVATE char obuf[128]; /* output buffer */
|
||||||
PRIVATE char *optr; /* ptr to next char in obuf to print */
|
PRIVATE unsigned char *optr; /* ptr to next char in obuf to print */
|
||||||
PRIVATE int orig_count; /* original byte count */
|
PRIVATE int orig_count; /* original byte count */
|
||||||
PRIVATE int port_base; /* I/O port for printer */
|
PRIVATE int port_base; /* I/O port for printer */
|
||||||
PRIVATE int proc_nr; /* user requesting the printing */
|
PRIVATE int proc_nr; /* user requesting the printing */
|
||||||
@ -208,13 +208,16 @@ int safe; /* use virtual addresses or grant id's? */
|
|||||||
|
|
||||||
retries = MAX_ONLINE_RETRIES + 1;
|
retries = MAX_ONLINE_RETRIES + 1;
|
||||||
while (--retries > 0) {
|
while (--retries > 0) {
|
||||||
sys_inb(port_base + 1, &status);
|
if(sys_inb(port_base + 1, &status) != OK) {
|
||||||
|
printf("printer: sys_inb of %x failed\n", port_base+1);
|
||||||
|
panic(__FILE__,"sys_inb failed", NO_NUM);
|
||||||
|
}
|
||||||
if ((status & ON_LINE)) { /* printer online! */
|
if ((status & ON_LINE)) { /* printer online! */
|
||||||
prepare_output();
|
prepare_output();
|
||||||
do_printer_output();
|
do_printer_output();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
tickdelay(30); /* wait before retry */
|
tickdelay(HZ/2); /* wait before retry */
|
||||||
}
|
}
|
||||||
/* If we reach this point, the printer was not online in time. */
|
/* If we reach this point, the printer was not online in time. */
|
||||||
done_status = status;
|
done_status = status;
|
||||||
@ -331,16 +334,24 @@ PRIVATE void do_initialize()
|
|||||||
initialized = TRUE;
|
initialized = TRUE;
|
||||||
|
|
||||||
/* Get the base port for first printer. */
|
/* Get the base port for first printer. */
|
||||||
sys_vircopy(SELF, BIOS_SEG, LPT1_IO_PORT_ADDR,
|
if(sys_vircopy(SELF, BIOS_SEG, LPT1_IO_PORT_ADDR,
|
||||||
SELF, D, (vir_bytes) &port_base, LPT1_IO_PORT_SIZE);
|
SELF, D, (vir_bytes) &port_base, LPT1_IO_PORT_SIZE) != OK) {
|
||||||
sys_outb(port_base + 2, INIT_PRINTER);
|
panic(__FILE__, "do_initialize: sys_vircopy failed", NO_NUM);
|
||||||
tickdelay(1); /* easily satisfies Centronics minimum */
|
}
|
||||||
/* was 2 millisecs; now is ~17 millisecs */
|
if(sys_outb(port_base + 2, INIT_PRINTER) != OK) {
|
||||||
sys_outb(port_base + 2, PR_SELECT);
|
printf("printer: sys_outb of %x failed\n", port_base+2);
|
||||||
|
panic(__FILE__, "do_initialize: sys_outb init failed", NO_NUM);
|
||||||
|
}
|
||||||
|
tickdelay(HZ/20); /* easily satisfies Centronics minimum */
|
||||||
|
if(sys_outb(port_base + 2, PR_SELECT) != OK) {
|
||||||
|
printf("printer: sys_outb of %x failed\n", port_base+2);
|
||||||
|
panic(__FILE__, "do_initialize: sys_outb select failed", NO_NUM);
|
||||||
|
}
|
||||||
irq_hook_id = 0;
|
irq_hook_id = 0;
|
||||||
sys_irqsetpolicy(PRINTER_IRQ, 0, &irq_hook_id);
|
if(sys_irqsetpolicy(PRINTER_IRQ, 0, &irq_hook_id) != OK ||
|
||||||
sys_irqenable(&irq_hook_id);
|
sys_irqenable(&irq_hook_id) != OK) {
|
||||||
|
panic(__FILE__, "do_initialize: irq enabling failed", NO_NUM);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*==========================================================================*
|
/*==========================================================================*
|
||||||
@ -389,8 +400,13 @@ PRIVATE void do_printer_output()
|
|||||||
* when the printer is busy with a previous character, because the
|
* when the printer is busy with a previous character, because the
|
||||||
* interrupt status does not affect the printer.
|
* interrupt status does not affect the printer.
|
||||||
*/
|
*/
|
||||||
sys_outb(port_base + 2, PR_SELECT);
|
if(sys_outb(port_base + 2, PR_SELECT) != OK) {
|
||||||
sys_irqenable(&irq_hook_id);
|
printf("printer: sys_outb of %x failed\n", port_base+2);
|
||||||
|
panic(__FILE__,"sys_outb failed", NO_NUM);
|
||||||
|
}
|
||||||
|
if(sys_irqenable(&irq_hook_id) != OK) {
|
||||||
|
panic(__FILE__,"sys_irqenable failed", NO_NUM);
|
||||||
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -398,7 +414,10 @@ PRIVATE void do_printer_output()
|
|||||||
/* Loop to handle fast (buffered) printers. It is important that
|
/* Loop to handle fast (buffered) printers. It is important that
|
||||||
* processor interrupts are not disabled here, just printer interrupts.
|
* processor interrupts are not disabled here, just printer interrupts.
|
||||||
*/
|
*/
|
||||||
(void) sys_inb(port_base + 1, &status);
|
if(sys_inb(port_base + 1, &status) != OK) {
|
||||||
|
printf("printer: sys_inb of %x failed\n", port_base+1);
|
||||||
|
panic(__FILE__,"sys_inb failed", NO_NUM);
|
||||||
|
}
|
||||||
if ((status & STATUS_MASK) == BUSY_STATUS) {
|
if ((status & STATUS_MASK) == BUSY_STATUS) {
|
||||||
/* Still busy with last output. This normally happens
|
/* Still busy with last output. This normally happens
|
||||||
* immediately after doing output to an unbuffered or slow
|
* immediately after doing output to an unbuffered or slow
|
||||||
@ -406,15 +425,21 @@ PRIVATE void do_printer_output()
|
|||||||
* pr_restart, since they are not synchronized with printer
|
* pr_restart, since they are not synchronized with printer
|
||||||
* interrupts. It may happen after a spurious interrupt.
|
* interrupts. It may happen after a spurious interrupt.
|
||||||
*/
|
*/
|
||||||
sys_irqenable(&irq_hook_id);
|
if(sys_irqenable(&irq_hook_id) != OK) {
|
||||||
|
panic(__FILE__, "sys_irqenable failed\n", NO_NUM);
|
||||||
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if ((status & STATUS_MASK) == NORMAL_STATUS) {
|
if ((status & STATUS_MASK) == NORMAL_STATUS) {
|
||||||
/* Everything is all right. Output another character. */
|
/* Everything is all right. Output another character. */
|
||||||
pv_set(char_out[0], port_base, *optr++);
|
pv_set(char_out[0], port_base, *optr);
|
||||||
|
optr++;
|
||||||
pv_set(char_out[1], port_base+2, ASSERT_STROBE);
|
pv_set(char_out[1], port_base+2, ASSERT_STROBE);
|
||||||
pv_set(char_out[2], port_base+2, NEGATE_STROBE);
|
pv_set(char_out[2], port_base+2, NEGATE_STROBE);
|
||||||
sys_voutb(char_out, 3); /* request series of port outb */
|
if(sys_voutb(char_out, 3) != OK) {
|
||||||
|
/* request series of port outb */
|
||||||
|
panic(__FILE__, "sys_voutb failed\n", NO_NUM);
|
||||||
|
}
|
||||||
|
|
||||||
user_vir_d++;
|
user_vir_d++;
|
||||||
user_left--;
|
user_left--;
|
||||||
@ -422,7 +447,9 @@ PRIVATE void do_printer_output()
|
|||||||
/* Error. This would be better ignored (treat as busy). */
|
/* Error. This would be better ignored (treat as busy). */
|
||||||
done_status = status;
|
done_status = status;
|
||||||
output_done();
|
output_done();
|
||||||
sys_irqenable(&irq_hook_id);
|
if(sys_irqenable(&irq_hook_id) != OK) {
|
||||||
|
panic(__FILE__, "sys_irqenable failed\n", NO_NUM);
|
||||||
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -431,6 +458,8 @@ PRIVATE void do_printer_output()
|
|||||||
/* Finished printing chunk OK. */
|
/* Finished printing chunk OK. */
|
||||||
done_status = OK;
|
done_status = OK;
|
||||||
output_done();
|
output_done();
|
||||||
sys_irqenable(&irq_hook_id);
|
if(sys_irqenable(&irq_hook_id) != OK) {
|
||||||
|
panic(__FILE__, "sys_irqenable failed\n", NO_NUM);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -159,24 +159,38 @@ driver mfs
|
|||||||
|
|
||||||
driver printer
|
driver printer
|
||||||
{
|
{
|
||||||
io 408:2 # LPT1
|
io 378:4 # LPT1
|
||||||
40a:2 # LPT2
|
278:4 # LPT2
|
||||||
40c:2 # LPT3
|
|
||||||
40e:2 # LPT4
|
|
||||||
;
|
;
|
||||||
irq
|
irq
|
||||||
7 # PRINTER_IRQ
|
7 # PRINTER_IRQ
|
||||||
;
|
;
|
||||||
system
|
system
|
||||||
KILL # 6
|
KILL # 6
|
||||||
SETGRANT # 34
|
SETGRANT # 34
|
||||||
UMAP # 14
|
UMAP # 14
|
||||||
VIRCOPY # 15
|
VIRCOPY # 15
|
||||||
IRQCTL # 19
|
IRQCTL # 19
|
||||||
DEVIO # 21
|
DEVIO # 21
|
||||||
VDEVIO # 23
|
VDEVIO # 23
|
||||||
SAFECOPYFROM # 31
|
SAFECOPYFROM # 31
|
||||||
SAFECOPYTO # 32
|
SAFECOPYTO # 32
|
||||||
;
|
;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
driver dpeth
|
||||||
|
{
|
||||||
|
system
|
||||||
|
IRQCTL # 19
|
||||||
|
DEVIO # 21
|
||||||
|
SDEVIO # 22
|
||||||
|
SETALARM # 24
|
||||||
|
GETINFO # 26
|
||||||
|
SAFECOPYFROM # 31
|
||||||
|
SAFECOPYTO # 32
|
||||||
|
SETGRANT # 34
|
||||||
|
;
|
||||||
|
uid 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -228,6 +228,7 @@
|
|||||||
#define DL_CONF_REPLY (DL_RS_BASE + 20)
|
#define DL_CONF_REPLY (DL_RS_BASE + 20)
|
||||||
#define DL_TASK_REPLY (DL_RS_BASE + 21)
|
#define DL_TASK_REPLY (DL_RS_BASE + 21)
|
||||||
#define DL_NAME_REPLY (DL_RS_BASE + 22)
|
#define DL_NAME_REPLY (DL_RS_BASE + 22)
|
||||||
|
#define DL_STAT_REPLY (DL_RS_BASE + 23)
|
||||||
|
|
||||||
/* Field names for data link layer messages. */
|
/* Field names for data link layer messages. */
|
||||||
#define DL_PORT m2_i1
|
#define DL_PORT m2_i1
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
/* Minix release and version numbers. */
|
/* Minix release and version numbers. */
|
||||||
#define OS_RELEASE "3"
|
#define OS_RELEASE "3"
|
||||||
#define OS_VERSION "1.3a"
|
#define OS_VERSION "1.3b"
|
||||||
|
|
||||||
/* This file sets configuration parameters for the MINIX kernel, FS, and PM.
|
/* This file sets configuration parameters for the MINIX kernel, FS, and PM.
|
||||||
* It is divided up into two main sections. The first section contains
|
* It is divided up into two main sections. The first section contains
|
||||||
|
@ -59,8 +59,8 @@ PUBLIC int main(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
continue;
|
continue;
|
||||||
case PROC_EVENT:
|
case PROC_EVENT:
|
||||||
sig_handler();
|
result = EDONTREPLY;
|
||||||
continue;
|
break;
|
||||||
case FKEY_PRESSED:
|
case FKEY_PRESSED:
|
||||||
result = do_fkey_pressed(&m_in);
|
result = do_fkey_pressed(&m_in);
|
||||||
break;
|
break;
|
||||||
|
@ -127,8 +127,8 @@ char *argv[];
|
|||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
system("rm -rf DIR_18; mkdir DIR_18");
|
system("rm -rf DIR_17; mkdir DIR_17");
|
||||||
chdir("DIR_18");
|
chdir("DIR_17");
|
||||||
|
|
||||||
mask = (argc == 2 ? atoi(argv[1]) : 0xFFFF);
|
mask = (argc == 2 ? atoi(argv[1]) : 0xFFFF);
|
||||||
|
|
||||||
|
@ -10,9 +10,6 @@ rm /boot/image/*
|
|||||||
make install
|
make install
|
||||||
cp /boot/image/* /boot/image_big # Make big image accessible by this name
|
cp /boot/image/* /boot/image_big # Make big image accessible by this name
|
||||||
cp ../boot/boot /boot/boot
|
cp ../boot/boot /boot/boot
|
||||||
make clean
|
|
||||||
make image_small
|
|
||||||
cp image_small /boot
|
|
||||||
cd /usr/src
|
cd /usr/src
|
||||||
make clean
|
make clean
|
||||||
# Let man find the manpages
|
# Let man find the manpages
|
||||||
|
16
tools/mkboot
16
tools/mkboot
@ -183,12 +183,24 @@ cdfdboot)
|
|||||||
mkdir /mnt/boot
|
mkdir /mnt/boot
|
||||||
mkdir /mnt/boot/image
|
mkdir /mnt/boot/image
|
||||||
( cd /mnt/dev && sh /usr/src/commands/scripts/MAKEDEV.sh std )
|
( cd /mnt/dev && sh /usr/src/commands/scripts/MAKEDEV.sh std )
|
||||||
#cp -p image image_* /mnt/boot/image || exit 1
|
|
||||||
cp -p image /mnt/boot/image || exit 1
|
cp -p image /mnt/boot/image || exit 1
|
||||||
cp -p ../boot/boot /mnt/boot/boot || exit 1
|
cp -p ../boot/boot /mnt/boot/boot || exit 1
|
||||||
umount $dev || exit 1
|
umount $dev || exit 1
|
||||||
installboot -d $dev ../boot/bootblock boot/boot || exit 1
|
installboot -d $dev ../boot/bootblock boot/boot || exit 1
|
||||||
edparams $dev 'unset bootopts; unset servers; disable=inet; image=/boot/image/image; bootbig(1, Regular MINIX 3) { image=/boot/image/image ; boot } bootsmall(2, Small MINIX 3 (uses less memory)) { image=/boot/image/image_small ; boot } cdproberoot=1; ata_id_timeout=2; unset rootdev; unset leader; leader() { echo \n--- Welcome to MINIX 3. This is the boot monitor. ---\n\nChoose an option from the menu or press ESC if you need to do anything special.\nOtherwise I will boot with my defaults in 10 seconds.\n\n }; bootcd=1; main(){trap 10000 boot; menu; }; save' || exit
|
edparams $dev '
|
||||||
|
unset bootopts;
|
||||||
|
unset servers;
|
||||||
|
unset rootdev;
|
||||||
|
unset leader;
|
||||||
|
unset image;
|
||||||
|
disable=inet;
|
||||||
|
bootcd=1;
|
||||||
|
cdproberoot=1;
|
||||||
|
ata_id_timeout=2;
|
||||||
|
bootbig(1, Regular MINIX 3) { unset image; boot }
|
||||||
|
leader() { echo \n--- Welcome to MINIX 3. This is the boot monitor. ---\n\nChoose an option from the menu or press ESC if you need to do anything special.\nOtherwise I will boot with my defaults in 10 seconds.\n\n };
|
||||||
|
main(){trap 10000 boot; menu; };
|
||||||
|
save' || exit
|
||||||
|
|
||||||
# copy image
|
# copy image
|
||||||
dd if=$dev of=cdfdimage bs=8192 count=180
|
dd if=$dev of=cdfdimage bs=8192 count=180
|
||||||
|
@ -51,7 +51,6 @@ bios_wini=yes
|
|||||||
bios_remap_first=1
|
bios_remap_first=1
|
||||||
ramimagedev=c0d7p0s0
|
ramimagedev=c0d7p0s0
|
||||||
bootbig(1, Regular MINIX 3) { image=/boot/image_big; boot }
|
bootbig(1, Regular MINIX 3) { image=/boot/image_big; boot }
|
||||||
bootsmall(2, Small MINIX 3 (<16MB)) {image=/boot/image_small; boot }
|
|
||||||
main() { trap 10000 boot ; menu; }
|
main() { trap 10000 boot ; menu; }
|
||||||
save' | $RELEASEDIR/usr/bin/edparams $TMPDISK3
|
save' | $RELEASEDIR/usr/bin/edparams $TMPDISK3
|
||||||
|
|
||||||
@ -133,7 +132,7 @@ do
|
|||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
USRMB=400
|
USRMB=500
|
||||||
|
|
||||||
USRBLOCKS="`expr $USRMB \* 1024 \* 1024 / $BS`"
|
USRBLOCKS="`expr $USRMB \* 1024 \* 1024 / $BS`"
|
||||||
USRSECTS="`expr $USRMB \* 1024 \* 2`"
|
USRSECTS="`expr $USRMB \* 1024 \* 2`"
|
||||||
@ -232,6 +231,7 @@ mkdir -m 755 $RELEASEDIR/usr
|
|||||||
mkdir -m 1777 $RELEASEDIR/tmp
|
mkdir -m 1777 $RELEASEDIR/tmp
|
||||||
mount $TMPDISK2 $RELEASEDIR/tmp
|
mount $TMPDISK2 $RELEASEDIR/tmp
|
||||||
|
|
||||||
|
echo making /usr
|
||||||
mkfs -B $BS -b $USRBLOCKS $TMPDISK || exit
|
mkfs -B $BS -b $USRBLOCKS $TMPDISK || exit
|
||||||
echo " * Mounting $TMPDISK as $RELEASEDIR/usr"
|
echo " * Mounting $TMPDISK as $RELEASEDIR/usr"
|
||||||
mount $TMPDISK $RELEASEDIR/usr || exit
|
mount $TMPDISK $RELEASEDIR/usr || exit
|
||||||
@ -286,7 +286,7 @@ chmod -R u+w $RELEASEDIR/usr/lib
|
|||||||
if [ "$COPY" -ne 1 ]
|
if [ "$COPY" -ne 1 ]
|
||||||
then
|
then
|
||||||
echo " * Doing new svn export"
|
echo " * Doing new svn export"
|
||||||
REPO=https://gforge.cs.vu.nl/svn/minix/trunk/$SRC
|
REPO=https://gforge.cs.vu.nl/svn/minix/branches/r3.1.3
|
||||||
REVISION="`svn info $USERNAME $SVNREV $REPO | grep '^Revision: ' | awk '{ print $2 }'`"
|
REVISION="`svn info $USERNAME $SVNREV $REPO | grep '^Revision: ' | awk '{ print $2 }'`"
|
||||||
echo "Doing export of revision $REVISION from $REPO."
|
echo "Doing export of revision $REVISION from $REPO."
|
||||||
( cd $RELEASEDIR/usr && svn $USERNAME export -r$REVISION $REPO )
|
( cd $RELEASEDIR/usr && svn $USERNAME export -r$REVISION $REPO )
|
||||||
@ -326,7 +326,10 @@ if [ "$USB" -eq 0 ]
|
|||||||
then date >$RELEASEDIR/CD
|
then date >$RELEASEDIR/CD
|
||||||
fi
|
fi
|
||||||
echo " * Chroot build"
|
echo " * Chroot build"
|
||||||
|
cp chrootmake.sh $RELEASEDIR/usr/$SRC/tools/chrootmake.sh
|
||||||
chroot $RELEASEDIR "PATH=/$XBIN sh -x /usr/$SRC/tools/chrootmake.sh" || exit 1
|
chroot $RELEASEDIR "PATH=/$XBIN sh -x /usr/$SRC/tools/chrootmake.sh" || exit 1
|
||||||
|
# Copy built images for cd booting
|
||||||
|
cp $RELEASEDIR/boot/image_big image
|
||||||
echo " * Chroot build done"
|
echo " * Chroot build done"
|
||||||
echo " * Removing bootstrap files"
|
echo " * Removing bootstrap files"
|
||||||
rm -rf $RELEASEDIR/$XBIN
|
rm -rf $RELEASEDIR/$XBIN
|
||||||
@ -359,17 +362,9 @@ rm $RELEASEDIR/.x
|
|||||||
umount $TMPDISK || exit
|
umount $TMPDISK || exit
|
||||||
umount $TMPDISK2 || exit
|
umount $TMPDISK2 || exit
|
||||||
umount $TMPDISK3 || exit
|
umount $TMPDISK3 || exit
|
||||||
|
|
||||||
(cd ../boot && make)
|
(cd ../boot && make)
|
||||||
(cd .. && make depend)
|
|
||||||
make clean
|
|
||||||
SVNVAR=EXTRA_OPTS=-D_SVN_REVISION='\\\"'$REVISION'\\\"'
|
|
||||||
make "$SVNVAR" image || exit 1
|
|
||||||
mv image image_big
|
|
||||||
make clean
|
|
||||||
make "$SVNVAR" image_small || exit 1
|
|
||||||
dd if=$TMPDISK3 of=$ROOTIMAGE bs=$BS count=$ROOTBLOCKS
|
dd if=$TMPDISK3 of=$ROOTIMAGE bs=$BS count=$ROOTBLOCKS
|
||||||
# Prepare image and image_small for cdfdboot
|
|
||||||
mv image_big image
|
|
||||||
sh mkboot cdfdboot $TMPDISK3
|
sh mkboot cdfdboot $TMPDISK3
|
||||||
cp $IMAGE $CDFILES/bootflop.img
|
cp $IMAGE $CDFILES/bootflop.img
|
||||||
cp release/cd/* $CDFILES || true
|
cp release/cd/* $CDFILES || true
|
||||||
|
Loading…
x
Reference in New Issue
Block a user