FRANK 386: Biến Raspberry Pi Pico 2 thành máy tính PC i386 chạy DOS và Windows 95

Công nghệ14 tháng 9, 2026·7 phút đọc

Dự án mã nguồn mở FRANK 386 cho phép chạy giả lập PC i386 trên vi điều khiển RP2350 của Raspberry Pi Pico 2, với đầu ra VGA/HDMI, lưu trữ thẻ SD, bàn phím chuột PS/2 hoặc USB. Firmware này có thể khởi động DOS, Windows 3.x, Windows 95 và thậm chí cả Linux, mang đến sức mạnh của một chiếc PC thập niên 1990 trong lòng bàn tay.

FRANK 386: Biến Raspberry Pi Pico 2 thành máy tính PC i386 chạy DOS và Windows 95

FRANK 386: Khi Raspberry Pi Pico 2 hóa thân thành chiếc PC i386 thập niên 90

Trong khi phần lớn các dự án nhúng hiện đại tập trung vào IoT hay trí tuệ nhân tạo, một dự án mã nguồn mở mang tên FRANK 386 lại quay ngược thời gian, biến vi điều khiển RP2350 của Raspberry Pi Pico 2 thành một chiếc máy tính PC i386 hoàn chỉnh. Firmware này không chỉ giả lập CPU mà còn mô phỏng toàn bộ hệ thống ngoại vi như card đồ họa VGA, chip âm thanh Sound Blaster 16, và hỗ trợ khởi động các hệ điều hành cổ điển như DOS, Windows 95 hay thậm chí Linux.

Sơ đồ tổng quan dự án FRANK 386Sơ đồ tổng quan dự án FRANK 386

Sức mạnh của RP2350 trong một vỏ bọc cổ điển

Điểm đáng chú ý nhất của FRANK 386 nằm ở khả năng giả lập CPU i386 đầy đủ, kèm tùy chọn giả lập FPU x87, và hỗ trợ một phần các thế hệ CPU sau như i486 và i586. Với 8MB PSRAM, thiết bị có thể trang bị tối đa 8MB RAM — đủ để chạy nhiều hệ điều hành từng là tiêu chuẩn của thập niên 1990.

Về khả năng hiển thị, FRANK 386 hỗ trợ cả VGA lẫn HDMI, bao gồm chế độ văn bản và đồ họa lên tới độ phân giải 640x480. Đây là một điểm cộng lớn khi nhiều board mạch nhúng hiện nay chỉ hỗ trợ xuất hình ảnh hạn chế.

Phần âm thanh cũng được đầu tư bài bản với hàng loạt chip giả lập quen thuộc thời DOS: AdLib OPL2, Sound Blaster 16, PC Speaker, Tandy, Covox và cả Disney Sound Source. Nhờ đó, các tựa game DOS cổ điển có thể phát ra âm thanh đúng như trên phần cứng thật.

Hỗ trợ phần cứng đa dạng

Firmware này được thiết kế cho các board mạch dựa trên RP2350 có tích hợp VGA/HDMI, khe cắm thẻ SD và đầu vào bàn phím. Danh sách board được hỗ trợ bao gồm:

  • FRANK — board phát triển đa năng với đầu ra VGA
  • Murmulator — nền tảng retro-computing nhỏ gọn dựa trên RP Pico 2 (biến thể M1 và M2)
  • Olimex PICO-PC — board PC của Olimex dùng RP2350
  • Waveshare RP2350-PiZero — board RP2350 của Waveshare

Về yêu cầu phần cứng tối thiểu, người dùng cần một Raspberry Pi Pico 2 (RP2350) hoặc board tương thích, 8MB PSRAM để có bộ nhớ mở rộng, cổng kết nối VGA hoặc HDMI, module thẻ SD chạy ở chế độ SPI, và một trong hai loại bàn phím: PS/2 kết nối trực tiếp hoặc USB qua cổng USB native.

Lưu ý quan trọng: Khi bật chế độ USB HID, cổng USB native sẽ được dùng cho bàn phím và chuột. Cổng serial USB (CDC) sẽ bị vô hiệu hóa trong chế độ này, người dùng cần dùng UART để xuất log gỡ lỗi.

Cấu hình và vận hành

Việc thiết lập FRANK 386 đòi hỏi một số bước chuẩn bị cụ thể. Người dùng cần tạo thư mục 386/ trên thẻ SD và đặt vào đó các tệp cần thiết:

  • bios.bin — ROM SeaBIOS (bắt buộc)
  • vgabios.bin — ROM VGA BIOS (bắt buộc)
  • config.ini — tệp cấu hình
  • Các ảnh đĩa như dos622.img, boot.img

Tệp config.ini cho phép điều chỉnh các tham số quan trọng như dung lượng bộ nhớ, tần số CPU và tần số PSRAM. Ví dụ, người dùng có thể đặt CPU chạy ở 504 MHz và PSRAM ở 166 MHz để có hiệu năng tốt hơn.

Giao diện Disk Manager trên FRANK 386Giao diện Disk Manager trên FRANK 386

Một trong những tính năng thực dụng nhất của dự án là Disk Manager — trình quản lý đĩa ảo cho phép thay đổi ảnh đĩa ngay khi hệ thống đang chạy mà không cần khởi động lại. Người dùng chỉ cần nhấn Win+F12 để mở trình quản lý này, sau đó dùng phím mũi tên để chọn ổ đĩa (A:, B:, C:, D:, E:) và nhấn Enter để duyệt các tệp ảnh đĩa trong thư mục 386/. Mọi thay đổi sẽ được tự động lưu vào config.ini.

