You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
BeagleV-Fire-ubuntu/04_build_linux.sh

791 lines
32 KiB
Bash

#!/bin/bash
CORES=$(getconf _NPROCESSORS_ONLN)
wdir=`pwd`
CC=${CC:-"${wdir}/riscv-toolchain/bin/riscv64-linux-"}
cd ./linux/
if [ ! -f ./.patched ] ; then
if [ -f arch/riscv/configs/mpfs_defconfig ] ; then
patch -p1 < ../patches/linux/0001-Add-BeagleV-Fire-device-tree.patch
patch -p1 < ../patches/linux/0001-PCIe-Change-controller-and-bridge-base-address.patch
patch -p1 < ../patches/linux/0001-GPIO-Add-Microchip-CoreGPIO-driver.patch
patch -p1 < ../patches/linux/0001-ADC-Add-Microchip-MCP356X-driver.patch
patch -p1 < ../patches/linux/0001-Microchip-QSPI-Add-regular-transfers.patch
patch -p1 < ../patches/linux/0001-BeagleV-Fire-Add-printk-to-IM219-driver-for-board-te.patch
patch -p1 < ../patches/linux/0001-MMC-SPI-Hack-to-support-non-DMA-capable-SPI-ctrl.patch
fi
touch .patched
fi
if [ -f arch/riscv/configs/mpfs_defconfig ] ; then
cp -v ../patches/linux/Makefile arch/riscv/boot/dts/microchip/Makefile
cp -v ../patches/linux/dts/mpfs-beaglev-fire.dts arch/riscv/boot/dts/microchip/
cp -v ../patches/linux/dts/mpfs-beaglev-fire-fabric.dtsi arch/riscv/boot/dts/microchip/
else
cp -v ../patches/linux/mainline/Makefile arch/riscv/boot/dts/microchip/Makefile
cp -v ../patches/linux/mainline/dts/mpfs-beaglev-fire.dts arch/riscv/boot/dts/microchip/
cp -v ../patches/linux/mainline/dts/mpfs-beaglev-fire-fabric.dtsi arch/riscv/boot/dts/microchip/
fi
echo "make ARCH=riscv CROSS_COMPILE=${CC} clean"
make ARCH=riscv CROSS_COMPILE=${CC} clean
if [ -f arch/riscv/configs/mpfs_defconfig ] ; then
echo "make ARCH=riscv CROSS_COMPILE=${CC} mpfs_defconfig"
make ARCH=riscv CROSS_COMPILE=${CC} mpfs_defconfig
#
# General setup
#
./scripts/config --enable CONFIG_AUDIT
./scripts/config --disable CONFIG_LOCALVERSION_AUTO
#
# CPU/Task time and stats accounting
#
./scripts/config --enable CONFIG_TASKSTATS
./scripts/config --enable CONFIG_TASK_DELAY_ACCT
./scripts/config --enable CONFIG_TASK_XACCT
#
# RCU Subsystem
#
./scripts/config --module CONFIG_IKHEADERS
#
# Scheduler features
#
# end of Scheduler features
./scripts/config --enable CONFIG_MEMCG
./scripts/config --enable CONFIG_MEMCG_SWAP
./scripts/config --enable CONFIG_MEMCG_KMEM
./scripts/config --enable CONFIG_BLK_CGROUP
./scripts/config --enable CONFIG_SCHED_MM_CID
./scripts/config --enable CONFIG_CGROUP_PIDS
./scripts/config --enable CONFIG_CGROUP_RDMA
./scripts/config --enable CONFIG_CGROUP_FREEZER
./scripts/config --enable CONFIG_CGROUP_HUGETLB
./scripts/config --enable CONFIG_CPUSETS
./scripts/config --enable CONFIG_PROC_PID_CPUSET
./scripts/config --enable CONFIG_CGROUP_DEVICE
./scripts/config --enable CONFIG_CGROUP_CPUACCT
./scripts/config --enable CONFIG_CGROUP_PERF
./scripts/config --enable CONFIG_NAMESPACES
./scripts/config --enable CONFIG_UTS_NS
./scripts/config --enable CONFIG_TIME_NS
./scripts/config --enable CONFIG_IPC_NS
./scripts/config --enable CONFIG_USER_NS
./scripts/config --enable CONFIG_PID_NS
./scripts/config --enable CONFIG_NET_NS
./scripts/config --enable CONFIG_CHECKPOINT_RESTORE
./scripts/config --enable CONFIG_SCHED_AUTOGROUP
./scripts/config --enable CONFIG_RELAY
./scripts/config --enable CONFIG_EMBEDDED
#
# Kernel Performance Events And Counters
#
./scripts/config --enable CONFIG_PERF_EVENTS
./scripts/config --enable CONFIG_PROFILING
#
# Boot options
#
./scripts/config --set-str CONFIG_CMDLINE "root=/dev/mmcblk0p3 ro rootfstype=ext4 rootwait console=ttyS0,115200 earlycon uio_pdrv_genirq.of_id=generic-uio net.ifnames=0"
./scripts/config --enable CONFIG_CMDLINE_FORCE
./scripts/config --enable CONFIG_EEPROM_AT24
./scripts/config --enable CONFIG_OF_OVERLAY
./scripts/config --enable CONFIG_GPIO_MICROCHIP_CORE
./scripts/config --enable CONFIG_MCP356X
./scripts/config --enable CONFIG_POLARFIRE_SOC_GENERIC_SERVICE
#
# General architecture-dependent options
#
./scripts/config --enable CONFIG_KPROBES
#
# GCOV-based kernel profiling
#
./scripts/config --enable CONFIG_MODULE_FORCE_LOAD
./scripts/config --enable CONFIG_MODULE_FORCE_UNLOAD
./scripts/config --enable CONFIG_MODVERSIONS
./scripts/config --enable CONFIG_MODULE_COMPRESS_XZ
./scripts/config --set-str CONFIG_MODPROBE_PATH "/usr/sbin/modprobe"
./scripts/config --enable CONFIG_BLK_CGROUP_IOCOST
./scripts/config --enable CONFIG_BLK_SED_OPAL
#
# IO Schedulers
#
./scripts/config --module CONFIG_MQ_IOSCHED_KYBER
./scripts/config --module CONFIG_IOSCHED_BFQ
./scripts/config --enable CONFIG_BFQ_GROUP_IOSCHED
#
# Executable file formats
#
./scripts/config --module CONFIG_BINFMT_MISC
#
# Memory Management options
#
./scripts/config --enable CONFIG_KSM
#
# File systems
#
./scripts/config --enable CONFIG_EXT4_FS_SECURITY
./scripts/config --disable CONFIG_FANOTIFY
./scripts/config --enable CONFIG_AUTOFS_FS
#
# DOS/FAT/EXFAT/NT Filesystems
#
./scripts/config --enable CONFIG_FAT_FS
./scripts/config --enable CONFIG_MSDOS_FS
./scripts/config --enable CONFIG_VFAT_FS
./scripts/config --enable CONFIG_NLS_CODEPAGE_437
./scripts/config --enable CONFIG_NLS_ASCII
./scripts/config --enable CONFIG_UNICODE
#
# Pseudo filesystems
#
./scripts/config --enable CONFIG_PROC_CHILDREN
./scripts/config --enable CONFIG_HUGETLBFS
./scripts/config --enable CONFIG_NLS_CODEPAGE_437
#
# Security options
#
./scripts/config --enable CONFIG_SECURITY
./scripts/config --enable CONFIG_SECURITYFS
./scripts/config --enable CONFIG_SECURITY_NETWORK
./scripts/config --enable CONFIG_SECURITY_PATH
./scripts/config --set-val CONFIG_LSM_MMAP_MIN_ADDR 65536
./scripts/config --enable CONFIG_INTEGRITY
#./scripts/config --disable CONFIG_VMAP_STACK
#./scripts/config --disable CONFIG_SMP
./scripts/config --enable CONFIG_USB_MUSB_DUAL_ROLE
./scripts/config --enable CONFIG_USB_GADGET
./scripts/config --enable CONFIG_USB_CONFIGFS
./scripts/config --enable CONFIG_CONFIGFS_FS
./scripts/config --enable CONFIG_USB_CONFIGFS_SERIAL
./scripts/config --enable CONFIG_USB_CONFIGFS_ACM
./scripts/config --enable CONFIG_USB_CONFIGFS_OBEX
./scripts/config --enable CONFIG_USB_CONFIGFS_NCM
./scripts/config --enable CONFIG_USB_CONFIGFS_ECM
./scripts/config --enable CONFIG_USB_CONFIGFS_ECM_SUBSET
./scripts/config --enable CONFIG_USB_CONFIGFS_RNDIS
./scripts/config --enable CONFIG_USB_CONFIGFS_EEM
./scripts/config --enable CONFIG_USB_CONFIGFS_PHONET
./scripts/config --enable CONFIG_USB_CONFIGFS_MASS_STORAGE
./scripts/config --enable CONFIG_USB_CONFIGFS_F_LB_SS
./scripts/config --enable CONFIG_USB_CONFIGFS_F_FS
./scripts/config --enable CONFIG_USB_CONFIGFS_F_UAC1
./scripts/config --enable CONFIG_USB_CONFIGFS_F_UAC2
./scripts/config --enable CONFIG_USB_CONFIGFS_F_MIDI
./scripts/config --enable CONFIG_USB_CONFIGFS_F_HID
./scripts/config --enable CONFIG_USB_CONFIGFS_F_UVC
./scripts/config --enable CONFIG_USB_CONFIGFS_F_PRINTER
./scripts/config --module CONFIG_MEDIA_SUPPORT
./scripts/config --enable CONFIG_MEDIA_SUPPORT_FILTER
./scripts/config --enable CONFIG_MEDIA_SUBDRV_AUTOSELECT
./scripts/config --enable CONFIG_MEDIA_CAMERA_SUPPORT
./scripts/config --module CONFIG_VIDEO_IMX219
#Optimize:
./scripts/config --enable CONFIG_IP_NF_IPTABLES
./scripts/config --enable CONFIG_NETFILTER_XTABLES
./scripts/config --enable CONFIG_NLS_ISO8859_1
./scripts/config --enable CONFIG_BLK_DEV_DM
#Docker:
#
# Networking options
#
./scripts/config --module CONFIG_PACKET_DIAG
./scripts/config --module CONFIG_UNIX_DIAG
./scripts/config --enable CONFIG_XFRM
./scripts/config --enable CONFIG_XFRM_OFFLOAD
./scripts/config --module CONFIG_XFRM_ALGO
./scripts/config --module CONFIG_XFRM_USER
./scripts/config --module CONFIG_XFRM_INTERFACE
./scripts/config --enable CONFIG_XFRM_SUB_POLICY
./scripts/config --enable CONFIG_XFRM_MIGRATE
./scripts/config --enable CONFIG_XFRM_STATISTICS
./scripts/config --module CONFIG_NET_KEY
./scripts/config --enable CONFIG_NET_KEY_MIGRATE
./scripts/config --enable CONFIG_IP_MULTICAST
./scripts/config --enable CONFIG_IP_ADVANCED_ROUTER
./scripts/config --enable CONFIG_IP_FIB_TRIE_STATS
./scripts/config --enable CONFIG_IP_MULTIPLE_TABLES
./scripts/config --enable CONFIG_IP_ROUTE_MULTIPATH
./scripts/config --enable CONFIG_IP_ROUTE_VERBOSE
./scripts/config --enable CONFIG_IP_PNP
./scripts/config --enable CONFIG_IP_PNP_DHCP
./scripts/config --enable CONFIG_IP_PNP_BOOTP
./scripts/config --enable CONFIG_IP_PNP_RARP
./scripts/config --module CONFIG_NET_IPIP
./scripts/config --module CONFIG_NET_IPGRE_DEMUX
./scripts/config --module CONFIG_NET_IP_TUNNEL
./scripts/config --enable CONFIG_XDP_SOCKETS
./scripts/config --module CONFIG_NET_IPVTI
./scripts/config --module CONFIG_NET_IPGRE
./scripts/config --enable CONFIG_NET_IPGRE_BROADCAST
./scripts/config --enable CONFIG_IP_MROUTE
./scripts/config --module CONFIG_NET_FOU
./scripts/config --enable CONFIG_NET_FOU_IP_TUNNELS
./scripts/config --module CONFIG_INET_AH
./scripts/config --module CONFIG_INET_ESP
./scripts/config --module CONFIG_INET_ESP_OFFLOAD
./scripts/config --module CONFIG_INET_IPCOMP
./scripts/config --module CONFIG_INET_XFRM_TUNNEL
./scripts/config --module CONFIG_INET_TUNNEL
./scripts/config --module CONFIG_INET_DIAG
./scripts/config --module CONFIG_INET_TCP_DIAG
./scripts/config --module CONFIG_INET_UDP_DIAG
./scripts/config --module CONFIG_INET_RAW_DIAG
./scripts/config --enable CONFIG_INET_DIAG_DESTROY
./scripts/config --enable CONFIG_TCP_CONG_ADVANCED
./scripts/config --module CONFIG_TCP_CONG_HSTCP
./scripts/config --module CONFIG_TCP_CONG_HYBLA
./scripts/config --module CONFIG_TCP_CONG_VEGAS
./scripts/config --module CONFIG_TCP_CONG_NV
./scripts/config --module CONFIG_TCP_CONG_SCALABLE
./scripts/config --module CONFIG_TCP_CONG_LP
./scripts/config --module CONFIG_TCP_CONG_VENO
./scripts/config --module CONFIG_TCP_CONG_YEAH
./scripts/config --module CONFIG_TCP_CONG_ILLINOIS
./scripts/config --module CONFIG_TCP_CONG_DCTCP
./scripts/config --module CONFIG_TCP_CONG_CDG
./scripts/config --module CONFIG_TCP_CONG_BBR
./scripts/config --enable CONFIG_IPV6_MROUTE
./scripts/config --enable CONFIG_IPV6_SEG6_LWTUNNEL
./scripts/config --enable CONFIG_IPV6_SEG6_HMAC
./scripts/config --enable CONFIG_NETLABEL
./scripts/config --enable CONFIG_MPTCP
./scripts/config --module CONFIG_INET_MPTCP_DIAG
./scripts/config --enable CONFIG_NETWORK_SECMARK
./scripts/config --enable CONFIG_NETWORK_PHY_TIMESTAMPING
./scripts/config --enable CONFIG_NETFILTER
./scripts/config --enable CONFIG_NETFILTER_ADVANCED
./scripts/config --module CONFIG_BRIDGE_NETFILTER
#
# Core Netfilter Configuration
#
./scripts/config --module CONFIG_NETFILTER_NETLINK_ACCT
./scripts/config --module CONFIG_NETFILTER_NETLINK_QUEUE
./scripts/config --module CONFIG_NETFILTER_NETLINK_LOG
./scripts/config --module CONFIG_NETFILTER_NETLINK_OSF
./scripts/config --module CONFIG_NF_CONNTRACK
./scripts/config --enable CONFIG_NF_CONNTRACK_SECMARK
./scripts/config --enable CONFIG_NF_CONNTRACK_ZONES
./scripts/config --enable CONFIG_NF_CONNTRACK_PROCFS
./scripts/config --enable CONFIG_NF_CONNTRACK_EVENTS
./scripts/config --enable CONFIG_NF_CONNTRACK_TIMEOUT
./scripts/config --enable CONFIG_NF_CONNTRACK_TIMESTAMP
./scripts/config --enable CONFIG_NF_CONNTRACK_LABELS
./scripts/config --module CONFIG_NF_CONNTRACK_AMANDA
./scripts/config --module CONFIG_NF_CONNTRACK_FTP
./scripts/config --module CONFIG_NF_CONNTRACK_H323
./scripts/config --module CONFIG_NF_CONNTRACK_IRC
./scripts/config --module CONFIG_NF_CONNTRACK_NETBIOS_NS
./scripts/config --module CONFIG_NF_CONNTRACK_SNMP
./scripts/config --module CONFIG_NF_CONNTRACK_PPTP
./scripts/config --module CONFIG_NF_CONNTRACK_SANE
./scripts/config --module CONFIG_NF_CONNTRACK_SIP
./scripts/config --module CONFIG_NF_CONNTRACK_TFTP
./scripts/config --module CONFIG_NF_CT_NETLINK
./scripts/config --module CONFIG_NF_CT_NETLINK_TIMEOUT
./scripts/config --module CONFIG_NF_CT_NETLINK_HELPER
./scripts/config --enable CONFIG_NETFILTER_NETLINK_GLUE_CT
./scripts/config --module CONFIG_NF_NAT
./scripts/config --module CONFIG_NF_NAT_FTP
./scripts/config --module CONFIG_NF_NAT_TFTP
./scripts/config --module CONFIG_NF_TABLES
./scripts/config --enable CONFIG_NF_TABLES_INET
./scripts/config --enable CONFIG_NF_TABLES_NETDEV
./scripts/config --module CONFIG_NFT_NUMGEN
./scripts/config --module CONFIG_NFT_CT
./scripts/config --module CONFIG_NFT_CONNLIMIT
./scripts/config --module CONFIG_NFT_LOG
./scripts/config --module CONFIG_NFT_LIMIT
./scripts/config --module CONFIG_NFT_MASQ
./scripts/config --module CONFIG_NFT_REDIR
./scripts/config --module CONFIG_NFT_NAT
./scripts/config --module CONFIG_NFT_TUNNEL
./scripts/config --module CONFIG_NFT_OBJREF
./scripts/config --module CONFIG_NFT_QUEUE
./scripts/config --module CONFIG_NFT_QUOTA
./scripts/config --module CONFIG_NFT_REJECT
./scripts/config --module CONFIG_NFT_COMPAT
./scripts/config --module CONFIG_NFT_HASH
./scripts/config --module CONFIG_NFT_FIB_INET
./scripts/config --module CONFIG_NFT_XFRM
./scripts/config --module CONFIG_NFT_SOCKET
./scripts/config --module CONFIG_NFT_OSF
./scripts/config --module CONFIG_NFT_TPROXY
./scripts/config --module CONFIG_NFT_SYNPROXY
./scripts/config --module CONFIG_NF_DUP_NETDEV
./scripts/config --module CONFIG_NFT_DUP_NETDEV
./scripts/config --module CONFIG_NFT_FWD_NETDEV
./scripts/config --module CONFIG_NFT_FIB_NETDEV
./scripts/config --module CONFIG_NF_FLOW_TABLE
#
# Xtables combined modules
#
./scripts/config --module CONFIG_NETFILTER_XT_MARK
./scripts/config --module CONFIG_NETFILTER_XT_CONNMARK
./scripts/config --module CONFIG_NETFILTER_XT_SET
#
# Xtables targets
#
./scripts/config --module CONFIG_NETFILTER_XT_TARGET_AUDIT
./scripts/config --module CONFIG_NETFILTER_XT_TARGET_CHECKSUM
./scripts/config --module CONFIG_NETFILTER_XT_TARGET_CLASSIFY
./scripts/config --module CONFIG_NETFILTER_XT_TARGET_CONNMARK
./scripts/config --module CONFIG_NETFILTER_XT_TARGET_CONNSECMARK
./scripts/config --module CONFIG_NETFILTER_XT_TARGET_CT
./scripts/config --module CONFIG_NETFILTER_XT_TARGET_DSCP
./scripts/config --module CONFIG_NETFILTER_XT_TARGET_HL
./scripts/config --module CONFIG_NETFILTER_XT_TARGET_HMARK
./scripts/config --module CONFIG_NETFILTER_XT_TARGET_IDLETIMER
./scripts/config --module CONFIG_NETFILTER_XT_TARGET_LOG
./scripts/config --module CONFIG_NETFILTER_XT_TARGET_MARK
./scripts/config --module CONFIG_NETFILTER_XT_TARGET_NETMAP
./scripts/config --module CONFIG_NETFILTER_XT_TARGET_NFLOG
./scripts/config --module CONFIG_NETFILTER_XT_TARGET_NFQUEUE
./scripts/config --module CONFIG_NETFILTER_XT_TARGET_RATEEST
./scripts/config --module CONFIG_NETFILTER_XT_TARGET_TEE
./scripts/config --module CONFIG_NETFILTER_XT_TARGET_TPROXY
./scripts/config --module CONFIG_NETFILTER_XT_TARGET_TRACE
./scripts/config --module CONFIG_NETFILTER_XT_TARGET_SECMARK
./scripts/config --module CONFIG_NETFILTER_XT_TARGET_TCPMSS
./scripts/config --module CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP
#
# Xtables matches
#
./scripts/config --module CONFIG_NETFILTER_XT_MATCH_ADDRTYPE
./scripts/config --module CONFIG_NETFILTER_XT_MATCH_BPF
./scripts/config --module CONFIG_NETFILTER_XT_MATCH_CGROUP
./scripts/config --module CONFIG_NETFILTER_XT_MATCH_CLUSTER
./scripts/config --module CONFIG_NETFILTER_XT_MATCH_COMMENT
./scripts/config --module CONFIG_NETFILTER_XT_MATCH_CONNBYTES
./scripts/config --module CONFIG_NETFILTER_XT_MATCH_CONNLABEL
./scripts/config --module CONFIG_NETFILTER_XT_MATCH_CONNLIMIT
./scripts/config --module CONFIG_NETFILTER_XT_MATCH_CONNMARK
./scripts/config --module CONFIG_NETFILTER_XT_MATCH_CONNTRACK
./scripts/config --module CONFIG_NETFILTER_XT_MATCH_CPU
./scripts/config --module CONFIG_NETFILTER_XT_MATCH_DCCP
./scripts/config --module CONFIG_NETFILTER_XT_MATCH_DEVGROUP
./scripts/config --module CONFIG_NETFILTER_XT_MATCH_DSCP
./scripts/config --module CONFIG_NETFILTER_XT_MATCH_ECN
./scripts/config --module CONFIG_NETFILTER_XT_MATCH_ESP
./scripts/config --module CONFIG_NETFILTER_XT_MATCH_HASHLIMIT
./scripts/config --module CONFIG_NETFILTER_XT_MATCH_HELPER
./scripts/config --module CONFIG_NETFILTER_XT_MATCH_IPCOMP
./scripts/config --module CONFIG_NETFILTER_XT_MATCH_IPRANGE
./scripts/config --module CONFIG_NETFILTER_XT_MATCH_IPVS
./scripts/config --module CONFIG_NETFILTER_XT_MATCH_L2TP
./scripts/config --module CONFIG_NETFILTER_XT_MATCH_LENGTH
./scripts/config --module CONFIG_NETFILTER_XT_MATCH_LIMIT
./scripts/config --module CONFIG_NETFILTER_XT_MATCH_MAC
./scripts/config --module CONFIG_NETFILTER_XT_MATCH_MARK
./scripts/config --module CONFIG_NETFILTER_XT_MATCH_MULTIPORT
./scripts/config --module CONFIG_NETFILTER_XT_MATCH_NFACCT
./scripts/config --module CONFIG_NETFILTER_XT_MATCH_OSF
./scripts/config --module CONFIG_NETFILTER_XT_MATCH_OWNER
./scripts/config --module CONFIG_NETFILTER_XT_MATCH_POLICY
./scripts/config --module CONFIG_NETFILTER_XT_MATCH_PHYSDEV
./scripts/config --module CONFIG_NETFILTER_XT_MATCH_PKTTYPE
./scripts/config --module CONFIG_NETFILTER_XT_MATCH_QUOTA
./scripts/config --module CONFIG_NETFILTER_XT_MATCH_RATEEST
./scripts/config --module CONFIG_NETFILTER_XT_MATCH_REALM
./scripts/config --module CONFIG_NETFILTER_XT_MATCH_RECENT
./scripts/config --module CONFIG_NETFILTER_XT_MATCH_SCTP
./scripts/config --module CONFIG_NETFILTER_XT_MATCH_SOCKET
./scripts/config --module CONFIG_NETFILTER_XT_MATCH_STATE
./scripts/config --module CONFIG_NETFILTER_XT_MATCH_STATISTIC
./scripts/config --module CONFIG_NETFILTER_XT_MATCH_STRING
./scripts/config --module CONFIG_NETFILTER_XT_MATCH_TCPMSS
./scripts/config --module CONFIG_NETFILTER_XT_MATCH_TIME
./scripts/config --module CONFIG_NETFILTER_XT_MATCH_U32
./scripts/config --module CONFIG_IP_SET
./scripts/config --module CONFIG_IP_SET_BITMAP_IP
./scripts/config --module CONFIG_IP_SET_BITMAP_IPMAC
./scripts/config --module CONFIG_IP_SET_BITMAP_PORT
./scripts/config --module CONFIG_IP_SET_HASH_IP
./scripts/config --module CONFIG_IP_SET_HASH_IPMARK
./scripts/config --module CONFIG_IP_SET_HASH_IPPORT
./scripts/config --module CONFIG_IP_SET_HASH_IPPORTIP
./scripts/config --module CONFIG_IP_SET_HASH_IPPORTNET
./scripts/config --module CONFIG_IP_SET_HASH_IPMAC
./scripts/config --module CONFIG_IP_SET_HASH_MAC
./scripts/config --module CONFIG_IP_SET_HASH_NETPORTNET
./scripts/config --module CONFIG_IP_SET_HASH_NET
./scripts/config --module CONFIG_IP_SET_HASH_NETNET
./scripts/config --module CONFIG_IP_SET_HASH_NETPORT
./scripts/config --module CONFIG_IP_SET_HASH_NETIFACE
./scripts/config --module CONFIG_IP_SET_LIST_SET
./scripts/config --module CONFIG_IP_VS
./scripts/config --enable CONFIG_IP_VS_IPV6
#
# IPVS transport protocol load balancing support
#
./scripts/config --enable CONFIG_IP_VS_PROTO_TCP
./scripts/config --enable CONFIG_IP_VS_PROTO_UDP
./scripts/config --enable CONFIG_IP_VS_PROTO_ESP
./scripts/config --enable CONFIG_IP_VS_PROTO_AH
./scripts/config --enable CONFIG_IP_VS_PROTO_SCTP
#
# IPVS scheduler
#
./scripts/config --module CONFIG_IP_VS_RR
./scripts/config --module CONFIG_IP_VS_WRR
./scripts/config --module CONFIG_IP_VS_LC
./scripts/config --module CONFIG_IP_VS_WLC
./scripts/config --module CONFIG_IP_VS_FO
./scripts/config --module CONFIG_IP_VS_OVF
./scripts/config --module CONFIG_IP_VS_LBLC
./scripts/config --module CONFIG_IP_VS_LBLCR
./scripts/config --module CONFIG_IP_VS_DH
./scripts/config --module CONFIG_IP_VS_SH
./scripts/config --module CONFIG_IP_VS_MH
./scripts/config --module CONFIG_IP_VS_SED
./scripts/config --module CONFIG_IP_VS_NQ
#
# IPVS application helper
#
./scripts/config --module CONFIG_IP_VS_FTP
./scripts/config --enable CONFIG_IP_VS_NFCT
./scripts/config --module CONFIG_IP_VS_PE_SIP
#
# IP: Netfilter Configuration
#
./scripts/config --module CONFIG_NF_SOCKET_IPV4
./scripts/config --module CONFIG_NF_TPROXY_IPV4
./scripts/config --module CONFIG_NFT_DUP_IPV4
./scripts/config --module CONFIG_NFT_FIB_IPV4
./scripts/config --enable CONFIG_NF_TABLES_ARP
./scripts/config --module CONFIG_NF_LOG_ARP
./scripts/config --module CONFIG_NF_LOG_IPV4
./scripts/config --module CONFIG_NF_REJECT_IPV4
./scripts/config --module CONFIG_IP_NF_MATCH_AH
./scripts/config --module CONFIG_IP_NF_MATCH_ECN
./scripts/config --module CONFIG_IP_NF_MATCH_RPFILTER
./scripts/config --module CONFIG_IP_NF_MATCH_TTL
./scripts/config --module CONFIG_IP_NF_FILTER
./scripts/config --module CONFIG_IP_NF_TARGET_REJECT
./scripts/config --module CONFIG_IP_NF_TARGET_SYNPROXY
./scripts/config --module CONFIG_IP_NF_NAT
./scripts/config --module CONFIG_IP_NF_TARGET_MASQUERADE
./scripts/config --module CONFIG_IP_NF_TARGET_NETMAP
./scripts/config --module CONFIG_IP_NF_TARGET_REDIRECT
./scripts/config --module CONFIG_IP_NF_MANGLE
./scripts/config --module CONFIG_IP_NF_TARGET_CLUSTERIP
./scripts/config --module CONFIG_IP_NF_TARGET_ECN
./scripts/config --module CONFIG_IP_NF_TARGET_TTL
./scripts/config --module CONFIG_IP_NF_RAW
./scripts/config --module CONFIG_IP_NF_SECURITY
./scripts/config --module CONFIG_IP_NF_ARPTABLES
./scripts/config --module CONFIG_IP_NF_ARPFILTER
./scripts/config --module CONFIG_IP_NF_ARP_MANGLE
#
# IPv6: Netfilter Configuration
#
./scripts/config --module CONFIG_NF_SOCKET_IPV6
./scripts/config --module CONFIG_NF_TPROXY_IPV6
./scripts/config --module CONFIG_NFT_DUP_IPV6
./scripts/config --module CONFIG_NFT_FIB_IPV6
./scripts/config --module CONFIG_NF_REJECT_IPV6
./scripts/config --module CONFIG_NF_LOG_IPV6
./scripts/config --module CONFIG_IP6_NF_IPTABLES
./scripts/config --module CONFIG_IP6_NF_MATCH_AH
./scripts/config --module CONFIG_IP6_NF_MATCH_EUI64
./scripts/config --module CONFIG_IP6_NF_MATCH_FRAG
./scripts/config --module CONFIG_IP6_NF_MATCH_OPTS
./scripts/config --module CONFIG_IP6_NF_MATCH_HL
./scripts/config --module CONFIG_IP6_NF_MATCH_IPV6HEADER
./scripts/config --module CONFIG_IP6_NF_MATCH_MH
./scripts/config --module CONFIG_IP6_NF_MATCH_RPFILTER
./scripts/config --module CONFIG_IP6_NF_MATCH_RT
./scripts/config --module CONFIG_IP6_NF_MATCH_SRH
./scripts/config --module CONFIG_IP6_NF_TARGET_HL
./scripts/config --module CONFIG_IP6_NF_FILTER
./scripts/config --module CONFIG_IP6_NF_TARGET_REJECT
./scripts/config --module CONFIG_IP6_NF_TARGET_SYNPROXY
./scripts/config --module CONFIG_IP6_NF_MANGLE
./scripts/config --module CONFIG_IP6_NF_RAW
./scripts/config --module CONFIG_IP6_NF_SECURITY
./scripts/config --module CONFIG_IP6_NF_NAT
./scripts/config --module CONFIG_IP6_NF_TARGET_MASQUERADE
./scripts/config --module CONFIG_IP6_NF_TARGET_NPT
./scripts/config --module CONFIG_NF_TABLES_BRIDGE
./scripts/config --module CONFIG_NFT_BRIDGE_META
./scripts/config --module CONFIG_NFT_BRIDGE_REJECT
./scripts/config --module CONFIG_NF_LOG_BRIDGE
./scripts/config --module CONFIG_NF_CONNTRACK_BRIDGE
./scripts/config --module CONFIG_BRIDGE_NF_EBTABLES
./scripts/config --module CONFIG_BRIDGE_EBT_BROUTE
./scripts/config --module CONFIG_BRIDGE_EBT_T_FILTER
./scripts/config --module CONFIG_BRIDGE_EBT_T_NAT
./scripts/config --module CONFIG_BRIDGE_EBT_802_3
./scripts/config --module CONFIG_BRIDGE_EBT_AMONG
./scripts/config --module CONFIG_BRIDGE_EBT_ARP
./scripts/config --module CONFIG_BRIDGE_EBT_IP
./scripts/config --module CONFIG_BRIDGE_EBT_IP6
./scripts/config --module CONFIG_BRIDGE_EBT_LIMIT
./scripts/config --module CONFIG_BRIDGE_EBT_MARK
./scripts/config --module CONFIG_BRIDGE_EBT_PKTTYPE
./scripts/config --module CONFIG_BRIDGE_EBT_STP
./scripts/config --module CONFIG_BRIDGE_EBT_VLAN
./scripts/config --module CONFIG_BRIDGE_EBT_ARPREPLY
./scripts/config --module CONFIG_BRIDGE_EBT_DNAT
./scripts/config --module CONFIG_BRIDGE_EBT_MARK_T
./scripts/config --module CONFIG_BRIDGE_EBT_REDIRECT
./scripts/config --module CONFIG_BRIDGE_EBT_SNAT
./scripts/config --module CONFIG_BRIDGE_EBT_LOG
./scripts/config --module CONFIG_BRIDGE_EBT_NFLOG
./scripts/config --module CONFIG_IP_DCCP
./scripts/config --enable CONFIG_STP
./scripts/config --module CONFIG_BRIDGE
./scripts/config --enable CONFIG_BRIDGE_VLAN_FILTERING
./scripts/config --module CONFIG_VLAN_8021Q
./scripts/config --enable CONFIG_VLAN_8021Q_GVRP
./scripts/config --enable CONFIG_VLAN_8021Q_MVRP
./scripts/config --module CONFIG_LLC
./scripts/config --module CONFIG_LLC2
./scripts/config --enable CONFIG_NET_SCHED
#
# Queueing/Scheduling
#
./scripts/config --module CONFIG_NET_SCH_CBQ
./scripts/config --module CONFIG_NET_SCH_HTB
./scripts/config --module CONFIG_NET_SCH_HFSC
./scripts/config --module CONFIG_NET_SCH_PRIO
./scripts/config --module CONFIG_NET_SCH_MULTIQ
./scripts/config --module CONFIG_NET_SCH_RED
./scripts/config --module CONFIG_NET_SCH_SFB
./scripts/config --module CONFIG_NET_SCH_SFQ
./scripts/config --module CONFIG_NET_SCH_TEQL
./scripts/config --module CONFIG_NET_SCH_TBF
./scripts/config --module CONFIG_NET_SCH_CBS
./scripts/config --module CONFIG_NET_SCH_ETF
./scripts/config --module CONFIG_NET_SCH_TAPRIO
./scripts/config --module CONFIG_NET_SCH_GRED
./scripts/config --module CONFIG_NET_SCH_DSMARK
./scripts/config --module CONFIG_NET_SCH_NETEM
./scripts/config --module CONFIG_NET_SCH_DRR
./scripts/config --module CONFIG_NET_SCH_MQPRIO
./scripts/config --module CONFIG_NET_SCH_SKBPRIO
./scripts/config --module CONFIG_NET_SCH_CHOKE
./scripts/config --module CONFIG_NET_SCH_QFQ
./scripts/config --module CONFIG_NET_SCH_CODEL
./scripts/config --module CONFIG_NET_SCH_FQ_CODEL
./scripts/config --module CONFIG_NET_SCH_CAKE
./scripts/config --module CONFIG_NET_SCH_FQ
./scripts/config --module CONFIG_NET_SCH_HHF
./scripts/config --module CONFIG_NET_SCH_PIE
./scripts/config --module CONFIG_NET_SCH_FQ_PIE
./scripts/config --module CONFIG_NET_SCH_PLUG
./scripts/config --module CONFIG_NET_SCH_ETS
#
# Classification
#
./scripts/config --module CONFIG_NET_CLS_BASIC
./scripts/config --module CONFIG_NET_CLS_ROUTE4
./scripts/config --module CONFIG_NET_CLS_FW
./scripts/config --module CONFIG_NET_CLS_U32
./scripts/config --enable CONFIG_CLS_U32_PERF
./scripts/config --enable CONFIG_CLS_U32_MARK
./scripts/config --module CONFIG_NET_CLS_RSVP
./scripts/config --module CONFIG_NET_CLS_RSVP6
./scripts/config --module CONFIG_NET_CLS_FLOW
./scripts/config --enable CONFIG_NET_CLS_CGROUP
./scripts/config --module CONFIG_NET_CLS_BPF
./scripts/config --module CONFIG_NET_CLS_FLOWER
./scripts/config --module CONFIG_NET_CLS_MATCHALL
./scripts/config --enable CONFIG_NET_EMATCH
./scripts/config --enable CONFIG_NET_CLS_ACT
./scripts/config --enable CONFIG_CGROUP_NET_PRIO
./scripts/config --enable CONFIG_VSOCKETS
#
# IEEE 1394 (FireWire) support
#
./scripts/config --module CONFIG_DUMMY
./scripts/config --module CONFIG_WIREGUARD
./scripts/config --module CONFIG_MACVLAN
./scripts/config --module CONFIG_MACVTAP
./scripts/config --module CONFIG_IPVLAN
./scripts/config --module CONFIG_IPVTAP
./scripts/config --module CONFIG_VXLAN
./scripts/config --enable CONFIG_VETH
./scripts/config --enable CONFIG_VIRTIO_NET
./scripts/config --module CONFIG_OVERLAY_FS
./scripts/config --module CONFIG_BTRFS_FS
./scripts/config --enable CONFIG_BTRFS_FS_POSIX_ACL
./scripts/config --disable CONFIG_RAID6_PQ_BENCHMARK
./scripts/config --enable CONFIG_CRYPTO_AEAD
./scripts/config --module CONFIG_CRYPTO_GCM
./scripts/config --module CONFIG_CRYPTO_SEQIV
./scripts/config --module CONFIG_CRYPTO_GHASH
echo "make -j${CORES} ARCH=riscv CROSS_COMPILE=${CC} olddefconfig"
make -j${CORES} ARCH=riscv CROSS_COMPILE=${CC} olddefconfig
else
echo "make ARCH=riscv CROSS_COMPILE=${CC} defconfig"
make ARCH=riscv CROSS_COMPILE=${CC} defconfig
./scripts/config --enable CONFIG_PCIE_MICROCHIP_HOST
./scripts/config --enable CONFIG_OF_OVERLAY
./scripts/config --enable CONFIG_I2C
./scripts/config --enable CONFIG_EEPROM_AT24
./scripts/config --enable CONFIG_I2C_MICROCHIP_CORE
./scripts/config --enable CONFIG_SPI_MICROCHIP_CORE
./scripts/config --enable CONFIG_SPI_MICROCHIP_CORE_QSPI
./scripts/config --module CONFIG_SPI_SPIDEV
./scripts/config --enable CONFIG_GPIO_SYSFS
./scripts/config --enable CONFIG_HW_RANDOM_POLARFIRE_SOC
./scripts/config --enable CONFIG_USB_MUSB_HDRC
./scripts/config --enable CONFIG_NOP_USB_XCEIV
./scripts/config --enable CONFIG_USB_MUSB_POLARFIRE_SOC
./scripts/config --enable CONFIG_USB_MUSB_DUAL_ROLE
./scripts/config --enable CONFIG_MAILBOX
./scripts/config --enable CONFIG_POLARFIRE_SOC_MAILBOX
./scripts/config --disable CONFIG_SUN6I_MSGBOX
./scripts/config --enable CONFIG_REMOTEPROC
./scripts/config --enable CONFIG_REMOTEPROC_CDEV
./scripts/config --enable CONFIG_POLARFIRE_SOC_SYS_CTRL
./scripts/config --enable CONFIG_USB_GADGET
./scripts/config --enable CONFIG_USB_CONFIGFS
./scripts/config --enable CONFIG_CONFIGFS_FS
./scripts/config --enable CONFIG_USB_CONFIGFS_SERIAL
./scripts/config --enable CONFIG_USB_CONFIGFS_ACM
./scripts/config --enable CONFIG_USB_CONFIGFS_OBEX
./scripts/config --enable CONFIG_USB_CONFIGFS_NCM
./scripts/config --enable CONFIG_USB_CONFIGFS_ECM
./scripts/config --enable CONFIG_USB_CONFIGFS_ECM_SUBSET
./scripts/config --enable CONFIG_USB_CONFIGFS_RNDIS
./scripts/config --enable CONFIG_USB_CONFIGFS_EEM
./scripts/config --enable CONFIG_USB_CONFIGFS_PHONET
./scripts/config --enable CONFIG_USB_CONFIGFS_MASS_STORAGE
./scripts/config --enable CONFIG_USB_CONFIGFS_F_LB_SS
./scripts/config --enable CONFIG_USB_CONFIGFS_F_FS
./scripts/config --enable CONFIG_USB_CONFIGFS_F_UAC1
./scripts/config --enable CONFIG_USB_CONFIGFS_F_UAC2
./scripts/config --enable CONFIG_USB_CONFIGFS_F_MIDI
./scripts/config --enable CONFIG_USB_CONFIGFS_F_HID
./scripts/config --enable CONFIG_USB_CONFIGFS_F_UVC
./scripts/config --enable CONFIG_USB_CONFIGFS_F_PRINTER
./scripts/config --module CONFIG_MEDIA_SUPPORT
./scripts/config --enable CONFIG_MEDIA_SUPPORT_FILTER
./scripts/config --enable CONFIG_MEDIA_SUBDRV_AUTOSELECT
./scripts/config --enable CONFIG_MEDIA_CAMERA_SUPPORT
./scripts/config --module CONFIG_VIDEO_IMX219
./scripts/config --module CONFIG_IIO
#Cleanup large DRM...
./scripts/config --disable CONFIG_DRM
./scripts/config --disable CONFIG_DRM_RADEON
./scripts/config --disable CONFIG_DRM_NOUVEAU
./scripts/config --disable CONFIG_DRM_SUN4I
#Optimize:
./scripts/config --enable CONFIG_IP_NF_IPTABLES
./scripts/config --enable CONFIG_NETFILTER_XTABLES
./scripts/config --enable CONFIG_NLS_ISO8859_1
./scripts/config --enable CONFIG_BLK_DEV_DM
echo "make -j${CORES} ARCH=riscv CROSS_COMPILE=${CC} olddefconfig"
make -j${CORES} ARCH=riscv CROSS_COMPILE=${CC} olddefconfig
fi
echo "make -j${CORES} ARCH=riscv CROSS_COMPILE=${CC} Image modules dtbs"
make -j${CORES} ARCH=riscv CROSS_COMPILE=${CC} Image modules dtbs
if [ ! -f ./arch/riscv/boot/Image ] ; then
echo "Build Failed"
exit 2
fi
KERNEL_UTS=$(cat "${wdir}/linux/include/generated/utsrelease.h" | awk '{print $3}' | sed 's/\"//g' )
if [ -d "${wdir}/deploy/tmp/" ] ; then
rm -rf "${wdir}/deploy/tmp/"
fi
mkdir -p "${wdir}/deploy/tmp/"
make -s ARCH=riscv CROSS_COMPILE=${CC} modules_install INSTALL_MOD_PATH="${wdir}/deploy/tmp"
if [ -f "${wdir}/deploy/${KERNEL_UTS}-modules.tar.gz" ] ; then
rm -rf "${wdir}/deploy/${KERNEL_UTS}-modules.tar.gz" || true
fi
echo "Compressing ${KERNEL_UTS}-modules.tar.gz..."
echo "${KERNEL_UTS}" > "${wdir}/deploy/.modules"
cd "${wdir}/deploy/tmp" || true
tar --create --gzip --file "../${KERNEL_UTS}-modules.tar.gz" ./*
cd "${wdir}/linux/" || exit
rm -rf "${wdir}/deploy/tmp" || true
if [ -f arch/riscv/configs/mpfs_defconfig ] ; then
cp -v ./.config ../patches/linux/mpfs_defconfig
cp -v ./arch/riscv/boot/dts/microchip/mpfs-beaglev-fire.dts ../patches/linux/dts/mpfs-beaglev-fire.dts
cp -v ./arch/riscv/boot/dts/microchip/mpfs-beaglev-fire-fabric.dtsi ../patches/linux/dts/mpfs-beaglev-fire-fabric.dtsi
else
cp -v ./.config ../patches/linux/mainline/defconfig
cp -v ./arch/riscv/boot/dts/microchip/mpfs-beaglev-fire.dts ../patches/linux/mainline/dts/mpfs-beaglev-fire.dts
cp -v ./arch/riscv/boot/dts/microchip/mpfs-beaglev-fire-fabric.dtsi ../patches/linux/mainline/dts/mpfs-beaglev-fire-fabric.dtsi
fi
if [ ! -d ../deploy/input/ ] ; then
mkdir -p ../deploy/input/ || true
fi
cp -v ./arch/riscv/boot/Image ../deploy/input/
cp -v ./arch/riscv/boot/dts/microchip/mpfs-beaglev-fire.dtb ../deploy/input/
cd ../
cp -v ./patches/linux/beaglev_fire.its ./deploy/input/
cd ./deploy/input/
gzip -9 Image -c > Image.gz
if [ -f ../../u-boot/tools/mkimage ] ; then
../../u-boot/tools/mkimage -f beaglev_fire.its beaglev_fire.itb
fi
#