[BPI-R2] Kernel Development

For current hnat implementation there are some limitations…it does only work for traffic between wan+lan (nat on wan,lan on lan-ports). Most use-cases like nat on pppx or briged lan-ports are skipping hnat.

HNAT support for anything else except standard IPoE might be tricky/unsupported as it requires HW switching/forwarding engine to be either flexible enough so it is possible to configure it to deal with encapsulating protocol implementation (i.e. how to extract IP frames from PPP encapsulated into ethernet frames, how to create encapsulated PPPoE frames for outgres, e.t.c.) or HW engine should have support built in for some specific protocols. I’m not so sure about R2’s HW NAT actual capabilities but implementation code I’ve seen for it (both older one for 4.14 and recent one that was backported to 4.14 by OpenWRT team) are not “smart” enough to support PPPoE. Thus do not expect your internet throughput with R2 to match one you get with other device which has properly working vendor-shipped HW NAT driver with PPPoE support - like one you’ve get in your TP-link device.

R64 seems to support PPTP HNAT, https://github.com/BPI-SINOVOIP/BPI-R64-BSP/blob/master/proprietary_driver/net/nat/hw_nat/pptp_l2tp_fdb.c Maybe it’s also compatible with R2

you mean 4.14 is faster than 5.3-phylink also without hnat? 4.14 contains some network-tweaks from openwrt/lede, maybe these improve network-speed…

the main problem i saw in my network-tests: i can only transmit ~1Gbit/s (940Mbit/s) summarized when multiple clients connected, also with second gmac, maybe traffic also causes collisions (have not much clients for testing this)…tested with 2 simultanous iperf3-sessions on r2 going to 2 different clients. phylink has better performance than mainline-driver, but also only reaches ~1Gbit/s where at least using second gmac (lan+wan) or trgmii-mode (lan+lan) should bring additional speed

here are the Patches for 4.14 i had also applied to 4.14-branch (but imho squashed together while merging second gmac):

at least DQL,RDMA and RPS are not ported to 4.19 due to instability there. some if them i had tried to port here: https://github.com/frank-w/BPI-R2-4.14/commits/4.19-gmac...these are merged to 4.19-main: https://github.com/frank-w/BPI-R2-4.14/commits/4.19-main?after=11c8a1bd2f229b114fff29ec7839422567651f39+69&author=frank-w

found an old commit which also includes porting of RPS: https://github.com/frank-w/BPI-R2-4.14/commit/57f5c8eccbf7e0b070986e7bc0db1e821d542b49

Is there any hope for .dts patches (memory size, PCIe etc.) to be upstreamed to linux kernel? Were there any tries from BPi developers? If not, can we ask them to try? openwrt people don’t want to have patches for upstreamed .dts’s laying around.

Just prepare and send changes based on current codebase. Is it wrong already?

You mean to the Linux kernel? OK, I’ll do that, it would just be nice to know if BPi guys have already tried.

Have not seen upstream patch related

https://patchwork.kernel.org/project/linux-mediatek/list/?series=&submitter=&state=&q=Mt7623&archive=&delegate=

memory-node seems to fixed already:

https://elixir.bootlin.com/linux/v5.3-rc6/source/arch/arm/boot/dts/mt7623n-bananapi-bpi-r2.dts#L113

also in 4.19…

5.4-rc1 is out and i made the basic changes in my repo

1 additional patch was needed because pwrap was broken by incomplete series.

1 Like

Hello @frank-w

As I have a working Armv7 ArchLinux I will start compiling my kernel from your branch with different configs.

Can you share the config file you use, So I can check and compare the configs?

Thanks

it depends a bit on kernel-version

1 Like

Thanks. I dont see Lima support in this 5.3-lima and 5.3-main config. Can I add this ? CONFIG_DRM_LIMA=y and I hope you have the updated lima in 5.3 right ?

I have no branch with lima, only added one for testing (5.3-lima). It depends at least on hdmi-changes and imho self-compiled mesa. i don’t know how to build mesa’its changes and how to test

Mesa 19.1.7 I can use from Arch Repo. I will follow your 5.3-lima branch and enable lima module in config, But were you able to compile it before with lima enabled?

In lima-branch lima is activated and dts-node present. Compile was working. @JohnnyWednesday says that mesa needs to be changed but not how so i was stuck at this point

I have also prepared hdmi (with fbdev) and poweroff, both are working in my quick tests

Continuing here from this thread.

Hi @frank-w I have put it to compile but it have asked me almost all the questions for config, just a sample below.

