This weekend I made some progress in the linuxulator:
- I MFCed the reporting of some linux-syscalls to 9‑stable and 8‑stable.
- I updated my linuxulator-dtrace patch to a recent ‑current. I already compiled it on i386 and arundel@ has it compiled on amd64. I counted more than 500 new DTrace probes. Now that DTrace rescans for SDT probes when a kernel module is loaded, there is no kernel panic anymore when the linux module is loaded after the DTrace modules and you want to use DTrace. I try to commit this at a morning of a day where I can fix things during the day in case some problems show up which I did not notice during my testing.
- I created a PR for portmgr@ to repocopy a new linux_base port.
- I set the expiration date of linux_base-fc4 (only used by 7.x and upstream way past its EoL) and all dependent ports. It is set to the EoL of the last 7.x release, which can not use a later linux_base port. I also added a comment which explains that the date is the EoL of the last 7.x release.
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 fixed 3 linux ports (converting to the “new” world order) to not use RPM directly (the right thing is to use rpm2cpio, and bsd.linux-rpm.mk provides some nice stuff to handle this).
In the last week I fixed some stuff in the linuxulator-MFC patch. It should now compile on amd64 and i386 without problems (at least the code which I have locally). There’s one (strange) panic report which I want to analyze and fix (if it is linuxulator related) with Roman before I update the patch on my site.
I had a look at some USB PRs and wrote a list of those with patches to Warner (as he is working on USB stuff currently). I also categorized them (easy, not easy, maybe already fixed, …). The easy ones he handled already, for the rest I don’t know his current plans.
Regarding linuxulator stuff I’m working on a MFC patch (no TLS, no futexes). As I don’t have a -stable box I need some help testing it before I can commit it. I only compile tested this on ‑current with the new gcc 4.2. What I need is:
- testing on i386, amd64 (if I forgot something, it may panic your system)
- “make universe” test (you have to grep all the logs for “Error 1” and investigate the error if there’s one)
- LTP test run, see the wiki for more (best would be a diff of the logs in the result directory of no-patch/patch runs)
- normal linux application use-tests
What the patch provides is:
- mmap fixes
- fix memleaks
- add mprotect/iopl/lstat/ftruncate/statfs64/timer_*/mq_*
- more errno value mapping
- don’t limit number of syscalls to 255
- allow to exec libs
- ioctl TIOCGPTN
- handle more socket options
- add dummy syscalls so that we know what is needed (reports from users)
- linprocfs enhancements
The linuxulator is synced on amd64 with i386 (since a while). This means TLS is working now and we have the same (a little bit buggy) futexes.
Roman is slowly working on the *at() commands. He also applied for the GSoC this year again. Kib is willing to mentor (in case Roman gets a free seat in the SoC). I rejected the mentoring position this time, as I don’t know if I will have enough time this summer, but I hope I will be around.