⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 kernelcfg2mk

📁 一个linux下rs485驱动程序的源代码
💻
字号:
#!/bin/bashif [ $# -lt 1 ] ; then  echo "kernelcfg2mk: requires linux kernel directory as the first argument"  exit 2fiLINUX_DIR="$1"if [ $# -gt 1 ] ; then  KERN_MODULES_DIR="$2"fiif [ ! -e $LINUX_DIR/.config ] ; then  echo "kernelcfg2mk: the provided locations doesnot point to configured kernel sources"  echo "        check directory $LINUX_DIR"  exit 2fiif [ ! -e $LINUX_DIR/.config ] ; then  echo "kernelcfg2mk: the provided locations doesnot point to configured kernel sources"  echo "        check directory $LINUX_DIR"  exit 2fiif [ -z "$KERN_BUILD_DIR" ]  ; then  KERN_BUILD_DIR=`pwd`fiif [ -z "$KERN_MODULES_DIR" ]  ; then  KERN_MODULES_DIR=`pwd`fiif [ -z "$MAKE" ]  ; then  MAKE="make"fiKERN_TEST_DIR="$KERN_BUILD_DIR/kern-test-mk"mkdir -p $KERN_TEST_DIR#echo MAKERULES_DIR $MAKERULES_DIR#echo LINUX_DIR $LINUX_DIR#echo KERN_BUILD_DIR $KERN_BUILD_DIR#echo KERN_MODULES_DIR $KERN_MODULES_DIRRETVAL="0"LINUX_VERSION=$(grep UTS_RELEASE ${LINUX_DIR}/include/linux/version.h | \               sed 's/[^"]*"\(.*\)\{1\}"/\1/')if [ -z "$LINUX_VERSION" ] ; then  LINUX_VERSION=$(grep UTS_RELEASE ${LINUX_DIR}/include/linux/utsrelease.h | \                 sed 's/[^"]*"\(.*\)\{1\}"/\1/')fiLINUX_VERSION_MAJOR=$(echo ${LINUX_VERSION} | cut -d. -f1)LINUX_VERSION_MINOR=$(echo ${LINUX_VERSION} | cut -d. -f2)#echo $LINUX_VERSION#echo $LINUX_VERSION_MAJOR#echo $LINUX_VERSION_MINORcase $LINUX_VERSION_MAJOR.$LINUX_VERSION_MINOR in#=====================================================================# test for 2.4.x kernels    2.[01234])	rm -f ${KERN_BUILD_DIR}/kernel.mk	rm -rf ${KERN_TEST_DIR}	mkdir ${KERN_TEST_DIR}	if [ $? -ne 0 ] ; then		echo "Cannot create Linux kernel test build directory \"${KERN_TEST_DIR}\""		exit 3	fi	cd ${KERN_TEST_DIR}	cat >${KERN_TEST_DIR}/Makefile <<EOF.PHONY: modulesmodules:	@echo LINUX_ARCH="\$(ARCH)" >>flags	@echo LINUX_LDFLAGS="" >>flags	@echo LINUX_ARFLAGS="\$(ARFLAGS)" >>flags	@echo LINUX_CROSS_COMPILE="\$(CROSS_COMPILE)" >>flags	@echo LINUX_KERNELRELEASE="\$(KERNELRELEASE)" >>flags	@echo LINUX_AFLAGS="\$(AFLAGS)" | sed 's#Iinclude#I"\$(LINUXDIR)/include"#g'>>flags	@echo LINUX_CFLAGS="\$(CFLAGS)" | sed 's#Iinclude#I"\$(LINUXDIR)/include"#g'>>flags	@echo LINUX_MODFLAGS="\$(MODFLAGS)"	@echo LINUX_CC="\$(CC)" >>flags	@echo LINUX_LD="\$(LD) \$(LDFLAGS)" >>flags	@echo LINUX_AS="\$(AS)" >>flags	@echo LINUX_AR="\$(AR)" >>flags	@echo LINUX_MODULE_EXT=".o" >>flagsEOF	#echo ${MAKE} -C ${LINUX_DIR} SUBDIRS=${KERN_TEST_DIR} modules	${MAKE} -C ${LINUX_DIR} SUBDIRS=${KERN_TEST_DIR} modules	if [ $? == 0 ] ; then		cp -v flags ${KERN_MODULES_DIR}/kernel.mk			if [ ! $? == 0 ] ; then			RETVAL="2"		fi	else		RETVAL="1"	fi	cd ${KERN_BUILD_DIR}	rm -rf ${KERN_TEST_DIR}	;;#=====================================================================# test for 2.6.x kernels    2.6)	rm -f ${KERN_BUILD_DIR}/kernel.mk	rm -rf ${KERN_TEST_DIR}	mkdir ${KERN_TEST_DIR}	if [ $? -ne 0 ] ; then		echo "Cannot create Linux kernel test build directory \"${KERN_TEST_DIR}\""		exit 3	fi	cd ${KERN_TEST_DIR}	cat >${KERN_TEST_DIR}/Makefile <<EOFobj-m += fake.o\$(obj)/fake.c: flags	touch \$(obj)/fake.cifeq (\$(KBUILD_SRC),)OMK_LINUX_SRC = \$(LINUXDIR)elseOMK_LINUX_SRC = \$(KBUILD_SRC)endif#\$(warning Test \$OMK_LINUX_SRC).PHONY: flagsflags:	@echo LINUX_SRC="\$(OMK_LINUX_SRC)" >>\$(obj)/flags	@echo LINUX_ARCH="\$(ARCH)" >>\$(obj)/flags	@echo LINUX_LDFLAGS="" >>\$(obj)/flags	@echo LINUX_ARFLAGS="\$(ARFLAGS)" >>\$(obj)/flags	@echo LINUX_CROSS_COMPILE="\$(CROSS_COMPILE)" >>\$(obj)/flags	@echo LINUX_KERNELRELEASE="\$(KERNELRELEASE)" >>\$(obj)/flags	@echo LINUX_CPPFLAGS="\$(CPPFLAGS)" | sed 's#Iinclude#I"\$(LINUXDIR)/include"#g'>>\$(obj)/flags	@echo LINUX_AFLAGS="\$(AFLAGS)" | sed 's#Iinclude#I"\$(OMK_LINUX_SRC)/include"#g'>>\$(obj)/flags	@echo LINUX_CFLAGS="\$(CFLAGS)" | sed 's#Iinclude#I"\$(OMK_LINUX_SRC)/include"#g'>>\$(obj)/flags	@echo LINUX_CFLAGS_MODULE="\$(CFLAGS_MODULE)" >>\$(obj)/flags	@echo LINUX_CC="\$(CC)" >>\$(obj)/flags	@echo LINUX_LD="\$(LD) \$(LDFLAGS) \$(LDFLAGS_MODULE)" >>\$(obj)/flags	@echo LINUX_AS="\$(AS)" >>\$(obj)/flags	@echo LINUX_AR="\$(AR)" >>\$(obj)/flags	@echo LINUX_MODULE_EXT=".ko" >>\$(obj)/flags	@echo LINUX_QUOTE_MODNAME=\$(if \$(findstring KBUILD_STR,\$(basename_flags)),y,) >>\$(obj)/flagsEOF	#  V=1	#echo ${MAKE} -C ${LINUX_DIR} SUBDIRS=${KERN_TEST_DIR} LINUXDIR=${LINUX_DIR} MODVERDIR=${KERN_TEST_DIR} modules	${MAKE} -C ${LINUX_DIR} M=${KERN_TEST_DIR} LINUXDIR=${LINUX_DIR} MODVERDIR=${KERN_TEST_DIR}/modver modules	#if [ $? == 0 ] ; then		cp -v flags ${KERN_MODULES_DIR}/kernel.mk			if [ ! $? == 0 ] ; then			RETVAL="2"		fi	#else	#	RETVAL="1"	#fi	cd ${KERN_BUILD_DIR}	rm -rf ${KERN_TEST_DIR}	;;#=====================================================================    *)	echo "Unsupported Linux version $LINUX_VERSION_MAJOR.$LINUX_VERSION_MINOR"    ;;esacexit ${RETVAL}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -