Chọn ngôn ngữ của bạn
Khóa học Embedded Linux
Hơn 2 triệu học viên trên toàn thế giới

Khóa học Embedded Linux

4,3

Làm chủ mọi lớp của hệ thống Linux nhúng, từ bộ nạp khởi động và nhân hệ điều hành đến hệ thống tập tin gốc và trình điều khiển thiết bị. Khóa học này cung cấp cho bạn các kỹ năng thực hành để xây dựng, cấu hình và triển khai các hệ thống Linux nhúng cấp sản xuất trên phần cứng thực. Cho dù bạn đang bước chân vào lĩnh vực kỹ thuật nhúng hay đang nâng cao chuyên môn của mình, thì đây là lộ trình kỹ thuật hoàn chỉnh nhất hiện có.

Dedika cho doanh nghiệp

Bạn sẽ học được gì:

Bạn sẽ học cách thiết lập chuỗi công cụ biên dịch chéo, cấu hình và xây dựng nhân hệ điều hành Linux, cũng như tạo các hệ thống tập tin gốc tối thiểu bằng BusyBox. Bạn sẽ làm việc với U-Boot để quản lý toàn bộ trình tự khởi động nhúng và viết trình điều khiển thiết bị Linux cho GPIO, I2C, SPI và các ngoại vi điều khiển bằng ngắt. Khóa học bao gồm Yocto Project và Buildroot để tạo image tự động, cùng các kỹ thuật tối ưu hóa hệ thống như giảm thời gian khởi động, giảm thiểu dung lượng bộ nhớ và tăng cường bảo mật. Các chủ đề nâng cao bao gồm Linux thời gian thực với PREEMPT_RT, gỡ lỗi từ xa bằng GDB và các chiến lược cập nhật qua mạng cho các triển khai sản phẩm.

Bạn học thực tế như thế nào Khóa học Embedded Linux

Bạn thực hành như thế nào Khóa học Embedded Linux

Dành cho doanh nghiệp muốn đào tạo đội ngũ

Với Dedika dành cho doanh nghiệp, khóa học đi kèm với các bài tập và ví dụ thực tế phù hợp với nhu cầu riêng của công ty bạn.

Nhấn vào đây

Nội dung khóa học

8 Chương • 38 Bài họcThời gian từ 4 đến 360 giờ (bạn quyết định)

Chương 1Xem chi tiết

Nền tảng Linux và Hệ thống Nhúng

  • Bài học 1 • Kiến thức Cơ bản về Dòng lệnh Linux

    Hướng dẫn cách điều hướng shell, quản lý tệp và các lệnh điều khiển tiến trình. Những kỹ năng này là điều kiện tiên quyết cho mọi bài thực hành trong khóa học.

  • Bài học 2 • Nhân Hệ điều hành Linux và Kiến trúc Hệ điều hành

    Giải thích vai trò của nhân Linux, thiết kế nguyên khối và sự phân tách không gian người dùng/không gian nhân. Cung cấp bối cảnh cho công việc cấu hình nhân sau này.

  • Bài học 3 • Khái niệm Cốt lõi về Hệ thống Nhúng

    Định nghĩa hệ thống nhúng, các ràng buộc của chúng và cách chúng khác biệt với máy tính đa năng. Thiết lập vốn từ vựng được sử dụng xuyên suốt khóa học.

  • Bài học 4 • Tổng quan về Phần cứng Nhúng

    Khảo sát các bộ xử lý nhúng phổ biến, loại bộ nhớ và bus ngoại vi. Đặt nền tảng cho các quyết định phần mềm dựa trên thực tế phần cứng gặp phải trong các chương sau.

Chương 2Xem chi tiết

