Problems creating an install kernel for the hpcarm platform
"Jason Mitchell" <[email protected]> Sun, 1 Apr 2007 23:24:27 -0400
| Newsgroups | gmane.os.netbsd.devel.installation,gmane.os.netbsd.ports.hpcarm |
|---|---|
| Message-ID | <[email protected]> |
Hello, I'm trying to create an install kernel for the hpcarm platform and I'm running in to some difficulties. The hpcarm platform is a bit challenging in that the kernel (including embedded ram disk) can't be bigger than around 3.7Mbytes. If the kernel is too big it won't boot. On the hpcarm platform the NetBSD kernel is launched from WinCE using a program called hpcboot. If the kernel is too big hpcboot loads the kernel and then hangs -- there might be some output on the serial port, I'm not sure. This problem has been around in the hpcarm port since at least NetBSD 1.6. I've managed to create a kernel with a 3400block (1.7MByte) embedded RAM disk. I did this by stripping out most of the options and all but one network card. On the embedded ramdisk is a crunchgened binary. The kernel boots up, gives the "Enter pathname of shell or press RETURN for /bin/sh:" prompt, then tries to run .profile. .profile tries to mount the md0a slice read/write and gives the following error message: proc: table is full - increase kern.maxproc or NPROC mount_ffs: vfork: Resource temporarily unavailable If I run sysctl -w kern.maxproc=512 then try the mount again I get a uvm fault: uvm_fault(0xc0380e54, e59ff000, 2, 0) -> e Fatal kernel mode data abort: 'Translation Fault (S)' trapframe: 0xc2bdac54 FSR=c0491005, FAR=e59ff11c, spsr=a0000013 r0 =c2bb30c8, r1 =e59ff114, r2 =c2bb30e0, r3 =e59ff114 r4 =c0382120, r5 =c0000000, r6 =c2ba9544, r7 =00000000 r8 =c0000000, r9 =c2bdad60, r10=00000003, r11=c2bdacc0 r12=00000000, ssp=c2bdaca0, slr=c015efc8, pc =c015decc Stopped in pid 922.1 (gumby) at netbsd:pmap_alloc_11+0x1c: strne r3, [r1, #0x008] The uvm fault has the same first three lines and the same last line every time. Some but not all of the registers are the same too. If I recompile the kernel with MAXUSERS=32, then I get this message: UVM: pid 10 (sh), uid 0 killed: out of swap If I do a ps awux, there are 10 processes running. 7 are names with []'s around them (kernel processes?) and the three are init, sh, and ps awux. By the way, gumby is the name of my crunchgen binary. I tried recompiling a kernel with more memory (the default kernel using 32MBytes, but the machine I'm testing on has 64MBytes) and that produced no change. My current theory is that when I created the install kernel I commented out some necessary option. My other choice is that this is a problem with versions. The kernel is 3.0.2 (I couldn't get cross compiling tools to build for 3.0) while the crunchgened binary comes from 3.0. Also the machine I'm doing the cross compiling on is an i386 running NetBSD 2.0.2. I've tried the kernel on multiple machines with no change in results. Also the standard 3.0 kernel boots fine on an hpcarm box and NetBSD 3.0 runs without complaint. I'm attaching my kernel config. Please let me know if there's some option I need to enable or if there's some other fault in my set up. I'm setting this to tech-install, because I don't have any reason to believe this problem is specific to hpcarm. If there's another list I should send this to, please let me know. Thanks, Jason M. INSTALLv8 # $NetBSD: JORNADA720,v 1.41.2.1 2005/07/18 21:14:54 riz Exp $ # # JORNADA -- Windows-CE based jornada 720 # include "arch/hpcarm/conf/std.hpcarm" #options INCLUDE_CONFIG_FILE # embed config file in kernel binary #ident "GENERIC-$Revision: 1.41.2.1 $" # estimated number of users maxusers 8 #options DRAM_PAGES=16384 # 64Mb of memory is standard on Jornada728s # Standard system options options RTC_OFFSET=0 # hardware clock is this many mins. west of GMT #options NTP # NTP phase/frequency locked loop # CPU options options CPU_SA1110 # Support the SA1110 core # Architecture options # FPA options #options ARMFPE # ARM Ltd FPE # File systems file-system FFS # UFS #file-system LFS # log-structured file system file-system MFS # memory file system file-system NFS # Network file system #file-system ADOSFS # AmigaDOS-compatible file system #file-system EXT2FS # second extended file system (linux) #file-system CD9660 # ISO 9660 + Rock Ridge file system file-system MSDOSFS # MS-DOS file system #file-system FDESC # /dev/fd #file-system FILECORE # Acorn filecore file system file-system KERNFS # /kern #file-system NULLFS # loopback file system #file-system OVERLAY # overlay filesystem #file-system PORTAL # portal filesystem (still experimental) file-system PROCFS # /proc #file-system UMAPFS # NULLFS + uid and gid remapping #file-system UNION # union file system # File system options #options QUOTA # UFS quotas #options FFS_EI # FFS Endian Independant support options SOFTDEP # FFS soft updates support. #options FFS_NO_SNAPSHOT # ffs snapshots #options NFSSERVER # Networking options #options GATEWAY # packet forwarding options INET # IP + ICMP + TCP + UDP #options INET6 # IPV6 #options IPSEC # IP security #options IPSEC_ESP # IP security (encryption part; define w/IPSEC) #options IPSEC_NAT_T # IPsec NAT traversal (NAT-T) #options IPSEC_DEBUG # debug for IP security #options MROUTING # IP multicast routing #options PIM # Protocol Independent Multicast #options NS # XNS #options NSIP # XNS tunneling over IP #options ISO,TPIP # OSI #options EON # OSI tunneling over IP #options CCITT,LLC,HDLC # X.25 #options NETATALK # AppleTalk networking #options PFIL_HOOKS # pfil(9) packet filter hooks #options PPP_BSDCOMP # BSD-Compress compression support for PPP #options PPP_DEFLATE # Deflate compression support for PPP #options PPP_FILTER # Active filter support for PPP (requires bpf) #options TCP_DEBUG # Record last TCP_NDEBUG packets with SO_DEBUG # Compatibility options #options COMPAT_43 # 4.3BSD compatibility. options COMPAT_20 # NetBSD 2.0 compatibility. options COMPAT_16 # NetBSD 1.6 compatibility. #options COMPAT_14 # NetBSD 1.4 compatibility. #options COMPAT_13 # NetBSD 1.3 compatibility. #options COMPAT_12 # NetBSD 1.2 compatibility. #options COMPAT_11 # NetBSD 1.1 compatibility. #options COMPAT_10 # NetBSD 1.0 compatibility. #options COMPAT_09 # NetBSD 0.9 compatibility. #options TCP_COMPAT_42 # 4.2BSD TCP/IP bug compat. Not recommended. #options COMPAT_BSDPTY # /dev/[pt]ty?? ptys. # Shared memory options #options SYSVMSG # System V-like message queues #options SYSVSEM # System V-like semaphores #options SYSVSHM # System V-like memory sharing #options SHMMAXPGS=1024 # 1024 pages is the default # Device options options MEMORY_DISK_HOOKS # boottime setup of ramdisk options MEMORY_DISK_ROOT_SIZE=3400 # Size in blocks options MEMORY_DISK_IS_ROOT # use memory disk as root # Miscellaneous kernel options #options KTRACE # system call tracing, a la ktrace(1) #options IRQSTATS # manage IRQ statistics #options LKM # loadable kernel modules #options KMEMSTATS # kernel memory statistics #options SCSIVERBOSE # Verbose SCSI errors #options USERCONF # userconf(4) support #options PIPE_SOCKETPAIR # smaller, but slower pipe(2) #options SYSCTL_INCLUDE_DESCR # Include sysctl descriptions in kernel #options NFS_BOOT_DHCP # Development and Debugging options #options BOOT_DUMP # Enable memorydump at boot #options PORTMASTER # Enable PortMaster only options options DIAGNOSTIC # internal consistency checks #options PMAP_DEBUG # Enable pmap_debug_level code #options IPKDB # remote kernel debugging options DDB # in-kernel debugger #options DDB_HISTORY_SIZE=100 # Enable history editing in DDB #makeoptions DEBUG="-g" # compile full symbol table config netbsd root on ? type ? #options COMCONSOLE=0,CONADDR=0x3f8,CONUNIT=0 # The main bus device mainbus0 at root # The boot CPU cpu0 at mainbus? saip0 at mainbus? # Serial options CONSPEED=19200 sacom* at saip? addr 0xd000d000 size 0x24 intr 17 #OS Timer saost* at saip? addr 0x90000000 size 0x20 # SA1111 companion chip sacc0 at saip? addr 0x40000000 size 0x2000 # PCMCIA bus support sacpcic* at sacc? pcmcia* at sacpcic? # PCMCIA serial interfaces com* at pcmcia? function ? # Modems and serial cards # PCMCIA IDE controllers and disks wdc* at pcmcia? function ? atabus* at ata? wd* at atabus? drive ? # PCMCIA network interfaces #an* at pcmcia? function ? # Aironet PC4500/PC4800 (802.11) #awi* at pcmcia? function ? # BayStack 650/660 (802.11FH/DS) #cnw* at pcmcia? function ? # Xircom/Netwave AirSurfer #ep* at pcmcia? function ? # 3Com 3c589 and 3c562 Ethernet #mbe* at pcmcia? function ? # MB8696x based Ethernet ne* at pcmcia? function ? # NE2000-compatible Ethernet #ray* at pcmcia? function ? # Raytheon Raylink (802.11) #sm* at pcmcia? function ? # Megahertz Ethernet #wi* at pcmcia? function ? # Lucent WaveLan IEEE (802.11) #xi* at pcmcia? function ? # Xircom CreditCard Ethernet #mhzc* at pcmcia? function ? # Megahertz Ethernet/Modem combo cards #com* at mhzc? #sm* at mhzc? # MII/PHY support #acphy* at mii? phy ? # DAltima AC101 and AMD Am79c874 PHYs #amhphy* at mii? phy ? # AMD 79c901 Ethernet PHYs #bmtphy* at mii? phy ? # Broadcom BCM5201 and BCM5202 PHYs #brgphy* at mii? phy ? # Broadcom BCM5400-family PHYs #dmphy* at mii? phy ? # Davicom DM9101 PHYs #exphy* at mii? phy ? # 3Com internal PHYs #glxtphy* at mii? phy ? # Level One LXT-1000 PHYs #gphyter* at mii? phy ? # NS83861 Gig-E PHY #icsphy* at mii? phy ? # Integrated Circuit Systems ICS189x #inphy* at mii? phy ? # Intel 82555 PHYs #iophy* at mii? phy ? # Intel 82553 PHYs #lxtphy* at mii? phy ? # Level One LXT-970 PHYs #makphy* at mii? phy ? # Marvell Semiconductor 88E1000 PHYs nsphy* at mii? phy ? # NS83840 PHYs nsphyter* at mii? phy ? # NS83843 PHYs #pnaphy* at mii? phy ? # generic HomePNA PHYs #qsphy* at mii? phy ? # Quality Semiconductor QS6612 PHYs #sqphy* at mii? phy ? # Seeq 80220/80221/80223 PHYs #tlphy* at mii? phy ? # ThunderLAN PHYs #tqphy* at mii? phy ? # TDK Semiconductor PHYs ukphy* at mii? phy ? # generic unknown PHYs #urlphy* at mii? phy ? # Realtek RTL8150L internal PHYs # Peripheral IO Controller #pioc0 at mainbus? base 0x00210000 # Serial ports #com* at pioc? offset 0x03f8 irq 10 #com* at pioc? offset 0x02f8 irq -1 #com* at pioc? offset 0x0338 irq -1 #com* at pioc? offset 0x0238 irq -1 # Parallel ports #lpt* at pioc? offset 0x0278 irq 0 #lpt* at pioc? offset 0x0378 irq -1 #lpt* at pioc? offset 0x03bc irq -1 options WSEMUL_VT100 options WSDISPLAY_DEFAULTSCREENS=2 # see arch/hpcarm/dev/j720kbdmap.c for implemented layouts #options J720KBD_LAYOUT=KB_FR options FONT_VT220L8x10 # The X server requires theses two options options WSDISPLAY_COMPAT_USL options WSDISPLAY_COMPAT_RAWKBD # physical console sed0 at saip? hpcfb* at sed? wsdisplay* at hpcfb? j720ssp0 at saip? addr 0x80070000 size 0x100 wskbd* at j720ssp? mux 1 wsmouse* at j720ssp? mux 0 pseudo-device loop 1 # network loopback #pseudo-device bpfilter 8 # packet filter #pseudo-device sl 2 # CSLIP #pseudo-device ppp 2 # PPP #pseudo-device tun 2 # network tunneling over tty #pseudo-device gre 2 # generic L3 over IP tunnel #pseudo-device ipfilter 1 # ip filter #pseudo-device gif 4 # IPv[46] over IPv[46] tunnel (RFC1933) #pseudo-device faith 1 # IPv[46] tcp relay translation i/f #pseudo-device stf 1 # 6to4 IPv6 over IPv4 encapsulation #pseudo-device strip 4 # STarmode Radio IP (Metricon Ricochet) #pseudo-device vlan # IEEE 802.1q encapsulation pseudo-device pty # pseudo-terminals #pseudo-device tb 1 # tablet line discipline pseudo-device vnd 4 # disk-like interface to files #pseudo-device ccd 2 # concatenated disk devices #pseudo-device cgd 2 # cryptographic disk devices #pseudo-device raid 4 # RAIDframe disk driver #options RAID_AUTOCONFIG # auto-configuration of RAID components #pseudo-device fss 4 # file system snapshot device pseudo-device biconsdev 1 # build-in console device pseudo-device wsmux pseudo-device md 1 # Ramdisk driver pseudo-device rnd # /dev/random and in-kernel generator #pseudo-device clockctl # user control of clock subsystem