Archive for the ‘BSD’ Category.

Are you using BSD or Linux and you don't even know it?

Hello everyone,

I have had two Open Source experiences with average non-geeks that I would like to share.

Experience 1 – The in-laws are using Linux
I spent Easter at my in-laws and while I was their I of course took some time to “fix” their computers. Doing some maintenance to their computers is a regular task for me. However, they had recent purchased a new netbook and it was the only computer that they didn’t need me to work on.

“You got a new Netbook?”, I asked in surprise. Not that they consult me before every purchase but I usually hear about it. “Can I see it?” I asked.

My father-in-law, a retired seminary teacher who does real estate on the side, went and got the new little Netbook.

I booted it up and while the average person couldn’t tell it was running Linux, I immediately recognized the KDE interface despite the fact that it was tweaked to look as much like windows as possible.

I pressed “Ctrl + Alt + Backspace and sure enough Xorg restarted.

The Netbook is a pretty cool system. It is featured more like a smart phone than a computer, in that it has a tabbed window and you have a limited amount of icons on each tab, including needed items such as a browser, a documentation suite (Google Docs), etc…

My son’s grandparents are using Linux and they don’t even know it. While my curiosity told me to figure out how to enable the root account and start hacking around, I pushed aside the temptation because it was pleasure enough to know that my predictions are coming true.

I said, “By 2010, Linux will be above the watermark of requirements for the majority of users, and will start taking the market by storm.” And I am telling you it has begun.

Well, you might argue that this one purchase by my grandparents doesn’t mean this is true.

Well, I would retort that it isn’t just this one incident.

  • Netbooks are very popular and selling fairly well among all walks of life, not just to my grandparents.
  • There are many Google phones that are running Android, based on the Linux kernel.
  • Slashdot has a story where Ubuntu is claiming 12 million users and Fedora claims 24 million.
  • My company, LANDesk, continues to get an increased amount of request to support Linux flavors.

Experience 2 – A friend of a friend needing to compile an open source app on OS X
My favorite Operating System is FreeBSD, which has a great desktop version PC-BSD. While these are not exactly Linux, they are open source and actually more free than Linux (see my post on licenses). The rise in the use of FreeBSD and PC-BSD is also increasing rapidly.

Windows is the most used operating system by far. Did you know that the second most used operating system is FreeBSD-based. Yes, Macintosh users, underneath the hood of your pretty graphical user interface (GUI), you have a system that is derived in a large amount from FreeBSD.

Yes, if you are running OS X, you are running a system that is, underneath the hood, very similar to FreeBSD. It has a nice ports system called MacPorts that is a very similar system to FreeBSD’s ports system.

Well, as a replacement for a Visio diagram, I used the program Dia so that some of my friends could have the ability to modify and change the diagram (which happens about once a quarter) as desired without spending way too much for Visio when they otherwise would never ever use it. Well, a friend of a friend called me and wanted to use it.

Unfortunately at this time, Dia doesn’t have a version for OS X, but can be installed using MacPorts. So I found myself showing the average user how to install MacPorts. Unfortunately, I don’t have a Mac, so I couldn’t write a walk-thru of doing this and I don’t know if the friend of a friend was successful in installing Dia on OS X, but still, this average user wanted to do it and wanted this open source app that was available to him only because his system was derived in large part from FreeBSD.

GhostBSD: A FreeBSD desktop that uses GNOME

Hey all,

I was recently made aware of a new distribution of FreeBSD called GhostBSD. One of the focuses of GhostBSD is to provide a FreeBSD-based desktop that uses GNOME.

I’ll be honest, I like KDE over GNOME and probably always will, but my opinion is not your opinion, and I have heard plenty of opinions amongst FreeBSD users that GNOME is preferred by them. So this is going to be a good thing for those of you who prefer GNOME.

They have released their first amd64 version, which I downloaded and installed to my VMWare environment. Here is a screen shot.


See larger image.

I was pleased to find that it was a Live CD, as well, until I realized that it was a Live CD only. There are such a large number of people who have asked about a FreeBSD distro that focus on the desktop using GNOME, that I was actually disappointed to find out that it does not install to the hard drive. However, if this distribution becomes popular, I am sure that the distribution could eventually include an installer.

It downloads and fits on one CD (not DVD) and so the download was rather quick for me.

I installed to my VMWare environment, however, the keyboard didn’t work. Maybe the i386 version would work. It might be worth detecting why this didn’t work and submitting a bug to GhostBSD. It would also be cool if they provided a version that had vmware-tools installed. I am not sure if I could install vmware-tools to a Live CD and if I did, it would probably only be installed until I rebooted.