*
* Native language support
*
Native language support (NLS) [Y/?] (NEW) y
  Default NLS Option (NLS_DEFAULT) [iso8859-1] (NEW) 
  Codepage 437 (United States, Canada) (NLS_CODEPAGE_437) [Y/n/m/?] y
  Codepage 737 (Greek) (NLS_CODEPAGE_737) [N/m/y/?] (NEW) 
  Codepage 775 (Baltic Rim) (NLS_CODEPAGE_775) [N/m/y/?] (NEW) 
  Codepage 850 (Europe) (NLS_CODEPAGE_850) [N/m/y/?] (NEW) 
  Codepage 852 (Central/Eastern Europe) (NLS_CODEPAGE_852) [N/m/y/?] (NEW) 
  Codepage 855 (Cyrillic) (NLS_CODEPAGE_855) [N/m/y/?] (NEW) 
  Codepage 857 (Turkish) (NLS_CODEPAGE_857) [N/m/y/?] (NEW) 
  Codepage 860 (Portuguese) (NLS_CODEPAGE_860) [N/m/y/?] (NEW) 
  Codepage 861 (Icelandic) (NLS_CODEPAGE_861) [N/m/y/?] (NEW) 
  Codepage 862 (Hebrew) (NLS_CODEPAGE_862) [N/m/y/?] (NEW) 
  Codepage 863 (Canadian French) (NLS_CODEPAGE_863) [N/m/y/?] (NEW) 
  Codepage 864 (Arabic) (NLS_CODEPAGE_864) [N/m/y/?] (NEW) 
  Codepage 865 (Norwegian, Danish) (NLS_CODEPAGE_865) [N/m/y/?] (NEW) 
  Codepage 866 (Cyrillic/Russian) (NLS_CODEPAGE_866) [N/m/y/?] (NEW) 
  Codepage 869 (Greek) (NLS_CODEPAGE_869) [N/m/y/?] (NEW) 
  Simplified Chinese charset (CP936, GB2312) (NLS_CODEPAGE_936) [N/m/y/?] (NEW) 
  Traditional Chinese charset (Big5) (NLS_CODEPAGE_950) [N/m/y/?] (NEW) 
  Japanese charsets (Shift-JIS, EUC-JP) (NLS_CODEPAGE_932) [N/m/y/?] (NEW) 
  Korean charset (CP949, EUC-KR) (NLS_CODEPAGE_949) [N/m/y/?] (NEW) 
  Thai charset (CP874, TIS-620) (NLS_CODEPAGE_874) [N/m/y/?] (NEW) 
  Hebrew charsets (ISO-8859-8, CP1255) (NLS_ISO8859_8) [N/m/y/?] (NEW) 
  Windows CP1250 (Slavic/Central European Languages) (NLS_CODEPAGE_1250) [N/m/y/?] (NEW) 
  Windows CP1251 (Bulgarian, Belarusian) (NLS_CODEPAGE_1251) [N/m/y/?] (NEW) 
  ASCII (United States) (NLS_ASCII) [N/m/y/?] (NEW) 
  NLS ISO 8859-1  (Latin 1; Western European Languages) (NLS_ISO8859_1) [Y/n/m/?] y
  NLS ISO 8859-2  (Latin 2; Slavic/Central European Languages) (NLS_ISO8859_2) [N/m/y/?] (NEW) 
  NLS ISO 8859-3  (Latin 3; Esperanto, Galician, Maltese, Turkish) (NLS_ISO8859_3) [N/m/y/?] (NEW) 
  NLS ISO 8859-4  (Latin 4; old Baltic charset) (NLS_ISO8859_4) [N/m/y/?] (NEW) 
  NLS ISO 8859-5  (Cyrillic) (NLS_ISO8859_5) [N/m/y/?] (NEW) 
  NLS ISO 8859-6  (Arabic) (NLS_ISO8859_6) [N/m/y/?] (NEW) 
  NLS ISO 8859-7  (Modern Greek) (NLS_ISO8859_7) [N/m/y/?] (NEW) 
  NLS ISO 8859-9  (Latin 5; Turkish) (NLS_ISO8859_9) [N/m/y/?] (NEW) 
  NLS ISO 8859-13 (Latin 7; Baltic) (NLS_ISO8859_13) [N/m/y/?] (NEW) 
  NLS ISO 8859-14 (Latin 8; Celtic) (NLS_ISO8859_14) [N/m/y/?] (NEW) 
  NLS ISO 8859-15 (Latin 9; Western European Languages with Euro) (NLS_ISO8859_15) [N/m/y/?] (NEW) 
  NLS KOI8-R (Russian) (NLS_KOI8_R) [N/m/y/?] (NEW) 
  NLS KOI8-U/RU (Ukrainian, Belarusian) (NLS_KOI8_U) [N/m/y/?] (NEW) 
  Codepage macroman (NLS_MAC_ROMAN) [N/m/y/?] (NEW) 
  Codepage macceltic (NLS_MAC_CELTIC) [N/m/y/?] (NEW) 
  Codepage maccenteuro (NLS_MAC_CENTEURO) [N/m/y/?] (NEW) 
  Codepage maccroatian (NLS_MAC_CROATIAN) [N/m/y/?] (NEW) 
  Codepage maccyrillic (NLS_MAC_CYRILLIC) [N/m/y/?] (NEW) 
  Codepage macgaelic (NLS_MAC_GAELIC) [N/m/y/?] (NEW) 
  Codepage macgreek (NLS_MAC_GREEK) [N/m/y/?] (NEW) 
  Codepage maciceland (NLS_MAC_ICELAND) [N/m/y/?] (NEW) 
  Codepage macinuit (NLS_MAC_INUIT) [N/m/y/?] (NEW) 
  Codepage macromanian (NLS_MAC_ROMANIAN) [N/m/y/?] (NEW) 
  Codepage macturkish (NLS_MAC_TURKISH) [N/m/y/?] (NEW) 
  NLS UTF-8 (NLS_UTF8) [Y/n/m/?] y
