Default Xorg Resolution

Recent versions of Linux and the Xorg X-Windows system have been engineered to require very little configuration settings to properly detect graphics options and display resolutions. In most cases graphics should “just work”.

The Xorg system stores all its configuration options in the file: xorg.conf. Many distributions including Fedora and CentOS keep this file in the /etc/X11/ directory. In the past this file would contain a great deal of information that was not easy to setup. However as of recent releases, this file is not required for graphics to work correctly. Both Fedora and CentOS will provide a very minimal xorg.conf file if required.

Typically the proper resolution for your display will be detected at run time. While this is great for most users, it often leads to strange resolutions or blank screens depending on your monitor or LCD screen.

EDIT: If you have NO file at all, on the Fedora wiki is: How to create xorg.conf. This works for both Fedora and CentOS.
There are two solutions if you have no xorg.conf. As ‘root’ run either of the following:

# yum install system-config-display
# system-config-display --noui

-OR-

# yum install xorg-x11-server-Xorg
# Xorg -configure
# cp xorg.conf.new /etc/X11/xorg.conf

Whenever I install Fedora or CentOS with the X-server, I typically edit /etc/X11/xorg.conf and add the following Section (or at least the missing parts):

Section "Screen"
        Identifier "Screen0"
        Device     "Videocard0"
        DefaultDepth     24
        Subsection "Display"
                Viewport   0 0
                Depth     24
                Modes     "1024x768"
        EndSubSection
EndSection

The Modes line will control the resolution. You should put the proper resolution for your display. You can also add mutiple modes if you monitor supports it. For example:

Modes     "1280x1024" "1024x768" "800x600"

If you have an LCD and Xorg does not properly detect the resolution, set the mode to the maximum resolution your LCD supports. If you have a standard CRT monitor that Xorg detects higher resolutions (with poor refresh rates) set the mode to the resolution you are comfortable. Also, if you have a CRT you can set multiple modes, then using either Gnome or KDE you can pick a resolution you prefer.

Note: This does NOT apply to everyone (most people will find the defaults correct), however many people have reported that setting a fixed resolution is helpful. Especially for some LCD’s which just seem to go blank.

For more information run man xorg.conf

Edit: 11/23/2009

Command Line DVD Burning

When I built my server, I only used a CD-RW/DVD-ROM combination drive. Whenever I remotely downloaded a ISO using wget or bittorrent, I would have to copy the 2-4GB file(s) from my server to either my desktop or laptop. I finally caved, and bought a DVD-RW drive for my server (even though it will get minimal usage).

(This was all on my CentOS 5 server, I executed these commands entirely remotely. )

After I installed the new drive, I ran dmesg to check how it was detected:

[mirandam@atlas ~]$ dmesg | grep DVD
hda: HP DVD Writer 1140d, ATAPI CD/DVD-ROM drive
hda: ATAPI 12X DVD-ROM DVD-R-RAM CD-R/RW drive, 2048kB Cache, UDMA(66)

The device is /dev/hda, which will be linked to the DVD device in /dev:

[mirandam@atlas ~]$ ls -l /dev | grep dvd
lrwxrwxrwx 1 root root         3 Aug 19 19:44 dvd -> hda
lrwxrwxrwx 1 root root         3 Aug 19 19:44 dvd-hda -> hda
lrwxrwxrwx 1 root root         3 Aug 19 19:44 dvdrw -> hda
lrwxrwxrwx 1 root root         3 Aug 19 19:44 dvdrw-hda -> hda
lrwxrwxrwx 1 root root         3 Aug 19 19:44 dvdwriter -> hda
lrwxrwxrwx 1 root root         3 Aug 19 19:44 dvdwriter-hda -> hda

Necessary Software

In order to work with DVD writing, you should have the dvd+rw-tools package installed. This will most likely be installed if you have Gnome or a CD/DVD app such as K3b. If not install via yum:

# yum install dvd+rw-tools

I wanted to erase a DVD+RW.

