Một Ngày Vật Lộn Cùng Link Station Pro
Bài viết này dành cho các bạn tìm đến từ công cụ tìm kiếm. Mình đoán chắc vẫn còn nhiều người có ý tưởng giống mình: biến chiếc Link Station Pro thành một thiết bị gateway ADSL thông qua việc nạp firmware tùy chỉnh.
Vài ngày trước, mình đã thực hiện theo hướng dẫn trong một bài viết trên diễn đàn để nâng cấp firmware của Link Station Pro lên nhân Linux 2.6.26. Mình cứ tưởng đã có sẵn một bản kernel “khủng” được biên dịch sẵn từ cao nhân nào đó, đủ sức đáp ứng mọi ý tưởng “phá phách” của mình. Nhưng hôm nay, khi thử cài đặt pppoeconf để cho LS Pro tự động thực hiện kết nối PPPoE, mình mới tá hỏa phát hiện ra bản kernel này lại thiếu hỗ trợ PPP từ tận trong “ruột” nhân hệ điều hành!
Sau cả buổi trời lùng sục Google mà chẳng tìm được bản kernel nào phù hợp, mình quyết định tự tay “gánh” công việc này. Dù trước đây chỉ chuyên sâu với FreeBSD và tiếp xúc rất ít với Linux (mặt buồn rười rượi), nhưng nhờ đang trong kỳ nghỉ nên mình quyết tâm “tự lực tự cường”.
Vì không muốn phân vùng máy tính, mình cài Ubuntu thông qua Wubi - công cụ cài đặt Ubuntu ngay trên Windows. Tuy nhiên, quá trình khởi động lại gặp sự cố khi màn hình chỉ hiển thị dòng “…upper memory…” rồi đơ trệch. May mắn thay, mình tìm được hướng giải quyết thông qua một bài viết trên mạng.
Mục đích cài Ubuntu là để thiết lập môi trường cross-compilation. Mình biết rõ việc biên dịch chéo trên Windows sẽ còn phức tạp hơn nhiều. Tuy nhiên, đây là lần đầu tiên tiếp xúc với quy trình này, nên việc thiết lập môi trường biên dịch đã là một thử thách không tưởng. Không có ai để hỏi, đành cắn răng tra Google và tham khảo nhiều trang hướng dẫn khác nhau. Cuối cùng, mình nhận ra hướng dẫn từ Emdebian là dễ hiểu nhất dành cho người “tay ngang” như mình.
Tuy nhiên, tài liệu Emdebian lại dựa trên gcc-4.3, trong khi Ubuntu 8.04 của mình không tương thích do thiếu các thư viện cần thiết. Sau nhiều lần thất bại, mình quyết định hạ cấp xuống gcc-4.2 và mọi thứ bắt đầu “vào guồng”.
Tiếp theo, mình tải mã nguồn kernel 2.6.26 từ kernel.org (đành từ bỏ ý định clone qua git vì tốc độ mạng quá chậm). Dựa theo bài viết hướng dẫn build kernel, mình trải qua một chuỗi ngày vật lộn với cấu trúc kernel Linux còn quá xa lạ. Nhưng cuối cùng, sau bao lần thử nghiệm, mình đã thành công trong việc biên dịch các module ppp, pppoe và tích hợp đầy đủ các driver cần thiết.
Khi chép kernel mới vào thiết bị, tim mình đập thình thịch vì lo lắng phải quay lại chế độ EM recovery nếu có sự cố. Sau khi kiểm tra kỹ lưỡng từng bước, mình tiến hành nâng cấp và… thành công rực rỡ! :D
Bài viết này như một dấu mốc kỷ niệm, đồng thời chứng minh rằng việc tùy biến Link Station Pro hoàn toàn khả thi. Hy vọng sẽ tiếp thêm động lực cho các bạn đam mê “độ” thiết bị mạng như mình.
P/s: Loạt bài hướng dẫn về Makefile sẽ tiếp tục sau kỳ nghỉ lễ dài sắp tới.