FreeBSD: Full details
MY HARDWARE
I have a variety of computers, ranging from a desktop (Acer Veriton M460) through Thinkpads of several kinds, both 64-bit and 32-bit. All run OpenBSD but I have tried FreeBSD in the past and here I offer some comments on my experience.
Installation
Installation of the base system (no X) is easy enough although not quite as straightforward as for OpenBSD.
POST-INSTALLATION
Now you can install X and anything else you want, using the new and improved packaging system (pkg). This is much easier than installing everything via ports, which is what I had to do previously, although ports are, of course, available if you want them. Sound worked out of the box for me.
So far, so good, but I encountered a few difficulties setting things up as I wanted them. You will note that some of them concern third-party applications and not FreeBSD itself.
1. Blank black screen on exiting X
At first when this happened I thought I needed to do a hard reset using the power button to get out. Then I found I could reboot by typing the command in the (invisible) terminal, although I couldn't see anything on screen. The real solution to this problem is to put this line in /boot/loader.conf:
kern.vty=vt
2. Entering "Sleep" when lid is closed
This worked out of the box for me wth OpenBSD but it seems to be a problem in FreeBSD, to judge by the discussion on the Net. I found that it was enabled for me with this command:
sysctl hw.acpi.lid_switch_state=S3
To make it happen on boot I inserted the line in /etc/rc.conf.local. I think some machines may need something other than S3, and the command may not work for all machines.
Note added after upgrading to 10.2: lid switch and suspend to ram no longer work; in fact, they lock the computer up and I have to do a hard reset.
3. Fetchmail
I use fetchmail to collect mail from my ISP. In FreeBSD I got error warnings about certificates being incorrect, although the mail still arrived. The solution is given in the fetchmail man page: use these switches to eliminate the error messages:
fetchmail --sslproto 'SSL3' --sslcertck
4. Printing
My printer is a networked Brother HL5250DN. In OpenBSD printing worked fine with CUPS. In FreeBSD I set up CUPS without problems and a test page was printed, but I couldn't get lpr, lp, or lpq to work. This seemed to be because of a conflict with the native BSD printing commands, but stopping the BSD daemon didn't help. After a day's fruitless experimenting I followed the example of another FreeBSD user I found on the Net: I gave up on CUPS, used the BSD daemon following the setup instructions in the FreeBSD manual, and installed apsfilter. I then got good printing, using the generic Postscript driver.
Here is my /etc/printcap.
# APS1_BEGIN:printer1
# - don't delete start label for apsfilter printer1
# - no other printer defines between BEGIN and END LABEL
lp|PS;r=600x600;q=medium;c=gray;p=a4;m=auto:\
:lp=:\
:rm=192.168.1.100:\
:rp=:\
:if=/usr/local/etc/apsfilter/basedir/bin/apsfilter:\
:sd=/var/spool/lpd/lp:\
:lf=/var/spool/lpd/lp/log:\
:af=/var/spool/lpd/lp/acct:\
:mx#0:\
:sh:
# APS1_END - don't delete this
~
5. LyX on FreeBSD
I use LyX a lot, for writing books and papers and for making slides with Beamer. When I loaded a Beamer file to edit it, LyX complained that beamer.cls and a number of other files weren't on the system. I therefore installed the texlive-texmf package which is supposed to provide the necessary files. But even after reconfiguring LyX it still complained that the files were not there. After more on-line research I found I needed the tex-formats package as well. (It provides pdflatex.) FreeBSD has been criticised on DistroWatch for failing to install all needed dependencies for third-party packages.
6. Using a scanner with xsane
I have an Epson Perfection 1650 which works well with xsane on Linux and OpenBSD. There is a packaged version of xsane for FreeBSD so I installed it, but the scanner would only work as root. This is a permissions problem. There are two methods of solving it.
Method 1: modify the permissions
1. make a usb group and add yourself to it:
pw groupadd usb
pw groupmod usb -m
2. Add yourself to the operator group:
pw groupmod operator -m
3. in /etc/devfs.conf insert this line:
perm xpt0 0660
4. in /etc/devfs.rules insert these lines:
[localrules=10]
add path 'ugen*' mode 0660 group operator
add path 'usb/*' mode 0660 group operator
add path 'xpt*' mode 0660 group operator
5. Very important: activate the entry in /etc/devfs/rules by adding this to /etc/rc.conf:
devfs_system_ruleset="localrules"
6. Reboot. You should now be able to run scanimage -L and xsane as user and have them find your scanner (assuming that it is supported by sane, of course). Note that sane-find-scanner probably still won't find it as user. It does work as root.
Method 2: use the saned daemon
To do this, add these two lines to /etc/rc.conf:
saned_enable="YES"
saned_uid="root"
Then restart the machine either by rebooting or running (as root):
service saned start
Next, add this line to /usr/local/etc/sane.d/net.conf (you may just need to uncomment it):
localhost
I'm grateful to several correspondents on the freebsd-questions mailing list, especially Warren Block and Patrick Hess, for help with this problem.
CONCLUSION
FreeBSD works well as a desktop once you get it set up as you want. But this can take quite a bit of time because in some cases finding a solution to difficulties isn't easy and can need a good deal of research on line. Some of what I needed to know wasn't documented and I depended on the kindness of people answering in freebsd-questions@. For a comparison with OpenBSD, see see the taglist below.
I have a variety of computers, ranging from a desktop (Acer Veriton M460) through Thinkpads of several kinds, both 64-bit and 32-bit. All run OpenBSD but I have tried FreeBSD in the past and here I offer some comments on my experience.
Installation
Installation of the base system (no X) is easy enough although not quite as straightforward as for OpenBSD.
POST-INSTALLATION
Now you can install X and anything else you want, using the new and improved packaging system (pkg). This is much easier than installing everything via ports, which is what I had to do previously, although ports are, of course, available if you want them. Sound worked out of the box for me.
So far, so good, but I encountered a few difficulties setting things up as I wanted them. You will note that some of them concern third-party applications and not FreeBSD itself.
1. Blank black screen on exiting X
At first when this happened I thought I needed to do a hard reset using the power button to get out. Then I found I could reboot by typing the command in the (invisible) terminal, although I couldn't see anything on screen. The real solution to this problem is to put this line in /boot/loader.conf:
kern.vty=vt
2. Entering "Sleep" when lid is closed
This worked out of the box for me wth OpenBSD but it seems to be a problem in FreeBSD, to judge by the discussion on the Net. I found that it was enabled for me with this command:
sysctl hw.acpi.lid_switch_state=S3
To make it happen on boot I inserted the line in /etc/rc.conf.local. I think some machines may need something other than S3, and the command may not work for all machines.
Note added after upgrading to 10.2: lid switch and suspend to ram no longer work; in fact, they lock the computer up and I have to do a hard reset.
3. Fetchmail
I use fetchmail to collect mail from my ISP. In FreeBSD I got error warnings about certificates being incorrect, although the mail still arrived. The solution is given in the fetchmail man page: use these switches to eliminate the error messages:
fetchmail --sslproto 'SSL3' --sslcertck
4. Printing
My printer is a networked Brother HL5250DN. In OpenBSD printing worked fine with CUPS. In FreeBSD I set up CUPS without problems and a test page was printed, but I couldn't get lpr, lp, or lpq to work. This seemed to be because of a conflict with the native BSD printing commands, but stopping the BSD daemon didn't help. After a day's fruitless experimenting I followed the example of another FreeBSD user I found on the Net: I gave up on CUPS, used the BSD daemon following the setup instructions in the FreeBSD manual, and installed apsfilter. I then got good printing, using the generic Postscript driver.
Here is my /etc/printcap.
# APS1_BEGIN:printer1
# - don't delete start label for apsfilter printer1
# - no other printer defines between BEGIN and END LABEL
lp|PS;r=600x600;q=medium;c=gray;p=a4;m=auto:\
:lp=:\
:rm=192.168.1.100:\
:rp=:\
:if=/usr/local/etc/apsfilter/basedir/bin/apsfilter:\
:sd=/var/spool/lpd/lp:\
:lf=/var/spool/lpd/lp/log:\
:af=/var/spool/lpd/lp/acct:\
:mx#0:\
:sh:
# APS1_END - don't delete this
~
5. LyX on FreeBSD
I use LyX a lot, for writing books and papers and for making slides with Beamer. When I loaded a Beamer file to edit it, LyX complained that beamer.cls and a number of other files weren't on the system. I therefore installed the texlive-texmf package which is supposed to provide the necessary files. But even after reconfiguring LyX it still complained that the files were not there. After more on-line research I found I needed the tex-formats package as well. (It provides pdflatex.) FreeBSD has been criticised on DistroWatch for failing to install all needed dependencies for third-party packages.
6. Using a scanner with xsane
I have an Epson Perfection 1650 which works well with xsane on Linux and OpenBSD. There is a packaged version of xsane for FreeBSD so I installed it, but the scanner would only work as root. This is a permissions problem. There are two methods of solving it.
Method 1: modify the permissions
1. make a usb group and add yourself to it:
pw groupadd usb
pw groupmod usb -m
2. Add yourself to the operator group:
pw groupmod operator -m
3. in /etc/devfs.conf insert this line:
perm xpt0 0660
4. in /etc/devfs.rules insert these lines:
[localrules=10]
add path 'ugen*' mode 0660 group operator
add path 'usb/*' mode 0660 group operator
add path 'xpt*' mode 0660 group operator
5. Very important: activate the entry in /etc/devfs/rules by adding this to /etc/rc.conf:
devfs_system_ruleset="localrules"
6. Reboot. You should now be able to run scanimage -L and xsane as user and have them find your scanner (assuming that it is supported by sane, of course). Note that sane-find-scanner probably still won't find it as user. It does work as root.
Method 2: use the saned daemon
To do this, add these two lines to /etc/rc.conf:
saned_enable="YES"
saned_uid="root"
Then restart the machine either by rebooting or running (as root):
service saned start
Next, add this line to /usr/local/etc/sane.d/net.conf (you may just need to uncomment it):
localhost
I'm grateful to several correspondents on the freebsd-questions mailing list, especially Warren Block and Patrick Hess, for help with this problem.
CONCLUSION
FreeBSD works well as a desktop once you get it set up as you want. But this can take quite a bit of time because in some cases finding a solution to difficulties isn't easy and can need a good deal of research on line. Some of what I needed to know wasn't documented and I depended on the kindness of people answering in freebsd-questions@. For a comparison with OpenBSD, see see the taglist below.
Comments
Display comments as Linear | Threaded