*
* Distributed Lock Manager (DLM)
*
Distributed Lock Manager (DLM) (DLM) [N/m/?] (NEW) 
UTF-8 normalization and casefolding support (UNICODE) [N/y/?] (NEW) 
*
* Security options
*
Enable access key retention support (KEYS) [Y/?] y
  Enable temporary caching of the last request_key() result (KEYS_REQUEST_CACHE) [N/y/?] (NEW) 
  Enable register of persistent per-UID keyrings (PERSISTENT_KEYRINGS) [N/y/?] (NEW) 
  Large payload keys (BIG_KEYS) [N/y/?] (NEW) 
  ENCRYPTED KEYS (ENCRYPTED_KEYS) [N/m/y/?] (NEW) 
  Diffie-Hellman operations on retained keys (KEY_DH_OPERATIONS) [N/y/?] (NEW) 
Restrict unprivileged access to the kernel syslog (SECURITY_DMESG_RESTRICT) [N/y/?] (NEW) 
Enable different security models (SECURITY) [N/y/?] (NEW) 
Enable the securityfs filesystem (SECURITYFS) [N/y/?] (NEW) 
Harden memory copies between kernel and userspace (HARDENED_USERCOPY) [N/y/?] (NEW) 
Harden common str/mem functions against buffer overflows (FORTIFY_SOURCE) [N/y/?] (NEW) 
Force all usermode helper calls through a single binary (STATIC_USERMODEHELPER) [N/y/?] (NEW) 
First legacy 'major LSM' to be initialized
> 1. Unix Discretionary Access Controls (DEFAULT_SECURITY_DAC) (NEW)
choice[1]: 1
Ordered list of enabled LSMs (LSM) [lockdown,yama,loadpin,safesetid,integrity] (NEW) 
*
* Memory initialization
*
Initialize kernel stack variables at function entry
> 1. no automatic initialization (weakest) (INIT_STACK_NONE) (NEW)
  2. zero-init structs marked for userspace (weak) (GCC_PLUGIN_STRUCTLEAK_USER) (NEW)
  3. zero-init structs passed by reference (strong) (GCC_PLUGIN_STRUCTLEAK_BYREF) (NEW)
  4. zero-init anything passed by reference (very strong) (GCC_PLUGIN_STRUCTLEAK_BYREF_ALL) (NEW)
