Compare commits
2 Commits
d9f241f304
...
0f9aa94f9a
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0f9aa94f9a | ||
|
|
65e4601c9f |
12
.gitignore
vendored
12
.gitignore
vendored
@@ -1,12 +0,0 @@
|
||||
/_build/lib
|
||||
/_build/vmlinuz
|
||||
/_build/vmlinuz.config
|
||||
/_build/u-boot-rockchip.bin
|
||||
/_build/dtbs
|
||||
/_build/*.dtb
|
||||
/_build/gokr-rebuild*
|
||||
/_build/overlays
|
||||
/_build/Dockerfile
|
||||
/_build/src_build
|
||||
/_build/*.tar.gz
|
||||
/_build/*.tar.xz
|
||||
49
_build/Dockerfile
Normal file
49
_build/Dockerfile
Normal file
@@ -0,0 +1,49 @@
|
||||
|
||||
FROM docker.io/library/debian:trixie
|
||||
|
||||
RUN apt-get update && apt-get install -y \
|
||||
crossbuild-essential-arm64 \
|
||||
build-essential bc libssl-dev bison flex libelf-dev ncurses-dev ca-certificates zstd kmod python3
|
||||
|
||||
COPY gokr-rebuild-kernel /usr/bin/gokr-rebuild-kernel
|
||||
COPY config.addendum.txt /usr/_src/config.addendum.txt
|
||||
COPY config.addendum.txt /usr/_src/.config
|
||||
COPY config.addendum.txt /usr/src/.config
|
||||
COPY patch/0001-gokrazy-logo.patch /usr/_src/0001-gokrazy-logo.patch
|
||||
COPY patch/drv-spi-spidev-remove-warnings.patch /usr/_src/drv-spi-spidev-remove-warnings.patch
|
||||
COPY patch/general-add-hdmi-mks-ips50-resolutions.patch /usr/_src/general-add-hdmi-mks-ips50-resolutions.patch
|
||||
COPY patch/general-add-pll-hdmi-timings.patch /usr/_src/general-add-pll-hdmi-timings.patch
|
||||
COPY patch/general-cryptov1-trng.patch /usr/_src/general-cryptov1-trng.patch
|
||||
COPY patch/general-disable-mtu-validation.patch /usr/_src/general-disable-mtu-validation.patch
|
||||
COPY patch/general-drm-rockchip-Set-dma-mask-to-64-bit.patch /usr/_src/general-drm-rockchip-Set-dma-mask-to-64-bit.patch
|
||||
COPY patch/general-fix-es8316-kernel-panic.patch /usr/_src/general-fix-es8316-kernel-panic.patch
|
||||
COPY patch/general-fix-mmc-signal-voltage-before-reboot.patch /usr/_src/general-fix-mmc-signal-voltage-before-reboot.patch
|
||||
COPY patch/general-hdmi-clock-fixes.patch /usr/_src/general-hdmi-clock-fixes.patch
|
||||
COPY patch/general-increase-spdif-dma-burst.patch /usr/_src/general-increase-spdif-dma-burst.patch
|
||||
COPY patch/general-increasing_DMA_block_memory_allocation_to_2048.patch /usr/_src/general-increasing_DMA_block_memory_allocation_to_2048.patch
|
||||
COPY patch/general-pl330-01-fix-periodic-transfers.patch /usr/_src/general-pl330-01-fix-periodic-transfers.patch
|
||||
COPY patch/general-pl330-02-add-support-for-interleaved-transfers.patch /usr/_src/general-pl330-02-add-support-for-interleaved-transfers.patch
|
||||
COPY patch/general-pl330-04-bigger-mcode-buffer.patch /usr/_src/general-pl330-04-bigger-mcode-buffer.patch
|
||||
COPY patch/general-pl330-05-fix-unbalanced-power-down.patch /usr/_src/general-pl330-05-fix-unbalanced-power-down.patch
|
||||
COPY patch/general-pl330-06-fix-buffer-underruns.patch /usr/_src/general-pl330-06-fix-buffer-underruns.patch
|
||||
COPY patch/general-possibility-of-disabling-rk808-rtc.patch /usr/_src/general-possibility-of-disabling-rk808-rtc.patch
|
||||
COPY patch/general-rk808-configurable-switch-voltage-steps.patch /usr/_src/general-rk808-configurable-switch-voltage-steps.patch
|
||||
COPY patch/general-v4l2-iep-driver.patch /usr/_src/general-v4l2-iep-driver.patch
|
||||
COPY patch/media-0001-Add-rkvdec-Support-v5.patch /usr/_src/media-0001-Add-rkvdec-Support-v5.patch
|
||||
COPY patch/media-0002-media-rkvdec-remove-vb2_is_busy-check-in-rkvdec_s_ct.patch /usr/_src/media-0002-media-rkvdec-remove-vb2_is_busy-check-in-rkvdec_s_ct.patch
|
||||
COPY patch/media-0002-v4l2-core-Initialize-h264-frame_mbs_only_flag-.patch /usr/_src/media-0002-v4l2-core-Initialize-h264-frame_mbs_only_flag-.patch
|
||||
COPY patch/media-0003-rk3568-disable-hantro-h264.patch /usr/_src/media-0003-rk3568-disable-hantro-h264.patch
|
||||
COPY patch/net-ethernet-realtek-add-r8169-LED-configuration-from-OF.patch /usr/_src/net-ethernet-realtek-add-r8169-LED-configuration-from-OF.patch
|
||||
COPY patch/regulator-add-fan53200-driver.patch /usr/_src/regulator-add-fan53200-driver.patch
|
||||
COPY patch/rk3588-0010-fix-clk-divisions.patch /usr/_src/rk3588-0010-fix-clk-divisions.patch
|
||||
COPY patch/rk3588-1063-arm64-dts-rockchip-Enable-automatic-fan-control-on-t.patch /usr/_src/rk3588-1063-arm64-dts-rockchip-Enable-automatic-fan-control-on-t.patch
|
||||
COPY patch/rk3588-1201-arm64-dts-rockchip-Enable-the-NPU-on-CM3588.patch /usr/_src/rk3588-1201-arm64-dts-rockchip-Enable-the-NPU-on-CM3588.patch
|
||||
COPY patch/rk35xx-montjoie-crypto-v2-rk35xx.patch /usr/_src/rk35xx-montjoie-crypto-v2-rk35xx.patch
|
||||
|
||||
RUN echo 'builduser:x:1000:1000:nobody:/:/bin/sh' >> /etc/passwd && \
|
||||
chown -R 1000:1000 /usr/src /usr/_src
|
||||
|
||||
USER builduser
|
||||
WORKDIR /usr/src
|
||||
ENV GOKRAZY_IN_DOCKER=1
|
||||
ENTRYPOINT ["/usr/bin/gokr-rebuild-kernel"]
|
||||
@@ -394,3 +394,200 @@ CONFIG_BPQETHER=y
|
||||
CONFIG_BAYCOM_SER_FDX=y
|
||||
CONFIG_BAYCOM_SER_HDX=y
|
||||
CONFIG_YAM=y
|
||||
|
||||
# Digital Potentiometers
|
||||
# CONFIG_AD525X_DPOT=y
|
||||
# CONFIG_AD525X_DPOT_I2C=y
|
||||
# CONFIG_AD525X_DPOT_SPI=y
|
||||
|
||||
# For tinyconfig
|
||||
CONFIG_EXT4_FS=y
|
||||
CONFIG_EXT4_FS_POSIX_ACL=y
|
||||
CONFIG_NET=y
|
||||
CONFIG_INET=y
|
||||
CONFIG_NETFILTER=y
|
||||
CONFIG_IP_MULTICAST=y
|
||||
CONFIG_UNIX=y
|
||||
# tcpdump
|
||||
CONFIG_PACKET=y
|
||||
# ??
|
||||
CONFIG_POSIX_MQUEUE=y
|
||||
CONFIG_BINFMT_SCRIPT=y
|
||||
CONFIG_BINFMT_ELF=y
|
||||
# Possibly need more for podman
|
||||
CONFIG_CGROUPS=y
|
||||
CONFIG_SUSPEND=y
|
||||
CONFIG_CPU_IDLE=y
|
||||
CONFIG_ARM_PSCI_CPUIDLE=y
|
||||
CONFIG_CPU_FREQ=y
|
||||
CONFIG_CPU_FREQ_GOV_ATTR_SET=y
|
||||
CONFIG_CPU_FREQ_GOV_COMMON=y
|
||||
CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
|
||||
CONFIG_CPU_FREQ_GOV_POWERSAVE=y
|
||||
CONFIG_CPU_FREQ_GOV_USERSPACE=y
|
||||
CONFIG_CPU_FREQ_GOV_ONDEMAND=y
|
||||
CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y
|
||||
CONFIG_ROCKCHIP_ERRATUM_3588001=y
|
||||
CONFIG_ARM64_ERRATUM_1165522=y
|
||||
CONFIG_ARM64_ERRATUM_1319367=y
|
||||
CONFIG_ARM64_ERRATUM_1530923=y
|
||||
CONFIG_ACPI=y
|
||||
# CONFIG_SECCOMP=y
|
||||
# CONFIG_SECCOMP_FILTER=y
|
||||
CONFIG_BLOCK=y
|
||||
# block device writeback performance
|
||||
CONFIG_BLK_WBT=y
|
||||
CONFIG_COMPACTION=y
|
||||
CONFIG_ZONE_DMA=y
|
||||
CONFIG_ZONE_DMA32=y
|
||||
CONFIG_VM_EVENT_COUNTERS=y
|
||||
CONFIG_PCI=y
|
||||
CONFIG_DEVTMPFS=y
|
||||
CONFIG_DEVTMPFS_MOUNT=y
|
||||
CONFIG_STANDALONE=y
|
||||
CONFIG_PREVENT_FIRMWARE_BUILD=y
|
||||
CONFIG_VEXPRESS_CONFIG=y
|
||||
# Check
|
||||
CONFIG_ARM_SCMI_PROTOCOL=y
|
||||
# Check
|
||||
CONFIG_MTD=y
|
||||
# Plan on using a m2 sata adapter
|
||||
CONFIG_ATA=y
|
||||
CONFIG_NETDEVICES=y
|
||||
CONFIG_SOUND=y
|
||||
CONFIG_USB_SUPPORT=y
|
||||
CONFIG_MMC=y
|
||||
CONFIG_MMC_DW=y
|
||||
CONFIG_MMC_DW_ROCKCHIP=y
|
||||
CONFIG_NEW_LEDS=y
|
||||
CONFIG_RTC_CLASS=y
|
||||
CONFIG_FILE_LOCKING=y
|
||||
CONFIG_MISC_FILESYSTEMS=y
|
||||
CONFIG_INOTIFY_USER=y
|
||||
CONFIG_VFAT_FS=y
|
||||
# CONFIG_EXFAT_FS
|
||||
CONFIG_PROC_FS=y
|
||||
CONFIG_SYSFS=y
|
||||
CONFIG_CONFIGFS_FS=y
|
||||
CONFIG_EFI=y
|
||||
CONFIG_EFI_PARTITION=y
|
||||
CONFIG_EFIVAR_FS=y
|
||||
# CONFIG_SECURITYFS # No TPM for now
|
||||
CONFIG_EXPERT=n
|
||||
# Fuck nfs
|
||||
CONFIG_NETWORK_FILESYSTEMS=n
|
||||
|
||||
# MMC???
|
||||
CONFIG_MTD_BLKDEVS=y
|
||||
CONFIG_MTD_BLOCK=y
|
||||
CONFIG_MTD=y
|
||||
|
||||
# ???
|
||||
CONFIG_MMC_BLOCK_MINORS=32
|
||||
|
||||
|
||||
# Other arm
|
||||
CONFIG_ARM64_SVE=y
|
||||
CONFIG_ARM64_SME=y
|
||||
CONFIG_ARM64_CONTPTE=y
|
||||
|
||||
# Actually read divices
|
||||
CONFIG_BLK_DEV_SD=y
|
||||
|
||||
# Blu-ray ripping?
|
||||
CONFIG_CHR_DEV_SG=y
|
||||
|
||||
CONFIG_ZRAM=y
|
||||
CONFIG_BLK_DEV_RAM=y
|
||||
CONFIG_BLK_DEV_LOOP=y
|
||||
CONFIG_ZRAM_BACKEND_LZ4=y
|
||||
CONFIG_ZRAM_BACKEND_LZO=y
|
||||
|
||||
# Rockchip i2c
|
||||
CONFIG_I2C=y
|
||||
CONFIG_I2C_RK3X=y
|
||||
|
||||
# Rockchip SPI
|
||||
CONFIG_SPI_ROCKCHIP=y
|
||||
CONFIG_SPI_ROCKCHIP_SFC=y
|
||||
|
||||
# ARM stuff
|
||||
CONFIG_ARM_SCPI_PROTOCOL=y
|
||||
CONFIG_ARM_SDE_INTERFACE=y
|
||||
|
||||
# IP_ADVANCED_ROUTER=y # May need for podman
|
||||
# NET_IPIP # Shouldn't be needed
|
||||
|
||||
CONFIG_BOOT_CONFIG=y # Almost definitely needed
|
||||
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
|
||||
# CC_OPTIMIZE_FOR_PERFORMANCE=y
|
||||
|
||||
# memory
|
||||
CONFIG_CMA=y
|
||||
|
||||
# PM
|
||||
CONFIG_REGULATOR=y
|
||||
CONFIG_REGULATOR_RK808=y
|
||||
CONFIG_ROCKCHIP_PM_DOMAINS=y
|
||||
|
||||
|
||||
# RCU
|
||||
CONFIG_PREEMPT_RCU=y
|
||||
|
||||
# USB
|
||||
CONFIG_USB=y
|
||||
CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
|
||||
|
||||
|
||||
#
|
||||
# MMC/SD/SDIO Host Controller Drivers
|
||||
#
|
||||
# CONFIG_MMC_DEBUG is not set
|
||||
CONFIG_MMC_ARMMMCI=y
|
||||
CONFIG_MMC_STM32_SDMMC=y
|
||||
CONFIG_MMC_SDHCI=y
|
||||
CONFIG_MMC_SDHCI_IO_ACCESSORS=y
|
||||
# CONFIG_MMC_SDHCI_PCI is not set
|
||||
CONFIG_MMC_SDHCI_ACPI=y
|
||||
CONFIG_MMC_SDHCI_PLTFM=y
|
||||
CONFIG_MMC_SDHCI_OF_ARASAN=y
|
||||
# CONFIG_MMC_SDHCI_OF_AT91 is not set
|
||||
CONFIG_MMC_SDHCI_OF_DWCMSHC=y
|
||||
CONFIG_MMC_SDHCI_CADENCE=y
|
||||
CONFIG_MMC_SDHCI_F_SDH30=y
|
||||
# CONFIG_MMC_SDHCI_MILBEAUT is not set
|
||||
# CONFIG_MMC_TIFM_SD is not set
|
||||
CONFIG_MMC_SPI=y
|
||||
# CONFIG_MMC_CB710 is not set
|
||||
# CONFIG_MMC_VIA_SDMMC is not set
|
||||
CONFIG_MMC_DW=y
|
||||
CONFIG_MMC_DW_PLTFM=y
|
||||
# CONFIG_MMC_DW_BLUEFIELD is not set
|
||||
CONFIG_MMC_DW_EXYNOS=y
|
||||
CONFIG_MMC_DW_HI3798CV200=y
|
||||
# CONFIG_MMC_DW_HI3798MV200 is not set
|
||||
CONFIG_MMC_DW_K3=y
|
||||
# CONFIG_MMC_DW_PCI is not set
|
||||
CONFIG_MMC_DW_ROCKCHIP=y
|
||||
# CONFIG_MMC_VUB300 is not set
|
||||
# CONFIG_MMC_USHC is not set
|
||||
# CONFIG_MMC_USDHI6ROL0 is not set
|
||||
CONFIG_MMC_CQHCI=y
|
||||
CONFIG_MMC_HSQ=y
|
||||
# CONFIG_MMC_TOSHIBA_PCI is not set
|
||||
CONFIG_MMC_MTK=y
|
||||
CONFIG_MMC_SDHCI_XENON=y
|
||||
CONFIG_SCSI_UFSHCD=y
|
||||
CONFIG_SCSI_UFS_BSG=y
|
||||
# CONFIG_SCSI_UFS_HWMON is not set
|
||||
# CONFIG_SCSI_UFSHCD_PCI is not set
|
||||
CONFIG_SCSI_UFSHCD_PLATFORM=y
|
||||
# CONFIG_SCSI_UFS_CDNS_PLATFORM is not set
|
||||
# CONFIG_SCSI_UFS_DWC_TC_PLATFORM is not set
|
||||
CONFIG_SCSI_UFS_ROCKCHIP=y
|
||||
# CONFIG_MEMSTICK is not set
|
||||
CONFIG_NEW_LEDS=y
|
||||
CONFIG_LEDS_CLASS=y
|
||||
# CONFIG_LEDS_CLASS_FLASH is not set
|
||||
# CONFIG_LEDS_CLASS_MULTICOLOR is not set
|
||||
# CONFIG_LEDS_BRIGHTNESS_HW_CHANGED is not set
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -1 +1 @@
|
||||
https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.18.6.tar.xz
|
||||
https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.18.5.tar.xz
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"io"
|
||||
"log"
|
||||
@@ -18,8 +17,6 @@ const (
|
||||
ubootRev = "ff498a3c5efb424accc1d825cc45cede2540ca13"
|
||||
trustedFirmwareRepo = "https://github.com/ARM-software/arm-trusted-firmware"
|
||||
trustedRepoRev = "6251d6ed1ffa7080edc55fa75f525e19ecf5edbd"
|
||||
rkbinRepo = "https://github.com/friendlyarm/rkbin"
|
||||
rkbinRev = "nanopi6"
|
||||
)
|
||||
|
||||
func applyPatches(srcdir, t string) error {
|
||||
@@ -48,24 +45,19 @@ func applyPatches(srcdir, t string) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func compile(ubootDir, trustedFirmwareDir string) error {
|
||||
func compile(trustedFirmwareDir string) error {
|
||||
defconfig := exec.Command("make", "ARCH=arm64", "cm3588-nas-rk3588_defconfig")
|
||||
defconfig.Stdout = os.Stdout
|
||||
defconfig.Stderr = os.Stderr
|
||||
defconfig.Dir = ubootDir
|
||||
if err := defconfig.Run(); err != nil {
|
||||
return fmt.Errorf("make defconfig: %v", err)
|
||||
}
|
||||
|
||||
f, err := os.OpenFile(filepath.Join(ubootDir, ".config"), os.O_RDWR|os.O_APPEND, 0o755)
|
||||
f, err := os.OpenFile(".config", os.O_RDWR|os.O_APPEND, 0o755)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if _, err := f.Write([]byte(`
|
||||
CONFIG_CMD_SETEXPR=y
|
||||
CONFIG_CMD_SETEXPR_FMT=y
|
||||
CONFIG_BOOTCOMMAND="setenv bootmeths script; bootflow scan -lb"
|
||||
`)); err != nil {
|
||||
if _, err := f.Write([]byte("CONFIG_CMD_SETEXPR=y\nCONFIG_CMD_SETEXPR_FMT=y\n")); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := f.Close(); err != nil {
|
||||
@@ -73,14 +65,12 @@ CONFIG_BOOTCOMMAND="setenv bootmeths script; bootflow scan -lb"
|
||||
}
|
||||
|
||||
cmd := exec.Command("git", "show", "-s", "--date=unix", "--pretty=format:%ad", "HEAD")
|
||||
cmd.Dir = ubootDir
|
||||
output, err := cmd.Output()
|
||||
if err != nil {
|
||||
return fmt.Errorf("unable to get date of git repo: %w", err)
|
||||
}
|
||||
|
||||
make := exec.Command("make", "-j"+strconv.Itoa(runtime.NumCPU()))
|
||||
make.Dir = ubootDir
|
||||
make.Env = append(os.Environ(),
|
||||
"ARCH=arm64",
|
||||
"CROSS_COMPILE=aarch64-linux-gnu-",
|
||||
@@ -97,14 +87,13 @@ CONFIG_BOOTCOMMAND="setenv bootmeths script; bootflow scan -lb"
|
||||
return nil
|
||||
}
|
||||
|
||||
func generateBootScr(ubootDir, bootCmdPath string) error {
|
||||
mkimage := exec.Command(filepath.Join(ubootDir, "./tools/mkimage"), "-A", "arm", "-T", "script", "-C", "none", "-d", bootCmdPath, "boot.scr")
|
||||
func generateBootScr(bootCmdPath string) error {
|
||||
mkimage := exec.Command("./tools/mkimage", "-A", "arm", "-T", "script", "-C", "none", "-d", bootCmdPath, "boot.scr")
|
||||
mkimage.Env = append(os.Environ(),
|
||||
"ARCH=arm64",
|
||||
"CROSS_COMPILE=aarch64-linux-gnu-",
|
||||
"SOURCE_DATE_EPOCH=1600000000",
|
||||
)
|
||||
mkimage.Dir = ubootDir
|
||||
mkimage.Stdout = os.Stdout
|
||||
mkimage.Stderr = os.Stderr
|
||||
if err := mkimage.Run(); err != nil {
|
||||
@@ -141,38 +130,32 @@ func copyFile(dest, src string) error {
|
||||
return out.Close()
|
||||
}
|
||||
|
||||
func clone(dir string, repo string, rev string) error {
|
||||
err := os.Mkdir(dir, 0o777)
|
||||
if err != nil && !errors.Is(err, os.ErrExist) {
|
||||
func main() {
|
||||
ubootDir, err := os.MkdirTemp("", "u-boot")
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
var commands = [][]string{
|
||||
|
||||
trustedFirmwareDir, err := os.MkdirTemp("", "arm-trusted-firmware")
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
for _, cmd := range [][]string{
|
||||
{"git", "init"},
|
||||
{"git", "remote", "add", "origin", repo},
|
||||
{"git", "fetch", "--depth=1", "origin", rev},
|
||||
{"git", "remote", "add", "origin", trustedFirmwareRepo},
|
||||
{"git", "fetch", "--depth=1", "origin", trustedRepoRev},
|
||||
{"git", "checkout", "FETCH_HEAD"},
|
||||
}
|
||||
if _, err = os.Stat(filepath.Join(dir, ".git")); err == nil {
|
||||
commands = commands[2:]
|
||||
}
|
||||
for _, cmd := range commands {
|
||||
} {
|
||||
log.Printf("Running %s", cmd)
|
||||
cmdObj := exec.Command(cmd[0], cmd[1:]...)
|
||||
cmdObj.Stdout = os.Stdout
|
||||
cmdObj.Stderr = os.Stderr
|
||||
cmdObj.Dir = dir
|
||||
cmdObj.Dir = trustedFirmwareDir
|
||||
if err := cmdObj.Run(); err != nil {
|
||||
return err
|
||||
log.Fatal(err)
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func compileATF() string {
|
||||
trustedFirmwareDir, _ := filepath.Abs("arm-trusted-firmware")
|
||||
if err := clone(trustedFirmwareDir, trustedFirmwareRepo, trustedRepoRev); err != nil {
|
||||
log.Fatal("Failed to clone Trusted Firmware:", err)
|
||||
}
|
||||
|
||||
log.Printf("applying patches")
|
||||
if err := applyPatches(trustedFirmwareDir, "atf"); err != nil {
|
||||
@@ -190,45 +173,33 @@ func compileATF() string {
|
||||
log.Fatal(err)
|
||||
}
|
||||
}
|
||||
return trustedFirmwareDir
|
||||
}
|
||||
|
||||
func downloadRKbin() string {
|
||||
var err error = nil
|
||||
rkbinDir, _ := filepath.Abs("rkbin")
|
||||
|
||||
if err = clone(rkbinDir, rkbinRepo, rkbinRev); err != nil {
|
||||
log.Fatal("Failed to clone rkbin Firmware:", err)
|
||||
var bootCmdPath string
|
||||
if p, err := filepath.Abs("uboot.patches/boot.cmd"); err != nil {
|
||||
log.Fatal(err)
|
||||
} else {
|
||||
bootCmdPath = p
|
||||
}
|
||||
|
||||
log.Printf("applying patches")
|
||||
if err := applyPatches(rkbinDir, "rkbin"); err != nil {
|
||||
if err := os.Chdir(ubootDir); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
return rkbinDir
|
||||
}
|
||||
|
||||
func indockerMain() {
|
||||
|
||||
srcFiles, err := filepath.Glob("/usr/_src/*")
|
||||
if err != nil {
|
||||
log.Fatalf("failed to find source files: %v", err)
|
||||
}
|
||||
for _, fileName := range srcFiles {
|
||||
cmdObj := exec.Command("cp", "-r", "-t", "/usr/src", fileName)
|
||||
for _, cmd := range [][]string{
|
||||
{"git", "init"},
|
||||
{"git", "remote", "add", "origin", uBootRepo},
|
||||
{"git", "fetch", "--depth=1", "origin", ubootRev},
|
||||
{"git", "checkout", "FETCH_HEAD"},
|
||||
} {
|
||||
log.Printf("Running %s", cmd)
|
||||
cmdObj := exec.Command(cmd[0], cmd[1:]...)
|
||||
cmdObj.Stdout = os.Stdout
|
||||
cmdObj.Stderr = os.Stderr
|
||||
cmdObj.Dir = ubootDir
|
||||
if err := cmdObj.Run(); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
}
|
||||
rkbinDir := compileATF()
|
||||
bootCmdPath, _ := filepath.Abs("uboot.patches/boot.cmd")
|
||||
|
||||
ubootDir, _ := filepath.Abs("u-boot")
|
||||
if err := clone(ubootDir, uBootRepo, ubootRev); err != nil {
|
||||
log.Fatal("Failed to clone uboot repo:", err)
|
||||
}
|
||||
|
||||
log.Printf("applying patches")
|
||||
if err := applyPatches(ubootDir, "uboot"); err != nil {
|
||||
@@ -236,23 +207,23 @@ func indockerMain() {
|
||||
}
|
||||
|
||||
log.Printf("compiling uboot")
|
||||
if err := compile(ubootDir, rkbinDir); err != nil {
|
||||
if err := compile(trustedFirmwareDir); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
log.Printf("generating boot.scr")
|
||||
if err := generateBootScr(ubootDir, bootCmdPath); err != nil {
|
||||
if err := generateBootScr(bootCmdPath); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
for _, copyCfg := range []struct {
|
||||
dest, src string
|
||||
}{
|
||||
{"boot.scr", "u-boot/boot.scr"},
|
||||
{"u-boot-rockchip.bin", "u-boot/u-boot-rockchip.bin"},
|
||||
{"boot.scr", "boot.scr"},
|
||||
{"u-boot-rockchip.bin", "u-boot-rockchip.bin"},
|
||||
} {
|
||||
if err := copyFile(filepath.Join("/tmp/buildresult", copyCfg.dest), copyCfg.src); err != nil {
|
||||
log.Fatal("indocker ", err)
|
||||
log.Fatal(err)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -14,11 +14,8 @@ import (
|
||||
"strconv"
|
||||
"strings"
|
||||
)
|
||||
|
||||
var (
|
||||
firmware = []string{"arm/mali/arch10.8/mali_csffw.bin", "rtl_nic/rtl8125b-2.fw"}
|
||||
firmwareDir, _ = filepath.Abs("firmware")
|
||||
)
|
||||
var firmware = []string{"arm/mali/arch10.8/mali_csffw.bin", "rtl_nic/rtl8125b-2.fw"}
|
||||
var firmwareDir, _ = filepath.Abs("firmware")
|
||||
|
||||
func downloadKernel(latest string) error {
|
||||
if _, err := os.Stat(filepath.Base(latest)); err == nil {
|
||||
@@ -50,6 +47,7 @@ func downloadKernel(latest string) error {
|
||||
return out.Close()
|
||||
}
|
||||
|
||||
|
||||
func downloadWhence() (map[string]string, error) {
|
||||
whenceMap := make(map[string]string)
|
||||
uri := "https://gitlab.com/api/v4/projects/48890189/repository/files/WHENCE/raw?ref=main"
|
||||
@@ -58,19 +56,19 @@ func downloadWhence() (map[string]string, error) {
|
||||
return whenceMap, err
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
whenceBytes, err := io.ReadAll(resp.Body)
|
||||
whenceBytes,err := io.ReadAll(resp.Body)
|
||||
if err != nil {
|
||||
return whenceMap, err
|
||||
}
|
||||
whence := strings.Split(string(whenceBytes), "\n")
|
||||
for _, line := range whence {
|
||||
if file, ok := strings.CutPrefix(line, "File: "); ok {
|
||||
for _,line := range whence {
|
||||
if file,ok := strings.CutPrefix(line, "File: "); ok {
|
||||
whenceMap[file] = file
|
||||
}
|
||||
if file, ok := strings.CutPrefix(line, "RawFile: "); ok {
|
||||
if file,ok := strings.CutPrefix(line, "RawFile: "); ok {
|
||||
whenceMap[file] = file
|
||||
}
|
||||
if l, ok := strings.CutPrefix(line, "Link: "); ok {
|
||||
if l,ok := strings.CutPrefix(line, "Link: "); ok {
|
||||
if link, file, ok := strings.Cut(l, " -> "); ok {
|
||||
dest := filepath.Join(filepath.Dir(link), file)
|
||||
whenceMap[link] = dest
|
||||
@@ -79,14 +77,13 @@ func downloadWhence() (map[string]string, error) {
|
||||
}
|
||||
return whenceMap, nil
|
||||
}
|
||||
|
||||
func downloadFirmware() ([]string, error) {
|
||||
firmwarePaths := make([]string, 0, len(firmware))
|
||||
whence, err := downloadWhence()
|
||||
if err != nil {
|
||||
return firmwarePaths, err
|
||||
}
|
||||
for _, f := range firmware {
|
||||
for _, f := range firmware{
|
||||
folder := filepath.Dir(f)
|
||||
path, ok := whence[f]
|
||||
if !ok {
|
||||
@@ -97,7 +94,7 @@ func downloadFirmware() ([]string, error) {
|
||||
|
||||
log.Printf("downloading firmware: %q to %q", path, f)
|
||||
|
||||
os.MkdirAll(filepath.Join("firmware", folder), 0o777)
|
||||
os.MkdirAll(filepath.Join("firmware", folder), 0777)
|
||||
out, err := os.Create(filepath.Join("firmware", f))
|
||||
if err != nil {
|
||||
return firmwarePaths, err
|
||||
@@ -128,7 +125,6 @@ func applyPatches(srcdir string) error {
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
for _, patch := range patches {
|
||||
log.Printf("applying patch %q", patch)
|
||||
f, err := os.Open(patch)
|
||||
@@ -150,22 +146,15 @@ func applyPatches(srcdir string) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func compile(cross, flavor string, firmwarePaths []string) error {
|
||||
defconfig := exec.Command("make", "ARCH="+os.Getenv("ARCH"), "defconfig")
|
||||
if flavor == "defconfig" {
|
||||
defconfig = exec.Command("make", "ARCH="+os.Getenv("ARCH"), "olddefconfig")
|
||||
cpConfig := exec.Command("cp", "/usr/_src/defconfig", ".config")
|
||||
cpConfig.Stdout = os.Stdout
|
||||
cpConfig.Stderr = os.Stderr
|
||||
if err := cpConfig.Run(); err != nil {
|
||||
return fmt.Errorf("make cpConfig: %v", err)
|
||||
}
|
||||
} else if flavor == "raspberrypi" {
|
||||
func compile(cross, flavor string, firmwarePaths []string, tiny bool) error {
|
||||
defconfig := exec.Command("make", "defconfig")
|
||||
if tiny {
|
||||
defconfig = exec.Command("make", "tinyconfig")
|
||||
}
|
||||
if flavor == "raspberrypi" {
|
||||
// TODO(https://github.com/gokrazy/gokrazy/issues/223): is it
|
||||
// necessary/desirable to switch to bcm2712_defconfig?
|
||||
defconfig = exec.Command("make", "ARCH=arm64", "bcm2711_defconfig")
|
||||
} else if strings.HasSuffix(flavor, "_defconfig") {
|
||||
defconfig = exec.Command("make", "ARCH="+os.Getenv("ARCH"), flavor)
|
||||
}
|
||||
|
||||
defconfig.Stdout = os.Stdout
|
||||
@@ -183,7 +172,7 @@ func compile(cross, flavor string, firmwarePaths []string) error {
|
||||
return fmt.Errorf("make mod2noconfig: %v", err)
|
||||
}
|
||||
|
||||
f, err := os.OpenFile(".config", os.O_APPEND|os.O_WRONLY, 0o644)
|
||||
f, err := os.OpenFile(".config", os.O_APPEND|os.O_WRONLY, 0644)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -197,7 +186,7 @@ func compile(cross, flavor string, firmwarePaths []string) error {
|
||||
}
|
||||
if len(firmwarePaths) > 0 {
|
||||
fmt.Fprintf(f, "CONFIG_EXTRA_FIRMWARE=%q\n", strings.Join(firmwarePaths, " "))
|
||||
fmt.Fprintf(f, "CONFIG_EXTRA_FIRMWARE_DIR=%q\n", firmwareDir)
|
||||
fmt.Fprintf(f, "CONFIG_EXTRA_FIRMWARE_DIR=%q\n",firmwareDir)
|
||||
}
|
||||
|
||||
if err := f.Close(); err != nil {
|
||||
@@ -254,7 +243,7 @@ func indockerMain() {
|
||||
flavor := flag.String("flavor",
|
||||
"vanilla",
|
||||
"which kernel flavor to build. one of vanilla (kernel.org) or raspberrypi (https://github.com/raspberrypi/linux/tags)")
|
||||
persistent := flag.Bool("persistent", false, "Mounts a folder into the docker container to persist kernel source for debugging")
|
||||
tiny := flag.Bool("tiny", false, "Tries to use tinyconfig instead of defconfig")
|
||||
|
||||
flag.Parse()
|
||||
latest := flag.Arg(0)
|
||||
@@ -262,40 +251,17 @@ func indockerMain() {
|
||||
log.Fatalf("syntax: %s <upstream-URL>", os.Args[0])
|
||||
}
|
||||
log.Printf("downloading kernel source: %s", latest)
|
||||
err := downloadKernel(latest)
|
||||
if err != nil {
|
||||
if err := downloadKernel(latest); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
srcdir := strings.TrimSuffix(filepath.Base(latest), ".tar.gz")
|
||||
srcdir = strings.TrimSuffix(srcdir, ".tar.xz")
|
||||
if *flavor != "vanilla" && strings.HasPrefix(latest, "https://github.com/") {
|
||||
s := strings.SplitN(latest, "/", 6)
|
||||
if len(s) < 6 {
|
||||
srcdir = "linux-" + srcdir
|
||||
} else {
|
||||
srcdir = s[4] + "-" + srcdir
|
||||
}
|
||||
}
|
||||
|
||||
if *persistent {
|
||||
if _, err = os.Stat(srcdir); err == nil {
|
||||
err = os.ErrExist
|
||||
} else {
|
||||
err = nil
|
||||
}
|
||||
}
|
||||
unpacked := false
|
||||
if err == nil {
|
||||
log.Printf("unpacking kernel source")
|
||||
untar := exec.Command("tar", "xf", filepath.Base(latest))
|
||||
untar.Stdout = os.Stdout
|
||||
untar.Stderr = os.Stderr
|
||||
if err := untar.Run(); err != nil {
|
||||
log.Fatalf("untar: %v", err)
|
||||
}
|
||||
unpacked = true
|
||||
}
|
||||
log.Printf("unpacking kernel source")
|
||||
// untar := exec.Command("tar", "xkf", filepath.Base(latest))
|
||||
// untar.Stdout = os.Stdout
|
||||
// untar.Stderr = os.Stderr
|
||||
// if err := untar.Run(); err != nil {
|
||||
// log.Fatalf("untar: %v", err)
|
||||
// }
|
||||
srcFiles, err := filepath.Glob("/usr/_src/*")
|
||||
if err != nil {
|
||||
log.Fatalf("failed to find source files: %v", err)
|
||||
@@ -315,14 +281,20 @@ func indockerMain() {
|
||||
}
|
||||
file.Close()
|
||||
newFile.Close()
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to rename %v: %v", fileName, err)
|
||||
}
|
||||
}
|
||||
|
||||
srcdir := strings.TrimSuffix(filepath.Base(latest), ".tar.xz")
|
||||
if *flavor == "raspberrypi" {
|
||||
srcdir = strings.TrimSuffix("linux-"+filepath.Base(latest), ".tar.gz")
|
||||
}
|
||||
|
||||
log.Printf("applying patches")
|
||||
if unpacked {
|
||||
if err := applyPatches(srcdir); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
}
|
||||
// if err := applyPatches(srcdir); err != nil {
|
||||
// log.Fatal(err)
|
||||
// }
|
||||
firmwarePaths, err := downloadFirmware()
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
@@ -338,8 +310,9 @@ func indockerMain() {
|
||||
os.Setenv("CROSS_COMPILE", "aarch64-linux-gnu-")
|
||||
}
|
||||
|
||||
|
||||
log.Printf("compiling kernel")
|
||||
if err := compile(*cross, *flavor, firmwarePaths); err != nil {
|
||||
if err := compile(*cross, *flavor, firmwarePaths, *tiny); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
@@ -350,30 +323,49 @@ func indockerMain() {
|
||||
if err := copyFile("/tmp/buildresult/vmlinuz.config", ".config"); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
dtbs, err := filepath.Glob("arch/arm64/boot/dts/*/*.dtb")
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
for _, fn := range dtbs {
|
||||
if err := copyFile(filepath.Join("/tmp/buildresult/", filepath.Base(fn)), fn); err != nil {
|
||||
|
||||
switch *flavor {
|
||||
case "vanilla":
|
||||
// cp := exec.Command("cp", "-r", filepath.Join("arch/arm64/boot/dts/"), "/tmp/buildresult/dts")
|
||||
// cp.Stdout = os.Stdout
|
||||
// cp.Stderr = os.Stderr
|
||||
// log.Printf("%v", cp.Args)
|
||||
// if err := cp.Run(); err != nil {
|
||||
// log.Fatalf("%v: %v", cp.Args, err)
|
||||
// }
|
||||
for dest, source := range map[string]string{
|
||||
"rk3588-friendlyelec-cm3588-nas.dtb": "rockchip/rk3588-friendlyelec-cm3588-nas.dtb",
|
||||
} {
|
||||
if err := copyFile("/tmp/buildresult/"+dest, "arch/arm64/boot/dts/"+source); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
case "raspberrypi":
|
||||
// copy all dtb and dtbos (+ overlay_map) to buildresult
|
||||
dtbs, err := filepath.Glob("arch/arm64/boot/dts/broadcom/*.dtb")
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
}
|
||||
for _, fn := range dtbs {
|
||||
if err := copyFile(filepath.Join("/tmp/buildresult/", filepath.Base(fn)), fn); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
dtbos, err := filepath.Glob("arch/arm64/boot/dts/overlays/*.dtbo")
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
if _, err = os.Stat("arch/arm64/boot/dts/overlays/overlay_map.dtb"); err == nil {
|
||||
dtbos = append(dtbos, "arch/arm64/boot/dts/overlays/overlay_map.dtb")
|
||||
}
|
||||
if err := os.MkdirAll("/tmp/buildresult/overlays", 0o755); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
for _, fn := range dtbos {
|
||||
if err := copyFile(filepath.Join("/tmp/buildresult/overlays/", filepath.Base(fn)), fn); err != nil {
|
||||
dtbos, err := filepath.Glob("arch/arm64/boot/dts/overlays/*.dtbo")
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
dtbos = append(dtbos, "arch/arm64/boot/dts/overlays/overlay_map.dtb")
|
||||
if err := os.MkdirAll("/tmp/buildresult/overlays", 0755); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
for _, fn := range dtbos {
|
||||
if err := copyFile(filepath.Join("/tmp/buildresult/overlays/", filepath.Base(fn)), fn); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if err := copyFile("/tmp/buildresult/vmlinuz", "arch/x86/boot/bzImage"); err != nil {
|
||||
|
||||
@@ -22,11 +22,10 @@ RUN apt-get update && apt-get install -y \
|
||||
{{ if (eq .Cross "arm64") -}}
|
||||
crossbuild-essential-arm64 \
|
||||
{{ end -}}
|
||||
build-essential bc libssl-dev bison flex libelf-dev ncurses-dev ca-certificates zstd kmod python3 git
|
||||
build-essential bc libssl-dev bison flex libelf-dev ncurses-dev ca-certificates zstd kmod python3
|
||||
|
||||
COPY gokr-rebuild-kernel /usr/bin/gokr-rebuild-kernel
|
||||
COPY config.addendum.txt /usr/_src/config.addendum.txt
|
||||
COPY defconfig /usr/_src/defconfig
|
||||
COPY config.addendum.txt /usr/_src/.config
|
||||
COPY config.addendum.txt /usr/src/.config
|
||||
{{- range $idx, $path := .Patches }}
|
||||
@@ -118,7 +117,7 @@ func rebuildKernel() error {
|
||||
cross := flag.String("cross",
|
||||
"arm64",
|
||||
"if non-empty, cross-compile for the specified arch (one of 'arm64')")
|
||||
persistent := flag.Bool("persistent", false, "Mounts a folder into the docker container to persist kernel source for debugging")
|
||||
tiny := flag.Bool("tiny", false, "Tries to use tinyconfig instead of defconfig")
|
||||
|
||||
flavor := flag.String("flavor",
|
||||
"vanilla",
|
||||
@@ -240,17 +239,14 @@ func rebuildKernel() error {
|
||||
}
|
||||
kernelName := path.Base(string(upstreamURL))
|
||||
_, err = os.Stat(kernelName)
|
||||
log.Printf("Check for downloaded kernel %s: %v", kernelName, err)
|
||||
log.Printf("Checking for downloaded kernel %s: %v", kernelName, err)
|
||||
// dockerArgs = append(dockerArgs, fmt.Sprintf("--mount=type=tmpfs,tmpfs-size=%d%s,destination=%s,U", 5, "G", "/usr/src")) // Ramfs for faster build.... maybe
|
||||
os.MkdirAll("./src_build", 0o777)
|
||||
dockerArgs = append(dockerArgs, "-v", "./src_build:/usr/src")
|
||||
if err == nil {
|
||||
absKernelName, _ := filepath.Abs(kernelName)
|
||||
dockerArgs = append(dockerArgs, "--volume", absKernelName+":/usr/src/"+kernelName)
|
||||
}
|
||||
if *persistent {
|
||||
os.MkdirAll("./src_build", 0o777)
|
||||
dockerArgs = append(dockerArgs, "-v", "./src_build:/usr/src")
|
||||
} else {
|
||||
dockerArgs = append(dockerArgs, fmt.Sprintf("--mount=type=tmpfs,tmpfs-size=%d%s,destination=%s,U", 5, "G", "/usr/src")) // Ramfs for faster build.... maybe
|
||||
}
|
||||
|
||||
if !*keepBuildContainer {
|
||||
dockerArgs = append(dockerArgs, "--rm")
|
||||
@@ -262,7 +258,7 @@ func rebuildKernel() error {
|
||||
"gokr-rebuild-kernel",
|
||||
"-cross="+*cross,
|
||||
"-flavor="+*flavor,
|
||||
fmt.Sprintf("-persistent=%v", *persistent),
|
||||
fmt.Sprintf("-tiny=%v", *tiny),
|
||||
strings.TrimSpace(string(upstreamURL)))
|
||||
|
||||
dockerRun = exec.Command(executable, dockerArgs...)
|
||||
@@ -273,7 +269,7 @@ func rebuildKernel() error {
|
||||
if err := dockerRun.Run(); err != nil {
|
||||
return fmt.Errorf("%s run: %v (cmd: %v)", execName, err, dockerRun.Args)
|
||||
}
|
||||
|
||||
_=kernelPath
|
||||
if err := copyFile(kernelPath, "vmlinuz"); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ package main
|
||||
import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"io"
|
||||
"log"
|
||||
"os"
|
||||
"os/exec"
|
||||
@@ -16,21 +17,19 @@ const dockerFileContents = `
|
||||
FROM docker.io/library/debian:trixie
|
||||
|
||||
RUN apt-get update && apt-get install -y build-essential crossbuild-essential-arm64 bc libssl-dev bison flex git python3 python3-setuptools swig python3-dev python3-pyelftools uuid-dev libgnutls28-dev
|
||||
RUN apt-get install -y device-tree-compiler
|
||||
|
||||
COPY gokr-build-uboot /usr/bin/gokr-build-uboot
|
||||
RUN mkdir -p /usr/_src/atf.patches
|
||||
RUN mkdir -p /usr/_src/uboot.patches
|
||||
RUN mkdir -p /usr/src/atf.patches
|
||||
RUN mkdir -p /usr/src/uboot.patches
|
||||
{{- range $idx, $path := .Patches }}
|
||||
COPY {{ $path }} /usr/_src/{{ $path }}
|
||||
COPY {{ $path }} /usr/src/{{ $path }}
|
||||
{{- end }}
|
||||
|
||||
RUN echo 'builduser:x:{{ .Uid }}:{{ .Gid }}:nobody:/:/bin/sh' >> /etc/passwd && \
|
||||
chown -R {{ .Uid }}:{{ .Gid }} /usr/src /usr/_src
|
||||
chown -R {{ .Uid }}:{{ .Gid }} /usr/src
|
||||
|
||||
USER builduser
|
||||
WORKDIR /usr/src
|
||||
ENV GOKRAZY_IN_DOCKER=1
|
||||
ENTRYPOINT /usr/bin/gokr-build-uboot
|
||||
`
|
||||
|
||||
@@ -44,23 +43,62 @@ var dockerFileTmpl = template.Must(template.New("dockerfile").
|
||||
|
||||
var ubootPatchFiles = []string{
|
||||
"uboot.patches/boot.cmd",
|
||||
"uboot.patches/rk3588_bl31_v1.46.elf",
|
||||
"uboot.patches/rk3588_ddr_lp4_2112MHz_lp5_2400MHz_v1.16.bin",
|
||||
"uboot.patches/rk3588_ddr_lp4_2112MHz_lp5_2400MHz_v1.17.bin",
|
||||
}
|
||||
|
||||
var atfPatchFiles = []string{
|
||||
// "atf.patches/feat-rk3588-support-rk3588.patch",
|
||||
// "atf.patches/rk3588-enable-crypto-function.patch",
|
||||
// "atf.patches/feat-rockchip-support-SCMI-for-clock-reset-domain.patch",
|
||||
}
|
||||
|
||||
func copyFile(dest, src string) error {
|
||||
out, err := os.Create(dest)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer out.Close()
|
||||
|
||||
in, err := os.Open(src)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer in.Close()
|
||||
|
||||
if _, err := io.Copy(out, in); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
st, err := in.Stat()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if err := out.Chmod(st.Mode()); err != nil {
|
||||
return err
|
||||
}
|
||||
return out.Close()
|
||||
}
|
||||
|
||||
var gopath = mustGetGopath()
|
||||
|
||||
func mustGetGopath() string {
|
||||
gopathb, err := exec.Command("go", "env", "GOPATH").Output()
|
||||
if err != nil {
|
||||
log.Panic(err)
|
||||
}
|
||||
return strings.TrimSpace(string(gopathb))
|
||||
}
|
||||
|
||||
func find(filename string) (string, error) {
|
||||
if _, err := os.Stat(filename); err == nil {
|
||||
return filename, nil
|
||||
}
|
||||
|
||||
return "", fmt.Errorf("could not find file %q", filename)
|
||||
path := filepath.Join(gopath, "src", "gitea.narnian.us", "lordwelch", "gokrazy-cm3588-kernel", filename)
|
||||
if _, err := os.Stat(path); err == nil {
|
||||
return path, nil
|
||||
}
|
||||
|
||||
return "", fmt.Errorf("could not find file %q (looked in . and %s)", filename, path)
|
||||
}
|
||||
|
||||
func getContainerExecutable() (string, error) {
|
||||
@@ -81,24 +119,15 @@ func getContainerExecutable() (string, error) {
|
||||
return "", fmt.Errorf("none of %v found in $PATH", choices)
|
||||
}
|
||||
|
||||
func rebuildUboot() {
|
||||
overwriteContainerExecutable := flag.String("overwrite_container_executable",
|
||||
func main() {
|
||||
var overwriteContainerExecutable = flag.String("overwrite_container_executable",
|
||||
"",
|
||||
"E.g. docker or podman to overwrite the automatically detected container executable")
|
||||
persistent := flag.Bool("persistent", false, "Mounts a folder into the docker container to persist u-boot source for debugging")
|
||||
flag.Parse()
|
||||
executable, err := getContainerExecutable()
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
abs, err := os.Getwd()
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
if !strings.HasSuffix(strings.TrimSuffix(abs, "/"), "/_build") {
|
||||
log.Fatalf("gokr-rebuild-uboot is not run from a _build directory")
|
||||
}
|
||||
if *overwriteContainerExecutable != "" {
|
||||
executable = *overwriteContainerExecutable
|
||||
}
|
||||
@@ -111,15 +140,15 @@ func rebuildUboot() {
|
||||
log.Fatal(err)
|
||||
}
|
||||
defer os.RemoveAll(tmp)
|
||||
exePath, err := os.Executable()
|
||||
if err != nil {
|
||||
log.Fatal("Unable to find current executable", err)
|
||||
|
||||
cmd := exec.Command("go", "build", "-o", tmp, "gitea.narnian.us/lordwelch/gokrazy-cm3588-kernel/cmd/gokr-build-uboot")
|
||||
cmd.Env = append(os.Environ(), "GOOS=linux", "CGO_ENABLED=0")
|
||||
cmd.Stderr = os.Stderr
|
||||
if err := cmd.Run(); err != nil {
|
||||
log.Fatalf("%v: %v", cmd.Args, err)
|
||||
}
|
||||
|
||||
buildPath := filepath.Join(tmp, "gokr-build-uboot")
|
||||
err = copyFile(buildPath, exePath)
|
||||
if err != nil {
|
||||
log.Fatal("Unable to copy executable for docker", err)
|
||||
}
|
||||
|
||||
var patchPaths []string
|
||||
|
||||
@@ -131,7 +160,7 @@ func rebuildUboot() {
|
||||
patchPaths = append(patchPaths, path)
|
||||
}
|
||||
|
||||
err = os.MkdirAll(filepath.Join(tmp, "uboot.patches"), 0o750)
|
||||
err = os.MkdirAll(filepath.Join(tmp, "uboot.patches"), 0750)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
@@ -152,7 +181,7 @@ func rebuildUboot() {
|
||||
patchPaths = append(patchPaths, path)
|
||||
}
|
||||
|
||||
err = os.MkdirAll(filepath.Join(tmp, "atf.patches"), 0o750)
|
||||
err = os.MkdirAll(filepath.Join(tmp, "atf.patches"), 0750)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
@@ -193,7 +222,7 @@ func rebuildUboot() {
|
||||
|
||||
log.Printf("building %s container for uboot compilation", execName)
|
||||
|
||||
dockerBuild := exec.Command(executable,
|
||||
dockerBuild := exec.Command(execName,
|
||||
"build",
|
||||
"--rm=true",
|
||||
"--tag=gokr-rebuild-uboot",
|
||||
@@ -208,26 +237,20 @@ func rebuildUboot() {
|
||||
log.Printf("compiling uboot")
|
||||
|
||||
var dockerRun *exec.Cmd
|
||||
dockerArgs := []string{
|
||||
"run",
|
||||
// "--platform=linux/amd64",
|
||||
"--volume", tmp + ":/tmp/buildresult:Z",
|
||||
}
|
||||
if *persistent {
|
||||
err = os.MkdirAll("./src_build", 0o777)
|
||||
srcBuild, _ := filepath.Abs("./src_build")
|
||||
if err != nil {
|
||||
log.Fatal("Failed to create ./src_build", err)
|
||||
}
|
||||
dockerArgs = append(dockerArgs, "-v", srcBuild+":/usr/src")
|
||||
} else {
|
||||
dockerArgs = append(dockerArgs, fmt.Sprintf("--mount=type=tmpfs,tmpfs-size=%d%s,destination=%s,U", 5, "G", "/usr/src")) // Ramfs for faster build.... maybe
|
||||
}
|
||||
if execName == "podman" {
|
||||
dockerArgs = append(dockerArgs, "--userns=keep-id")
|
||||
dockerRun = exec.Command(executable,
|
||||
"run",
|
||||
"--userns=keep-id",
|
||||
"--rm",
|
||||
"--volume", tmp+":/tmp/buildresult:Z",
|
||||
"gokr-rebuild-uboot")
|
||||
} else {
|
||||
dockerRun = exec.Command(executable,
|
||||
"run",
|
||||
"--rm",
|
||||
"--volume", tmp+":/tmp/buildresult:Z",
|
||||
"gokr-rebuild-uboot")
|
||||
}
|
||||
dockerArgs = append(dockerArgs, "gokr-rebuild-uboot")
|
||||
dockerRun = exec.Command(executable, dockerArgs...)
|
||||
dockerRun.Dir = tmp
|
||||
dockerRun.Stdout = os.Stdout
|
||||
dockerRun.Stderr = os.Stderr
|
||||
@@ -244,11 +267,3 @@ func rebuildUboot() {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func main() {
|
||||
if os.Getenv("GOKRAZY_IN_DOCKER") == "1" {
|
||||
indockerMain()
|
||||
} else {
|
||||
rebuildUboot()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1 +1 @@
|
||||
console=ttyS2,1500000 earlycon root=/dev/mmcblk0p2 rootwait panic=10 oops=panic init=/gokrazy/init sdhci.debug_quirks=0x40 sdhci.debug_quirks2=0x04
|
||||
console=ttyS2,1500000 earlycon root=/dev/mmcblk0p2 rootwait panic=10 oops=panic init=/gokrazy/init
|
||||
|
||||
BIN
lib/modules/6.18.5/kernel/drivers/dma/bcm-sba-raid.ko
Normal file
BIN
lib/modules/6.18.5/kernel/drivers/dma/bcm-sba-raid.ko
Normal file
Binary file not shown.
Binary file not shown.
@@ -4,9 +4,9 @@ kernel/arch/arm64/crypto/aes-ce-cipher.ko
|
||||
kernel/arch/arm64/crypto/aes-ce-ccm.ko
|
||||
kernel/arch/arm64/crypto/aes-ce-blk.ko
|
||||
kernel/kernel/configs.ko
|
||||
kernel/mm/zsmalloc.ko
|
||||
kernel/fs/binfmt_script.ko
|
||||
kernel/fs/mbcache.ko
|
||||
kernel/fs/nfs_common/grace.ko
|
||||
kernel/fs/configfs/configfs.ko
|
||||
kernel/fs/netfs/netfs.ko
|
||||
kernel/fs/ext4/ext4.ko
|
||||
@@ -14,13 +14,7 @@ kernel/fs/jbd2/jbd2.ko
|
||||
kernel/fs/squashfs/squashfs.ko
|
||||
kernel/fs/fat/fat.ko
|
||||
kernel/fs/fat/vfat.ko
|
||||
kernel/fs/nfs/nfs.ko
|
||||
kernel/fs/nfs/nfsv3.ko
|
||||
kernel/fs/nfs/nfsv4.ko
|
||||
kernel/fs/nfs/filelayout/nfs_layout_nfsv41_files.ko
|
||||
kernel/fs/nfs/flexfilelayout/nfs_layout_flexfiles.ko
|
||||
kernel/fs/exportfs/exportfs.ko
|
||||
kernel/fs/lockd/lockd.ko
|
||||
kernel/fs/nls/nls_base.ko
|
||||
kernel/fs/nls/nls_cp437.ko
|
||||
kernel/fs/nls/nls_iso8859-1.ko
|
||||
@@ -29,7 +23,6 @@ kernel/fs/autofs/autofs4.ko
|
||||
kernel/fs/fuse/fuse.ko
|
||||
kernel/fs/overlayfs/overlay.ko
|
||||
kernel/fs/xfs/xfs.ko
|
||||
kernel/fs/9p/9p.ko
|
||||
kernel/fs/btrfs/btrfs.ko
|
||||
kernel/fs/pstore/pstore.ko
|
||||
kernel/fs/efivarfs/efivarfs.ko
|
||||
@@ -106,6 +99,7 @@ kernel/lib/zlib_inflate/zlib_inflate.ko
|
||||
kernel/lib/zlib_deflate/zlib_deflate.ko
|
||||
kernel/lib/lzo/lzo_compress.ko
|
||||
kernel/lib/lzo/lzo_decompress.ko
|
||||
kernel/lib/lz4/lz4_compress.ko
|
||||
kernel/lib/lz4/lz4_decompress.ko
|
||||
kernel/lib/zstd/zstd_compress.ko
|
||||
kernel/lib/zstd/zstd_decompress.ko
|
||||
@@ -823,9 +817,11 @@ kernel/drivers/base/regmap/regmap-i2c.ko
|
||||
kernel/drivers/base/regmap/regmap-spi.ko
|
||||
kernel/drivers/base/regmap/regmap-spmi.ko
|
||||
kernel/drivers/base/regmap/regmap-mmio.ko
|
||||
kernel/drivers/block/brd.ko
|
||||
kernel/drivers/block/loop.ko
|
||||
kernel/drivers/block/virtio_blk.ko
|
||||
kernel/drivers/block/xen-blkfront.ko
|
||||
kernel/drivers/block/zram/zram.ko
|
||||
kernel/drivers/misc/eeprom/eeprom_93cx6.ko
|
||||
kernel/drivers/mfd/bd9571mwv.ko
|
||||
kernel/drivers/mfd/cros_ec_dev.ko
|
||||
@@ -855,6 +851,7 @@ kernel/drivers/scsi/scsi_transport_sas.ko
|
||||
kernel/drivers/scsi/libsas/libsas.ko
|
||||
kernel/drivers/scsi/megaraid/megaraid_sas.ko
|
||||
kernel/drivers/scsi/sd_mod.ko
|
||||
kernel/drivers/scsi/sg.ko
|
||||
kernel/drivers/scsi/hisi_sas/hisi_sas_main.ko
|
||||
kernel/drivers/scsi/hisi_sas/hisi_sas_v1_hw.ko
|
||||
kernel/drivers/scsi/hisi_sas/hisi_sas_v2_hw.ko
|
||||
@@ -1175,7 +1172,6 @@ kernel/drivers/media/common/videobuf2/videobuf2-dma-sg.ko
|
||||
kernel/drivers/media/common/videobuf2/videobuf2-memops.ko
|
||||
kernel/drivers/media/common/videobuf2/videobuf2-v4l2.ko
|
||||
kernel/drivers/media/common/videobuf2/videobuf2-vmalloc.ko
|
||||
kernel/drivers/media/platform/rockchip/iep/rockchip-iep.ko
|
||||
kernel/drivers/media/platform/rockchip/rga/rockchip-rga.ko
|
||||
kernel/drivers/media/platform/rockchip/rkisp1/rockchip-isp1.ko
|
||||
kernel/drivers/media/platform/rockchip/rkvdec/rockchip-vdec.ko
|
||||
@@ -1231,6 +1227,7 @@ kernel/drivers/edac/edac_core.ko
|
||||
kernel/drivers/edac/ghes_edac.ko
|
||||
kernel/drivers/opp/ti-opp-supply.ko
|
||||
kernel/drivers/cpufreq/cpufreq_performance.ko
|
||||
kernel/drivers/cpufreq/cpufreq_powersave.ko
|
||||
kernel/drivers/cpufreq/cpufreq_userspace.ko
|
||||
kernel/drivers/cpufreq/cpufreq_ondemand.ko
|
||||
kernel/drivers/cpufreq/cpufreq-dt.ko
|
||||
@@ -1435,6 +1432,7 @@ kernel/drivers/interconnect/qcom/qnoc-x1e80100.ko
|
||||
kernel/drivers/interconnect/qcom/icc-smd-rpm.ko
|
||||
kernel/drivers/interconnect/icc-clk.ko
|
||||
kernel/drivers/hte/hte-tegra194.ko
|
||||
kernel/sound/soundcore.ko
|
||||
kernel/net/core/selftests.ko
|
||||
kernel/net/core/failover.ko
|
||||
kernel/net/llc/llc.ko
|
||||
@@ -1497,9 +1495,6 @@ kernel/net/ipv6/sit.ko
|
||||
kernel/net/ipv6/ip6_udp_tunnel.ko
|
||||
kernel/net/packet/af_packet.ko
|
||||
kernel/net/bridge/bridge.ko
|
||||
kernel/net/sunrpc/sunrpc.ko
|
||||
kernel/net/sunrpc/auth_gss/auth_rpcgss.ko
|
||||
kernel/net/sunrpc/auth_gss/rpcsec_gss_krb5.ko
|
||||
kernel/net/9p/9pnet.ko
|
||||
kernel/net/9p/9pnet_fd.ko
|
||||
kernel/net/9p/9pnet_virtio.ko
|
||||
BIN
lib/modules/6.18.5/modules.builtin.alias.bin
Normal file
BIN
lib/modules/6.18.5/modules.builtin.alias.bin
Normal file
Binary file not shown.
BIN
lib/modules/6.18.5/modules.builtin.bin
Normal file
BIN
lib/modules/6.18.5/modules.builtin.bin
Normal file
Binary file not shown.
BIN
lib/modules/6.18.5/modules.builtin.modinfo
Normal file
BIN
lib/modules/6.18.5/modules.builtin.modinfo
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,6 +1,6 @@
|
||||
#
|
||||
# Automatically generated file; DO NOT EDIT.
|
||||
# Linux/arm64 6.18.6 Kernel Configuration
|
||||
# Linux/arm64 6.18.5 Kernel Configuration
|
||||
#
|
||||
CONFIG_CC_VERSION_TEXT="aarch64-linux-gnu-gcc (Debian 14.2.0-19) 14.2.0"
|
||||
CONFIG_CC_IS_GCC=y
|
||||
@@ -224,10 +224,12 @@ CONFIG_RD_XZ=y
|
||||
CONFIG_RD_LZO=y
|
||||
CONFIG_RD_LZ4=y
|
||||
CONFIG_RD_ZSTD=y
|
||||
# CONFIG_BOOT_CONFIG is not set
|
||||
CONFIG_BOOT_CONFIG=y
|
||||
# CONFIG_BOOT_CONFIG_FORCE is not set
|
||||
# CONFIG_BOOT_CONFIG_EMBED is not set
|
||||
CONFIG_INITRAMFS_PRESERVE_MTIME=y
|
||||
CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y
|
||||
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
|
||||
# CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE is not set
|
||||
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
|
||||
CONFIG_LD_ORPHAN_WARN=y
|
||||
CONFIG_LD_ORPHAN_WARN_LEVEL="warn"
|
||||
CONFIG_SYSCTL=y
|
||||
@@ -648,7 +650,7 @@ CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
|
||||
# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
|
||||
# CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL is not set
|
||||
CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
|
||||
# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set
|
||||
CONFIG_CPU_FREQ_GOV_POWERSAVE=y
|
||||
CONFIG_CPU_FREQ_GOV_USERSPACE=y
|
||||
CONFIG_CPU_FREQ_GOV_ONDEMAND=y
|
||||
# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set
|
||||
@@ -926,7 +928,8 @@ CONFIG_BLK_DEV_INTEGRITY=y
|
||||
CONFIG_BLK_DEV_WRITE_MOUNTED=y
|
||||
# CONFIG_BLK_DEV_ZONED is not set
|
||||
# CONFIG_BLK_DEV_THROTTLING is not set
|
||||
# CONFIG_BLK_WBT is not set
|
||||
CONFIG_BLK_WBT=y
|
||||
CONFIG_BLK_WBT_MQ=y
|
||||
# CONFIG_BLK_CGROUP_IOLATENCY is not set
|
||||
# CONFIG_BLK_CGROUP_IOCOST is not set
|
||||
# CONFIG_BLK_CGROUP_IOPRIO is not set
|
||||
@@ -992,6 +995,18 @@ CONFIG_COREDUMP=y
|
||||
#
|
||||
CONFIG_SWAP=y
|
||||
# CONFIG_ZSWAP is not set
|
||||
CONFIG_ZSMALLOC=y
|
||||
|
||||
#
|
||||
# Zsmalloc allocator options
|
||||
#
|
||||
|
||||
#
|
||||
# Zsmalloc is a common backend allocator for zswap & zram
|
||||
#
|
||||
# CONFIG_ZSMALLOC_STAT is not set
|
||||
CONFIG_ZSMALLOC_CHAIN_SIZE=8
|
||||
# end of Zsmalloc allocator options
|
||||
|
||||
#
|
||||
# Slab allocator options
|
||||
@@ -1138,7 +1153,6 @@ CONFIG_XFRM_USER=y
|
||||
# CONFIG_XFRM_IPTFS is not set
|
||||
# CONFIG_DIBS is not set
|
||||
# CONFIG_XDP_SOCKETS is not set
|
||||
CONFIG_NET_HANDSHAKE=y
|
||||
CONFIG_INET=y
|
||||
CONFIG_IP_MULTICAST=y
|
||||
# CONFIG_IP_ADVANCED_ROUTER is not set
|
||||
@@ -2146,12 +2160,28 @@ CONFIG_PNPACPI=y
|
||||
CONFIG_BLK_DEV=y
|
||||
# CONFIG_BLK_DEV_NULL_BLK is not set
|
||||
# CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not set
|
||||
# CONFIG_ZRAM is not set
|
||||
CONFIG_ZRAM=y
|
||||
CONFIG_ZRAM_BACKEND_LZ4=y
|
||||
# CONFIG_ZRAM_BACKEND_LZ4HC is not set
|
||||
# CONFIG_ZRAM_BACKEND_ZSTD is not set
|
||||
# CONFIG_ZRAM_BACKEND_DEFLATE is not set
|
||||
# CONFIG_ZRAM_BACKEND_842 is not set
|
||||
CONFIG_ZRAM_BACKEND_LZO=y
|
||||
CONFIG_ZRAM_DEF_COMP_LZORLE=y
|
||||
# CONFIG_ZRAM_DEF_COMP_LZO is not set
|
||||
# CONFIG_ZRAM_DEF_COMP_LZ4 is not set
|
||||
CONFIG_ZRAM_DEF_COMP="lzo-rle"
|
||||
# CONFIG_ZRAM_WRITEBACK is not set
|
||||
# CONFIG_ZRAM_TRACK_ENTRY_ACTIME is not set
|
||||
# CONFIG_ZRAM_MEMORY_TRACKING is not set
|
||||
# CONFIG_ZRAM_MULTI_COMP is not set
|
||||
CONFIG_BLK_DEV_LOOP=y
|
||||
CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
|
||||
# CONFIG_BLK_DEV_DRBD is not set
|
||||
# CONFIG_BLK_DEV_NBD is not set
|
||||
# CONFIG_BLK_DEV_RAM is not set
|
||||
CONFIG_BLK_DEV_RAM=y
|
||||
CONFIG_BLK_DEV_RAM_COUNT=16
|
||||
CONFIG_BLK_DEV_RAM_SIZE=4096
|
||||
# CONFIG_ATA_OVER_ETH is not set
|
||||
CONFIG_XEN_BLKDEV_FRONTEND=y
|
||||
# CONFIG_XEN_BLKDEV_BACKEND is not set
|
||||
@@ -2256,7 +2286,7 @@ CONFIG_SCSI_DMA=y
|
||||
CONFIG_BLK_DEV_SD=y
|
||||
# CONFIG_CHR_DEV_ST is not set
|
||||
# CONFIG_BLK_DEV_SR is not set
|
||||
# CONFIG_CHR_DEV_SG is not set
|
||||
CONFIG_CHR_DEV_SG=y
|
||||
CONFIG_BLK_DEV_BSG=y
|
||||
# CONFIG_CHR_DEV_SCH is not set
|
||||
# CONFIG_SCSI_CONSTANTS is not set
|
||||
@@ -4966,7 +4996,6 @@ CONFIG_VIDEO_MUX=y
|
||||
#
|
||||
# Rockchip media platform drivers
|
||||
#
|
||||
CONFIG_VIDEO_ROCKCHIP_IEP=y
|
||||
CONFIG_VIDEO_ROCKCHIP_RGA=y
|
||||
CONFIG_VIDEO_ROCKCHIP_ISP1=y
|
||||
CONFIG_VIDEO_ROCKCHIP_VDEC=y
|
||||
@@ -5379,7 +5408,8 @@ CONFIG_TRACE_GPU_MEM=y
|
||||
# end of Graphics support
|
||||
|
||||
# CONFIG_DRM_ACCEL is not set
|
||||
# CONFIG_SOUND is not set
|
||||
CONFIG_SOUND=y
|
||||
# CONFIG_SND is not set
|
||||
CONFIG_HID_SUPPORT=y
|
||||
CONFIG_HID=y
|
||||
# CONFIG_HID_BATTERY_STRENGTH is not set
|
||||
@@ -5525,7 +5555,7 @@ CONFIG_USB_ARCH_HAS_HCD=y
|
||||
CONFIG_USB=y
|
||||
CONFIG_USB_PCI=y
|
||||
# CONFIG_USB_PCI_AMD is not set
|
||||
# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
|
||||
CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
|
||||
|
||||
#
|
||||
# Miscellaneous USB options
|
||||
@@ -8706,45 +8736,7 @@ CONFIG_PSTORE_COMPRESS=y
|
||||
# CONFIG_PSTORE_BLK is not set
|
||||
# CONFIG_UFS_FS is not set
|
||||
# CONFIG_EROFS_FS is not set
|
||||
CONFIG_NETWORK_FILESYSTEMS=y
|
||||
CONFIG_NFS_FS=y
|
||||
# CONFIG_NFS_V2 is not set
|
||||
CONFIG_NFS_V3=y
|
||||
# CONFIG_NFS_V3_ACL is not set
|
||||
CONFIG_NFS_V4=y
|
||||
# CONFIG_NFS_SWAP is not set
|
||||
CONFIG_NFS_V4_1=y
|
||||
CONFIG_NFS_V4_2=y
|
||||
CONFIG_PNFS_FILE_LAYOUT=y
|
||||
CONFIG_PNFS_FLEXFILE_LAYOUT=y
|
||||
CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org"
|
||||
# CONFIG_NFS_V4_1_MIGRATION is not set
|
||||
CONFIG_NFS_V4_SECURITY_LABEL=y
|
||||
CONFIG_ROOT_NFS=y
|
||||
# CONFIG_NFS_FSCACHE is not set
|
||||
# CONFIG_NFS_USE_LEGACY_DNS is not set
|
||||
CONFIG_NFS_USE_KERNEL_DNS=y
|
||||
CONFIG_NFS_DISABLE_UDP_SUPPORT=y
|
||||
CONFIG_NFS_V4_2_READ_PLUS=y
|
||||
# CONFIG_NFSD is not set
|
||||
CONFIG_GRACE_PERIOD=y
|
||||
CONFIG_LOCKD=y
|
||||
CONFIG_LOCKD_V4=y
|
||||
CONFIG_NFS_COMMON=y
|
||||
CONFIG_NFS_V4_2_SSC_HELPER=y
|
||||
CONFIG_SUNRPC=y
|
||||
CONFIG_SUNRPC_GSS=y
|
||||
CONFIG_SUNRPC_BACKCHANNEL=y
|
||||
CONFIG_RPCSEC_GSS_KRB5=y
|
||||
# CONFIG_SUNRPC_DEBUG is not set
|
||||
# CONFIG_CEPH_FS is not set
|
||||
# CONFIG_CIFS is not set
|
||||
# CONFIG_SMB_SERVER is not set
|
||||
# CONFIG_CODA_FS is not set
|
||||
# CONFIG_AFS_FS is not set
|
||||
CONFIG_9P_FS=y
|
||||
# CONFIG_9P_FS_POSIX_ACL is not set
|
||||
# CONFIG_9P_FS_SECURITY is not set
|
||||
# CONFIG_NETWORK_FILESYSTEMS is not set
|
||||
CONFIG_NLS=y
|
||||
CONFIG_NLS_DEFAULT="iso8859-1"
|
||||
CONFIG_NLS_CODEPAGE_437=y
|
||||
@@ -9199,6 +9191,7 @@ CONFIG_ZLIB_INFLATE=y
|
||||
CONFIG_ZLIB_DEFLATE=y
|
||||
CONFIG_LZO_COMPRESS=y
|
||||
CONFIG_LZO_DECOMPRESS=y
|
||||
CONFIG_LZ4_COMPRESS=y
|
||||
CONFIG_LZ4_DECOMPRESS=y
|
||||
CONFIG_ZSTD_COMMON=y
|
||||
CONFIG_ZSTD_COMPRESS=y
|
||||
|
||||
Reference in New Issue
Block a user