Your wish is my command

It’s a long journey

커널 옵션 한방에 수정하기

요즘 Xen을 가지고 놀고 있습니다.

아직 공부하는 중이라 커널 컴파일을 자주하게 되는데 이럴때 정말로 귀찮은게 커널의 옵션들을 일일이 맞춰주는 겁니다. 정말로 귀찮습니다.

그래서 걍 스크립트질로 처리해버렸네요~~

#!/bin/sh
# Xen 관련 설정들: http://wiki.xensource.com/xenwiki/XenParavirtOps 참고
configs="CONFIG_PARAVIRT=y
CONFIG_XEN=y
CONFIGPARAVIRTGUEST=y
CONFIGPARAVIRTSPINLOCKS=y
CONFIGHVCDRIVER=y
CONFIGHVCXEN=y
CONFIGXENFBDEV_FRONTEND=y
CONFIGXENBLKDEV_FRONTEND=y
CONFIGXENNETDEV_FRONTEND=y
CONFIGXENPCIDEV_FRONTEND=y
CONFIGINPUTXENKBDDEVFRONTEND=y
CONFIGXENFBDEV_FRONTEND=y
CONFIGXENXENBUS_FRONTEND=y
CONFIGXENSAVE_RESTORE=y
CONFIGXENGRANTDEVALLOC=m
CONFIGXENTMEM=y
CONFIG_CLEANCACHE=y
CONFIG_FRONTSWAP=y
CONFIGXENSELFBALLOONING=y
CONFIGX86IO_APIC=y
CONFIG_ACPI=y
CONFIGACPIPROCFS=y
CONFIGXENDOM0=y
CONFIGPCIXEN=y
CONFIGXENDEV_EVTCHN=y
CONFIG_XENFS=y
CONFIGXENCOMPAT_XENFS=y
CONFIGXENSYS_HYPERVISOR=y
CONFIGXENGNTDEV=y
CONFIGXENBACKEND=y
CONFIGXENNETDEV_BACKEND=m
CONFIGXENBLKDEV_BACKEND=m
CONFIGXENPCIDEV_BACKEND=m
CONFIGXENPRIVILEGED_GUEST=y
CONFIGXENBALLOON=y
CONFIGXENSCRUB_PAGES=y
CONFIGXENDEV_EVTCHN=y
CONFIGXENGNTDEV=y
"
# Xen 추가 설정
configs="$configs
CONFIGXENBLKDEV_TAP=y
CONFIGXENBLKDEV_BACKEND=y
"

# initramfs에 필요한 설정들
configs="$configs
CONFIGMDRAID0=y
CONFIGMDRAID1=y
CONFIGMDRAID10=y
CONFIGMDRAID456=y
"

config_script='scripts/config'

for _config in $configs ; do
    key=`echo $_config | awk 'BEGIN {FS="=";} {print $1}'`
    value=`echo $_config | awk 'BEGIN {FS="=";} {print $2}'`

    case "$value" in
        y)
            $config_script -enable $key
            ;;
        m)
            $config_script -module $key
            ;;
        *)
            $config_script -disable $key
    esac
done
  • Update: BLKDEV_TAP 추가 (blktap2 디바이스 사용)