Great work GhostBSD team. As FreeSBIE is discontinued according to Distrowatch, I will definitely replace my Live CD version of FreeBSD and GhostBSD may be an excellent option.

Differences between the BSD/FreeBSD Copyrights and the GNU Public License (GPL)

The FreeBSD Copyright and the BSD Copyright

You may notice that FreeBSD uses the term Copyright while GNU uses the term License.
http://www.freebsd.org/copyright/copyright.html

The FreeBSD Copyright is free as in you don’t have to buy a license but you can do pretty much anything. The BSD Copyright is almost the same.

What you can do:

  1. Use it at home for no cost.
  2. Use it at work for no cost.
  3. Use it at work for a publicly accessible server that you make money on for no cost.
  4. Add or change code at no cost.
  5. Distribute the entire source code at no cost.
  6. Distribute the entire source code with your changes at no cost.
  7. Build binaries at no cost.
  8. Distribute binaries with your source at no cost if you also give it away at no cost.
  9. Distribute binaries without also distributing the original source and your changes.
  10. Write code that uses or links to this code and license your new code however you want.
  11. Embed the binaries in software you sell, at no cost, even if you don’t provide the source.

Note: This list was created by me based on my understanding of what people would want to do with the code.

Do I need a lawyer?
No. Basically, there is almost no instance in which you have to pay a fee to anybody to use a FreeBSD Copyrighted or BSD Copyrighted piece of code.

However, while 100% free in cost to use it, it is not 100% free. Notice I italicized the word almost in the above sentence.

For the FreeBSD Copyright, also known as the New BSD Copyright, there are two requirements you must meet.

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

And for the BSD Copyright, there are four requirements listed, but as mentioned on the BSD Copyright web site, the third requirement is no longer required.

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
3. All advertising materials mentioning features or use of this software must display the following acknowledgement:

This product includes software developed by the University of California, Berkeley and its contributors.

4. Neither the name of the University nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

So you can do anything you want with FreeBSD licenses and BSD licenses at no dollar cost, but you have to spend some time and resources to make sure you display some text as required.

I guess if you didn’t want to follow the 2 or 4 steps, you could find someone to pay so you didn’t have to, but the steps are so simple I doubt anyone would choose to try to license the software to not have to follow these steps.

The The GNU Public License or GPL

The The GNU Public License or GPL is not completely different but yet don’t be fooled. It is not the same and is far more restrictive than most realize. And it is harder to explain or describe, especially since there is GPLv1, GPLv2, GPLv3, and I am not even discussing the LGPL here.

You can get more info here:
A Quick Guide to GPLv3

What you can do:

  1. Use it at home for no cost.
  2. Use it at work for no cost.
  3. Use it at work for a publicly accessible server that you make money on for no cost.
  4. Add or change code at no cost.
  5. Distribute the entire source code at no cost.
  6. Distribute the entire source code with your changes at no cost.
  7. Build binaries at no cost.
  8. Distribute binaries with your source at no cost if you also give it away at no cost.

Do I need a lawyer?
For home use, no.
For a business, yes.

If you are doing anything NOT on the above list, you probably need to involve a lawyer. If you stick to the above list, then no, you probably don’t need a lawyer. However, the GPL is so long and wordy you may need a lawyer to determine if you need a lawyer.

The Difference between the BSD/FreeBSD Copyrights and the The GNU Public License or GPL

The first noticeable difference is that the FreeBSD Copyright is 25 lines (when wrapped at 78 characters with some lines blank due to section separation) while the GPL is 339 lines (when wrapped at 78 characters with some lines blank due to section separation). So it is much more difficult to learn and understand the GPL and there is a higher likelihood to take a wrong step.

The following items were removed these from the GPL’s can-do list because you can’t do them without permission from the author, which most likely will come at a cost but not always. Sometimes, the author will just say, “Yes, you can use it in your proprietary software” and sometimes they will charge a fee. However, even in those instances you probably need to pay a lawyer to draft and agreement and get it signed. However, one problem with GPL is that there are usually many different authors and so obtaining such permission becomes impossible.

  1. Distribute binaries without also distributing the original source and your changes.
  2. Write code that uses or links to this code and license your new code however you want.
  3. Embed the binaries in software you sell, at no cost, even if you don’t provide the source.

Lets put this in a table:

What you can do? BSD/FreeBSD Copyright GNU Public License or GPL
1. Use it at home for no cost. x x
2. Use it at work for no cost. x x
3. Use it at work for a publicly accessible server than you make money on for no cost. x x
4. Add or change code at no cost. x x
5. Distribute the entire source code at no cost. x x
6. Distribute the entire source code with your changes at no cost. x x
7. Build binaries at no cost. x x
8. Distribute binaries with your source at no cost if you also give it away at no cost. x x
9. (Commercial) Distribute binaries without also distributing the original source and your changes. x
10. (Commercial) Write code that uses or links to this code and license your new code however you want. x
11. (Commercial) Embed the binaries, without a license fee, in software you sell, even if you don’t provide the source. x

Conclusion

For use at home or work or school or play
In all practicallity there is no difference to a home user between the BSD/FreeBSD Copyrights and the GPL.

For Free Distribution
There is one slight difference in free distribution. Any code you write that uses GPL code must be GPL too. With the BSD/FreeBSD copyright, that is not the case. If you write software that uses or links to BSD licensed software, you can still choose your own license.

For Commercial and Enterprise Use
This is where the difference mainly resides between these two licenses.

For use internally for an enterprise or any use that doesn’t distribute the code, there is no difference.

However, when it comes to including the code or a binary in software that you sell, you are not free to do so. The BSD/FreeBSD Copyrights are much more business and enterprise friendly.

DISCLAIMER

I am not a lawyer. I am not responsible in any way for the misuse of a license based on this post, even if the post is has some piece of data that is blatantly wrong. It is the responsibility of the user of licensed or copyrighted software to make sure the license agreement or copyright is adhered to properly.

How to make Apache handle. asp and .aspx links in FreeBSD or Linux? (Updated)

Ok, so what do you do when a site that was based on asp.net is converted to a Linux box and your product shipped with links to sites such as http://our.home.page/index.asp and many other .asp or aspx sites?

Should you use mono?
Yes, probably

See my mono post on Asp.Net here:

Asp.Net web services on FreeBSD and Apache using Mono

Should you migrate your code to php or ruby or another open source language?
Sure, maybe

If you choose not to go with mono at this point because it might be easy to re-write your code in php or ruby or any other open source language, especially if you are doing nothing more than echoing html code after performing simple calculations.

I haven’t tested it yet, but you may get a lot of the asp code automatically converted using this tool: asp2php

What about the fact that unchangeable links to my pages end with .asp or .aspx entensions?
It doesn’t matter what the file extension is, you can have that file extension handled by any scripting language. For example, to configure Apache to have php handle .asp or aspx file, you can follow the steps below.

If you have an index.asp file that should automatically be served by default, it is probably not in the list of files to serve by default, which is probably just index.htm and index.php. You can either rename index.asp to index.php or modify the httpd.conf to include the index.asp file. These steps assume you are changing the httpd.conf.

  1. Change to the apache configuration directory: /usr/local/etc/apache22/
  2. Edit the httpd.conf with ee.
    ee httpd.conf
  3. Search for “DirectoryIndex” to find the section where the directory index is configured.
  4. Add index.asp as the first item as shown:
    DirectoryIndex index.asp index.php index.html
  5. Change to the “Includes” directory which by default is here: /usr/local/etc/apache22/Includes
  6. Create a file that is named ending in .conf (For example, to show what the file does in the name, I used asp-as-php5.conf):
    # Handle .asp and .aspx with php
    AddType application/x-httpd-php .asp
    AddType application/x-httpd-php .aspx
  7. Restart apache. Now your .asp and .aspx files will be handled by php.

Copyright ® Rhyous.com – Linking to this page is allowed without permission and as many as ten lines of this page can be used along with this link. Any other use of this page is allowed only by permission of Rhyous.com.

FreeBSD 7.3 Released!

How to add a DataGridTemplateColumn using a button to a WPFToolkit DataGrid that is bound to a DataTable?

Ok, so here is my goal. I have a DataGrid that is going to be bound to a DataTable.

I want to add a DataGridTemplateColumn when the DataContext changes.

For each row, I have an value that is either normal, warning, or error. If normal, I don’t want a button on the column at all. If error or warning, I want a button.

So the DataTable looks something like this but in my larger app (this is a minimal example) the data is dynamic in that it can contain different numbers of rows, difference column names, etc. So a static View and static binding isn’t going to work.

Field Value Compare
a 1 1
b 2 3
c 3 5
d 4 4