choice[1-4?]: 
Enable heap memory zeroing on allocation by default (INIT_ON_ALLOC_DEFAULT_ON) [N/y/?] (NEW) 
Enable heap memory zeroing on free by default (INIT_ON_FREE_DEFAULT_ON) [N/y/?] (NEW) 
*
* Cryptographic API
*
Cryptographic API (CRYPTO) [Y/?] (NEW) y
  *
  * Crypto core or helper
  *
  Cryptographic algorithm manager (CRYPTO_MANAGER) [Y/?] (NEW) y
  Userspace cryptographic algorithm configuration (CRYPTO_USER) [N/m/y/?] (NEW) 
  Disable run-time self tests (CRYPTO_MANAGER_DISABLE_TESTS) [Y/n/?] (NEW) 
  Null algorithms (CRYPTO_NULL) [Y/?] (NEW) y
  Parallel crypto engine (CRYPTO_PCRYPT) [N/m/y/?] (NEW) 
  Software async crypto daemon (CRYPTO_CRYPTD) [M/y/?] (NEW) 
  Authenc support (CRYPTO_AUTHENC) [Y/?] (NEW) y
  Testing module (CRYPTO_TEST) [N/m/?] (NEW) 
  *
  * Public-key cryptography
  *
  RSA algorithm (CRYPTO_RSA) [Y/?] y
  Diffie-Hellman algorithm (CRYPTO_DH) [N/m/y/?] (NEW) 
  ECDH algorithm (CRYPTO_ECDH) [Y/?] (NEW) y
  EC-RDSA (GOST 34.10) algorithm (CRYPTO_ECRDSA) [N/m/y/?] (NEW) 
  *
  * Authenticated Encryption with Associated Data
  *
  CCM support (CRYPTO_CCM) [Y/?] y
  GCM/GMAC support (CRYPTO_GCM) [Y/?] y
  ChaCha20-Poly1305 AEAD support (CRYPTO_CHACHA20POLY1305) [N/m/y/?] (NEW) 
  AEGIS-128 AEAD algorithm (CRYPTO_AEGIS128) [N/m/y/?] (NEW) 
  Sequence Number IV Generator (CRYPTO_SEQIV) [Y/?] (NEW) y
  Encrypted Chain IV Generator (CRYPTO_ECHAINIV) [M/y/?] (NEW) 
  *
  * Block modes
  *
  CBC support (CRYPTO_CBC) [Y/?] y
  CFB support (CRYPTO_CFB) [N/m/y/?] (NEW) 
  CTR support (CRYPTO_CTR) [Y/?] (NEW) y
  CTS support (CRYPTO_CTS) [N/m/y/?] (NEW) 
  ECB support (CRYPTO_ECB) [Y/?] y
  LRW support (CRYPTO_LRW) [N/m/y/?] (NEW) 
  OFB support (CRYPTO_OFB) [N/m/y/?] (NEW) 
  PCBC support (CRYPTO_PCBC) [N/m/y/?] (NEW) 
  XTS support (CRYPTO_XTS) [N/m/y/?] (NEW) 
  Key wrapping support (CRYPTO_KEYWRAP) [N/m/y/?] (NEW) 
  Adiantum support (CRYPTO_ADIANTUM) [N/m/y/?] (NEW) 
  ESSIV support for block encryption (CRYPTO_ESSIV) [Y/?] (NEW) y
  *
  * Hash modes
  *
  CMAC support (CRYPTO_CMAC) [Y/?] y
  HMAC support (CRYPTO_HMAC) [Y/?] (NEW) y
  XCBC support (CRYPTO_XCBC) [N/m/y/?] (NEW) 
  VMAC support (CRYPTO_VMAC) [N/m/y/?] (NEW) 
  *
  * Digest
  *
  CRC32c CRC algorithm (CRYPTO_CRC32C) [Y/?] (NEW) y
  CRC32 CRC algorithm (CRYPTO_CRC32) [M/y/?] (NEW) 
  xxHash hash algorithm (CRYPTO_XXHASH) [N/m/y/?] (NEW) 
  CRCT10DIF algorithm (CRYPTO_CRCT10DIF) [N/m/y/?] (NEW) 
  GHASH hash function (CRYPTO_GHASH) [Y/?] (NEW) y
  Poly1305 authenticator algorithm (CRYPTO_POLY1305) [N/m/y/?] (NEW) 
  MD4 digest algorithm (CRYPTO_MD4) [M/y/?] (NEW) 
  MD5 digest algorithm (CRYPTO_MD5) [M/y/?] (NEW) 
  Michael MIC keyed digest algorithm (CRYPTO_MICHAEL_MIC) [N/m/y/?] (NEW) 
  RIPEMD-128 digest algorithm (CRYPTO_RMD128) [N/m/y/?] (NEW) 
  RIPEMD-160 digest algorithm (CRYPTO_RMD160) [N/m/y/?] (NEW) 
  RIPEMD-256 digest algorithm (CRYPTO_RMD256) [N/m/y/?] (NEW) 
  RIPEMD-320 digest algorithm (CRYPTO_RMD320) [N/m/y/?] (NEW) 
  SHA1 digest algorithm (CRYPTO_SHA1) [Y/?] (NEW) y
  SHA224 and SHA256 digest algorithm (CRYPTO_SHA256) [Y/?] (NEW) y
  SHA384 and SHA512 digest algorithms (CRYPTO_SHA512) [Y/?] (NEW) y
  SHA3 digest algorithm (CRYPTO_SHA3) [N/m/y/?] (NEW) 
  SM3 digest algorithm (CRYPTO_SM3) [N/m/y/?] (NEW) 
  Streebog Hash Function (CRYPTO_STREEBOG) [N/m/y/?] (NEW) 
  Tiger digest algorithms (CRYPTO_TGR192) [N/m/y/?] (NEW) 
  Whirlpool digest algorithms (CRYPTO_WP512) [N/m/y/?] (NEW) 
  *
  * Ciphers
  *
  AES cipher algorithms (CRYPTO_AES) [Y/?] (NEW) y
  Fixed time AES cipher (CRYPTO_AES_TI) [N/m/y/?] (NEW) 
  Anubis cipher algorithm (CRYPTO_ANUBIS) [N/m/y/?] (NEW) 
  ARC4 cipher algorithm (CRYPTO_ARC4) [M/n/y/?] m
  Blowfish cipher algorithm (CRYPTO_BLOWFISH) [N/m/y/?] (NEW) 
  Camellia cipher algorithms (CRYPTO_CAMELLIA) [N/m/y/?] (NEW) 
  CAST5 (CAST-128) cipher algorithm (CRYPTO_CAST5) [N/m/y/?] (NEW) 
  CAST6 (CAST-256) cipher algorithm (CRYPTO_CAST6) [N/m/y/?] (NEW) 
  DES and Triple DES EDE cipher algorithms (CRYPTO_DES) [M/y/?] (NEW) 
  FCrypt cipher algorithm (CRYPTO_FCRYPT) [N/m/y/?] (NEW) 
  Khazad cipher algorithm (CRYPTO_KHAZAD) [N/m/y/?] (NEW) 
  Salsa20 stream cipher algorithm (CRYPTO_SALSA20) [N/m/y/?] (NEW) 
  ChaCha stream cipher algorithms (CRYPTO_CHACHA20) [M/y/?] (NEW) 
  SEED cipher algorithm (CRYPTO_SEED) [N/m/y/?] (NEW) 
  Serpent cipher algorithm (CRYPTO_SERPENT) [N/m/y/?] (NEW) 
  SM4 cipher algorithm (CRYPTO_SM4) [N/m/y/?] (NEW) 
  TEA, XTEA and XETA cipher algorithms (CRYPTO_TEA) [N/m/y/?] (NEW) 
  Twofish cipher algorithm (CRYPTO_TWOFISH) [N/m/y/?] (NEW) 
  *
  * Compression
  *
  Deflate compression algorithm (CRYPTO_DEFLATE) [Y/?] y
  LZO compression algorithm (CRYPTO_LZO) [Y/n/m/?] y
  842 compression algorithm (CRYPTO_842) [N/m/y/?] (NEW) 
  LZ4 compression algorithm (CRYPTO_LZ4) [N/m/y/?] (NEW) 
  LZ4HC compression algorithm (CRYPTO_LZ4HC) [N/m/y/?] (NEW) 
  Zstd compression algorithm (CRYPTO_ZSTD) [N/m/y/?] (NEW) 
  *
  * Random Number Generation
  *
  Pseudo Random Number Generation for Cryptographic modules (CRYPTO_ANSI_CPRNG) [N/m/y/?] (NEW) 
  *
  * NIST SP800-90A DRBG
  *
  NIST SP800-90A DRBG (CRYPTO_DRBG_MENU) [Y/?] (NEW) y
    Enable Hash DRBG (CRYPTO_DRBG_HASH) [N/y/?] (NEW) 
    Enable CTR DRBG (CRYPTO_DRBG_CTR) [N/y/?] (NEW) 
  Jitterentropy Non-Deterministic Random Number Generator (CRYPTO_JITTERENTROPY) [Y/?] (NEW) y
  User-space interface for hash algorithms (CRYPTO_USER_API_HASH) [N/m/y/?] (NEW) 
  User-space interface for symmetric key cipher algorithms (CRYPTO_USER_API_SKCIPHER) [N/m/y/?] (NEW) 
  User-space interface for random number generator algorithms (CRYPTO_USER_API_RNG) [N/m/y/?] (NEW) 
  User-space interface for AEAD cipher algorithms (CRYPTO_USER_API_AEAD) [N/m/y/?] (NEW) 
  *
  * Hardware crypto devices
  *
  Hardware crypto devices (CRYPTO_HW) [Y/n/?] (NEW) 
    Driver HIFN 795x crypto accelerator chips (CRYPTO_DEV_HIFN_795X) [N/m/y/?] (NEW) 
    Support for Microchip / Atmel ECC hw accelerator (CRYPTO_DEV_ATMEL_ECC) [N/m/y/?] (NEW) 
    Support for Microchip / Atmel SHA accelerator and RNG (CRYPTO_DEV_ATMEL_SHA204A) [N/m/y/?] (NEW) 
    MediaTek's EIP97 Cryptographic Engine driver (CRYPTO_DEV_MEDIATEK) [Y/n/m/?] y
    Inside Secure's SafeXcel cryptographic engine driver (CRYPTO_DEV_SAFEXCEL) [N/m/y/?] (NEW) 
    Support for ARM TrustZone CryptoCell family of security processors (CRYPTO_DEV_CCREE) [N/m/y/?] (NEW) 
  *
  * Asymmetric (public-key cryptographic) key type
  *
  Asymmetric (public-key cryptographic) key type (ASYMMETRIC_KEY_TYPE) [Y/?] (NEW) y
    Asymmetric public-key crypto algorithm subtype (ASYMMETRIC_PUBLIC_KEY_SUBTYPE) [Y/?] (NEW) y
    X.509 certificate parser (X509_CERTIFICATE_PARSER) [Y/?] (NEW) y
    PKCS#8 private key parser (PKCS8_PRIVATE_KEY_PARSER) [N/m/y/?] (NEW) 
    PKCS#7 message parser (PKCS7_MESSAGE_PARSER) [Y/?] (NEW) y
    PKCS#7 testing key type (PKCS7_TEST_KEY) [N/m/y/?] (NEW) 
    Support for PE file signature verification (SIGNED_PE_FILE_VERIFICATION) [N/y/?] (NEW) 
  *
  * Certificates for signature checking
  *
  Provide system-wide ring of trusted keys (SYSTEM_TRUSTED_KEYRING) [Y/?] (NEW) y
    Additional X.509 keys for default system keyring (SYSTEM_TRUSTED_KEYS) [] (NEW) 
    Reserve area for inserting a certificate without recompiling (SYSTEM_EXTRA_CERTIFICATE) [N/y/?] (NEW) 
    Provide a keyring to which extra trustable keys may be added (SECONDARY_TRUSTED_KEYRING) [N/y/?] (NEW) 
  Provide system-wide ring of blacklisted keys (SYSTEM_BLACKLIST_KEYRING) [N/y/?] (NEW) 
