2009-06-10 42 views
8

Tôi muốn mã trình điều khiển trong C trong os linux, mặc dù tôi nghĩ rằng nó rất khó khăn. Tôi có thể nhận được một số gợi ý về cách bắt đầu hoặc sách để theo dõi không? Trình điều khiển có thể được từ cổng USB của tôi với card đồ họa !!cách mã trình điều khiển?

Tôi biết nơi tôi có thể tìm kiếm sách, tôi muốn biết những kiến ​​thức cơ bản mà tôi nên bắt đầu. Tôi có cần có kiến ​​thức về phần cứng và những cuốn sách cụ thể nào tốt cho người mới như tôi không?

+9

bắt đầu không kết thúc mọi câu bằng "!!". ;-) –

Trả lời

4

thử amazon !! có rất nhiều sách dành cho tài xế. một số có mẫu 2 !!

+5

Tại sao lại là downvote? Tôi thích cách phong cách phù hợp với câu hỏi. – aib

+1

Bởi vì nó không được coi là * hữu ích *, tôi nghĩ vậy. – Roddy

7

"Linux Device Drivers" (sách O'Reilley) của Rubini và Corbet là cuốn sách cuối cùng dành cho Trình điều khiển thiết bị Linux.

Tuyệt! xem phiên bản pdf miễn phí trong câu trả lời của Roddy & bình luận của kristina!

+1

Ấn bản thứ ba cũng có sẵn trực tuyến miễn phí tại http://lwn.net/Kernel/LDD3/. – kristina

3

Trước khi bạn bắt đầu thiết kế trình điều khiển, trước tiên bạn nên có các kỹ năng C đặc biệt và có thể là một số bí quyết về hạt nhân Linux. Trình điều khiển desigining không phải là tầm thường và có thể làm bạn sợ nếu bạn không quen với việc lập trình ở mức độ thấp.

Tôi có thể khuyên bạn nên The C programming Language nếu bạn không quen với C, theo ý kiến ​​của tôi, mồi trên C nếu bạn có một số nền tảng lập trình.

+4

Kỹ năng Solid C chắc chắn là một ý tưởng hay, nhưng không có gì đáng sợ về phát triển nhân và trình điều khiển. Cổ phần chỉ cao hơn khi bạn mắc lỗi. :-) –

5

Một số văn bản:

  • Essential Linux Device Drivers (Tôi thật sự rất thích cái này Nó có một phần giới thiệu mạnh mẽ trên Linux và cách trình điều khiển thiết bị thường làm việc..)
  • Linux Device Drivers (The "chuẩn" với một free pdf link như đề cập bởi những người khác)
  • Understanding the Linux Kernel (các bạn còn dành ở đây, thì tốt hơn bạn cần phải thực sự hiểu được những hạt nhân. Điều này sẽ giúp.)
0

Chỉ cần nhìn vào mã nguồn của trình điều khiển hiện tại. Tôi đã viết trình điều khiển usb rndis của tôi bằng cách chỉ đọc các ý kiến ​​đưa trên các mã.

Lấy mã nguồn hạt nhân và xem thư mục/trình điều khiển. Trình điều khiển USB nằm trong thư mục usb, tuy nhiên trình điều khiển usb về mạng được cư trú trong/net/usb.

Bạn có thể tìm hiểu rất nhiều bằng cách đọc các nhận xét.

2

Drivers sự khác biệt lớn về độ phức tạp tùy thuộc vào thiết bị. Trình điều khiển USB nằm ở phía đơn giản của quang phổ; Trình điều khiển GPU rất phức tạp và thậm chí các tác giả của những trình điều khiển này thường không biết mọi thứ họ làm. Đề xuất của tôi sẽ tập trung vào các trình điều khiển cho phần cứng mà bạn quan tâm, thay vì cố gắng trở thành một phần cứng tất cả phần cứng; nó sẽ dễ dàng hơn trong thời gian dài.

Mọi câu trả lời của mọi người khác về nguồn tài liệu và nhiều thứ khác cần đọc đều là địa điểm và bạn thực sự nên chấp nhận một trong số đó.

Nhiều cộng đồng người lái xe phức tạp hơn cũng có thông tin riêng về tên miền của riêng họ. Nếu bạn muốn viết trình điều khiển GPU, các cộng đồng DRI/DRM và Mesa có các danh sách gửi thư và danh sách gửi thư riêng của họ sẽ giúp bạn rất nhiều, cũng như tài liệu của riêng họ. http://dri.freedesktop.org/ là địa điểm khởi đầu tốt, như là http://wiki.x.org/.

Hy vọng điều này sẽ hữu ích!

Các vấn đề liên quan