리눅스 오픈 소스(Makefile.am)를 ubuntu에서 특정 ARM target용으로 컴파일 하는 방법?

bbyongi의 이미지

https://kldp.org/node/161264

위 링크의 질문과 다른 관점에서 해결책을 생각해보다가 추가 질문을 드립니다.

ubuntu에서 AOSP 소스를 빌드하면 아래와 같이 armv8-a, cortex-a73 용으로 빌드가 되고 있습니다.
https://source.android.com/setup/build/devices#hikey960

//ubuntu 환경에서 Hikey960용 AOSP 소스 다운로드
$ repo init -u https://android.googlesource.com/platform/manifest -b master
$ repo sync -j8

//ubuntu 환경에서 Hikey960용 AOSP 소스 빌드
$ . ./build/envsetup.sh
$ lunch hikey960-userdebug
$ make -j8

device/linaro/hikey/hikey960/device-hikey960.mk:138: warning: TARGET_HISI_CODEC_VERSION () does not match exiting the build (1).
device/linaro/hikey/hikey960/device-hikey960.mk:139: warning: Please download new binaries here:
device/linaro/hikey/hikey960/device-hikey960.mk:140: warning: <a href="https://dl.google.com/dl/android/aosp/hisilicon-hikey960-OPR-3c243263.tgz" rel="nofollow">https://dl.google.com/dl/android/aosp/hisilicon-hikey960-OPR-3c243263.tgz</a> 
device/linaro/hikey/hikey960/device-hikey960.mk:141: warning: And extract in the ANDROID_TOP_DIR
============================================
PLATFORM_VERSION_CODENAME=Q
PLATFORM_VERSION=Q
TARGET_PRODUCT=hikey960
TARGET_BUILD_VARIANT=userdebug
TARGET_BUILD_TYPE=release
TARGET_ARCH=arm64
TARGET_ARCH_VARIANT=armv8-a
TARGET_CPU_VARIANT=cortex-a73
TARGET_2ND_ARCH=arm
TARGET_2ND_ARCH_VARIANT=armv8-a
TARGET_2ND_CPU_VARIANT=cortex-a73
HOST_ARCH=x86_64
HOST_2ND_ARCH=x86
HOST_OS=linux
HOST_OS_EXTRA=Linux-4.4.0-31-generic-x86_64-Ubuntu-14.04.5-LTS
HOST_CROSS_OS=windows
HOST_CROSS_ARCH=x86
HOST_CROSS_2ND_ARCH=x86_64
HOST_BUILD_TYPE=release
BUILD_ID=PI
OUT_DIR=out
============================================
device/linaro/hikey/hikey960/device-hikey960.mk was modified, regenerating...
...(생략)
[  2% 1459/63798] //system/vold:libvold clang-tidy IdleMaint.cpp

리눅스 오픈 소스인 libmbim(libmbim-1.18.0.tar.xz) 소스를 ubuntu에서 빌드해보면
gcc를 이용해서 ubuntu에서 동작 가능한 실행 파일로 make가 생성되는것 같습니다.

https://www.freedesktop.org/wiki/Software/libmbim/
https://www.freedesktop.org/software/libmbim/libmbim-1.18.0.tar.xz

//ubuntu에서 libmbim 소스 make를 위한 configure 실행

