1.3.61 problems, all the doc available (minimal)

lilo (TaRDiS@mail.utexas.edu)
Wed, 14 Feb 1996 17:32:26 -0600 (CST)


I'm experiencing some problems with 1.3.61. Discussions with
pfnguyen@netcom.com, who has tried 1.3.63 and had similar problems, suggest
that this particular set of problems has, perhaps, not yet been resolved.

(1) System running X freezes. For obvious reasons (all I can do is reset),
no problem documentation is available. This seems to be happening
several times a day. Contrast: my system, running kernel 1.3.42, was
up and connected to the net when we went on vacation. It stayed up
for three weeks and was pretty functional when we came back. So, you
can see that a Linux kernel that crashes in less than a month obviously
has something wrong with it.... ;)

(2) Situation in which I lose most of my network function. Pings still
work, and xntpd works. IRC and POP do not. The last time this
happened, I did a tcpdump and discovered lots of checksum errors, none
of them on ntp traffic. It looked as if ALL of my TCP traffic came
in with checksum errors. I'd start up an IRC client and get a timeout
on each server to which it tried to connect. Unfortunately, I did not
manage to capture the output.

Anyway, as you can see I have minimum documentation, yet I thought it would
be a good idea to mention the problems. Things are probably not ready for
prime-time. Anyone who has any suggestions on how to capture error
information for case (1), please speak up. :)

What follows is my /usr/src/linux/.config, for reference. After that, the
local patches I'm running, all of which are pretty old and stable and none
of which is any major consequence....

:) lilo

#
# Automatically generated make config: don't edit
#

#
# Loadable module support
#
CONFIG_MODULES=y
CONFIG_MODVERSIONS=y
CONFIG_KERNELD=y

#
# General setup
#
# CONFIG_MATH_EMULATION is not set
CONFIG_NET=y
# CONFIG_MAX_16M is not set
# CONFIG_PCI is not set
CONFIG_SYSVIPC=y
CONFIG_BINFMT_AOUT=m
CONFIG_BINFMT_ELF=y
CONFIG_KERNEL_ELF=y
# CONFIG_M386 is not set
CONFIG_M486=y
# CONFIG_M586 is not set
# CONFIG_M686 is not set

#
# Block devices
#
CONFIG_BLK_DEV_FD=m
CONFIG_BLK_DEV_RAM=m
CONFIG_ST506=y

#
# Please see drivers/block/README.ide for help/info on IDE drives
#
# CONFIG_BLK_DEV_HD is not set
CONFIG_BLK_DEV_IDE=y
CONFIG_BLK_DEV_IDECD=y
# CONFIG_BLK_DEV_IDETAPE is not set
CONFIG_BLK_DEV_RZ1000=y
CONFIG_BLK_DEV_CMD640=y
# CONFIG_IDE_CHIPSETS is not set
# CONFIG_BLK_DEV_XD is not set

#
# Networking options
#
CONFIG_FIREWALL=y
CONFIG_NET_ALIAS=y
CONFIG_INET=y
CONFIG_IP_FORWARD=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_FIREWALL=y
CONFIG_IP_ACCT=y
CONFIG_NET_IPIP=m
CONFIG_IP_FIREWALL_VERBOSE=y
CONFIG_IP_MASQUERADE=y
# CONFIG_IP_MROUTE is not set
CONFIG_IP_ALIAS=m

#
# (it is safe to leave these untouched)
#
# CONFIG_INET_PCTCP is not set
CONFIG_INET_RARP=m
# CONFIG_NO_PATH_MTU_DISCOVERY is not set
CONFIG_TCP_NAGLE_OFF=y
CONFIG_IP_NOSR=y
CONFIG_SKB_LARGE=y

#
#
#
# CONFIG_IPX is not set
# CONFIG_ATALK is not set
# CONFIG_AX25 is not set
CONFIG_NETLINK=y
CONFIG_RTNETLINK=y

#
# SCSI support
#
CONFIG_SCSI=m

