Windows XP Terminal Services Remote Desktop Bug

Leave a comment

Windows XP Terminal Services Remote Desktop Bug

Hey All,

I would like to address a bug that I have been experiencing for a couple years.

Scenario:

I work from a mac computer and connect remotely to a PC that is on my desk.  Reason being is that I use both systems equally but I find OS X’s ability to multitask more efficient.  I enjoy using spaces (virtual desktops) to setup different areas of work.  This saves me from having to close windows and reopen them.  I find it more productive.

Anyway, in one space I load the remote desktop connection that connects to my XP PC.  I have this on at all times until I leave my office to act on a call.  At that point, I may need to access my computer remotely from another PC location.  When I connect using a windows computer it crashes my remote XP PC.  At that point, I lost any programs that I had open on my XP computer.

Finding a Solution:

I searched through the event logs to no avail.  I had also scoured the internet to find out how I could fix the problem to no avail.

Then the light bulb went on. 

This was a blue screen error.  I will need to run a memory dump analyzer. I know that if you download some of the support tools from Microsoft it will allow your to look at the contents of C:\windows\system32\minidump.  However, this was a PITA.  I came across this sweet tool from that was mentioned in Scott Mueller forums made my NIRSOFT.

I had installed it and ran this program and it analyzed the dump files with ease.  The program is called Bluescreen View by Nirsoft.

This handy program pointed out what was last on the stack before the computer crashed.  The files:  NTOSKRNL.EXE RDPDD.DLL WIN32K.SYS.

At this point, I went to google and looked up some stuff.  Found this posting: Article

They were suggesting the crash was caused by a system signing onto the computer in Thousands of colours mode which was in the 15 bit colour mode.  My guess is that when signing on with the pc version of terminal services is that it uses the 16 bit colour mode.  Which in the end the two computers get confused and the net result is that the host crashes trying to switch from 15 bit colour mode to 16 bit colour mode.

I had tried adjusting the colour modes to prevent any crashes but to no avail.   This bug still remains!  Any thoughts?  Anyone know of any hotfixes etc. ?

 

SBR600 – Networking Without Wires or Waves- General Reflection:

1 Comment

SBR600 – Networking Without Wires or Waves- General Reflection:

In my final semester at Seneca College studying CTY, I had taken SBR600 based on a suggestion from a co-op supervisor. He had mentioned that this course would be beneficial to me in that I would learn how to work with people inside the open source community. Also, gives me better understanding on how software works and how to customize applications to better suit my needs.

Learning Outcomes:

Other than referencing the course outline, I would like to put down exactly what my learning outcomes that I got out of this course that I would like to mention.

Compiling software from Code using GCC:

I was never really comfortable with building software until I had taken this course. I understood that basics of it but if there was ever a dependency error I wouldn’t know where to look. I recognized that there were certain things that needed to be done in order to build the software. For example, I had asked Chris for some advice on how to build an ethernet driver for one of my laptops. At this point, I have never successfully installed a driver on linux ever before. I had always had problems understanding this ever since my first version of Red Hat back in the 90s. I had problems with getting X windows to show up because i never had the right graphics card that was computable with Linux. Same with today, I could never figure out how to install the ATI graphics driver for Fedora. IT would always fail. Anyway that was another story. I would like to tell you how I installed my NIC driver so that I could do my work for another class (long story – OPS535).

downloaded the source code from realtek.com.tw for a RTL8102 PCI-E NIC

made sure I had all the correct building libraries

untar’d and compiled

lsmod and saw the NIC driver was installed =)

You may think that this was as easy as I just described it but I did not clue in to half this stuff because I had a tough time trying to compile the driver. Turns out that the library build files were the wrong ones base on the kernel version that I was running! To alleviate this, I had to run a yum install kernel-devel and then a `uname -r` (i think) the get the correct build libraries!

Eureka! It worked like magic. Chris had pointed this out to me and this was the problem! Not only did I learn from this from a software building standpoint, I could now work on my OPS 535 assignment from home!!!!! Note the exclamation marks as I was pretty excited about this.

Even though this was not directly part of the SBR objectives, I feel that as a prospective system administrator, I should know how to compile / install a driver in *nix systems. In SBR or any course in CTY for that matter I would like to see some more information in how one would install drivers on a *nix system to improve your computers performance & functionality.

Building RPMs from SPEC files:

I found this to be a progressive learning curve. At first, it was a bit scary. Especially building the spec file. I had struggled with this but eventually figured it out. It is not until working on the project with Tarin & Vitaly that I really started to understand SPEC files and how to design them. In an earlier post I discuss using source SRPMs to create NLED. This is another thing that still baffles me but I think I just need more practice.

Using Version Control Systems:

GIT

Let’s talk about GIT, I made an earlier post about GIT and discussed my experience with it. I find that if I were to use it on a regular basis I would be very comfortable with it and use it very often. It is getting over that initial learning curve where this tool can be very helpful. When I first heard about this tool I had also thought this was some sci-fi tool and seemed abstract. If I were to do this course again or take the next SBR, I would be using GIT all of the time. It provides a better collaborative effort as suppose to having people do things themselves.

Jobs:

No not Steve Jobs, although I do own a mac that does not boot from USB unless it is formatted correctly with a EFI compatible boot loader. It is a huge headache to boot a MAC with a usb key. Still haven’t figured it out yet but that is not what I want to talk about here.

I had some experience running jobs in a previous post below. I found it interesting to learn how to benchmark the jobs and learn how to change the j value to vary the job speed.

I could see how this can help your build times. At the end of the day we are always trying to push the limits of speed and effectively use the CPU to its full potential. As the Eagles songs once said “Take it … To the limit one more time”.

Working on remote systems (Chile, Iraq and Romaina):

I have always been fascinated by remoting. The idea I can do something far far away and have it work in real-time is awesome. I feel it really gives people more possibility to do things with computers and maximize the resources. When I was trying to build the driver for my laptop I utilized the Chile and Iraq systems and found that I was able to build the drivers on Chile but not Iraq. Just being able to test things out on different machines I found useful. I found it fascinating that you could have multiple users connect to the machine to take on a task. IT reminds me of the old days of modems and BBSes.

For our project we had done many things to utilize these systems:

1. Setup a repo on Chile

2. Tested a repo on Iraq system

3. Tested the minefield setup on these systems

What I found really cool that I did not know I could do before is to run the ssh with the -XC flag. This allows us to run the X11 sessions so it was as if i were accessing the computer if I was in front of the terminal. These are things I though were only possible in Sci-Fi flicks. I would boast more about remoting but I think I will move on about some other neat stuff.

Mock & Koji

I did not do a lot of work with Mock and Koji but I recognize the value of having these tools. A lot of times when your building software it would work on one system but not the other. Using Mock, it will allow your to build the software on a clean slate using chrooting. I understand the concept but I have yet to apply this. I hope to apply it in the future when I am exploring this on my own time.

I like the idea of Koji because again you are attempting to maximize efficiency. Allow you to build on different architectures and setup scheduled jobs is the driving force behind server farms. Before this class, I though server farms had something to do with farmtown on facebook. Just kidding…

Overall Reflection:

I found this course to be very progressive. I like progressive courses. By teaching us the tools and letting us experiment the tools and create something really pushed us to figure out how to use them. This is classic college practical experience and using the tools and applying it to the real world. This method could be compared to any hands on tools.

You need to build a house? Here are the tools, here is how to use the tools. Now go build a house use your brain. Talk to people get their help and ask them how they would build their house. Apply the information from others and use it to your design.

Which leads me to the title of this blog “Networking without Wires or Waves”. This course teaches you the power of networking with people. To understand what to do if your running into a problem and how to solve it using the vast resources of the internet. When I am talking about networking I am not talking Ian Allison DCN386 Cisco speak. I am talking about talking. It is the people that you involve in the project that can help you out will advance the project. This is why open source is very powerful in that the community helps each other out when trying to reach a common goal. Our project had an outcome where Armen and the Mozilla build team had a problem with the nighties and betas. We had taken on a solution to the problem by creating a repository for people to download from to obtain the nighties. So far, we have had excellent response and we as a group we had an epiphany in how fast the news travels and how our contributions positively affects the open source community.

