Danh thiếp của tôi đang chạy Linux

Dịch một bài viết từ blog kỹ sư George Hilliard

Danh thiếp của tôi đang chạy Linux
Có thể nhấp

Tôi là kỹ sư hệ thống nhúng. Trong thời gian rảnh rỗi, tôi thường tìm kiếm thứ gì đó có thể được sử dụng trong việc thiết kế các hệ thống trong tương lai hoặc thứ gì đó theo sở thích của tôi.

Một lĩnh vực như vậy là các máy tính giá rẻ có thể chạy Linux và càng rẻ thì càng tốt. Vì vậy, tôi đã đào sâu một số bộ xử lý ít người biết đến.

Tôi nghĩ, “Những bộ xử lý này rẻ đến mức gần như có thể được tặng miễn phí.” Và sau một thời gian, tôi nảy ra ý tưởng làm một tấm danh thiếp đơn giản cho Linux dưới dạng danh thiếp.

Khi tôi nghĩ về điều đó, tôi quyết định rằng đó sẽ là một điều thực sự thú vị để làm. tôi đã cưa điện tử danh thiếp để và chúng có nhiều khả năng thú vị khác nhau, chẳng hạn như mô phỏng thẻ flash, bóng đèn nhấp nháy hoặc thậm chí truyền dữ liệu không dây. Tuy nhiên, tôi chưa thấy danh thiếp có hỗ trợ Linux.

Thế là tôi tự làm cho mình một cái.

Đây là phiên bản hoàn thiện của sản phẩm. Một máy tính ARM tối thiểu hoàn chỉnh chạy phiên bản Linux tùy chỉnh của tôi được xây dựng bằng Buildroot.

Danh thiếp của tôi đang chạy Linux

Nó có một cổng USB ở góc. Nếu bạn kết nối nó với máy tính, nó sẽ khởi động trong khoảng 6 giây và hiển thị dưới dạng thẻ flash và cổng nối tiếp ảo mà qua đó bạn có thể đăng nhập vào vỏ thẻ. Trên ổ đĩa flash có một tệp README, một bản sao sơ ​​yếu lý lịch của tôi và một số bức ảnh của tôi. Shell có một số trò chơi, các trò chơi kinh điển của Unix như Fortune and Rogue, một phiên bản nhỏ của trò chơi 2048 và trình thông dịch MicroPython.

Tất cả điều này được thực hiện bằng cách sử dụng một chip flash rất nhỏ 8 MB. Bộ tải khởi động có kích thước 256 KB, kernel chiếm 1,6 MB và toàn bộ hệ thống tệp gốc chiếm 2,4 MB. Do đó, còn rất nhiều dung lượng cho ổ flash ảo. Ngoài ra còn có một thư mục chính có thể ghi được trong trường hợp bất kỳ ai làm bất cứ điều gì họ muốn lưu. Tất cả điều này cũng được lưu trên một chip flash.

Toàn bộ thiết bị có giá dưới 3 USD. Nó đủ rẻ để cho đi. Nếu bạn nhận được một thiết bị như vậy từ tôi, điều đó có nghĩa là rất có thể tôi đang cố gắng gây ấn tượng với bạn.

Thiết kế và xây dựng

Tôi tự thiết kế và lắp ráp mọi thứ. Đó là công việc của tôi và tôi yêu thích nó, và phần lớn thử thách là tìm kiếm những bộ phận đủ rẻ cho sở thích.

Việc lựa chọn bộ xử lý là quyết định quan trọng nhất ảnh hưởng đến chi phí và tính khả thi của dự án. Sau khi nghiên cứu sâu rộng, tôi đã chọn F1C100, một bộ xử lý tương đối ít được biết đến của Allwinner nhưng được tối ưu hóa về mặt chi phí (tức là cực kỳ rẻ). Cả RAM và CPU đều nằm trong cùng một gói. Tôi đã mua bộ xử lý trên Taobao. Tất cả các thành phần khác được mua từ LCSC.

Tôi đã đặt hàng các bảng từ JLC. Họ làm cho tôi 8 bản với giá 10 đô la. Chất lượng của chúng rất ấn tượng, đặc biệt là về giá cả; không gọn gàng như của OSHPark nhưng nhìn vẫn đẹp.

