FreeBSD is a fast, secure, modern operating system with a fantastic community, great documentation, and powerful technologies like ZFS and LLVM. It’s my operating system of choice for everything from my beefy i7-2600k desktop to my home router to my ARM plug computer jukebox. Though famed for its uptime in the datacenter the same OS is just as suited to desktop or laptop computing with a little work. Why use FreeBSD?
Maybe I’m just getting old, but it’s nice to use an operating system that didn’t spawn a billion-dollar anti-malware industry through frequent security failings, where you can choose the interface you like and reasonably expect it to stay that way instead of being forced into the, where you don’t have to argue about the init system being replaced in the same decade, and whose key organizations don’t collectively when convenient. I’ve used many operating systems and have yet to find one more consistent and cohesive yet as well-supported as the BSD family, and FreeBSD is the one with the biggest community and most available drivers for things like graphics cards. “FreeBSD on the server, Linux on the desktop” is an oft-seen sentiment among some FreeBSD enthusiasts, and it’s sort of understandable considering the conservative out-of-the-box FreeBSD installation. Despite that, FreeBSD is just a few settings away from being an easy, powerful Desktop OS rivaling Linux, complete with the same software ecosystem available through the Ports collection. Unlike Linux where everything including the kernel is a package, FreeBSD is developed in a single source tree and released on a set schedule – twice a year – as a complete operating system on top of which you can install third-party software. The page tracks the release history and schedule. Two major branches see releases in parallel, and major branches tend to live for two years (four minor versions) after their x.0 release.
FreeBSD 10.x is currently the newest release branch with 9.x in maintenance mode and major development happening on 11.x. This guide attempts to show users with various hardware configurations the best way to configure a usable modern workstation running FreeBSD based on my own experience with Emi, my FreeBSD workstation. There are projects such as PC-BSD and GhostBSD that can give you a good out-of-the-box desktop FreeBSD experience, but I find them disconnected from the underlying operating systems because they dump you into KDE or XFCE and attempt to hide as much of FreeBSD as possible behind graphical configuration. That’s not a bad thing, and I’m glad those projects exist, but this guide gets there in the other direction. You will install FreeBSD, learn how it works, and configure it into a great desktop. Compare this guide to something like or a and you’ll see what a breeze this really is. New Installations The page has links to ISOs for the six architectures.
This guide focuses on amd64/i386 PCs though is broadly applicable to them all. The ISOs are available in bootonly, CD, DVD, and memstick. I usually grab the nearest 1GB USB drive and the newest memstick image to it.
The larger DVD images are available complete with Ports distribution files for those doing fully-offline installations. Starting with 10.1 you also have the choice of uefi images, that being the first release to ship with the EFI version of the loader.
Sep 28, 2018 - Page 9. Key part of android-x86 runtime drivers configuration. Live CD & hard disk installation, Auto Update feature. Enumerates displays. Root cause identified in gbm gralloc Usage Flags for HWC buffer. 2015-2-17 Now, before anything, makes sure your tablet / android device is charged up, 100% charge is nice. Once extracted, and before attaching your tablet to your PC, run the file ‘LiveSuitPack_1.11.exe’ from within the Livesuit folder. This should install a new device on your system (VID_1f3a_PID_efe8).
Give it a shot if you have a computer with UEFI instead of an old-school BIOS, but be warned it is new and still sensitive to UEFI implementations that are incomplete or deviate from the standard. Booting it on my Macbook, for example, leaves me with a useless black screen console despite everything running correctly in the background (, but Apple are well-known for their shoddy UEFI implementation.
Boot the chosen installation media via whatever means your computer can (EFI boot menu, BIOS setting, fallback) and get ready to install. FreeBSD will boot to and offer to Install, load an interactive rescue shell, or just boot normally off the installation disk. Choose Install, choose the keyboard mapping appropriate for your computer, and enter a hostname for your machine. When asked to choose system components I recommend selecting all of them.
Doc is useful to have locally if your Internet connection isn’t working, and system src is needed for some Ports to build and install. Disks On the next screen, Partitioning, select either the Auto (ZFS) option or the Auto (UFS) option. UFS is the traditional and is usable on any machine. It is fragile in the case of power loss or crashes unless journaled., on the other hand, is both a volume (pool) manager and a great filesystem. I strongly recommend ZFS for modern computers due to its resilience and rich feature set that makes it very practical for desktop use. It checksums your data constantly to ensure integrity and prevent silent corruption on-disk, and its copy-on-write model never overwrites blocks, eliminating the.
It supports snapshots, allowing you to snapshot a filesystem at an arbitrary point in time and roll back to it at will, like Apple’s Time Machine, and snapshots can be sent seamlessly across a network for incremental backups. It supports SSD cache devices to speed up reads and writes of pools backed by magnetic hard drives. It can deduplicate files, reducing the on-disk space for files that are significantly identical at the cost of lots of RAM. Achieving these features makes ZFS very memory-hungry.
Plan to have 1GiB of physical memory for every 1TB of space in a zpool and much more if deduplication is used. ZFS can be for tighter memory limitations, but very limited systems should use UFS instead. Most modern machines should not need to tune ZFS at all.
It will use the memory available to it but also respond to memory pressure when other processes need RAM. Assuming you choose ZFS, set up your zpool. The pool can be a single disk (still called stripe but just striped with itself), a mirror, or any combination of disks in RAID-Z.
Name the pool something. I usually name boot pools after the hostname of the machine and then data pools by function. The other ZFS options are dictated by your hardware. If you have an hard disk (any made in the last few years) or an SSD you should force 4k sectors. If your computer has a recent Intel or AMD CPU supporting there is very little downside to encrypting your pool.
I recommend it for any pool that doesn’t need to automatically mount at boot, i.e. I use encryption on my workstation but not on my FreeBSD router.
Encrypting multiple physical devices with the same key will only require the passphrase once. You will be prompted for the passphrase while the kernel has loaded and is detecting hardware. On my system the passphrase prompt usually gets buried under my USB devices as the kernel enumerates them, so if you find yourself stuck there at boot hit a few keys and Enter to make the passphrase prompt reappear. Use (GPT) if your computer uses EFI.
![Install Root Enumerated Driver Live Suite Android Install Root Enumerated Driver Live Suite Android](http://4.bp.blogspot.com/-_gsjpdKOA0A/VWwBSAebA8I/AAAAAAAABCk/IgzptNDGv9s/s1600/live_suit04.png)
PCs with BIOS most likely need to use a legacy. GPT is a requirement to use disks over 2TB in size because MBR can address a maximum of 2 32 x 512 bytes, just larger than 2TB. The amount of swap space you use if any is dictated by the amount of memory in your computer and the loads you plan to place on it.
Conventional wisdom says to use a swap size double the amount of physical memory in the machine, but I find that to apply less and less when you get up into double-digit gigabytes of RAM. My computer has 16GiB or physical memory and 8GiB of swap space defined. On some systems I don’t touch swap at all, but I recommend having at least some. You can enlarge it later. Finish Once your disks are set up the installer will copy files and prompt you for the base configuration of things such root password, time zone, and network options. It will ask you to add at least one non-root user.
When creating your personal user account be sure to invite it to the wheel and operator user groups. Wheel membership is necessary to gain root privileges for administration tasks, and you will assign operator device permissions later in this guide. When prompted you can remove the install disk and reboot into your new system! Upgrading Are you running a previous version already? The upgrade process is covered in full in of the Handbook, but assuming you are running the stock GENERIC kernel the process is very simple using freebsd-update. Check mysection for specific version instructions.
First, fetch the new system using freebsd-update install by specifying the -r argument. Without -r it will just fetch security and errata updates for your current minor version. You can upgrade to a new minor version in your current major or to a new major version entirely.
If you’re upgrading to a new major version, go to the.0 release first. Don’t upgrade from, say, 8.4-RELEASE to 9.3-RELEASE, but to 9.0-RELEASE first and then to 9.3. freebsd-update upgrade -r 10.1-RELEASE upgrade is interactive and will ask you to confirm the system components it thinks you have installed. Once it fetches the updated system files you can begin the installation process. freebsd-update install This will install the new kernel but not any non-kernel OS components like userland executables. Reboot via shutdown -r now, reboot, or a swift kick to the power switch. When the system comes up, log in as root and install the new userland by re-running the install command.
freebsd-update install At this point your OS itself is ready to go but your Ports need to be updated to run on the new major version via your, such as pkg update && pkg upgrade, portupgrade, or portmaster. It is alternatively possible to maintain ABI compatibility with an older major version of FreeBSD by installing a compatibility library package such as, but you shouldn’t unless you need it for a particular binary that isn’t available as source to build for the new version. Once that’s done you can run freebsd-update install one last time to chean out the shared libraries from the previous version.
Reboot once more to your final updated system. First Boot Log in as root with the password you configured in the installer. You are now a FreeBSD user! The FreeBSD base system is a fully-featured operating system but as you can see does not contain a graphical environment or any third-party software like your typical Linux distribution. Before installing any of that you should configure your new system to be a better desktop. FreeBSD’s roots are in academia and the datacenter, so its default configuration is very conservative. The desktop or laptop computer you are most likely using is vastly more powerful than some of the configurations that will run FreeBSD, so there is room to grow without being unreasonable.
You will need a text editor to edit configuration files. The base system ships with (not vim!) but for most users I would recommend. It’s part of the base system and is a simple but fully-featured editor like nano from the Linux world. If you aren’t happy with ee there are plenty of great editors you can install from Ports, like, but let’s continue.
If you aren’t entirely comfortable with editing config files you can re-access the graphical configuration screen from the installer by running as root, but I don’t think you’d be reading this page if that’s the case:) UTF-8 The LANG=xxYY.ZZZZ sets the system to language code xx, country code YY, and ZZZZ. Language and country code affect default application language, number formatting, date and time formatting, string collation, currency settings, and more. By enabling a locale using UTF-8 character encoding, the system can understand and display each of the 1112064 characters in the, instead of just US ASCII as is default with LANG=C. Check locale -a grep UTF-8 for a list of every available UTF-8 locale on your computer.
As an American anglophone, I use enUS.UTF-8. Edit the login class capability database in /etc/ to add a default character set and locale. Login shells will inherit the environment variables defined here in the default class or in a narrower class if it matches one. /etc/login.conf.
login.conf.default 2012-01-02 17:91477 -0500. login.conf 2012-01-02 17:13774 -0500. @@ -44,7 +44,9 @@.:pseudoterminals=unlimited:.:priority=0:.:ignoretime@:.:umask=022:. +:umask=022:. +:charset=UTF-8:. +:lang=enUS.UTF-8: Rebuild the login database with capmkdb /etc/login.conf after making changes.
You may have to specify the new locale elsewhere (like /etc/profile ) for non login shell uses such as GDM and other login managers. Locale. LANG=enUS.UTF-8.
LCCTYPE='enUS.UTF-8'. LCCOLLATE='enUS.UTF-8'. LCTIME='enUS.UTF-8'. LCNUMERIC='enUS.UTF-8'. LCMONETARY='enUS.UTF-8'.
LCMESSAGES='enUS.UTF-8'. LCALL=enUS.UTF-8 Build Settings Some third-party software options can only be set at compile time. Here are a few you should consider before getting started installing things. The toolkit has some options that can be set via any combination of the following knobs. If you change the QT4OPTIONS after Qt is installed you will need to rebuild. is a selectable theme engine that lets Qt applications integrate more closely with environments and can be enabled with the QGTKSTYLE Qt4 option.
You should enable this option if you plan to use a GTK+-based desktop environment like MATE or XFCE. Once built you can select the GTK+ visual style in qt4-qtconfig. CUPS is the standard printing engine on Free Unix-like systems. Support for it in Qt can be enabled with the CUPS Qt4 option. is a network transparent client/server audio transport system and can be enabled in Qt applications by setting the NAS Qt4 option. echo 'QT4OPTIONS= CUPS QGTKSTYLE NAS' /etc/make.conf Tuning and drivers Change a few variables to enhance the experience of FreeBSD on the desktop, including expanding the amount of shared memory, tuning the for desktop use, and increasing the limit of simultaneously-open files to something sensible.
/etc/sysctl.conf. # Enhance shared memory X11 interface.
kern.ipc.shmmax=67108864. kern.ipc.shmall=32768. # Enhance desktop responsiveness under high CPU use (200/224). kern.sched.preemptthresh=224.
# Bump up maximum number of open files. kern.maxfiles=200000. # Disable PC Speaker.
hw.syscons.bell=0. # Shared memory for Chromium.
kern.ipc.shmallowremoved=1 Some knobs can only be set at boot by the by setting them in /boot/loader.conf. This is also where we define kernel modules to load at boot. /etc/rc.conf. # Remote logins. sshdenable='YES' Mounts The and virtual filesystems are not a default part of BSD but are frequently required for compatibility with programs and environments written with Linux in mind, such as GNOME/MATE and KDE.
The FreeBSD equivalent is, but you can mount /proc too if you plan to use software requiring it. Some special filesystems like fdescfs must be mounted late on ZFS-rooted systems since the location of their mountpoint won’t exist until late in the boot process. /etc/sysctl.conf. # Allow users to mount disks. vfs.usermount=1 If you neglected to add your personal user account to the wheel and operator groups at creation, now is a good time to do so. Wheel membership lets you use to become root, and operator membership is required for device permissions in this configuration.
In this example my user is nicole. Substitute it for yours. pw usermod nicole -G wheel. pw usermod nicole -G operator Device Permissions Relax default permissions on the to allow normal users access to a variety of disks and input/output devices. Permissions for devices existing at boot time are set in. Each line defines a full device path and octal permission value.
Cat /dev/sndstat. FreeBSD Audio Driver (newpcm: 64bit /amd64). Installed devices:. pcm0: (play). pcm1: (play).
pcm2: (play). pcm3: (play).
pcm4: (play/rec). pcm5: (play/rec). pcm6: (play). pcm7: (play). pcm8: (play) default. pcm9: (rec) The hw.snd.defaultunit sysctl variable controls the default audio output. I want to use the S/PDIF output of my onboard Realtek audio, pcm6, so I set hw.snd.defaultunit to 6.
Enabling the hw.snd.defaultauto boolean will automatically assign hw.snd.defaultunit to newly-attached devices. /etc/sysctl.conf. # S/PDIF out on my MSI board. hw.snd.defaultunit=6. # Don't automatically use new sound devices. hw.snd.defaultauto=0 Networking If you didn’t enable networking during the install process now is a good time to do so. Here as an example is my computer, emi, a desktop with a wired network.
I have a Realtek interface, re0. The name of your interface may vary based on the driver it uses.
Most drivers are built into the GENERIC kernel, so your interface should be visible by running ifconfig. Common drivers you may see include for Intel PRO interfaces, for Realtek interfaces, and for Midway interfaces. Read more about network configuration to learn about other possible configurations.
Wired You can use DHCP and SLAAC auto-discovery on most home networks. /etc/rc.conf. hostname='emi.aloe.cooltrainer.org'. ifconfigre0='inet 172.16.0.40 netmask 255.240.0.0 broadcast 172.31.255.255'. defaultrouter='172.16.0.1'. ifconfigre0ipv6='inet6 2001:370:10f5:806::40 prefixlen 64'.
ipv6defaultrouter='2001:370:10f5:806::1' Wireless For WiFi configuration, see the section of the Handbook. I sometimes tether my desktop to my Android phone using a B/G USB interface.
It’s as simple as defining a new virtual wlan interface on run0, configuring for the WPA pre-shared key, and specifying the SSID and encryption standard (WPA). /etc/sysctl.conf. # Accept IPv6 router advertisements. net.inet6.ip6.acceptrtadv=1 Firewall You should run a firewall. Windows, OS X, and many Linux distributions ship with a default firewall ruleset.
FreeBSD does not, because there is no one-size-fits-all firewall configuration, but it does include one of the best software firewalls in the world, courtesy of the OpenBSD project. Configuring a firewall can be a very complex topic. There are on the matter. Shown here is the ruleset from my computer. It has rules for a single network interface defined at the top of the file in the extif macro. Change it to the name of your computer’s interface as seen in ifconfig.
The macros on the next few lines define the TCP and UDP ports on which this ruleset will allow incoming connections. My computer runs an SSH server on the default port, runs on port 443 (HTTPS), and has control ports for in the 60000 range. You can open ports for additional services by defining them in those macros. The named services like ssh are defined in /etc/. /etc/rc.conf.
haldenable='YES'. dbusenable='YES' With Radeon, Intel, or otherwise This section explains how you should configure X for systems using an AMD Radeon and the driver, an Intel grahpics chip with the driver, virtualized graphics cards like ’s vboxvideo, or any other generic framebuffer device supported by the default driver. As root, run X -configure.
It will spit out a new in /root/xorg.conf.new based on your detected hardware. Copy this file to /etc/X11/xorg.conf, then pull it up in a text editor for a few modifications. Add an “Extensions” section and enable the extension. Section 'Extensions'. Option 'Composite' 'Enable'.
EndSection Add one line to the ServerLayout section to enable. Section 'ServerLayout'. Identifier 'X.org Configured'. Screen 0 'Screen0' 0 0. InputDevice 'Mouse0' 'CorePointer'. InputDevice 'Keyboard0' 'CoreKeyboard'. Option 'AIGLX' 'true'.
EndSection I usually enable the AccelMethod and DRI by adding their respective lines to the Device section. If you have a Radeon card ensure your Driver is configured as radeon, not radeonhd! Is an older, Novell-sponsored, driver for Radeon HD hardware, but -configure likes to pick it by default if it’s installed. You should use radeon instead. Otherwise X -configure should pick the best driver. Section 'Device'.
Option 'AccelMethod' 'EXA'. Option 'DRI' 'true'. Identifier 'Card0'. Driver 'radeon'.
VendorName 'Advanced Micro Devices AMD nee ATI'. BoardName 'RV770 Radeon HD 4850'. BusID 'PCI:1:0:0'. EndSection Enable the freetype, bitmap, and type1 X font modules by adding them to the Module section.
According to the manual, “the extmod, dbe, dri, dri2, glx, and record extension modules are loaded automatically if they are present”, but I like to go for the explicit configuration and define them anyway. Section 'Module'. Load 'dbe'.
Load 'dri'. Load 'dri2'.
Load 'extmod'. Load 'record'.
Load 'freetype'. Load 'bitmap'. Load 'type1'. Load 'glx'.
EndSection With NVIDIA Skip this section if you don’t use an NVIDIA graphics card. The binary is the only proprietary software on my system. As much as I’d prefer a free and open solution, I’ve found that neither Nouveau nor the free Radeon or Intel driver compare to the speed and feature support of Nvidia’s official driver. Install the driver itself,. To load the nvidia kernel module at boot, enable it in /boot/loader.conf.
echo 'nvidiaload='YES' /boot/loader.conf Run nvidia-xconfig to get a base in /etc/X11/xorg.conf. Pull it up in your favourite text editor and add the Module section to enable the freetype2, glx, type1 extensions. /etc/X11/xorg.conf. Section 'Module'.
Load 'freetype'. Load 'bitmap'. Load 'type1'. Load 'glx'. EndSection Later on, once you’re booted into the graphical environment, you can use nvidia-settings to configure TwinView and any other settings. Install fonts X.org doesn’t include many attractive typefaces by default. Luckily, there are plenty.
Here are a few I use, including many from non-Roman languages for better Unicode coverage. and for Chinese coverage. and for Hebrew language coverage., and for Japanese language coverage., and for Korean language coverage., and for terminals and editors., and for general Roman alphabet language coverage. for Telugu language., and as novelty typefaces.
for Khmer language coverage. for Myanmar language coverage. and for technical and mathematic symbols., and for Cyrillic and Eastern European language coverage. Is a special case. It includes the such as Andale and Verdana.
If you own a valid Microsoft Windows license you can get Tahoma as well by adding to /etc/make.conf first. /usr/local/etc/PolicyKit/PolicyKit.conf. MATE doesn’t include a GDM alternative, so start it with exec mate-session in your.xinitrc. Compiz is a popular alternative window manager with MATE and GNOME 2 users. It gives you those fancy wobbly windows, 3d cubes, and all kinds of flashy stuff. You can install Compiz-Fusion from. Be sure to disable the obsolete and unmaintained window decorator, a leftover from the Beryl project, when prompted on the port configuration screen.
With Emerald disabled, compiz will default to gtk-window-decorator and will take on your normal GTK theme appearance but with more transparency and garish animation. Once installed, open Settings Preferences CompizConfig Settings Manager. You’ll probably want to enable the following plugins at minimum:.
General: Gnome Compatibility. Desktop: Desktop Cube, Rotate Cube. Effects: Animations, Window Decoration, Wobbly Windows. Window Management: Application Switcher, Move Window, Place Windows, Resize Window Open the “Run” box with Alt+F2 and execute compiz-manager. Compiz-manager is a script for detecting and using the proper compiz options for your video hardware. Your screen will flash while Compiz and gtk-window-decorator initialize and replace Marco, MATE’s default window manager.
If your windows are missing titlebars, double-check you’ve enabled “Window Decoration” in ccsm. If all seems well, add compiz-manager as a new startup application (in Settings Preferences Startup Applications), then change MATE’s window manager preference in DConf:.
gsettings set org.mate.session.required-components windowmanager compiz To switch back, use the same command with the argument marco. Window Maker It isn’t as popular or well-known as the others here, but is my favorite and longest-used window manager. It is based on the look and feel of the operating system, the OS that became Rhapsody and then Mac OS X and iOS. Unlike the extremely limited one-dimensional Mac OS X dock, Window Maker offers a main dock as well as a “clip” dock that is unique to each virtual desktop. Docks can hold normal launchers and “dockapps”, small self-contained dock accessories.
You can install Window Maker from and start it with exec wmaker in your.xinitrc. In addition, I also show,. The first time you start Window Maker you should run wmaker.inst to install the starter configuration to your /GNUstep directory. Enlightenment was the original eye-candy desktop before modern compositors were even a thing.
Is the ambitious rewrite release that almost never came out until got it out the door. It contains an eye-catching desktop built on the project’s own. E17 is shiny, bouncy, extendable, and very configurable. You can install it from and run it with exec enlightenmentstart in your.xinitrc. XFCE descends, like, from the design of the once-proprietary.
As of XFCE 4.0, however, the desktop has become more of a GNOME-lite, the “other” GTK+ desktop environment. I don’t have much to say about it, but it is a very functional and lightweight desktop with panels, a window manager, a great file manager (Thunar), and some other lightweight applications like a terminal. You can start XFCE with exec startxfce4 in your.xinitrc. Cinnamon is a GTK 3 desktop environment from the Linux Mint project. It began as a fork of the GNOME 3 Shell into a more traditional panels and menus UI since many were dissatisfied with the drastic redesign of a beloved environment.
It’s come into its own as a modern DE and offers everything you would expect from GNOME 2 or MATE with a cohesive feel and forks of several of the. The only reasons I strongly preferto Cinnamon are the dearth of great GTK+ 3.x themes and Cinnamon’s inability to have more than a single panel in a multiple-monitor setup, but the latter looks to be getting some traction as of late 2014.
You can install Cinnamon from and start it with exec cinnamon-session in your.xinitrc. There is also a fallback software-rendering mode that can be started with exec cinnamon-session-cinnamon2d instead. No screenshots of this one since it won’t run in VirtualBox with any combination I can find of 3D/ cinnamon2d and vboxvideo / vesa. Shoot me an email if you know how to make it behave otherwise check out screenshots of Linux Mint Cinnamon Edition on their. GNOME 3, available on Linux since 3.0 in the spring of 2011, is finally available in the official FreeBSD tree as of November 2014. The three and a half year delay is thanks to the upstream GNOME project’s against any operating system that doesn’t have a penguin for a mascot.
It took several years and a vastly waning userbase, then suddenly again. Either way, it’s here and you can install it from. Weweren’t missing much in the delay, since the GNOME team great about their once-ubiquitous DE and turned it into a shiny but unconfigurable iOS imitator where basic features and options are either, buried inside a more reminiscent of Windows 98 than BSD, or relegated to extensions that will thanks to the lack of any stable extensions API and whose very existence are by many of the main project contributors.
Take a look at the page with me and be amused that you need an extension to, remove the otherwise-omnipresent from the status bar, or even without knowing about the. If you want a great GTK-based desktop environment maintained by a team that doesn’t hate you, check out,. All three are excellent. I guess I can thank the GNOME project’s self-destruction for getting me back into. Theming Finding Clearlooks too drab and blue? You can find a world of themes and icons for MATE over on, for KDE at, for XFCE at, for E17 at, and for several lightweight window managers at. There are several attractive and usable themes buried among the OS X Aqua clones, Vista Aero clones, and black-as-my-soul darkness-fests that are standard on any theming website.
![Windows Windows](/uploads/1/2/5/5/125541330/306620731.png)
You can change theme settings for Qt4 applications with qt4-qtconfig and for KDE Qt applications (like Clementine) in the. GTK+ is selectable in many window managers’ appearance preferences, and you can also install for a light GTK theme switcher.
Starting X The shell script.xinitrc in your home directory is the script that is executed for the lifecycle of your X session.xinitrc is used to run startup applications and then run your window manager. When you finally end your X session your window manager will exit,.xinitrc will return, and the X server will stop. /.xinitrc. xscreensaver -no-splash &. xdg-user-dirs-update &. redshift &.
compton &. exec wmaker In my example.xinitrc I useand start, and the lightweight compositor. This example script takes an argument to allow a choice of window managers. You can start an X session with startx or xinit to supply the argument to.xinitrc. Starting your graphical session after logging in on a TTY is the traditional way, but I like to use a graphical login manager,.
It is like KDM or GDM but with no dependency on a particular desktop environment. After installing it you can configure the sessiondir directive in the SLiM configuration file to define the path to installed by your ports, usually /usr/local/share/xsessions. Use exec $1 instead of a particular executable name in your.xinitrc to run the command from SLiM passed in as an argument. You can switch session with the F1 key on the login screen.
/usr/local/share/xsessions/wmaker.desktop. Desktop Entry. Encoding=UTF-8. Name=Window Maker. Exec=/usr/local/bin/wmaker. Comment=This session logs you into Window Maker.
Type=Application Extras and Miscellany Printing is the standard for printing on Free Unix-like systems and can be installed from Ports along with any needed filters. Install the CUPS meta-port at.
Install in for HP printer drivers (and my Brother HL-2170W, for some reason). Install the filter collection in and its database and engine in and, respectively. I find the CUPS-PDF virtual printer in very useful as well. Enable CUPS once installed. /etc/rc.conf. # Disable line printer daemon since we have CUPS.
lpdenable='NO'. # Enable CUPS. cupsdenable='YES' Add local users to the cups group if you want them to be able to print.
pw usermod root -G cups. pw usermod nicole -G cups Start the CUPS service with service cupsd start and you should be able to access its web configuration UI at in your web browser. It may prompt you for your root password to write the config files in /usr/local/etc/cups.
Most full desktop environments include a GUI to control CUPS and add printers, but the web interface is available in any of them. The web interfaces’ built-in documentation can help you configure different models of printer, specifically the and sections. Installs smartd and smartctl, a daemon and utility for checking the status of your local disks. Enable the sample smartd.conf. It contains one directive, DEVICESCAN, that causes smartd to scan all attached drives. cp /usr/local/etc/smartd.conf.sample /usr/local/etc/smartd.conf. echo 'smartdenable='YES' /etc/rc.conf.
service smartd start You can check the S.M.A.R.T. Status of a drive directly with smartctl as root. The -H flag will show basic pass or fail health status, and the -a flag will show everything. Smartctl -H /dev/ada0.
smartctl 6.2 2014-02-18 r3874 FreeBSD 10.0-RELEASE-p2 amd64 (local build). Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.org. START OF READ SMART DATA SECTION. SMART overall-health self-assessment test result: PASSED Java FreeBSD has several available Java providers, including and Sun's Oracle’s JDK. I recommend the newest OpenJDK for most people. It’s far easier to install than the binary Oracle JRE which requires logging in to a web page, agreeing to the license, and manually downloading the distfile for Ports. At the time of this writing the newest OpenJDK is.
OpenJDK 6 and 7 are available as well if you have software that doesn’t run on Java 8. If you need a Java browser plugin you can build and install once a Java provider is available. Webcams and DVB Most USB webcams and many DVB tuners are supported by, and webcamd depends on the userland character device driver in. Install them, then enable them in rc.conf and loader.conf. /boot/loader.conf. # Userland character device driver for webcams.
cuse4bsdload='YES' You can use your camera device with available in or with in. Cheese provides a nice interface similar to Apple’s Photobooth on OS X, but it has a heavy GNOME library dependency some may not want on their systems. IBus is a modern IME for Unix-like systems, allowing one to input languages. Install the main IME from as well as QT application support from. You’ll need one or more input methods once the IME itself is installed. Ports of interest:.
Chewing engine for IBus. The PinYin input method. Anthy engine for IBus. Mozc engine for IBus. SKK engine for IBus.
Hangul engine for IBus. KMFL IMEngine for IBus framework. The m17n IMEngine for IBus framework. Table based IM framework for IBus Heavyweight desktop environments like GNOME or KDE will let you configure the input method graphically. In GNOME 2 and MATE, for example, you can open the IBus preferences from the Settings Preferences menu. KDE/Qt users can enable it as the default IME in qtconfig-qt4.
Lightweight window manager users like me can start it in.xinitrc. /.xinitrc. export XMODIFIERS='@im=ibus'.
export GTKIMMODULE='ibus'. export QTIMMODULE='ibus'.
exec ibus-daemon -d -x & Now run any GTK or QT application, press your keyboard shortcut to switch input methods, and test it out. Linuxulator FreeBSD’s allows it to run Linux application binaries using. Desktop users will find it useful for running the handful of proprietary but necessary programs that are available for Linux but not for FreeBSD, such as. Install the Linux base distribution from Ports. As I write this the default base distribution is, based on CentOS 6, replacing the old Fedora 10 based.
Unless you need to use a particular f10 -only application (like) you should prefer the modern base, overriding the default in and switching to the necessary kernel version in before doing the installation. /etc/fstab.
linproc /compat/linux/proc linprocfs,auto,late rw 0 0 Besides proprietary garbageware like Flash Player I also use Linuxulator along with the to run ’s Linux ports of some of the best PC games ever made, like Simcity 3000 Unlimited. Wine Wine is a free implementation of the Win32 API capable of running real Windows applications on Unix-like systems. It’s available from or, containing the latest stable and unstable versions respectively. The optional support is an mshtml.dll replacement that will allow Windows programs to embed web pages using the Mozilla engine. The optional will let Wine run Windows programs written in versions 1.x or 2.0 of the without using the proprietary.NET runtime.
You can also download, a script containing Wine installation recipes for popular software, and you may find a Wine GUI such as useful for maintaining separate Wine prefixes. FreeBSD currently lacks the ability to install 32-bit ports on a 64-bit system, normally precluding an amd64 user from installing a 32-bit Wine capable of running 32-bit Windows applications. As a workaround, David Naylor maintains. You can install them from.
If you plan to use Wine to run, use the compholio -patched version of wine in or instead. Wine is very impressively-compatible these days. I use it to run a lot of games from and so I don’t have to fire up a Windows computer or VM.
Wine is so good it is used to create the Linux versions of many of these titles, such as, and in that case it’s a lot easier to run the same executable in FreeBSD Wine than to try and get the Linux Wine binaries running via. If every wine command fails with ELF interpreter /libexec/ld-elf.so.1 not found your 64-bit system is missing the 32-bit libraries necessary for Wine. You’ll need to install them. From the, grab the lib32.txz matching your version of the OS and extract it either as root or with sudo to the root of your filesystem to install. The archive contains a full directory hierarchy so all the files will end up in the right place.
fetch ftp://ftp.freebsd.org/pub/FreeBSD/releases/amd64/10.1-RELEASE/lib32.txz. tar xfp lib32.txz -C / Browser Plugins is not released for FreeBSD but is usable on FreeBSD i386 and amd64 through your choice of two wrappers. The 32-bit Linux version of the Flash plugin can be installed via or, executed through, and adapted to 32-bit or 64-bit native browsers with, though it is important to note Adobe for the NPAPI Linux version of Flash with version 11.2 back in 2012.
They left development up to Google who only release a version as part of their proprietary Chrome browser bundle, something that isn’t even available for FreeBSD. Even Chromium will be unable to use NPAPI Flash after 2014 as Google support from Chromium and Chrome starting in version 32. For now you can still use it in Firefox and other NPAPI browsers, but I think it’s just time to say goodbye to this old version or to Flash in general if you can help it. To use nspluginwrapper, make sure linprocfs is mounted and execute nspluginwrapper -v -a -i as your normal user to locate and enable the Linux Flash plugin.a automatically finds available plugins and -i installs them. It’s important to remember it makes a copy of the Flash library in your home directory when you do this, so every time you update the version of Flash installed through Ports you need to remove your local cory with nspluginwrapper -v -a -r and install the new one with nspluginwrapper -v -a -i.
Adobe promised security updates for the NPAPI Flash Player through 2017, and if history is any indication. A newer and arguably better solution is, a-based wrapper for Windows browsers plugins. It supports the very newest version of Flash, freeing us from the limitations of 11.2, and also supports Shockwave, Silverlight, Unity, and more.
It requires a special patched version of Wine,. Once installed, activate plugins as root.
pipelight-plugin -create-mozilla-plugins. pipelight-plugin -enable flash Silverlight is available as well and can allow you to watch DRMed NetFlix content via your browser on FreeBSD. I have no experience using it since I don’t buy DRMed streaming media subscriptions, but it can be installed the same way. pipelight-plugin -enable silverlight5.1 Heed ’s warning about Silverlight DRM if you have a ZFS-based system: For users running with ZFS on root, watching DRM protected content requires extensive xattr support. If you run into issues with DRM failing, you can use the “pipelight-mkufs” command to create a UFS formatted ZVOL mounted on your users /.wine-pipelight directory.
Other plugins are enabled the same way, and the list of available plugins can be seen in pipelight-plugin -help. Virtualization It’s pretty common to virtualize another operating system on your computer, possibly to run a proprietary program or access a proprietary office groupware system.
Whatever the reason, it’s easy to accomplish on FreeBSD. FreeBSD 10 has a new built-in hypervisor known as capable of running FreeBSD natively and other operating systems via. At the moment it only implements a serial console to access the guest systems which is fine for a server OS but probably not what you want. Alternatively, VirtualBox open source edition is available at. Build it with Guest Additions enabled for the best experience virtualizing Windows and Linux. Once it’s installed, configure loader.conf to load the VirtualBox kernel module and configure rc.conf to start VirtualBox bridged networking.
/etc/devfs.conf. # Allow VirtualBox network access. own vboxnetctl root:vboxusers. perm vboxnetctl 0660. pw usermod nicole -G vboxusers Skype Skype is bad, proprietary software that doesn’t value your freedom. Use or instead if you can. If you still wish to use Skype, make sure you haveenabled and install.
Version 2.1 of Skype’s Linux client dropped support for OSS, found in FreeBSD as the default sound API. Thanks to this, Skype 2.0 persisted for years as the version in Ports.
With the introduction of an and, we can use the newer ALSA-only Skype client. There is a newer Skype client available as that supports the CentOS 6 linuxbase, but that version is not usable on FreeBSD 10.x due to in that branch’s Linuxulator. The ALSA client, unlike the old OSS client, requires some explicit configuration to use our sound devices. They must be defined manually in /compat/linux/etc/alsa/pcm/pcm-oss.conf, the configuration file of alsa-plugins-oss. In this example, I enable pcm6 / dsp6 for audio output, and pcm8 / dsp8, a USB webcam, as a microphone source.
/compat/linux/etc/alsa/pcm/pcm-oss.conf. pcm.oss8.
type oss. device /dev/dsp8. hint.
description 'Open Sound System - Webcam'. ctl.oss8. type oss. device /dev/mixer8.
hint. description 'Open Sound System - Webcam'.
pcm.oss6. type oss. device /dev/dsp6. hint. description 'Open Sound System - S/PDIF'. ctl.oss6. type oss.
device /dev/mixer6. hint. description 'Open Sound System - S/PDIF' The microphone volume can be controlled by invoking the mixer of your chosen recording device. Let’s raise the microphone volume now from 0% to 75%.
mixer -f /dev/mixer8 mic 75 ISO-8601 This is personal preference, but I also set my LCTIME environment variable to the enDK faux-locale for date formats instead of the ridiculous American standard. Quick, what date is 6/5/12? Oh, it’s 2012-06-05, of course.
The locale isn’t included with the FreeBSD base system as it is in many Linux distributions, but it’s from Ivan Voras’ blog. tar -C /usr/share/locale -zxf /path/to/your/enDK.UTF-8.tgz Enable it in the login database and /etc/profile.
/etc/profile. LCTIME=enDK.UTF-8; export LCTIME Upgrade Notes This guide assumes you will track the newest STABLE branch, upgrading to new stable branches at the initial.0 release. That’s not a thing I would ever recommend with OS X, but I haven’t been burned by a new major FreeBSD version yet. This section notes things you need to know to keep your system in top shape when upgrading.
9.x to 10.0 If you are updating from 9.x to 10.0 or higher, run pkg2ng after rebooting into the new OS. This conversion script will convert the list of installed packages from the format used by the old pkg tools to the format used by pkgng, the new binary package manager.
If you neglect this step the OS will think you have no packages installed and your life will become very confusing. 10.0 to 10.1 WITHNEWXORG is no longer a thing. The old version is gone. Is a new console driver designed to replace. It offers Unicode and graphics support using kernel modesetting. This is necessary to support UEFI.
A loader variable kern.vty can select between vt and sc.