mirror of
https://github.com/riptidewave93/UNVR-NAS.git
synced 2025-02-12 10:31:55 +00:00
fix: add btrfs support using magic (#5)
* Use old GPL release from https://github.com/fabianishere/udm-kernel/tree/master to build and steal it's btrfs kernel module + depends. * Can't use full kernel, NIC issues everywhere, so we will just use it for btrfs for OMV. Will move to our own kernel fully if I can get an updated GPL release from Ui. * BONUS: Fixup issue where system would reboot when shutdown from touch screen
This commit is contained in:
parent
be235b00ac
commit
f399e13958
13 changed files with 495 additions and 8 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -2,3 +2,4 @@
|
|||
unifi-firmware/*.bin
|
||||
BuildEnv
|
||||
output
|
||||
downloads
|
|
@ -40,6 +40,7 @@ RUN apt-get update && apt-get install -yq \
|
|||
qemu-user-static \
|
||||
rsync \
|
||||
swig \
|
||||
u-boot-tools \
|
||||
unzip \
|
||||
uuid-runtime \
|
||||
wget \
|
||||
|
|
|
@ -101,9 +101,8 @@ To restore back to the factory UNVR-Pro firmware, you can do the following steps
|
|||
* Installation is Hard
|
||||
* Need to simplify the install process, this should be much easier once I can get latest GPL kernel source (no more uboot env stuff)
|
||||
* OpenMediaVault
|
||||
* BTRFS does not work, period
|
||||
* No kernel module in UBNT kernel, need new kernel source and we can make so many things better...
|
||||
* Might try to build an out-of-tree module for this, more research needed
|
||||
* BTRFS is in TESTING
|
||||
* Building an out-of-tree module for this using an OLD Unifi GPL release from https://github.com/fabianishere/udm-kernel
|
||||
* Reset Button
|
||||
* Only works to reboot the system
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#!/bin/bash
|
||||
|
||||
if [ "$1" == "poweroff" ]; then
|
||||
poweroff
|
||||
poweroff --halt
|
||||
elif [ "$1" == "reboot" ]; then
|
||||
reboot
|
||||
else
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
# Load our kernel modules
|
||||
/usr/sbin/modprobe ubnthal
|
||||
/usr/sbin/modprobe btrfs
|
||||
|
||||
# Set our kernel panic timeout SUPER short so we reboot on crash
|
||||
echo 2 > /proc/sys/kernel/panic
|
||||
|
|
372
overlay/kernel/arch/arm64/configs/alpine_v2_defconfig
Normal file
372
overlay/kernel/arch/arm64/configs/alpine_v2_defconfig
Normal file
|
@ -0,0 +1,372 @@
|
|||
# CONFIG_LOCALVERSION_AUTO is not set
|
||||
CONFIG_SYSVIPC=y
|
||||
CONFIG_POSIX_MQUEUE=y
|
||||
CONFIG_AUDIT=y
|
||||
CONFIG_NO_HZ_IDLE=y
|
||||
CONFIG_HIGH_RES_TIMERS=y
|
||||
CONFIG_PREEMPT_VOLUNTARY=y
|
||||
CONFIG_IRQ_TIME_ACCOUNTING=y
|
||||
CONFIG_BSD_PROCESS_ACCT=y
|
||||
CONFIG_BSD_PROCESS_ACCT_V3=y
|
||||
CONFIG_TASKSTATS=y
|
||||
CONFIG_TASK_DELAY_ACCT=y
|
||||
CONFIG_TASK_XACCT=y
|
||||
CONFIG_TASK_IO_ACCOUNTING=y
|
||||
CONFIG_IKCONFIG=y
|
||||
CONFIG_IKCONFIG_PROC=y
|
||||
CONFIG_CGROUPS=y
|
||||
CONFIG_MEMCG=y
|
||||
CONFIG_MEMCG_SWAP=y
|
||||
CONFIG_BLK_CGROUP=y
|
||||
CONFIG_CGROUP_SCHED=y
|
||||
CONFIG_CFS_BANDWIDTH=y
|
||||
CONFIG_RT_GROUP_SCHED=y
|
||||
CONFIG_CGROUP_FREEZER=y
|
||||
CONFIG_CPUSETS=y
|
||||
CONFIG_CGROUP_DEVICE=y
|
||||
CONFIG_CGROUP_CPUACCT=y
|
||||
CONFIG_USER_NS=y
|
||||
CONFIG_CHECKPOINT_RESTORE=y
|
||||
CONFIG_BLK_DEV_INITRD=y
|
||||
CONFIG_KALLSYMS_ALL=y
|
||||
CONFIG_DEBUG_PERF_USE_VMALLOC=y
|
||||
CONFIG_PROFILING=y
|
||||
CONFIG_ARCH_ALPINE=y
|
||||
CONFIG_PCI=y
|
||||
CONFIG_PCI_IOV=y
|
||||
CONFIG_PCI_INTERNAL_ALPINE=y
|
||||
CONFIG_PCI_EXTERNAL_ALPINE=y
|
||||
CONFIG_PCI_EXTERNAL_ERR_ALPINE=y
|
||||
CONFIG_NR_CPUS=4
|
||||
CONFIG_HZ_100=y
|
||||
CONFIG_CRASH_DUMP=y
|
||||
# CONFIG_ARM64_PAN is not set
|
||||
# CONFIG_ARM64_LSE_ATOMICS is not set
|
||||
# CONFIG_ARM64_VHE is not set
|
||||
# CONFIG_ARM64_SVE is not set
|
||||
CONFIG_CPU_IDLE=y
|
||||
CONFIG_CPU_IDLE_GOV_LADDER=y
|
||||
CONFIG_ARM_CPUIDLE=y
|
||||
# CONFIG_EFI_ARMSTUB_DTB_LOADER is not set
|
||||
# CONFIG_STACKPROTECTOR_STRONG is not set
|
||||
# CONFIG_VMAP_STACK is not set
|
||||
CONFIG_MODULES=y
|
||||
CONFIG_MODULE_UNLOAD=y
|
||||
CONFIG_BLK_DEV_THROTTLING=y
|
||||
CONFIG_BLK_CGROUP_IOLATENCY=y
|
||||
CONFIG_CFQ_GROUP_IOSCHED=y
|
||||
# CONFIG_MQ_IOSCHED_DEADLINE is not set
|
||||
# CONFIG_MQ_IOSCHED_KYBER is not set
|
||||
CONFIG_TRANSPARENT_HUGEPAGE=y
|
||||
CONFIG_NET=y
|
||||
CONFIG_PACKET=y
|
||||
CONFIG_UNIX=y
|
||||
CONFIG_XFRM_USER=y
|
||||
CONFIG_NET_KEY=m
|
||||
CONFIG_INET=y
|
||||
CONFIG_IP_MULTICAST=y
|
||||
CONFIG_IP_PNP=y
|
||||
CONFIG_IP_PNP_BOOTP=y
|
||||
CONFIG_INET_AH=m
|
||||
CONFIG_INET_ESP=m
|
||||
CONFIG_INET_IPCOMP=m
|
||||
CONFIG_INET_XFRM_MODE_TRANSPORT=m
|
||||
CONFIG_INET_XFRM_MODE_TUNNEL=m
|
||||
CONFIG_INET_XFRM_MODE_BEET=m
|
||||
# CONFIG_INET_DIAG is not set
|
||||
CONFIG_INET6_AH=m
|
||||
CONFIG_INET6_ESP=m
|
||||
CONFIG_INET6_IPCOMP=m
|
||||
CONFIG_INET6_XFRM_MODE_TRANSPORT=m
|
||||
CONFIG_INET6_XFRM_MODE_TUNNEL=m
|
||||
CONFIG_INET6_XFRM_MODE_BEET=m
|
||||
CONFIG_IPV6_SIT=m
|
||||
CONFIG_IPV6_MULTIPLE_TABLES=y
|
||||
CONFIG_IPV6_SUBTREES=y
|
||||
CONFIG_NET_DSA=m
|
||||
CONFIG_VLAN_8021Q=m
|
||||
CONFIG_BPF_JIT=y
|
||||
CONFIG_BT=y
|
||||
CONFIG_BT_RFCOMM=y
|
||||
CONFIG_BT_BNEP=y
|
||||
CONFIG_BT_HIDP=y
|
||||
CONFIG_BT_NORDIC_QUIRK_LOOKUP_FIX=y
|
||||
CONFIG_BT_HCIBTUSB=y
|
||||
CONFIG_BT_HCIUART=y
|
||||
CONFIG_BT_HCIUART_H4=y
|
||||
CONFIG_BT_HCIUART_BCSP=y
|
||||
CONFIG_FAILOVER=y
|
||||
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
|
||||
CONFIG_DEVTMPFS=y
|
||||
CONFIG_DEVTMPFS_MOUNT=y
|
||||
CONFIG_MTD=y
|
||||
CONFIG_MTD_BLOCK=y
|
||||
CONFIG_MTD_M25P80=y
|
||||
CONFIG_MTD_NAND=m
|
||||
CONFIG_MTD_NAND_AL=m
|
||||
CONFIG_MTD_SPI_NOR=y
|
||||
CONFIG_OF_OVERLAY=y
|
||||
CONFIG_BLK_DEV_LOOP=m
|
||||
CONFIG_BLK_DEV_RAM=m
|
||||
CONFIG_BLK_DEV_RAM_COUNT=1
|
||||
CONFIG_EEPROM_AT24=y
|
||||
CONFIG_EEPROM_AT25=m
|
||||
# CONFIG_SCSI_PROC_FS is not set
|
||||
CONFIG_BLK_DEV_SD=y
|
||||
CONFIG_CHR_DEV_SG=y
|
||||
# CONFIG_SCSI_SAS_HOST_SMP is not set
|
||||
CONFIG_SCSI_HISI_SAS=y
|
||||
CONFIG_SCSI_HISI_SAS_PCI=y
|
||||
CONFIG_SCSI_MPT2SAS=y
|
||||
CONFIG_SCSI_UFSHCD=m
|
||||
CONFIG_SCSI_UFSHCD_PLATFORM=m
|
||||
CONFIG_ATA=y
|
||||
# CONFIG_SATA_PMP is not set
|
||||
CONFIG_SATA_AHCI=y
|
||||
CONFIG_SATA_AHCI_PLATFORM=y
|
||||
CONFIG_AHCI_ALPINE=y
|
||||
CONFIG_SATA_SIL24=y
|
||||
# CONFIG_ATA_SFF is not set
|
||||
CONFIG_MD=y
|
||||
CONFIG_BLK_DEV_MD=m
|
||||
CONFIG_MD_LINEAR=m
|
||||
CONFIG_MD_RAID0=m
|
||||
CONFIG_MD_RAID1=m
|
||||
CONFIG_MD_RAID10=m
|
||||
CONFIG_MD_RAID456=m
|
||||
CONFIG_BLK_DEV_DM=y
|
||||
CONFIG_DM_FLAKEY=m
|
||||
CONFIG_DM_LOG_WRITES=m
|
||||
CONFIG_NETDEVICES=y
|
||||
# CONFIG_NET_VENDOR_3COM is not set
|
||||
# CONFIG_NET_VENDOR_ADAPTEC is not set
|
||||
# CONFIG_NET_VENDOR_AGERE is not set
|
||||
# CONFIG_NET_VENDOR_ALACRITECH is not set
|
||||
# CONFIG_NET_VENDOR_ALTEON is not set
|
||||
# CONFIG_NET_VENDOR_AMAZON is not set
|
||||
# CONFIG_NET_VENDOR_AMD is not set
|
||||
# CONFIG_NET_VENDOR_AQUANTIA is not set
|
||||
# CONFIG_NET_VENDOR_ARC is not set
|
||||
# CONFIG_NET_VENDOR_ATHEROS is not set
|
||||
# CONFIG_NET_VENDOR_AURORA is not set
|
||||
# CONFIG_NET_VENDOR_BROADCOM is not set
|
||||
# CONFIG_NET_VENDOR_BROCADE is not set
|
||||
# CONFIG_NET_VENDOR_CADENCE is not set
|
||||
# CONFIG_NET_VENDOR_CAVIUM is not set
|
||||
# CONFIG_NET_VENDOR_CHELSIO is not set
|
||||
# CONFIG_NET_VENDOR_CISCO is not set
|
||||
# CONFIG_NET_VENDOR_CORTINA is not set
|
||||
# CONFIG_NET_VENDOR_DEC is not set
|
||||
# CONFIG_NET_VENDOR_DLINK is not set
|
||||
# CONFIG_NET_VENDOR_EMULEX is not set
|
||||
# CONFIG_NET_VENDOR_EZCHIP is not set
|
||||
# CONFIG_NET_VENDOR_HISILICON is not set
|
||||
# CONFIG_NET_VENDOR_HP is not set
|
||||
# CONFIG_NET_VENDOR_HUAWEI is not set
|
||||
# CONFIG_NET_VENDOR_INTEL is not set
|
||||
# CONFIG_NET_VENDOR_MARVELL is not set
|
||||
# CONFIG_NET_VENDOR_MELLANOX is not set
|
||||
# CONFIG_NET_VENDOR_MICREL is not set
|
||||
# CONFIG_NET_VENDOR_MICROCHIP is not set
|
||||
# CONFIG_NET_VENDOR_MICROSEMI is not set
|
||||
# CONFIG_NET_VENDOR_MYRI is not set
|
||||
# CONFIG_NET_VENDOR_NATSEMI is not set
|
||||
# CONFIG_NET_VENDOR_NETERION is not set
|
||||
# CONFIG_NET_VENDOR_NETRONOME is not set
|
||||
# CONFIG_NET_VENDOR_NI is not set
|
||||
# CONFIG_NET_VENDOR_NVIDIA is not set
|
||||
# CONFIG_NET_VENDOR_OKI is not set
|
||||
# CONFIG_NET_VENDOR_PACKET_ENGINES is not set
|
||||
# CONFIG_NET_VENDOR_QLOGIC is not set
|
||||
# CONFIG_NET_VENDOR_QUALCOMM is not set
|
||||
# CONFIG_NET_VENDOR_RDC is not set
|
||||
# CONFIG_NET_VENDOR_REALTEK is not set
|
||||
# CONFIG_NET_VENDOR_RENESAS is not set
|
||||
# CONFIG_NET_VENDOR_ROCKER is not set
|
||||
# CONFIG_NET_VENDOR_SAMSUNG is not set
|
||||
# CONFIG_NET_VENDOR_SEEQ is not set
|
||||
# CONFIG_NET_VENDOR_SOLARFLARE is not set
|
||||
# CONFIG_NET_VENDOR_SILAN is not set
|
||||
# CONFIG_NET_VENDOR_SIS is not set
|
||||
# CONFIG_NET_VENDOR_SMSC is not set
|
||||
# CONFIG_NET_VENDOR_SOCIONEXT is not set
|
||||
# CONFIG_NET_VENDOR_STMICRO is not set
|
||||
# CONFIG_NET_VENDOR_SUN is not set
|
||||
# CONFIG_NET_VENDOR_SYNOPSYS is not set
|
||||
CONFIG_NET_AL_ETH=y
|
||||
# CONFIG_NET_VENDOR_TEHUTI is not set
|
||||
# CONFIG_NET_VENDOR_TI is not set
|
||||
# CONFIG_NET_VENDOR_VIA is not set
|
||||
# CONFIG_NET_VENDOR_WIZNET is not set
|
||||
CONFIG_AR8033_DISABLE_EEE=y
|
||||
CONFIG_AT8033_SEL_1P8=y
|
||||
CONFIG_AT803X_PHY=y
|
||||
CONFIG_MARVELL_PHY=m
|
||||
CONFIG_MARVELL_10G_PHY=m
|
||||
CONFIG_MICREL_PHY=y
|
||||
CONFIG_MICROCHIP_PHY=m
|
||||
CONFIG_REALTEK_PHY=y
|
||||
CONFIG_ROCKCHIP_PHY=y
|
||||
# CONFIG_USB_NET_DRIVERS is not set
|
||||
# CONFIG_WLAN is not set
|
||||
# CONFIG_INPUT_LEDS is not set
|
||||
CONFIG_INPUT_POLLDEV=m
|
||||
CONFIG_INPUT_MATRIXKMAP=y
|
||||
CONFIG_INPUT_EVDEV=y
|
||||
# CONFIG_KEYBOARD_ATKBD is not set
|
||||
CONFIG_KEYBOARD_GPIO=y
|
||||
# CONFIG_INPUT_MOUSE is not set
|
||||
# CONFIG_SERIO_SERPORT is not set
|
||||
CONFIG_SERIO_AMBAKMI=y
|
||||
CONFIG_VT_HW_CONSOLE_BINDING=y
|
||||
CONFIG_LEGACY_PTY_COUNT=16
|
||||
CONFIG_SERIAL_8250=y
|
||||
CONFIG_SERIAL_8250_CONSOLE=y
|
||||
CONFIG_SERIAL_8250_EXTENDED=y
|
||||
CONFIG_SERIAL_8250_SHARE_IRQ=y
|
||||
CONFIG_SERIAL_8250_DW=y
|
||||
CONFIG_SERIAL_OF_PLATFORM=y
|
||||
CONFIG_HW_RANDOM=y
|
||||
CONFIG_HW_RANDOM_CAVIUM=m
|
||||
CONFIG_I2C=y
|
||||
CONFIG_I2C_CHARDEV=y
|
||||
CONFIG_I2C_MUX=y
|
||||
CONFIG_I2C_MUX_PCA954x=y
|
||||
CONFIG_I2C_DESIGNWARE_PLATFORM=y
|
||||
CONFIG_I2C_DESIGNWARE_PCI=y
|
||||
CONFIG_SPI=y
|
||||
CONFIG_SPI_DESIGNWARE=y
|
||||
CONFIG_SPI_DW_MMIO=y
|
||||
CONFIG_SPI_SPIDEV=y
|
||||
CONFIG_SPMI=y
|
||||
CONFIG_PTP_1588_CLOCK=y
|
||||
CONFIG_GPIOLIB=y
|
||||
CONFIG_GPIO_SYSFS=y
|
||||
CONFIG_GPIO_GENERIC_PLATFORM=y
|
||||
CONFIG_GPIO_PL061=y
|
||||
CONFIG_GPIO_AL_SGPO=y
|
||||
CONFIG_GPIO_PCA953X=y
|
||||
CONFIG_GPIO_PCA953X_IRQ=y
|
||||
CONFIG_POWER_RESET_ALPINE=y
|
||||
CONFIG_SENSORS_ADT7475=y
|
||||
CONFIG_SENSORS_LM63=y
|
||||
CONFIG_THERMAL=y
|
||||
CONFIG_AL_THERMAL_V2=y
|
||||
CONFIG_AL_THERMAL_V3=y
|
||||
CONFIG_MFD_SYSCON=y
|
||||
CONFIG_VGA_ARB_MAX_GPUS=0
|
||||
# CONFIG_USB_HID is not set
|
||||
CONFIG_USB=y
|
||||
CONFIG_USB_XHCI_HCD=y
|
||||
CONFIG_USB_XHCI_PLATFORM=y
|
||||
CONFIG_USB_EHCI_HCD=y
|
||||
CONFIG_USB_EHCI_ROOT_HUB_TT=y
|
||||
CONFIG_USB_EHCI_HCD_PLATFORM=y
|
||||
CONFIG_USB_OHCI_HCD=y
|
||||
CONFIG_USB_OHCI_HCD_PLATFORM=y
|
||||
CONFIG_USB_ACM=y
|
||||
CONFIG_USB_STORAGE=y
|
||||
CONFIG_USB_SERIAL=y
|
||||
CONFIG_USB_SERIAL_CP210X=y
|
||||
CONFIG_USB_SERIAL_FTDI_SIO=y
|
||||
CONFIG_NEW_LEDS=y
|
||||
CONFIG_LEDS_CLASS=y
|
||||
CONFIG_LEDS_GPIO=y
|
||||
CONFIG_LEDS_TRIGGERS=y
|
||||
CONFIG_LEDS_TRIGGER_EXTERNAL=y
|
||||
CONFIG_EDAC=y
|
||||
CONFIG_RTC_CLASS=y
|
||||
# CONFIG_RTC_NVMEM is not set
|
||||
CONFIG_RTC_DRV_DS1307=y
|
||||
CONFIG_RTC_DRV_S35390A=y
|
||||
CONFIG_DMADEVICES=y
|
||||
CONFIG_ASYNC_TX_DMA=y
|
||||
CONFIG_AL_DMA=y
|
||||
CONFIG_AL_DMA_STATS=y
|
||||
CONFIG_AL_DMA_PCI_IOV=y
|
||||
CONFIG_SYNC_FILE=y
|
||||
# CONFIG_VIRTIO_MENU is not set
|
||||
CONFIG_COMMON_CLK_VERSATILE=y
|
||||
CONFIG_CLK_SP810=y
|
||||
# CONFIG_COMMON_CLK_XGENE is not set
|
||||
# CONFIG_FSL_ERRATUM_A008585 is not set
|
||||
# CONFIG_HISILICON_ERRATUM_161010101 is not set
|
||||
# CONFIG_ARM64_ERRATUM_858921 is not set
|
||||
# CONFIG_IOMMU_SUPPORT is not set
|
||||
CONFIG_ALPINE_PLATFORM="ALPINE_V2"
|
||||
CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=y
|
||||
CONFIG_MEMORY=y
|
||||
CONFIG_ALPINE_IOFIC=y
|
||||
CONFIG_GENERIC_PHY=y
|
||||
CONFIG_ARM_CCI_PMU=y
|
||||
# CONFIG_ARM_CCI5xx_PMU is not set
|
||||
# CONFIG_ARM_PMU is not set
|
||||
CONFIG_RAS=y
|
||||
CONFIG_EXT4_FS=y
|
||||
CONFIG_EXT4_FS_POSIX_ACL=y
|
||||
CONFIG_BTRFS_FS=m
|
||||
CONFIG_BTRFS_FS_POSIX_ACL=y
|
||||
# CONFIG_MANDATORY_FILE_LOCKING is not set
|
||||
CONFIG_QUOTA=y
|
||||
# CONFIG_PRINT_QUOTA_WARNING is not set
|
||||
CONFIG_OVERLAY_FS=y
|
||||
CONFIG_PROC_KCORE=y
|
||||
CONFIG_TMPFS=y
|
||||
CONFIG_TMPFS_POSIX_ACL=y
|
||||
CONFIG_HUGETLBFS=y
|
||||
CONFIG_CONFIGFS_FS=y
|
||||
CONFIG_EFIVAR_FS=y
|
||||
CONFIG_ECRYPT_FS=y
|
||||
CONFIG_SQUASHFS=m
|
||||
CONFIG_SQUASHFS_FILE_DIRECT=y
|
||||
CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU=y
|
||||
CONFIG_SQUASHFS_XATTR=y
|
||||
CONFIG_SQUASHFS_ZSTD=y
|
||||
CONFIG_PSTORE=y
|
||||
CONFIG_PSTORE_CONSOLE=y
|
||||
CONFIG_PSTORE_RAM=m
|
||||
CONFIG_NFS_FS=y
|
||||
CONFIG_NFS_V3_ACL=y
|
||||
CONFIG_NFS_V4=y
|
||||
CONFIG_NFS_SWAP=y
|
||||
CONFIG_NFS_V4_1=y
|
||||
CONFIG_NFS_V4_2=y
|
||||
CONFIG_NFS_V4_1_MIGRATION=y
|
||||
CONFIG_ROOT_NFS=y
|
||||
CONFIG_NFSD=y
|
||||
CONFIG_NFSD_V3_ACL=y
|
||||
CONFIG_NFSD_V4=y
|
||||
CONFIG_NFSD_BLOCKLAYOUT=y
|
||||
CONFIG_NFSD_SCSILAYOUT=y
|
||||
CONFIG_NFSD_FLEXFILELAYOUT=y
|
||||
CONFIG_NFSD_FAULT_INJECTION=y
|
||||
CONFIG_SUNRPC_DEBUG=y
|
||||
CONFIG_CIFS=y
|
||||
# CONFIG_CIFS_DEBUG is not set
|
||||
CONFIG_NLS_ISO8859_1=y
|
||||
CONFIG_ENCRYPTED_KEYS=y
|
||||
CONFIG_CRYPTO_RSA=y
|
||||
# CONFIG_CRYPTO_MANAGER_DISABLE_TESTS is not set
|
||||
CONFIG_CRYPTO_GF128MUL=y
|
||||
CONFIG_CRYPTO_CRYPTD=y
|
||||
CONFIG_CRYPTO_AUTHENC=y
|
||||
CONFIG_CRYPTO_ECHAINIV=y
|
||||
CONFIG_CRYPTO_SHA1=y
|
||||
CONFIG_CRYPTO_LZO=y
|
||||
CONFIG_CRYPTO_ANSI_CPRNG=y
|
||||
CONFIG_CRC64=y
|
||||
CONFIG_LIBCRC32C=y
|
||||
CONFIG_PRINTK_TIME=y
|
||||
CONFIG_CONSOLE_LOGLEVEL_DEFAULT=4
|
||||
CONFIG_MAGIC_SYSRQ=y
|
||||
CONFIG_DEBUG_KERNEL=y
|
||||
CONFIG_SOFTLOCKUP_DETECTOR=y
|
||||
CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC=y
|
||||
CONFIG_PANIC_ON_OOPS=y
|
||||
CONFIG_PANIC_TIMEOUT=5
|
||||
CONFIG_STACKTRACE=y
|
||||
# CONFIG_RCU_TRACE is not set
|
||||
# CONFIG_UPROBE_EVENTS is not set
|
||||
# CONFIG_TRACING_EVENTS_GPIO is not set
|
||||
# CONFIG_RUNTIME_TESTING_MENU is not set
|
||||
# CONFIG_STRICT_DEVMEM is not set
|
27
scripts/02_download_dependencies.sh
Executable file
27
scripts/02_download_dependencies.sh
Executable file
|
@ -0,0 +1,27 @@
|
|||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
# Source our common vars
|
||||
scripts_path="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
. ${scripts_path}/vars.sh
|
||||
|
||||
debug_msg "Starting 02_download_dependencies.sh"
|
||||
|
||||
# Make sure our BuildEnv dir exists
|
||||
if [ ! -d ${root_path}/downloads ]; then
|
||||
mkdir ${root_path}/downloads
|
||||
fi
|
||||
|
||||
# Toolchain
|
||||
if [ ! -f ${root_path}/downloads/${toolchain_filename} ]; then
|
||||
debug_msg "Downloading toolchain..."
|
||||
wget ${toolchain_url} -P ${root_path}/downloads
|
||||
fi
|
||||
|
||||
# Kernel
|
||||
if [ ! -f ${root_path}/downloads/${kernel_filename} ]; then
|
||||
debug_msg "Downloading Kernel..."
|
||||
wget ${kernel_src} -O ${root_path}/downloads/${kernel_filename}
|
||||
fi
|
||||
|
||||
debug_msg "Finished 02_download_dependencies.sh"
|
|
@ -7,6 +7,18 @@ scripts_path="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
|||
|
||||
debug_msg "Starting 03_docker.sh"
|
||||
|
||||
# Start with things we can do now
|
||||
if [ ! -d ${build_path}/toolchain ]; then
|
||||
debug_msg "Setting up the toolchain for docker..."
|
||||
mkdir -p ${build_path}/toolchain
|
||||
tar -xf ${root_path}/downloads/${toolchain_filename} -C ${build_path}/toolchain
|
||||
fi
|
||||
|
||||
if [ ! -d ${build_path}/kernel ]; then
|
||||
debug_msg "Docker: Building Kernel..."
|
||||
docker run --ulimit nofile=1024 --rm -v "${root_path}:/repo:Z" -it ${docker_tag} /repo/scripts/docker/build_kernel.sh
|
||||
fi
|
||||
|
||||
debug_msg "Doing safety checks... please enter your password for sudo if prompted..."
|
||||
# Before we do anything, make our dirs, and validate they are not mounted atm. If they are, exit!
|
||||
if mountpoint -q ${build_path}/rootfs/boot; then
|
||||
|
|
|
@ -20,6 +20,6 @@ docker run --rm -v "${root_path}:/repo:Z" -it ${docker_tag} /repo/scripts/docker
|
|||
TIMESTAMP=`date +%Y%m%d-%H%M`
|
||||
mkdir -p ${root_path}/output/${TIMESTAMP}
|
||||
mv ${build_path}/final/debian*.img.gz ${root_path}/output/${TIMESTAMP}/
|
||||
sudo rm -rf ${build_path} # Be gone, we done buildin! :)
|
||||
#sudo rm -rf ${build_path} # Be gone, we done buildin! :)
|
||||
|
||||
debug_msg "Finished 04_post_docker.sh"
|
||||
debug_msg "Finished 04_post_docker.sh"
|
||||
|
|
|
@ -10,6 +10,9 @@ export APT_LISTCHANGES_FRONTEND=none
|
|||
debconf-set-selections /debconf.set
|
||||
rm -f /debconf.set
|
||||
|
||||
# Run depmod for our kernel so we pick up btrfs + more
|
||||
depmod -a 4.19.152-alpine-unvr
|
||||
|
||||
# Initial package install
|
||||
apt-get clean
|
||||
apt-get update
|
||||
|
|
54
scripts/docker/build_kernel.sh
Executable file
54
scripts/docker/build_kernel.sh
Executable file
|
@ -0,0 +1,54 @@
|
|||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
scripts_path="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && cd .. && pwd )"
|
||||
. ${scripts_path}/vars.sh
|
||||
|
||||
# Make our temp builddir outside of the world of mounts for SPEEDS
|
||||
kernel_builddir=$(mktemp -d)
|
||||
tar -xzf ${root_path}/downloads/${kernel_filename} -C ${kernel_builddir}
|
||||
|
||||
# Exports baby
|
||||
export PATH=${build_path}/toolchain/${toolchain_bin_path}:${PATH}
|
||||
export GCC_COLORS=auto
|
||||
export CROSS_COMPILE=${toolchain_cross_compile}
|
||||
export ARCH=arm64
|
||||
|
||||
# Here we go
|
||||
cd ${kernel_builddir}/${kernel_filename%.tar.gz}
|
||||
|
||||
# If we have patches, apply them
|
||||
if [[ -d ${root_path}/patches/kernel/ ]]; then
|
||||
for file in ${root_path}/patches/kernel/*.patch; do
|
||||
echo "Applying kernel patch ${file}"
|
||||
patch -p1 < ${file}
|
||||
done
|
||||
fi
|
||||
|
||||
# Apply overlay if it exists
|
||||
if [[ -d ${root_path}/overlay/${kernel_overlay_dir}/ ]]; then
|
||||
echo "Applying ${kernel_overlay_dir} overlay"
|
||||
cp -R ${root_path}/overlay/${kernel_overlay_dir}/* ./
|
||||
fi
|
||||
|
||||
# Normally we would build a full kernel, but the old GPL doesn't work right with NICs and I don't
|
||||
# want to debug a 2+ year old GPL source. Waiting for Unifi to release the lastest GPL code, and
|
||||
# then we can fully move to our own custom kernel but for now we just use the old GPL to strip out
|
||||
# some modules. This is why some lines below are commented out.
|
||||
|
||||
# Build as normal, with our extra version set to a timestamp
|
||||
make ${kernel_config}
|
||||
make -j`getconf _NPROCESSORS_ONLN` EXTRAVERSION=-alpine-unvr # Build kernel and modules
|
||||
#make -j`getconf _NPROCESSORS_ONLN` EXTRAVERSION=-alpine-unvr Image.gz # makes gzip image
|
||||
make INSTALL_MOD_PATH=./modules-dir -j`getconf _NPROCESSORS_ONLN` EXTRAVERSION=-alpine-unvr modules_install # installs modules to dir
|
||||
#mkimage -A arm64 -O linux -T kernel -C gzip -a 04080000 -e 04080000 -n "Linux-UNVR-NAS-$(date +%Y%m%d-%H%M%S)" -d ./arch/arm64/boot/Image.gz uImage
|
||||
|
||||
# Save our config
|
||||
mkdir -p ${build_path}/kernel
|
||||
make savedefconfig
|
||||
mv defconfig ${build_path}/kernel/kernel_config
|
||||
|
||||
# Save our kernel(s) and libs
|
||||
#cp ./arch/arm64/boot/Image.gz ${build_path}/kernel
|
||||
#mv uImage ${build_path}/kernel
|
||||
mv ./modules-dir ${build_path}/kernel/kernel-modules
|
|
@ -19,10 +19,15 @@ debootstrap --no-check-gpg --foreign --arch=${deb_arch} --include=apt-transport-
|
|||
cp /usr/bin/qemu-aarch64-static usr/bin/
|
||||
chroot ${build_path}/rootfs /debootstrap/debootstrap --second-stage
|
||||
|
||||
# Copy over our kernel modules and kernel
|
||||
mv -f "${build_path}/fw-extract/rootfs/lib/modules" ${build_path}/rootfs/lib
|
||||
# Copy over our kernel modules and kernel from the FS image
|
||||
# Note that in the future, we wanna use our own kernel, but the current GPL is way too old!!!!!
|
||||
mv -f "${build_path}/fw-extract/rootfs/lib/modules" "${build_path}/rootfs/lib"
|
||||
cp "${build_path}/fw-extract/kernel.bin" "${build_path}/rootfs/boot/uImage"
|
||||
|
||||
# Now, for the old kernel we built, pull in btrfs + depends modules (we do depmod in bootstrap)
|
||||
cp "${build_path}/kernel/kernel-modules/lib/modules/4.19.152-alpine-unvr/kernel/lib/zstd/zstd_compress.ko" "${build_path}/rootfs/lib/modules/4.19.152-alpine-unvr/extra/"
|
||||
cp "${build_path}/kernel/kernel-modules/lib/modules/4.19.152-alpine-unvr/kernel/fs/btrfs/btrfs.ko" "${build_path}/rootfs/lib/modules/4.19.152-alpine-unvr/extra/"
|
||||
|
||||
# Copy over our overlay if we have one
|
||||
if [[ -d ${root_path}/overlay/${fs_overlay_dir}/ ]]; then
|
||||
echo "Applying ${fs_overlay_dir} overlay"
|
||||
|
|
|
@ -10,6 +10,18 @@ docker_tag=unvr-nas:builder
|
|||
firmware_filename="f449-UNVRPRO-4.0.3-fdec2c4f-1855-4eb6-8711-e22f8f904922.bin"
|
||||
firmware_md5="5dcdc03bdec1524767007fcd12e81777"
|
||||
|
||||
# Toolchain
|
||||
toolchain_url="https://developer.arm.com/-/media/Files/downloads/gnu/12.2.rel1/binrel/arm-gnu-toolchain-12.2.rel1-x86_64-aarch64-none-linux-gnu.tar.xz"
|
||||
toolchain_filename="$(basename ${toolchain_url})"
|
||||
toolchain_bin_path="${toolchain_filename%.tar.xz}/bin"
|
||||
toolchain_cross_compile="aarch64-none-linux-gnu-"
|
||||
|
||||
# Kernel
|
||||
kernel_src="https://github.com/fabianishere/udm-kernel/archive/refs/heads/master.tar.gz"
|
||||
kernel_filename="udm-kernel-master.tar.gz"
|
||||
kernel_config="alpine_v2_defconfig"
|
||||
kernel_overlay_dir="kernel"
|
||||
|
||||
# Genimage
|
||||
genimage_src="https://github.com/pengutronix/genimage/releases/download/v16/genimage-16.tar.xz"
|
||||
genimage_filename="$(basename ${genimage_src})"
|
||||
|
|
Loading…
Reference in a new issue