May 262011

Hi All,

Recently I decided to update my Lenovo laptop’s BIOS, but I didn’t have any blank CDs to burn the update iso onto.
Now that I have my PXE server running though, I can boot the ISO over PXE !

So first step was to grab the ISO file from the Lenovo website.
Once you have the ISO file, you will need to copy it to your /tftpboot/ directory, and depending on your style, a subdirectory. I have my ISO file in a subdirectory called lenovo, so the full path would be /tftpboot/lenovo.

Next up is to modify the pxelinux.cfg/default file to add the lines you will need for the ISO file.
Now you will need the memdisk kernel before you add these lines.
If you haven’t already found it, it can be found in the /usr/lib/syslinux/ directory.
I have put memdisk into the boot subdirectory for this exercise, and then added the following block to my default file.

label LenovoBios
menu label Lenovo BIOS 66ET60WW
kernel boot/memdisk
append initrd=lenovo/66et60ww.iso iso

You’ll have to replace the ISO file name with the file that you downloaded, but you should be able to boot off that and update the BIOS that way as I’ve managed to do it with my Lenovo 3000 N200 laptop.

May 262011

So I’ve decided to rename my network as I’m getting bored of all the hostnames on the computers.
At the moment I’m thinking Transformer names, since I’ve been a Transformers fan for a long long time.
Does anyone have any better ideas ?

So, Autobots or Decepticons ?
Or if you have any other ideas, feel free to leave me a comment.

[suffusion-widgets id=’1′]

May 232011

Hi All,

The last few posts I’ve posted used the SQL syntax method to query Active Directory.
This is different to my previous posts where I was using the IADs interface.
With the IADs interface, we would bind to an object and query it that way, with ActiveX Data Objects, we use SQL-like syntax to query Active Directory

This codeblock below will select all users from the domain.

objRootDSE = GetObject("LDAP://RootDSE");
strDomain = objRootDSE.Get("DefaultNamingContext");
/*This gets the Default Naming context, i.e. the domain root*/

objConnection = new ActiveXObject("ADODB.Connection");
objConnection.Open("ADs Provider");
objCommand = new ActiveXObject("ADODB.Command");
objCommand.ActiveConnection = objConnection;

/*This sets up the Connection to AD, sets the provider to ADsDSOObject, and creates an object that we can use to execute a command*/

var strDom = "LDAP://"+strDomain;
/* The strDom string will later become part of the SQL command that we will execute. If you want to specify a OU or CN to search, here would be the place to put it. */

objCommand.CommandText = "select name from '"+strDom+" WHERE objectCategory = 'user'';

/* Next up is the command itself.*/

objRecordSet = objCommand.Execute();

/* Then we execute the command */
/* Once executed, the command will return an enumeration of the results.*/
/* We will use the standard JS enumeration methods here to get what we need*/

while(!(objRecordSet.EoF)) {
objRecordSet.Fields("name").value; // This will be the fields that you Selected in the command's value, if you've selected more than one then you will need a loop or multiple statements to get it all.

The codeblock will need modification to suit your needs but it well let you search Active Directory with ease from JScript.

SQL Dialect
Searching with ActiveX Data Objects (ADO)
Active Directory Services Data Services Objects

May 202011

Hi all,

It took me a while and multiple reinstalls to work out how to do this properly, so I’m sharing what little knowledge I have with you all.
On my eeePC 701 I have a 4 gb SD card that I am now using for my /home directory.

I have formatted the SD card as ext2, and then setup fstab to mount /dev/sdb1 as /home.
The only downside is that I can’t have any other usb storage devices plugged in when I boot, or udev will assign /dev/sdb to the other device and stuff up the boot sequence.
I’ve tried to setup udev to always assign /dev/sdb to my SD Card reader in my eeePC but I can’t seem to get that to go.
But I don’t normally have any other USB media plugged in when I boot my eeePC so I have left it for now until it really bugs me.

First thing you will want to do, is put a delay into the boot sequence so that the eeePC has time to detect the SD card / reader. I found that out the hard way.
I’ve installed Crunchbang on my eeePC so my configuration file may be a little bit different to stock, but it should be somewhat similar still.
So, on my eeePC, I’ve edited the file /etc/grub.d/10_linux and added ‘rootdelay=5’ to my boot parameters.
This pauses the boot sequence for 5 seconds, in which time the eeePC detects the SD card / reader.
In my version of the file, it’s on line 83 but yours may differ, the codeblock shows what my file reads.

linux ${rel_dirname}/${basename} rootdelay=5 root=${linux_root_device_thisversion} ro ${args}

After that’s been done, you will need to format the SD card to ext2 so that the permissions will work on the SD card. I tried formatting to FAT32 but it had issues so I left it on ext2.
After the SD card is formatted, you will then need to modify fstab. Below is the line I have for the sdcard.

/dev/sdb1 /home ext2 defaults,noatime 0 0

Once again, I had tried to use the UUID for the SD Card reader but it didn’t like it and refused to boot, so I relented and just used the standard /dev/sdb1 notation, however as mentioned before, it can cause issues when other USB media is plugged into the eeePC
Once fstab has been modified, you will need to make sure the SD card has a directory for your user. Otherwise it will boot but then will find a fat lot of nothing to use for your user settings etc.
So once you’ve moved over all your stuff onto the SD card under your username’s directory, you should be all set.
You can now reboot, and when you reboot and login, it should now be running off your SD card.

You will take a minor speed hit as the SD card is not as fast as your internal flash drive, but it’s replaceable and also easy to backup if you need to.
Just take the SD card out, and copy everything off of it and the backup is done ! 🙂

May 202011

Looks like Codeweavers are having a birthday sale !
Be quick and grab the Crossover Bundle for only $19 !

A little about Codeweavers and Crossover if you haven’t heard of them.
They are a company that make Crossover, a piece of software that lets you run Windows software on your Mac or on your Linux box. You don’t need a copy of Windows or anything like that. Crossover is based on an open source translation layer called WINE, but improves on WINE with addons and additional functionality.

A great program for those wanting to run Linux full time.
Be quick and grab a good deal.