Biên dịch Chéo và Thiết lập Toolchain

  • Bài học 1 • Kiểm tra và Gỡ lỗi Toolchain

    Xác minh tính chính xác của toolchain bằng các tệp nhị phân kiểm tra và công cụ readelf. Ngăn chặn các lỗi cấu hình sai phổ biến trước khi xây dựng nhân và rootfs.

  • Bài học 2 • Kiến trúc và Thành phần Toolchain

    Xác định binutils, trình biên dịch, thư viện C và trình gỡ lỗi là các thành phần của toolchain. Giải thích mối quan hệ máy chủ-mục tiêu trọng tâm của biên dịch chéo.

  • Bài học 3 • Biên dịch Chéo Ứng dụng

    Trình bày cách biên dịch chương trình C và C++ cho mục tiêu sử dụng cross-toolchain. Giới thiệu các mẫu biên dịch chéo với Makefile và CMake.

  • Bài học 4 • Xây dựng Toolchain với Crosstool-NG

    Hướng dẫn cấu hình và xây dựng toolchain tùy chỉnh bằng Crosstool-NG. Tạo ra một tạo phẩm toolchain có thể tái tạo được sử dụng trong các bài thực hành tiếp theo.

Chương 3Xem chi tiết

Khái niệm về Bootloader và U-Boot

  • Bài học 1 • Quy trình Nạp và Phục hồi

    Hướng dẫn ghi ảnh bootloader vào bộ nhớ NAND, NOR và eMMC. Bao gồm các chiến lược phục hồi khi bo mạch không khởi động được.

  • Bài học 2 • Cấu hình và Xây dựng U-Boot

    Hướng dẫn từng bước chọn defconfig, tùy chỉnh cài đặt và biên dịch chéo U-Boot. Tạo ra tệp nhị phân bootloader sẵn sàng để nạp vào mục tiêu.

  • Bài học 3 • Shell U-Boot và Script Khởi động

    Sử dụng shell tương tác U-Boot để tải ảnh hệ thống và thiết lập đối số khởi động. Tự động hóa quá trình khởi động bằng script được lưu trong môi trường hoặc trên phương tiện lưu trữ.

  • Bài học 4 • Trình tự Khởi động Nhúng

    Theo dõi trình tự cấp nguồn từ mã ROM qua bootloader đến nhân. Thiết lập mô hình khởi động phân lớp được tham chiếu trong tất cả các công việc liên quan đến khởi động sau này.

  • Bài học 5 • Kiến trúc và Mã nguồn U-Boot

    Khám phá cấu trúc thư mục, gói hỗ trợ bo mạch và hệ thống Kconfig của U-Boot. Chuẩn bị cho học viên khả năng điều hướng và sửa đổi mã nguồn U-Boot một cách tự tin.

Chương 4Xem chi tiết

Cấu hình và Xây dựng Nhân Linux

  • Bài học 1 • Quản lý Mã nguồn và Phiên bản Nhân

    Giới thiệu các bản phát hành kernel.org, nhánh ổn định và nhân từ nhà cung cấp. Hướng dẫn sao chép và điều hướng cây mã nguồn nhân một cách hiệu quả.

  • Bài học 2 • Hệ thống Xây dựng và Đầu ra của Nhân

    Giải thích hệ thống Kbuild, cờ biên dịch chéo và các tạo phẩm đầu ra. Học viên xây dựng zImage, Image và device tree blob cho mục tiêu của mình.

  • Bài học 3 • Cấu hình Nhân với Kconfig

    Sử dụng menuconfig và tệp defconfig để kích hoạt các trình điều khiển và hệ thống con cần thiết. Hướng dẫn cách giảm kích thước nhân một cách có hệ thống cho các mục tiêu nhúng.

  • Bài học 4 • Mô-đun Nhân và Tải Động

    Hướng dẫn xây dựng mô-đun ngoài cây và trong cây, insmod, modprobe và depmod. Cho phép tải trình điều khiển trong thời gian chạy mà không cần xây dựng lại toàn bộ nhân.

  • Bài học 5 • Triển khai và Kiểm thử Nhân

    Chuyển ảnh nhân sang mục tiêu qua TFTP hoặc thẻ SD và khởi động nó. Xác thực khởi động thành công thông qua phân tích đầu ra bảng điều khiển serial.

Chương 5Xem chi tiết

