Date: Thu, 06 Jan 2011 13:24:53 +0100 From: Alexander Leidinger <Alexander@Leidinger.net> To: Andre Albsmeier <Andre.Albsmeier@siemens.com> Cc: "freebsd-emulation@freebsd.org" <freebsd-emulation@freebsd.org> Subject: Re: 7.3-STABLE and Linux version of SIMetrix Message-ID: <20110106132453.15152nbxllwpqu80@webmail.leidinger.net> In-Reply-To: <20110106103226.GA59969@curry.mchp.siemens.de> 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> <20110106085753.21096d6vr5bqpq1w@webmail.leidinger.net> <20110106103226.GA59969@curry.mchp.siemens.de>
next in thread | previous in thread | raw e-mail | index | archive | help
Quoting Andre Albsmeier <Andre.Albsmeier@siemens.com> (from Thu, 6 Jan 2011 11:32:26 +0100): > On Thu, 06-Jan-2011 at 08:57:53 +0100, Alexander Leidinger wrote: >> Quoting Andre Albsmeier <Andre.Albsmeier@siemens.com> (from Wed, 5 Jan >> 2011 20:19:15 +0100): >> > 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 > > Let me see if I got this: Now I have a /compat/linux/dev directory > which means that if some Linux programme wants to look into /dev it > will see just the shm entry. If there wasn't my dev directory it > would have continued to FreeBSD's /dev... Correct. >> Can you please try a solution with devfs.conf (I never tried if it >> allows to link outside of dev)? > > I added the following line to devfs.conf > > link /tmp shm > > and removed my dev stuff under /compat/linux. And it still works ;-). That's great. > The devfs.conf thing makes it possible to simplify the (ugly) > patch a bit: > > --- /sys/compat/linux/linux_stats.c.ORI 2008-01-10 20:11:51.000000000 +0100 > +++ /sys/compat/linux/linux_stats.c 2011-01-06 11:26:53.000000000 +0100 > @@ -379,6 +379,7 @@ > struct statfs bsd_statfs; > char *path; > int error; > + unsigned char shm = 0; > > LCONVPATHEXIST(td, args->path, &path); > > @@ -387,10 +388,14 @@ > printf(ARGS(statfs, "%s, *"), path); > #endif > error = kern_statfs(td, path, UIO_SYSSPACE, &bsd_statfs); > + if( strncmp( path, "/dev/shm", 8 ) == 0 ) > + shm = ( path[8] == '\0' || (path[8] == '/' && path[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)); > } > > Thanks for the hint with devfs.conf, that's a lot better! Thanks for the patch. Bye, Alexander. -- Freedom begins when you tell Mrs. Grundy to go fly a kite. http://www.Leidinger.net Alexander @ Leidinger.net: PGP ID = B0063FE7 http://www.FreeBSD.org netchild @ FreeBSD.org : PGP ID = 72077137
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20110106132453.15152nbxllwpqu80>