Date: Sat, 15 May 2004 16:40:25 +1000 From: John Duncan <agley@optusnet.com.au> To: freebsd-emulation@FreeBSD.org Subject: Please Check for Mistakes Message-ID: <86fza2gply.fsf@optusnet.com.au>
next in thread | raw e-mail | index | archive | help
Hello, I realise that is a bit long but could anyone please check this instruction for mistakes on the FreeBSD side, it will be posted on the Birmingham University website to help FreeBSD users install and run the Linux Poplog Virtual Machine. How To Build and Run Linux Poplog on FreeBSD Linux Poplog can be used on FreeBSD with the Linux ABI support provided in the GENERIC kernel. See the FreeBSD Handbook for and manual pages for the gory details.To get this support every time you run put, linux_enable="YES" in your /etc/rc.conf and to ensure that FreeBSD recognises the Poplog binaries as Linux use this sysctl variable like so, # sysctl kern.fallback_elf_brand=3 This will have to be repeated upon a reboot. You could just try to brand the binaries like this, # brandelf -t Linux poplog_binaries but maybe some parts of the Poplog system are seen as binaries that I don't know about. First we have to set up a Linux type system under /compat/linux in FreeBSD, we do this by building the ports which give us a RedHat 8 set of libraries. This is because of the version of the Linux libc that Poplog needs now. At the moment these are, /usr/ports/emulators/linux_base-8 /usr/ports/devel/linux_devtools /usr/ports/x11/linux-XFree86-libs This will install the following packages, linux_base-8-8.0_4 linux_devtools-8.0_1 linux-XFree86-libs-4.3.0_2 After this we will need to install some things that the Poplog installation scripts need, we do this by installing the RedHat RPMS for RedHat 8.0 en which can be found at sites like rpmfind. We need, tcsh-6.12-2.i386.rpm tar-1.13.25-8.i386.rpm gzip-1.3.3-5.i386.rpm textutils-2.0.21-5.i386.rpm util-linux-2.11r-10.i386.rpm openmotif-2.2.2-12.i386.rpm --- only if you want WITH_MOTIF You install them like in this example # rpm -i --ignoreos --nodeps --root /compat/linux \ --dbpath /var/lib/rpm tcsh-6.12-2.i386.rpm When you install the util-linux RPM you will get the message group tty does not exist using root This does not seem to worry the installation. Another point is that although there is a /compat/linux/usr/tmp directory symlinked to /var/tmp the Poplog installation can't use this so we need to make another one # cd /compat/linux # mkdir tmp Assuming you have downloaded the large Linux Poplog tarball(21MB) to your home directory and had a look at the documentation available at the Birmingham University website to see what should happen lets start the installation. I am going to install everything in the default position and so that all users can use Poplog, there is now provision in the build scripts to install in other places if you want, see the documentation for details. First make a directory under /compat/linux for the source and copy the tarball into it. # cd /compat/linux/usr # mkdir -p /compat/linux/usr/local/poplog/src # cd /home/whoever # cp -p bham-linux-poplog.tar.gz /compat/linux/usr/local/poplog/src Now enter into a chrooted environment under /compat/linux to untar the sources and run the build scripts. First run the ldconfig program for the /compat/linux libraries just in case. # cd /compat/linux/usr # chroot /compat/linux /bin/bash bash2.05b# pwd ( just to check ) / bash2.05b# cd /lib bash2.05b# /sbin/ldconfig bash2.05b# cd /usr/X11R6/lib bash2.05b# /sbin/ldconfig bash2.05b# cd /usr/local/poplog/src bash2.05b# zcat bham-linux-poplog.tar.gz | tar xf - You now have the build scripts and some documentation in this directory. The docs explain a lot, I will just say that there are two ways to build, linked with and without Motif. I recommend with Motif if this is your first look at Poplog. So run either, bash2.05b# ./INSTALL_EVERYTHING_WITH_MOTIF ( or ) bash2.05b# ./INSTALL_EVERYTHING_WITHOUT_MOTIF There are a lot of errors at the start of the build saying, cc1: warning: changing search order for system directory "usr/include" as it already has been specified as a non-system directory I am told these occur when building Poplog on RedHat 8 or 9 so are nothing unusual, other errors that appear are normal for any build. Exit out of the chroot and copy the whole Birmingham Poplog set up into /usr/local for FreeBSD. bash2.05b# exit # cd /compat/linux/usr/local/poplog # cp -pR /compat/linux/usr/local/poplog /usr/local Now Poplog depends heavily on environmental variables and there are some example configuration scripts bundled with the documentation but I will keep things as simple as possible to get you started. # cd /usr/local/bin # ln -s /usr/local/poplog/local/setup/bin/poplog /usr/local/bin/poplog # exit > cd > rehash > setenv usepop /usr/local/poplog/v15.53e > setenv poplocal /usr/local/poplog > setenv local $poplocal/local > source $usepop/pop/com/poplog For the other shells $ cd $ . $ usepop=/usr/local/poplog/v15.53e $ export usepop $ poplocal=/usr/local/poplog $ local=$poplocal/local $ export poplocal local $ . $usepop/pop/com/poplog.sh Now open up an xterm and try to start Poplog, > poplog pop11 %x if you used Motif you might see this error printed with the start up banner, Can't open shared object /usr/local/poplog/current.poplog/pop/extern/lib/libXm.so ( Inappropiate ioctl for device ) I think what happens here is that I have FreeBSD Openmotif installed and initially it looks at this but in a few seconds comes good and starts up with a control panel. If you didn't use Motif you might think that the graphical interface failed but that is not so, read in a file at the Setpop prompt which is a full colon. Setpop : teach teach and the graphical editor Xved should start with this file. With or without Motif to get familiar keyboard keys to get you going on a PC you should enter these two lines at the prompt, Setpop : uses oldvedxvedkeys : oldvedxvedkeys(); There you go, you now have a wealth of documentation and examples at your disposal to help you learn how to program in the Linux Poplog Virtual Machine. Thanks for any help, John Duncan
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?86fza2gply.fsf>