So, the idea is to get the WPFToolkit’s DataGrid view to look like this.  If the numbers differ by 1, it is a warning.  If the numbers differ by 2 it is an error.

Field Value Compare Action
a 1 1 Normal
b 2 3
c 3 5
d 4 4 Normal

So how do I do this with a WPFToolKit DataGrid that is bound to a Table?

Hopefully, I will figure this out:
Windows 7 64 bit
Visual Studio 2008 SP1
.NET 3.5
WPToolKit

I don’t have it working yet…

Step 1 – Create a new WPF Application project in Visual Studio

Step 2 – Add WPFToolKit as a Reference

  1. Right-click on project and choose Add Reference.
  2. Under the first tab called .NET select WPFToolkit.

Step 3 – Create the View

  1. Open the Window1.xaml.
    <Window x:Class="DataGridAddButtonColumnTest.Window1"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:wpftk="clr-namespace:Microsoft.Windows.Controls;assembly=WPFToolkit"
        Title="Window1" Height="300" Width="300" Loaded="Window_Loaded">
        <Grid>
            <wpftk:DataGrid ItemsSource="{Binding}" Name="mDataGrid" CanUserAddRows="False" IsReadOnly="True" DataContextChanged="mDataGrid_DataContextChanged"></wpftk:DataGrid>
        </Grid>
    </Window>
    
    

Step 4 – Create the Data

  1. Create a TestData class.
    using System;
    using System.Collections.Generic;
    using System.Data;
    using System.Linq;
    using System.Text;
    
    namespace DataGridAddButtonColumnTest
    {
        public class TestData
        {
            #region Member Variables
            DataTable mTable;
            #endregion
    
            #region Constructors
    
    		 /*
    		 * The default constructor
     		 */
            public TestData()
            {
                mTable = MakeSampleDataTable();
            }
    
            #endregion
    
            #region Properties
    
            public DataTable Table
            {
                get { return mTable; }
                set { mTable = value; }
            }
    
    
            #endregion
    
            #region Functions
            private DataTable MakeSampleDataTable()
            {
                DataTable table = new DataTable();
                table.Columns.Add("Field", typeof(string));
                table.Columns.Add("Value", typeof(int));
                table.Columns.Add("Compare", typeof(string));
                //table.Columns.Add("Action", typeof(string));
    
                table.Rows.Add("a", "1", "1");
                table.Rows.Add("b", "2", "3");
                table.Rows.Add("c", "3", "5");
                table.Rows.Add("d", "4", "1");
    
                // Or should I include the button data here or not?
                //DataTable table = new DataTable();
                //table.Columns.Add("Field", typeof(string));
                //table.Columns.Add("Value", typeof(int));
                //table.Columns.Add("Compare", typeof(string));
                //table.Columns.Add("Action", typeof(string));
    
                //table.Rows.Add("a", "1", "1", "Normal");
                //table.Rows.Add("b", "2", "3", "Warning");
                //table.Rows.Add("c", "3", "5", "Error");
                //table.Rows.Add("d", "4", "1", "Normal");
    
    
                return table;
            }
            #endregion
        }
    }
    [/source]
    </li>
    	<li>Create a TestDataModel Class
    
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Linq;
    using System.Text;
    
    namespace DataGridAddButtonColumnTest
    {
        public class TestDataModel : INotifyPropertyChanged
        {
            #region Member Variables
            readonly TestData mTestData;
            public event PropertyChangedEventHandler PropertyChanged;
    
            #endregion
    
            #region Constructors
    
            /*
    		 * The default constructor
     		 */
            public TestDataModel(TestData inTestData)
            {
                mTestData = inTestData;
            }
    
            #endregion
    
            #region Properties
            public DataView View
            {
                get { return mTestData.Table.DefaultView; }
            }
    
            public TestData TestData
            {
                get { return mTestData; }
            }
    
            #endregion
    
            #region Functions
            #endregion
    
            #region Enums
            #endregion
    
            // Not sure if I even need to implement this for this test
            #region INotifyPropertyChanged Members
            protected virtual void OnPropertyChanged(PropertyChangedEventArgs e)
            {
    
                if (this.PropertyChanged != null)
    
                    this.PropertyChanged(this, e);
            }
    
            #endregion
        }
    }
    
  2. Add code to the Window1.xaml.cs file
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Controls.Primitives;
    using System.Windows.Data;
    using System.Windows.Documents;
    using System.Windows.Input;
    using System.Windows.Media;
    using System.Windows.Media.Imaging;
    using System.Windows.Navigation;
    using System.Windows.Shapes;
    
    using Microsoft.Windows.Controls;
    
    namespace DataGridAddButtonColumnTest
    {
        /// <summary>
        /// Interaction logic for Window1.xaml
        /// </summary>
        public partial class Window1 : Window
        {
            public Window1()
            {
                InitializeComponent();
            }
    
            private void Window_Loaded(object sender, RoutedEventArgs e)
            {
                TestData td = new TestData();
                TestDataModel tdm = new TestDataModel(td);
                mDataGrid.DataContext = tdm.View;
                CreateActionButtonColumn();
            }
    
            private void mDataGrid_DataContextChanged(object sender, DependencyPropertyChangedEventArgs e)
            {
    
            }
    
            public void CreateActionButtonColumn()
            {
                Binding binding = new Binding("PropertyName") { Mode = BindingMode.TwoWay };
                DataGridTemplateColumn templateColumn = new DataGridTemplateColumn { CanUserReorder = false, Width = 85, CanUserSort = true };
                BindingOperations.SetBinding(templateColumn, DataGridColumn.HeaderProperty, binding);
                DataTemplate dataTemplate = new DataTemplate();
                FrameworkElementFactory tmpButton = new FrameworkElementFactory(typeof(Button));
                tmpButton.SetBinding(Button.NameProperty, binding);
                dataTemplate.VisualTree = tmpButton;
                templateColumn.CellTemplate = dataTemplate;
                mDataGrid.Columns.Add(templateColumn);
    
            }
    
        }
    }
    
    

Help! I don’t know how to finish this…

UPDATE 3/22/2010
I have an answer from http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/6619249d-4353-4747-b3ad-d2748ac26d7b.

I will re-write this post with the correct details.

How to configure FreeBSD 8 to use a mini-PCI Intel 2200 AG wireless card on an IBM T40?

How to configure FreeBSD 8 to use an Intel 2200 AG wireless card on an IBM T40?

Usually I try to document every step, but I am not going to document how to install the mini-PCI card in your IBM T40, nor am I going to tell you how to download an ISO to overcome the 1802 BIOS error. But you got links…I hope the work in the future.

Step 1 – Install FreeBSD
I assume you are on a Laptop and want a desktop so here are my instructions for a desktop.
How to install and configure a FreeBSD 8 Desktop with Xorg and KDE?

You should now have your system in the same state that I have mine.

Step 2 – Verifying your device is installed
Ok, before we get started, lets at least make sure that the miniPCI Intel 2200 AG wireless card shows up.

  1. Us pciconf to look at loaded pci devices.
    $ pciconf -lv
  2. Locate the Intel 2200 BG mini-pci card. Mine shows up as follows:
    none3@pci0:2:2:0: class=0x028000 card=0x27018086 chip=0x42208086 rev=0x05 hdr=0x00
    vendor = ‘Intel Corporation’
    device = ‘driverIntel PRO/Wireless 2200BG (MPCI3B)’
    class = network

Step 3 – Setup/Install Intel Wireless Support

Ok, Intel requires you to accept a license agreement and you have to actually enter this acceptance in your /boot/loader.conf. Also you need to enable other wifi modules as well.

  1. Su to root.
    $ su

    Password:
    #

  2. Edit the /boot/loader.conf with your favorite editor (lets use easy editor or ee)
  3. # ee /boot/loader.conf
  4. Enter the following lines:
    # Intel 2200 BG mini-PCI
    legal.intel_iwn.license_ack=1
    if_iwn_load=”YES”
  5. Save and close /boot/loader.conf.

Note: If you want to see this work before you move one, feel free to reboot now.

I believe at this point you can connect to any wireless network that is not secured (not using WEP or WPA).

Request for Adobe Flash player to exist native on FreeBSD is #3 on the Flash Player popularity list, lets make it #1

If you go to Adobe’s bug database for flash player and look up the most popular bug/feature requests for Flash Player you will see a request for Flash Player to be supported natively on FreeBSD is the #3 issue based on votes.
Adobe Flash Player Bug and Issue Management System – Popular Issues

Only 339 users have voted for this. There has to be more than 339 users in the FreeBSD community that want this. There are almost 8,000 fans on Facebook. So what we need is for these fans to unite and take just a moment to vote.

Lets see if we can be the #1 issue, and by a lot.
PC-BSD especially needs this. They are also trying to promote this bug. There is a link on the right of their home page. PC-BSD is doing its best to give us flash support using Linux compatibility, but it just isn’t enough. I have tested a few sites that just act weird or don’t work.

