Subject: port-i386/26040: netbsd image with embedded root, boot problem
To: None <gnats-bugs@gnats.NetBSD.org>
From: None <J.Pilipovic@flarion.com>
List: netbsd-bugs
Date: 06/24/2004 18:26:16
>Number:         26040
>Category:       port-i386
>Synopsis:       netbsd image with embedded root,  boot problem
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    port-i386-maintainer
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Thu Jun 24 18:27:00 UTC 2004
>Closed-Date:
>Last-Modified:
>Originator:     Josip  Pilipovic
>Release:        NetBSD2.0_Beta
>Organization:
Flaruin
>Environment:
jnetbsd2# uname -a
NetBSD jnetbsd2 2.0_BETA NetBSD 2.0_BETA (FLARION) #0: Sun Jun 20 00:03:41 EDT 2004  root@superlight:/usr/work/kroberts/netbsd2/sys/arch/i386/compile/obj/FLARION i386

>Description:
Activated ram disk options. Build kernel with root ram disk embedded in netbsd.ram image.
Move netbsd.ram to root directory. Reboot wait till netBSD header come 
up, press space.
On prompt issue command
>How-To-Repeat:
In configuration file activate options
options     MEMORY_DISK_HOOKS
options     MEMORY_DISK_IS_ROOT         
options     MEMORY_DISK_SERVER=1        
options     MEMORY_DISK_ROOT_SIZE=16384  # 8Meg
options     MEMORY_RBFLAGS=0      
 
Build kernel run crunchgen and build  obj exe. Created ramdirectory. Populated directory with needed files.
run
jnetbsd2# makefs -s 8m -t ffs crunch.image ramdirectory
jnetbsd2# mdsetimage netbsd.ram crunch.image
move netbsd.ram to root directory. Reboot wait till netBSD header come 
up, press space.
On prompt issue command
>Fix:
Not at this time!!!!!
>Release-Note:
>Audit-Trail:
>Unformatted:
 >boot netbsd.ram
 
 62244676+8509708
 read text: input/output error ........
 .....
 
 I did some preliminary investigation here are results:
 
 Activate -DDEBUG_MEMSIZE in Makefile.boot. Rebuild secondary boot file
 modified diagnostic in loadfile_elf32.c
 
 PROGRESS(("%d fs 0x%x offs 0x%x vadd 0x%x ms 0x%x \n",i, (u_long)phdr[i].p_filesz,(u_long)phdr[i].p_offset, (u_long)phdr[i].p_vaddr, (u_long)phdr[i].p_memsz));
  
   if (lseek(fd, phdr[i].p_offset, SEEK_SET) == -1)  { 
                                 WARN(("lseek text"));
                                 FREE(phdr, sz);
                                 return 1;
                         }
  if (READ(fd, phdr[i].p_vaddr, phdr[i].p_filesz) !=
                             (ssize_t)phdr[i].p_filesz)  {
                         WARN(("\nread text"));
                         FREE(phdr, sz);
                         return 1; 
                   }
 
 
 
 Move boot to /. Reboot repeat above steps and here is printout
 
 extmem1:fc00k
 extmem2:3c00k + 3ba80k
 mementry: (0) 0      0 a0000   0  1
 mementry: (1) f0000  0 100000  0  2
 mementry: (3) a00000 0 fdae000 0  1
 mementry: (4) feae000 0 52000  0  2
 mementry: (5) ff00000 0 100000 0  2
 mementry: (6) ffb0000 0 500000 0  2
 
 
 0 fs 0x5f4944 offs 0x1000 vadd 0xc0100000 ms 0x5f4944
 1 fs 0x81d90c offs 0x5f4944 vadd 0xc06f5960 ms 0x89d748 
 
 Same error message. It looks that pread() is failing. There is
 enough memory (256M!!!  here is netbsd.ram file data:
 
 jnetbsd2# ls -aslg /netbsd.ram
 30304 -rwxr-xr-x  1 root  wheel  15503284 Jun 24 15:33 /netbsd.ram*
 jnetbsd2# file /netbsd.ram
 /netbsd.ram: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, not stripped
 jnetbsd2# readelf -S /netbsd.ram
 There are 15 section headers, starting at offset 0xe2c9e8:
 
 Section Headers:
   [Nr] Name    Type            Addr     Off    Size   ES Flg Lk Inf Al
   [ 0]         NULL            00000000 000000 000000 00      0   0  0
   [ 1] .text   PROGBITS        c0100000 001000 437450 00  AX  0   0 16
   [ 2] .rodata PROGBITS        c0537460 438460 128fed 00   A  0   0 32
   [ 3] .rodata.str1.1  PROGBITS c066044d 56144d 034787 01 AMS  0   0  1
   [ 4] .rodata.str1.32 PROGBITS c0694be0 595be0 05fb13 01 AMS  0   0 32
   [ 5] link_set_malloc_t PROGBITS c06f46f4 5f56f4 000160 00 A  0   0  4
   [ 6] link_set_sysctl_f PROGBITS c06f4854 5f5854 0000c0 00 A  0   0  4
   [ 7] link_set_evcnts PROGBITS c06f4914 5f5914 000030 00   A  0   0  4
   [ 8] .data           PROGBITS c06f5960 5f5960 81d90c 00  WA  0   0 32
   [ 9] .bss            NOBITS   c0f13280 e13280 07fe28 00  WA  0   0 32
   [10] .comment       PROGBITS  00000000 e13280 00ad7c 00      0   0  1
   [11] .ident          PROGBITS 00000000 e1dffc 00e94c 00      0   0  1
   [12] .shstrtab       STRTAB 00000000 e2c948 00009f 00      0   0  1
   [13] .symtab         SYMTAB  00000000 e2cc40 052590 10     14 2109  4
   [14] .strtab         STRTAB  00000000 e7f1d0 049de4 00      0   0  1
 Key to Flags:
 
 
  
 
 
 
 
 
 >boot netbsd.ram