#
# SCSI support type (disk, tape, CDrom)
#
CONFIG_BLK_DEV_SD=m
CONFIG_CHR_DEV_ST=m
CONFIG_BLK_DEV_SR=m
CONFIG_CHR_DEV_SG=m

#
# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
#
CONFIG_SCSI_MULTI_LUN=y
CONFIG_SCSI_CONSTANTS=y

#
# SCSI low-level drivers
#
CONFIG_SCSI_ADVANSYS=m
CONFIG_SCSI_AHA152X=m
CONFIG_SCSI_AHA1542=m
CONFIG_SCSI_AHA1740=m
CONFIG_SCSI_AIC7XXX=m
CONFIG_SCSI_BUSLOGIC=m
CONFIG_SCSI_EATA_DMA=m
CONFIG_SCSI_EATA_PIO=m
CONFIG_SCSI_U14_34F=m
CONFIG_SCSI_FUTURE_DOMAIN=m
CONFIG_SCSI_GENERIC_NCR5380=m
# CONFIG_SCSI_GENERIC_NCR53C400 is not set
CONFIG_SCSI_G_NCR5380_PORT=y
# CONFIG_SCSI_G_NCR5380_MEM is not set
CONFIG_SCSI_IN2000=m
CONFIG_SCSI_PAS16=m
CONFIG_SCSI_QLOGIC=m
CONFIG_SCSI_SEAGATE=m
CONFIG_SCSI_T128=m
CONFIG_SCSI_ULTRASTOR=m
CONFIG_SCSI_7000FASST=m
CONFIG_SCSI_EATA=m
CONFIG_SCSI_NCR53C406A=m
# CONFIG_SCSI_AM53C974 is not set

#
# Network device support
#
CONFIG_NETDEVICES=y
CONFIG_DUMMY=m
CONFIG_SLIP=m
CONFIG_SLIP_COMPRESSED=y
# CONFIG_SLIP_SMART is not set
CONFIG_PPP=m

#
# CCP compressors for PPP are only built as modules.
#
CONFIG_SCC=m
CONFIG_PLIP=m
CONFIG_EQUALIZER=m
CONFIG_NET_ALPHA=y
CONFIG_NET_VENDOR_SMC=y
CONFIG_WD80x3=m
CONFIG_ULTRA=m
# CONFIG_LANCE is not set
CONFIG_NET_VENDOR_3COM=y
CONFIG_EL1=m
CONFIG_EL2=m
CONFIG_ELPLUS=m
CONFIG_EL16=m
CONFIG_EL3=m
CONFIG_VORTEX=m
CONFIG_NET_ISA=y
CONFIG_E2100=m
CONFIG_DEPCA=m
CONFIG_EWRK3=m
# CONFIG_SEEQ8005 is not set
CONFIG_AT1700=m
CONFIG_EEXPRESS_PRO=m
CONFIG_EEXPRESS=m
# CONFIG_NI52 is not set
# CONFIG_NI65 is not set
CONFIG_WAVELAN=m
CONFIG_ETH16I=m
CONFIG_HPLAN_PLUS=m
CONFIG_HPLAN=m
CONFIG_HP100=m
CONFIG_NE2000=m
# CONFIG_SK_G16 is not set
CONFIG_NET_EISA=y
CONFIG_AC3200=m
CONFIG_APRICOT=m
CONFIG_DE4X5=m
# CONFIG_ZNET is not set
CONFIG_NET_POCKET=y
# CONFIG_ATP is not set
CONFIG_DE600=m
CONFIG_DE620=m
CONFIG_TR=y
CONFIG_IBMTR=m
CONFIG_ARCNET=m

#
# CD-ROM drivers (not for SCSI or IDE/ATAPI drives)
#
CONFIG_CD_NO_IDESCSI=y
CONFIG_CDU31A=m
CONFIG_MCD=m
CONFIG_MCDX=m
CONFIG_SBPCD=m
CONFIG_AZTCD=m
CONFIG_CDU535=m
CONFIG_GSCD=m
CONFIG_CM206=m
CONFIG_OPTCD=m
CONFIG_SJCD=m

