Loading Linux Images to a Compact Flash Disk
When changing firmware images or creating custom firmware images for your Compact Flash-based machine, it is necessary to perform a few steps to load the firmware image onto the CF card.
Necessary Tools
To perform this procedure, you will need to have the following items:
- The Compact Flash card you wish to use to hold the firmware.
- A Compact Flash card reader attached to your computer.
- The firmware image.
- A fully functional Linux desktop.
- The package management tools installed:
tar
, and eithergzip
orbzip2
(depending on the image). - The EMAC package which provides the
put-image
script. TheREADME.TXT
file in the package details out the steps needed to install the script properly.
The put-image
script, and its associated tools, can be downloaded from [Subversion Repository].
The script and its tools can be downloaded, if you have svn (Subversion) installed, by running the following command in a terminal:
svn co https://svn.emacinc.com/public/EMAC-OE-2009.03-STABLE/trunk/contrib/put-image/
When you run the above command, you should see something like this:
$ svn co https://svn.emacinc.com/public/EMAC-OE-2009.03-STABLE/trunk/contrib/put-image/
A put-image/date2stamp
A put-image/stamp2date
A put-image/datediff
A put-image/put-image
A put-image/lilo-22.8.sbin.static.tgz
A put-image/README.TXT
Checked out revision 175.
$
WARNING: Performing the following procedure incorrectly can cause a catastrophic loss of data. The following procedure should be carefully studied prior to attempting it for the first time. EMAC cannot be responsible for the loss of data which may result from incorrectly following this procedure. EMAC strongly recommends having a current backup of the data on your computer before attempting this procedure. Use it at your own risk. |
Procedure
Perform the following steps to load the firmware onto your Compact Flash card:
- Insert the Compact Flash card into your card reader.
- Navigate (from within the shell) to the directory which contains the firmware image you wish to use.
- Determine where the Compact Flash card was mounted:
$ dmesg | tail -n 10
[23236.042944] sdc: detected capacity change from 4110188544 to 0
[23243.783467] sd 12:0:0:0: [sdc] 8027712 512-byte logical blocks: (4.11 GB/3.82 GiB)
[23243.785199] sd 12:0:0:0: [sdc] No Caching mode page present
[23243.785204] sd 12:0:0:0: [sdc] Assuming drive cache: write through
[23243.787314] sd 12:0:0:0: [sdc] No Caching mode page present
[23243.787326] sd 12:0:0:0: [sdc] Assuming drive cache: write through
[23243.790625] sdc: sdc1[23244.290093] kjournald starting. Commit interval 5 seconds
[23244.293646] EXT3-fs (sdc1): using internal journal
[23244.293651] EXT3-fs (sdc1): mounted filesystem with ordered data mode
$
The output of the dmesg
command tells us that the Compact Flash card, in this case, was mounted on /dev/sdc1
, and that its device node is /dev/sdc
. Inspect the output shown above to see where this information came from. The /dev/
prefix will go before the device name, but is not shown in the output. The letters you are looking to see will start with either sd
or hd
. The third letter will specify which of these devices is assigned to the CF Card.
- At this point, it is wise to double check to ensure you have the correct device node for the Compact Flash card. Specifying the wrong device node could cause a complete loss of data on your hard drive. It is very important to be extremely careful when specifying the device node for the Compact Flash.
Continuing with/dev/sdc1
as our example device node, type the following command:$ mount | grep sdc1
This shows us that the device node,/dev/sdc1 on /media/EMAC-OE type ext3 (rw,nosuid,nodev,uhelper=udisks)
/dev/sdc1
, is in fact our Compact Flash card. We know this because:- It is not mounted on one of the standard Linux filesystem mountpoints, such as
/
,/boot
,/usr
, or/home
. - It is mounted in the
/media
directory, where we expect it. We may alternatively expect to see it mounted in/mnt
, depending upon the configuration of the Linux distribution in use.
- It is not mounted on one of the standard Linux filesystem mountpoints, such as
NOTE: Not all Linux distributions will have automount enabled. If automount is not enabled, the device will not automatically be mounted when it is inserted into a card reader.For those unfamiliar with the term mount , mount ing a device means the operating system associates one or more file paths with the filesystem(s) contained within the partition(s) of the mount ed device. |
- Use fdisk -l to inspect the device node: