Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 6 Dec 2000 09:17:32 +1000 
From:      Matthew Peacock <Mattp@innerrange.com.au>
To:        'Mike Meyer' <mwm@mired.org>
Cc:        "Freebsd (E-mail)" <questions@freebsd.org>
Subject:   RE: Please help with linux compatibility
Message-ID:  <B1A814C42460D311B10F009027589E4E093FD1@EXCHANGE>

next in thread | raw e-mail | index | archive | help
Mike,

Thanks for your suggesstions and patience. I've finally got it working.
Basically I'm trying to build a network using old cheap computers that I can
pick up for next to nothing. FreeBSD has good performance on the older
machines so thats why I want to learn about it.

Anyway, on one of the machines I have an older version of FreeBSD (v4.0). I
did a kldstat on it and it showed that linux.ko was loaded. I did a whereis
on linux.ko and it said /modules. I went to machine running the newer
version of FreeBSD (v5.0-CURRENT branch, June 2000). I went to the /modules
directory and saw that it was empty. I then ran sysinstall and tried to
reinstall the linux compatibility options. I did this but it still didn't
load the modules. I then went back into sysinstall and started looking
around. In the README it said that the version of FreeBSD I had was not for
the uninitiated FreeBSD user (me) and that it could contain a few bugs. I
assume that one of the bugs is that the linux compatibility doesn't install
properly.  I didn't have anything valuable on the hard disk so I reinstalled
FreeBSD version 4. The linux stuff installed fine. I installed Wingzs (linux
spreadsheet) and it worked fine. I haven't decided yet but I'm thinking of
upgrading the v4.0 to the v5.0 disk that I have. That way I will have the
newer kernel with the linux libraries already installed. 

I hope that explains whats going on.

Thanks,
Matt

	-----Original Message-----
	From:	Mike Meyer [SMTP:mwm@mired.org]
	Sent:	Monday, December 04, 2000 8:21 PM
	To:	Matthew Peacock
	Cc:	questions@freebsd.org
	Subject:	Re: Please help with linux compatibility

	Matthew Peacock <Mattp@innerrange.com.au> types:
	> *	When Installing FreeBSD I said "Yes" to the question "Would
you like
	> to have linux compatibility". This then installed some
compatibility
	> libraries which I assume are all the librararies that are needed.

	Ok, I don't know what asking for Linux compatability at install time
	does. You need to do two things, though: 1) enable the kernel API
	support for Linux, and install the linux_base port.

	> *	After installation I checked the /usr/compat/linux/ shadow
	> directories and saw that there wer lots of directories that were
ther. I
	> looked in /usr/compat/linux/lib and saw that there were lots of
linux
	> libraries there.

	That would indicate that the linux_base port was installed. You
might
	verify that /compat is a symlink to /usr/compat, or /compat/linux is
a
	symlink to /usr/compat/linux.

	> *	Next I edited the /etc/defaults/rc.conf file and added
	> LINUX_ENABLE="YES". I thought that this was a bit strange that it
said no to
	> start with because I had asked for linux compatibility during
install.

	You should *never* touch anything in /etc/defaults/. Those files
hold
	default values for things you set in files in /etc. In this case,
	/etc/rc.conf - which should have had LINUX_ENABLE="yes" added by the
	install process.

	> *	I rebooted and did "kldstat". I expected to see the linux
module but
	> I did not. I am running a recent version of FreeBSD (dated About
June this
	> year and purchased as FreeBSD Toolkit v5). I am thinking that
maybe the
	> linux compatibility module is now statically linked to the kernel.
Is this
	> correct? I wasnt sure so I tried typing "linux" as the handbook
advised but
	> it said that this module was unknown.

	It doesn't look like the Linux module is statically linked.  You
	should try loading it by hand, though. Try running "/sbin/kldload
	linux", then check the console error messages. If Linux is already
	already loaded, it will say "module linux already present" or words
to
	that effect. If it's wasn't loaded, and the module exists, that will
	load it for you. If you can't get it loaded, you won't be able to
get
	them to run.

	Care to provide the exact text of the message you got from running
	"linux"? There are a number of things that can be interpreted as
	saying the module was unknown, but don't mean that.

	> *	Anyway, after assuming that the linux compatibility is
statically
	> linked, I then tried to install a few linux apps to see what would
happen. I
	> got StarOffice3.1 to install and I got Wingz (spreadsheet) to
install. When
	> I tried to execute these programs they both gave me the results
	> "/lib/libname not found" (I cant remember the exact name of the
library but
	> it did exist in the linux shadow library directory). I realised
that the
	> program was still looking for where linux keeps its modules. I
therefore
	> created a /lib directory and copied the linux modules from the
	> /usr/compat/linux/lib directory and then tried to run the app. I
got
	> "segmentation fault core dumped". 

	Um - if you have the linux module loaded, it will check
	/compat/linux/lib before it checks /lib. If you managed to overwrite
	FreeBSD libraries with their Linux version, your system is going to
be
	*very* flaky.

	> *	I then consulted the manual again and it said that I should
put the
	> binaries (Wingz and swriter etc) into the /usr/compat/linux/lib
directory
	> and run them from there. This did not work - it just said
"/lib/libname not
	> found".

	Binaries? In a lib directory? Where in the manual does it say that?

		<mike
	--
	Mike Meyer <mwm@mired.org>
http://www.mired.org/home/mwm/
	Independent WWW/Unix/FreeBSD consultant,	email for more
information.


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?B1A814C42460D311B10F009027589E4E093FD1>