{"id":63,"date":"2026-03-01T05:16:44","date_gmt":"2026-03-01T05:16:44","guid":{"rendered":"https:\/\/depacongnghe.com\/?p=63"},"modified":"2026-03-01T05:16:45","modified_gmt":"2026-03-01T05:16:45","slug":"tuya-wind-ide-moi-truong-linux-de-phat-trien-tuyaos","status":"publish","type":"post","link":"https:\/\/depacongnghe.com\/?p=63","title":{"rendered":"Tuya Wind IDE &amp; M\u00f4i tr\u01b0\u1eddng Linux \u0111\u1ec3 ph\u00e1t tri\u1ec3n TuyaOS"},"content":{"rendered":"\n<p>B\u00e0i vi\u1ebft n\u00e0y s\u1ebd h\u01b0\u1edbng d\u1eabn chi ti\u1ebft c\u00e1ch thi\u1ebft l\u1eadp <strong>Tuya Wind IDE<\/strong> t\u00edch h\u1ee3p v\u1edbi m\u00f4i tr\u01b0\u1eddng Linux \u2013 gi\u1ea3i ph\u00e1p t\u1ed1i \u01b0u \u0111\u1ec3 bi\u00ean d\u1ecbch c\u00e1c b\u1ed9 SDK \u0111\u1eb7c th\u00f9 c\u1ee7a Tuya.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">T\u1ea1i sao c\u1ea7n m\u00f4i tr\u01b0\u1eddng Linux?<\/h2>\n\n\n\n<p>Trong ph\u00e1t tri\u1ec3n h\u1ec7 th\u1ed1ng nh\u00fang v\u1edbi TuyaOS, nhi\u1ec1u b\u1ed9 SDK (nh\u01b0 Gateway, IPC, ho\u1eb7c m\u1ed9t s\u1ed1 d\u00f2ng Wi-Fi\/Bluetooth m\u1edbi) y\u00eau c\u1ea7u c\u00f4ng c\u1ee5 bi\u00ean d\u1ecbch (<strong>Toolchain<\/strong>) ch\u1ea1y tr\u00ean n\u1ec1n t\u1ea3ng Linux. Vi\u1ec7c s\u1eed d\u1ee5ng Linux gi\u00fap nh\u00e0 ph\u00e1t tri\u1ec3n:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ch\u1ea1y c\u00e1c l\u1ec7nh bi\u00ean d\u1ecbch \u0111\u1eb7c th\u00f9 m\u00e0 Windows kh\u00f4ng h\u1ed7 tr\u1ee3.<\/li>\n\n\n\n<li>T\u1ed1i \u01b0u h\u00f3a t\u1ed1c \u0111\u1ed9 build code (nhanh h\u01a1n nhi\u1ec1u so v\u1edbi Windows).<\/li>\n\n\n\n<li>\u0110\u1ea3m b\u1ea3o t\u00ednh t\u01b0\u01a1ng th\u00edch tuy\u1ec7t \u0111\u1ed1i v\u1edbi c\u00e1c Scripts h\u1ec7 th\u1ed1ng c\u1ee7a Tuya.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">B\u01b0\u1edbc 1: Thi\u1ebft l\u1eadp m\u00f4i tr\u01b0\u1eddng Linux<\/h2>\n\n\n\n<p>T\u00f9y v\u00e0o \u0111i\u1ec1u ki\u1ec7n ph\u1ea7n c\u1ee9ng v\u00e0 th\u00f3i quen s\u1eed d\u1ee5ng, nh\u00e0 ph\u00e1t tri\u1ec3n c\u00f3 th\u1ec3 l\u1ef1a ch\u1ecdn m\u1ed9t trong ba ph\u01b0\u01a1ng \u00e1n thi\u1ebft l\u1eadp m\u00f4i tr\u01b0\u1eddng Linux d\u01b0\u1edbi \u0111\u00e2y:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Ph\u01b0\u01a1ng \u00e1n 1: S\u1eed d\u1ee5ng WSL (Windows Subsystem for Linux) &#8211; Khuy\u00ean d\u00f9ng:<\/strong> \u0110\u00e2y l\u00e0 c\u00e1ch ch\u1ea1y Ubuntu tr\u1ef1c ti\u1ebfp b\u00ean trong Windows. R\u1ea5t nh\u1eb9, m\u01b0\u1ee3t v\u00e0 cho ph\u00e9p qu\u1ea3n l\u00fd file gi\u1eefa Windows v\u00e0 Linux c\u1ef1c k\u1ef3 linh ho\u1ea1t.<\/li>\n\n\n\n<li><strong>Ph\u01b0\u01a1ng \u00e1n 2: S\u1eed d\u1ee5ng M\u00e1y \u1ea3o (Virtual Machine):<\/strong> C\u00e0i \u0111\u1eb7t Ubuntu th\u00f4ng qua c\u00e1c ph\u1ea7n m\u1ec1m nh\u01b0 VMware ho\u1eb7c VirtualBox. Ph\u01b0\u01a1ng \u00e1n n\u00e0y gi\u00fap c\u00f4 l\u1eadp ho\u00e0n to\u00e0n m\u00f4i tr\u01b0\u1eddng ph\u00e1t tri\u1ec3n nh\u01b0ng y\u00eau c\u1ea7u m\u00e1y t\u00ednh c\u00f3 c\u1ea5u h\u00ecnh RAM \u0111\u1ee7 m\u1ea1nh.<\/li>\n\n\n\n<li><strong>Ph\u01b0\u01a1ng \u00e1n 3: S\u1eed d\u1ee5ng M\u00e1y t\u00ednh th\u1eadt (Native Linux):<\/strong> C\u00e0i \u0111\u1eb7t Linux (\u01b0u ti\u00ean Ubuntu 20.04 LTS ho\u1eb7c 22.04 LTS) l\u00e0m h\u1ec7 \u0111i\u1ec1u h\u00e0nh ch\u00ednh ho\u1eb7c ch\u1ea1y song song (Dual-boot). \u0110\u00e2y l\u00e0 ph\u01b0\u01a1ng \u00e1n cho hi\u1ec7u su\u1ea5t bi\u00ean d\u1ecbch cao nh\u1ea5t.<\/li>\n<\/ul>\n\n\n\n<p><strong>Sau khi c\u00e0i \u0111\u1eb7t Linux, th\u1ef1c hi\u1ec7n c\u1eadp nh\u1eadt c\u00e1c g\u00f3i th\u01b0 vi\u1ec7n c\u1ea7n thi\u1ebft b\u1eb1ng l\u1ec7nh:<\/strong> <\/p>\n\n\n\n<p><code>sudo apt-get update<\/code> <\/p>\n\n\n\n<p><code>sudo apt-get install -y git python3 python3-pip make gcc g++ libncurses5<\/code><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">B\u01b0\u1edbc 2: C\u00e0i \u0111\u1eb7t Visual Studio Code &amp; Extensions<\/h2>\n\n\n\n<p>M\u00f4i tr\u01b0\u1eddng l\u1eadp tr\u00ecnh s\u1ebd \u0111\u01b0\u1ee3c v\u1eadn h\u00e0nh tr\u00ean <strong>VS Code<\/strong> th\u00f4ng qua c\u00e1c ti\u1ec7n \u00edch m\u1edf r\u1ed9ng.<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li><strong>C\u00e0i \u0111\u1eb7t VS Code:<\/strong> T\u1ea3i v\u00e0 c\u00e0i \u0111\u1eb7t phi\u00ean b\u1ea3n m\u1edbi nh\u1ea5t t\u1eeb trang ch\u1ee7 Microsoft.<\/li>\n\n\n\n<li><strong>C\u00e0i \u0111\u1eb7t WSL Extension:<\/strong> V\u00e0o m\u1ee5c <em>Extensions<\/em>, t\u00ecm v\u00e0 c\u00e0i \u0111\u1eb7t <strong>&#8220;WSL&#8221;<\/strong>. Ti\u1ec7n \u00edch n\u00e0y cho ph\u00e9p VS Code giao ti\u1ebfp tr\u1ef1c ti\u1ebfp v\u1edbi m\u00f4i tr\u01b0\u1eddng Ubuntu \u0111\u00e3 c\u00e0i \u1edf B\u01b0\u1edbc 1.<\/li>\n\n\n\n<li><strong>C\u00e0i \u0111\u1eb7t Tuya Wind IDE:<\/strong> T\u00ecm ki\u1ebfm ti\u1ec7n \u00edch <strong>&#8220;Tuya Wind IDE&#8221;<\/strong> v\u00e0 nh\u1ea5n <em>Install<\/em>. \u0110\u00e2y l\u00e0 b\u1ed9 c\u00f4ng c\u1ee5 qu\u1ea3n l\u00fd SDK ch\u00ednh th\u1ee9c t\u1eeb Tuya.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">B\u01b0\u1edbc 3: C\u1ea5u h\u00ecnh v\u00e0 Qu\u1ea3n l\u00fd SDK<\/h2>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li><strong>\u0110\u0103ng nh\u1eadp:<\/strong> M\u1edf bi\u1ec3u t\u01b0\u1ee3ng Tuya tr\u00ean thanh Sidebar, ch\u1ecdn <em>Login<\/em> v\u00e0 \u0111\u0103ng nh\u1eadp b\u1eb1ng t\u00e0i kho\u1ea3n <em>Tuya Developer<\/em>.<\/li>\n\n\n\n<li><strong>Thi\u1ebft l\u1eadp th\u01b0 m\u1ee5c l\u00e0m vi\u1ec7c (Storage Path):<\/strong> * N\u00ean \u01b0u ti\u00ean ch\u1ecdn \u0111\u01b0\u1eddng d\u1eabn n\u1eb1m trong h\u1ec7 th\u1ed1ng file c\u1ee7a Linux (v\u00ed d\u1ee5: <code>\\\\wsl$\\Ubuntu\\home\\user\\tuya_projects<\/code>) \u0111\u1ec3 tr\u00e1nh c\u00e1c l\u1ed7i v\u1ec1 ph\u00e2n quy\u1ec1n v\u00e0 t\u0103ng t\u1ed1c \u0111\u1ed9 x\u1eed l\u00fd file.<\/li>\n\n\n\n<li><strong>T\u1ea3i SDK (Create Framework):<\/strong> * Ch\u1ecdn m\u1ee5c <em>Create Framework<\/em>.\n<ul class=\"wp-block-list\">\n<li>L\u1ecdc theo lo\u1ea1i thi\u1ebft b\u1ecb (<em>Type<\/em>) v\u00e0 n\u1ec1n t\u1ea3ng chip (<em>Platform<\/em> &#8211; v\u00ed d\u1ee5: ESP32, BK7231, Realtek&#8230;).<\/li>\n\n\n\n<li>Nh\u1ea5n <em>OK<\/em> \u0111\u1ec3 h\u1ec7 th\u1ed1ng t\u1ef1 \u0111\u1ed9ng t\u1ea3i m\u00e3 ngu\u1ed3n t\u1eeb Cloud v\u1ec1 m\u00e1y.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">B\u01b0\u1edbc 4: Quy tr\u00ecnh bi\u00ean d\u1ecbch (Build Project)<\/h2>\n\n\n\n<p>Sau khi \u0111\u00e3 c\u00f3 m\u00e3 ngu\u1ed3n, quy tr\u00ecnh bi\u00ean d\u1ecbch \u0111\u01b0\u1ee3c th\u1ef1c hi\u1ec7n qua c\u00e1c b\u01b0\u1edbc:<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li><strong>K\u1ebft n\u1ed1i m\u00f4i tr\u01b0\u1eddng:<\/strong> Nh\u1ea5n v\u00e0o bi\u1ec3u t\u01b0\u1ee3ng g\u00f3c d\u01b0\u1edbi c\u00f9ng b\u00ean tr\u00e1i VS Code (h\u00ecnh m\u00e0u xanh) v\u00e0 ch\u1ecdn <strong>&#8220;Connect to WSL&#8221;<\/strong>.<\/li>\n\n\n\n<li><strong>Th\u1ef1c thi l\u1ec7nh Build:<\/strong> * Chu\u1ed9t ph\u1ea3i v\u00e0o th\u01b0 m\u1ee5c d\u1ef1 \u00e1n trong giao di\u1ec7n Wind IDE.\n<ul class=\"wp-block-list\">\n<li>Ch\u1ecdn <strong>&#8220;Build Project&#8221;<\/strong>.<\/li>\n\n\n\n<li>Nh\u1eadp phi\u00ean b\u1ea3n ph\u1ea7n m\u1ec1m (Version) v\u00e0 nh\u1ea5n <em>Enter<\/em>.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Xu\u1ea5t b\u1ea3n:<\/strong> Sau khi Terminal b\u00e1o <em>Build Success<\/em>, file th\u1ef1c thi (<code>.bin<\/code>) s\u1ebd xu\u1ea5t hi\u1ec7n trong th\u01b0 m\u1ee5c <code>output<\/code>. File n\u00e0y d\u00f9ng \u0111\u1ec3 n\u1ea1p v\u00e0o ph\u1ea7n c\u1ee9ng th\u1ef1c t\u1ebf.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">C\u00e1c l\u01b0u \u00fd quan tr\u1ecdng khi tri\u1ec3n khai<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u0110\u01b0\u1eddng d\u1eabn (Path):<\/strong> Tuy\u1ec7t \u0111\u1ed1i kh\u00f4ng \u0111\u1ec3 t\u00ean th\u01b0 m\u1ee5c ch\u1ee9a d\u1ef1 \u00e1n c\u00f3 d\u1ea5u c\u00e1ch ho\u1eb7c k\u00fd t\u1ef1 ti\u1ebfng Vi\u1ec7t c\u00f3 d\u1ea5u.<\/li>\n\n\n\n<li><strong>C\u1eadp nh\u1eadt Toolchain:<\/strong> M\u1ed9t s\u1ed1 SDK s\u1ebd y\u00eau c\u1ea7u t\u1ea3i th\u00eam b\u1ed9 bi\u00ean d\u1ecbch ri\u00eang khi Build l\u1ea7n \u0111\u1ea7u, h\u00e3y \u0111\u1ea3m b\u1ea3o k\u1ebft n\u1ed1i internet \u1ed5n \u0111\u1ecbnh.<\/li>\n\n\n\n<li><strong>Quy\u1ec1n h\u1ea1n:<\/strong> N\u1ebfu g\u1eb7p l\u1ed7i li\u00ean quan \u0111\u1ebfn &#8220;Permission denied&#8221; tr\u00ean Linux, h\u00e3y s\u1eed d\u1ee5ng l\u1ec7nh <code>chmod<\/code> \u0111\u1ec3 c\u1ea5p quy\u1ec1n cho th\u01b0 m\u1ee5c l\u00e0m vi\u1ec7c.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>B\u00e0i vi\u1ebft n\u00e0y s\u1ebd h\u01b0\u1edbng d\u1eabn chi ti\u1ebft c\u00e1ch thi\u1ebft l\u1eadp Tuya Wind IDE t\u00edch h\u1ee3p v\u1edbi m\u00f4i tr\u01b0\u1eddng Linux \u2013 gi\u1ea3i ph\u00e1p t\u1ed1i \u01b0u \u0111\u1ec3 bi\u00ean d\u1ecbch c\u00e1c b\u1ed9 SDK \u0111\u1eb7c th\u00f9 c\u1ee7a Tuya. T\u1ea1i sao c\u1ea7n m\u00f4i tr\u01b0\u1eddng Linux? Trong ph\u00e1t tri\u1ec3n h\u1ec7 th\u1ed1ng nh\u00fang v\u1edbi TuyaOS, nhi\u1ec1u b\u1ed9 SDK (nh\u01b0 Gateway, IPC, &#8230; <a title=\"Tuya Wind IDE &amp; M\u00f4i tr\u01b0\u1eddng Linux \u0111\u1ec3 ph\u00e1t tri\u1ec3n TuyaOS\" class=\"read-more\" href=\"https:\/\/depacongnghe.com\/?p=63\" aria-label=\"More on Tuya Wind IDE &amp; M\u00f4i tr\u01b0\u1eddng Linux \u0111\u1ec3 ph\u00e1t tri\u1ec3n TuyaOS\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-63","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/depacongnghe.com\/index.php?rest_route=\/wp\/v2\/posts\/63","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/depacongnghe.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/depacongnghe.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/depacongnghe.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/depacongnghe.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=63"}],"version-history":[{"count":1,"href":"https:\/\/depacongnghe.com\/index.php?rest_route=\/wp\/v2\/posts\/63\/revisions"}],"predecessor-version":[{"id":64,"href":"https:\/\/depacongnghe.com\/index.php?rest_route=\/wp\/v2\/posts\/63\/revisions\/64"}],"wp:attachment":[{"href":"https:\/\/depacongnghe.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=63"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/depacongnghe.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=63"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/depacongnghe.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=63"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}