Điểm:0

lỗi biên dịch trong quá trình xây dựng kernel ubuntu 5.4.0-42.46

lá cờ za

Tôi đã tải xuống nguồn Ubuntu bằng cách git clone git://kernel.ubuntu.com/ubuntu/ubuntu-focal.git. và vì tôi muốn sử dụng một phiên bản cụ thể, tôi đã git checkout Ubuntu-5.4.0-42.46 (phiên bản này là phiên bản được sử dụng trong bản cài đặt Ubuntu .iso. Xem câu hỏi liên quan tại đây: Tôi nên sử dụng phiên bản nguồn Ubuntu nào để thêm một số bản in gỡ lỗi? (để gỡ lỗi khởi động Ubuntu) )

Sau khi kiểm tra git, nhật ký git cho thấy kết quả này:

cam kết 98c4545e2d65ed35c31056f72c4da20f6b5ea0d0 (ĐẦU, thẻ: Ubuntu-5.4.0-42.46)
Tác giả: Khalid Elmously <[email protected]>
Ngày: Thứ năm 9 tháng 7 19:50:26 2020 -0400

    UBUNTU: Ubuntu-5.4.0-42.46
    
    Người ký tắt: Khalid Elmously <[email protected]>

Để xây dựng hạt nhân, tôi đã làm ARCH=arm64 CROSS_COMPILE=aarch64-none-elf- thực hiện defconfigARCH=arm64 CROSS_COMPILE=aarch64-none-elf- make -j24 Hình ảnh. Nhưng điều này mang lại cho tôi một lỗi biên dịch bên dưới. Điều gì có thể sai?

  . 
  . 
  CC mm/interval_tree.o
  Trình điều khiển CC/cơ sở/regmap/regcache.o
  Hạt nhân CC/thời gian/posix-cpu-timers.o
  CC mm/list_lru.o
  Khối CC/blk-mq.o
  AS vòm/arm64/lib/memchr.o
  CC fs/ext4/migrate.o
security/security.c: Trong chức năng 'security_add_hooks':
security/security.c:477:25: lỗi: 'struct security_hook_heads' không có thành viên nào có tên 'socket_getpeersec_stream'
  477 | &security_hook_heads.socket_getpeersec_stream)
      | ^
  Hạt nhân CC/thời gian/posix-clock.o
  AS vòm/arm64/lib/memcmp.o
security/security.c: Trong chức năng 'security_setprocattr':
  CC vòm/arm64/kvm/../../../virt/kvm/arm/vgic/vgic-v2.o
security/security.c:2058:27: lỗi: 'union security_list_options' không có thành viên nào tên là 'socket_getpeersec_stream'
 2058 | socket_getpeersec_stream.socket_getpeersec_stream = NULL;
      | ^
Trong tệp bao gồm từ ./include/linux/timer.h:5,
                 từ ./include/linux/workqueue.h:9,
                 từ ./include/linux/bpf.h:9,
                 từ bảo mật/bảo mật.c:13:
security/security.c:2060:25: lỗi: 'struct security_hook_heads' không có thành viên nào có tên 'socket_getpeersec_stream'
 2060 | &security_hook_heads.socket_getpeersec_stream,
      | ^
./include/linux/list.h:857:12: lưu ý: theo định nghĩa của macro 'hlist_entry_safe'
  857 | ({ typeof(ptr) ____ptr = (ptr); \
      | ^~~
security/security.c:2059:3: lưu ý: trong phần mở rộng của macro 'hlist_for_each_entry'
 2059 | hlist_for_each_entry(hp,
      | ^~~~~~~~~~~~~~~~~~~~~~
security/security.c:2060:25: lỗi: 'struct security_hook_heads' không có thành viên nào có tên 'socket_getpeersec_stream'
 2060 | &security_hook_heads.socket_getpeersec_stream,
      | ^
./include/linux/list.h:857:28: lưu ý: theo định nghĩa của macro 'hlist_entry_safe'
  857 | ({ typeof(ptr) ____ptr = (ptr); \
      | ^~~
security/security.c:2059:3: lưu ý: trong phần mở rộng của macro 'hlist_for_each_entry'
 2059 | hlist_for_each_entry(hp,
      | ^~~~~~~~~~~~~~~~~~~~~~
Trong tệp bao gồm từ ./include/linux/list.h:9,
                 từ ./include/linux/timer.h:5,
                 từ ./include/linux/workqueue.h:9,
                 từ ./include/linux/bpf.h:9,
                 từ bảo mật/bảo mật.c:13:
./include/linux/kernel.h:993:17: cảnh báo: truyền tới con trỏ từ số nguyên có kích thước khác [-Wint-to-pointer-cast]
  993 | khoảng trống *__mptr = (khoảng trống *)(ptr); \
      | ^
./include/linux/list.h:847:40: lưu ý: trong phần mở rộng của macro 'container_of'
  847 | #define hlist_entry(ptr, loại, thành viên) container_of(ptr, loại, thành viên)
      | ^~~~~~~~~~~~~
  . 
  . 

Khi tôi làm tương tự với nguồn linux-5.4.21, nó sẽ biên dịch tốt.

Điểm:0
lá cờ za

Tôi thấy Ubuntu có cách riêng để xây dựng toàn bộ Ubuntu bao gồm cả kernel. Nó được hiển thị ở đây: https://wiki.ubuntu.com/Kernel/BuildYourOwnKernel

Phương pháp đúng cho trường hợp arm64 là (từ trang trên)

LANG=C fakeroot debian/rules ARCH=arm64 clean
# xây dựng nhanh hơn:
LANG=C fakeroot debian/rules ARCH=arm64 binary-headers binary-generic binary-perarch
# nếu bạn cần các công cụ linux hoặc kernel có độ trễ thấp, hãy chạy thay thế:
LANG=C fakeroot debian/rules ARCH=arm64 nhị phân

Bạn có thể thêm thông tin gỡ lỗi bằng lệnh này (từ trang trên):

sudo apt-get cài đặt pkg-config-dbgsym
LANG=C fakeroot debian/quy sạch
LANG=C fakeroot debian/rules binary-headers binary-generic binary-perarchskipdbg=false

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.