[howto] Minimal FreeBSD desktop

I'm stuck at this point
If you are using nvidia-driver run:

# nvidia-xconfig
Trying to run that command returns a
Code:
Command not found
error. I found a file with that name in /usr/ports/x11 but trying to run that returns a
Code:
Permission denied
error.

Any ideas on how to troubleshoot this problem?
 
Hello,

What about installing Office? Is OpenOffice.org going to work with this setup? I am new to FreeBSD, forgive me I am a noob.

Thanks.
 
I just wanted to say thank you for this great howto. I often used Linux (e.g. CrunchBang) if I needed a light minimal desktop, because I wasn't very confident at setting up FreeBSD to do this. PC-BSD was another option, but that is not very light and minimal anymore. After following this howto, I don't see the need to use Linux as a light desktop anymore. I hope this howto continues to be updated and refined as it is a great help to all newcomers like me. I have two suggestion that could improve this:
  1. Set up a public PKGNG repository with only the packages mentioned, which are built with the correct options.
  2. Write an interactive script that can be run after a default installation.
This would mean that you can have a minimal desktop in few minutes without having to wait to build all the ports and copy-paste all the necessary config files. I am happy to help with the first one, but unfortunately I have never written a script in my life.
 
Thank you very much for your howto. This is exactly what I have been looking for, for quite a long time. As a Slackware user I totally share your views on how a perfect OS should be, above all simple and tailored to exactly the smallest footprint that fits the intended use. So no bloat, no piles of dependencies. Clean and controllable.

It's one thing that disturbs me with most package management systems, that if you don't read the dependencies carefully, you can get lost in a sea of dependencies just by typing an innocent pkg_add, for instance. You start with a clean system - and then the package manager pulls dependencies in and sub-dependencies and so forth.

Great work! I will give that a try!
 
What is device support like for FreeBSD besides mouse and keyboard? I'm thinking mainly about gamepad/joysticks, which work well in Linux with evdev/udev. Most new devices should just be generic HID I think.

I read that there was some Linux joystick compatibility for FreeBSD but that it's broken now. Is it possible to use modern gamepads using devd or something else specific to FreeBSD?
 
Didn't work in FreeBSD10-*

Nice tutorial, but this failed to work both with legacy xorg-server as well as new xorg in FreeBSD10-*.

portmaster x11-severs/xorg-server yields an intermittent error:

Code:
../../../src/mesa/main/mtypes.h:3420:4: error: unknown type name 'GLDEBUGPROCARB'
   GLDEBUGPROCARB Callback;

Code:
<snip>
Making all in builtin_compiler
gmake[5]: Entering directory `/usr/ports/graphics/dri/work/Mesa-9.1.6/src/glsl/builtin_compiler'
  CXX      glsl_lexer.lo
c++: warning: argument unused during compilation: '-fno-builtin-memcmp'
In file included from glsl_lexer.ll:27:
In file included from ../../../src/glsl/ast.h:30:
In file included from ../../../src/glsl/glsl_parser_extras.h:35:
In file included from ../../../src/glsl/glsl_symbol_table.h:34:
In file included from ../../../src/glsl/ir.h:33:
In file included from ../../../src/glsl/glsl_types.h:31:
../../../src/mesa/main/mtypes.h:3420:4: error: unknown type name 'GLDEBUGPROCARB'
   GLDEBUGPROCARB Callback;
   ^
1 error generated.
gmake[5]: *** [glsl_lexer.lo] Error 1
gmake[5]: Leaving directory `/usr/ports/graphics/dri/work/Mesa-9.1.6/src/glsl/builtin_compiler'
gmake[4]: *** [all-recursive] Error 1
gmake[4]: Leaving directory `/usr/ports/graphics/dri/work/Mesa-9.1.6/src/glsl'
gmake[3]: *** [all] Error 2
gmake[3]: Leaving directory `/usr/ports/graphics/dri/work/Mesa-9.1.6/src/glsl'
gmake[2]: *** [all-recursive] Error 1
gmake[2]: Leaving directory `/usr/ports/graphics/dri/work/Mesa-9.1.6/src'
gmake[1]: *** [all-recursive] Error 1
gmake[1]: Leaving directory `/usr/ports/graphics/dri/work/Mesa-9.1.6'
*** Error code 1

