分享

Installing Linux on a CompactFlash Card Mini-HOWTO

 Long_way 2007-05-30
Installing Linux on a CompactFlash Card Mini-HOWTO 引言回覆

代碼:
Initializing the CF Card

Let‘s start with erasing any existing partitions and creating a new one:
fdisk /dev/sda (or whatever the device is for your CF card)

In case you are not familiar with fdisk:
p (prints all existing partitions) d (deletes a partition)
n (creates a new partition) w writes and exists
q quits without saving

Delete all existing partitions and create a default primary Linux partition (type 83) using all available space. Save and exit (w)

Format the new partition with:
mkfs.ext2 /dev/sda1 (replace sda1 with your new partition)

Create a mount point and mount your CF card:
mkdir /mnt/flash
mount -t ext2 /dev/sda1 /mnt/flash (sda1 would be the first partition on the device sda. Make sure you replace sda with the equivalent to your CF card)

And now, let‘s create a basic directory structure:
mkdir /mnt/flash/boot
mkdir /mnt/flash/bin
mkdir /mnt/flash/dev
mkdir /mnt/flash/dev/cciss
mkdir /mnt/flash/etc
mkdir /mnt/flash/lib
mkdir /mnt/flash/opt
mkdir /mnt/flash/proc
mkdir /mnt/flash/sbin
mkdir /mnt/flash/tmp
mkdir /mnt/flash/var
mkdir /mnt/flash/usr
mkdir /mnt/flash/usr/bin
mkdir /mnt/flash/usr/lib
mkdir /mnt/flash/etc/init.d
cd /mnt/flash/dev
/dev/MAKEDEV std
/dev/MAKEDEV ttyS0
/dev/MAKEDEV hda
/dev/MAKEDEV hde
/dev/MAKEDEV console
/dev/MAKEDEV audio
mknod psaux c 10 1
mknod console c 5 1
mknod /mnt/flash/dev/hda b 3 0
mknod /mnt/flash/dev/hdb b 3 64
mknod /mnt/flash/dev/hdc b 22 0
mknod /mnt/flash/dev/hdd b 22 64

Installing Busy Box

We need a basic set of unix utilities. Given the memory limitation, we will install BusyBox. Busybox provides a set of basic utilities in a single executable.

Download the latest version (0.60.5 when I wrote this guide)

Unpack and compile:
tar -zxf busybox-0.60.5.tar.gz
cd busybox-0.60.5
make
make install

Install Busybox on your CompactFlash:
cp -r _install/* /mnt/flash

Copying GRUB (Boot Loader)

Let‘s now copy a few files from the PC to the CF we will need them later on:
cp /sbin/grub /mnt/flash/sbin
cp /sbin/fdisk /mnt/flash/sbin
cp /sbin/mkfs.ext2 /mnt/flash/sbin
cp /lib/libcrypt.so.1 /lib/libc.so.6 /lib/ld-linux.so.2 /mnt/flash/lib/
cp /lib/libext2fs.so.2 /mnt/flash/lib/
cp /lib/libe2p.so.2 /mnt/flash/lib/
cp /lib/libcom_err.so.2 /mnt/flash/lib/
cp /lib/libuuid.so.1 /mnt/flash/lib/

RH9 comes with two boot loaders: LILO and GRUB. I have never been able to get LILO to work on a CF Card. It always stops at the LI prompt (usually writes LILO) and even though I tried all tricks I found on the web for this known problem, none of them worked. That‘s why we will use GRUB instead.

Copy all boot files from your PC to the CF Card:
cp -vax /boot/* /mnt/flash/boot

Getting a Kernel

By copying /boot to your CF Card, you have already copied your existing kernel. If that is good enough for you, then you can skip this section.

I am not going to spend time on the details here, just grab the latest version from www., untar and do:

make menuconfig (It is important here to select the right processor according to the machine you will be using. See the Processor Type and Features section)

make menuconfig
make dep
make bzImage

Once it is done, copy the fresh kernel to your CF Card:
cp arch/i386/boot/bzImage /mnt/flash/boot/vmlinuz
cp System.map /mnt/flash/boot/

Making the CompactFlash card bootable

Now we have to write the MBR on the Compact Flash. Execute GRUB:
grub

You will get to the grub> command line. If you do not have curses installed on your PC, you will get: Error opening terminal Linux. If that is the case, try grub --no-curses

Grub names the drives in a different way. The first drive would be hd0, the second drive would be hd1, and so on. The partition number is specified with a second digit after a comma. For example hd0,0 is the first partition on the first hard drive. Set your root partition with:
root (hd1,0) you can hit tab twice after hd and you will get a list of option (bash-style) just to make sure you are talking about the right partition. It might not be (hd1,0)

Install the MBR with:
install /boot/grub/stage1 (hd1) /boot/grub/stage2 (again, replace hd1 with your CF drive)
quit

More details on GRUB, such as creating a boot menu are beyond the scope of this document. Check this article for more information about GRUB on CompactFlash

Unmount your CF card with umount /mnt/flash. Your CF card is now ready and will get you to your # prompt. However, you will have to specify your kernel, root partition and init scripts at the GRUB> prompt:

GRUB> root (hd0,0) (or whatever it is)
GRUB> kernel /boot/vmlinuz root=/dev/hda1 rw init=/bin/sh
GRUB> boot

Replace hda1 with the device corresponding to your CF card. In my case is hda1 as I am using an ACS IDE to CompactFlash adapter in my BluePad Tablet PC

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多