Wrong FS Error while mounting USB flash drive in Linux

Recently, when I plug in my USB flash drive into my Acer 3680 running Mandriva 2008.1, I got the following error:

mount: wrong fs type, bad option, bad superblock on /dev/sdb1,
missing codepage or helper program, or other error
In some cases useful info is found in syslog - try
dmesg | tail or so

When I did do a dmesg, I find the following error:

NTFS-fs warning (device sdb1): is_boot_sector_ntfs(): Invalid boot sector checksum.
NTFS-fs error (device sdb1): read_ntfs_boot_sector(): Primary boot sector is invalid.
NTFS-fs error (device sdb1): read_ntfs_boot_sector(): Mount option errors=recover not used. Aborting without trying to recover.
NTFS-fs error (device sdb1): ntfs_fill_super(): Not an NTFS volume.

The problem is that the usb key is formatted in FAT32. Attempts to use windows to fix the volume and reformatting the volume did not fix the problem. The problem was eventually traced to the /etc/fstab file. In it, I find:

/dev/sdb1 /media/hd ntfs user,nls=utf8,sync 0 0

This apparently cause the USB key to be mounted as a NTFS volume, which resulted in the error. The solution was to just delete the line. I am not sure how the line got there in the first place. It’s probably something added by accident by the Mandriva installer.

Add comment June 3, 2008

Mandriva 2008.1 on Acer Aspire 3680-2622 Laptop

To This blog documents my experience with running Mandriva 2008.1 on Acer Aspire 3680-2622. Note that I started out with Mandriva 2008.0 Powerpack and then upgraded via the standard repository to 2008.1. Since powerpack is essentially Mandriva plus some proprietary software, I assume that most of the blog applies to the standard Mandriva and probably other versions of Linux.

According to uname -a, my machine is running kernel 2.6.24.4-laptop-lmb.

Hardware Component Status under OS Notes
Intel Celeron M520 1.6 Ghz CPU Working  
Intel 943 GML Video Working Conpiz 3D works perfectly but has compatibility problems with video playback if turned on.
14 inch LCD Working Brightness control works. Brightness control did not work in Mandriva 2008.0.
Intel 82801G HDA Audio Working Correctly detected headphone and disable speaker. Make sure you configure the volume control to Master and adjust the volume in the mixer.
2 Gb RAM, DDR2 Working  
Western Digital WD800BEVS 80 Gb SATA Hard Drive Working  
Optiarc CD-RW CRX880A Working  
Keyboard Working Many of the Hot keys works.
Synaptics Touchpad Working Require manual editing of Xorg to change Touch pad configuration like tapping.
Marvel 88E8038 PCI-E Ethernet Working  
Atheros AR2413 802.11bg Wireless Working WPA works.
Battery Working  
Modem Not working Does not even appear in hardware detection list.
USB Working  
TI 5-in-one Card Reader Working Tested only with SD card
TI Cardbus Untested Probably works
Sitecom Bluetooth (third party install) Working This is a USB module that plugs into the Acer 3680’s internal bluetooth connector. It did not come with the laptop.
Laptop Power Management Working Note that Celeron do not have frequency scaling.
Suspend to RAM Working with Modification Laptop often failed to resume because it crashes while loading ALSA. You need to turn off Pulse audio.The module ath_pci needs to be unloaded during suspend or the wireless will be lost when we resume.
Suspend to Disk Working with Modification The module ath_pci needs to be unloaded during suspend or the wireless may be lost when we resume.

Possible strange interaction with the Wireless Switch

When I first boot up, the wireless did not work. Rebooting it did not work either. Finally, I reboot while holding down the network switch. Since then, the wireless has worked for most of the time but fail to be detected some of the time. Whenever Linux failed to detect the device, I have shut off the machine and repeat the procedure to restore the wireless.

Unload the wireless module during suspend

One problem encountered is when you suspend, sometimes the wireless goes dead and cannot be restarted. To get around this problem, you can tell the power management utility to unload the Atheros module during suspend and reloaded it during resume.

  1. Open a command line window.
  2. Type cd /etc/pm/config.d
  3. Type su root and enter the root password to become root.
  4. Create a file defaults with the following line:
    SUSPEND_MODULES=”ath_pci”
  5. Close the command window.

Even with this fix, suspend to RAM does not work reliabily. It appears to hang 50% of the time during resume and appears to crash during resuming ALSA. Suspend to Disk appears to be working.

Turn off Pulse Audio to fix Resume from suspend to RAM

