?? patch-ker.sh
字號:
#!/bin/sh## YAFFS: Yet another FFS. A NAND-flash specific file system.## Copyright (C) 2002 Aleph One Ltd.# # Created by Charles Manning <charles@aleph1.co.uk># # This program is free software; you can redistribute it and/or modify# it under the terms of the GNU General Public License version 2 as# published by the Free Software Foundation.## Patch YAFFS into the kernel## args: kpath : Full path to kernel sources to be patched## Somewhat "inspired by" the mtd patchin script## $Id: patch-ker.sh,v 1.1 2005/04/06 01:03:46 charles Exp $VERSION=0PATCHLEVEL=0SUBLEVEL=0LINUXDIR=$1# To be a Linux directory, it must have a Makefile# Display usage of this scriptusage () { echo "usage: $0 kernelpath" exit 1}if [ -z $LINUXDIR ]then usage;fi# Check if kerneldir contains a Makefileif [ ! -f $LINUXDIR/Makefile ] then echo "Directory $LINUXDIR does not exist or is not a kernel source directory"; exit 1;fi# Get kernel versionVERSION=`grep -s VERSION <$LINUXDIR/Makefile | head -n 1 | sed s/'VERSION = '//`PATCHLEVEL=`grep -s PATCHLEVEL <$LINUXDIR/Makefile | head -n 1 | sed s/'PATCHLEVEL = '//`SUBLEVEL=`grep -s SUBLEVEL <$LINUXDIR/Makefile | head -n 1 | sed s/'SUBLEVEL = '//`# Can we handle this version?if [ $VERSION -ne 2 -o $PATCHLEVEL -lt 6 ]then echo "Cannot patch kernel version $VERSION.$PATCHLEVEL.$SUBLEVEL, must be 2.6.x or higher" exit 1;fiKCONFIG=$LINUXDIR/fs/KconfigKCONFIGOLD=$LINUXDIR/fs/Kconfig.pre.yaffsYAFFS_PATCHED_STRING=`grep -s yaffs <$KCONFIG | head -n 1`if [ ! -z "$YAFFS_PATCHED_STRING" ]then YAFFS_PATCHED=0 echo "$KCONFIG already mentions YAFFS, so we will not change it"else # Change the fs/Kconfig file # Save the old Kconfig # Copy all stuff up to JFFS # Insert some YAFFS stuff # Copy all the rest of the stuff YAFFS_PATCHED=1 echo "Updating $KCONFIG" mv -f $KCONFIG $KCONFIGOLD sed -n -e "/JFFS/,99999 ! p" $KCONFIGOLD >$KCONFIG echo "">>$KCONFIG echo "# Patched by YAFFS" >>$KCONFIG echo "source \"fs/yaffs/Kconfig\"">>$KCONFIG echo "">>$KCONFIG sed -n -e "/JFFS/,99999 p" $KCONFIGOLD >>$KCONFIGfi YAFFSDIR=$LINUXDIR/fs/yaffsif [ -e $YAFFSDIR ]then echo "$YAFFSDIR exists, not patching"else ln -fs `pwd`/fs/yaffs $LINUXDIR/fs/yaffsfi
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -