Tôi đã tạo một script đóng gói lại để chạy ứng dụng Codex trên Windows ARM64
(github.com/airtaxi)Gần đây tôi đã mua một chiếc ASUS Zenbook A16. Hiệu năng rất tốt và tôi cũng rất hài lòng với thời lượng pin.
Nhưng đúng lúc đó, tôi cảm thấy chính sách giá mới của GitHub Copilot theo tiêu chí của mình là hơi khó chấp nhận, nên bắt đầu chuyển tác nhân lập trình chính sang phía OpenAI Codex. Codex CLI hỗ trợ Windows ARM64 nên chạy khá ổn. Vấn đề nằm ở ứng dụng Codex. Phiên bản Windows được phân phối qua Microsoft Store chỉ cung cấp bản x64, nên trên Windows ARM64 toàn bộ ứng dụng Electron phải chạy bằng giả lập.
Nếu chỉ là kiểu “hiển thị kiến trúc là x64” thì còn có thể bỏ qua, nhưng trên thực tế độ trễ khi nhập liệu và việc UI bị khựng khá khó chịu. Codex CLI thì chạy ARM64 tốt, trong khi chính ứng dụng Codex lại là x64 giả lập, nên cảm giác càng đáng tiếc hơn.
Dù sao đây cũng là một ứng dụng Electron, và ở phía Linux cũng đã có những trường hợp lách tương tự bằng cách đặt tài nguyên ứng dụng upstream lên một runtime Electron mới, nên tôi nghĩ có lẽ cũng có thể đóng gói lại cho Windows ARM64. Vì vậy tôi đã tạo một script PowerShell lấy ứng dụng Codex Windows x64 chính thức từ bản cài đặt, thay thế bằng runtime ARM64 và các mô-đun native, rồi đóng gói lại thành MSIX tự ký.
Kho lưu trữ ở đây.
https://github.com/airtaxi/codex-app-windows-arm64
Cách làm hiện tại đại khái như sau.
- Sử dụng gói Codex x64 chính thức được cài từ Microsoft Store làm nguồn.
- Thay runtime Electron bằng
win32-arm64. - Thay Node.js bằng
win-arm64. - Rebuild các mô-đun native chạy in-process như
better-sqlite3,node-ptysang ARM64. - Thay các helper có sẵn asset ARM64 như
codex.exe,codex-command-runner.exe, sandbox setup helper,rg.exebằng phiên bản ARM64. - Các công cụ out-of-process mà tôi vẫn chưa tìm được bản thay thế ARM64 như
node_repl.exe,tectonic.exethì để fallback sang giả lập x64. windows-updater.nodebị loại bỏ vì chức năng cập nhật không phù hợp với gói tự ký.- Cuối cùng tạo ARM64 MSIX bằng
makeappx.exevàsigntool.exe, cònInstall.batsẽ xử lý việc đăng ký tin cậy chứng chỉ và cài đặt.
Trong phần phát hành tôi cũng đã đính kèm dist.7z do mình build. Chỉ cần giải nén rồi chạy Install.bat.
https://github.com/airtaxi/codex-app-windows-arm64/…
Liên quan đến việc này, tôi cũng đã để lại bình luận trong issue bên openai/codex.
https://github.com/openai/codex/issues/17491#issuecomment-4369034462
Nếu sau này có hỗ trợ Windows ARM64 chính thức thì lý do tồn tại của dự án này gần như sẽ biến mất. Trước thời điểm đó, tôi dự định sẽ cố gắng duy trì nó theo mỗi lần phiên bản ứng dụng Codex được nâng lên.
Nếu bạn từng thấy khó chịu vì ứng dụng Codex phải chạy giả lập x64 trên thiết bị Windows on ARM, có lẽ bạn nên thử một lần.
Chưa có bình luận nào.