By default, Pulse Audio is turned on. When it is turned on, resume often failed when reloading ALSA. You can see this when you check the logs in /var/log/pm-suspend.log and /var/log/messages. To correct the problem, do the following

  1. Select menu Tools->System Tools->Configure Your Computer. Enter the root password.
  2. Click on Hardware.
  3. Click on Browse and Configure Hardware.
  4. Click on 82801G (ICH7 Family) High Definition Audio Controller under sound card.
  5. Click on Run Config Tool.
  6. Uncheck “Enable PulseAudio” and “Automatic routing from ALSA to PulseAudio” and press OK.

Synaptics Touchpad

The synaptic drivers appears to be detected and installed properly. However, unlike Ubuntu, I was unable to find a GUI interface for configuring the touchpad. In the end, I ended up configuring it manually in xorg.conf.

Setting the clock to local time instead of UTC

Normally, I like UTC better than local time. Unfortunately, if you plan to run windows as a guest under Virtualbox, you have to use local time or the clock under windows guest will be way off (apparently, even Vista still runs in local time). To set UTC, right-click on the clock and adjust the time. At some point, you will be ask if you want to use local or UTC.

Volume Control

When I first install the machine, it had no sound. I right click the volume control and selected Master Channel and select Master as the master volume. I then right-click again and select Show Mixer window and adjust the volume. This seemed to have corrected the problem with sound.

What’s nice about the implementation is when I plug in the headphone, the speakers are automatically muted. This is something that is common to Windows, but was rarely the case under Linux.

The hot key for muting the volume does not appear to work.

Video playback issue with Compiz

When you switch on Compiz, video playback always failed. When Totem, Kaffine, or VLC is use to playback a video, the program would crash immediately. The problem appears to be an incompatibility between Compiz and X Video extensions (XV). To correct the problem on players that rely on Gstreamer like Totem, you can do the following:

  1. Select “Run Command” from the menu and type “gstreamer-properties” without the quotes.
  2. Click on the Video tab.
  3. Select for the default output “X Window System (No Xv)” and press OK.

Now you can play back videos on Totem. The only problem is that with Xv acceleration off, video playback will require more cpu. However, the Celeron M520 should easily handled most movies. For Kaffeine, you can set the playback to not use XV by:

  1. Launch Kaffeine.
  2. Select menu Settings->Xine Engine Parameters,
  3. Click on Video.
  4. Set the video option to “xshm”.
  5. Press OK.

Remote Desktop

Most Linux distro these days come with a GUI RDesktop in their menu, which I use mainly to access windows machines on my network. Mandriva for some reason does not include a GUI version of RDesktop in their menu item, but it exists. It is call rfbdrake. To run it, execute rfbdrake from the run menu item or from the command line.

Setting up RAR

I often get files in the RAR format, but rar is apparently not in the regular repository. You can find rar in PLF repository. To setup this repository, open up a browser and go to go to http://easyurpmi.zarb.org/. Follow the instructions to add the PLF repository. Once it is added, you can find rar and install it.

Battery Life

A quick test indicated that battery life under Mandriva (with 3D turned off) is about 10-15 mins better than under Vista Basic. In my experience, this is often not the case. Windows typically have better battery life (probably due to better power management in their drivers). This is an unexpected bonus.

Update Dependency Problems

Mandriva automatically check for updates. During one of the updates, I got the following error:

Sorry, the following packages can't be selected:

- kdebase-common-3.5.9-37.2mdv2008.1.i586 (due to unsatisfied libkdebase4[*][== 1:3.5.9-37.2mdv2008.1])
- kdebase-kdeprintfax-3.5.9-37.2mdv2008.1.i586
- kdebase-kdm-3.5.9-37.2mdv2008.1.i586 (due to unsatisfied liblazy.so.1)
- kdebase-nsplugins-3.5.9-37.2mdv2008.1.i586 (due to unsatisfied kdebase-progs[== 1:3.5.9-37.2mdv2008.1])
- kdebase-progs-3.5.9-37.2mdv2008.1.i586 (due to unsatisfied libkdebase4[== 1:3.5.9-37.2mdv2008.1])
- libkdebase4-3.5.9-37.2mdv2008.1.i586 (due to unsatisfied libbeagle.so.1)

I was unable to make the problem go away. However, I find the problem only affects the graphical update. If I go to the command line and do the following:

urpmi -- auto-update

The update managed to figure out the dependencies.

Accessing Windows Share

Mandriva Linux Control Center has an icon to access Window SMB shared drives, but it does not work. There are two problems:

  1. Firewall block windows access.
  2. Access SMB in Mandriva Linux Control Center does not work.

To open up the firewall, do the following:

  1. Select Configure Your Computer. Enter the password for root.
  2. Click on Security.
  3. Click on Setup your firewall.
  4. Check Windows File Sharing (SMB). Press OK.
  5. Uncheck “Windows File Sharing (SMB)l” from the watch list, or you’ll be constantly pestered about port 137 and 138 being used. Press OK.
  6. Check both wireless and wire to be protected by firewall. Press OK.

Since Mandriva Linux Control Center did not work, we should use a different SMB client to access your Windows Shared directory. The best SMB client is smb4k.

  1. Select Configure Your Computer. Enter the password for root.
  2. Click on Software Management.
  3. Click on Install and Remove Software.
  4. Search for smb4k
  5. Check smb4k and press Apply.

Once smb4k is installed, you can select it from Menu->Internet->smb4k. Just remember the set your permission at the window server side correctly.

However, I notice that I am still unable to access Vista shared volumes.

NTFS access

Surprisingly, Mandriva does not come with NTFS support installed. If you plug in an USB external drive formatted in NTFS, it’s going to complaint that your volume is corrupted. To install NTFS support, do the following:

  1. Select Configure Your Computer. Enter the password for root.
  2. Click on Software Management.
  3. Click on Install and Remove Software.
  4. Search for NTFS-3g
  5. Check NTFS-3g and press Apply.

 

4 comments May 14, 2008

Running DotNet application under 64-bit

Recently, someone asked me to help with getting an existing Dotnet application to run on 64-bit XP. It turned out to be pretty easy, compared to the transition from 16-bit to 32-bit in the old days.

Why would you run 64-bit?

Most of the modern processor these days are 64-bit CPU, but we still live in a mostly 32-bit world. One chief reason is that 64-bit drivers are not yet available. Application compatibility is less of an issue because 64-bit windows can run 32-bit application under WOW (windows on windows). When I do see people run 64-bit OS, it is usually because they are either diehard hobbist who want the latest and greatest or they are using application that requires a large amount of memory.

DotNet under 64-bit

  • Microsoft has 32-bit and 64-bit runtime for DotNet 2.0 or above. When you install the 64-bit runtime, the 32-bit runtime is also installed.
  • Dotnet assemblies compile into MSIL (Microsoft Intermediate Language). MSIL can run in 32-bit or 64-bit mode.
  • When you compile, you have the option to compile Any CPU, x86, x64 and Itanium. Remember that DotNet does not compile into machine specific code but into MSIL. This merely set a flag to tell DotNet which environment to run in.
  • If you set the flag to any cpu, it will run in 64-bit on 64-bit machine and 32-bit on 32-bit machines.
  • If you set the flag to x86 and run it on a 64-bit machine, it will run the program under WOW in 32-bit emulation mode.
  • If you set the flag to x64 and run it on a 32-bit machine, you will get an exception.
  • The only reason you want to set the flag is dependencies. If you reference 32-bit code within your application (such as unmanaged COM code), you will need to run the application under 32-bit mode.
  • Note that DotNet 1.1 or earlier are available only in 32-bit mode. If you reference DotNet 1.1 code, you will need to run it in 32-bit mode.

 

Add comment April 23, 2008

Organizing NUnit Test in a .Net or MonoDevelop Solution

When I first use Nunit, I was confused on how to set up Nunit test inside a solution. I can think of several alternatives:

  1. Have Nunit test be in the same project / Assembly.
  2. Same as 1, but use a compiler flag like #ifdebug to filter out the Nunit code during production.
  3. Create a single test project where unit test for all solutions resides. So there is a single “Unit Test” project solution where all of the unit test are stored.
  4. For each project in the solution being tested, create a corresponding test project. So if you have a “Calculation” project, you would have a corresponding “Calculation Test” project that holds all of the unit test for Calculation Project.

Personally, I do not like option 1 because it deploys Nunit code into production. I do not like option 2 because preprocessor macros are error prone. In addition, if you are only testing when the debug flag is true, are you really testing the code?

I prefer option 4 over option 3 because it gives me the flexibility to organize the test and also promote isolation between different tests. If you lump all of the test under the same project, it may be difficult to figure out which test is from which project.

For example, if we want to do a Calculator application, you’ll end up with the following solution structure:

Calculator — Solution for the calculator application

CalculatorApplication — Startup project. Contains the main routine.

CalculatorClass — this is the class code for the calculator.

CalculatorClassTest — this is the unit test for the CalculatorClass.

For each project will have a corresponding unit test project. The unit test project will reference the assembly of the project being tested. The CalculatorApplication just enough code to call the other classes. It is not tested. It may be a pain to setup at first, but it is the most organized and flexible way to organized your unit test.

Add comment April 14, 2008

Using Subversion source control with MonoDevelop

This article describes how to integrate Subversion source control with MonoDevelop. Subversion has several methods of accessing a repository. In this example, we will be using accessing the repository directly through the local file system. This means the repository sits on the local machine you are working on.

Prerequisites

The following software must be installed.

  • MonoDevelop
  • Subversion

Creating a Subversion Repository

First we need to create a repository where we will store our source code. There appears to be no way to create the repository within MonoDevelop, so you will need to run this from the command line (replace <myhomedirectory> with your home directory.

svnadmin create <myhomedirectory>/subversion

This creates a repository “subversion” in your home directory (note: the default file system is FSFS).

Adding the solution to the repository

Once the repository is created, We can add the solution to the repository.

  1. Launch MonoDevelop.
  2. Open the solution.
  3. In the solution View, right-click on the solution and select Version Control->Publish. This brings up the select repository dialog box.
  4. Click on the “Registered Repositories” tab.
  5. Click on the add button.
  6. Enter the name of the Repository such as “subversion”.
  7. Set the protocol to “File”.
  8. Set the URL to file:///<myhomedirectory>/subversion.
  9. Press OK. This closes the Add repository.
  10. Select the repository and press OK. You will be asked if you want to publish the project into the repository.
  11. Answer Yes.

The solution is now added to the repository.

Using the source control

Now that the solutions has been added to the repository, all of the source files are now under source control. Right-click on any of the file and select Version Control. You can now update, diff, or revert file changes.

1 comment April 12, 2008

Installing MonoDevelop 1.0 on Suse 10.3

MonoDevelop 1.0 has finally been release on March 14, 2008. I figured that I’ll install the MonoDevelop since I like an IDE that will do stuff like autocomplete and because Yast should also include all of the dependent components.

I have heard of numerous problems with installing MonoDevelop on linux distros because a package were not available. I was expecting Novell to make certain that MonoDevelop would install smoothly on Suse 10.3. While installation were far easier on Suse than on other distros, it still was not trouble-free.

The following are instructions on how to install MonoDevelop 1.0 on Suse 10.3. Note that I was installing on a virtual machine, but installation for a real machine should be exactly the same.

Adding the Mono Repository

The first step is to add the Mono distro to Yast, so that the package will appear in the package selector.

  1. In Suse 10.3, launch Yast. You will be prompted to enter the root password. Enter the password and press OK.
  2. Click on Software Repositories in Yast. Click on the Add button. Select the option “Specify URL” and press Next. Enter the name of the repository of “Mono Repository” and the URL to “http://www.go-mono.com/download-stable/suse-103-i586″ and the press Next.
  3. Press Finish. You will be prompted to sign with untrusted public key. Press Trust and Import key. The Software Repository window will close.

Installing MonoDevelop

Now that the Mono repository has been added to Yast, we can install the MonoDevelop package. This is where the troubles begin. Gnome and Banshee both use an older version of Mono library that was installed by default by Suse. When you attempt to install a new version of Mono, Yast doesn’t like it because you are changing the packages that Gnome and Banshee depend on. The trick is to tell Yast to ignore the dependencies since the library should be backwards compatible (”should” but who knows).

  1. Click on the Software Management in Yast. This brings up package selector.Yast Package Selector
  2. Type “monodevelop” in the search. This brings up MonoDevelop on the left pane.
  3. Select Monodevelop and press Install. This move MonoDevelop to the right pane.
  4. Press the Accept button. A change summary window will displaying dependencies.
  5. Press the Confirm button. A resolve window appears, it will warned you that mono-nunit cannot be installed due to missing dependencies. The problem is that mono-nunit wants a later version of mono-core than the one installed by default by Suse 10.3.Monodevelop first resolve
  6. Click on “Install mono-core although it would change the vendor” and press confirm. You are changing vendors because you are now getting it from the go-mono.com instead of Novell. Now another resolve window pops up. This time it warns that gnome_multimedia, banshee-engine-gst, banshee, banshee-plugins-default, and banshee-plugins-DAAP has missing dependencies. This is because Banshee and gnome-multimedia uses mono-core and you are installing a new version of mono-core.
  7. Select “Ignore this requirement just here” for each conflict and press Confirm. Selecting the other option and you may find Banshee deleted!

Unfortunately, we are not home free, when I launch MonoDevelop and create a new project, I get the following error:

Exception occurred: Exception has been thrown by the target of an invocation.

System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. —> System.TypeInitializationException: An exception was thrown by the type initializer for MonoDevelop.SourceEditor.Gui.SourceEditorDisplayBinding —> System.DllNotFoundException: libgtksourceview-1.0.so.0
at (wrapper managed-to-native) GtkSourceView.SourceTagTable:gtk_source_tag_table_get_type ()
at GtkSourceView.SourceTagTable.get_GType () [0x00000]
at GtkSharp.GtksourceviewSharp.ObjectManager.Initialize () [0x00000]
at GtkSourceView.GtkSourceViewManager.Init () [0x00000]
at MonoDevelop.SourceEditor.Gui.SourceEditorDisplayBinding..cctor () [0x00000] — End of inner exception stack trace —

at (wrapper managed-to-native) System.Reflection.MonoCMethod:InternalInvoke (object,object[])
at System.Reflection.MonoCMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] — End of inner exception stack trace —

