Làm thế nào để viết trực tiếp vào bộ đệm khung của Linux?Làm thế nào để viết trực tiếp vào bộ đệm khung của Linux?
7
A
Trả lời
8
nhìn vào FBIOPUT_VSCREENINFO, ioctl và mmap
(Tôi có mã nhưng không phải ở máy này, xin lỗi)
chỉnh sửa: điều này sẽ giúp bạn bắt đầu
//open file descriptor and get info
inf fdScreen = open("devicename", O_RDWR);
fb_var_screeninfo varInfo;
ioctl(fdScreen, FBIOGET_VSCREENINFO, &varInfo);
//set resolution/dpi/color depth/.. in varInfo, then write it back
ioctl(fdScreen, FBIOPUT_VSCREENINFO, &varInfo);
//get writable screen memory; unsigned short here for 16bit color
unsigned short* display = mmap(0, nScreenSize,
PROT_READ | PROT_WRITE, MAP_SHARED, fdScreen, 0);
4
Bạn đang tìm cách viết trình điều khiển thiết bị? Nếu vậy kiểm tra hướng dẫn HowTo này
+0
Cũng đọc tệp Tài liệu/fb/framebuffer.txt (và các tài liệu liền kề cho các trình điều khiển cụ thể) trong linux kernel tree. –
6
Về cơ bản bạn mở/dev/fb0, thực hiện một số ioctls trên nó, sau đó mmap nó. Sau đó, bạn chỉ cần viết vào khu vực mmap'd trong quá trình của bạn.
Các vấn đề liên quan
- 1. Làm thế nào để truy cập vào bộ đệm Framebuffer Linux trong Mono (Mono.Cairo/GTK #)?
- 2. Làm thế nào để tràn bộ đệm ổ cắm Linux?
- 3. Làm thế nào tôi có thể chuyển bộ đệm âm thanh để phát trực tiếp
- 4. Ghi vào bộ đệm khung
- 5. Windows: Viết trực tiếp vào các bộ phận CD-R
- 6. Viết trực tiếp vào đĩa bằng php
- 7. Xử lý bộ đệm gốc bộ đệm trực tiếp trong Java cho JOGL
- 8. nén trên bộ đệm trực tiếp java nio
- 9. Truy cập bộ nhớ trực tiếp trong Linux
- 10. Làm thế nào để vẽ đồ thị trong bộ đệm khung bằng ngôn ngữ c ..?
- 11. Tiêm bộ đệm khung
- 12. làm thế nào để trực tiếp logger python vào Listbox của Tkinker?
- 13. Đầu vào nối tiếp được lưu vào bộ đệm dòng
- 14. Làm thế nào để đọc bộ đệm vòng trong không gian hạt nhân Linux?
- 15. Viết STRINGS vào cổng nối tiếp trong C++ linux
- 16. Bể bơi đệm được ánh xạ/Bể đệm đệm trực tiếp là gì và làm cách nào để tăng kích thước của chúng?
- 17. Nối tiếp tăng tiếp trực tiếp vào mảng char
- 18. Làm thế nào để mmap một bộ đệm hạt nhân Linux để không gian người dùng?
- 19. Nhiều bộ đệm logic trong một bộ đệm khung thực
- 20. Làm thế nào để unbind kết cấu từ một bộ đệm khung
- 21. Bộ nhớ đệm DNS trong linux
- 22. Làm thế nào để giám sát bộ nhớ đệm UDP Linux có sẵn?
- 23. Làm cách nào để ghi trực tiếp vào luồng StdOut của chương trình trong C#?
- 24. Làm thế nào để có được đầu vào bàn phím trực tiếp trong C + +?
- 25. Làm thế nào để dọn sạch bộ nhớ đệm I/O đĩa trên Linux
- 26. Lập trình thiết bị Linux - Đọc trực tiếp từ/Dev
- 27. cách viết ostringstream trực tiếp tới cout
- 28. Làm cách nào để ngăn chặn MMAP lưu vào bộ nhớ đệm?
- 29. Sử dụng read() trực tiếp vào C++ std: vector
- 30. Làm thế nào để xóa bộ nhớ cache/bộ nhớ đệm in trên MacOSX
wiki tiếng Đức liệt kê một ví dụ hoàn chỉnh http://de.wikipedia.org/wiki/Framebuffer#Linux-Framebuffer – relascope