*
* Library routines
*
Automatically choose fastest RAID6 PQ functions (RAID6_PQ_BENCHMARK) [Y/n/?] (NEW) 
Generic bitfield packing and unpacking (PACKING) [N/y/?] (NEW) 
CORDIC algorithm (CORDIC) [N/m/y/?] (NEW) 
CRC-CCITT functions (CRC_CCITT) [M/n/y/?] m
CRC16 functions (CRC16) [Y/?] (NEW) y
CRC calculation for the T10 Data Integrity Field (CRC_T10DIF) [N/m/y/?] (NEW) 
CRC ITU-T V.41 functions (CRC_ITU_T) [M/n/y/?] m
CRC32/CRC32c functions (CRC32) [Y/?] (NEW) y
  CRC32 perform self test on init (CRC32_SELFTEST) [N/m/y/?] (NEW) 
  CRC32 implementation
  > 1. Slice by 8 bytes (CRC32_SLICEBY8) (NEW)
    2. Slice by 4 bytes (CRC32_SLICEBY4) (NEW)
    3. Sarwate's Algorithm (one byte at a time) (CRC32_SARWATE) (NEW)
    4. Classic Algorithm (one bit at a time) (CRC32_BIT) (NEW)
  choice[1-4?]: 
CRC64 functions (CRC64) [N/m/y/?] (NEW) 
CRC4 functions (CRC4) [N/m/y/?] (NEW) 
CRC7 functions (CRC7) [N/m/y/?] (NEW) 
CRC32c (Castagnoli, et al) Cyclic Redundancy-Check (LIBCRC32C) [Y/?] (NEW) y
CRC8 function (CRC8) [N/m/y/?] (NEW) 
PRNG perform self test on init (RANDOM32_SELFTEST) [N/y/?] (NEW) 
XZ decompression support (XZ_DEC) [Y/?] (NEW) y
  x86 BCJ filter decoder (XZ_DEC_X86) [Y/n/?] (NEW) 
  PowerPC BCJ filter decoder (XZ_DEC_POWERPC) [Y/n/?] (NEW) 
  IA-64 BCJ filter decoder (XZ_DEC_IA64) [Y/n/?] (NEW) 
  ARM BCJ filter decoder (XZ_DEC_ARM) [Y/n/?] (NEW) 
  ARM-Thumb BCJ filter decoder (XZ_DEC_ARMTHUMB) [Y/n/?] (NEW) 
  SPARC BCJ filter decoder (XZ_DEC_SPARC) [Y/n/?] (NEW) 
