คำถามติดแท็ก kernel-module

2
อ่าน / เขียนไฟล์ภายในโมดูลเคอร์เนล Linux
ฉันรู้การอภิปรายทั้งหมดเกี่ยวกับสาเหตุที่ไม่ควรอ่าน / เขียนไฟล์จากเคอร์เนลแทนที่จะใช้/ procหรือnetlinkเพื่อทำเช่นนั้น ฉันต้องการอ่าน / เขียนต่อไป ฉันได้อ่าน Driving Me Nuts - สิ่งที่คุณไม่ควรทำในเคอร์เนลด้วย แต่ปัญหาก็คือว่า 2.6.30 sys_read()ไม่ได้ส่งออก SYSCALL_DEFINE3แต่มันอยู่ในห่อ ดังนั้นหากฉันใช้มันในโมดูลของฉันฉันจะได้รับคำเตือนต่อไปนี้: WARNING: "sys_read" [xxx.ko] undefined! WARNING: "sys_open" [xxx.ko] undefined! เห็นได้ชัดว่าinsmodไม่สามารถโหลดโมดูลได้เนื่องจากการเชื่อมโยงเกิดขึ้นไม่ถูกต้อง คำถาม: วิธีอ่าน / เขียนภายในเคอร์เนลหลังจาก 2.6.22 (โดยที่ sys_read() / sys_open()ไม่ถูกส่งออก) โดยทั่วไปจะใช้การเรียกระบบที่ห่อด้วยมาโครSYSCALL_DEFINEn()จากภายในเคอร์เนลได้อย่างไร?

1
ระบบย่อยไดรเวอร์ / API ใดของ Linux ที่ใช้สำหรับหน้าจอ / อุปกรณ์ตรวจสอบอย่างง่าย
ฉันกำลังพัฒนาระบบฝังตัวด้วยหน้าจอสัมผัส หน้าจอสัมผัสทำงานเป็นทั้งอินพุตและเอาต์พุตด้วยแป้นพิมพ์ "เสมือน" ที่ซ้อนทับเอาต์พุตกราฟิก ฉันมีโปรแกรมควบคุมอุปกรณ์การทำงานที่อ่านข้อมูลจากเซ็นเซอร์สัมผัสและแปลได้อย่างถูกต้องที่จะกดปุ่มที่สร้างขึ้นด้วยความช่วยเหลือของคู่มือนี้ kernel.org ฉันต้องการที่จะขยายไดรเวอร์นี้เพื่อจัดการกับภาพที่ส่งออกไปยังหน้าจอ ฉันต้องการสนับสนุนทั้ง getty และ X โดยทำซ้ำได้น้อยที่สุด ฉันกำลังเรียกใช้ตัวแปรเดเบียนที่น้อยที่สุดด้วยแพ็คเกจที่คัดสรรโดยเชอร์รี่เช่น X ที่น้อยที่สุดโปรดทราบว่าฉันไม่ได้ตั้งใจที่จะนำไดรเวอร์นี้ไปยังที่เก็บข้อมูลแม้ว่าฉันอาจทิ้งมันไว้ในที่เก็บ GitHub สาธารณะ ภาพหน้าจอที่ส่งออกจะทำในขณะนี้ผ่านการแก้ปัญหา cringy: ตัวเลือกการบูตเพื่อบังคับให้การแสดงผลกับฮาร์ดแวร์กราฟิกฝังตัวของ CPU แม้ว่าจะไม่ได้เชื่อมต่อกับจอแสดงผลและ daemon ที่ scrapes หน้าจออย่างต่อเนื่องที่บัฟเฟอร์ พิกเซลที่กำหนดไว้เพื่อสร้างภาพแป้นพิมพ์และส่งออกไปยังหน้าจอจริง สิ่งนี้ทำงานเป็นหลักฐานของแนวคิดพิสูจน์ว่าฉันเข้าใจภาษาที่อุปกรณ์หน้าจอคาดไว้อย่างถูกต้อง แต่เห็นได้ชัดว่าเหมาะสมที่สุด kernel.org ยังมีคำแนะนำสำหรับไดรเวอร์อุปกรณ์ "DRM" แต่ดูเหมือนจะเป็นเรื่องที่เกินความจำเป็นอย่างยิ่งสำหรับสิ่งที่ฮาร์ดแวร์ของฉันสามารถ: เลเยอร์ DRM ของ Linux ประกอบด้วยรหัสที่มีวัตถุประสงค์เพื่อรองรับความต้องการของอุปกรณ์กราฟิกที่ซับซ้อนโดยปกติจะประกอบด้วยท่อที่ตั้งโปรแกรมได้ซึ่งเหมาะสมกับการเร่งกราฟิก 3D ฮาร์ดแวร์ของฉันไม่มีสิ่งใดที่คล้ายกับการเร่งความเร็วแบบ 3 มิติดังนั้นฉันจึงสรุปได้ว่านี่อาจไม่ใช่สิ่งที่ฉันต้องการ ฉันควรใช้ระบบย่อย / API ใด ฉันคิดว่าคำศัพท์ที่ขาดหายไปหนึ่งชิ้นคือสิ่งที่ระงับการค้นหาของฉันไว้ แต่ข้อมูลเพิ่มเติมใด ๆ เกี่ยวกับวิธีการทำให้สำเร็จจะได้รับการชื่นชม …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.