170 строки
4.1 KiB
Plaintext
170 строки
4.1 KiB
Plaintext
|
/*
|
||
|
* File: Documentation/blackfin/Filesystems
|
||
|
* Based on:
|
||
|
* Author:
|
||
|
*
|
||
|
* Created:
|
||
|
* Description: This file contains the simple DMA Implementation for Blackfin
|
||
|
*
|
||
|
* Rev: $Id: Filesystems 2384 2006-11-01 04:12:43Z magicyang $
|
||
|
*
|
||
|
* Modified:
|
||
|
* Copyright 2004-2006 Analog Devices Inc.
|
||
|
*
|
||
|
* Bugs: Enter bugs at http://blackfin.uclinux.org/
|
||
|
*
|
||
|
*/
|
||
|
|
||
|
How to mount the root file system in uClinux/Blackfin
|
||
|
-----------------------------------------------------
|
||
|
|
||
|
1 Mounting EXT3 File system.
|
||
|
------------------------
|
||
|
|
||
|
Creating an EXT3 File system for uClinux/Blackfin:
|
||
|
|
||
|
|
||
|
Please follow the steps to form the EXT3 File system and mount the same as root
|
||
|
file system.
|
||
|
|
||
|
a Make an ext3 file system as large as you want the final root file
|
||
|
system.
|
||
|
|
||
|
mkfs.ext3 /dev/ram0 <your-rootfs-size-in-1k-blocks>
|
||
|
|
||
|
b Mount this Empty file system on a free directory as:
|
||
|
|
||
|
mount -t ext3 /dev/ram0 ./test
|
||
|
where ./test is the empty directory.
|
||
|
|
||
|
c Copy your root fs directory that you have so carefully made over.
|
||
|
|
||
|
cp -af /tmp/my_final_rootfs_files/* ./test
|
||
|
|
||
|
(For ex: cp -af uClinux-dist/romfs/* ./test)
|
||
|
|
||
|
d If you have done everything right till now you should be able to see
|
||
|
the required "root" dir's (that's etc, root, bin, lib, sbin...)
|
||
|
|
||
|
e Now unmount the file system
|
||
|
|
||
|
umount ./test
|
||
|
|
||
|
f Create the root file system image.
|
||
|
|
||
|
dd if=/dev/ram0 bs=1k count=<your-rootfs-size-in-1k-blocks> \
|
||
|
> ext3fs.img
|
||
|
|
||
|
|
||
|
Now you have to tell the kernel that will be mounting this file system as
|
||
|
rootfs.
|
||
|
So do a make menuconfig under kernel and select the Ext3 journaling file system
|
||
|
support under File system --> submenu.
|
||
|
|
||
|
|
||
|
2. Mounting EXT2 File system.
|
||
|
-------------------------
|
||
|
|
||
|
By default the ext2 file system image will be created if you invoke make from
|
||
|
the top uClinux-dist directory.
|
||
|
|
||
|
|
||
|
3. Mounting CRAMFS File System
|
||
|
----------------------------
|
||
|
|
||
|
To create a CRAMFS file system image execute the command
|
||
|
|
||
|
mkfs.cramfs ./test cramfs.img
|
||
|
|
||
|
where ./test is the target directory.
|
||
|
|
||
|
|
||
|
4. Mounting ROMFS File System
|
||
|
--------------------------
|
||
|
|
||
|
To create a ROMFS file system image execute the command
|
||
|
|
||
|
genromfs -v -V "ROMdisk" -f romfs.img -d ./test
|
||
|
|
||
|
where ./test is the target directory
|
||
|
|
||
|
|
||
|
5. Mounting the JFFS2 Filesystem
|
||
|
-----------------------------
|
||
|
|
||
|
To create a compressed JFFS filesystem (JFFS2), please execute the command
|
||
|
|
||
|
mkfs.jffs2 -d ./test -o jffs2.img
|
||
|
|
||
|
where ./test is the target directory.
|
||
|
|
||
|
However, please make sure the following is in your kernel config.
|
||
|
|
||
|
/*
|
||
|
* RAM/ROM/Flash chip drivers
|
||
|
*/
|
||
|
#define CONFIG_MTD_CFI 1
|
||
|
#define CONFIG_MTD_ROM 1
|
||
|
/*
|
||
|
* Mapping drivers for chip access
|
||
|
*/
|
||
|
#define CONFIG_MTD_COMPLEX_MAPPINGS 1
|
||
|
#define CONFIG_MTD_BF533 1
|
||
|
#undef CONFIG_MTD_UCLINUX
|
||
|
|
||
|
Through the u-boot boot loader, use the jffs2.img in the corresponding
|
||
|
partition made in linux-2.6.x/drivers/mtd/maps/bf533_flash.c.
|
||
|
|
||
|
NOTE - Currently the Flash driver is available only for EZKIT. Watch out for a
|
||
|
STAMP driver soon.
|
||
|
|
||
|
|
||
|
6. Mounting the NFS File system
|
||
|
-----------------------------
|
||
|
|
||
|
For mounting the NFS please do the following in the kernel config.
|
||
|
|
||
|
In Networking Support --> Networking options --> TCP/IP networking -->
|
||
|
IP: kernel level autoconfiguration
|
||
|
|
||
|
Enable BOOTP Support.
|
||
|
|
||
|
In Kernel hacking --> Compiled-in kernel boot parameter add the following
|
||
|
|
||
|
root=/dev/nfs rw ip=bootp
|
||
|
|
||
|
In File system --> Network File system, Enable
|
||
|
|
||
|
NFS file system support --> NFSv3 client support
|
||
|
Root File system on NFS
|
||
|
|
||
|
in uClibc menuconfig, do the following
|
||
|
In Networking Support
|
||
|
enable Remote Procedure Call (RPC) support
|
||
|
Full RPC Support
|
||
|
|
||
|
On the Host side, ensure that /etc/dhcpd.conf looks something like this
|
||
|
|
||
|
ddns-update-style ad-hoc;
|
||
|
allow bootp;
|
||
|
subnet 10.100.4.0 netmask 255.255.255.0 {
|
||
|
default-lease-time 122209600;
|
||
|
max-lease-time 31557600;
|
||
|
group {
|
||
|
host bf533 {
|
||
|
hardware ethernet 00:CF:52:49:C3:01;
|
||
|
fixed-address 10.100.4.50;
|
||
|
option root-path "/home/nfsmount";
|
||
|
}
|
||
|
}
|
||
|
|
||
|
ensure that /etc/exports looks something like this
|
||
|
/home/nfsmount *(rw,no_root_squash,no_all_squash)
|
||
|
|
||
|
run the following commands as root (may differ depending on your
|
||
|
distribution) :
|
||
|
- service nfs start
|
||
|
- service portmap start
|
||
|
- service dhcpd start
|
||
|
- /usr/sbin/exportfs
|