XZ decompressor tester (XZ_DEC_TEST) [N/m/y/?] (NEW) 
DMA Contiguous Memory Allocator (DMA_CMA) [Y/n/?] y
  *
  * Default contiguous memory area size:
  *
  Size in Mega Bytes (CMA_SIZE_MBYTES) [64] 64
  Selected region size
  > 1. Use mega bytes value only (CMA_SIZE_SEL_MBYTES) (NEW)
    2. Use percentage value only (CMA_SIZE_SEL_PERCENTAGE) (NEW)
    3. Use lower value (minimum) (CMA_SIZE_SEL_MIN) (NEW)
    4. Use higher value (maximum) (CMA_SIZE_SEL_MAX) (NEW)
  choice[1-4?]: 
  Maximum PAGE_SIZE order of alignment for contiguous buffers (CMA_ALIGNMENT) [8] (NEW) 
Enable debugging of DMA-API usage (DMA_API_DEBUG) [N/y/?] (NEW) 
glob self-test on init (GLOB_SELFTEST) [N/m/y/?] (NEW) 
IRQ polling library (IRQ_POLL) [N/y/?] (NEW) 
Test string functions (STRING_SELFTEST) [N/m/y/?] (NEW) 
*
* printk and dmesg options
*
Show timing information on printks (PRINTK_TIME) [Y/n/?] y
Show caller information on printks (PRINTK_CALLER) [N/y/?] (NEW) 
Default console loglevel (1-15) (CONSOLE_LOGLEVEL_DEFAULT) [7] (NEW) 
quiet console loglevel (1-15) (CONSOLE_LOGLEVEL_QUIET) [4] (NEW) 
Default message log level (1-7) (MESSAGE_LOGLEVEL_DEFAULT) [4] (NEW) 
Delay each boot printk message by N milliseconds (BOOT_PRINTK_DELAY) [N/y/?] (NEW) 
Enable dynamic printk() support (DYNAMIC_DEBUG) [Y/n/?] y
*
* Compile-time checks and compiler options
*
Compile the kernel with debug info (DEBUG_INFO) [Y/n/?] y
  Reduce debugging information (DEBUG_INFO_REDUCED) [N/y/?] (NEW) 
  Produce split debuginfo in .dwo files (DEBUG_INFO_SPLIT) [N/y/?] (NEW) 
  Generate dwarf4 debuginfo (DEBUG_INFO_DWARF4) [N/y/?] (NEW) 
  Generate BTF typeinfo (DEBUG_INFO_BTF) [N/y/?] (NEW) 
  Provide GDB scripts for kernel debugging (GDB_SCRIPTS) [N/y/?] (NEW) 
