Problem with Guild Wars in Ubuntu Linux
Posted on 2006-06-11 at 15:25
So, I got Cedega running nicely under the latest version of Ubuntu, but when I installed Guild Wars (a seamless install process!) it told me that my video card was undetectable and asked me if I wanted to continue or cancel. When I selected Continue, it hung indefinately. This was a problem.
The fix was straightforward, though. I set my Cedega app to run games in a window, then when I entered the game and the error popped up, I hit Continue and it showed me the screen. I set the video up manually there, then exited to save the changes to disk. Then I restarted Cedega (not sure I needed to, but I did) and changed the Cedega optiosn to open full screen again. Viola! All was fine.
What was the problem, you ask? Many modern games have all sorts of card-specific commands they utilize to take advantage of native card performance. Cedega, however, only shows them a generic card, so the game could not detect the card properly. The video was all skewed and the result was what looked like a black screen. In the window mode, however, I could see that the screen was there and running, but in a small corner of the open window. Manually setting the video options to what I want saved them to disk so that the next time the game was opened it didn't try to detect the card and change the settings. All worked fine after that.
If you have a similar problem, I hope this helps.
Fixing the Ubuntu Dapper and Cedega xlibs error
Posted on 2006-06-09 at 08:32
So you say you are having a problem installing Transgaming's Cedega on the latest version of Ubuntu (Dapper Drake or 6.06 LTS)? Me too. In short, when I tried to install the deb package, I got an error telling me "cedega depends on xlibs (>> 4.1.0); however: Package xlibs is not installed". So uncool. The issue is that xlibs has been deprecated in favor of a more modern x package. Thankfully, there is a solution.
- Go to the Transgaming site, log in, and download the latest Cedega package for your system.
- cd to the directory where the package was downloaded.
- Make a new directory in which to work:
~/downloads$ mkdir cedega - Extract the downloaded deb file top the new directory:
~/downloads$ dpkg-deb --extract cedegaXXXXXX.deb cedega - Make the package editable:
~/downloads$ dpkg-deb --control cedegaXXXXXX.deb cedega/DEBIAN - Edit the package to remove the dependency on xlibs:
~/downloads$ gedit cedega/DEBIAN/control
Remove the reference to Xlib (X.X.X) from the depends list.
Save and exit. - Build the new package that doesn't depend on xlibs:
~/downloads$ dpkg --build cedega - Install the new package:
~/downloads$ sudo dpkg -i cedega.deb
Why does this work? Well, the short answer is that though xlibs is missing and cedega does depend on it, the API functionality has been replaced, so though cedega says it depends on xlibs, it really just needs those API calls, which are present in a different package in Ubuntu Dapper in the default installation.
Enjoy
10/8/2006 Update:
A reader emailed me an example of a simpler workaround. Instead of building a new package that does not depend on xlibs, you can just using the "ignore-depends" flag to install the original package:
dpkg --ignore-depends=xlibs -i cedegaXXXXXX.deb
This will install cedega, though you'll need to do it every time you install the package. If you want the package fixed, use the original method I outline instead.
AWStats in Ubuntu
Posted on 2006-01-16 at 11:28
I've been using Webalizer for purusing my logs to see what visitors frequest my site. Webalizer is a good free software application for getting a quick overview of site trends, but I wanted more detail than it offered.
I consulted the Great LazyWeb (via his esteemed oracle Google) and was given a vision that I should install awstats.
To install awstats in Ubuntu all i had to do was "sudo apt-get install awstats". Afterwards, I modified the /etc/awstats/awstats.conf file to point to my apache logs for the log location and to a directory I created called awstats for the working directory (ie, where it puts everything). Specifically, the following bits from the conf file are the bits I changed:
LogFile="/var/log/apache2/tomde.access.log.1"
LogType=W
LogFormat=1
SiteDomain="tom.digitalelite.com"
DNSLookup=1
DirData="/var/www/awstats"
There were two small gotchas for the uninitiated. First, when I tried to run it with the command "perl awstats.pl -config=tom.digitalelite.com -update" it told me it couldn't find the file awstats.pl. Well, a short find command later and I discovered that Ubuntu put it in the /usr/lib/cgi-bin/ directory. So I changed my command to "perl /usr/lib/cgi-bin/awstats.pl -config=tom.digitalelite.com -update" which worked like a charm. The app ran and did...nothing that I could see. Thus the second small gotcha. Apparently all that command does it compile the log data into a database format for it to use later for report generation. So I found the commands to run for each report (again, the Great LazyWeb provided me the guidance I sought, Oh Great LazyWeb, Thou art grand indeed.). It suggested that I could run some particular script that would run all the reports at once, but I could not find it, so I took all the commands for each report, copied them into a single shell script and ran that. The shell script looks like this:
perl /usr/lib/cgi-bin/awstats.pl -config=tom.digitalelite.com -update
perl /usr/lib/cgi-bin/awstats.pl -config=tom.digitalelite.com -output -staticlinks > awstats.tom.digitalelite.com.html
perl /usr/lib/cgi-bin/awstats.pl -config=tom.digitalelite.com -output=alldomains -staticlinks > awstats.tom.digitalelite.com.alldomains.html
perl /usr/lib/cgi-bin/awstats.pl -config=tom.digitalelite.com -output=allhosts -staticlinks > awstats.tom.digitalelite.com.allhosts.html
perl /usr/lib/cgi-bin/awstats.pl -config=tom.digitalelite.com -output=lasthosts -staticlinks > awstats.tom.digitalelite.com.lasthosts.html
perl /usr/lib/cgi-bin/awstats.pl -config=tom.digitalelite.com -output=unknownip -staticlinks > awstats.tom.digitalelite.com.unknownip.html
perl /usr/lib/cgi-bin/awstats.pl -config=tom.digitalelite.com -output=alllogins -staticlinks > awstats.tom.digitalelite.com.alllogins.html
perl /usr/lib/cgi-bin/awstats.pl -config=tom.digitalelite.com -output=lastlogins -staticlinks > awstats.tom.digitalelite.com.lastlogins.html
perl /usr/lib/cgi-bin/awstats.pl -config=tom.digitalelite.com -output=allrobots -staticlinks > awstats.tom.digitalelite.com.allrobots.html
perl /usr/lib/cgi-bin/awstats.pl -config=tom.digitalelite.com -output=lastrobots -staticlinks > awstats.tom.digitalelite.com.lastrobots.html
perl /usr/lib/cgi-bin/awstats.pl -config=tom.digitalelite.com -output=urldetail -staticlinks > awstats.tom.digitalelite.com.urldetail.html
perl /usr/lib/cgi-bin/awstats.pl -config=tom.digitalelite.com -output=urlentry -staticlinks > awstats.tom.digitalelite.com.urlentry.html
perl /usr/lib/cgi-bin/awstats.pl -config=tom.digitalelite.com -output=urlexit -staticlinks > awstats.tom.digitalelite.com.urlexit.html
perl /usr/lib/cgi-bin/awstats.pl -config=tom.digitalelite.com -output=browserdetail -staticlinks > awstats.tom.digitalelite.com.browserdetail.html
perl /usr/lib/cgi-bin/awstats.pl -config=tom.digitalelite.com -output=osdetail -staticlinks > awstats.tom.digitalelite.com.osdetail.html
perl /usr/lib/cgi-bin/awstats.pl -config=tom.digitalelite.com -output=unknownbrowser -staticlinks > awstats.tom.digitalelite.com.unknownbrowser.html
perl /usr/lib/cgi-bin/awstats.pl -config=tom.digitalelite.com -output=unknownos -staticlinks > awstats.tom.digitalelite.com.unknownos.html
perl /usr/lib/cgi-bin/awstats.pl -config=tom.digitalelite.com -output=refererse -staticlinks > awstats.tom.digitalelite.com.refererse.html
perl /usr/lib/cgi-bin/awstats.pl -config=tom.digitalelite.com -output=refererpages -staticlinks > awstats.tom.digitalelite.com.refererpages.html
perl /usr/lib/cgi-bin/awstats.pl -config=tom.digitalelite.com -output=keyphrases -staticlinks > awstats.tom.digitalelite.com.keyphrases.html
perl /usr/lib/cgi-bin/awstats.pl -config=tom.digitalelite.com -output=keywords -staticlinks > awstats.tom.digitalelite.com.keywords.html
perl /usr/lib/cgi-bin/awstats.pl -config=tom.digitalelite.com -output=errors404 -staticlinks > awstats.tom.digitalelite.com.errors404.html
After running that script, suddently awstats provided me just what was promised. Not as simple as webalizer, but not too difficult either. And the details it provides are greater than webalizer! I am pleased.
Now, go forth and do as I have done that we may show glory to the Vision of the Great LazyWeb in out words and deeds.
Crystal Reports Header Trick
Posted on 2006-01-13 at 12:11
Problem
I have a Crystal Report with a chart in the group header and the details for the chart in the details section. How do I get the headings for the details to repeat on every page? I can't put them in the Page Heading since they wouod then print above the chart on the first page and it would look odd.
Solution
Create a formula called "FakeGroupForHeader". In that formula, say "whilereadingrecords; 1". Next, insert a new group using that formula as the basis and tell it to repeat the group on each page. This will result in there being only one grouping with no unique data. Wrap the details section in the new faked group, then put the detail headings (that would normally go in the page header) in that group's headings. Voila. You know have headings that repeat every page, but only under the chart (which is in the group heading for the parent group). Problem solved.
Mailman server set up
Posted on 2005-12-13 at 08:03
I run several mailing lists from the server, so I had to set up Mailman on the new server. This was a bit more involved than the other services. Here's how I did it:
- I used apt-get to install Fetchmail (to be used to retrieve mail from the pop server).
apt-get install fetchmail - I used apt-get to install Mailman (which also installs Postfix as a dependency).
apt-get install mailman - I moved to the newly created mailman directory.
cd /var/lib/mailman - I check and fix any install problems. You may have to run this multiple times. Do it until it tells you that all is fine.
bin/check_perms -f - I edited my apache2.conf file.
nano –w /etc/apache2/apache2.conf
I added this to the bottom:
ScriptAlias /mailman/ /var/lib/mailman/cgi-bin/
Alias /pipermail/ var/lib/mailman/archives/public/ - I edited my mm_cfg.py file.
nano -w /var/lib/mailman/Mailman/mm_cfg.py
I added this to the bottom:
MTA = 'Postfix'
I changed the values of the following two settings:
DEFAULT_EMAIL_HOST = 'digitalelite.com'
DEFAULT_URL_HOST = '68.106.156.239' - I ran the genaliases script.
/var/lib/mailman/bin/genaliases - I changed the user and group owner of the generated files to 'list'
chown list:list /var/lib/mailman/data/aliases* - I edited the /etc/postfix/main.cf file to look like this:
queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/lib/postfix
mail_owner = postfix
unknown_local_recipient_reject_code = 550
debugger_command =
PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
xxgdb $daemon_directory/$process_name $process_id & sleep 5
sendmail_path = /usr/sbin/sendmail
newaliases_path = /usr/bin/newaliases
mailq_path = /usr/bin/mailq
setgid_group = postdrop
manpage_directory = /usr/share/man
sample_directory = /usr/share/doc/postfix/sample
readme_directory = /usr/share/doc/postfix/readme
default_destination_concurrency_limit = 2
alias_databases = hash:/etc/aliases, hash:/var/lib/mailman/data/aliases
local_destination_concurrency_limit = 2
alias_maps = hash:/etc/aliases, hash:/var/lib/mailman/data/aliases
home_mailbox = .maildir/
owner_request_special = no
recipient_delimiter = +
inet_interfaces = localhost
local_recipient_maps =
mydestination = $myhostname, localhost.$mydomain - I edited the fetchmailrc config file to look like this:
#wake fetchmail daemon every 60 seconds
set daemon 60
#go to the mx server
poll pop.1and1.com protocol pop3
#get members list mail
username [username edited out] with password [password edited out], is members;
username [username edited out] with password [password edited out], is members-request;
username [username edited out] with password [password edited out], is members-admin;
#get dnd list mail
username [username edited out] with password [password edited out], is dnd;
username [username edited out] with password [password edited out], is dnd-request;
username [username edited out] with password [password edited out], is dnd-admin;
#get faithlinks list mail
username [username edited out] with password [password edited out], is faithlinks;
username [username edited out] with password [password edited out], is faithlinks-request;
username [username edited out] with password [password edited out], is faithlinks-admin;
#get bluebook list mail
username [username edited out] with password [password edited out], is bluebook;
username [username edited out] with password [password edited out], is bluebook-request;
username [username edited out] with password [password edited out], is bluebook-admin; - I added the main mailman list (required, even thogh I don't personally use it).
/var/lib/mailman/bin/newlist mailman - I added all the other lists.
/var/lib/mailman/bin/newlist members
/var/lib/mailman/bin/newlist dnd
/var/lib/mailman/bin/newlist faithlinks
/var/lib/mailman/bin/newlist bluebook - I restarted all the appropriate services to make sure everything used the new conf files.
/etc/init.d/postfix restart
/etc/init.d/mailman restart
/etc/init.d/fetchmail restart
Not as straighforward as DNS or Apache, but easy enough for me to handle. Also, I copied over the archives from the old server to the new (they go in the /var/lib/mailman/archives/private/ directory). That seems to have worked except that Mailman doesn't see to be adding new messages to the existing archives. I suspect that it's just a permissions issue. I'll know next month. When it creates the new month's archives, everything should be back on track. I have enough archives that I'm OK with a half a month of archive blackout if it means keeping all the older stuff.
Apache web server set up
Posted on 2005-12-12 at 08:01
Setting up Apache2 Web Server in Ubuntu Linux is pretty easy stuff---almost not worth writing down---but here goes:
- I use the apt-get command to install Apache2
apt-get install apache2 - I add a .conf file to /etc/apache2/sites-enabled for each domain
touch www.kungfugamers.com.conf - I edit the .conf files to look like this for each domain (adjusting for the web root I chose and the name of the domain itself.
<VirtualHost *>
DocumentRoot "/var/www/kfg"
ServerAlias www.kungfugamers.com kungfugamers.com
ServerName www.kungfugamers.com
</VirtualHost> - I restart apache2 so it grabs the new conf settings
/etc/init.d/apache2 restart
Apache web server
Posted on 2005-12-11 at 08:02
I'll be describing my experience setting up Apache web server on Ubuntu very soon. I'm almost done with it now. I just need time to complete set up and document it.
Small correction to DJBDNS below
Posted on 2005-12-11 at 08:01
Just an fyi, I made a small mistake in the description below for setting up a DJBDNS server in Ubuntu. I've fixed the text below for the sake of anyone looking to use my text as a guidepost for setting it up themselves. Also, since this is documentation for future use and to help others, I cleaned up the formatting to be a bit clearer. Hopefully that helps others figure out what I've done. If you have quesitons about DNS setup, I'll be happy to venture a guess, but bear in mind, I kinda just muddled through it and may not be too useful to you. But I promise to try. :)
Setting up the DNS server
Posted on 2005-12-10 at 08:02
For those curious about how to set up a DNS server, here's a breif overview of how I did it on Ubuntu Server edition:
- I use the apt-get command to install DJBDNS, becuase I prefer it over BIND for many many reasons.
apt-get install djbdns-installer - I then set up the dns service in the /etc folder.
tinydns-conf tinydns dnslog /etc/tinydns 192.168.0.7 - I made a symbolic link to it in the /services folder (it uses daemon-tools, which is why it uses the /services folder).
ln -s /etc/tinydns /service - I checked to make sure it was running. At this point the DNS service is working, but I still needed to add my specific DNS entries.
svstat /service/tinydns - I moved to the service root folder.
cd /service/tinydns/root/ - I tell the dns server that I am authoritative for this IP address.
./add-ns 239.156.106.in-addr.arpa 68.106.156.239 - I tell the dns server that I am authoritative for this domain.
./add-ns kungfugamers.com 68.106.156.239 - I tell the dns server that I am authoritative for another domain.
./add-ns daystromsolutions.com 68.106.156.239 - I tell the server where this domain is hosted.
./add-host www.daystromsolutions.com 68.106.156.239 - Because this domain is hosted at the same IP I've already used, I have to treat it as an alias, but essentially, I'm just saying that this domain is also at that IP address.
./add-alias www.kungfugamers.com 68.106.156.239 - I run the make command to compile the changes I just made to the service config.
make
Fedora Core 3 Wireless NIC Installation (Linksys WMP54G.v4 card)
Posted on 2004-12-11 at 08:02
For anyone who, in the future, needs to install one of these cards on a Linux box. Here are my notes on the topic. This entry, like the earlier one on the Netgear card, will change as I learn more.
1) get and install gcc if you don't already have it
2) cd /usr/src/RT2500-Linux-STA-1.4.4.0/STA/Module/
3) cp 2.6.x/Makefile .
4) make -C /lib/modules/2.6.9-1.667/build SUBDIRS=$PWD modules
5) make -C /lib/modules/2.6.9-1.667/build SUBDIRS=$PWD modules_install
6) /sbin/depmod -a
7) /sbin/modprobe rt2500
8) Start configuring it to connect to your network
Fedora Core 3 Wireless NIC Installation (Netgear WG511 PCMCIA card)
Posted on 2004-12-05 at 08:01
Fedora recognized the Netgear WG511 PCMCIA card right away. All I had to do was plug it in and then download the firmware and copy it to /lib/firmware/. Slick. I'm having some trouble with getting it to start on bootup. I'll be adding to this entry as that problem is resolved.