Bên cạnh đó, menu cài đặt mở bằng Win+F11 cho phép tùy chỉnh các thông số như dung lượng bộ nhớ (1-8MB), thế hệ CPU (386/486/586), bật/tắt FPU, chọn thiết bị âm thanh, và cả tần số xung nhịp RP2350. Đáng chú ý, FRANK 386 còn hỗ trợ tay cầm NES/SNES với chế độ mô phỏng chuột — trong đó phím D-pad di chuyển con trỏ, nút B là nhấp trái và nút A là nhấp phải.

Từ DOS đến Windows 95: Khả năng tương thích ấn tượng

Theo mô tả dự án, FRANK 386 có thể khởi động được nhiều hệ điều hành khác nhau, bao gồm DOS, Windows 3.x, Windows 95 và thậm chí cả Linux. Tuy nhiên, việc chạy Windows 95 trên phần cứng nhúng này không phải lúc nào cũng suôn sẻ. Tài liệu dự án ghi nhận một số vấn đề thường gặp:

  • Lỗi "0 bytes of memory" trong quá trình cài đặt Windows 95 — có thể khắc phục bằng cách dùng lệnh setup /im để bỏ qua kiểm tra bộ nhớ
  • Lỗi "Protection error" khi khởi động Windows 95 — cần dùng công cụ patcher9x
  • Cần bật hỗ trợ mapdrive.com (redirector) để ánh xạ thẻ SD thành ổ đĩa mạng H, với cấu hình redirector = 1 trong config.ini

Màn hình khởi động hệ điều hành trên FRANK 386Màn hình khởi động hệ điều hành trên FRANK 386

Xây dựng từ mã nguồn

Với những ai muốn tự biên dịch firmware, FRANK 386 cung cấp quy trình build khá rõ ràng. Sau khi cài đặt Raspberry Pi Pico SDK phiên bản 2.0 trở lên và toolchain ARM GCC, người dùng có thể clone kho mã nguồn và chạy script build:

git clone https://github.com/rh1tech/frank-386.git
cd frank-386
./build.sh -M1 --usb-hid

Script build.sh hỗ trợ nhiều tùy chọn như chọn board (-b M1), tốc độ CPU (-c 504), tốc độ PSRAM (-p 166), bật bàn phím USB (--usb-hid), ép đầu ra HDMI (--hdmi) và chế độ gỡ lỗi (--debug). Ngoài ra còn có script release.sh để tạo tất cả các biến thể firmware cùng lúc, phù hợp cho những ai muốn phát hành bản build cho cộng đồng.

Việc nạp firmware có thể thực hiện qua picotool hoặc script flash.sh đi kèm, với thiết bị được đưa về chế độ BOOTSEL.

Dự án mã nguồn mở dựa trên nền tảng vững chắc

FRANK 386 được phát hành dưới giấy phép MIT và là sản phẩm của các tác giả Mikhail Matveev cùng DnCraptor, với phần port và phát triển chính diễn ra trong năm 2026. Dự án được xây dựng dựa trên nhiều dự án mã nguồn mở uy tín:

  • Tiny386 của Chunhui He — cung cấp lõi giả lập CPU i386 và ngoại vi PC
  • Pico-286 của xrip — tích hợp nền tảng RP2350, quản lý đĩa, driver VGA
  • QEMU — mã giả lập ngoại vi PC như PIC 8259, PIT 8254, DMA 8257, bộ điều khiển bàn phím 8042, PCI bus và AdLib OPL2
  • MAME — bộ tạo âm thanh FM OPL (fmopl) cho giả lập AdLib
  • SeaBIOS — firmware BIOS x86 và VGA BIOS
  • FatFs — module hệ thống tệp FAT cho truy cập thẻ SD

Sự kết hợp này cho thấy FRANK 386 kế thừa những thành tựu của cộng đồng mã nguồn mở quốc tế, đồng thời bổ sung lớp tích hợp phần cứng đặc thù cho RP2350 và nền tảng Murmulator.

Ý nghĩa với cộng đồng công nghệ Việt Nam

Đối với những người yêu thích retro-computing và phần cứng nhúng tại Việt Nam, FRANK 386 mở ra cơ hội thú vị để tìm hiểu về kiến trúc PC cổ điển ngay trên phần cứng có giá thành phải chăng. Raspberry Pi Pico 2 hiện được bán khá phổ biến tại các cửa hàng linh kiện điện tử trong nước, và các board như Waveshare RP2350-PiZero cũng không quá khó tìm.

Dự án này cũng là một ví dụ sinh động cho thấy sức mạnh của vi điều khiển hiện đại — một con chip nhỏ bé có giá vài trăm nghìn đồng có thể giả lập được cả một hệ thống máy tính cá nhân từng là biểu tượng của kỷ nguyên công nghệ thập niên 1990. Với cộng đồng maker Việt Nam đang ngày càng phát triển, FRANK 386 có thể trở thành nền tảng học tập tuyệt vời về kiến trúc máy tính, hệ điều hành và lập trình nhúng.

Mã nguồn dự án có sẵn tại địa chỉ github.com/rh1tech/frank-386, cùng trang chủ chính thức tại frank.rh1.tech — nơi tập trung tất cả các board FRANK và firmware liên quan.

Chia sẻ:FacebookX
Nội dung tổng hợp bằng AI, mang tính tham khảo. Xem bài gốc ↗