Enable __must_check logic (ENABLE_MUST_CHECK) [Y/n/?] (NEW) 
Warn for stack frames larger than (needs gcc 4.4) (FRAME_WARN) [1024] (NEW) 
Strip assembler-generated symbols during link (STRIP_ASM_SYMS) [N/y/?] (NEW) 
Generate readable assembler code (READABLE_ASM) [N/y/?] (NEW) 
Debug Filesystem (DEBUG_FS) [Y/?] y
Install uapi headers to usr/include (HEADERS_INSTALL) [N/y/?] (NEW) 
Enable full Section mismatch analysis (DEBUG_SECTION_MISMATCH) [Y/n/?] y
Make section mismatch errors non-fatal (SECTION_MISMATCH_WARN_ONLY) [Y/n/?] (NEW) 
Compile the kernel with frame pointers (FRAME_POINTER) [Y/?] (NEW) y
Force weak per-cpu definitions (DEBUG_FORCE_WEAK_PER_CPU) [N/y/?] (NEW) 
*
* Kernel hacking
*
Magic SysRq key (MAGIC_SYSRQ) [Y/n/?] y
  Enable magic SysRq key functions by default (MAGIC_SYSRQ_DEFAULT_ENABLE) [0x1] (NEW) 
  Enable magic SysRq key over serial (MAGIC_SYSRQ_SERIAL) [Y/n/?] (NEW) 
Kernel debugging (DEBUG_KERNEL) [Y/?] (NEW) y
  Miscellaneous debug code (DEBUG_MISC) [Y/n/?] (NEW) 
*
* Memory Debugging
*
Extend memmap on extra space for more information on page (PAGE_EXTENSION) [N/y/?] (NEW) 
Debug page memory allocations (DEBUG_PAGEALLOC) [N/y/?] (NEW) 
Track page owner (PAGE_OWNER) [N/y/?] (NEW) 
Poison pages after freeing (PAGE_POISONING) [N/y/?] (NEW) 
Enable tracepoint to track down page reference manipulation (DEBUG_PAGE_REF) [N/y/?] (NEW) 
Testcase for the marking rodata read-only (DEBUG_RODATA_TEST) [N/y/?] (NEW) 
Debug object operations (DEBUG_OBJECTS) [N/y/?] (NEW) 
SLUB debugging on by default (SLUB_DEBUG_ON) [N/y/?] (NEW) 
Enable SLUB performance statistics (SLUB_STATS) [N/y/?] (NEW) 
Kernel memory leak detector (DEBUG_KMEMLEAK) [N/y/?] (NEW) 
Stack utilization instrumentation (DEBUG_STACK_USAGE) [N/y/?] (NEW) 
Debug VM (DEBUG_VM) [N/y/?] (NEW) 
Debug VM translations (DEBUG_VIRTUAL) [N/y/?] (NEW) 
Debug memory initialisation (DEBUG_MEMORY_INIT) [N/y/?] (NEW) 
Debug access to per_cpu maps (DEBUG_PER_CPU_MAPS) [N/y/?] (NEW) 
Highmem debugging (DEBUG_HIGHMEM) [N/y/?] (NEW) 
Code coverage for fuzzing (KCOV) [N/y/?] (NEW) 
Debug shared IRQ handlers (DEBUG_SHIRQ) [N/y/?] (NEW) 
*
* Debug Lockups and Hangs
*
Detect Soft Lockups (SOFTLOCKUP_DETECTOR) [N/y/?] (NEW) 
Detect Hung Tasks (DETECT_HUNG_TASK) [Y/n/?] y
  Default timeout for hung task detection (in seconds) (DEFAULT_HUNG_TASK_TIMEOUT) [120] (NEW) 
  Panic (Reboot) On Hung Tasks (BOOTPARAM_HUNG_TASK_PANIC) [N/y/?] (NEW) 
