{"id":11776,"date":"2026-07-10T15:09:31","date_gmt":"2026-07-10T06:09:31","guid":{"rendered":"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=11776"},"modified":"2026-07-10T18:10:04","modified_gmt":"2026-07-10T09:10:04","slug":"zephyr-rtos-%ec%84%a4%ec%b9%98-%eb%b0%8f-%ec%98%88%ec%a0%9c-%eb%b9%8c%eb%93%9c","status":"publish","type":"post","link":"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=11776","title":{"rendered":"Zephyr RTOS &#8211; \uc124\uce58 \ubc0f \uc608\uc81c \ube4c\ub4dc"},"content":{"rendered":"<h1>Zephyr RTOS &#8211; \uc124\uce58 \ubc0f \uc608\uc81c \ube4c\ub4dc<\/h1>\n<p>\ub9ac\ub205\uc2a4 \uc7ac\ub2e8(Linux Foundation)\uc774 \ud638\uc2a4\ud305\ud558\uace0 \uc778\ud154, NXP, \ub178\ub974\ub515(Nordic) \ub4f1 \uae00\ub85c\ubc8c \ubc18\ub3c4\uccb4 \ub300\uae30\uc5c5\ub4e4\uc774 \uc8fc\ub3c4\ud558\uc5ec \uc720\uc9c0\ubcf4\uc218\ud558\ub294 \ucc28\uc138\ub300 \uc624\ud508\uc18c\uc2a4 RTOS\uc785\ub2c8\ub2e4. \ud604\uc7ac \uc784\ubca0\ub514\ub4dc \uc2dc\uc7a5\uc5d0\uc11c \uac00\uc7a5 \uac00\ud30c\ub974\uac8c \uc131\uc7a5\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<h2>\uac1c\ubc1c \ud658\uacbd \uad6c\ucd95<\/h2>\n<h3>\ub77c\uc774\ube0c\ub7ec\ub9ac \ucd94\uac00<\/h3>\n<p><a href=\"https:\/\/docs.zephyrproject.org\/latest\/develop\/getting_started\/index.html\">\ucc38\uc870<\/a><\/p>\n<p>\uc708\ub3c4\uc6b0\uc5d0\uc11c\ub3c4 \uac00\ub2a5\ud558\ub2e4\uace0 \ud558\uc9c0\ub9cc, WSL2 \uc6b0\ubd84\ud22c\uc5d0\uc11c \uc9c4\ud589\ud558\ub3c4\ub85d \ud558\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n<pre><code class=\"language-bash\"># Power Shell\nwsl --list --online\nwsl --install --distribution Ubuntu-26.04<\/code><\/pre>\n<pre><code class=\"language-bash\">sudo apt update\nsudo apt upgrade -y\n\n# \ud544\uc218 \ube4c\ub4dc \ub3c4\uad6c \ubc0f \ud328\ud0a4\uc9c0 \uc124\uce58\nsudo apt install -y git cmake ninja-build gperf \\\n  ccache dfu-util device-tree-compiler wget \\\n  python3-dev python3-pip python3-setuptools python3-tk python3-venv \\\n  xz-utils file make gcc gcc-multilib g++-multilib libsdl2-dev libmagic1<\/code><\/pre>\n<pre><code class=\"language-bash\"># \ucd5c\uc18c 3.20.5 \uc774\uc0c1\uc774\uc5b4\uc57c \ud568\ncmake --version\ncmake version 4.2.3\n\nCMake suite maintained and supported by Kitware (kitware.com\/cmake).\n\n# \ucd5c\uc18c 3.12 \uc774\uc0c1\uc774\uc5b4\uc57c \ud568\npython3 --version\nPython 3.14.4\n\n# \ucd5c\uc18c 1.4.6 \uc774\uc0c1\uc774\uc5b4\uc57c \ud568\ndtc --version\nVersion: DTC 1.7.2<\/code><\/pre>\n<h3>Zephyr \uc124\uce58 \ubc0f Python \uc758\uc874\uc131 \uc124\uce58<\/h3>\n<pre><code class=\"language-bash\">python3 -m venv ~\/zephyrproject\/.venv\nsource ~\/zephyrproject\/.venv\/bin\/activate<\/code><\/pre>\n<pre><code class=\"language-bash\">pip install west<\/code><\/pre>\n<pre><code class=\"language-bash\">west init -m https:\/\/github.com\/zephyrproject-rtos\/zephyr ~\/zephyrproject\ncd ~\/zephyrproject\n\n# \uc624\ub9cc \uc7a1\ub2e4\ud55c \ubc84\uc804\uc744 \uc804\ubd80 \uc124\uce58\ud55c\ub2e4. \uc624\ub798 \uac78\ub9b0\ub2e4.\nwest update<\/code><\/pre>\n<pre><code class=\"language-bash\"># Zephyr \uc18c\uc2a4 \ucf54\ub4dc \uc704\uce58\ub97c CMake\uc5d0 \ub4f1\ub85d\nwest zephyr-export<\/code><\/pre>\n<pre><code class=\"language-bash\">sudo apt update\nsudo apt install -y pkg-config libusb-1.0-0-dev libudev-dev\n\n# Python \uc758\uc874\uc131 \uc124\uce58\nwest packages pip --install<\/code><\/pre>\n<h3>Zephyr SDK \uc124\uce58<\/h3>\n<pre><code class=\"language-bash\">cd ~\/zephyrproject\/zephyr\n\n# \uc624\ub9cc \uc7a1\ub2e4\ud55c \ubc84\uc804\uc744 \uc804\ubd80 \uc124\uce58\ud55c\ub2e4. \uc624\ub798 \uac78\ub9b0\ub2e4.\nwest sdk install\n\n# \ud544\uc694\ud55c \ud234\uccb4\uc778\uc744 \uace8\ub77c\uc11c \uc124\uce58\ud560 \uc218 \uc788\ub2e4\uace0 \ud55c\ub2e4.\nwest sdk install --help<\/code><\/pre>\n<h2>\uc0d8\ud50c \uc560\ud50c\ub9ac\uac8c\uc774\uc158 \ube4c\ub4dc \ud14c\uc2a4\ud2b8 (Blinky)<\/h2>\n<h3>\ud638\uc2a4\ud2b8 PC \uc640 \ub3d9\uc77c\ud55c \uc2dc\ubbac\ub808\uc774\uc158 \ube4c\ub4dc<\/h3>\n<pre><code class=\"language-bash\">cd ~\/zephyrproject\/zephyr\n\n# west build -p always -b &lt;your-board-name&gt; samples\/basic\/blinky\n# \ud638\uc2a4\ud2b8 PC \uc640 \ub3d9\uc77c\ud55c \uc2dc\ubbac\ub808\uc774\uc158 \ube4c\ub4dc\nwest build -p always -b native_sim samples\/basic\/blinky\n\n# \uc2e4\ud589\nwest build -t run\n-- west build: running target run\n[2\/3] cd \/home\/skyer9\/zephyrproject\/zephyr\/build &amp;&amp; \/home\/skyer9\/zephyrproject\/zephyr\/build\/zephyr\/zephyr.exe\n*** Booting Zephyr OS build v4.4.0-7935-gcde0a961d820 ***\nLED state: OFF\nLED state: ON\nLED state: OFF\nLED state: ON\nLED state: OFF\nLED state: ON\n^C\nStopped at 5.320s\nninja: build stopped: interrupted by user.<\/code><\/pre>\n<h3>\uc2e4\uc81c \ud558\ub4dc\uc6e8\uc5b4\uc5d0 \ube4c\ub4dc<\/h3>\n<pre><code class=\"language-bash\"># \ubcf4\ub4dc \ud0c0\uac9f \ube4c\ub4dc -b \ub4b7 \ubd80\ubd84\uc744 \ubcc0\uacbd\ud574\uc57c \ud569\ub2c8\ub2e4.\nwest build -p always -b nucleo_f411re samples\/basic\/blinky\n\n# \ubcf4\ub4dc\ub97c USB\ub85c \uc5f0\uacb0 \ud6c4 \ud50c\ub798\uc2f1 (\ubcf4\ub4dc \uc81c\uc870\uc0ac\uc5d0\uc11c \uc81c\uacf5\ud558\ub294 \ud50c\ub798\uc2f1 \ud234 \uc124\uce58 \ud544\uc694)\nwest flash<\/code><\/pre>\n<h2>\uae30\ub2a5 \ucd94\uac00<\/h2>\n<h3>Zephyr \ub0b4\uc7a5 \ub124\uc774\ud2f0\ube0c HTTP \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uc774\uc6a9\ud574 <a href=\"https:\/\/google.com\/\">https:\/\/google.com\/<\/a> \ud398\uc774\uc9c0\uc758 html \uc744 \ub2e4\uc6b4\ub85c\ub4dc<\/h3>\n<p><font color=red size=5>\ud14c\uc2a4\ud2b8 \uc9c4\ud589\uc911\uc785\ub2c8\ub2e4.<\/font><\/p>\n<pre><code class=\"language-bash\">mkdir -p samples\/my_projects\/http_get_google\n\nvi samples\/my_projects\/http_get_google\/prj.conf<\/code><\/pre>\n<pre><code class=\"language-toml\"># \uc77c\ubc18 \ub124\ud2b8\uc6cc\ud0b9 \ud65c\uc131\ud654\nCONFIG_NETWORKING=y\nCONFIG_NET_IPV4=y\nCONFIG_NET_TCP=y\n\n# native_sim\uc758 zeth(tap) \uc778\ud130\ud398\uc774\uc2a4\uc5d0 \uace0\uc815 IP\/\uac8c\uc774\ud2b8\uc6e8\uc774 \ubd80\uc5ec\n# (\ud638\uc2a4\ud2b8\uc5d0\uc11c net-tools\uc758 net-setup.sh\ub85c zeth=192.0.2.2\/24 \ub97c \ub9cc\ub4e4\uc5b4 \ub454 \uc0c1\ud0dc\ub97c \uc804\uc81c\ub85c \ud568)\nCONFIG_NET_CONFIG_SETTINGS=y\nCONFIG_NET_CONFIG_NEED_IPV4=y\nCONFIG_NET_CONFIG_MY_IPV4_ADDR=&quot;192.0.2.1&quot;\nCONFIG_NET_CONFIG_MY_IPV4_GW=&quot;192.0.2.2&quot;\nCONFIG_NET_CONFIG_MY_IPV4_NETMASK=&quot;255.255.255.0&quot;\n\n# \uc18c\ucf13 API \ubc0f HTTP \ud074\ub77c\uc774\uc5b8\ud2b8 \ud65c\uc131\ud654\nCONFIG_NET_SOCKETS=y\n# CONFIG_NET_SOCKETS_POSIX_NAMES=y\nCONFIG_NET_SOCKETS_OFFLOAD=n\nCONFIG_HTTP_CLIENT=y\n\n# DNS \uc124\uc815 (\uad6c\uae00 \ub3c4\uba54\uc778 \ud574\uc11d\uc6a9)\nCONFIG_DNS_RESOLVER=y\nCONFIG_DNS_RESOLVER_MAX_SERVERS=1\nCONFIG_DNS_SERVER_IP_ADDRESSES=y\nCONFIG_DNS_SERVER1=&quot;192.0.2.2&quot;\n\n# TLS (HTTPS) \uc124\uc815\nCONFIG_NET_SOCKETS_SOCKOPT_TLS=y\nCONFIG_MBEDTLS_SSL_PROTO_TLS1_2=y\nCONFIG_MBEDTLS=y\nCONFIG_MBEDTLS_BUILTIN=y\nCONFIG_MBEDTLS_ENABLE_HEAP=y\nCONFIG_MBEDTLS_HEAP_SIZE=60000\nCONFIG_NET_SOCKETS_TLS_MAX_CONTEXTS=2\nCONFIG_MBEDTLS_SSL_IN_CONTENT_LEN=7168\nCONFIG_MBEDTLS_SSL_OUT_CONTENT_LEN=7168\nCONFIG_MBEDTLS_HASH_ALL_ENABLED=y\nCONFIG_PSA_WANT_ALG_SHA_1=y\nCONFIG_MBEDTLS_CIPHERSUITE_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256=y\n\n# TLS \uc138\uc158 \ubcf5\uc6d0 \ubc0f \uce90\uc2f1 \ud65c\uc131\ud654 (Zephyr \ucee4\ub110 \uc5d0\ub7ec \ud574\uacb0\uc6a9)\nCONFIG_MBEDTLS_SSL_SESSION_TICKETS=y\n\n# \ud799 \uba54\ubaa8\ub9ac \uc124\uc815 (HTTP \uc751\ub2f5 \ubc84\ud37c\ub9c1 \ubc0f TLS \uc791\uc5c5\uc6a9)\nCONFIG_HEAP_MEM_POOL_SIZE=32768\nCONFIG_MAIN_STACK_SIZE=4096\n\n# \ub85c\uae45 \uc11c\ube0c\uc2dc\uc2a4\ud15c \ud65c\uc131\ud654\n# (CONFIG_LOG=y \uc5c6\uc774 printk()\ub9cc \uc4f0\uba74, \ub124\ud2b8\uc6cc\ud06c \uc2a4\ud0dd\uc5d0\uc11c \uc5d0\ub7ec\uac00 \ubc1c\uc0dd\ud55c \uc9c1\ud6c4\n#  printk()\uac00 \ucf58\uc194 \ub77d\uc744 \uc7a1\uc740 \ucc44\ub85c \uba48\ucdb0\uc11c \uc774\ud6c4 \ucd9c\ub825\uc774 \uc804\ubd80 \uc0ac\ub77c\uc9c0\ub294 \ubb38\uc81c\uac00 \uc788\uc5c8\uc74c)\nCONFIG_LOG=y<\/code><\/pre>\n<pre><code class=\"language-bash\">mkdir -p samples\/my_projects\/http_get_google\/src\nvi samples\/my_projects\/http_get_google\/src\/main.c<\/code><\/pre>\n<pre><code class=\"language-c\">#include &lt;zephyr\/kernel.h&gt;\n#include &lt;zephyr\/net\/net_ip.h&gt;\n#include &lt;zephyr\/net\/socket.h&gt;       \/\/ Zephyr \ud45c\uc900 \uc18c\ucf13 (zsock_ \uacc4\uc5f4 \ud3ec\ud568)\n#include &lt;zephyr\/net\/http\/client.h&gt;\n#include &lt;zephyr\/net\/tls_credentials.h&gt;\n#include &quot;ca_certificate.h&quot;\n\n#include &lt;stdio.h&gt;\n#include &lt;string.h&gt;\n#include &lt;errno.h&gt;\n\n#define HTTP_PORT  443\n#define HTTP_HOST  &quot;google.com&quot;\n\n\/* HTTP \uc751\ub2f5\uc744 \ub098\ub204\uc5b4 \ubc1b\uc744 \ubc84\ud37c *\/\nstatic uint8_t response_buf[2048];\n\n\/* HTTP \ud074\ub77c\uc774\uc5b8\ud2b8 \ucf5c\ubc31 \ud568\uc218: \ucd5c\uc2e0 Zephyr \uaddc\uaca9\uc5d0 \ub9de\ucdb0 int \ud0c0\uc785 \ubc18\ud658 *\/\nstatic int http_response_cb(struct http_response *rsp,\n                            enum http_final_call final_data,\n                            void *user_data)\n{\n    if (rsp-&gt;data_len &gt; 0) {\n        \/* \uc218\uc2e0\ub41c HTML \ub370\uc774\ud130 \ucd9c\ub825 *\/\n        for (int i = 0; i &lt; rsp-&gt;data_len; i++) {\n            putchar(rsp-&gt;recv_buf[i]);\n        }\n    }\n\n    if (final_data == HTTP_DATA_FINAL) {\n        printk(&quot;\\n\\n[HTTP] \ubaa8\ub4e0 \ub370\uc774\ud130\ub97c \uc131\uacf5\uc801\uc73c\ub85c \uc218\uc2e0\ud588\uc2b5\ub2c8\ub2e4.\\n&quot;);\n    }\n\n    return 0; \/\/ \uc815\uc0c1 \ucc98\ub9ac \uc644\ub8cc \ubc18\ud658\n}\n\nint main(void)\n{\n    int ret;\n    struct zsock_addrinfo hints = {\n        .ai_family = AF_INET,\n        .ai_socktype = SOCK_STREAM,\n    };\n    struct zsock_addrinfo *res;\n\n    ret = tls_credential_add(CA_CERTIFICATE_TAG, TLS_CREDENTIAL_CA_CERTIFICATE,\n                              ca_certificate, sizeof(ca_certificate));\n    if (ret &lt; 0) {\n        printk(&quot;CA \uc778\uc99d\uc11c \ub4f1\ub85d \uc2e4\ud328: %d\\n&quot;, ret);\n        return 0;\n    }\n\n    printk(&quot;\uad6c\uae00 \uc11c\ube0c \ub3c4\uba54\uc778(DNS) \uc8fc\uc18c \ubcc0\ud658 \uc911...\\n&quot;);\n\n    \/* 1. DNS Lookup (Zephyr \uba85\uc2dc\uc801 zsock_ API \uc0ac\uc6a9) *\/\n    ret = zsock_getaddrinfo(HTTP_HOST, &quot;443&quot;, &amp;hints, &amp;res);\n    if (ret != 0) {\n        printk(&quot;DNS \ubcc0\ud658 \uc2e4\ud328: %d\\n&quot;, ret);\n        return 0;\n    }\n\n    \/* 2. TLS \uc18c\ucf13 \uc0dd\uc131 *\/\n    int sock = zsock_socket(res-&gt;ai_family, res-&gt;ai_socktype, IPPROTO_TLS_1_2);\n    if (sock &lt; 0) {\n        printk(&quot;\uc18c\ucf13 \uc0dd\uc131 \uc2e4\ud328: %d\\n&quot;, errno);\n        zsock_freeaddrinfo(res);\n        return 0;\n    }\n\n    \/* HTTPS \ud1b5\uc2e0\uc744 \uc704\ud55c TLS \ud504\ub85c\ud1a0\ucf5c \uc124\uc815 *\/\n    sec_tag_t sec_tag_list[] = { CA_CERTIFICATE_TAG };\n    ret = zsock_setsockopt(sock, SOL_TLS, TLS_SEC_TAG_LIST, sec_tag_list, sizeof(sec_tag_list));\n\n    \/\/ HTTPS \ud638\uc2a4\ud2b8\ub124\uc784 \uac80\uc99d(SNI) \uc124\uc815\n    ret = zsock_setsockopt(sock, SOL_TLS, TLS_HOSTNAME, HTTP_HOST, strlen(HTTP_HOST));\n\n    printk(&quot;\uad6c\uae00 \uc11c\ubc84\uc5d0 \uc5f0\uacb0 \uc911 (%s)...\\n&quot;, HTTP_HOST);\n\n    \/* 3. \uc11c\ubc84 \uc5f0\uacb0 *\/\n    ret = zsock_connect(sock, res-&gt;ai_addr, res-&gt;ai_addrlen);\n    if (ret &lt; 0) {\n        printk(&quot;\uc11c\ubc84 \uc5f0\uacb0 \uc2e4\ud328: %d\\n&quot;, errno);\n        zsock_close(sock);\n        zsock_freeaddrinfo(res);\n        return 0;\n    }\n    zsock_freeaddrinfo(res);\n\n    \/* 4. HTTP \uc694\uccad \uad6c\uc870\uccb4 \ucc44\uc6b0\uae30 *\/\n    struct http_request req = {\n        .method = HTTP_GET,\n        .url = &quot;\/&quot;,\n        .host = HTTP_HOST,\n        .protocol = &quot;HTTP\/1.1&quot;,\n        .response = http_response_cb,\n        .recv_buf = response_buf,\n        .recv_buf_len = sizeof(response_buf)\n    };\n\n    printk(&quot;HTTP GET \uc694\uccad \uc804\uc1a1 \uc911...\\n\\n&quot;);\n\n    \/* 5. HTTP \uc694\uccad \uc804\uc1a1 \ubc0f \ub300\uae30 (Timeout 5\ucd08) *\/\n    ret = http_client_req(sock, &amp;req, 5000, NULL);\n    if (ret &lt; 0) {\n        printk(&quot;HTTP \uc694\uccad \uc804\uc1a1 \uc2e4\ud328: %d\\n&quot;, ret);\n    }\n\n    \/* 6. \uc790\uc6d0 \uc815\ub9ac *\/\n    zsock_close(sock);\n    printk(&quot;\\n\uc5f0\uacb0\uc774 \uc885\ub8cc\ub418\uc5c8\uc2b5\ub2c8\ub2e4.\\n&quot;);\n\n    return 0;\n}<\/code><\/pre>\n<pre><code class=\"language-bash\">vi samples\/my_projects\/http_get_google\/CMakeLists.txt<\/code><\/pre>\n<pre><code class=\"language-Cmake\"># \ucd5c\uc18c CMake \ubc84\uc804 \uc694\uad6c\uc0ac\ud56d \uc815\uc758\ncmake_minimum_required(VERSION 3.20.0)\n\n# Zephyr \ud328\ud0a4\uc9c0 \ubd88\ub7ec\uc624\uae30 (\ube4c\ub4dc \uc2dc\uc2a4\ud15c \ud575\uc2ec)\nfind_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE})\n\n# \ud504\ub85c\uc81d\ud2b8 \uc774\ub984 \uc815\uc758\nproject(http_get_google)\n\n# \ucef4\ud30c\uc77c\ud560 \uc18c\uc2a4 \ud30c\uc77c \uc9c0\uc815 (main.c \uc9c0\uc815\uc744 \uc704\ud574 \ud544\uc218)\ntarget_sources(app PRIVATE src\/main.c)\n\n# CA \uc778\uc99d\uc11c(DER)\ub97c C \ubc30\uc5f4(.inc)\ub85c \ubcc0\ud658\ud558\uc5ec \ube4c\ub4dc\uc5d0 \ud3ec\ud568\nset(gen_dir ${ZEPHYR_BINARY_DIR}\/include\/generated\/)\n\ngenerate_inc_file_for_target(\n    app\n    src\/globalsign_r1.der\n    ${gen_dir}\/globalsign_r1.der.inc\n    )<\/code><\/pre>\n<pre><code class=\"language-bash\">vi samples\/my_projects\/http_get_google\/src\/ca_certificate.h<\/code><\/pre>\n<pre><code class=\"language-c\">#ifndef __CA_CERTIFICATE_H__\n#define __CA_CERTIFICATE_H__\n\n#define CA_CERTIFICATE_TAG 1\n\n\/* GlobalSign Root CA - R1, google.com \uc811\uc18d\uc6a9 (GTS Root R1\uc774 \ud558\uc704 \ud638\ud658\uc744 \uc704\ud574\n * \uc774 \uc778\uc99d\uc11c\ub85c cross-sign \ub418\uc5b4 \uc788\uc5b4 \uc2e4\uc81c\ub85c \ub3d9\uc791\ud568) *\/\nstatic const unsigned char ca_certificate[] = {\n#include &quot;globalsign_r1.der.inc&quot;\n};\n\n#endif \/* __CA_CERTIFICATE_H__ *\/<\/code><\/pre>\n<pre><code class=\"language-bash\">cp ~\/zephyrproject\/zephyr\/samples\/net\/sockets\/http_get\/src\/globalsign_r1.der \\\n   ~\/zephyrproject\/zephyr\/samples\/my_projects\/http_get_google\/src\/globalsign_r1.der<\/code><\/pre>\n<pre><code class=\"language-bash\">sudo apt-get install -y iptables dnsmasq-base tcpdump\n\ncd ~\/zephyrproject\/tools\/net-tools\nsudo .\/net-setup.sh\n# zeth: 192.0.2.2\/24, Zephyr \ucabd\uc5d4 192.0.2.1 \ud560\ub2f9\ub428 (prj.conf\uc758 CONFIG_NET_CONFIG_MY_IPV4_ADDR)\n\ncat &gt; \/tmp\/dnsmasq_zeth.conf &lt;&lt;EOF\nport=53\nlisten-address=192.0.2.2\nexcept-interface=lo\nbind-interfaces\nno-dhcp-interface=lo\ndomain=zephyr.test\ndhcp-range=192.0.2.16,192.0.2.32,1h\nEOF\n\nsudo dnsmasq -C \/tmp\/dnsmasq_zeth.conf -d --log-queries &amp;<\/code><\/pre>\n<pre><code class=\"language-bash\"># 192.0.2.0\/24(zeth) \ubc1c\uc2e0 \ud2b8\ub798\ud53d\uc744 eth0\uc73c\ub85c \ub098\uac08 \ub54c NAT\nsudo iptables -t nat -A POSTROUTING -s 192.0.2.0\/24 -o eth0 -j MASQUERADE\n\n# FORWARD \uccb4\uc778 \uae30\ubcf8 \uc815\ucc45\uc774 DROP\uc774\ubbc0\ub85c \uba85\uc2dc\uc801\uc73c\ub85c \ud5c8\uc6a9 \uaddc\uce59 \ucd94\uac00 (\ub9e8 \uc55e\uc5d0 \uc0bd\uc785)\nsudo iptables -I FORWARD 1 -i zeth -o eth0 -j ACCEPT\nsudo iptables -I FORWARD 2 -i eth0 -o zeth -m state --state RELATED,ESTABLISHED -j ACCEPT<\/code><\/pre>\n<pre><code class=\"language-bash\"># 1. \uc6b0\ubd84\ud22c \ud638\uc2a4\ud2b8 \ucabd\uc5d0 \uac00\uc0c1 \ub124\ud2b8\uc6cc\ud06c \uc778\ud130\ud398\uc774\uc2a4 \ubc0f NAT \ub77c\uc6b0\ud305 \uc124\uc815 (\ucd5c\ucd08 1\ud68c)\ncd ~\/zephyrproject\/tools\/net-tools\n\/* \uc774 \uc2a4\ud06c\ub9bd\ud2b8\ub294 zeth \uc778\ud130\ud398\uc774\uc2a4\ub97c \ub9cc\ub4e4\uace0 \ubc29\ud654\ubcbd(iptables) \uc124\uc815\uc744 \uc7a1\uc544\uc90d\ub2c8\ub2e4. *\/\nsudo .\/net-setup.sh up\n\n# 2. \ud504\ub85c\uc81d\ud2b8 \ube4c\ub4dc \ubc0f \uc2e4\ud589\ncd ~\/zephyrproject\/zephyr\nwest build -p always -b native_sim samples\/my_projects\/http_get_google\nwest build -t run<\/code><\/pre>\n<p>\uc8fc\uc758 (\uc778\uc99d\uc11c \uad00\ub828): \uc704 \uc608\uc81c \ucf54\ub4dc\ub294 \ub2e8\uc21c \ub370\ubaa8\ub97c \uc704\ud574 TLS \uc5f0\uacb0 \uc2dc \uc778\uc99d\uc11c \ubb34\uacb0\uc131 \uac80\uc99d\uc744 \uac74\ub108\ub6f0\ub3c4\ub85d \uad6c\uc870\ud654\ub418\uc5c8\uc2b5\ub2c8\ub2e4(sec_tag_t = {0}). \ub9cc\uc57d \ubcf4\uc548\uc774 \ucca0\uc800\ud55c \uc2e4\uc81c \uc0c1\uc6a9 \uc81c\ud488\uad70\uc5d0 \uc801\uc6a9\ud560 \ub54c\ub294 \uad6c\uae00\uc758 CA \ub8e8\ud2b8 \uc778\uc99d\uc11c(Root Certificate)\ub97c mbedtls \uc11c\ube0c\uc2dc\ud15c\uc5d0 \ub4f1\ub85d\ud574 \uc900 \ub4a4 setsockopt\ub85c \ubc14\uc778\ub529\ud574\uc57c \uc815\uc0c1\uc801\uc778 \ud578\ub4dc\uc170\uc774\ud06c\uac00 \uc644\ub8cc\ub429\ub2c8\ub2e4.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Zephyr RTOS &#8211; \uc124\uce58 \ubc0f \uc608\uc81c \ube4c\ub4dc \ub9ac\ub205\uc2a4 \uc7ac\ub2e8(Linux Foundation)\uc774 \ud638\uc2a4\ud305\ud558\uace0 \uc778\ud154, NXP, \ub178\ub974\ub515(Nordic) \ub4f1 \uae00\ub85c\ubc8c \ubc18\ub3c4\uccb4 \ub300\uae30\uc5c5\ub4e4\uc774 \uc8fc\ub3c4\ud558\uc5ec \uc720\uc9c0\ubcf4\uc218\ud558\ub294 \ucc28\uc138\ub300 \uc624\ud508\uc18c\uc2a4 RTOS\uc785\ub2c8\ub2e4. \ud604\uc7ac \uc784\ubca0\ub514\ub4dc \uc2dc\uc7a5\uc5d0\uc11c \uac00\uc7a5 \uac00\ud30c\ub974\uac8c \uc131\uc7a5\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. \uac1c\ubc1c \ud658\uacbd \uad6c\ucd95 \ub77c\uc774\ube0c\ub7ec\ub9ac \ucd94\uac00 \ucc38\uc870 \uc708\ub3c4\uc6b0\uc5d0\uc11c\ub3c4 \uac00\ub2a5\ud558\ub2e4\uace0 \ud558\uc9c0\ub9cc, WSL2 \uc6b0\ubd84\ud22c\uc5d0\uc11c \uc9c4\ud589\ud558\ub3c4\ub85d \ud558\uaca0\uc2b5\ub2c8\ub2e4. # Power Shell wsl &#8211;list &#8211;online wsl &#8211;install &#8211;distribution Ubuntu-26.04 sudo apt\u2026 <span class=\"read-more\"><a href=\"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=11776\">Read More &raquo;<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12],"tags":[],"class_list":["post-11776","post","type-post","status-publish","format-standard","hentry","category-devops"],"_links":{"self":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/11776","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=11776"}],"version-history":[{"count":7,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/11776\/revisions"}],"predecessor-version":[{"id":11783,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/11776\/revisions\/11783"}],"wp:attachment":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=11776"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=11776"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=11776"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}