#
# Filesystems
#
CONFIG_QUOTA=y
CONFIG_MINIX_FS=m
CONFIG_EXT_FS=m
CONFIG_EXT2_FS=y
CONFIG_XIA_FS=m
CONFIG_FAT_FS=m
CONFIG_MSDOS_FS=m
CONFIG_VFAT_FS=m
CONFIG_UMSDOS_FS=m
CONFIG_PROC_FS=y
CONFIG_NFS_FS=m
CONFIG_SMB_FS=m
CONFIG_ISO9660_FS=m
CONFIG_HPFS_FS=m
CONFIG_SYSV_FS=m

#
# Character devices
#
CONFIG_WD7600_SERIAL=y
CONFIG_WD7600_SCREEN=y
CONFIG_CYCLADES=m
# CONFIG_STALDRV is not set
CONFIG_PRINTER=m
CONFIG_BUSMOUSE=m
CONFIG_PSMOUSE=m
CONFIG_MS_BUSMOUSE=m
CONFIG_ATIXL_BUSMOUSE=m
# CONFIG_QIC02_TAPE is not set
# CONFIG_APM is not set
CONFIG_WATCHDOG=y
# CONFIG_WDT is not set
CONFIG_SOFT_WATCHDOG=y

#
# Sound
#
CONFIG_SOUND=m

#
# Kernel hacking
#
# CONFIG_PROFILE is not set

--- linux/drivers/char/console.c Fri Dec 22 00:51:07 1995
+++ linux/drivers/char/console.c.NEW Fri Feb 9 12:52:21 1996
@@ -1139,14 +1139,14 @@
bell_pitch = (par[1] < 20 || par[1] > 32767) ?
0 : 1193180 / par[1];
else
- bell_pitch = 0x637;
+ bell_pitch = 10847;
break;
case 11: /* set bell duration in msec */
if (npar >= 1)
bell_duration = (par[1] < 2000) ?
par[1]*HZ/1000 : 0;
else
- bell_duration = HZ/8;
+ bell_duration = HZ/6;
break;
case 12: /* bring specified console to the front */
if (par[1] >= 1 && vc_cons_allocated(par[1]-1))
@@ -1318,8 +1318,8 @@
tab_stop[3] =
tab_stop[4] = 0x01010101;

- bell_pitch = 0x637;
- bell_duration = HZ/8;
+ bell_pitch = 10847;
+ bell_duration = HZ/6;

gotoxy(currcons,0,0);
save_cur(currcons);
--- linux/drivers/char/lp.c Thu Nov 30 06:03:38 1995
+++ linux/drivers/char/lp.c.NEW Fri Feb 9 12:51:52 1996
@@ -32,9 +32,9 @@
* if you have more than 3 printers, remember to increase LP_NO
*/
struct lp_struct lp_table[] = {
- { 0x3bc, 0, 0, LP_INIT_CHAR, LP_INIT_TIME, LP_INIT_WAIT, NULL, NULL, 0, 0, 0, {0} },
+ { 0x278, 7, 0, LP_INIT_CHAR, LP_INIT_TIME, LP_INIT_WAIT, NULL, NULL, 0, 0, 0, {0} },
{ 0x378, 0, 0, LP_INIT_CHAR, LP_INIT_TIME, LP_INIT_WAIT, NULL, NULL, 0, 0, 0, {0} },
- { 0x278, 0, 0, LP_INIT_CHAR, LP_INIT_TIME, LP_INIT_WAIT, NULL, NULL, 0, 0, 0, {0} },
+ { 0x3bc, 0, 0, LP_INIT_CHAR, LP_INIT_TIME, LP_INIT_WAIT, NULL, NULL, 0, 0, 0, {0} },
};
#define LP_NO 3

--- linux/arch/i386/defconfig Fri Feb 9 00:24:31 1996
+++ linux/arch/i386/defconfig.NEW Fri Feb 9 12:58:55 1996
@@ -131,6 +131,8 @@
#
# Character devices
#
+CONFIG_WD7600_SERIAL=y
+CONFIG_WD7600_SCREEN=y
# CONFIG_CYCLADES is not set
# CONFIG_STALDRV is not set
# CONFIG_PRINTER is not set
--- linux/drivers/char/Config.in Wed Feb 7 00:55:35 1996
+++ linux/drivers/char/Config.in.NEW Fri Feb 9 12:57:18 1996
@@ -4,6 +4,8 @@
mainmenu_option next_comment
comment 'Character devices'

+bool 'WD7600 serial-chip 16550A compatibility' CONFIG_WD7600_SERIAL
+bool 'WD7600 console screen saver mode' CONFIG_WD7600_SCREEN
tristate 'Cyclades async mux support' CONFIG_CYCLADES
bool 'Stallion multiport serial support' CONFIG_STALDRV
if [ "$CONFIG_STALDRV" = "y" ]; then
--- linux/drivers/char/console.c Fri Dec 22 00:51:07 1995
+++ linux/drivers/char/console.c.NEW Fri Feb 9 12:57:18 1996
@@ -168,6 +168,9 @@
unsigned long default_font_height; /* Height of default screen font */
int video_font_is_default = 1;
static unsigned short console_charmask = 0x0ff;
+#ifdef CONFIG_WD7600_SCREEN
+static int wd7600_screen = 0; /* Is wd7600 screen power-saver available? */
+#endif

unsigned short *vc_scrbuf[MAX_NR_CONSOLES];

@@ -2058,6 +2061,15 @@
display_desc, video_num_columns, video_num_lines,
MIN_NR_CONSOLES, (MIN_NR_CONSOLES == 1) ? "" : "s",
MAX_NR_CONSOLES);
+#ifdef CONFIG_WD7600_SCREEN
+ outb(0xDA, 0xF073);
+ if ( ( (unsigned) (inw_p(0xFC72) ^ inw_p(0xFC72)) ) >> 15) {
+ outb(0xFF, 0x8072);
+ outb(0xFF, 0xF073);
+ wd7600_screen=1;
+ printk("WD7600 screen-saver mode enabled.\n");
+ }
+#endif

/*
* can't register TGA yet, because PCI bus probe has *not* taken
@@ -2114,7 +2126,15 @@
console_blanked = fg_console + 1;

if(!nopowersave)
+#ifdef CONFIG_WD7600_SCREEN
+ if (wd7600_screen) {
+ outb(0xDA, 0xF073);
+ outb(0x00, 0x8072);
+ outb(0xFF, 0xF073);
+ }
+#else
vesa_blank();
+#endif
}

void do_unblank_screen(void)
@@ -2159,7 +2179,15 @@
if (resetorg)
__set_origin(blank__origin);

+#ifdef CONFIG_WD7600_SCREEN
+ if (wd7600_screen) {
+ outb(0xDA, 0xF073);
+ outb(0xFF, 0x8072);
+ outb(0xFF, 0xF073);
+ }
+#else
vesa_unblank();
+#endif
}

/*
--- linux/drivers/char/serial.c Wed Feb 7 00:55:36 1996
+++ linux/drivers/char/serial.c.NEW Fri Feb 9 12:57:19 1996
@@ -2680,6 +2680,20 @@

show_serial_version();

+#ifdef CONFIG_WD7600_SERIAL
+ {
+ int addr_select = inb(0x37B) & 0xF8;
+ outb(0xDA, 0xF073);
+ if ( ( (unsigned) (inw_p(0xFC72) ^ inw_p(0xFC72)) ) >> 15) {
+ outb(0xFF, 0xF073);
+ outb(addr_select | 0x05, 0x37B);
+ outb(0x01, 0x37F);
+ outb(addr_select | 0x07, 0x37B);
+ printk("WD7600 16550-compatibility mode enabled.\n");
+ }
+ }
+#endif
+
/* Initialize the tty_driver structure */

memset(&serial_driver, 0, sizeof(struct tty_driver));