170 lines
		
	
	
	
		
			4.1 KiB
			
		
	
	
	
		
			Text
		
	
	
	
	
	
		
		
			
		
	
	
			170 lines
		
	
	
	
		
			4.1 KiB
			
		
	
	
	
		
			Text
		
	
	
	
	
	
|   | /* | ||
|  |  * 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 |