$ ./configure
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether UID '1000' is supported by ustar format... yes
checking whether GID '1000' is supported by ustar format... yes
checking how to create a ustar tar archive... gnutar
checking whether to enable maintainer-specific portions of Makefiles... yes
checking whether make supports nested variables... (cached) yes
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking whether make supports the include directive... yes (GNU style)
checking dependency style of gcc... gcc3
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking how to print strings... printf
checking for a sed that does not truncate output... /bin/sed
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for fgrep... /bin/grep -F
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking how to convert x86_64-pc-linux-gnu file names to x86_64-pc-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-pc-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for ar... ar
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for a working dd... /bin/dd
checking how to truncate binary pipes... /bin/dd bs=4096 count=1
checking for mt... mt
checking if mt is a manifest tool... no
checking how to run the C preprocessor... gcc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking for more warnings... yes
checking whether gcc understands -Wmissing-declarations... yes
checking whether gcc understands -Wmissing-prototypes... yes
checking whether gcc understands -Wdeclaration-after-statement... yes
checking whether gcc understands -Wstrict-prototypes... yes
checking whether gcc understands -fno-strict-aliasing... yes
checking whether gcc understands -Wno-deprecated-declarations... yes
checking whether gcc understands -Wint-to-pointer-cast... yes
checking whether gcc understands -Wfloat-equal... yes
checking whether gcc understands -Wno-unused-parameter... yes
checking whether gcc understands -Wno-sign-compare... yes
checking whether gcc understands -Wunused-but-set-variable... yes
checking whether gcc understands -Wundef... yes
checking whether gcc understands -Wimplicit-function-declaration... yes
checking whether gcc understands -Wpointer-arith... yes
checking whether gcc understands -Winit-self... yes
checking whether gcc understands -Wshadow... yes
checking whether gcc understands -Wmissing-include-dirs... yes
checking whether gcc understands -Waggregate-return... yes
checking whether gcc understands -Wformat-security... yes
checking whether gcc understands -Wtype-limits... yes
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for MBIM_COMMON... yes
checking for LIBMBIM_GLIB... yes
checking for MBIMCLI... yes
checking for MBIMPROXY... yes
checking for python... /usr/bin/python
checking for python version... 2.7
checking for python platform... linux2
checking for python script directory... ${prefix}/lib/python2.7/dist-packages
checking for python extension module directory... ${exec_prefix}/lib/python2.7/dist-packages
checking for gtk-doc... no
configure: WARNING:
  You will not be able to create source packages with 'make dist'
  because gtk-doc >= 1.0 is not found.
checking for gtkdoc-check... no
checking for gtkdoc-check... no
checking for gtkdoc-rebase... no
checking for gtkdoc-mkpdf... no
checking whether to build gtk-doc documentation... no
checking for GTKDOC_DEPS... yes
checking for GUDEV... no
checking for help2man... false
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating build-aux/Makefile
config.status: creating build-aux/templates/Makefile
config.status: creating build-aux/mbim-codegen/Makefile
config.status: creating data/Makefile
config.status: creating data/pkg-config/Makefile
config.status: creating data/pkg-config/mbim-glib.pc
config.status: creating src/Makefile
config.status: creating src/common/Makefile
config.status: creating src/common/test/Makefile
config.status: creating src/libmbim-glib/Makefile
config.status: creating src/libmbim-glib/mbim-version.h
config.status: creating src/libmbim-glib/generated/Makefile
config.status: creating src/libmbim-glib/test/Makefile
config.status: creating src/mbimcli/Makefile
config.status: creating src/mbim-proxy/Makefile
config.status: creating utils/Makefile
config.status: creating docs/Makefile
config.status: creating docs/reference/Makefile
config.status: creating docs/reference/libmbim-glib/Makefile
config.status: creating docs/reference/libmbim-glib/version.xml
config.status: creating docs/man/Makefile
config.status: creating config.h
config.status: config.h is unchanged
config.status: executing depfiles commands
config.status: executing libtool commands
 
    libmbim 1.18.0
    ==============================================
 
    Build:
      compiler:             gcc
      cflags:               -Wall -std=gnu89 -g -O2 -Wmissing-declarations -Wmissing-prototypes -Wdeclaration-after                                                                                                                          -statement -Wstrict-prototypes -fno-strict-aliasing -Wno-deprecated-declarations -Wint-to-pointer-cast -Wfloat-equa                                                                                                                          l -Wno-unused-parameter -Wno-sign-compare -Wunused-but-set-variable -Wundef -Wimplicit-function-declaration -Wpoint                                                                                                                          er-arith -Winit-self -Wshadow -Wmissing-include-dirs -Waggregate-return -Wformat-security -Wtype-limits -Werror
      ldflags:
      Maintainer mode:      yes
      Documentation:        no
 
    System paths:
      prefix:               /usr/local
      udev base directory:  /lib/udev
 
    Features:
      udev support:         no
      MBIM username:        no (root)
 
$

//ubuntu에서 libmbim 소스 make 실행

