Dear Ben, and other arm/kernel folks, On Wed, Jan 24, 2018 at 3:30 AM, Ben Hutchings <b...@decadent.org.uk> wrote: > On Mon, 2018-01-22 at 22:38 +0900, Roger Shimizu wrote: > > There's an upstream change in cfg80211 that enables direct-loading of > wireless rules, which requires public key crypto in the kernel. There > doesn't appear to be any option to disable that mode, even though we > don't need it because crda still works. Maybe you could disable > wireless networking completely?
I finally settled a solution, by introducing a new armel flavour: mini, which doesn't support wireless. There're still some users that need wireless, so I didn't remove wireless from armel/marvell directly. So here I propose to have: - marvell to support all generic feature and being able to tuned for performance. - mini without wireless and being minimum. Patches are all enclosed, and pushed to salsa rosh/armel_mini branch. - 0001: Bring back qnap support by a new armel flavour: mini (Disable WIRELESS, WLAN, etc) - 0002: [armel/mini] Add flavour mini to installer - 0003: [armel/mini] Further change a few features as module (I2C, I2C_CHARDEV, I2C_MV64XXX, MTD, MTD_CMDLINE_PARTS, RTC_DRV_MV, and SPI_ORION) I tested on stretch by cross compiling, here's generated kernel size. - original 4.16~rc6-1~exp2: 2142704 - After patch 0001: 2017088 - After patch 0002: 2017088 - After patch 0003: 1985896 Here's my testing result regarding those features that changed to module: (tested under stretch) > Some options that could possibly be changed from y to m: > > - I2C, I2C_CHARDEV, I2C_MV64XXX. initramfs-tools should include I2C > drivers to the initramfs if needed, but I'm not certain. No, i2c nor i2c_mv64xxx will be loaded. But my armel box seems fine without them. Of course, manually "modprobe i2c_mv64xxx" will load the module well. > - MTD, MTD_CMDLINE_PARTS, etc. But I'm pretty sure this will break > some systems unless initramfs-tools is updated to include and load the > cmdlinepart module. > > - RTC_DRV_MV (and disable RTC_HCTOSYS). There's a udev rule that > should load the system clock from the first RTC if its driver is a > module. > > - SPI_ORION. initramfs-tools should include this in the initramfs if > needed, but I'm not certain. Yes, above 3 modules are loaded without glitch. > Some options that could possibly be disabled: > > - AUDIT. This is quite a niche feature. I tried, but couldn't. Maybe next time. So armel/mini image now reduced 150KB compared to marvell, which now has enough room for Buster. Any concern for merging these patches? Cheers, -- Roger Shimizu, GMT +9 Tokyo PGP/GPG: 4096R/6C6ACD6417B3ACB1
From 713af1924e35a0587da2aa22d2d538b424955524 Mon Sep 17 00:00:00 2001 From: Roger Shimizu <rogershim...@gmail.com> Date: Sun, 1 Apr 2018 00:27:00 +0900 Subject: [PATCH 1/3] Bring back qnap support by a new armel flavour: mini [armel/marvell] For flavour marvell, set CC_OPTIMIZE_FOR_PERFORMANCE, which is default for other Arch. [armel/mini] Add a new flavour mini to bring back qnap support, which uses config.marvell as base, with some additional settings in config-reduced: - Set CC_OPTIMIZE_FOR_SIZE, which as set in config.marvell before - Change CRYPTO_MANAGER as module - Set CRYPTO_MANAGER_DISABLE_TESTS=y - Disable ZSWAP - Disable WIRELESS - Disable RD_BZIP2 and RD_LZMA --- debian/changelog | 11 +++++++++++ debian/config/armel/config-reduced | 33 +++++++++++++++++++++++++++++++++ debian/config/armel/config.marvell | 3 --- debian/config/armel/defines | 29 +++++++++++++++++++++++------ 4 files changed, 67 insertions(+), 9 deletions(-) create mode 100644 debian/config/armel/config-reduced diff --git a/debian/changelog b/debian/changelog index a30befbd9..7a0f7f7df 100644 --- a/debian/changelog +++ b/debian/changelog @@ -7,6 +7,17 @@ linux (4.16~rc6-1~exp2) UNRELEASED; urgency=medium Also revert two commits that disabled armel previously: - [2ed70eb] "Add empty featuresets for armel to help abiupdate script" - [5f62872] "(Temporarily) disable armel kernel image build" + * [armel/marvell] For flavour marvell, set CC_OPTIMIZE_FOR_PERFORMANCE, + which is default for other Arch. + * [armel/mini] Add a new flavour mini to bring back qnap support, which + uses config.marvell as base, with some additional settings in + config-reduced: + - Set CC_OPTIMIZE_FOR_SIZE, which as set in config.marvell before + - Change CRYPTO_MANAGER as module + - Set CRYPTO_MANAGER_DISABLE_TESTS=y + - Disable ZSWAP + - Disable WIRELESS + - Disable RD_BZIP2 and RD_LZMA -- Roger Shimizu <rogershim...@gmail.com> Fri, 23 Mar 2018 21:10:34 +0900 diff --git a/debian/config/armel/config-reduced b/debian/config/armel/config-reduced new file mode 100644 index 000000000..3d6e3bfbc --- /dev/null +++ b/debian/config/armel/config-reduced @@ -0,0 +1,33 @@ +## +## file: crypto/Kconfig +## +CONFIG_CRYPTO_MANAGER=m +CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y + +## +## file: drivers/net/wireless/Kconfig +## +# CONFIG_WLAN is not set + +## +## file: init/Kconfig +## +## choice: Compiler optimization level +CONFIG_CC_OPTIMIZE_FOR_SIZE=y +## end choice + +## +## file: mm/Kconfig +## +# CONFIG_ZSWAP is not set + +## +## file: net/Kconfig +## +# CONFIG_WIRELESS is not set + +## +## file: usr/Kconfig +## +# CONFIG_RD_BZIP2 is not set +# CONFIG_RD_LZMA is not set diff --git a/debian/config/armel/config.marvell b/debian/config/armel/config.marvell index c5703aeeb..6e18a7fa0 100644 --- a/debian/config/armel/config.marvell +++ b/debian/config/armel/config.marvell @@ -725,9 +725,6 @@ CONFIG_NLS=m # CONFIG_MEMCG is not set # CONFIG_CFS_BANDWIDTH is not set # CONFIG_CGROUP_BPF is not set -## choice: Compiler optimization level -CONFIG_CC_OPTIMIZE_FOR_SIZE=y -## end choice # CONFIG_CHECKPOINT_RESTORE is not set # CONFIG_USERFAULTFD is not set # CONFIG_SLUB_DEBUG is not set diff --git a/debian/config/armel/defines b/debian/config/armel/defines index f40c4038e..693187769 100644 --- a/debian/config/armel/defines +++ b/debian/config/armel/defines @@ -1,6 +1,7 @@ [base] flavours: marvell + mini kernel-arch: arm [build] @@ -20,17 +21,13 @@ headers%gcc-7: linux-compiler-gcc-7-arm [marvell_description] hardware: Marvell Kirkwood/Orion -hardware-long: Marvell Kirkwood based systems (SheevaPlug, QNAP TS-119/TS-219, etc) - and Orion 5181, 5182 and 5281 based systems (QNAP TS-109/TS-209, etc) +hardware-long: Marvell Kirkwood based systems (SheevaPlug, Linstation LS-WVL, etc) + and Orion 5181, 5182 and 5281 based systems (KuroBox-Pro, Linstation LS-GL, etc) [marvell_image] recommends: u-boot-tools ## Maximum kernel size for supported devices (64 bytes is the u-boot header) # SheevaPlug: 4194304 - 64 = 4194240 -# QNAP TS-119/TS-219: 2097152 - 64 = 2097088 -# D-Link DNS-323: 1572864 - 8 - 64 = 1572792 (too small, no longer supported) -# HP Media Vault mv2120: 2097152 - 8 - 64 = 2097080 -# QNAP TS-109/TS-209 & TS-409: 2097152 - 8 - 64 = 2097080 # Buffalo Linkstation LS-WSXL/WXL/WVL (from stock kernel): 2729776 - 64 = 2729712 check-size: 2729712 check-size-with-dtb: true @@ -38,3 +35,23 @@ check-size-with-dtb: true # Buffalo Linkstation LS-WSXL/WXL/WVL: 7340032 check-uncompressed-size: 7340032 breaks: flash-kernel (<< 3.57~) + +[mini_description] +hardware: Mini Marvell Kirkwood/Orion +hardware-long: Marvell Kirkwood/Orion based systems with strict kernel size limit + such as Kirkwood based QNAP TS-119/TS-219, and Orion based QNAP TS-109/TS-209, etc + +[mini_image] +recommends: u-boot-tools +## Maximum kernel size for supported devices (64 bytes is the u-boot header) +# QNAP TS-119/TS-219: 2097152 - 64 = 2097088 +# D-Link DNS-323: 1572864 - 8 - 64 = 1572792 (too small, no longer supported) +# HP Media Vault mv2120: 2097152 - 8 - 64 = 2097080 +# QNAP TS-109/TS-209 & TS-409: 2097152 - 8 - 64 = 2097080 +check-size: 2097080 +check-size-with-dtb: true +check-uncompressed-size: 7340032 +breaks: flash-kernel (<< 3.57~) +configs: + armel/config.marvell + armel/config-reduced -- 2.11.0
From aefdad38243866549e0b67e8a1c82213a8c052e0 Mon Sep 17 00:00:00 2001 From: Roger Shimizu <rogershim...@gmail.com> Date: Sun, 1 Apr 2018 18:10:11 +0900 Subject: [PATCH 2/3] [armel/mini] Add flavour mini to installer --- debian/changelog | 1 + debian/installer/armel/kernel-versions | 1 + debian/installer/armel/modules/armel-mini | 1 + debian/installer/armel/package-list | 2 +- 4 files changed, 4 insertions(+), 1 deletion(-) create mode 120000 debian/installer/armel/modules/armel-mini diff --git a/debian/changelog b/debian/changelog index 7a0f7f7df..000ec10d2 100644 --- a/debian/changelog +++ b/debian/changelog @@ -18,6 +18,7 @@ linux (4.16~rc6-1~exp2) UNRELEASED; urgency=medium - Disable ZSWAP - Disable WIRELESS - Disable RD_BZIP2 and RD_LZMA + * [armel/mini] Add flavour mini to installer -- Roger Shimizu <rogershim...@gmail.com> Fri, 23 Mar 2018 21:10:34 +0900 diff --git a/debian/installer/armel/kernel-versions b/debian/installer/armel/kernel-versions index 49eb64629..8d584a289 100644 --- a/debian/installer/armel/kernel-versions +++ b/debian/installer/armel/kernel-versions @@ -1,2 +1,3 @@ # arch version flavour installedname suffix build-depends armel - marvell - y - +armel - mini - y - diff --git a/debian/installer/armel/modules/armel-mini b/debian/installer/armel/modules/armel-mini new file mode 120000 index 000000000..e7057ad28 --- /dev/null +++ b/debian/installer/armel/modules/armel-mini @@ -0,0 +1 @@ +armel-marvell \ No newline at end of file diff --git a/debian/installer/armel/package-list b/debian/installer/armel/package-list index d975323d3..1dac23169 100644 --- a/debian/installer/armel/package-list +++ b/debian/installer/armel/package-list @@ -5,7 +5,7 @@ # Package: kernel-image Provides_marvell: rtc-modules -Provides_versatile: rtc-modules +Provides_mini: rtc-modules Package: fb-modules Depends: kernel-image, usb-modules -- 2.11.0
From ce61976b4810abb7e88f0bf08dc8efc7e6a19dc5 Mon Sep 17 00:00:00 2001 From: Roger Shimizu <rogershim...@gmail.com> Date: Sun, 1 Apr 2018 18:25:48 +0900 Subject: [PATCH 3/3] [armel/mini] Further change a few features as module Change the following as module: - I2C - I2C_CHARDEV - I2C_MV64XXX - MTD - MTD_CMDLINE_PARTS - RTC_DRV_MV - SPI_ORION --- debian/changelog | 2 ++ debian/config/armel/config-reduced | 27 +++++++++++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/debian/changelog b/debian/changelog index 000ec10d2..0bae2b210 100644 --- a/debian/changelog +++ b/debian/changelog @@ -18,6 +18,8 @@ linux (4.16~rc6-1~exp2) UNRELEASED; urgency=medium - Disable ZSWAP - Disable WIRELESS - Disable RD_BZIP2 and RD_LZMA + - Change a few features as module: I2C, I2C_CHARDEV, I2C_MV64XXX, MTD, + MTD_CMDLINE_PARTS, RTC_DRV_MV, and SPI_ORION * [armel/mini] Add flavour mini to installer -- Roger Shimizu <rogershim...@gmail.com> Fri, 23 Mar 2018 21:10:34 +0900 diff --git a/debian/config/armel/config-reduced b/debian/config/armel/config-reduced index 3d6e3bfbc..c848653f5 100644 --- a/debian/config/armel/config-reduced +++ b/debian/config/armel/config-reduced @@ -5,11 +5,38 @@ CONFIG_CRYPTO_MANAGER=m CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y ## +## file: drivers/i2c/Kconfig +## +CONFIG_I2C=m +CONFIG_I2C_CHARDEV=m + +## +## file: drivers/i2c/busses/Kconfig +## +CONFIG_I2C_MV64XXX=m + +## +## file: drivers/mtd/Kconfig +## +CONFIG_MTD=m +CONFIG_MTD_CMDLINE_PARTS=m + +## ## file: drivers/net/wireless/Kconfig ## # CONFIG_WLAN is not set ## +## file: drivers/rtc/Kconfig +## +CONFIG_RTC_DRV_MV=m + +## +## file: drivers/spi/Kconfig +## +CONFIG_SPI_ORION=m + +## ## file: init/Kconfig ## ## choice: Compiler optimization level -- 2.11.0