Detect Workqueue Stalls (WQ_WATCHDOG) [N/y/?] (NEW) 
Panic on Oops (PANIC_ON_OOPS) [N/y/?] (NEW) 
panic timeout (PANIC_TIMEOUT) [0] (NEW) 
Collect scheduler debugging info (SCHED_DEBUG) [Y/n/?] (NEW) 
Collect scheduler statistics (SCHEDSTATS) [N/y/?] (NEW) 
Detect stack corruption on calls to schedule() (SCHED_STACK_END_CHECK) [N/y/?] (NEW) 
Enable extra timekeeping sanity checking (DEBUG_TIMEKEEPING) [N/y/?] (NEW) 
*
* Lock Debugging (spinlocks, mutexes, etc...)
*
Lock debugging: prove locking correctness (PROVE_LOCKING) [N/y/?] (NEW) 
Lock usage statistics (LOCK_STAT) [N/y/?] (NEW) 
RT Mutex debugging, deadlock detection (DEBUG_RT_MUTEXES) [N/y/?] (NEW) 
Spinlock and rw-lock debugging: basic checks (DEBUG_SPINLOCK) [N/y/?] (NEW) 
Mutex debugging: basic checks (DEBUG_MUTEXES) [N/y/?] (NEW) 
Wait/wound mutex debugging: Slowpath testing (DEBUG_WW_MUTEX_SLOWPATH) [N/y/?] (NEW) 
RW Semaphore debugging: basic checks (DEBUG_RWSEMS) [N/y/?] (NEW) 
Lock debugging: detect incorrect freeing of live locks (DEBUG_LOCK_ALLOC) [N/y/?] (NEW) 
Sleep inside atomic section checking (DEBUG_ATOMIC_SLEEP) [N/y/?] (NEW) 
Locking API boot-time self-tests (DEBUG_LOCKING_API_SELFTESTS) [N/y/?] (NEW) 
torture tests for locking (LOCK_TORTURE_TEST) [N/m/y/?] (NEW) 
Wait/wound mutex selftests (WW_MUTEX_SELFTEST) [N/m/y/?] (NEW) 
Stack backtrace support (STACKTRACE) [Y/?] (NEW) y
Warn for all uses of unseeded randomness (WARN_ALL_UNSEEDED_RANDOM) [N/y/?] (NEW) 
kobject debugging (DEBUG_KOBJECT) [N/y/?] (NEW) 
Verbose BUG() reporting (adds 70K) (DEBUG_BUGVERBOSE) [Y/n/?] (NEW) 
Debug linked list manipulation (DEBUG_LIST) [Y/n/?] y
Debug priority linked list manipulation (DEBUG_PLIST) [N/y/?] (NEW) 
Debug SG table operations (DEBUG_SG) [N/y/?] (NEW) 
Debug notifier call chains (DEBUG_NOTIFIERS) [N/y/?] (NEW) 
Debug credential management (DEBUG_CREDENTIALS) [N/y/?] (NEW) 
*
* RCU Debugging
*
performance tests for RCU (RCU_PERF_TEST) [N/m/y/?] (NEW) 
torture tests for RCU (RCU_TORTURE_TEST) [N/m/y/?] (NEW) 
RCU CPU stall timeout in seconds (RCU_CPU_STALL_TIMEOUT) [21] (NEW) 
Enable tracing for RCU (RCU_TRACE) [Y/n/?] (NEW) 
Provide debugging asserts for adding NO_HZ support to an arch (RCU_EQS_DEBUG) [N/y/?] (NEW) 
Force round-robin CPU selection for unbound work items (DEBUG_WQ_FORCE_RR_CPU) [N/y/?] (NEW) 
Force extended block device numbers and spread them (DEBUG_BLOCK_EXT_DEVT) [N/y/?] (NEW) 
Enable CPU hotplug state control (CPU_HOTPLUG_STATE_CONTROL) [N/y/?] (NEW) 
Notifier error injection (NOTIFIER_ERROR_INJECTION) [N/m/y/?] (NEW) 
Fault-injection framework (FAULT_INJECTION) [N/y/?] (NEW) 
Latency measuring infrastructure (LATENCYTOP) [N/y/?] (NEW) 

I had to press and hold enter to avoid and this means it will compile everything asked. I think this is due to the custom config file? which I pulled from here

Here is my PKGBUILD

Currently using qemu to test if my pkgbuild would start but now I am letting it continue and see the result, Will get back to you on this. But any advice on the config file and the questions asked before it starts compiling? Thanks

Just run

./build.sh importconfig
./build.sh

If you encounter ethernet-problems (no traffic or packet-drops) try setting trgmii in dts to rgmii twice

Btw. Are you further with lima? and you get no questions about config-options

I don’t think I can use build.sh, as I need to make a package along with compiling the kernel.

I cant get this know, but maybe once I get stuck with this then I might understand.

No I had to terminate the compiling process for some reason. Will try again tonight, but what about questions ask before the start of the compilation? How can I avoid it? They’re so many to write in config and I will have to go through it one by one?