at System.Reflection.MonoCMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000]
at System.Reflection.MonoCMethod.Invoke (BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000]
at System.Reflection.ConstructorInfo.Invoke (System.Object[] parameters) [0x00000]
at System.Activator.CreateInstance (System.Type type, Boolean nonPublic) [0x00000]
at System.Activator.CreateInstance (System.Type type) [0x00000]
at Mono.Addins.TypeExtensionNode.CreateInstance () [0x00000]
at Mono.Addins.InstanceExtensionNode.GetInstance () [0x00000]
at MonoDevelop.Ide.Codons.DisplayBindingCodon.get_DisplayBinding () [0x00000]
at MonoDevelop.Ide.Gui.DisplayBindingService.GetCodonPerFileName (System.String filename) [0x00000]
at MonoDevelop.Ide.Gui.DisplayBindingService.GetBindingPerFileName (System.String filename) [0x00000]
at MonoDevelop.Ide.Gui.Workbench.RealOpenFile (System.Object openFileInfo) [0x00000]
at MonoDevelop.Ide.Gui.Workbench.OpenDocument (System.String fileName, Int32 line, Int32 column, Boolean bringToFront, System.String encoding, IDisplayBinding binding) [0x00000]
at MonoDevelop.Ide.Gui.Workbench.OpenDocument (System.String fileName, Int32 line, Int32 column, Boolean bringToFront) [0x00000]
at MonoDevelop.Ide.Gui.Workbench.OpenDocument (System.String fileName, Boolean bringToFront) [0x00000]
at MonoDevelop.Ide.Gui.Workbench.OpenDocument (System.String fileName) [0x00000]
at MonoDevelop.Ide.Templates.OpenFileAction.Run (MonoDevelop.Projects.ProjectCreateInformation projectCreateInformation) [0x00000]
at MonoDevelop.Ide.Templates.ProjectTemplate.OpenCreatedCombine () [0x00000]
at MonoDevelop.Ide.Gui.Dialogs.NewProjectDialog.OpenEvent (System.Object sender, System.EventArgs e) [0x00000]
at GLib.Signal.voidObjectCallback (IntPtr handle, IntPtr gch) [0x00000]

Fixing the dependency issue

A quick search through the google reveal this bug. What seemed to be happening is that an exception is thrown when MonoDevelop attempts to display your code using gtksourceview. Apparently, gtksourceview-2.0.0-5 can not be use in place of gtksourceview18-1.8.5-16. To fix this, do the following:

  1. Make sure you have the Suse Disc in the drive, since gtksourceview18 is on the disc. Launch Yast.
  2. Click on Software Management. This launches the Package Selector.
  3. Type in gtksourceview18.
  4. Select gtksourceview18 and press Install, and then accept.
  5. Click confirm on Change summary window.
  6. When prompted to install or remove more packages, press No.

With gtksourceview18 installed, Monodevelop seems to work now. Banshee still seems to work just fine. Hopefully, the next version of MonoDevelop will be less painful to install.

Problems with Help

When I select Help, I get the following error: “The help window can’t be shown. Monodoc v1.2.3 is not installed or could not be found.”. Apparently, Monodoc is not installed and it wasn’t obvious which package in Yast it was. After some experimentation, I discovered it was the package mono-tools.

  1. Launch Yast and select Software Management.
  2. Type in mono-tools in the search, select mono-tools and click install.

Additional Problems

Unfortunately, there are additional problems that still needs to be resolved:

  • When I toggle the bookmark on my editor, I get the following exception:exception occurred: libglib-2.0.so

    System.DllNotFoundException: libglib-2.0.so
    at (wrapper managed-to-native) MonoDevelop.SourceEditor.Gui.SourceEditorBuffer:g_slist_free (intptr)
    at MonoDevelop.SourceEditor.Gui.SourceEditorBuffer.ToggleMark (Int32 linenum, SourceMarkerType type) [0x00000]
    at MonoDevelop.SourceEditor.Gui.SourceEditorBuffer.ToggleBookmark (Int32 linenum) [0x00000]
    at MonoDevelop.SourceEditor.Gui.SourceEditorView.OnButtonPressEvent (Gdk.EventButton e) [0x00000]
    at Gtk.Widget.buttonpressevent_cb (IntPtr widget, IntPtr evnt) [0x00000]

2 comments April 5, 2008

Turning off Auto-login in Suse 10.3

For some reason, my Suse 10.3 auto-login when I boot it up. I suspect that when I installed it, I wasn’t paying attention and auto-login is the default option. After playing around with different options I finally figured it out.

  1. Run Yast (or in this case Yast2).
  2. You will be prompted to enter the root password. Enter the password.
  3. Go to Security and User.
  4. Click on the User Management.
  5. Click on Expert Option and select Login Settings.
  6. Uncheck the auto login and press OK.
  7. Press Finish.

This should make auto-login go away.

Add comment February 19, 2008

Creating a starter kitchen

My sister recently moved to a new place and wanted to know what to get for the kitchen. This is not that easy of a question to answer. Not everyone cook the same way. Martin Yan’s kitchen probably looks a lot different than Julia Child’s. Before answering the question, I had to understand her kitchen, the type of food she cooks, and her philosophy on food.

How is cooking a philosophy? How do you see food? Do you enjoy food or do you feel that it is just something to keep your body going? If it’s the later, I would not spend money on good cookware, since it would not yield you pleasure in return.

What type of a person are you? Are you the type of person who must have the exact right tool for the job, or are you a minimalist who adapt using what you have? Most people are somewhere in between but sway toward one side. In the case of my sister and I, we both sway toward minimalism. We both have limited kitchen space and budget. We rather try to get a tool that have multiple use than not. I would recommend getting what you need rather than buying a large set and have a lot of stuff you don’t end up using.

Form follows function. The type of kitchen you own and the type of food you cook will determine what tools you should get. Some items you will always need. You need knifes to cut stuff. You need something to stir and turn over food. However, a sauce pan isn’t all that useful if you don’t plan to make sauce. A round bottom wok isn’t going to be all that useful if you don’t have a gas range.

My sister’s stove is a smooth top electric range, which appears to be a sheet of glass over electric burners. According to her manual, the cookware needs to be metal, have smooth bottom, and has a diameter roughly the size of the elements (the circle on the range top). Ridged bottom pots and pans can apparently create hot air pockets that can crack the glass. This mean standard uncoated cast iron will work, but may scratch up the glass if you move it around. Enameled cast irons are OK since they are smooth on the bottom.

Her cooking tend to be stir frying and then putting the item in the oven. This means pots and pans that can take high heat and have handles and lids that are oven safe. Here’s my take on what’s need in her kitchen:

Knifes and cutting items

Unless you plan to eat mashed potato every day, every cook needs a knife. I actually have a full set of knives, but I find that I normally only use two knifes:

  • A Chef Knife 8-10 inches.
  • A paring knife

With these two knives will cover just about every cutting situation in cooking. If you eat a lot of bread, you may consider getting a serrated bread knife, which works well on stuff with a tough crust and soft insides. Good brands to look for are Global, Misono, Henckels, and Wusthol. With the exception of Misono, all of the brands can be easily found everywhere.

Always keep your knife really sharp. A lot of knife accidents actually occur from slipping blades (Example: You try to cut an onion, but the blade is not sharp enough, so instead of cutting into the onion, it slides into your finger), which having a sharp blade will prevent.

As for cutting boards, get one that is large enough to cover the counter space and have deep channels along the side so juices don’t flow over the edge when you cut into meats. Ideally, you should get a separate board for meats and non-meats for sanitation reasons.

The jury is out for plastic vs wood for sanitation. One advantage of plastic is that you can put it into the dishwasher and use the high heat drying cycle to eliminate germs. Just make sure you get the harder polyethylene or polypropylene plastic boards. The cheaper boards are often too soft and may impact bits of plastic into your food.

Store knives in a block so they don’t get dulled in your drawer or use one of the magnetic knife hangers.

Pots and Pans

My personal cooking style involves very high heat. At these temperature, Teflon coating will start disintegrating. This is why I like cast iron so much. In the case of my sister, I would recommend not getting cast iron since she has a smooth top range because it may scratch the surface.

