I am in the process of preparing the import of code which makes v4l devices usable in the linuxulator. Basically this means you can use your webcam in skype (tested by the submitter of the patch on amd64).
This is not a “apply patch and commit” thing, because the original videodev.h (with some modifications) is used. I was seeking the OK from core@ for this. As there is no license in the header, and the original author (Alan Cox, the linux one, not our FreeBSD one) gave permissions to use it, core@ is OK with the import.
I intent to do a vendor import of the linux header (prepared today, together with some readme which explains where it comes from and some stuff to show that we are on the safe side regarding legal stuff), and then I want to copy this over to the linuxulator as linux_videodev.h and commit the patch (probably a little bit modified in a few places). My plan is to commit it this week. People which already want to play around with it now can have a look at the emulation mailinglist, a link to the patch is posted there.
With the header being in a vendor branch, interested people could then start to submit new BSD licensed drivers or modify existing drivers which make use of the v4l interface, but I let the import of the header into the FreeBSD include directory up to the person which wants to commit the first native FreeBSD-v4l support.
When such native FreeBSD-v4l support is committed, the linuxulator code needs to be revised.
Today I committed two patches which fix the last two panics we know about in the 2.6.16 emulation. Now we need testers. Here’s the text of the mail I did send to current@ a few moments ago:
today I committed the last fixes for the showstopper problems (panics) in the linux 2.6.16 emulation. I intend to switch the default version to 2.6.16 on i386 “soon” (see below), so please help testing it.
More recent linux distributions (e.g. FC5) require a 2.6 kernel and don’t work with 2.4.2 anymore. And because FC4 is “abandon-ware” (no security fixes from fedoralegacy anymore), getting 2.6.16 emulation up an running is very important.
If you use a linux program, please add compat.linux.osrelease=2.6.16 to /etc/sysctl.conf (my desktop is running with 2.6.16 emulation since some days already). After the next boot (or after running “sysctl compat.linux.osrelease=2.6.16”, please make sure no linux program is running already) any linux program will start with a linux kernel version of 2.6.16 instead of 2.4.2. The default linux base port (FC4) will then use different code paths (e.g. within glibc). In case you want to switch back to the 2.4.2 emulation without a reboot, please make sure no linux program is running anymore.
So far we fixed all known/repeatable problems with acroread, realplayer, skype and linux firefox. If you encounter strange behavior with any linux program, please tell us (firstname.lastname@example.org) which program you used, how to repeat the problem, what the problem is, and if it only is visible with 2.6.16 or with 2.4.2 too. You should also watch out for messages in the dmesg (unimplemented system calls or other stuff, this is used to determine the priority of missing syscalls). Please also have a look at http://wiki.FreeBSD.org/linux-kernel, I intend to document the known problems there. If you find your problem there, please tell us about it if you are willing to test fixes.
We are specially interested in reports (good or bad) on SMP systems. Please beat the hell out of the linuxulator!
On amd64 systems we have not the same functionality as on i386, missing are futexes and TLS. In P4 we already have the futex part covered, but the TLS part is still missing (anyone with a clue about the kernel side of TLS on amd64 is welcome to give a hint or two to jkim@ and rdivacky@). So if you get a message about missing futexes or TLS on amd64: we know about it (testers for the futex stuff are welcome, but first you need to use a program which uses futexes and complains).
As long as we get problem reports with 2.6.16 I will not switch the default to 2.6.16. If we don’t get a report at all, I will switch the default on i386 to 2.6.16 in two weeks. If we get some problem reports, we will push back the switch a little bit depending on the severity of the problem.
I started a wiki page about improving the soundsystem. The idea is similar to the wiki page about improving our linuxolator. It’s a way to tell the people what is currently available as patches (and where), what is broken and needs to be fixed, which improvements we like to see and so on. It’s maybe also a good place to list docs for soundchips. Currently the page about the soundsystem is a little bit low on content. I hope a lot of people contribute with ideas, facts, suggestions, pointers to helpful stuff, (pointers to) bugs, pointing out lack of docs and so on (either by modifying the page, or by mailing stuff to multimedia@FreeBSD.org).
With the linux page I was able to gain some momentum and several people are already helping with patches, running tests and so on (even little help matters). I hope the sound page will show a similar benefit.
So dear reader, do you play some music sometimes? Do you play an instrument which can be connected to some other stuff (MIDI)? Do you use acroread, skype, or some other linux software? If yes go to the wiki pages and read them please. When you’re finished please donate 5 – 10 minutes (I don’t mind if you sepnd more) of your time and try to tell us at multimedia@FreeBSD.org or emulation@FreeBSD.org about stuff you think could be listet there (instead of smoking a cigarette, argueing about bad behavior of people around you, or similar negative stuff). Thanks in advance and trust me, you will earn good karma when you do this!
I committed most of Romans work in the linuxolator to current. The new syscalls aren’t used until you run
to switch back (after exiting all linux programs) you just have to run
But you have to do this on i386. Amd64 support is not complete (and besides this, amd64 is still broken and nobody provided the neccessary debugging info to jhb@).
There are some known problems with osrelease=2.6.16, e.g., problems with futexes (visible in acroread, realplay and skype), but some programs already run without obvious problems (linux-firefox, linux-opera).
Any reports about new problems to netchild@ and rdivacky@ please. Reviews, debugging info and patches are welcome too.