ฉันกำลังติดตามตัวอย่างแรกของ Hello World LKM และตอนนี้ฉันต้องรวบรวมมัน
ตามหนังสือ Makefile จะต้องเป็นดังนี้:
obj-m+=hello_world.o
ทั้งหมด:
สร้างโมดูล -C /lib/modules/$(shell uname -r)/build/ M=$(pwd)
ทำความสะอาด:
ทำให้ -C /lib/modules/$(shell uname -r)/build/ M=$(pwd) สะอาด
แล้วคุณต้องวิ่ง ทำ
(และมันบอกว่าคุณไม่วิ่ง sudo ทำ
หรือคุณจะคอมไพล์ส่วนหัวของเคอร์เนล Linux ใหม่ทั้งหมด)
เมื่อเรียกใช้สิ่งนี้ผลลัพธ์:
ทำโมดูล -C /lib/modules/5.10.63+/build/ M=
ทำ [1]: เข้าสู่ไดเร็กทอรี '/usr/src/rpi-5.10.y'
/bin/sh: 1: ไม่สามารถสร้าง include/generated/uapi/linux/.version.h.tmp: การอนุญาตถูกปฏิเสธ
UPD รวม/สร้าง/uapi/linux/version.h
mv: ไม่สามารถ stat 'include/generated/uapi/linux/.version.h.tmp': ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว
make[1]: *** [Makefile:1277: include/generated/uapi/linux/version.h] ข้อผิดพลาด 1
ทำ [1]: ออกจากไดเร็กทอรี '/usr/src/rpi-5.10.y'
ทำ: *** [Makefile:4: ทั้งหมด] ข้อผิดพลาด 2
และถ้าฉันวิ่ง sudo ทำ
หรือเปลี่ยนคำสั่ง Makefile โดย sudo ทำให้ -C ...
มันไม่มีวันสิ้นสุด (>2 ชม. และยังคงรอ)
ฉันวิ่งไม่ได้ sudo apt ติดตั้ง linux-headers-'uname -r'
(ละเว้น ' พวกเขาเป็น ` แต่ฉันวางที่นี่ไม่ได้) เนื่องจากเคอร์เนลเป็นเคอร์เนลสุดท้าย (5.10.63+) แต่ฉันได้ทำตามขั้นตอนทั้งหมดในหนังสือที่บอกวิธีรวบรวมเคอร์เนล Linux ทั้งหมดด้วยตนเอง ส่วนหัว ดังนั้นฉันควรจะมีพวกเขา
ความคิดใด ๆ หากคุณต้องการข้อมูลเพิ่มเติมเพียงบอกฉันว่าฉันต้องเรียกใช้คำสั่งใดและฉันจะแนบผลลัพธ์
ขอบคุณ!