Score:0

ข้อผิดพลาดในการคอมไพล์ระหว่างการสร้างเคอร์เนล Ubuntu 5.4.0-42.46

ธง za

ฉันดาวน์โหลดซอร์ส Ubuntu โดย โคลนคอมไพล์ git://kernel.ubuntu.com/ubuntu/ubuntu-focal.git. และเนื่องจากฉันต้องการใช้เวอร์ชันเฉพาะ ฉันจึง git ชำระเงิน Ubuntu-5.4.0-42.46 (เวอร์ชันนี้เป็นเวอร์ชันที่ใช้ในการติดตั้ง ubuntu .iso ดูคำถามที่เกี่ยวข้องที่นี่ : ฉันควรใช้เวอร์ชันต้นทางของอูบุนตูใดเพื่อเพิ่มการแก้ไขจุดบกพร่อง (สำหรับการดีบักการบูต Ubuntu) )

หลังจาก git-checkout, the บันทึกคอมไพล์ แสดงผลนี้:

กระทำ 98c4545e2d65ed35c31056f72c4da20f6b5ea0d0 (HEAD, แท็ก: Ubuntu-5.4.0-42.46)
ผู้เขียน: Khalid Elmously <[email protected]>
วันที่: พฤ. 9 ก.ค. 19:50:26 น. 2563 -0400

    อูบุนตู: Ubuntu-5.4.0-42.46
    
    ลงนามโดย: Khalid Elmously <[email protected]>

เพื่อสร้างเคอร์เนล ฉันทำ ARCH=arm64 CROSS_COMPILE=aarch64-none-elf- ทำให้ defconfig และ ARCH=arm64 CROSS_COMPILE=aarch64-none-elf- ทำ -j24 ภาพ. แต่นี่ทำให้ฉันมีข้อผิดพลาดในการรวบรวมด้านล่าง อะไรจะผิด?

  . 
  . 
  CC mm/interval_tree.o
  ไดรเวอร์ CC/base/regmap/regcache.o
  เคอร์เนล CC/time/posix-cpu-timers.o
  CC mm/list_lru.o
  บล็อก CC/blk-mq.o
  AS arch/arm64/lib/memchr.o
  CC fs/ext4/migrate.o
security/security.c: ในฟังก์ชัน 'security_add_hooks':
security/security.c:477:25: ข้อผิดพลาด: 'struct security_hook_heads' ไม่มีสมาชิกชื่อ 'socket_getpeersec_stream'
  477 | &security_hook_heads.socket_getpeersec_stream)
      | ^
  เคอร์เนล CC/time/posix-clock.o
  AS arch/arm64/lib/memcmp.o
security/security.c: ในฟังก์ชัน 'security_setprocattr':
  CC arch/arm64/kvm/../../../virt/kvm/arm/vgic/vgic-v2.o
security/security.c:2058:27: ข้อผิดพลาด: 'union security_list_options' ไม่มีสมาชิกชื่อ 'socket_getpeersec_stream'
 2058 | socket_getpeersec_stream.socket_getpeersec_stream = NULL;
      | ^
ในไฟล์รวมจาก ./include/linux/timer.h:5,
                 จาก ./include/linux/workqueue.h:9,
                 จาก ./include/linux/bpf.h:9,
                 จาก security/security.c:13:
security/security.c:2060:25: ข้อผิดพลาด: 'struct security_hook_heads' ไม่มีสมาชิกชื่อ 'socket_getpeersec_stream'
 2060 | &security_hook_heads.socket_getpeersec_stream,
      | ^
./include/linux/list.h:857:12: หมายเหตุ: ในคำจำกัดความของมาโคร 'hlist_entry_safe'
  857 | ({ ประเภท (ptr) ____ptr = (ptr); \
      | ^~~
security/security.c:2059:3: หมายเหตุ: ในการขยายมาโคร 'hlist_for_each_entry'
 2059 | hlist_for_each_entry(เอชพี,
      | ^~~~~~~~~~~~~~~~~~~~~~
security/security.c:2060:25: ข้อผิดพลาด: 'struct security_hook_heads' ไม่มีสมาชิกชื่อ 'socket_getpeersec_stream'
 2060 | &security_hook_heads.socket_getpeersec_stream,
      | ^
./include/linux/list.h:857:28: หมายเหตุ: ในคำจำกัดความของมาโคร 'hlist_entry_safe'
  857 | ({ ประเภท (ptr) ____ptr = (ptr); \
      | ^~~
security/security.c:2059:3: หมายเหตุ: ในการขยายมาโคร 'hlist_for_each_entry'
 2059 | hlist_for_each_entry(เอชพี,
      | ^~~~~~~~~~~~~~~~~~~~~~
ในไฟล์รวมจาก ./include/linux/list.h:9
                 จาก ./include/linux/timer.h:5,
                 จาก ./include/linux/workqueue.h:9,
                 จาก ./include/linux/bpf.h:9,
                 จาก security/security.c:13:
./include/linux/kernel.h:993:17: คำเตือน: ส่งไปยังตัวชี้จากจำนวนเต็มที่มีขนาดต่างกัน [-Wint-to-pointer-cast]
  993 | โมฆะ *__mptr = (โมฆะ *)(ptr); \
      | ^
./include/linux/list.h:847:40: หมายเหตุ: ในการขยายมาโคร 'container_of'
  847 | #กำหนด hlist_entry (ptr, ประเภท, สมาชิก) container_of (ptr, ประเภท, สมาชิก)
      | ^~~~~~~~~~~~~
  . 
  . 

เมื่อฉันทำเช่นเดียวกันกับซอร์ส linux-5.4.21 มันก็คอมไพล์ได้

Score:0
ธง za

ฉันพบว่าอูบุนตูมีวิธีสร้างอูบุนตูทั้งหมดรวมถึงเคอร์เนลด้วย มันแสดงอยู่ที่นี่: https://wiki.ubuntu.com/Kernel/BuildYourOwnKernel

วิธีที่ถูกต้องสำหรับเคส arm64 คือ (จากหน้าด้านบน)

LANG=C เดเบียนรูทปลอม/กฎ ARCH=arm64 สะอาด
# สร้างได้เร็วขึ้น:
LANG=C เดเบียนรูทปลอม/กฎ ARCH=arm64 ไบนารีเฮดเดอร์ ไบนารีทั่วไป ไบนารีเพอร์ราค
# ถ้าคุณต้องการ linux-tools หรือ lowlatency kernel ให้รันแทน:
LANG=C เดเบียนรูทปลอม/กฎ ARCH=arm64 ไบนารี

คุณสามารถเพิ่มข้อมูลการดีบักโดยใช้คำสั่งนี้ (จากหน้าด้านบน):

sudo apt-get ติดตั้ง pkg-config-dbgsym
LANG=C เดเบียนรูทปลอม/กฎสะอาด
LANG = C เดเบียนปลอม / กฎไบนารีส่วนหัวไบนารีทั่วไปไบนารี perarchskipdbg = เท็จ

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา