SoMainline / linux-apple-resources

168 stars 15 forks source link

Stuck at step 6 #13

Open aphive opened 1 year ago

aphive commented 1 year ago

Trying to get this working on my iPad 4th gen running Dual-core A6X with quad-core graphics, but not sure what to do at step 6...

I"m doing this on my Pop! OS laptop.

the make ARCH=arm64 LLVM=1 menuconfig option failed as follows:

  HOSTCC  scripts/basic/fixdep
  UPD     scripts/kconfig/mconf-cfg
  HOSTCC  scripts/kconfig/mconf.o
  HOSTCC  scripts/kconfig/lxdialog/checklist.o
  HOSTCC  scripts/kconfig/lxdialog/inputbox.o
  HOSTCC  scripts/kconfig/lxdialog/menubox.o
  HOSTCC  scripts/kconfig/lxdialog/textbox.o
  HOSTCC  scripts/kconfig/lxdialog/util.o
  HOSTCC  scripts/kconfig/lxdialog/yesno.o
  HOSTCC  scripts/kconfig/confdata.o
  HOSTCC  scripts/kconfig/expr.o
  LEX     scripts/kconfig/lexer.lex.c
  YACC    scripts/kconfig/parser.tab.[ch]
  HOSTCC  scripts/kconfig/lexer.lex.o
  HOSTCC  scripts/kconfig/menu.o
  HOSTCC  scripts/kconfig/parser.tab.o
  HOSTCC  scripts/kconfig/preprocess.o
  HOSTCC  scripts/kconfig/symbol.o
  HOSTCC  scripts/kconfig/util.o
  HOSTLD  scripts/kconfig/mconf
scripts/Kconfig.include:40: linker 'ld.lld' not found
make[1]: *** [scripts/kconfig/Makefile:48: menuconfig] Error 1
make: *** [Makefile:629: menuconfig] Error 2

So I tried make menuconfig and I got the following:

Linux/x86 5.19.0-rc1 Kernel Configuration ─────────────────────────────────────────────────────────────────────────────────┐
  │  Arrow keys navigate the menu.  <Enter> selects submenus ---> (or empty submenus ----).  Highlighted letters are hotkeys.  Pressing <Y> includes, <N> excludes, <M> modularizes features.  Press <Esc><Esc> │  
  │  to exit, <?> for Help, </> for Search.  Legend: [*] built-in  [ ] excluded  <M> module  < > module capable                                                                                                 │  
  │                                                                                                                                                                                                             │  
  │                                                                                                                                                                                                             │  
  │ ┌─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │  
  │ │                                                                     General setup  --->                                                                                                                 │ │  
  │ │                                                                 [*] 64-bit kernel                                                                                                                       │ │  
  │ │                                                                     Processor type and features  --->                                                                                                   │ │  
  │ │                                                                     Power management and ACPI options  --->                                                                                             │ │  
  │ │                                                                     Bus options (PCI etc.)  --->                                                                                                        │ │  
  │ │                                                                     Binary Emulations  --->                                                                                                             │ │  
  │ │                                                                 [ ] Virtualization  ----                                                                                                                │ │  
  │ │                                                                     General architecture-dependent options  --->                                                                                        │ │  
  │ │                                                                 [*] Enable loadable module support  --->                                                                                                │ │  
  │ │                                                                 [*] Enable the block layer  --->                                                                                                        │ │  
  │ │                                                                     Executable file formats  --->                                                                                                       │ │  
  │ │                                                                     Memory Management options  --->                                                                                                     │ │  
  │ │                                                                 [*] Networking support  --->                                                                                                            │ │  
  │ │                                                                     Device Drivers  --->                                                                                                                │ │  
  │ │                                                                     File systems  --->                                                                                                                  │ │  
  │ │                                                                     Security options  --->                                                                                                              │ │  
  │ │                                                                 -*- Cryptographic API  --->                                                                                                             │ │  
  │ │                                                                     Library routines  --->                                                                                                              │ │  
  │ │                                                                     Kernel hacking  --->     

after using the / and searching for _PAGES I get this:

  │ Symbol: ARCH_HAS_ADD_PAGES [=y]                                                                                                                                                                             │  
  │ Type  : bool                                                                                                                                                                                                │  
  │ Defined at arch/x86/Kconfig:2457                                                                                                                                                                            │  
  │   Depends on: ARCH_ENABLE_MEMORY_HOTPLUG [=y]                                                                                                                                                               │  
  │                                                                                                                                                                                                             │  
  │                                                                                                                                                                                                             │  
  │ Symbol: ARM64_4K_PAGES [=ARM64_4K_PAGES]                                                                                                                                                                    │  
  │ Type  : unknown                                                                                                                                                                                             │  
  │                                                                                                                                                                                                             │  
  │                                                                                                                                                                                                             │  
  │ Symbol: ARM64_64K_PAGES [=ARM64_64K_PAGES]                                                                                                                                                                  │  
  │ Type  : unknown                                                                                                                                                                                             │  
  │                                                                                                                                                                                                             │  
  │                                                                                                                                                                                                             │  
  │ Symbol: TEST_FREE_PAGES [=n]                                                                                                                                                                                │  
  │ Type  : tristate                                                                                                                                                                                            │  
  │ Defined at lib/Kconfig.debug:2628                                                                                                                                                                           │  
  │   Prompt: Test freeing pages                                                                                                                                                                                │  
  │   Depends on: RUNTIME_TESTING_MENU [=y]                                                                                                                                                                     │  
  │   Location:                                                                                                                                                                                                 │  
  │     Main menu                                                                                                                                                                                               │  
  │       -> Kernel hacking                                                                                                                                                                                     │  
  │         -> Kernel Testing and Coverage                                                                                                                                                                      │  
  │ (1)       -> Runtime Testing (RUNTIME_TESTING_MENU [=y])                                                                                                                                                    │  
  │                                                                                                                                                                                                             │  
  │                                                                                                                                                                                                             │  
  │ Symbol: XEN_SCRUB_PAGES_DEFAULT [=n]                                                                                                                                                                        │  
  │ Type  : bool                                                                                                                                                                                                │  
  │ Defined at drivers/xen/Kconfig:68                                                                                                                                                                           │  
  │   Prompt: Scrub pages before returning them to system by default                                                                                                                                            │  
  │   Depends on: XEN [=n] && XEN_BALLOON [=n]                                                                                                                                                                  │  
  │   Location:                                                                                                                                                                                                 │  
  │     Main menu                                                                                                                                                                                               │  
  │ (2)   -> Device Drivers                                                                                                                                                                                     │  
  │         -> Xen driver support  
