By vbkraemer on Feb 20, 2007
This is a short account of a driver update gone wrong. I have two purposes behind telling this story here:
- Document the issue and solution with enough descriptive detail that the next user who runs into this issue will find the solution with google. I had tried but had been unsuccessful. Now that I know what the solution is, I have been able to find a number of other users that have had this same issue.
- Describe the issue with enough detail that someone can prevent users from ever running into this situation again.
Running the driver updater for Solaris X86 that ships on the Tools & Drivers CD 1.5 appears to disable the X Window Server's higher screen resolution capability. When the user reboots the machine, the X server restarts with a resolution of 640x480. The user needs to intervene to restore their system to a useful state.
Gory Details for Spiders and the Desperate
I have an Ultra 20 M2 (A88-GGZ1-AA-2GBGA) that sits next to my desk. I had installed Solaris 11/06 on it and have been using it for about a month. It is driving an old Sony monitor at the useful resolution of 1600x1200 pixels. I have been happy with it, but a co-worker indicated that he had been in other offices where the owner's M2 was much quieter than mine. He indicated that the issue might be resolved by downloading a BIOS update.
I used Google to discover the Tools & Drivers CD page. I downloaded the ISO image and burned it. I took the disk to my office the next day.
I inserted the disk in the DVD drive and rebooted the machine. I was able to update the BIOS very easily.
When the machine rebooted the fan was quieter.
Since the BIOS update seemed painless and useful, I decided to also use the disk to update the drivers.
I logged in as a regular user with the X Server running at 1600x1200. I inserted the CD back into the drive. I opened a terminal window and used su to become a super-user. I issues a cd command to get to the directory that holds the driver update for Solaris x86.
Once I was in the right directory, I executed the script install.sh. The script appeared to execute without error and prompted me to reboot. I did.
When the system rebooted, the screen resolution had been reduced from 1600x1200 to 640x480. When I used the widget that changes the screen resolution to fix this, I discovered that 640x480 was the only resolution choice available.
All of this happened on Friday afternoon. My office building was about to have massive electrical work performed on it over the week-end, so I shut the system down. It was one of those 'he who fights and runs away...' kind of moments.
Over the week-end, searched around on google for anything that looked like it might be other users who had run into this situation. I wasn't able to find any... At least none with an answer.
I started three threads on the Sun support forums over the course of Friday night and Saturday morning. I figured it was a pretty good choice, since Sun has development centers in about 8 different timezones. Surely there would be someone who would see this issue and be able to provide direction on how to enable higher screen resolutions.
Once Monday came around, with no answer, I started another thread on the OpenSolaris discussion forum for desktop related issues. That thread did generate a hint on what to check but came to me through an e-mail.
On Monday afternoon, one of my threads on Sun's support forum did get some other suggestions of what could be wrong.
On Tuesday morning, I started to follow up on the hints and queries that I had gotten.
The first thing that I needed to do was find out which X Window Server my system was running now. I used 'ps' and discovered that my system was running the server from X.org. In the e-mail that had some suggestions of what to check, I was told to look for /etc/X11/xorg.conf.
When I checked for that file, it was not there. I do not know whether there had been one and the install.sh had deleted it or if it had never been available on the machine I was using. I may never know.
Once I discovered that the xorg.conf file was not avaiable, I logged out.
I then logged into my system as root using the 'Command line login' option on the login screen. this option shuts down the X Window Server, so that you can do configuration activities that might not be safe when the server is actually running.
Once I was logged in, I used the following command to create a new configuration file:
/usr/X11/bin/Xorg -configureThis command creates a new file in the current directory named 'xorg.conf.new'.
I inspected the file and was a bit overwhelmed by the details, but did see the string 1600x1200 and many other "standard" resolutions listed. So, I used the command
cp xorg.conf.new /etc/X11/xorg.confto put this new file in the proper location.
After I logged out as root, the X Window Server restarted, in a very useful high screen resolution (1600x1200).
- Was there an /etc/X11/xorg.conf file before I ran the install.sh?
- Why didn't the install.sh notice that there wasn't an /etc/X11/xorg.conf after it had finished, but before I was asked to reboot the system?
- If there hadn't been an xorg.conf file before the updater ran, why did the X Window Server appear to need it after the update ran?
I want to thank peterchun and Robert Kinsella for their helpful advice and suggestions. Without their help, I would have not been able to get any work done for Sun today. If either of you make it to Santa Clara, California, look me up and I will buy you lunch.