I had a junk DVD+RW (Memorex) laying around that I wanted quickly deleted. I used the dvd+rw-format command (it took less than 30 seconds):

[mirandam@atlas ~]$ sudo dvd+rw-format -force /dev/dvd
* BD/DVD+RW/-RAM format utility by <appro @fy.chalmers.se>, version 7.0.
* 4.7GB DVD+RW media detected.
* formatting 92.3\

I wanted to burn a downloaded ISO file onto the DVD+RW.

I used the growisofs command. I tried using sudo but it refused, so logged in directly as root.

[mirandam@atlas ISO]$ su -
Password:
[root@atlas ~]# cd ~mirandam/ISO/

[root@atlas ISO]# growisofs -dvd-compat -Z /dev/dvd=DVD_Image.iso -speed 2
Executing 'builtin_dd if=DVD_Image.iso of=/dev/dvd obs=32k seek=0'
/dev/dvd: restarting DVD+RW format...
/dev/dvd: "Current Write Speed" is 4.1x1352KBps.
   31490048/2530975744 ( 1.2%) @4.0x, remaining 7:56 RBU 100.0% UBU   2.4%
...
...
 2512584704/2530975744 (99.3%) @4.0x, remaining 0:03 RBU 100.0% UBU  99.8%
builtin_dd: 1235840*2KB out @ average 4.0x1352KBps
/dev/dvd: flushing cache
/dev/dvd: writing lead-out

As you can see, it took about 8 minutes (fast!) for this to finish. After it finished, I mounted the new DVD to test it (my image was udf, most linux CD/DVD images are iso9660):

[mirandam@atlas ~]$ sudo mount /dev/dvd /mnt/dvd -t udf

When I got back to the server, my DVD+RW was ready for me.

I plan to always leave a DVD+RW media in the drive so it can serve as an means for backup. Automating the process may also be a good idea.

More Info

http://fy.chalmers.se/~appro/linux/DVD+RW/
http://www.andrews-corner.org/burning.html

CentOS 5.3 Released

For those who might not be familiar with enterprise linux distributions, CentOS is a rebranded free version of Red Hat Enterprise Linux (RHEL). For enterprise usage Red Hat supports each release for 7 years, while carefully updating packages for backwards compatibility. Each .1 “point release” is an Service Pack update. RHEL 5.3 was released at the end of January.

Typically it takes a few weeks for the CentOS team to repackage, build and distribute the source of RHEL into a CentOS release. Last night CentOS 5.3 release was announced. The seemingly long delay was due primarily to some personal issues within the CentOS team.

I have been running a personal server on CentOS for 1 year now and I could not be more pleased with the results. I plan to update my server tonight when I am at the console. The following are some tips I’ve read online for a smooth (and fast) upgrade:

# yum update glibc

The glibc update is due to a RHEL 5.3 known issue.

After that, I would generally do the following. This basically updates the YUM installation system first to take advantage of any improvements in a newer YUM release. :

# yum update yum rpm
# yum clean all
# yum -y update

Even though past updates have been flawless for me, please do make proper backups, and read the Release Notes for more information.

Wikipedia Migrates from Fedora to Ubuntu

The admins running Wikipedia are almost complete in migrating their servers from a mix of RedHat and Fedora to Ubuntu. The primary reasons behind the switch, according to Brion Vibber (Wikimedia CTO), were personal preference, Ubuntu availability on the desktop and better support/stability compared to Fedora. As a server, one might think that an enterprise option like RHEL or CentOS might make for a better choice, however both of these lack the appeal of Ubuntu and the flexibility in support.

Regardless of the reasons for the switch, this is another opportunity for people to question Fedora’s fast moving development pace (i.e. “bleeding edge”). Fedora user know that Fedora requires constant updating/upgrading and Fedora developers are obviously quite accustomed this and welcome it. An interesting thread on the Fedora development mailing list raised this topic and spawned a great deal of discussion. Some users/developers think that if Fedora provided a LTS stable release then perhaps situations like Wikipedia’s could have been avoided. Jesse Keating, Fedora Release Engineer, chimed in with a very well worded point:

Given the amount of churn we allow maintainers to introduce into our
“stable” releases, I highly doubt Fedora would be suitable for any
situation where a “LTS” was desired. There is just too much major
version upgrading
, behavioral changes, massive amounts of updates,
rapidly invalid documentation, and high chance of regression in the
“stable” updates. We should address *that* problem before ever thinking
about extending the life.

Even if Fedora could address that problem, big organizations most likely won’t change their opinions. However if those issues could be addressed, many users probably wouldn’t be migrating away, and more importantly they would just have a much better operating system!

(As a personal point, I no longer use Fedora as a server. I recommend CentOS.)

Local Server Hardware

After identifying exactly what my local linux server requirements were, I decided to take a good look at my hardware options. From the start, I wanted to (1) save money, (2) save electricity/power and (3) minimize noise.

To address these issues, there were many decisions I made. First of all I did not need any peripherals. The server could be entirely “headless” (i.e. no monitor, no keyboard, no mouse, etc). The primary things of value are: disk storage, memory, cpu and network. Hence the following are my requirements:

  • Processor – CPU speed should be about 1Ghz. Preferably a low power processor (ex: Geode-NX, Pentium-M, etc.). I prefer a CPU without a fan and that could be cooled with the heat-sink alone. Although I do not plan to do major computational critical tasks, in the past I have seen certain processors (Via) have difficult with SSH (something that will be critical to performance for me).
  • Memory – Minimum memory: 256MB. From my experience using Fedora as a server and building other minimalistic Linux machines, I know that all my tasks/processes should be fine with about 150-200MB of memory after some tweaking. For safety, about 512MB will be perfect.
  • Disk – Minimum storage space: 80GB. All of my critical documents, development, music (mp3’s, etc) and server backups could be fit easily into 20-30GB. I think double that amount should be adequate. However, realistically, since I most likely would want a SATA drive for performance, most drives are at 160GB for the best price.
  • Video – Don’t care. On board. The most I would need to do is run a remote X-server session, which does not benefit from better video hardware.
  • Sound – Don’t care. On board. Would never be used.
  • Network – Standard networking is now 100Mbit, however it would be a nice to have 1Gbit. Although both my desktop and laptop are both 1Gbit, I do NOT have a gigabit switch.
  • DVD – For installation, a DVD drive would be needed, but once complete, everything would be done over the network. However, there is a practical advantage to having a DVD-RW. Even if the hard drive was very large, a 4GB DVD backup could still be useful for incremental long term backups.

What did I end up getting?

  • Motherboard/CPU – Intel Celeron 220 1.2Ghz. I found a mini-ITX CPU/board combination. My primary reasons for purchase were (1) price – less than $80 USD, (2) no noise – fanless, (3) power consumption was only 27W. The other features of the board were SATA, Onboard video/sound, ethernet and USB2.
  • Memory – 1GB 533Mhz. I did not need 1GB, but the price was only $25 USD and since the motherboard only had 1 slot which supported maximum 1GB, I decided that it was best to just max it out for now.
  • Storage – Seagate Barracuda 7200.10 SATA 250GB. I did not need the space either but the price was only $70 USD which for the features (16MB Cache SATA 3.0Gb/s) was a good deal. I currently recommend Seagate Barracuda drives, they are great performance and reliability.
  • Case – Antec NSK MicroATX Cube (350W). I thought it would be best to minimize the space the system would take. Also this series of cases is known to be absolutely silent as well as power efficient. This was the most expensive part: $100 USD.
  • DVD – I recycled an old DVD-ROM I was not using.

Total spent: ~$280 USD. This was well within my budget of $300-400.