In closing, I would like to thank our professor Chris Tyler, Armen Zambrano, Tarin Choudhury, Vitaly Bluzmans and my other classmates who had assisted me in any questions (good & bad). Best of luck to all in the future.

Sincerely,
Brett van Gennip

Got it! Git it! Good!

Comments Off

On Tuesday, November 9th we were taught how to use the GIT command.
The GIT command is a quick way to implement version control systems.  An organized and useful way to collaborate with other team members !  I know some people know svn or mercurial.  But I like git, as it seems to be pretty intuitive.
In fact, I could be using this now with our current SBR project!
For example, with our project:
Me, Vitaly and Tarin are working on creating repos for the Mozilla nighties and Beta’s for Firefox.  Part of the process is to create RPMs and create a useable SPEC file to accommodate the latest nightly.  It would be useful to add a central git repository for the three of us on one machine to work together to put together a useable SPEC file.
Since I am still trying to figure that out, here is how you would setup git for your own directory.
Here is the example setup:
1. Setup the GIT command -
Setup a working directory -
cd rpmbuild/SPEC/
$ git init
Initialized empty Git repository in /home/bvangennip/rpmbuild/SPECS/.git/
2. Add some files under the rpmbuild/SPEC/ Directory then update it:
git add *
git commit -m “Original Additions”
3. Make some changes to the files then:
git commit -a -m “made some changes”
Then the process just repeats itself until you want to make a branch
to do that you just create a branch using
git branch brett <arbitrary branch name>
git checkout brett
change some stuff –> Do step 3
now the additions are being made separate from the original master copy.

Well that is as far as I got for now.  I know that if you setup your users in linux under a matching group name you can use the git function in collaboration.  Otherwise you have to setup a git repository.  Which I am still learning.

B

J Values and RPM Building

Comments Off

Understanding RPM:

In this blog, I will be focusing on how to build rpm’s in different ways.

Part 1 – Building Using Different J Values

Building System :

I own a MacBook Pro 2006 model-

Hardware Overview:

Model Name: MacBook Pro
Model Identifier: MacBookPro2,2
Processor Name: Intel Core 2 Duo
Processor Speed: 2.16 GHz
Number Of Processors: 1
Total Number Of Cores: 2
L2 Cache: 4 MB
Memory: 4 GB
Bus Speed: 667 MHz

Also decided a few weeks ago that it would be a good idea to put a solid state drive into this mac to give it a bit more kick. Perhaps it will speed up the build time.

Also running Fedora 13 using virtual machines

My Virtual Machine is Setup as so:

1 CPU — 1024 MB of RAM
14 GB SCSI DRIVE


Onto the building:

In order to do this you need the development packages -

  • yum groupinstall “Development Tools”
  • yum install rpmdevtools

Create a user and passwordfor building RPMs

  • /usr/sbin/useradd rpm
  • /usr/sbin/passwd rpm

Now, login as the user and run rpmdev-setuptree –> this sets up the directory tree for Building RPMS

install Using : rpm -ivh httpd*.src.rpm

Changing the J Value:

  • edit ~/.rpmmacros using a editor of choice
  • change the -j# value in here where 3 is the default
  • After you have changed the J Value you are able to build pacakages through the amount of jobs to be ran at once

  • Goto the SPEC directory and run rpmbuild -ba httpd.spec
  • Originally I receieved an error because I was missing certain dependancies
  • You must install certain Dependancies for creating rpms from source rpmsyum-builddep httpd-2.2.16-1.fc13.src.rpm

    Build Times:


Reflection:

In reflecting in building apache, I have noticed that optimum build time is the best real time. Which turned out to be the default -j3 set vaule in the .rpmmacro. Althought there may be times when you need to change this value to optimize the speed of your build time. Some of the values may be skewed as the load on the cpu was being used differently at times. I was downloading some updates on the host Mac OS X machine at the time of -j5. Perhaps that is maybe why the build time was different.

Follow

Get every new post delivered to your Inbox.