Stop.
make: stopped in /usr/ports/graphics/dri

===>>> make failed for graphics/dri
===>>> Aborting update

===>>> Update for dri-7.6.1_3,2 failed
===>>> Aborting update

===>>> Killing background jobs
 
Deleting the packages graphics/dri and graphics/libGL, rebuilding them from the experimental repository and rebuilding x11-servers/xorg-server resolved this error here. It is, by the way, the reply from Mr Pédron to you (I guess) on the freebsd-stable list which gave me the solution.

My conclusion is that you must strictly follow the instructions on the AMD GPU page: Build everything from the ports with new X.Org enabled, test if it works, delete the concerned packages, use Subversion to get the experimental ports, rebuild them.
 
  • Thanks
Reactions: GDP
Thank you for this VERY interesting and helpful tutorial. I've grabbed a couple of ideas for myself, too.

The sysutils/automount, though, doesn't impress me much: it can't automount my simple USB flash drive which I mount without any problems whatsoever using the standard mount command #mount_msdosfs /dev/da4s1 /mnt/point. It says it supports FAT, exFAT, NTFS etc., but the system recognizes flash drives as msdosfs and automount says:
Code:
2013-12-18 01:40:46 /dev/da4: filesystem not supported or no filesystem

Otherwise the tutorial is VERY useful, thank you very much.
 
free-and-bsd said:
The sysutils/automount, though, doesn't impress me much: it can't automount my simple USB flash drive which I mount without any problems whatsoever using the standard mount command #mount_msdosfs /dev/da4s1 /mnt/point. It says it supports FAT, exFAT, NTFS etc., but the system recognizes flash drives as msdosfs and automount says:
Code:
2013-12-18 01:40:46 /dev/da4: filesystem not supported or no filesystem

Use THIS one as /usr/local/etc/devd/automount_devd.conf file:
Code:
notify 100 {
  match "system" "DEVFS";
  match "type" "CREATE";
  match "cdev" "(da|mmcsd)[0-9]+.*";
  action "/usr/local/sbin/automount $cdev attach";
};

notify 100 {
  match "system" "DEVFS";
  match "type" "DESTROY";
  match "cdev" "(da|mmcsd)[0-9]+.*";
  action "/usr/local/sbin/automount $cdev detach";
};

There was a bug in devd(8) that recognized all subpartitions/slices with "(da|mmcsd)[0-9]+" hence the default configuration file.

Now this is needed "(da|mmcsd)[0-9]+.*" to cover all partitions and slices.

Code:
2013-12-18 01:40:46 /dev/da4: filesystem not supported or no filesystem
The message in the/var/log/automount.log is valid, but there probably is a filesystem at /dev/da4s1 or other partition/slice.

I need to update this port with this new configuration, but lack of time does not help ;)
 
Thanks for your reply, I'll try it out :). Meantime I've got used to (like in them good old times) manually mounting the stuff, but of course, it is my determination usually to test a program to the end before I give up on it.

For example, I'm quite satisfied using devd instead of hal with Xorg -- it works perfectly well and I'm glad, because I've grown tired from Linux and its complications. There used to be problems with USB keyboard and mouse some 2 years ago, but now all works smoothly.

However, I've noticed it configuring GNOME for (HAL) automount, that the only successful way to mount a USB flash drive was to engage mount_msdosfs and not mount_vfat. So this was the way I naturally understood the refusal of automount to mount my USB FLASH drives (I have a few and tried them all) because MSDOSFS is nowhere mentioned among the supported filesystems.

So I'll try it and report back. Thanks again!!
 
free-and-bsd said:
Well, still doesn't work with the config file you suggested, gives off the same error in log file.

Assuming that this device is /dev/da4 could You sent me here the output of that command:
Code:
# find /dev/da4* | xargs file -s
 
