Puncte:0

eroare de compilare în timpul construirii kernelului ubuntu 5.4.0-42.46

drapel za

Am descărcat sursa ubuntu de git clone git://kernel.ubuntu.com/ubuntu/ubuntu-focal.git. și pentru că am vrut să folosesc o anumită versiune, am făcut git checkout Ubuntu-5.4.0-42.46 (această versiune este cea folosită într-o instalare ubuntu .iso. Vezi întrebarea legată aici: ce versiune sursă ubuntu ar trebui să folosesc pentru a adăuga câteva printuri de depanare? (pentru depanare la pornire ubuntu) )

După git-checkout, git log arata acest rezultat:

commit 98c4545e2d65ed35c31056f72c4da20f6b5ea0d0 (HEAD, etichetă: Ubuntu-5.4.0-42.46)
Autor: Khalid Elmously <[email protected]>
Data: Joi 9 Iul 19:50:26 2020 -0400

    UBUNTU: Ubuntu-5.4.0-42.46
    
    Semnat de: Khalid Elmously <[email protected]>

Pentru a construi nucleul, am făcut-o ARCH=arm64 CROSS_COMPILE=aarch64-none-elf- make defconfig și ARCH=arm64 CROSS_COMPILE=aarch64-none-elf- make -j24 Image. Dar asta îmi dă o eroare de compilare mai jos. Ce poate fi greșit?

  . 
  . 
  CC mm/interval_tree.o
  Drivere CC/base/regmap/regcache.o
  CC kernel/time/posix-cpu-timers.o
  CC mm/list_lru.o
  CC bloc/blk-mq.o
  AS arch/arm64/lib/memchr.o
  CC fs/ext4/migrate.o
security/security.c: În funcția „security_add_hooks”:
security/security.c:477:25: eroare: „struct security_hook_heads” nu are niciun membru numit „socket_getpeersec_stream”
  477 | &security_hook_heads.socket_getpeersec_stream)
      | ^
  CC kernel/time/posix-clock.o
  AS arch/arm64/lib/memcmp.o
security/security.c: În funcția „security_setprocattr”:
  CC arch/arm64/kvm/../../../virt/kvm/arm/vgic/vgic-v2.o
security/security.c:2058:27: eroare: „union security_list_options” nu are niciun membru numit „socket_getpeersec_stream”
 2058 | socket_getpeersec_stream.socket_getpeersec_stream = NULL;
      | ^
În fișierul inclus din ./include/linux/timer.h:5,
                 din ./include/linux/workqueue.h:9,
                 de la ./include/linux/bpf.h:9,
                 de la securitate/securitate.c:13:
security/security.c:2060:25: eroare: „struct security_hook_heads” nu are niciun membru numit „socket_getpeersec_stream”
 2060 | &security_hook_heads.socket_getpeersec_stream,
      | ^
./include/linux/list.h:857:12: notă: în definiția macro-ului „hlist_entry_safe”
  857 | ({ typeof(ptr) ____ptr = (ptr); \
      | ^~~
security/security.c:2059:3: notă: în extinderea macrocomenzii „hlist_for_each_entry”
 2059 | hlist_for_each_entry(hp,
      | ^~~~~~~~~~~~~~~~~~~~
security/security.c:2060:25: eroare: „struct security_hook_heads” nu are niciun membru numit „socket_getpeersec_stream”
 2060 | &security_hook_heads.socket_getpeersec_stream,
      | ^
./include/linux/list.h:857:28: notă: în definiția macro-ului „hlist_entry_safe”
  857 | ({ typeof(ptr) ____ptr = (ptr); \
      | ^~~
security/security.c:2059:3: notă: în extinderea macrocomenzii „hlist_for_each_entry”
 2059 | hlist_for_each_entry(hp,
      | ^~~~~~~~~~~~~~~~~~~~
În fișierul inclus din ./include/linux/list.h:9,
                 de la ./include/linux/timer.h:5,
                 din ./include/linux/workqueue.h:9,
                 de la ./include/linux/bpf.h:9,
                 de la securitate/securitate.c:13:
./include/linux/kernel.h:993:17: avertisment: turnare la pointer de la un întreg de dimensiuni diferite [-Wint-to-pointer-cast]
  993 | void *__mptr = (void *)(ptr); \
      | ^
./include/linux/list.h:847:40: notă: în extinderea macro-ului „container_of”
  847 | #define hlist_entry(ptr, type, member) container_of(ptr,type,member)
      | ^~~~~~~~~~~~
  . 
  . 

Când fac același lucru cu sursa linux-5.4.21, se compilează ok.

Puncte:0
drapel za

Am descoperit că ubuntu are propriul mod de a construi întregul ubuntu, inclusiv nucleul. Este afișat aici: https://wiki.ubuntu.com/Kernel/BuildYourOwnKernel

Metoda corectă pentru cazul arm64 a fost (din pagina de mai sus)

LANG=C fakeroot debian/rules ARCH=arm64 curat
# construcție mai rapidă:
LANG=C fakeroot debian/rules ARCH=arm64 binary-headers binary-generic binary-perarch
# dacă aveți nevoie de instrumente linux sau de nucleu cu latență redusă, rulați în schimb:
LANG=C fakeroot debian/rules ARCH=arm64 binar

Puteți adăuga informații de depanare folosind aceste comenzi (de pe pagina de mai sus):

sudo apt-get install pkg-config-dbgsym
LANG=C fakeroot debian/rules clean
LANG=C fakeroot debian/rules binary-headers binary-generic binary-perarch skipdbg=false

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.