Xây dựng Hệ thống Tệp Gốc

  • Bài học 1 • Xây dựng Rootfs Tối thiểu với BusyBox

    Cấu hình và biên dịch chéo BusyBox để cung cấp các tiện ích cốt lõi trong một tệp nhị phân duy nhất. Tạo ra một khung rootfs khép kín cho bo mạch mục tiêu.

  • Bài học 2 • Quản lý Thư viện và Phụ thuộc

    Xác định các phụ thuộc thư viện dùng chung và sao chép chúng vào khu vực staging rootfs. Ngăn ngừa lỗi thời gian chạy do thiếu thư viện trên mục tiêu.

  • Bài học 3 • Hệ thống Init và Khởi động Hệ thống

    So sánh BusyBox init, SysVinit và systemd cho các trường hợp sử dụng nhúng. Cấu hình inittab và script rcS để khởi chạy dịch vụ khi khởi động.

  • Bài học 4 • Cấu trúc và Tiêu chuẩn Hệ thống Tệp Gốc

    Giải thích Tiêu chuẩn Phân cấp Hệ thống Tệp (FHS) và các thư mục bắt buộc để khởi động Linux. Cung cấp bản thiết kế cấu trúc cho tất cả các bài tập xây dựng rootfs.

  • Bài học 5 • Đóng gói và Triển khai Rootfs

    Tạo ảnh cpio initramfs, ext4 và squashfs từ thư mục staging. Triển khai và gắn kết rootfs trên bo mạch mục tiêu.

Chương 6Xem chi tiết

Hệ thống Xây dựng: Yocto Project và Buildroot

  • Bài học 1 • Kiến trúc và Luồng Công việc Buildroot

    Giới thiệu luồng công việc hướng menuconfig của Buildroot để tạo toolchain, nhân và rootfs. Trình bày cách tạo mẫu nhanh cho các dự án bị ràng buộc tài nguyên.

  • Bài học 2 • Khái niệm Cốt lõi của Yocto Project

    Giải thích các layer, recipe, BitBake và kiến trúc hệ thống xây dựng OpenEmbedded. Thiết lập mô hình tư duy cần thiết cho mọi công việc tùy chỉnh Yocto.

  • Bài học 3 • Tạo và Tùy chỉnh Yocto Layer

    Tạo một layer tùy chỉnh, viết recipe và thêm nó vào ảnh Yocto. Trình bày mẫu mở rộng được sử dụng trong các dự án Yocto thực tế.

  • Bài học 4 • Tùy chỉnh Gói Buildroot

    Tạo recipe gói tùy chỉnh và overlay để thêm phần mềm độc quyền vào ảnh. Mở rộng Buildroot vượt ra ngoài bộ gói mặc định của nó.

  • Bài học 5 • Tạo Ảnh và Tạo SDK

    Xây dựng một ảnh hoàn chỉnh có thể khởi động và SDK phát triển ứng dụng với Yocto. Cho phép các nhà phát triển ứng dụng nhắm mục tiêu nền tảng mà không cần xây dựng lại ảnh.

Chương 7Xem chi tiết

Trình điều khiển Thiết bị và Giao diện Phần cứng

  • Bài học 1 • Device Tree và Mô tả Phần cứng

    Viết tệp mã nguồn device tree để mô tả cấu trúc liên kết phần cứng cho nhân. Liên kết trình điều khiển với các nút phần cứng bằng chuỗi tương thích và thuộc tính.

  • Bài học 2 • Ngắt và DMA trong Trình điều khiển

    Đăng ký trình xử lý ngắt và cấu hình truyền DMA trong trình điều khiển. Giải quyết các yêu cầu về độ trễ và thông lượng phổ biến trong các ngoại vi nhúng.

  • Bài học 3 • Phát triển Trình điều khiển Thiết bị Ký tự

    Triển khai trình điều khiển ký tự với các thao tác open, read, write và ioctl. Trình bày mẫu đăng ký trình điều khiển và thao tác tệp hoàn chỉnh.

  • Bài học 4 • Khái niệm Cơ bản về Mô hình Trình điều khiển Linux

    Giải thích mô hình trình điều khiển-thiết bị-bus, kobject và biểu diễn sysfs. Cung cấp khung khái niệm cho tất cả quá trình phát triển trình điều khiển trong chương này.

  • Bài học 5 • Giao diện Trình điều khiển GPIO, I2C và SPI

    Sử dụng API hệ thống con GPIO, I2C và SPI của nhân để giao tiếp với ngoại vi. Bao gồm cả phương thức truy cập trong trình điều khiển nhân và không gian người dùng qua sysfs/chardev.

Chương 8Xem chi tiết

