2012-04-02 33 views
9

Tôi rất mới với điều này hạt nhân. Những gì tôi muốn làm là chỉ cần thêm một cuộc gọi hệ thống mới cho hạt nhân. Tôi đã làm theo hướng dẫn này: http://hekimian-williams.com/?p=20.Thêm một cuộc gọi hệ thống mới trong hạt nhân Linux 3.3

Sự cố có ở syscall_table_32.S tệp dưới arch/x86/kernel, nhưng tôi không thể tìm thấy tệp cho hệ thống x86 trong phiên bản kernel 3.3. Tôi vẫn cần chỉnh sửa tệp và thêm một dòng nữa cho cuộc gọi hệ thống mới được thêm vào không? Hoặc tôi có cần phải làm điều gì khác để cho hạt nhân biết về cuộc gọi hệ thống mới của tôi không? Bất kỳ trợ giúp sẽ được đánh giá cao. Cảm ơn bạn.

Trả lời

7

Làm thế nào để thêm một hạt nhân Linux API mới trong phiên bản 3.3? - đối với 64 bit OS

  • lấy mã hạt nhân từ www.kernel.org.

wget http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.3.1.tar.bz2

  • Upzip nó với lệnh 'tar xvfj XXX”vào một thư mục Ví dụ:/root/kernel tar xvfj linux-3.3.1.tar.bz2

  • Chỉnh sửa tệp “/root/kernel/linux-3.3.1/arch/x86/syscalls/syscall_64.tbl” Thêm dòng mới

312 64 husky1 sys_husky1

  • Chỉ cần nạp file “/root/kernel/linux-3.3.1/include/linux/syscalls.h” Thêm khai báo hàm mới

asmlinkage sys_husky1 dài (int fd);

trước dòng “#endif”

  • Thêm một tập tin c mới dưới “/root/kernel/linux-3.3.1/arch/x86/kernel” (Tôi đang sử dụng x86 CPU) Ví dụ:

  • chỉnh sửa “/root/kernel/linux-3.3.1/arch/x86/kernel/Makefile” Thêm một dòng mới “obj-y + = husky.o”

  • goto /root/kernel/linux-3.3.1 thư mục và chạy lệnh “ make –j8 ”

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