VMware Communities
slewsys
Contributor
Contributor

FreeBSD support?

VMware Fusion for Mac is exciting stuff! I am "chomping at the bit" to see it running a full-blown FreeBSD workstation environment.

Is VMware Tools available (or necessary?) for FreeBSD under Fusion for Mac? If not, how can I at least increase the console size (`stty rows 40 cols 80' has no effect)? If VMware Tools is available, how can it be installed in console (text) mode?

"To return to your computer" key sequence spits `^[[J' to the VM input. Any way to suppress this? Ideally, the mouse cursor would move seamlessly between the VM window and Mac OS X, allowing transparent movement between them ...

I don't have a wacom tablet or keyspan RF, but I was unable to "direct input to this vm" a couple of times. Restarting the VM resolved the problem each time. After enabling VT (and assigning both CPUs to the VM?), I haven't encountered this again. Any reason VMware can't enable VT as part of the install process? Why did Apple disable VT in the first place?

I am running FreeBSD 6.2-RC1 as 64-bit guest OS with both CPUs enabled, 384MB RAM allocated and VT enabled (via vmx-var-set.efi) on an iMac 24" in the original Apple configuration (e.g., no memory upgrades), except for Logitech MX Laser mouse.

Reply
0 Kudos
6 Replies
HPReg
VMware Employee
VMware Employee

VMware Tools for FreeBSD is available and necessary under Fusion for Mac. I don't think you need to do anything special to install the tools in text mode.

The '^[[J' that appears in text mode is weird: the ungrab key sequence should be completely transparant to the guets (i.e. the guest should not see it). Can you please file a bug about that?

Once you install the tools \_and_ run X, the mouse cursor will move seamlessly. While it is possible to make it work in text mode in theory (with a modified 'gpm' or FreeBSD equivalent), I don't think it has been implemented.

The problem with Wacom tablet is known. We believe to have fixed it in house. For noew, unplug your Wacom table when you want a VM to grab.

Apple disabling VT was a mistake. They only did it on early models, until they fixed their mistake. For older models, they provide an EFI upgrade to fix the problem. That is why we don't want Fusion to do it at install time. We need to modify our "VT is disabled on this processor" message so that it directs users to the EFI upgrade URL though.

Reply
0 Kudos
slewsys
Contributor
Contributor

I am only able to install VMware Tools by extracting the file `vmware-freebsd-tools.tar.gz' from /Library/Application Support/VMware Fusion/isoimages/freebsd.iso and then running the install/config scripts manually.

A related problem, perhaps, is that after switching "CDROM" ISO images, I need to wait for up to a minute before attempting to read them to avoid CDROM (acd0) errors. This looks more like a FreeBSD acd driver bug - I am thinking that perhaps it should be doing a blocking read before returning errors (?)

Installing FreeBSD in a 32-bit VM, the lnc0 ethernet interface freezes the system with a "No receive buffer" error when attempting to use the scp(1) command. So on a 64-bit iMac at least, use a 64-bit VM for FreeBSD!

I mentioned the VM grab problem precisely because I do NOT have a Wacom tablet, nor keyspan drivers. I do have Logitech drivers, though, and wouldn't be surprised if these are problematic. But again, enabling VT seemed to fix the problem, so maybe this is specific to the early models.

For the benefit of other "early model" iMac owners: unfortunately, the EFI upgrade did not enable VT on my early model iMac. I had to manually enable it by installing rEFIt and running vmx-var-set.efi.

Presently, I am (slowly) running a `make buildworld' in an xterm under the Afterstep window manager. VMware is great!!

Reply
0 Kudos
fairramone
Contributor
Contributor

I know this is an older FreeBSD thread, but I wanted to see if any progress has been made on this front. Specifically, is there any way to have a text mode larger than the standard 80x24? Also, can the mouse be set up to move seamlessly between the guest OS (in text mode) and host OS? Thanks in advance!

Reply
0 Kudos
filbo
Enthusiast
Enthusiast

Using FreeBSD 10-CURRENT (2013-07-11) under Fusion 5.0.3 on OS/X 10.8.2, I have been successful in getting several different FreeBSD console sizes.

First I do this:

   #!/bin/sh

   vidcontrol -f 8x8 /usr/share/syscons/fonts/iso-8x8.fnt < /dev/ttyv0 > /dev/null 2>&1

   vidcontrol -f 8x14 /usr/share/syscons/fonts/iso-8x14.fnt < /dev/ttyv0 > /dev/null 2>&1

-- else the other modes fail with bad fonts.  Redirection is so this can run from an rc script or inbound ssh or whatever.

[Note: this is probably better configured by putting:

font8x8="iso-8x8"

font8x14="iso8x14"

into /etc/rc.conf; I can't do this because my VM's rc.conf file gets overwritten by my project's build, which is an own-goal that I can't fix right now...]

Then all of these work:

   vidcontrol MODE_3 < /dev/ttyv0    # 80x25, 8x8 char cell

   vidcontrol MODE_22 < /dev/ttyv0  # 80x25, 8x14 char cell

   vidcontrol MODE_24 < /dev/ttyv0  # 80x25, 8x16 char cell

   vidcontrol MODE_32 < /dev/ttyv0  # 80x30, 8x16 char cell

   vidcontrol MODE_112 < /dev/ttyv0  # 80x43, 8x8 char cell

   vidcontrol MODE_30 < /dev/ttyv0  # 80x50, 8x8 char cell

   vidcontrol MODE_34 < /dev/ttyv0  # 80x60, 8x8 char cell

==================

Unfortunately this does not solve the problem I was trying to solve, which is: make the FreeBSD console window very small, but completely visible, without doing OS/X window-size dragging.  Because: I'm doing FreeBSD kernel development and crashing the VM a lot.  Each time it reboots, VMware VBIOS resets the mode, which undoes my window-size dragging.

The 80x25, 8x14 mode helps a bit -- it's slightly smaller than the default 8x16.

Sadly, 80x25, 8x8 doesn't help.  Someone, and I think it's VMware, is line-doubling the 8x8 cell.  So I get all the massive ugliness of 8x8 chars plus all the space consumption of 8x16.

Can someone @VMware please do something about the 640x200 (80x25 8x8) text mode being line-doubled?  Is there a seekrit .vmx file option that makes it stop?

It would also be nice if windows remembered their manually dragged position and scaling.  I'm doing kernel/network development with a network of three VMs.  I want their consoles neatly arranged one above the other, drag-scaled down about 30% so they all fit nicely with no overlap.  I can *do* the positioning and scaling, but every time I reboot the VMs I get to manually re-scale their console windows.  Smiley Sad

>Bela<

Reply
0 Kudos
WoodyZ
Immortal
Immortal

filbo wrote:

Unfortunately this does not solve the problem I was trying to solve, which is: make the FreeBSD console window very small, but completely visible, without doing OS/X window-size dragging.  Because: I'm doing FreeBSD kernel development and crashing the VM a lot.  Each time it reboots, VMware VBIOS resets the mode, which undoes my window-size dragging.

The 80x25, 8x14 mode helps a bit -- it's slightly smaller than the default 8x16.

Sadly, 80x25, 8x8 doesn't help.  Someone, and I think it's VMware, is line-doubling the 8x8 cell.  So I get all the massive ugliness of 8x8 chars plus all the space consumption of 8x16.

Can someone @VMware please do something about the 640x200 (80x25 8x8) text mode being line-doubled?  Is there a seekrit .vmx file option that makes it stop?

It would also be nice if windows remembered their manually dragged position and scaling.  I'm doing kernel/network development with a network of three VMs.  I want their consoles neatly arranged one above the other, drag-scaled down about 30% so they all fit nicely with no overlap.  I can *do* the positioning and scaling, but every time I reboot the VMs I get to manually re-scale their console windows.  Smiley Sad

If you're referring to resizing and positing the VM's window from the OS X side of things then here is what I'd do to avoid manual receptive tasks.

I have AppleScript preferences set to show the Script menu in the Apple menu bar so as to have quick access to a handful of scripts that I use daily...

Start VMware Fusion and the target Virtual Machine position the VM's window how/where you want it and then open AppleScript.

Now copy and paste the command below in the AppleScript Editor and then change "Name_of_VM_window" to the appropriate name of the window.  Now click the Run button and then look at the Replies in the Event Log for the bounds of the window.

tell application "VMware Fusion" to get bounds of window "Name_of_VM_window"

Now copy and paste the command below in the AppleScript Editor and then change "Name_of_VM_window" to the appropriate name of  the window and then copy and paste the appropriate bounds from get bounds output for the window.  Now delete the get bounds line as it's no longer needed.  Save the script to ~/Library/Scripts and it will be available on the Scripts menu on the Apple menu bar.

tell application "VMware Fusion" to set bounds of window "Name_of_VM_window" to {0, 0, 0, 0}

From then on when you start the VM, let it do the dance it does, and then you can click the script to automatically have the window positioned and sized the way you want it to be! Smiley Wink  This way it's only two mouse clicks to automatically get it where on the screen and the size you want it vs. manually having to drag it and resize it etc. Smiley Happy

Message was edited by: WoodyZ - Added testing info a code example.

As a test, I created 3 VM's using Core Image from the The Core Project and after starting each I rearranged the 3 windows so that were stacked above one another and the same size to the left side of the Desktop, got the bounds information for each by replicating the first line of code above.  I the copied and pasted the appropriate block of code from the Results and modified is accordingly while adding a Try block so as to avoid any errors if I click it accidentally on the Script menu and those VM's are not running.  I then saved it so it would be on the Scripts menu on the Apple menu bar.  I named it "Arrange Core VM's".

tell application "VMware Fusion"

    try

        set bounds of window "Core 1" to {1686, 26, 2369, 460}

        set bounds of window "Core 2" to {1686, 467, 2367, 900}

        set bounds of window "Core 3" to {1686, 908, 2365, 1339}

    end try

end tell

To test it, I moved all three VM's to different places on the Desktop and changed the sizes.  When I clicked "Arrange Core VM's" from the Scripts menu on the Apple menu bar they all snapped into place, stacked nicely above each other and lined up on the left side of the Desktop.

If you want it to keep from accidentally opening VMware Fusion then add some additional code to check if it's running.

on is_running(appName)

    tell application "System Events" to (name of processes) contains appName

end is_running

set isfRunning to is_running("VMware Fusion")

if isRunning then

    tell application "VMware Fusion"

        try

            set bounds of window "Core 1" to {1686, 26, 2369, 460}

            set bounds of window "Core 2" to {1686, 467, 2367, 900}

            set bounds of window "Core 3" to {1686, 908, 2365, 1339}

        end try

    end tell

end if

Reply
0 Kudos
filbo
Enthusiast
Enthusiast

Thanks!  That works, I now have an OS/X shell script:

#!/usr/bin/osascript

tell application "VMware Fusion"

   try

      set bounds of window "ts_0" to {-480, -1080, 69, -719}

      set bounds of window "ts_1" to {-480, -720, 69, -359}

      set bounds of window "ts_2" to {-480, -360, 69, -1}

   end try

end tell

which does the job.  The negative numbers are how OS/X apparently describes my desktop monitor that sits above the laptop screen.  I left out the check if Fusion's running since I'll run the script manually when my display demands it.

I also wanted to be able to script "hey Fusion, turn off the toolbar on those windows", which I know AppleScript can do, but -- I'm clueless newbie at it, and OS/X in general.  My current recursive OS/X problem stack is:

- all OS/X apps, when I try to display help, no window comes up -- like the help-displayer app is helplessly broken [no idea]

- trying to get help in AppleScript Editor because the "Record" action doesn't seem to do anything [googling says forget it, Fusion has to support _Record_ which it almost certainly doesn't]

- trying to "Record" my telling Fusion to turn off the toolbar in one of my windows, so I can add that to the window setup script [can probably do by manually typing the menu item names etc. into the right AppleScript syntax, googling not yet complete]

>Bela<

Reply
0 Kudos