Tôi đã làm mẻ màu đen mờ đầu tiên. Chúng trông đẹp nhưng rất dễ bị bẩn.

Danh thiếp của tôi đang chạy Linux

Có một vài vấn đề với đợt đầu tiên. Đầu tiên, đầu nối USB không đủ dài để vừa khít với bất kỳ cổng USB nào. Thứ hai, các rãnh flash được tạo không chính xác, nhưng tôi đã khắc phục được điều này bằng cách uốn cong các điểm tiếp xúc.

Danh thiếp của tôi đang chạy Linux

Sau khi kiểm tra mọi thứ đều hoạt động tốt, tôi đặt mua một lô bảng mới; Bạn có thể xem ảnh của một trong số họ ở đầu bài viết.

Do kích thước nhỏ của tất cả các thành phần nhỏ này, tôi quyết định sử dụng phương pháp hàn nóng chảy lại bằng cách sử dụng bếp giá rẻ. Tôi có máy cắt laze nên tôi đã sử dụng nó để cắt giấy nến hàn ra khỏi màng ép. Các stencil hóa ra khá tốt. Các lỗ có đường kính 0,2 mm dành cho các điểm tiếp xúc của bộ xử lý cần được chăm sóc đặc biệt để đảm bảo quá trình sản xuất chất lượng cao - điều quan trọng là phải lấy nét tia laser một cách chính xác và chọn công suất của nó.

Danh thiếp của tôi đang chạy Linux
Các bảng khác hoạt động tốt để giữ bảng trong khi dán.

Tôi bôi keo hàn và định vị các bộ phận bằng tay. Tôi đảm bảo rằng chì không được sử dụng ở bất kỳ đâu trong quy trình - tất cả các bo mạch, linh kiện và miếng dán đều đáp ứng tiêu chuẩn RoHS - để lương tâm không dằn vặt khi phân phát cho mọi người.

Danh thiếp của tôi đang chạy Linux
Tôi đã mắc một lỗi nhỏ với lô này, nhưng miếng dán hàn đã tha thứ cho những sai sót và mọi thứ đều ổn

Mỗi thành phần mất khoảng 10 giây để định vị, vì vậy tôi đã cố gắng giữ số lượng thành phần ở mức tối thiểu. Thông tin chi tiết hơn về thiết kế bản đồ có thể được đọc ở phần khác bài viết chi tiết của tôi.

Danh sách vật liệu và chi phí

Tôi bị mắc kẹt với một ngân sách nghiêm ngặt. Và tấm danh thiếp hóa ra đúng như dự định - Tôi không ngại cho nó đi! Tất nhiên, tôi sẽ không đưa nó cho mọi người vì phải mất thời gian để tạo ra mỗi bản sao và thời gian của tôi không được tính vào chi phí của danh thiếp (nó gần như miễn phí).

Thành phần
Цена

F1C100
$1.42

PCB
$0.80

đèn flash 8MB
$0.17

Tất cả các thành phần khác
$0.49

trong tổng số
$2.88

Đương nhiên, cũng có những chi phí khó tính toán, chẳng hạn như chi phí giao hàng (vì nó được phân bổ giữa các thành phần dành cho một số dự án). Tuy nhiên, đối với một bo mạch hỗ trợ Linux thì chắc chắn nó khá rẻ. Bảng phân tích này cũng cho bạn ý tưởng hay về việc các công ty phải tốn bao nhiêu tiền để sản xuất thiết bị ở phân khúc giá thấp nhất: bạn có thể chắc chắn rằng chi phí của các công ty thậm chí còn thấp hơn chi phí của tôi!

Khả năng

Phải nói gì? Thẻ khởi động Linux bị loại bỏ rất nhiều trong 6 giây. Do yếu tố hình thức và giá thành, thẻ không có I/O, hỗ trợ mạng hoặc bất kỳ dung lượng lưu trữ đáng kể nào để chạy các chương trình nặng. Tuy nhiên, tôi đã cố gắng nhồi nhét rất nhiều điều thú vị vào hình ảnh phần sụn.

USB

