<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Yocto on Embedded Linux Blog</title><link>https://embeddedlinux.blog/categories/yocto/</link><description>Recent content in Yocto on Embedded Linux Blog</description><generator>Hugo</generator><language>vi</language><lastBuildDate>Sat, 05 Sep 2026 21:31:40 +0700</lastBuildDate><atom:link href="https://embeddedlinux.blog/categories/yocto/index.xml" rel="self" type="application/rss+xml"/><item><title>[Yocto-Lichee] 2. Làm quen, flash image tới thẻ nhớ board Lichee Pi Nano</title><link>https://embeddedlinux.blog/2026/09/05/yocto-lichee-2-lam-quen-voi-board-lichee-pi-nano/</link><pubDate>Sat, 05 Sep 2026 21:25:15 +0700</pubDate><guid>https://embeddedlinux.blog/2026/09/05/yocto-lichee-2-lam-quen-voi-board-lichee-pi-nano/</guid><description>&lt;p&gt;Bài này thì mình sẽ hướng dẫn các bạn làm quen, và test khi mới nhận board LicheePi Nano về mà muốn kiểm tra board còn sống không :vv.&lt;/p&gt;&#10;&lt;p&gt;Kể chắc cũng hơi ngược khi đến bài thứ 3 trong series Yocto-Lichee mới là bài làm quen :vv . Gần đây mình nhận ra Yocto khá là phức tạp với người mới, nên mình chắc sau với các bài căn bản sẽ sang Buildroot để build được image đã :vv .&lt;/p&gt;</description></item><item><title>[Yocto-BBB] 20. Build Yocto 6.0 wrynose cho board Beaglebone Black</title><link>https://embeddedlinux.blog/2026/06/20/yocto-bbb-20-build-yocto-6-0-wrynose-cho-board-beaglebone-black/</link><pubDate>Sat, 20 Jun 2026 06:09:00 +0700</pubDate><guid>https://embeddedlinux.blog/2026/06/20/yocto-bbb-20-build-yocto-6-0-wrynose-cho-board-beaglebone-black/</guid><description>&lt;p&gt;Vậy là tròn 1 năm từ hồi mình đăng bài đầu tiên về build Yocto cho Beaglebone Black. Ban đầu mình dùng phiên bản Kirkstone, sau đó update lên Scarthgap và mình nghĩ là nó sẽ khá bền :vv , nhưng lên phiên bản Wrynose đã có sự thay đổi khá lớn về cấu trúc. Nên mình viết thêm bài này về cách build ở version mới nhé, mình nghĩ từ bản 6.0 này trở đi, cấu trúc sẽ được giữ nguyên.&lt;/p&gt;</description></item><item><title>[Yocto-Lichee] 1. Build Yocto Scarthgap cho board Lichee Pi Nano</title><link>https://embeddedlinux.blog/2026/05/24/yocto-lichee-1-build-yocto-scarthgap-cho-board-lichee-pi-nano/</link><pubDate>Sun, 24 May 2026 18:26:27 +0700</pubDate><guid>https://embeddedlinux.blog/2026/05/24/yocto-lichee-1-build-yocto-scarthgap-cho-board-lichee-pi-nano/</guid><description>&lt;p&gt;Thực tế mình đã porting xong và update vào meta-layer nên công việc khá nhàn, mình sẽ để 1 note ở cuối bài về mình đã phải sửa gì để port từ Yocto 3.0 Zeus lên Yocto 5.0 Scarthgap&lt;/p&gt;&#10;&lt;h2 id="1-chuẩn-bị-máy-host"&gt;1. Chuẩn bị máy host&lt;/h2&gt;&#10;&lt;div class="code-block is-term" translate="no" data-lang="bash" data-pagefind-weight="0.4"&gt;&#10; &lt;div class="code-head" data-pagefind-ignore&gt;&lt;span class="lang"&gt;bash&lt;/span&gt;&lt;button type="button" class="copy-btn" aria-label="Copy" data-copied="Đã copy"&gt;&lt;svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"&gt;&lt;rect x="9" y="9" width="11" height="11" rx="2"/&gt;&lt;path d="M5 15V5a2 2 0 012-2h10"/&gt;&lt;/svg&gt;&lt;span&gt;Copy&lt;/span&gt;&lt;/button&gt;&lt;/div&gt;&lt;pre class="term"&gt;&lt;code&gt;&lt;span class="line"&gt;&lt;span class="t-c"&gt;sudo&lt;/span&gt; &lt;span class="t-c"&gt;apt-get&lt;/span&gt; update &lt;span class="t-op"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="t-c"&gt;sudo&lt;/span&gt; apt-get install &lt;span class="t-o"&gt;-y&lt;/span&gt; \&lt;span class="t-op"&gt;\&lt;/span&gt;&lt;/span&gt;&#10;&lt;span class="line"&gt; gawk wget git diffstat unzip texinfo \&lt;span class="t-op"&gt;\&lt;/span&gt;&lt;/span&gt;&#10;&lt;span class="line"&gt; gcc g++ build-essential chrpath socat cpio \&lt;span class="t-op"&gt;\&lt;/span&gt;&lt;/span&gt;&#10;&lt;span class="line"&gt; python3 python3-pip python3-pexpect python3-git python3-jinja2 \&lt;span class="t-op"&gt;\&lt;/span&gt;&lt;/span&gt;&#10;&lt;span class="line"&gt; python3-dev python3-setuptools swig \&lt;span class="t-op"&gt;\&lt;/span&gt;&lt;/span&gt;&#10;&lt;span class="line"&gt; python2 python2-dev \&lt;span class="t-op"&gt;\&lt;/span&gt;&lt;/span&gt;&#10;&lt;span class="line"&gt; libtool autoconf automake \&lt;span class="t-op"&gt;\&lt;/span&gt;&lt;/span&gt;&#10;&lt;span class="line"&gt; xz-utils debianutils iputils-ping \&lt;span class="t-op"&gt;\&lt;/span&gt;&lt;/span&gt;&#10;&lt;span class="line"&gt; libsdl1.2-dev xterm \&lt;span class="t-op"&gt;\&lt;/span&gt;&lt;/span&gt;&#10;&lt;span class="line"&gt; file lz4 zstd \&lt;span class="t-op"&gt;\&lt;/span&gt;&lt;/span&gt;&#10;&lt;span class="line"&gt; locales&lt;/span&gt;&#10;&lt;span class="line"&gt;&lt;/span&gt;&#10;&lt;span class="line"&gt;&lt;span class="t-c"&gt;sudo&lt;/span&gt; &lt;span class="t-c"&gt;locale-gen&lt;/span&gt; en_US.UTF-8&lt;/span&gt;&#10;&lt;span class="line"&gt;&lt;span class="t-c"&gt;export&lt;/span&gt; LANG=en_US.UTF-8&lt;/span&gt;&#10;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10;&lt;h2 id="2-clone-source-code-và-build"&gt;2. Clone source code và build&lt;/h2&gt;&#10;&lt;div class="code-block is-term" translate="no" data-lang="bash" data-pagefind-weight="0.4"&gt;&#10; &lt;div class="code-head" data-pagefind-ignore&gt;&lt;span class="lang"&gt;bash&lt;/span&gt;&lt;button type="button" class="copy-btn" aria-label="Copy" data-copied="Đã copy"&gt;&lt;svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"&gt;&lt;rect x="9" y="9" width="11" height="11" rx="2"/&gt;&lt;path d="M5 15V5a2 2 0 012-2h10"/&gt;&lt;/svg&gt;&lt;span&gt;Copy&lt;/span&gt;&lt;/button&gt;&lt;/div&gt;&lt;pre class="term"&gt;&lt;code&gt;&lt;span class="line"&gt;&lt;span class="t-c"&gt;cd&lt;/span&gt; &lt;span class="t-pa"&gt;~&lt;/span&gt;&lt;/span&gt;&#10;&lt;span class="line"&gt;&lt;span class="t-c"&gt;mkdir&lt;/span&gt; yocto&lt;/span&gt;&#10;&lt;span class="line"&gt;&lt;span class="t-c"&gt;cd&lt;/span&gt; yocto&lt;/span&gt;&#10;&lt;span class="line"&gt;&lt;span class="t-c"&gt;git&lt;/span&gt; clone &lt;span class="t-o"&gt;-b&lt;/span&gt; scarthgap &lt;span class="t-u"&gt;git://git.yoctoproject.org/poky.git&lt;/span&gt;&lt;/span&gt;&#10;&lt;span class="line"&gt;&lt;span class="t-c"&gt;cd&lt;/span&gt; poky&lt;/span&gt;&#10;&lt;span class="line"&gt;&lt;/span&gt;&#10;&lt;span class="line"&gt;&lt;span class="t-cm"&gt;# meta layer hổ trợ hầu hết các tools, thư viện cần thiết cho một distro linux&lt;/span&gt;&lt;/span&gt;&#10;&lt;span class="line"&gt;&lt;span class="t-c"&gt;git&lt;/span&gt; clone &lt;span class="t-o"&gt;-b&lt;/span&gt; scarthgap&lt;/span&gt;&#10;&lt;span class="line"&gt;&lt;/span&gt;&#10;&lt;span class="line"&gt;&lt;span class="t-cm"&gt;# meta layer support compile qt5 và install vào rom cho LicheePi Nano&lt;/span&gt;&lt;/span&gt;&#10;&lt;span class="line"&gt;&lt;span class="t-c"&gt;git&lt;/span&gt; clone &lt;span class="t-o"&gt;-b&lt;/span&gt; scarthgap&lt;/span&gt;&#10;&lt;span class="line"&gt;&lt;/span&gt;&#10;&lt;span class="line"&gt;&lt;span class="t-cm"&gt;# meta layer hổ trợ cho board LicheePi Nano (Linux kernel, u-boot)&lt;/span&gt;&lt;/span&gt;&#10;&lt;span class="line"&gt;&lt;span class="t-c"&gt;git&lt;/span&gt; clone &lt;span class="t-o"&gt;-b&lt;/span&gt; scarthgap&lt;/span&gt;&#10;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10;&lt;div class="code-block is-term" translate="no" data-lang="bash" data-pagefind-weight="0.4"&gt;&#10; &lt;div class="code-head" data-pagefind-ignore&gt;&lt;span class="lang"&gt;bash&lt;/span&gt;&lt;button type="button" class="copy-btn" aria-label="Copy" data-copied="Đã copy"&gt;&lt;svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"&gt;&lt;rect x="9" y="9" width="11" height="11" rx="2"/&gt;&lt;path d="M5 15V5a2 2 0 012-2h10"/&gt;&lt;/svg&gt;&lt;span&gt;Copy&lt;/span&gt;&lt;/button&gt;&lt;/div&gt;&lt;pre class="term"&gt;&lt;code&gt;&lt;span class="line"&gt;&lt;span class="t-cm"&gt;# Khởi tạo môi môi trường build yocto&lt;/span&gt;&lt;/span&gt;&#10;&lt;span class="line"&gt;&lt;span class="t-c"&gt;source&lt;/span&gt; oe-init-build-env build-f1c100s&lt;/span&gt;&#10;&lt;span class="line"&gt;&lt;/span&gt;&#10;&lt;span class="line"&gt;&lt;span class="t-cm"&gt;# copy các config example mình đã chuẩn bị sẵn&lt;/span&gt;&lt;/span&gt;&#10;&lt;span class="line"&gt;&lt;span class="t-c"&gt;cp&lt;/span&gt; &lt;span class="t-pa"&gt;../meta-f1c100s/conf/sample/normal-yocto/bblayers.conf.sample&lt;/span&gt; &lt;span class="t-pa"&gt;./conf/bblayers.conf&lt;/span&gt;&lt;/span&gt;&#10;&lt;span class="line"&gt;&lt;span class="t-c"&gt;cp&lt;/span&gt; &lt;span class="t-pa"&gt;../meta-f1c100s/conf/sample/normal-yocto/local.conf.sample&lt;/span&gt; &lt;span class="t-pa"&gt;./conf/local.conf&lt;/span&gt;&lt;/span&gt;&#10;&lt;span class="line"&gt;&lt;/span&gt;&#10;&lt;span class="line"&gt;&lt;span class="t-c"&gt;bitbake&lt;/span&gt; core-image-minimal&lt;/span&gt;&#10;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10;&lt;h2 id="3-flash-và-test-image"&gt;3. Flash và test image&lt;/h2&gt;&#10;&lt;p&gt;Sau khi build xong output sẽ tại&lt;/p&gt;</description></item><item><title>[Yocto-Lichee] 0. Build Yocto Zeus cho board Lichee Pi Nano</title><link>https://embeddedlinux.blog/2026/05/16/yocto-lichee-0-build-yocto-zeus-cho-board-lichee-pi-nano/</link><pubDate>Sat, 16 May 2026 06:02:00 +0700</pubDate><guid>https://embeddedlinux.blog/2026/05/16/yocto-lichee-0-build-yocto-zeus-cho-board-lichee-pi-nano/</guid><description>&lt;p&gt;Mình chốt là sẽ dùng con Lichee Pi Nano làm con board giá rẻ cho series Device Driver sắp tới. Mình thấy có &lt;a href="https://fanning.vn/study_yocto/build_nano_yocto_licheepi_nano.html" target="_blank" rel="noopener"&gt;guide từ bác fanning (ninhnn2)&lt;/a&gt;&#10; đã hướng dẫn build cho board này bằng Yocto Zeus (3.0) từ 6 năm trước. Rất cảm ơn bác vì đã tạo meta layer BSP cho nó, việc khó nhất đã xong rồi !!&lt;/p&gt;</description></item><item><title>[Linux] Board nhúng rẻ nhất có thể chạy Linux</title><link>https://embeddedlinux.blog/2026/05/09/linux-board-nhung-re-nhat-co-the-chay-linux/</link><pubDate>Sat, 09 May 2026 06:15:00 +0700</pubDate><guid>https://embeddedlinux.blog/2026/05/09/linux-board-nhung-re-nhat-co-the-chay-linux/</guid><description>&lt;p&gt;Cùng với việc vật giá leo thang, Beaglebone Black giờ cũng loanh quanh 2 triệu rồi. Mình quyết định tìm board rẻ nhất có thể chạy Linux. Tầm tầm 2 tuần, và mình chốt con board mình sẽ lên series trong thời gian tới. Bởi mình nghĩ nếu board rẻ thì sẽ có nhiều người tiếp cận vọc vạch được nhất nhỉ :vv. Các bạn nhớ đọc đến cuối để biết board mình chọn nhé&lt;/p&gt;</description></item><item><title>[Kernel-BBB] 1. KGDB qua UART</title><link>https://embeddedlinux.blog/2026/04/18/kernel-bbb-1-kgdb-qua-uart/</link><pubDate>Sat, 18 Apr 2026 06:56:00 +0700</pubDate><guid>https://embeddedlinux.blog/2026/04/18/kernel-bbb-1-kgdb-qua-uart/</guid><description>&lt;p&gt;Giữ nguyên cấu hình từ bài &lt;a href="https://embeddedlinux.blog/2025/06/28/yocto-bbb-1-build-beaglebone-black-image-bang-yocto-project/"&gt;Yocto-BBB 1&lt;/a&gt;&#10; mình thêm 1 meta-layer mới riêng cho phần kernel này&lt;/p&gt;&#10;&lt;h2 id="1-tạo-meta-layer-mới"&gt;1. Tạo meta layer mới&lt;/h2&gt;&#10;&lt;h3 id="11-tạo-meta-layer-và-add-vào-bblayers"&gt;1.1 Tạo meta layer và add vào bblayers&lt;/h3&gt;&#10;&lt;div class="code-block is-term" translate="no" data-lang="bash" data-pagefind-weight="0.4"&gt;&#10; &lt;div class="code-head" data-pagefind-ignore&gt;&lt;span class="lang"&gt;bash&lt;/span&gt;&lt;button type="button" class="copy-btn" aria-label="Copy" data-copied="Đã copy"&gt;&lt;svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"&gt;&lt;rect x="9" y="9" width="11" height="11" rx="2"/&gt;&lt;path d="M5 15V5a2 2 0 012-2h10"/&gt;&lt;/svg&gt;&lt;span&gt;Copy&lt;/span&gt;&lt;/button&gt;&lt;/div&gt;&lt;pre class="term"&gt;&lt;code&gt;&lt;span class="line"&gt;&lt;span class="t-p"&gt;$&lt;/span&gt; &lt;span class="t-c"&gt;source&lt;/span&gt; oe-init-build-env &lt;span class="t-pa"&gt;build-bbb/&lt;/span&gt;&lt;/span&gt;&#10;&lt;span class="line"&gt;&lt;span class="t-p"&gt;&lt;span class="t-pu"&gt;zk47@ltu&lt;/span&gt;:&lt;span class="t-pd"&gt;~/Youtube/Yocto/yocto-bbb/poky/build-bbb&lt;/span&gt;$&lt;/span&gt; &lt;span class="t-c"&gt;bitbake-layers&lt;/span&gt; create-layer &lt;span class="t-pa"&gt;../meta-kernel&lt;/span&gt;&lt;/span&gt;&#10;&lt;span class="line"&gt;&lt;span class="t-out"&gt;NOTE: Starting bitbake server...&lt;/span&gt;&lt;/span&gt;&#10;&lt;span class="line"&gt;&lt;span class="t-out"&gt;Add your new layer with 'bitbake-layers add-layer ../meta-kernel'&lt;/span&gt;&lt;/span&gt;&#10;&lt;span class="line"&gt;&lt;span class="t-out"&gt;&lt;/span&gt;&lt;/span&gt;&#10;&lt;span class="line"&gt;&lt;span class="t-p"&gt;$&lt;/span&gt; &lt;span class="t-c"&gt;bitbake-layers&lt;/span&gt; add-layer &lt;span class="t-pa"&gt;../meta-kernel&lt;/span&gt;&lt;/span&gt;&#10;&lt;span class="line"&gt;&lt;span class="t-out"&gt;NOTE: Starting bitbake server...&lt;/span&gt;&lt;/span&gt;&#10;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10;&lt;h3 id="12-tạo-recipe-kernel-append"&gt;1.2 Tạo recipe kernel append&lt;/h3&gt;&#10;&lt;p&gt;Ta dùng câu lệnh sau để biết được recipe kernel (Thực tế ta có thể dùng virtual/kernel nhưng nó kiểu tên chung, không chỉ đích danh)&lt;/p&gt;</description></item><item><title>[Yocto-BBB] 19. Cấu hình share state , đẩy nhanh quá trình build</title><link>https://embeddedlinux.blog/2026/04/11/yocto-bbb-19-cau-hinh-share-state-day-nhanh-qua-trinh-build/</link><pubDate>Sat, 11 Apr 2026 06:54:00 +0700</pubDate><guid>https://embeddedlinux.blog/2026/04/11/yocto-bbb-19-cau-hinh-share-state-day-nhanh-qua-trinh-build/</guid><description>&lt;h2 id="1-thiết-lập-http-server"&gt;1. Thiết lập HTTP server&lt;/h2&gt;&#10;&lt;p&gt;Ở đây mình dùng nginx, các bạn hoàn toàn có thể dùng các cách đơn giản hơn. Vì ở đây đơn giản là share cái folder sstate-cache, từ 1 máy khác đã build yocto sang 1 máy cùng mạng&lt;/p&gt;</description></item><item><title>[Yocto-BBB] 18. GDB debug qua recipe-sysroot</title><link>https://embeddedlinux.blog/2026/03/31/yocto-bbb-18-debug-qua-recipe-sysroot/</link><pubDate>Tue, 31 Mar 2026 20:11:59 +0700</pubDate><guid>https://embeddedlinux.blog/2026/03/31/yocto-bbb-18-debug-qua-recipe-sysroot/</guid><description>&lt;p&gt;Ở bài này mình sẽ hướng dẫn các bạn về cách debug 1 file binary đã đươc build ra từ recipe-sysroot trong thư mục output của recipe đó.&lt;/p&gt;&#10;&lt;h2 id="1-sysroot-là-gì-"&gt;1. Sysroot là gì ?&lt;/h2&gt;&#10;&lt;p&gt;Sysroot là system root, là 1 thư mục đóng vai trò như root filesystem ảo, dành cho quá trình cross-compile. Nó chứa các header files, libraries, và các artifact cần thiết để compiler/linker có thể build code cho target mà không cần chạy trực tiếp trên target.&lt;/p&gt;</description></item><item><title>[Yocto-MX93] 2. Kết nối wifi, test thử Chromium</title><link>https://embeddedlinux.blog/2026/02/07/yocto-mx93-2-ket-noi-wifi-test-thu-chromium/</link><pubDate>Sat, 07 Feb 2026 07:34:09 +0700</pubDate><guid>https://embeddedlinux.blog/2026/02/07/yocto-mx93-2-ket-noi-wifi-test-thu-chromium/</guid><description>&lt;p&gt;1 cái hay khi dùng luôn image full tính năng từ hãng là bạn định thêm thắt gì khá đơn giản, và cũng có nhiều tài liệu từ hãng luôn&lt;/p&gt;&#10;&lt;h2 id="1-thêm-chromium-khi-build"&gt;1. Thêm Chromium khi build&lt;/h2&gt;&#10;&lt;p&gt;Đầu tiên, như mình đã bảo ở bài trước, tránh việc bạn sửa các file local.conf và bbalyers xong các bạn mới chạy source thì 2 file này. Thì ta chạy trước câu lệnh sau để khởi tạo môi trường build&lt;/p&gt;</description></item><item><title>[Yocto-MX93] 1. Build imx-image-full cho FRDM-i.MX93</title><link>https://embeddedlinux.blog/2026/01/31/yocto-mx93-1-build-imx-image-full-cho-frdm-i-mx93/</link><pubDate>Sat, 31 Jan 2026 22:07:48 +0700</pubDate><guid>https://embeddedlinux.blog/2026/01/31/yocto-mx93-1-build-imx-image-full-cho-frdm-i-mx93/</guid><description>&lt;p&gt;Ở các series Yocto cho Beaglebone Black, STM32MP157, mình đã làm nhiều về các tính năng căn bản, cách dùng yocto và đi lên từ core-image-minimal. Lần này mình sẽ build các tính năng cho board FRDM i.MX93 từ image full của hãng luôn.&lt;/p&gt;</description></item><item><title>[Yocto-BBB] 17. Cài Links-X11, Lướt web trên core-image-sato</title><link>https://embeddedlinux.blog/2026/01/17/yocto-bbb-17-cai-links-x11-luot-web-tren-core-image-sato/</link><pubDate>Sat, 17 Jan 2026 06:34:00 +0700</pubDate><guid>https://embeddedlinux.blog/2026/01/17/yocto-bbb-17-cai-links-x11-luot-web-tren-core-image-sato/</guid><description>&lt;p&gt;Nọ mình cài Android 6 trên Beaglebone Black thì có thấy app Trình duyệt, nhưng không lướt được web. Với các board mới hơn như FRDM i.MX93 thì hỗ trợ tốt cho Chromium, nhưng chắc chắn yêu cầu phần cứng phải tốt hơn rất nhiều.&lt;/p&gt;</description></item><item><title>[Yocto-STM32MP1] 2. Tạo patch device tree kernel, mở i2c</title><link>https://embeddedlinux.blog/2025/12/13/yocto-stm32mp1-2-tao-patch-device-tree-kernel-mo-i2c/</link><pubDate>Sat, 13 Dec 2025 07:18:00 +0700</pubDate><guid>https://embeddedlinux.blog/2025/12/13/yocto-stm32mp1-2-tao-patch-device-tree-kernel-mo-i2c/</guid><description>&lt;p&gt;Ở bài này mình sẽ hướng dẫn các bạn cách tạo patch device tree kernel, để enable i2c5 trên board&lt;/p&gt;&#10;&lt;h2 id="1-tài-liệu-và-phần-cứng"&gt;1. Tài liệu và phần cứng&lt;/h2&gt;&#10;&lt;p&gt;Các bạn đọc trong &lt;a href="https://www.st.com/resource/en/user_manual/um2534-discovery-kits-with-stm32mp157-mpus-stmicroelectronics.pdf" target="_blank" rel="noopener"&gt;User Manual&lt;/a&gt;&#10; của hãng, trang số 8 ta sẽ có Hardware block diagram, miêu tả các biểu đồ các kết nối hiện tại được kéo ra từ chip&lt;/p&gt;</description></item><item><title>[Yocto-STM32MP1] 1. Build và flash core-image-minimal cho STM32MP157</title><link>https://embeddedlinux.blog/2025/12/06/yocto-stm32mp1-1-build-va-flash-core-image-minimal-cho-stm32mp157/</link><pubDate>Sat, 06 Dec 2025 07:11:00 +0700</pubDate><guid>https://embeddedlinux.blog/2025/12/06/yocto-stm32mp1-1-build-va-flash-core-image-minimal-cho-stm32mp157/</guid><description>&lt;h2 id="1-chuẩn-bị-bên-máy-host"&gt;1. Chuẩn bị bên máy host&lt;/h2&gt;&#10;&lt;p&gt;Ở đây máy mình cài Ubuntu 22.04.5 LTS (Jammy Jellyfish). Mình cài dual boot với windows để tối ưu core&lt;/p&gt;&#10;&lt;p&gt;Dựa theo hướng dẫn bên &lt;a href="https://docs.yoctoproject.org/2.2.2/ref-manual/ref-manual.html#required-packages-for-the-host-development-system" target="_blank" rel="noopener"&gt;Yocto Project Reference Manual&lt;/a&gt;&#10; , mục 1.3.2.1. Ta cài các package sau&lt;/p&gt;</description></item><item><title>[Yocto-BBB] 16. Bật ADB, SSH Port-Forwarding</title><link>https://embeddedlinux.blog/2025/11/22/yocto-bbb-16-bat-adb-ssh-port-forwarding/</link><pubDate>Sat, 22 Nov 2025 06:46:00 +0700</pubDate><guid>https://embeddedlinux.blog/2025/11/22/yocto-bbb-16-bat-adb-ssh-port-forwarding/</guid><description>&lt;p&gt;ADB: Android Debug Bridge&lt;/p&gt;&#10;&lt;p&gt;Ở bài này, mình sẽ hướng dẫn với các bạn cách config để build image với ADB giúp cho việc truyền file qua USB thuận tiện hơn. Cũng như Port Forwarding, để ta có thể dùng ssh thông qua USB.&lt;/p&gt;</description></item><item><title>[Yocto-BBB] 15. Thay đổi Boot Logo</title><link>https://embeddedlinux.blog/2025/10/18/yocto-bbb-15-thay-doi-boot-logo/</link><pubDate>Sat, 18 Oct 2025 09:25:00 +0700</pubDate><guid>https://embeddedlinux.blog/2025/10/18/yocto-bbb-15-thay-doi-boot-logo/</guid><description>&lt;p&gt;Okay, bài này mình sẽ hướng dẫn cách thay đổi &lt;strong&gt;Boot Logo&lt;/strong&gt; trên &lt;strong&gt;Beaglebone Black&lt;/strong&gt;. Ban đầu mình nghĩ sẽ là 1 cái phải tìm hiểu sâu. Nhưng thực tế cách thay đổi khá đơn giản. Và đấy cũng là 1 cái hay của &lt;code&gt;Linux&lt;/code&gt; khi đã hỗ trợ rất nhiều nhưng &lt;code&gt;Package&lt;/code&gt;. Việc của mình là mò ra cái cần dùng và ráp nó lại.&lt;/p&gt;</description></item><item><title>[Yocto-BBB] 14. X11 và RDP (Remote Desktop Protocol)</title><link>https://embeddedlinux.blog/2025/10/11/yocto-bbb-14-x11-va-rdp/</link><pubDate>Sat, 11 Oct 2025 09:13:00 +0700</pubDate><guid>https://embeddedlinux.blog/2025/10/11/yocto-bbb-14-x11-va-rdp/</guid><description>&lt;p&gt;Vì quá trình build Weston quá phức tạp rồi, và mình cũng có thử Weston + RDP không thành, nên mình sang X11 + RDP luôn cho đỡ phức tạp&lt;/p&gt;&#10;&lt;h2 id="1-lý-do-dùng-rdp"&gt;1. Lý do dùng RDP&lt;/h2&gt;&#10;&lt;p&gt;Mục tiêu của việc dùng &lt;code&gt;RDP&lt;/code&gt; (Remote Desktop Protocol) này là bạn hoàn toàn có thể truy cập từ xa tới board với giao diện giống như VNC vậy .&lt;/p&gt;</description></item><item><title>[Yocto-BBB] 13. Build weston, sửa lỗi input, dnd.</title><link>https://embeddedlinux.blog/2025/10/04/yocto-bbb-13-build-weston-sua-loi-input-dnd/</link><pubDate>Sat, 04 Oct 2025 12:15:29 +0700</pubDate><guid>https://embeddedlinux.blog/2025/10/04/yocto-bbb-13-build-weston-sua-loi-input-dnd/</guid><description>&lt;p&gt;Lúc bắt tay vào làm minh không nghĩ mình sẽ viết bài này, mà mình nghĩ sẽ làm bài &lt;strong&gt;RDP + Weston&lt;/strong&gt; luôn. Vì trên con &lt;code&gt;STM32MP157&lt;/code&gt; thì build cái được ngay, nhưng trên con &lt;strong&gt;Beaglebone Black&lt;/strong&gt; này, mình mất 2 ngày mới làm cho &lt;code&gt;Weston&lt;/code&gt; có vẻ hoạt động đúng được.&lt;/p&gt;</description></item><item><title>[Yocto-BBB] 12. Truyền file qua TFTP</title><link>https://embeddedlinux.blog/2025/09/27/yocto-bbb-12-truyen-file-qua-tftp/</link><pubDate>Sat, 27 Sep 2025 09:10:00 +0700</pubDate><guid>https://embeddedlinux.blog/2025/09/27/yocto-bbb-12-truyen-file-qua-tftp/</guid><description>&lt;p&gt;Bài trước mình đã hướng dẫn các bạn truyền file qua UART, bài này mình sẽ hướng dẫn các bạn cách truyền file qua TFTP. (u-boot có hỗ trợ TFTP để load file)&lt;/p&gt;&#10;&lt;h2 id="1-tftp-là-gì-"&gt;1. TFTP là gì ?&lt;/h2&gt;&#10;&lt;p&gt;TFTP (Trivial File Transfer Protocol) là một giao thức truyền tệp &lt;strong&gt;rất đơn giản&lt;/strong&gt;, hoạt động trên &lt;code&gt;UDP&lt;/code&gt; (port 69).&lt;/p&gt;</description></item><item><title>[Yocto-BBB] 11. Truyền file qua UART</title><link>https://embeddedlinux.blog/2025/09/20/yocto-bbb-11-truyen-file-qua-uart/</link><pubDate>Sat, 20 Sep 2025 09:25:00 +0700</pubDate><guid>https://embeddedlinux.blog/2025/09/20/yocto-bbb-11-truyen-file-qua-uart/</guid><description>&lt;p&gt;Ở bài này, mình sẽ hướng dẫn các bạn cách truyền file qua UART. Sẽ rất hữu dụng khi sắp tới ta học về quá trình Boot trên BBB cũng như u-boot.&lt;/p&gt;&#10;&lt;h2 id="1-lý-do"&gt;1. Lý do&lt;/h2&gt;&#10;&lt;p&gt;Cho đến giờ mình biết tới 1 số kiểu truyền file từ HOST sang board sau. Mình sẽ nêu ra ưu và nhược điểm của nó&lt;/p&gt;</description></item><item><title>[Yocto-BBB] 10. Boot từ eMMC</title><link>https://embeddedlinux.blog/2025/08/30/yocto-bbb-10-boot-from-emmc/</link><pubDate>Sat, 30 Aug 2025 08:40:00 +0700</pubDate><guid>https://embeddedlinux.blog/2025/08/30/yocto-bbb-10-boot-from-emmc/</guid><description>&lt;p&gt;Ở bài này mình sẽ hướng dẫn các bạn cách cấu hình để Beaglebone Black boot từ eMMC.&lt;/p&gt;&#10;&lt;h2 id="1-lý-do"&gt;1. Lý do&lt;/h2&gt;&#10;&lt;h3 id="11-emmc-là-gì-"&gt;1.1 eMMC là gì ?&lt;/h3&gt;&#10;&lt;p&gt;&lt;strong&gt;eMMC (embedded MultiMediaCard)&lt;/strong&gt; là một loại bộ nhớ lưu trữ tích hợp, kết hợp &lt;strong&gt;flash NAND&lt;/strong&gt; và &lt;strong&gt;bộ điều khiển&lt;/strong&gt; trên cùng một chip.&lt;/p&gt;</description></item><item><title>[Yocto-BBB] 9. Sử dụng devtool, tạo patch và cách cài file IPK</title><link>https://embeddedlinux.blog/2025/08/23/yocto-bbb-9-su-dung-devtool-tao-patch-va-file-ipk/</link><pubDate>Sat, 23 Aug 2025 08:52:00 +0700</pubDate><guid>https://embeddedlinux.blog/2025/08/23/yocto-bbb-9-su-dung-devtool-tao-patch-va-file-ipk/</guid><description>&lt;p&gt;Ở bài 5 về thêm driver cho &lt;strong&gt;USB wifi&lt;/strong&gt; mình đã từng hướng dẫn các bạn cách tạo &lt;code&gt;recipes&lt;/code&gt; thủ công để lấy code từ git về build. ở bài 8 vừa rồi, mình cũng có để code &lt;code&gt;main.c&lt;/code&gt; xử lý i2c trên git, tuy nhiên khi copy về board ta sẽ phải sửa lại &lt;code&gt;I2C_DEV&lt;/code&gt; và &lt;code&gt;I2C_ADDR&lt;/code&gt; cho đúng.&lt;/p&gt;</description></item><item><title>[Yocto-BBB] 8. Kết nối I2C với SSD1306 OLED 0.96 Inch</title><link>https://embeddedlinux.blog/2025/08/16/yocto-bbb-8-ket-noi-voi-ssd1306-oled-0-96-inch/</link><pubDate>Sat, 16 Aug 2025 08:05:00 +0700</pubDate><guid>https://embeddedlinux.blog/2025/08/16/yocto-bbb-8-ket-noi-voi-ssd1306-oled-0-96-inch/</guid><description>&lt;p&gt;Ở bài này mình sẽ hướng dẫn các bạn cách kết nối Beaglebone Black với màn SSD1306 cũng như tạo recipes để build program cho việc tương tác này. Dưới đây là cách kết nối&lt;/p&gt;&#10;&lt;p&gt;(Nếu các bạn gặp khó khăn trong quá trình thực hành theo blog, các bạn có thể tham khảo video thực hành của mình ở cuối bài )&lt;/p&gt;</description></item><item><title>[Yocto-BBB] 7. Thêm driver cho USB wifi</title><link>https://embeddedlinux.blog/2025/08/09/yocto-bbb-7-them-driver-cho-usb-wifi/</link><pubDate>Sat, 09 Aug 2025 08:15:00 +0700</pubDate><guid>https://embeddedlinux.blog/2025/08/09/yocto-bbb-7-them-driver-cho-usb-wifi/</guid><description>&lt;p&gt;Với các board không có sẵn module wifi như &lt;strong&gt;Beaglebone Black&lt;/strong&gt;, thì việc dùng 1 usb wifi là rất tiện so với việc cắm dây Ethernet. Ở bài này mình dùng mẫu USB wifi từ &lt;strong&gt;TP-Link WN722N&lt;/strong&gt; V2 khá phổ biến ở các shop Việt Nam&lt;/p&gt;</description></item><item><title>[Yocto-BBB] 6. SSH tới board qua Ethernet</title><link>https://embeddedlinux.blog/2025/08/02/yocto-bbb-6-ssh-toi-board-qua-ethernet/</link><pubDate>Sat, 02 Aug 2025 08:25:00 +0700</pubDate><guid>https://embeddedlinux.blog/2025/08/02/yocto-bbb-6-ssh-toi-board-qua-ethernet/</guid><description>&lt;p&gt;Tiếp tục bài 5, bài này mình sẽ hướng dẫn các bạn thêm package vào image để kết nối được Internet khi cắm Ethernet, từ đó SSH tới board, tiện cho việc lập trình sau này hơn.&lt;/p&gt;&#10;&lt;p&gt;(Nếu các bạn gặp khó khăn trong quá trình thực hành theo blog, các bạn có thể tham khảo video thực hành của mình ở cuối bài )&lt;/p&gt;</description></item><item><title>[Yocto-BBB] 5. Thay đổi banner sau khi đăng nhập</title><link>https://embeddedlinux.blog/2025/07/26/yocto-bbb-5-thay-doi-banner-sau-khi-dang-nhap/</link><pubDate>Sat, 26 Jul 2025 09:37:00 +0700</pubDate><guid>https://embeddedlinux.blog/2025/07/26/yocto-bbb-5-thay-doi-banner-sau-khi-dang-nhap/</guid><description>&lt;p&gt;Mục tiêu của chúng ta sau bài này là sau khi đăng nhập ta sẽ hiện ra màn hình như sau&lt;/p&gt;&#10;&lt;p&gt;(Nếu các bạn gặp khó khăn trong quá trình thực hành theo blog, các bạn có thể tham khảo video thực hành của mình ở cuối bài )&lt;/p&gt;</description></item><item><title>[Yocto-BBB] 4. Thay đổi Distro Description</title><link>https://embeddedlinux.blog/2025/07/19/yocto-bbb-4-thay-doi-distro-description/</link><pubDate>Sat, 19 Jul 2025 09:21:00 +0700</pubDate><guid>https://embeddedlinux.blog/2025/07/19/yocto-bbb-4-thay-doi-distro-description/</guid><description>&lt;p&gt;Như bài trước đã nói, mục tiêu của bài này mình sẽ thay đổi distro description từ &amp;quot;Poky (Yocto Project Reference Distro)&amp;quot; sang dòng hiển thị custom theo cá nhân&lt;/p&gt;&#10;&lt;h2 id="thay-đổi-distro-description"&gt;Thay đổi Distro Description&lt;/h2&gt;&#10;&lt;p&gt;Đầu tiên ta tìm xem, vậy trong repo poky, dòng chữ này được chứa trong file nào sau khi build xong image&lt;/p&gt;</description></item><item><title>[Yocto-BBB] 3. Thêm mật khẩu cho User</title><link>https://embeddedlinux.blog/2025/07/12/yocto-bbb-3-them-mat-khau-cho-user/</link><pubDate>Sat, 12 Jul 2025 09:38:00 +0700</pubDate><guid>https://embeddedlinux.blog/2025/07/12/yocto-bbb-3-them-mat-khau-cho-user/</guid><description>&lt;p&gt;Ở 2 bài trước, ta đang không cài mật khẩu cho user root. Đến bài này mình sẽ thêm mật khẩu (do không có sudo, nên thêm cho root luôn :v)&lt;/p&gt;&#10;&lt;p&gt;(Nếu các bạn gặp khó khăn trong quá trình thực hành theo blog, các bạn có thể tham khảo video thực hành của mình ở cuối bài )&lt;/p&gt;</description></item><item><title>[Yocto-BBB] 2. UART Debug Board và Bitbake Append</title><link>https://embeddedlinux.blog/2025/07/05/yocto-bbb-2-uart-debug-board/</link><pubDate>Sat, 05 Jul 2025 08:04:00 +0700</pubDate><guid>https://embeddedlinux.blog/2025/07/05/yocto-bbb-2-uart-debug-board/</guid><description>&lt;p&gt;Ở bài trước, chúng ta đã build thành công core-minimal-image ở bài này mình sẽ tiếp tục với việc kết nối uart debug và ôn lại về bitbake append&lt;/p&gt;&#10;&lt;p&gt;(Nếu các bạn gặp khó khăn trong quá trình thực hành theo blog, các bạn có thể tham khảo video thực hành của mình ở cuối bài )&lt;/p&gt;</description></item><item><title>[Yocto-BBB] 1. Build Beaglebone Black Image Bằng Yocto Project</title><link>https://embeddedlinux.blog/2025/06/28/yocto-bbb-1-build-beaglebone-black-image-bang-yocto-project/</link><pubDate>Sat, 28 Jun 2025 17:54:46 +0700</pubDate><guid>https://embeddedlinux.blog/2025/06/28/yocto-bbb-1-build-beaglebone-black-image-bang-yocto-project/</guid><description>&lt;p&gt;Bắt đầu series về build bủng bằng Yocto thôi, bài đầu sẽ về build cho Beaglebone Black.&lt;/p&gt;&#10;&lt;p&gt;(Nếu các bạn gặp khó khăn trong quá trình thực hành theo blog, các bạn có thể tham khảo video thực hành của mình ở cuối bài )&lt;/p&gt;</description></item><item><title>[Yocto-BBB] 0. Lý thuyết, Tài liệu, và câu lệnh thường dùng trong Series Yocto</title><link>https://embeddedlinux.blog/2025/06/27/yocto-bbb-0-ly-thuyet-tai-lieu-va-cau-lenh-thuong-dung-trong-series-yocto/</link><pubDate>Fri, 27 Jun 2025 09:26:00 +0700</pubDate><guid>https://embeddedlinux.blog/2025/06/27/yocto-bbb-0-ly-thuyet-tai-lieu-va-cau-lenh-thuong-dung-trong-series-yocto/</guid><description>&lt;p&gt;Khi thực hành theo các bài trong series, có những câu lệnh mình thường dùng, có 1 số lý thuyết có thể dễ quên, và 1 số tài liệu phụ. Ở bài này mình sẽ tổng hợp lại để cho các bạn dễ theo dõi, làm theo hơn .&lt;/p&gt;</description></item></channel></rss>