There were some things I learned and I did run into some issues. I should first mention that everything did “work” correctly.

  • Motherboard SATA – I realized later that the motherboard only supported 1.5Gb/s SATA. So my drive is not operating as fast as it can be, but this is acceptable since majority of my file transfers will be somewhat smaller and the standard SATA performance is very good.
  • Motherboard Video – I knew that onboard video is pretty low performance (in this case SiS Chipset). However for whatever reason the VGA-out on this board was especially noisy. While this would be unacceptable for normal use, I never intended to have a monitor on this machine.
  • Motherboard BIOS – This board had an Intel BIOS. I am most familiar with Asus motherboards and in the BIOS setup there is an option to manually set the startup time (fixed, daily, etc.). The nvram-wakeup utilizes the setting to wake-up the computer. However this board does NOT have that option. I was hoping the machine would sleep during in-activity and wake automatically. I have not yet decided how to work around this other than manually starting it each morning.
  • Celeron CPU – While this CPU met my needs perfectly, I was a little disappointed it did not power-throttle (i.e. reduce clock speeds to save power). The ACPI information is a little bit confusing, however given that it is low power anyways and it does support 64-bit, this is acceptable.
  • Case – Any “smaller” case typically has problems. Antec is usually known for their quality, however I found my case incredibly noisy. The power supply fan rattled too much. I was thinking I would have to RMA to Newegg, but luckily I eliminated the noise by taking everything apart and re-tightening every single screw. Very frustrating but it worked.

Overall I am happy with the purchase. I did end up saving quite a bit, but I can’t help thinking that perhaps spending a little bit more would have allowed for some slight benefits.

I guess I was a little bit wordy, but I wanted to explain very clearly my thought process in assembling a computer with a very specific purpose.

More on this after the software is up and running!

Fedora Makes a Terrible Server

for me.

I am finally giving up on Fedora as a server. I find it just too unreliable. I have been using Fedora since FC1 (and been on Redhat since RH6.0), but for the most part I only used it as a desktop operating system.

When I was using FC3, I found it very helpful to mirror my website(s) on my local machine. This worked great, however with each new Fedora release I found more things breaking with my scripts and setup. For a while I put up with the struggle by doing things like re-compiling PHP4, but even that became quite tiring. I concluded that Fedora just moved too fast for my server development needs. I cannot fault Fedora, rather that it did not meet my needs. However I still used it.

As recently as FC6, I found the need to access my computer remotely. I started tweaking my desktop for some security and making it more “remote-access” friendly. This did work for a while. All I was doing was using SSH and working on my Apache mirrors. My frustration began with the security. I took a long hard attempt at trying to secure the system with SELinux, however for multiple reasons I abandoned it.

Later when moving to Fedora7 I was pleasantly surprised with the performance. The major problem arose when I updated my 2.6.21 kernel to 2.6.23. Some nasty bug was killing my SSH performance. Basically it left me dead in the water. I accepted to fall back on the older kernel, however soon enough I came to install Fedora8 which also had the bug. For the most part I didn’t use Fedora8 for 2 months since I was out of the country. However when I finally did, I got so frustrated that I ended up installing the old F7 kernel on F8. Of course I broke sound, PulseAudio, ACPI and the X-server, but I REALLY needed SSH to work. While this again is not Fedora’s fault, I find the following comment pretty helpful from the kernel mailing list: “Please note that 2.6.23 kernel has a lot of bugs and we don’t recommend using it…” – Regardless, it WAS a kernel that Fedora used.

I personally do not think that a given Fedora release is very stable and/or reliable. Until I started expanding my usage I really did not mind, however now I am finding it more difficult to handle. While some people may suggest I upgrade less frequently, that’s fine and all, but it does NOT change the quality of the release. Furthermore, as my desktop I like to have a new release. … And some people may tell me that I should have been more pro-active and filed bug-reports and other information. Well, I do agree with that, but unfortunately I just did not have the time.

So what’s the solution? Simple: don’t use Fedora as a server. For myself, I bought a brand new computer. I built a low powered file/web server and put CentOS 5.1 on it. In the next few weeks I will migrate all my development onto this machine. Hopefully I won’t need to upgrade it for a very long time.

Will I stop using Fedora? No. It will still be on my desktop. However I will have more realistic expectations from software considered totally “free”.

Sorry for the rant.