From owner-freebsd-emulation@FreeBSD.ORG Thu Jan 6 07:58:17 2011 Return-Path: Delivered-To: freebsd-emulation@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D5EA5106566B for ; Thu, 6 Jan 2011 07:58:17 +0000 (UTC) (envelope-from alexander@leidinger.net) Received: from mail.ebusiness-leidinger.de (mail.ebusiness-leidinger.de [217.11.53.44]) by mx1.freebsd.org (Postfix) with ESMTP id 7DA698FC0A for ; Thu, 6 Jan 2011 07:58:17 +0000 (UTC) Received: from outgoing.leidinger.net (p57B3A550.dip.t-dialin.net [87.179.165.80]) by mail.ebusiness-leidinger.de (Postfix) with ESMTPSA id 9CF68844102; Thu, 6 Jan 2011 08:58:11 +0100 (CET) Received: from webmail.leidinger.net (unknown [IPv6:fd73:10c7:2053:1::2:102]) by outgoing.leidinger.net (Postfix) with ESMTP id 85464243D; Thu, 6 Jan 2011 08:58:08 +0100 (CET) Received: (from www@localhost) by webmail.leidinger.net (8.14.4/8.13.8/Submit) id p067vrFU064967; Thu, 6 Jan 2011 08:57:53 +0100 (CET) (envelope-from Alexander@Leidinger.net) Received: from pslux.ec.europa.eu (pslux.ec.europa.eu [158.169.9.14]) by webmail.leidinger.net (Horde Framework) with HTTP; Thu, 06 Jan 2011 08:57:53 +0100 Message-ID: <20110106085753.21096d6vr5bqpq1w@webmail.leidinger.net> Date: Thu, 06 Jan 2011 08:57:53 +0100 From: Alexander Leidinger To: Andre Albsmeier References: <20101230075124.GA12923@curry.mchp.siemens.de> <20101231144800.00005c6d@unknown> <20110101224629.GA30540@curry.mchp.siemens.de> <20110102115021.00000c8b@unknown> <20110105191915.GA43997@curry.mchp.siemens.de> In-Reply-To: <20110105191915.GA43997@curry.mchp.siemens.de> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; DelSp="Yes"; format="flowed" Content-Disposition: inline Content-Transfer-Encoding: 7bit User-Agent: Dynamic Internet Messaging Program (DIMP) H3 (1.1.4) X-EBL-MailScanner-Information: Please contact the ISP for more information X-EBL-MailScanner-ID: 9CF68844102.A4020 X-EBL-MailScanner: Found to be clean X-EBL-MailScanner-SpamCheck: not spam, spamhaus-ZEN, SpamAssassin (not cached, score=2.674, required 6, autolearn=disabled, RDNS_NONE 1.27, ZMIde_GENERICSPAM1 1.40) X-EBL-MailScanner-SpamScore: ss X-EBL-MailScanner-From: alexander@leidinger.net X-EBL-MailScanner-Watermark: 1294905492.78677@9yeWMxqK9iXenmb4LyGe2g X-EBL-Spam-Status: No Cc: "freebsd-emulation@freebsd.org" Subject: Re: 7.3-STABLE and Linux version of SIMetrix X-BeenThere: freebsd-emulation@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Development of Emulators of other operating systems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 06 Jan 2011 07:58:17 -0000 Quoting Andre Albsmeier (from Wed, 5 Jan 2011 20:19:15 +0100): > On Sun, 02-Jan-2011 at 11:50:21 +0100, Alexander Leidinger wrote: >> On Sat, 1 Jan 2011 23:46:29 +0100 Andre Albsmeier >> wrote: >> >> > On Fri, 31-Dec-2010 at 14:48:00 +0100, Alexander Leidinger wrote: >> > > On Thu, 30 Dec 2010 08:51:24 +0100 Andre Albsmeier >> > > wrote: >> > > >> > > > I try to get the Linux version of SIMetrix (a very nice circuit >> > > > simulator) running. Everything looks fine: It starts, the GUI >> > > > comes up, you can draw schematics and so on. But when it comes >> > > > to simulation, the (SIMetrix-)console says: >> > > > >> > > > *** Fatal error, out of memory *** >> > > > Could not allocate shared heap >> > > > Exception occurred while executing script command Run >> > > >> > > Is there something in the dmesg output? In case it tries to execute >> > > an unsupported ioctl/syscall it should show up there. If not I >> > > suggest to give 8.x a try, it has an improved linuxulator. >> > >> > Bad luck. I just started the PC-BSD 8.1 live system and >> > the error there is exactly the same... >> >> Then there is only ktrace + linux_kdump (use the package) or dtrace >> left. > > Got it running... A short explanation: > > Linux' shm_open() fails because it wants to find some funky shmfs > to construct the full pathname. It starts to search at the default > mountpoint which is /dev/shm. If this fails it runs through fstab > and searches for shmfs and tmpfs. Whatever it finds will be > statfs()'ed to be checked for Linux' fs magic for shmfs (0x01021994). > > My solution is eerie but it works. This is what I did: > > 1. cd /compat/linux > 2. mkdir dev > 3. cd dev > 4. ln -s /tmp shm As long as you do not need to access something from dev (FreeBSD one), this works. As soon as you need to access something from there it depends upon the software. If the software is doing a readdir, the user experience will be worse. And if it does not allow to enter a name by hand, you are lost. So this is a solution for your situation, but not a generic solution which we can use in the ports. Can you please try a solution with devfs.conf (I never tried if it allows to link outside of dev)? > This is not enough since statfs() won't return the proper magic > because it's no shmfs. So let's fix this ;-): > > --- sys/compat/linux/linux_stats.c.ORI 2008-01-10 20:11:51.000000000 +0100 > +++ sys/compat/linux/linux_stats.c 2011-01-05 20:04:18.000000000 +0100 > @@ -379,6 +379,8 @@ > struct statfs bsd_statfs; > char *path; > int error; > + char* cp; > + unsigned char shm = 0; > > LCONVPATHEXIST(td, args->path, &path); > > @@ -387,10 +389,15 @@ > printf(ARGS(statfs, "%s, *"), path); > #endif > error = kern_statfs(td, path, UIO_SYSSPACE, &bsd_statfs); > + if( (cp = strstr( path, "/dev/shm" )) != NULL ) > + shm = ( cp[8] == '\0' || (cp[8] == '/' && cp[9] == '\0') ); > + > LFREEPATH(path); > if (error) > return (error); > bsd_to_linux_statfs(&bsd_statfs, &linux_statfs); > + if( shm ) > + linux_statfs.f_type = 0x01021994; > return copyout(&linux_statfs, args->buf, sizeof(linux_statfs)); > } This is something we could do (with a little bit of cleanup), when we find a nice solution for the dev-part. Bye, Alexander. -- And do you think (fop that I am) that I could be the Scarlet Pumpernickel? http://www.Leidinger.net Alexander @ Leidinger.net: PGP ID = B0063FE7 http://www.FreeBSD.org netchild @ FreeBSD.org : PGP ID = 72077137