How to vote

  1. Create an account with Adobe by first going here:
    http://bugs.adobe.com/jira/secure/Signup!default.jspa

  2. Fill out the form to create a user account.
  3. Once your user account is created, go to your email and wait for an email to confirm your account. Make sure to check your junk mail if you don’t see it.
  4. Click the link in the email to activate your account.
  5. click the OK button on the web page once activated and you are taken to the login page.
  6. Log in.
  7. Select Projects | Flash Player and then click Popular Issues or just go to this link:
    http://bugs.adobe.com/jira/browse/FP-1060

  8. On the left there is a section called voting where you can click vote: Click it.

You have now voted for this issue.

Thank you all for voting,

P.S. Does this post make me a non-political lobbyist?

Debian and Ubuntu users have the "Elitism" attitude or Being Technical is no excuse for being rude!

So I keep hearing complaints that FreeBSD users have a rudeness about them that some call “Elitism”.

Well, this is true, I have commented on forum posts when I have seen such. However, it is not the case that this is something that is strictly limited to FreeBSD users.

They past few days I was helping a user install Ubuntu on VMWare Server. Since I was the only one really helping the user he started making him comments directly to me.

Next thing I know, I was getting railed on by an Debian / Ubuntu guy.

First, he called me out directly and told me to “pay attention”:

Jared: Please, pay attention, that it should be special reason to use VMWare Workstation, because it’s not free.

What? I shouldn’t help this guy because his software is not free? This is obsurd.

Now, since the customer was asking how to do this with VMWare, I was quite puzzled, so I sent him an email explaining that containing this exact text:

When the person who started the discussions says that they are using VMWare you help them with their issue, you don’t rag on them for the version they are using.

You maybe should take a moment an re-read the post.

Yes, I was a little rude back. I could have responded better. This is a learning experience for next time.

Then he came back at me with a this:

Jared,

Actually you’re right. That’s why you also should re-read the initial posts and see that TS was talking about VMWare *server*. Also, as I understood, you are working in company that ignore risks of using illegal SW if you don’t care about it’s cost. Please, do not spread this approach to others.

So now he attacks my company and says I work for a company that ignores the risks of illegal software. Which is actually quite funny and ironic. I work for LANDesk and one of our main features is Software Licensing Monitoring, a feature that tracks your software usage vs. license count and makes sure that companies are not overusing licenses or stealing software.

Anyway, whether you are a FreeBSD user or a Debian user or technical in any way it doesn’t matter; Being technical is no excuse for being rude.

Speak nicer in forums and mailing lists. Stop flaming other people. Especially newbies. Don’t forget we were all newbies once.

How to troubleshoot Xorg on FreeBSD 8?

Ok, so I have been in Tech Support for most of my career and troubleshooting has become a skill I use without thinking about it.

Recently, I have been reading some posts on the FreeBSD forums about Xorg problems. I thought I would write a post about “How to troubleshoot Xorg.

Step 1 – Document the problem clearly

  1. Reproduce the issue and store any output errors or screenshot them (if possible) as needed.
  2. Reproduce the issue again but this time while doing so, document each step you took to reproduce the issue.

Note: You wouldn’t believe how many issues are solved during the process of documenting the steps to reproduce an issue.

Step 2 – Gather Hardware Details
Lets make sure we know what is in your system. Gather the output of this command to get the AGP, PCI, or PCI-Express devices in your system.

# pciconfig -lv

Step 3 – Gather Installed Software Details
We are going to run some commands here. The output of every command you run should be stored into a text file. If you are getting help from a forum, a mailing list or you are paying for support for a company, they are going to want as much information as possible.

Note: I assume you have sshd enabled and that you can both ssh to your machine and sftp to your machine. A windows ssh tools is PuTTY. A windows sftp tool is WinSCP.

  1. Get the basics about the installed FreeBSD system.# uname -a
  2. Make sure Xorg is installed and that any other required software or add-on software such as the Windows Manager (KDE, GNOME, Fluxbox) is installed.# pkg_info
  3. It is often good to just get the list of Xorg packages:# pkg_info |grep xorg
  4. Look in the package list to make sure that if you are using an NVidia or Intel driver that requires the installation of a binary package (as they are not open source) that you have installed the driver.