$ make
make  all-recursive
make[1]: Entering directory `/home/wiz/temp/mbim/libmbim-1.18.0_build'
Making all in .
make[2]: Entering directory `/home/wiz/temp/mbim/libmbim-1.18.0_build'
make[2]: Leaving directory `/home/wiz/temp/mbim/libmbim-1.18.0_build'
Making all in build-aux
make[2]: Entering directory `/home/wiz/temp/mbim/libmbim-1.18.0_build/build-aux'
Making all in templates
make[3]: Entering directory `/home/wiz/temp/mbim/libmbim-1.18.0_build/build-aux/templates'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/home/wiz/temp/mbim/libmbim-1.18.0_build/build-aux/templates'
Making all in mbim-codegen
make[3]: Entering directory `/home/wiz/temp/mbim/libmbim-1.18.0_build/build-aux/mbim-codegen'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/home/wiz/temp/mbim/libmbim-1.18.0_build/build-aux/mbim-codegen'
make[3]: Entering directory `/home/wiz/temp/mbim/libmbim-1.18.0_build/build-aux'
make[3]: Nothing to be done for `all-am'.
make[3]: Leaving directory `/home/wiz/temp/mbim/libmbim-1.18.0_build/build-aux'
make[2]: Leaving directory `/home/wiz/temp/mbim/libmbim-1.18.0_build/build-aux'
Making all in data
make[2]: Entering directory `/home/wiz/temp/mbim/libmbim-1.18.0_build/data'
Making all in .
make[3]: Entering directory `/home/wiz/temp/mbim/libmbim-1.18.0_build/data'
make[3]: Nothing to be done for `all-am'.
make[3]: Leaving directory `/home/wiz/temp/mbim/libmbim-1.18.0_build/data'
Making all in pkg-config
make[3]: Entering directory `/home/wiz/temp/mbim/libmbim-1.18.0_build/data/pkg-config'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/home/wiz/temp/mbim/libmbim-1.18.0_build/data/pkg-config'
make[2]: Leaving directory `/home/wiz/temp/mbim/libmbim-1.18.0_build/data'
Making all in src
make[2]: Entering directory `/home/wiz/temp/mbim/libmbim-1.18.0_build/src'
Making all in common
make[3]: Entering directory `/home/wiz/temp/mbim/libmbim-1.18.0_build/src/common'
Making all in .
make[4]: Entering directory `/home/wiz/temp/mbim/libmbim-1.18.0_build/src/common'
make[4]: Nothing to be done for `all-am'.
make[4]: Leaving directory `/home/wiz/temp/mbim/libmbim-1.18.0_build/src/common'
Making all in test
make[4]: Entering directory `/home/wiz/temp/mbim/libmbim-1.18.0_build/src/common/test'
make[4]: Nothing to be done for `all'.
make[4]: Leaving directory `/home/wiz/temp/mbim/libmbim-1.18.0_build/src/common/test'
make[3]: Leaving directory `/home/wiz/temp/mbim/libmbim-1.18.0_build/src/common'
Making all in libmbim-glib
make[3]: Entering directory `/home/wiz/temp/mbim/libmbim-1.18.0_build/src/libmbim-glib'
Making all in generated
make[4]: Entering directory `/home/wiz/temp/mbim/libmbim-1.18.0_build/src/libmbim-glib/generated'
make  all-am
make[5]: Entering directory `/home/wiz/temp/mbim/libmbim-1.18.0_build/src/libmbim-glib/generated'
make[5]: Nothing to be done for `all-am'.
make[5]: Leaving directory `/home/wiz/temp/mbim/libmbim-1.18.0_build/src/libmbim-glib/generated'
make[4]: Leaving directory `/home/wiz/temp/mbim/libmbim-1.18.0_build/src/libmbim-glib/generated'
Making all in .
make[4]: Entering directory `/home/wiz/temp/mbim/libmbim-1.18.0_build/src/libmbim-glib'
make[4]: Nothing to be done for `all-am'.
make[4]: Leaving directory `/home/wiz/temp/mbim/libmbim-1.18.0_build/src/libmbim-glib'
Making all in test
make[4]: Entering directory `/home/wiz/temp/mbim/libmbim-1.18.0_build/src/libmbim-glib/test'
make[4]: Nothing to be done for `all'.
make[4]: Leaving directory `/home/wiz/temp/mbim/libmbim-1.18.0_build/src/libmbim-glib/test'
make[3]: Leaving directory `/home/wiz/temp/mbim/libmbim-1.18.0_build/src/libmbim-glib'
Making all in mbimcli
make[3]: Entering directory `/home/wiz/temp/mbim/libmbim-1.18.0_build/src/mbimcli'
  CC       mbimcli-mbimcli.o
  CC       mbimcli-mbimcli-helpers.o
  CC       mbimcli-mbimcli-basic-connect.o
  CC       mbimcli-mbimcli-phonebook.o
  CC       mbimcli-mbimcli-dss.o
  CC       mbimcli-mbimcli-ms-firmware-id.o
  CC       mbimcli-mbimcli-ms-host-shutdown.o
  CC       mbimcli-mbimcli-atds.o
  CC       mbimcli-mbimcli-intel-firmware-update.o
  CC       mbimcli-mbimcli-ms-basic-connect-extensions.o
  CCLD     mbimcli
make[3]: Leaving directory `/home/wiz/temp/mbim/libmbim-1.18.0_build/src/mbimcli'
Making all in mbim-proxy
make[3]: Entering directory `/home/wiz/temp/mbim/libmbim-1.18.0_build/src/mbim-proxy'
  CC       mbim_proxy-mbim-proxy.o
  CCLD     mbim-proxy
make[3]: Leaving directory `/home/wiz/temp/mbim/libmbim-1.18.0_build/src/mbim-proxy'
make[3]: Entering directory `/home/wiz/temp/mbim/libmbim-1.18.0_build/src'
make[3]: Nothing to be done for `all-am'.
make[3]: Leaving directory `/home/wiz/temp/mbim/libmbim-1.18.0_build/src'
make[2]: Leaving directory `/home/wiz/temp/mbim/libmbim-1.18.0_build/src'
Making all in utils
make[2]: Entering directory `/home/wiz/temp/mbim/libmbim-1.18.0_build/utils'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/home/wiz/temp/mbim/libmbim-1.18.0_build/utils'
Making all in docs
make[2]: Entering directory `/home/wiz/temp/mbim/libmbim-1.18.0_build/docs'
Making all in reference
make[3]: Entering directory `/home/wiz/temp/mbim/libmbim-1.18.0_build/docs/reference'
Making all in libmbim-glib
make[4]: Entering directory `/home/wiz/temp/mbim/libmbim-1.18.0_build/docs/reference/libmbim-glib'
make  all-am
make[5]: Entering directory `/home/wiz/temp/mbim/libmbim-1.18.0_build/docs/reference/libmbim-glib'
make[5]: Nothing to be done for `all-am'.
make[5]: Leaving directory `/home/wiz/temp/mbim/libmbim-1.18.0_build/docs/reference/libmbim-glib'
make[4]: Leaving directory `/home/wiz/temp/mbim/libmbim-1.18.0_build/docs/reference/libmbim-glib'
make[4]: Entering directory `/home/wiz/temp/mbim/libmbim-1.18.0_build/docs/reference'
make[4]: Nothing to be done for `all-am'.
make[4]: Leaving directory `/home/wiz/temp/mbim/libmbim-1.18.0_build/docs/reference'
make[3]: Leaving directory `/home/wiz/temp/mbim/libmbim-1.18.0_build/docs/reference'
Making all in man
make[3]: Entering directory `/home/wiz/temp/mbim/libmbim-1.18.0_build/docs/man'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/home/wiz/temp/mbim/libmbim-1.18.0_build/docs/man'
make[3]: Entering directory `/home/wiz/temp/mbim/libmbim-1.18.0_build/docs'
make[3]: Nothing to be done for `all-am'.
make[3]: Leaving directory `/home/wiz/temp/mbim/libmbim-1.18.0_build/docs'
make[2]: Leaving directory `/home/wiz/temp/mbim/libmbim-1.18.0_build/docs'
make[1]: Leaving directory `/home/wiz/temp/mbim/libmbim-1.18.0_build'
$

질문 드립니다.

.confiure 실행 결과를 보니 gcc를 이용해서 ubuntu용으로 컴파일 수행하는것 같은데
혹시 Hikey960 AOSP에 해당하는 armv8-a, cortex-a73 용으로 빌드되도록
리눅스 오픈 소스인 libmbim-1.18.0.tar.xz의 config나 makefile 수정이 가능할까요?

AOSP 소스를 컴파일 하면 Hikey960 보드에 해당하는 armv8-a, cortex-a73 용으로 이미지가 생성되는데
make 할때 어떤 arm 컴파일러를 물고서 빌드가 되는지 모르니 이 방법이 가능한건지 잘 모르겠습니다.

만약 가능하다면 ubuntu에서 armv8-a, cortex-a73 용으로 빌드한 실행 파일을
AOSP의 /system/bin에 그냥 추가해주면 Android에서 사용 가능한게 아닐까하는 생각이 들었습니다.

일주일동안 진전이 없어서 KLDP에 문의 드리오니,
혹시 아시는 분 계시면 조언을 간절히 부탁 드립니다.

감사합니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.