Có rất nhiều điều thú vị có thể được thực hiện với USB, nhưng tôi đã chọn tùy chọn đơn giản nhất để mọi người có nhiều khả năng làm cho nó hoạt động hơn nếu họ quyết định dùng thử danh thiếp của tôi. Linux cho phép thẻ hoạt động như một "thiết bị" có hỗ trợ Khung tiện ích. Tôi đã lấy một số trình điều khiển từ các dự án trước đó có bộ xử lý này, vì vậy tôi có quyền truy cập vào tất cả chức năng của khung tiện ích USB. Tôi quyết định mô phỏng ổ đĩa flash được tạo trước và cấp quyền truy cập shell thông qua cổng nối tiếp ảo.

Vỏ

Sau khi đăng nhập bằng root, bạn có thể chạy các chương trình sau trên bảng điều khiển nối tiếp:

  • rogue: một trò chơi phiêu lưu khám phá hầm ngục Unix cổ điển;
  • 2048: một trò chơi đơn giản năm 2048 ở chế độ bảng điều khiển;
  • vận may: đầu ra của nhiều câu nói tự phụ khác nhau. Tôi quyết định không đưa toàn bộ cơ sở dữ liệu trích dẫn vào đây để nhường chỗ cho các tính năng khác;
  • cuộc chạy bộ: Một trình thông dịch Python rất nhỏ.

Mô phỏng ổ đĩa flash

Trong quá trình biên dịch, các công cụ xây dựng tạo ra một hình ảnh FAT32 nhỏ và thêm nó làm một trong các phân vùng UBI. Hệ thống con tiện ích Linux trình bày PC của anh ấy như một thiết bị lưu trữ.

Nếu bạn muốn xem những gì xuất hiện trên ổ đĩa flash, cách dễ nhất để làm điều này là đọc nguồn. Ngoài ra còn có một số bức ảnh và sơ yếu lý lịch của tôi.

Tài nguyên

Nguồn

Cây Buildroot của tôi được đăng trên GitHub - ba mươi ba mươi/businesscard-linux. Có mã để tạo hình ảnh flash NOR, được cài đặt bằng chế độ tải xuống USB của bộ xử lý. Nó cũng có tất cả các định nghĩa gói cho trò chơi và các chương trình khác mà tôi đã đưa vào Buildroot sau khi mọi thứ hoạt động. Nếu bạn quan tâm đến việc sử dụng F1C100 trong dự án của mình thì đây sẽ là điểm khởi đầu tuyệt vời (cứ thoải mái hỏi tôi những câu hỏi).
Tôi đã sử dụng dự án thi công đẹp Linux v4.9 dành cho F1C100 của Icenowy, được thiết kế lại một chút. Thẻ của tôi chạy gần như chuẩn v5.2. Nó có trên GitHub - ba mươi ba mươi/linux.
Tôi nghĩ rằng tôi có cổng U-Boot tốt nhất cho F1C100 trên thế giới hiện nay và nó cũng một phần dựa trên công việc của Icenowy (thật ngạc nhiên, để U-Boot hoạt động bình thường là một nhiệm vụ khá khó chịu). Bạn cũng có thể lấy nó trên GitHub - ba mươi ba mươi/u-boot.

Tài liệu dành cho F1C100

Tôi tìm thấy tài liệu khá thưa thớt về F1C100 và tôi đăng nó ở đây:

Tôi đang tải nó lên cho những người tò mò. sơ đồ dự án của tôi.

Danh thiếp của tôi đang chạy Linux

Kết luận

Tôi đã học được rất nhiều điều trong quá trình phát triển dự án này - đây là dự án đầu tiên của tôi sử dụng lò hàn nóng chảy lại. Tôi cũng đã học cách tìm tài nguyên cho các thành phần có tài liệu kém.

Tôi đã sử dụng kinh nghiệm hiện có của mình với Linux nhúng và kinh nghiệm phát triển bo mạch. Dự án không phải không có sai sót nhưng nó thể hiện tốt tất cả các kỹ năng của tôi.

Đối với những người quan tâm đến chi tiết làm việc với Linux nhúng, tôi khuyên bạn nên đọc loạt bài viết của tôi về vấn đề này: Làm chủ Linux nhúng. Ở đó tôi nói chi tiết về cách tạo phần mềm và phần cứng từ đầu cho các hệ thống Linux nhỏ và rẻ, tương tự như thẻ điện thoại của tôi.

Nguồn: www.habr.com

Thêm một lời nhận xét