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 defconfig
và ARCH=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.