170 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			170 lines
		
	
	
		
			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
 |