Step 4 – Gather Software Configuration Details

  1. Gather the Xorg configuration file. Now one does not always exists, but if it exists, it usually located at /etc/X11/xorg.conf
  2. Gather the /etc/rc.conf file so you can see what it is configured to enable.
  3. Gather the /boot/loader/loader.conf file so you can see what it is configured to enable.
  4. Gather the ~/.xinitrc or /home/username/.xinitrc file.

Step 5 – Gather logs and examine logs for errors

Gathering Logs

One process for making it easier to view logs and find the cause of errors. It is an obvious procedure to some.

  1. Backup all logs.
  2. Delete logs once backed up.
  3. Duplicate the issue.
  4. Gather the logs (both backed up and new logs).

The key is to limit the amount of data to go through. So by deleting the logs and duplicating the issue as fast as possible, your logs will be as small as possible and easier to go through.

  1. Gather the /var/log/Xorg.0.log file.
  2. You might want the /var/log/messages file.

Examine the logs for errors

Now that you have the smallest amount of data possible, it may be easier to search the logs for errors.

  1. Start out by greping or searching for words like fail, error, etc…
  2. If you didn’t find anything, then visually scan down the logs.

A nice way to watch a log file live as you duplicate the error is to use tail.

  1. Open two shells, maybe one directly on the system and one through ssh.
  2. In one shell, run this command to watch a specific log file, such as Xorg.0.log. (For this use the ssh shell if you have sshd enabled and opened on through ssh)# tail -f -n 50 /var/log/xorg.0.log
  3. Duplicate the issue in the other shell. (This would be the shell directory on the system.)
  4. Watch the dynamic log live and try to find the line where the error occurs.

Tip #1 – Enable sshd when testing

Sometimes running Xorg may result in a black screen and you can’t switch between ttys either using Alt+F# so you may be tempted to hard power off. Most the time if you have enabled sshd, you can ssh in and kill Xorg or reboot gracefully, saving you a hard power off.

Tip #2 – Try running Xorg with and without an xorg.conf

Supposedly you don’t need and xorg.conf always but there are times when you would want one. I have seen forum posts where the solution goes both ways. One user’s issue was resolved by not using an xorg.conf and letting Xorg just start and automatically handle everything. Another users issue was resolved by using an xorg.conf. So try it both ways.

Tip #3 – Use the FreeBSD forums correctly

If you have all of the above data and you still have an issue, if you go to Xorg section of the FreeBSD Forums, and make a post, you will be able to provide an educated, detailed question.

There is fine line between posting too much data or too little data and posting the perfect amount so a reader can have enough data to resolve your issue. I would say it is rare should post all configs and logs, but it also should be rare that you post a question alone without any details.

Ok, so this may not be complete. If you have anything to add please comment.

Writing troubleshooting guides for FreeBSD 8

I was thinking today, that though I am now a Systems Analyst / Developer at LANDesk, that doesn’t change the fact that I have been in Technical Support for 10+ years now and, no to so much brag as to state a fact, I have extensive troubleshooting skills and I am good at writing How to troubleshoot documents. Now having said that, I have not troubleshot FreeBSD for 10 years. While I have used FreeBSD for almost a decade, it often had no problems that required troubleshooting.

One of the first things you learn in support is that everything you troubleshoot has a troubleshooting process and once you have that troubleshooting process documented, you find you can expand on that document little by little. Each issue is solved more rapidly. Issues that are not solved by the process lead to an update of the process so the next time, a similar issue is solved by the process.

So today’s FreeBSD Friday post will be about Troubleshooting.

The March issue of BSDMag released. Remember this is a free online PDF publication.

The March issue of BSDMag released. Remember this is a free online PDF publication.

Get it here:

http://www.bsdmag.org

How to install VMWare Tools on PC-BSD 8?

Ok, so I wanted to see if there was much of a difference between installing VMWare-tools on FreeBSD 8 with Xorg and KDE as on PC-BSD 8. It was my guess that the steps would be next to exactly the same, but maybe there is something different.

See my previous article on this:
How to install VMWare-tools on FreeBSD 8?

Details: I am running VMWare Workstation 6.5 on Windows 7.

In VMWare, I clicked VM | Install VMWare tools.

The virtual media automounted in KDE.

I copied the vmware-freebsd-tools.tar.gz to the desktop.

I opened a shell, and su’ed to root.

The package for compat6x-amd64 was already installed.

I ran these commands to extract the vmware-freebsd-tools.tar.gz file.