I would recommend getting the following:

  • A 10-12 inch stainless steel skillet
  • A 8 inch Teflon coated aluminum skillet.
  • A 8-12 Qt Stock Pot. Stainless steel or anodized aluminum.
  • A 5 Qt Dutch Oven
  • A 3-4 Qt Saucepan

The stainless steel skillets is used to sear and cook food. This is ideal for stir frying where you need high heat. The plus side to stainless is that it is light. The color of the pan is silver, so you can see the browning. The disadvantage is that it is not as non-stick as cast iron.

When shopping, get a skillet that’s relatively heavy, has a metal handle (so you can put it into the oven) and have a copper or aluminum core. Most of the brands are pretty good including All-Clad, Viking, etc. Just make sure you try lifting up the skillet at the store. I don’t like the All-Clad brand because I find the handle uncomfortable.

The 8-inch Teflon skillet is for cooking eggs and other really sticky items. I actually don’t use Teflon pans often because I like to brown food and then deglaze them with some liquid. With Teflon, there is often no brown bits to deglaze.

Teflon pan is where spending a lot of money does not make sense. While you should get a pan that has heavy gauge aluminum so it heats evenly, you should not spend a lot of money on supposedly lifetime coating. Often, the more expensive the pan, the less non-stick it is because they are trying to make the coating more durable, which makes them less slippery.

The 8-12 Qt pot is for broiling water for pasta, blanching vegetable, and making soup. The items can be made out of various materials, but it should be fairly heavy gauge. I suggest a stainless steel or anodized aluminum. I would not go for plain aluminum since it reacts with acidic foods. It should also have a tight fitting lid.

The 5-Qt dutch oven is use for stews, but you can cook a lot of different things in it. In my college days, the only cooking item I own was a 5 quart cast iron dutch oven. With it, I could stir fry, cook soup, bake, even cook eggs. Obviously, it was not the ideal tool for the job, but it worked and was cheap and indestructible. The only downside was the weight and that you had to clean it carefully.

I really like cast iron for dutch ovens, but you can’t use uncoated cast iron on smooth top stoves. Look instead for enameled cast iron like Le Creuset, stainless steel, or anodized aluminum with a tight fitting lid that is oven proof. Before you buy, lift the dutch oven. Cast iron pots are heavy, if you can’t lift it when it’s filled, you should look at something else.

A 3-4 Qt sauce pan can be use to make sauce and saute smaller stuff. It should have a tight fitting lid and have oven proof lid and handles. The pan should be made of heavy material so it heats evenly, but it should be light enough to lift.

Other Kitchen Gadgets

You’ll also need the following:

  • Spatula - I tend to like wooden or heat proof plastic. They don’t scratch the surface of the pan.
  • Silicon scrapper - they are an improve version of the rubber scraper but are more non-stick and heat resistant.
  • Whisk - I tend to like metal or silicon coated metal ones.
  • A set of mixing bowls. The bowls interior should be round so it will be easy to scrap out the batter or eggs. They should be made of Pyrex so they can go into the microwave. One of the bowls should be large enough to sit on top of your pots so you can use it as a double-boiler.
  • Colander to drain vegetable and pasta
  • Fine mesh strainer.
  • A salad spinner if you plan to eat salad. My favorite is by Oxo.
  • Garlic press - best is by Zyliss.
  • A food processor - which can handle the taste of chopping up vegetable and nuts into little bits and sort of work as a blender.
  • A pair of oven mitts. Beware of the lobster like silicon ones that make things hard to grip.
  • A set of measuring cups and measuring spoons.
  • A small grater for cheese and fruit peels (I like the one from Microplane).
  • A vegetable peeler - you could use your paring knife, but I am not good enough to peel with knife without taking out large chunks of vegetable.

All of the above should be enough to get a kitchen started. You may notice that I did not recommend any baking material. This is because I personally do not bake and so don’t really have opinion to offer. As you cook, you will discover what you will need and buy what is necessary.

Add comment November 25, 2007

Installing Damn Small Linux as VirtualBox guest

Damn small linux is a tiny Linux. Because it uses very little resource, it is ideal for a virtual machine.