aphive commented 1 year ago

Pressing 1 there brings me to this menu:

  │ │                                                                 --- Runtime Testing                                                                                                                     │ │  
  │ │                                                                 < >   Linux Kernel Dump Test Tool Module                                                                                                │ │  
  │ │                                                                 < >   Min heap test                                                                                                                     │ │  
  │ │                                                                 < >   64bit/32bit division and modulo test                                                                                              │ │  
  │ │                                                                 < >   Self test for the backtrace code                                                                                                  │ │  
  │ │                                                                 < >   Self test for reference tracker                                                                                                   │ │  
  │ │                                                                 < >   Red-Black tree test                                                                                                               │ │  
  │ │                                                                 < >   Reed-Solomon library test                                                                                                         │ │  
  │ │                                                                 < >   Interval tree test                                                                                                                │ │  
  │ │                                                                 < >   Per cpu operations test                                                                                                           │ │  
  │ │                                                                 < >   Perform an atomic64_t self-test                                                                                                   │ │  
  │ │                                                                 < >   Test functions located in the hexdump module at runtime                                                                           │ │  
  │ │                                                                 < >   Test string functions at runtime                                                                                                  │ │  
  │ │                                                                 < >   Test functions located in the string_helpers module at runtime                                                                    │ │  
  │ │                                                                 < >   Test strscpy*() family of functions at runtime                                                                                    │ │  
  │ │                                                                 < >   Test kstrto*() family of functions at runtime                                                                                     │ │  
  │ │                                                                 < >   Test printf() family of functions at runtime                                                                                      │ │  
  │ │                                                                 < >   Test scanf() family of functions at runtime                                                                                       │ │  
  │ │                                                                 < >   Test bitmap_*() family of functions at runtime                                                                                    │ │  
  │ │                                                                 < >   Test functions located in the uuid module at runtime                                                                              │ │  
  │ │                                                                 < >   Test the XArray code at runtime                                                                                                   │ │  
  │ │                                                                 < >   Perform selftest on resizable hash table                                                                                          │ │  
  │ │                                                                 < >   Perform selftest on siphash functions                                                                                             │ │  
  │ │                                                                 < >   Perform selftest on IDA functions                                                                                                 │ │  
  │ │                                                                 < >   Test module loading with 'hello world' module                                                                                     │ │  
  │ │                                                                 < >   Test module for compilation of bitops operations                                                                                  │ │  
  │ │                                                                 < >   Test module for stress/performance analysis of vmalloc allocator                                                                  │ │  
  │ │                                                                 < >   Test user/kernel boundary protections                                                                                             │ │  
  │ │                                                                 < >   Test BPF filter functionality                                                                                                     │ │  
  │ │                                                                 < >   Test blackhole netdev functionality                                                                                               │ │  
  │ │                                                                 < >   Test find_bit functions                                                                                                           │ │  
  │ │                                                                 < >   Test firmware loading via userspace interface                                                                                     │ │  
  │ │                                                                 < >   sysctl test driver                                                                                                                │ │  
  │ │                                                                 < >   udelay test driver                                                                                                                │ │  
  │ │                                                                 < >   Test static keys                                                                                                                  │ │  
  │ │                                                                 < >   kmod stress tester                                                                                                                │ │  
  │ │                                                                 < >   Test memcat_p() helper function                                                                                                   │ │  
  │ │                                                                 < >   Test heap/page initialization                                                                                                     │ │  
  │ │                                                                 < >   Test freeing pages                                                                                                                │ │  
  │ │                                                                 < >   Test floating point operations in kernel space                                                                                    │ │  
  │ │                                                                 < >   Test clocksource watchdog in kernel space
asutoshvariar commented 1 year ago

Install ld.lld from your package manager of choice.

CE1CECL commented 1 year ago

Its a arm32 CPU instead of arm64.

asutoshvariar commented 1 year ago

Then why make with ARCH=arm64? Wouldn't ARCH=armhf or whatever it is be the right option?

aphive commented 11 months ago

Its a arm32 CPU instead of arm64.

I was only following what the instructions said, should I be using what @asutoshvariar said instead? ARCH=armhf

Per instructions:

Alternatively:

  • On arm64: Run make defconfig
  • NOT on arm64: Run make ARCH=arm64 LLVM=1 defconfig
asutoshvariar commented 11 months ago

Maybe armhf/arm would work? The reason I’m suggesting this is that arm64 creates a kernel image that your iPad can’t run. Also, 32-bit CPUs are unsupported by this project as of now.