cp /home/jared/Desktop/vmware-freebsd-tools.tar.gz /tmp
cd /tmp
tar -xzf vmware-freebsd-tools.tar.gz
cd vmware-tools-distrib

I ran the vmware tools installer.

./vmware-install.pl

I accepted all the defaults and there were no problems.

So I decided to do the Autostart a different way…and it worked too.

I right-clicked on the icon in the bottom left (normally is the K icon but instead it is the PC-BSD flame) and I choose Menu Editor.

I clicked New Submenu, named it VMWare and hit OK.
I selected the newly created Submenu.
I clicked New Item.
I added an item for /usr/local/bin/vmware-user.
I added an item for /usr/local/bin/vmware-user-wrapper.
I added an item for /usr/local/bin/vmware-toolbox (and under Advanced, I changed this to run as root)
I saved and exited.
I went to System Settings.
I clicked the Advanced tab.
I double-clicked Autostart.
I clicked Add program.
I added the vmware-user-wrapper item that I just added to the Menu.
I rebooted.

Mouse auto-grab, Copy and paste, auto-fit guest, all appear to work well.


Copyright ® Rhyous.com – Linking to this article is allowed without permission and as many as ten lines of this article can be used along with this link. Any other use of this article is allowed only by permission of Rhyous.com.

PC-BSD and FreeBSD are Two of the Fastest Growing Open Source Operating Systems Last Year while Ubuntu-based Operatings system lead growth

So PC-BSD and FreeBSD are getting a lot more attention. They are growing fast. Reports created based on the data from DistroWatch show that PC-BSD and FreeBSD are two of the fastest growing operating systems last year. Of course, despite my bias towards FreeBSD, as it is my favorite distribution, the numbers clearly show that Ubuntu/Debian-based platforms lead the growth.

Ok, so DistroWatch.com counts the hits per day (HPD) to a distro’s home page. Lets compare the hits per day over the past twelve months to the hits per day over the past 6, 3, 1 month intervals to see who is experience the most growth in hits per day as well as who has the highest percentage growth.

Growth in hits per day (HPD) between the 12 month and 1 month charts

Is one month a valid sample size? Of course not, that is why we are doing three month and six months as well. But lets look at it anyway.

PC-OS appears to have the lead here. PC-OS is based on Ubuntu (which itself is Debian-based). Other Ubuntu/Debian-based platforms showing growth are Debian itself, MEPIS, Mint, and Ultimate.

The only other base platform to have more than one distro show up in this list is FreeBSD. As you can see, PC-BSD is second in growth on both HPD and percentage, and FreeBSD is fifth in HPD growth and third in percent growth.

Growth in hits per day (HPD) between the 12 month and 3 month charts

Three months is definitely a larger sample size. Three months means we don’t have as much data skewed by release cycles which cause higher growth temporarily that will be offset by a decline the long months between release cycles.

Again we see similar trends in the three month reports.

Debian itself , MEPIS, Mint, and Ultimate and are all Debian/Ubuntu-based distros.

Again, FreeBSD and PC-BSD are on both the list. PC-BSD is second in HPD growth and leads all distributions in percentage growth.

Growth in hits per day (HPD) between the 12 month and 6 month charts

Ok, so the twelve to six month comparison is the largest sample size can get. Perhaps I should contact DistroWatch.com and see if I can get the raw data for multiple years past, but alas, I only pull the data from the tables they have currently available.

So now we see very similar data again. Seeing similar data a third time using this largest sample size means it is more likely accurate.

Fedora ties Ultimate for first, but the tie breaker has to go to Ubuntu/Debian-based plaftorms as they again lead Mint, Ubuntu, and Ultimate all on the list.

FreeBSD is on both HPD and percentage reports, while PC-BSD only shows up on the percentage report. However, again, FreeBSD is the only base open source operating system after Ubuntu/Debian-based to have two distributions show up between these two lists. For those interested, PC-BSD was fifteenth but only the top eight distros are displayed.


Note: For information on how these reports are created, see this post:
Using QlikView and DistroWatch to report on the most popular open source distributions (BSD, Linux, Unix)


Copyright ® Rhyous.com – Linking to this article is allowed without permission and as many as ten lines of this article can be used along with this link. Any other use of this article is allowed only by permission of Rhyous.com.

PC-BSD 8 Released

PC-BSD 8 released. http://www.pcbsd.org/

Quote from site:

The PC-BSD Team is pleased to announce the availability of PC-BSD 8.0 (Hubble Edition), running FreeBSD 8.0-RELEASE-P2, and KDE 4.3.5