Tối ưu Hóa Hệ thống và Tăng cường cho Sản phẩm

  • Bài học 1 • Chiến lược Cập nhật Qua Mạng

    Triển khai cơ chế cập nhật ngân hàng kép và delta để cập nhật firmware an toàn trên thực địa. Đảm bảo khả năng khôi phục và tính toàn vẹn của bản cập nhật trong các triển khai sản phẩm.

  • Bài học 2 • Tăng cường Bảo mật cho Linux Nhúng

    Áp dụng rootfs chỉ đọc, khởi động an toàn và kiểm soát truy cập để tăng cường hệ thống. Giảm bề mặt tấn công cho các sản phẩm nhúng được kết nối.

  • Bài học 3 • Tối ưu Hóa Dung lượng Bộ nhớ

    Giảm kích thước nhân, kích thước rootfs và mức sử dụng bộ nhớ thời gian chạy thông qua phân tích có hệ thống. Áp dụng các kỹ thuật tinh giản, nén và cắt bớt cấu hình.

  • Bài học 4 • Đo lường và Giảm Thời gian Khởi động

    Lập hồ sơ trình tự khởi động bằng bootchart và dấu thời gian nhân để tìm điểm nghẽn. Áp dụng các tối ưu hóa có mục tiêu để đạt được mục tiêu khởi động dưới giây hoặc khởi động nhanh.

  • Bài học 5 • Kỹ thuật Quản lý Điện năng

    Cấu hình điều chỉnh tần số CPU, trạng thái tạm ngưng và ngắt điện ngoại vi. Kéo dài tuổi thọ pin và giảm tỏa nhiệt trong các thiết kế nhạy cảm với điện năng.

Chứng nhận

Chứng chỉ hợp lệ của bạn sau khi hoàn thành

Khóa học này dành cho bạn:

  • Kỹ sư phần sụn: sẵn sàng chuyển từ vi điều khiển lõi trần sang hệ thống trên chip chạy Linux.

  • Sinh viên tốt nghiệp khoa học máy tính: tìm kiếm kiến thức chuyên sâu thực hành về hệ thống nhúng vượt xa chương trình đại học.

  • Nhà phát triển IoT: cần kiểm soát toàn diện các thiết bị mà phần mềm của họ đang chạy trên đó.

  • Người đam mê điện tử: muốn hiểu những gì đang vận hành bên trong các máy tính nhúng đơn bo của họ.

  • Kỹ sư DevOps: mở rộng sang các mục tiêu nhúng và quy trình CI tích hợp phần cứng.

  • Người chuyển đổi nghề nghiệp: chuyển từ phát triển phần mềm máy tính cá nhân hoặc web sang phát triển sản phẩm nhúng.

Những gì học viên của chúng tôi nói

Các bài học của bạn thật hoàn hảo. Tôi đã mua gói một năm và cuối cùng cũng có cơ hội theo dõi nhiều chủ đề mà tôi quan tâm mà không cần phải chuyển sang nền tảng khác... cảm ơn vì tất cả những gì các bạn đã làm, tôi đã giới thiệu các bạn cho những người khác...
Giulio Carlo
Giulio CarloHọc viên Marketing Digital
Tôi thích cách các bài học đi thẳng vào vấn đề và cách tôi có thể chuyển đổi chương và bỏ qua những nội dung mà tôi không cần.
Mariana Ferres
Mariana FerresHọc viên Nhiếp ảnh
Tôi thích nội dung và cách trình bày cũng như phiên âm video, điều này giúp tăng tốc quá trình học!
Luciana Alvarenga
Luciana AlvarengaHọc viên Thiết kế Nail
Nền tảng nhanh chóng, dễ sử dụng. Sự đa dạng của nội dung và các video bổ sung giúp ích rất nhiều cho việc học tập.
André Felipe
André FelipeHọc viên Kỹ thuật Prompt

Các chương trình đào tạo nổi bật

Câu hỏi thường gặp

Dedika là ai?

Chứng chỉ có giá trị tại Việt Nam không?

Các khóa học có miễn phí không?

Khối lượng học của các khóa học là bao nhiêu?

Các khóa học có hình thức như thế nào?

Các khóa học hoạt động như thế nào?

Thời lượng của các khóa học là bao lâu?

Chi phí hoặc giá của các khóa học là bao nhiêu?

Khóa học EAD hay khóa học trực tuyến là gì và hoạt động như thế nào?

Khóa học PDF