Creating the Virtual Machne

  1. Create a virtual machine with 256 Mb of memory and 4 Gb of Disk space.
  2. Boot from the Damn Small Linux CD or Image.
  3. Open Apps and then Tools folder.
  4. Double-click on the Aterm window.
  5. Enter the command sudo cfdisk /dev/hda.
  6. Press Y when prompt if you want to start with a zero table. This loads the cfdisk.
  7. Press “N” to create a new partition.
  8. Press “P” to select Primary.
  9. Press Enter to use the default size.
  10. Press “T” to select the type.
  11. Enter “83″ as the file system type.
  12. Press “B” to set the partition as bootable.
  13. Use the arrow key to move to write and press OK.
  14. When asked if you want to destroy data, press “yes” and then OK.
  15. Press Quit to exit the application.
  16. Enter the command sudo dsl-hdinstall.
  17. When prompted to enter target partition, enter “hda1″ and press OK.
  18. When asked if you want to install with multi-user login. Type “y” and press OK.
  19. When prompted if you want to journal file system. Type “y” and press OK.
  20. When prompted for last chance. Type “y” and press OK.
  21. When prompted to install a boot loader, type “y” and press OK.
  22. When prompted for Grub or Lilo, type “g” and press OK.
  23. When prompted to reboot, type “y” and press OK.
  24. Unmount the DSL CD.
  25. After reboot, you will be asked to enter a password for root and dsl.
  26. select the XVesa video option.
  27. Select No for USB mouse.
  28. Select Yes for IMP/s mouse.
  29. Select your screen resolution and depth.
  30. Select No for dpi option.
  31. Select your keyboard options.

Installing the Guest Additions

Damn Small Linux uses a repository call MyDSL. I tried installing gcc1-with-libs.dsl and the kernelsource.dsl from mydsl. Unfortunately, the kernel source from the mydsl is a bit old.

To install, I would have to download the kernel for 4.0, then patch it with Knoppix patch. While this is not difficult, it’s rather too much work for getting guest additions to work.

6 comments November 22, 2007

Installing Ubuntu 7.10 i386 on an Averatec 2370

The following are instructions to install Ubuntu 7.10 on an Averatec 2370. I am installing the i386 of Ubuntu. While Averatec 2370 is a 64-bit machine, the laptop can only address 2 Gb of memory any way, so there is very little advantage in using a 64-bit OS.

  1. Boot the laptop using the Ubuntu CD.
  2. Press the first menu option to start Ubuntu.
  3. When the CD complete booting, click on the Install Icon.
  4. Follow the instructions. The options I would stop at is at the disk space, I change my drive to make the entire drive “/” except for a 1 Gb swap space. Since I have 2 Gb of memory, I don’t see a need for more swap space. After the installation is complete, click on the reboot button. Remove the CD and reboot. Login as the user you created in the install (WARNING: the splash noise will be set to maximum volume).

Most of the items will work just out of the box.

Post Installation Customization

Enabling the Software Repositories

Before you continue, enable all of the necessary software repositories:

  1. Login as a user with Sudo rights.
  2. Select the menu System->Administration->Software Sources.
  3. Check the option for main, universe, and restricted.
  4. Click on the update tab.
  5. Check the security update checkbox.
  6. Click on the close button.

Switching off the Synaptic’s Touchpad’s tapping

I do not like tapping, since it often cause me to click on something that I did not intend to click.

  1. Select Preference->Mouse.
  2. Click on the Touchpad.
  3. Uncheck the Tap to Click.

Setting the time to Local time

Actually, I prefer to use UTC, but I also plan to run Windows OS in Virtualbox. Even Vista does not support UTC properly, however Linux has no problems supporting both formats so I went with local time.

  1. Login as a user who can sudo.
  2. Right-click on the date and select Preference.
  3. You will be prompted to enter your password, enter it.
  4. Uncheck the checkbox for “Use UTC”.
  5. Right-click on the date and select “Adjust date & time”.
  6. Change the time to the local time and date.

Enabling Nvidia binary driver

Since I don’t do any gaming, I don’t really need 3D. Unfortunately, neither the VESA nor the “nv” dirver will allow suspend on this laptop. The problem appears to be the Nvidia hardware. When the computer suspend to disk, the Nvidia display adapter does not turn off. This problem cannot be fix until Nvidia release specs on how to turn off the display adapter. To get suspend, you must use the binary driver.

Before you start, make sure you have access to the internet, since Ubuntu must download the driver.

  1. Login as a user who can sudo.
  2. Select Administration->Restricted Driver Manager.
  3. Click on the enable checkbox and press Close.

Fixing a problem with display shrinking

Whenever you supend or hibernate, resume and then logout. The screen shrinks. To fix this problem, see the following blog.

Things that still does not work

  • Modem
  • When you plug in the headphones, the laptop speaker does not mute.
  • Wireless will occasionally drop connection and die.
  • When you suspend, the laptop will occasionally fail to wake up.

6 comments November 21, 2007

Previous Posts


Categories

Links

Feeds