Here:
Code:
/dev/da4:   x86 boot sector; partition 1: ID=0xb, starthead 0, startsector 32, 15633376 sectors, extended partition table (last)\011, code offset 0x0
/dev/da4s1: x86 boot sector, code offset 0x0, OEM-ID "        ", sectors/cluster 32, Media descriptor 0xf8, heads 255, hidden sectors 32, sectors 15633376 (volumes > 32 MB) , FAT (32 bit), sectors/FAT 3815, reserved3 0x1800000, reserved 0x1, serial number 0xe8498bad, unlabeled
 
All right, that fixed it indeed :D!
Put your lines into /etc/devd.conf, along with USERUMOUNT and REMOVEDIRS set to "YES" into /usr/local/etc/automount.conf and it works now. Thanks a lot!

EDIT: Tried to put the automount_devd.conf into /etc/devd rather than put the lines directly into /etc/devd.conf and it DOESN'T work, the same error message appears. Looks like devd only recognizes it when it's in /etc/devd.conf.

BTW, it proves easier than the GNOME & HAL way. The latter took me much more trouble to make it work, and even now sometimes doesn't work.
 
PCmanFM & Co

I thank you again, @taz , for your nice howto.

It eventually pushed me in a certain direction, so now I've ended up using TWM as it's MOST minimalistic. With Graham's configuration it even looks pretty elegant, I'm only missing the option to switch windows focus using Alt+Tab...
A couple of things I added to the minimalistic setup you've described:
1. PCmanFM is excellent, but in order for things to look nice i've installed icon themes etc. Without them you only have file names in the file manager window, not cool. Then icon stuff requires some of these ports like misc/shared-mime-info, graphics/gtk-update-icon-cache etc. I know, you mentioned you didn't want GTK...
2. Adding devel/gvfs and devel/gamin enables PCmanFM to see CIFS network shares, which is something I really need in all installations. So to make it work it only proved necessary to install these two (gvfs, gamin) in addition to x11-fm/pcmanfm itself, then make sure to start pcmanfm using command dbus-launch pcmanfm &. Yes, some of the dependencies somewhere installed dbus anyway...
3. Of course, I had to keep watchful to not accidentally enable HAL somewhere in dependencies (at least because my Xorg was compiled without it, so why pull it in again?).
4. Unfortunately, I can't test the effectiveness of this minimal install of mine (RAM and CPU usage), since I've just upgraded my computer to something rather powerful... But in any case, I recently grew tired of these full DE's like GNOME, regardless of how powerful the system may be. And manual installation/configuration of a custom minimal (well, comparably so) X-based system with all the necessary things proves to be VERY instructive in the way of learning how things work.
5. It's a pity Epiphany web browser, although being "extremely lightweight", pulls is the whole gnome desktop as dependency. What are they thinking about?? And Midori proved to be somewhat unstable: for some inexplicable reasons it may start up the window or... it may not and just keep running as a process. The only solution proved to be to start it in private mode, in which it is not much use as it doesn't open links and tabs... So I finally "compromised" by installing Firefox, which in turn insisted on compiling pulseaudio, which gives no sound anyway :(.
But in the way of having multiple dependencies, I've noticed most desktop applications like web-browsers and file managers all need some basic set of dependencies like docbook*, vala etc., 20-40 in number.
 
Last edited by a moderator:
Re: Didn't work in FreeBSD10-*

zennybsd said:
Nice tutorial, but this failed to work both with legacy xorg-server as well as new xorg in FreeBSD10-*.

portmaster x11-severs/xorg-server yields an intermittent error:

...
[/code]
Is it working now? At the time of your posting your problem the solution was, I think, to use a SVN code. But now it's all working fine, I've just recompiled it with new 10.0-RELEASE.
 
These How-to tutorials are Great! Thank's taz for writing it. Found lots of good information and ideas. Wish people would write more How-to's like this for different scenario's. i.e. How-to Simple File Server, How-to Blog Hosting Server, etc etc, whatever people are interested in, and dont mind sharing.

Thanks again!
 
I just got this tutorial to work fine and had a question about mplayer. I've noticed if you right click on openbox and select Mplayer from the menu, it opens the GUI but if I try to place a launcher in WBar, the GUI doesn't load. Any way to fix that?
 
Back
Top