Switch to modules.load for lkm

Change-Id: I1a44f93747c37db7faea2a54cce90bfdbdb7ae1c
This commit is contained in:
Aaron Kling authored and Thomas Makin committed 2024-01-29 11:58:41 -05:00
1 parent 66cd5b36e1
commit ba8c478824
7 files changed
+106 -234

No files matched your search

+1
View File
@@ -56,6 +56,7 @@ TARGET_KERNEL_CONFIG := tegra_android_defconfig
TARGET_KERNEL_ADDITIONAL_FLAGS := \
NV_BUILD_KERNEL_OPTIONS=$(TARGET_TEGRA_KERNEL)
HOSTCFLAGS="-fuse-ld=lld -Wno-unused-command-line-argument"
include device/nintendo/nx/modules.mk
# Kernel Image Parameters
BOARD_KERNEL_IMAGE_NAME := Image.gz
+2 -1
View File
@@ -139,7 +139,8 @@ PRODUCT_PACKAGES += \
# Loadable kernel modules
PRODUCT_PACKAGES += \
init.lkm.rc \
lkm_loader
lkm_loader \
lkm_loader_target
# Media config
PRODUCT_COPY_FILES += \
+2 -2
View File
@@ -68,8 +68,8 @@ LOCAL_MODULE_RELATIVE_PATH := init/hw
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE := lkm_loader
LOCAL_SRC_FILES := lkm_loader.sh
LOCAL_MODULE := lkm_loader_target
LOCAL_SRC_FILES := lkm_loader_target.sh
LOCAL_MODULE_SUFFIX := .sh
LOCAL_MODULE_CLASS := EXECUTABLES
LOCAL_VENDOR_MODULE := true
-8
View File
@@ -18,10 +18,6 @@ on fs
setprop camera.disable_zsl_mode 1
setprop ro.config.media_vol_default 15
# start Early Loadable Kernel Module service
exec /vendor/bin/lkm_loader.sh early
restorecon_recursive /sys
#start pbc daemon
service pbc2 /system/vendor/bin/pbc2
class main
@@ -59,10 +55,6 @@ on boot
write /sys/devices/system/cpu/cpufreq/schedutil/down_rate_limit_us 2000
write /sys/devices/system/cpu/cpufreq/schedutil/capacity_margin 256
# start Loadable Kernel Module service
start vendor.lkm_loader
restorecon_recursive /sys/devices/system/cpu/cpufreq/interactive
setprop persist.vendor.tegra.decompression cde-client
wait /sys/devices/57000000.gpu/devfreq/57000000.gpu/available_frequencies 10
-223
View File
@@ -1,223 +0,0 @@
#!/vendor/bin/sh
# Copyright (c) 2017-2019, NVIDIA CORPORATION. All rights reserved.
#
# NVIDIA CORPORATION and its licensors retain all intellectual property
# and proprietary rights in and to this software, related documentation
# and any modifications thereto. Any use, reproduction, disclosure or
# distribution of this software and related documentation without an express
# license agreement from NVIDIA CORPORATION is strictly prohibited.
scriptName=$0
# Read the Board/Platform name
hardwareName=$(getprop ro.hardware)
/vendor/bin/log -t "$scriptName" -p i "*** STARTING LKM LOADER FOR ***:" $hardwareName
do_insmod()
{
if [ -e "$1" ]; then
insmod $@ > /dev/kmsg 2>&1
fi
}
#====================================================================================
# Early load is for loading modules "on fs"
early_load()
{
# list of Vendor modules
# insmod /vendor/lib/modules/example1.ko
/vendor/bin/log -t "$scriptName" -p i "Early Loading LKM SoC-Vendor modules started"
do_insmod /vendor/lib/modules/pcie-tegra-dw.ko
do_insmod /vendor/lib/modules/pci-tegra.ko
/vendor/bin/log -t "$scriptName" -p i "Loading LKM nvgpu started"
do_insmod /vendor/lib/modules/nvgpu.ko
/vendor/bin/log -t "$scriptName" -p i "Loading LKM nvgpu completed"
# Realtek R8168 drivers
do_insmod /vendor/lib/modules/r8168.ko
# load COMMS drivers
do_insmod /vendor/lib/modules/bluedroid_pm.ko
if [ "`cat /proc/device-tree/brcmfmac_pcie_wlan/status`" = "okay" ]; then
/vendor/bin/log -t "wifiloader" -p i " Loading brcmfmac driver for wlan"
do_insmod /vendor/lib/modules/compat.ko
do_insmod /vendor/lib/modules/cfg80211.ko
do_insmod /vendor/lib/modules/brcmutil.ko
do_insmod /vendor/lib/modules/brcmfmac.ko
fi
# USB-to-serial driver
do_insmod /vendor/lib/modules/usbserial.ko
do_insmod /vendor/lib/modules/ftdi_sio.ko
/vendor/bin/log -t "$scriptName" -p i "loading usb serial modules completed"
/vendor/bin/log -t "$scriptName" -p i "loading vendor audio modules started"
# HDA audio driver
do_insmod /vendor/lib/modules/snd-hda-tegra.ko
# APE audio drivers
do_insmod /vendor/lib/modules/snd-soc-tegra-alt-utils.ko
do_insmod /vendor/lib/modules/snd-soc-tegra210-alt-xbar.ko
do_insmod /vendor/lib/modules/tegra210-adma.ko
do_insmod /vendor/lib/modules/snd-soc-tegra210-alt-admaif.ko
do_insmod /vendor/lib/modules/snd-soc-tegra-virt-alt-ivc.ko
do_insmod /vendor/lib/modules/snd-soc-tegra210-alt-adsp.ko
do_insmod /vendor/lib/modules/snd-soc-tegra210-alt-sfc.ko
do_insmod /vendor/lib/modules/snd-soc-tegra210-alt-i2s.ko
do_insmod /vendor/lib/modules/snd-soc-tegra210-alt-mixer.ko
do_insmod /vendor/lib/modules/snd-soc-tegra210-alt-afc.ko
do_insmod /vendor/lib/modules/snd-soc-tegra210-alt-adx.ko
do_insmod /vendor/lib/modules/snd-soc-tegra210-alt-amx.ko
do_insmod /vendor/lib/modules/snd-soc-tegra210-alt-dmic.ko
do_insmod /vendor/lib/modules/snd-soc-tegra210-alt-mvc.ko
do_insmod /vendor/lib/modules/snd-soc-tegra210-alt-ope.ko
/vendor/bin/log -t "$scriptName" -p i "loading vendor audio modules completed"
do_insmod /vendor/lib/modules/cpufreq_schedutil.ko
do_insmod /vendor/lib/modules/cpufreq_conservative.ko
do_insmod /vendor/lib/modules/cpufreq_powersave.ko
do_insmod /vendor/lib/modules/cpufreq_userspace.ko
do_insmod /vendor/lib/modules/cpufreq_ondemand.ko
# DEVFREQ governors
do_insmod /vendor/lib/modules/governor_userspace.ko
do_insmod /vendor/lib/modules/governor_pod_scaling.ko
do_insmod /vendor/lib/modules/governor_wmark_active.ko
# Security
do_insmod /vendor/lib/modules/echainiv.ko
do_insmod /vendor/lib/modules/af_alg.ko
do_insmod /vendor/lib/modules/algif_skcipher.ko
do_insmod /vendor/lib/modules/algif_hash.ko
do_insmod /vendor/lib/modules/cryptd.ko
do_insmod /vendor/lib/modules/crypto_simd.ko
do_insmod /vendor/lib/modules/ecc.ko
do_insmod /vendor/lib/modules/ecdsa_generic.ko
do_insmod /vendor/lib/modules/twofish_common.ko
do_insmod /vendor/lib/modules/twofish_generic.ko
do_insmod /vendor/lib/modules/ablk_helper.ko
do_insmod /vendor/lib/modules/ecdh_generic.ko
do_insmod /vendor/lib/modules/aes-ce-cipher.ko
do_insmod /vendor/lib/modules/aes-ce-ccm.ko
do_insmod /vendor/lib/modules/sha1-ce.ko
do_insmod /vendor/lib/modules/sha2-ce.ko
do_insmod /vendor/lib/modules/sha512-arm64.ko
do_insmod /vendor/lib/modules/aes-ce-blk.ko
do_insmod /vendor/lib/modules/gf128mul.ko
do_insmod /vendor/lib/modules/ghash-ce.ko
do_insmod /vendor/lib/modules/aes-neon-blk.ko
do_insmod /vendor/lib/modules/aes-neon-bs.ko
do_insmod /vendor/lib/modules/tegra-se.ko
do_insmod /vendor/lib/modules/tegra-se-elp.ko
do_insmod /vendor/lib/modules/tegra-se-nvhost.ko
do_insmod /vendor/lib/modules/tegra-cryptodev.ko
do_insmod /vendor/lib/modules/trusty.ko
do_insmod /vendor/lib/modules/trusty-irq.ko
do_insmod /vendor/lib/modules/virtio.ko
do_insmod /vendor/lib/modules/virtio_ring.ko
do_insmod /vendor/lib/modules/trusty-log.ko
do_insmod /vendor/lib/modules/trusty-ipc.ko
do_insmod /vendor/lib/modules/trusty-ote.ko
do_insmod /vendor/lib/modules/trusty-otf-iface.ko
do_insmod /vendor/lib/modules/trusty-mem.ko
do_insmod /vendor/lib/modules/trusty-virtio.ko
# Peripheral
do_insmod /vendor/lib/modules/core.ko
do_insmod /vendor/lib/modules/input-cfboost.ko
do_insmod /vendor/lib/modules/pwm-tegra-pmc-blink.ko
do_insmod /vendor/lib/modules/pwm_fan.ko
do_insmod /vendor/lib/modules/therm_fan_est.ko
# Joycons (make sure to load after pwm_fan to avoid excessive fanspin!)
do_insmod /vendor/lib/modules/crc8.ko
do_insmod /vendor/lib/modules/joycon-serdev.ko
# TV tuner drivers
do_insmod /vendor/lib/modules/videobuf-core.ko
do_insmod /vendor/lib/modules/videobuf-vmalloc.ko
do_insmod /vendor/lib/modules/videobuf-dvb.ko
do_insmod /vendor/lib/modules/tveeprom.ko
/vendor/bin/log -t "$scriptName" -p i "Early loading SoC-Vendor TV tuner modules completed"
/vendor/bin/log -t "$scriptName" -p i "Early Loading LKM SoC-Vendor modules completed"
#--------------------------------------------------------------------------------
# list of ODM modules
# insmod /odm/lib/modules/example2.ko
# Upstream has these on odm, but we put all modules on vendor
/vendor/bin/log -t "$scriptName" -p i "Early Loading LKM Board-ODM modules started"
/vendor/bin/log -t "$scriptName" -p i "loading odm audio modules started"
do_insmod /vendor/lib/modules/snd-soc-rt5640.ko
do_insmod /vendor/lib/modules/snd-soc-tegra-machine-driver.ko
/vendor/bin/log -t "$scriptName" -p i "loading odm audio modules completed"
# Peripheral
do_insmod /vendor/lib/modules/ina230.ko
do_insmod /vendor/lib/modules/ina3221.ko
/vendor/bin/log -t "$scriptName" -p i "Loading vendor gpio timed keys module for early mode started"
do_insmod /vendor/lib/modules/gpio_timed_keys.ko
/vendor/bin/log -t "$scriptName" -p i "Loading vendor gpio timed keys module for early mode completed"
# TV tuner drivers
do_insmod /vendor/lib/modules/lgdt3306a.ko
do_insmod /vendor/lib/modules/si2168.ko
do_insmod /vendor/lib/modules/si2157.ko
do_insmod /vendor/lib/modules/lgdt3305.ko
do_insmod /vendor/lib/modules/tda18272.ko
do_insmod /vendor/lib/modules/em28xx.ko
do_insmod /vendor/lib/modules/em28xx-dvb.ko
do_insmod /vendor/lib/modules/em28xx-rc.ko
do_insmod /vendor/lib/modules/cx25840.ko
do_insmod /vendor/lib/modules/cx2341x.ko
do_insmod /vendor/lib/modules/cx231xx.ko
do_insmod /vendor/lib/modules/cx231xx-dvb.ko
/vendor/bin/log -t "$scriptName" -p i "Early loading ODM TV tuner modules completed"
# Joycons (make sure to load after pwm_fan to avoid excessive fanspin!)
/vendor/bin/log -t "$scriptName" -p i "Loading JoyCon serdev modules started"
do_insmod /vendor/lib/modules/crc8.ko
do_insmod /vendor/lib/modules/joycon-serdev.ko
/vendor/bin/log -t "$scriptName" -p i "Loading JoyCon serdev modules completed"
}
#===================================================================================
# Normal load is for loading on boot
normal_load()
{
# list of Vendor modules
# insmod /vendor/lib/modules/example1.ko
/vendor/bin/log -t "$scriptName" -p i "Loading LKM SoC-Vendor modules started"
do_insmod /vendor/lib/modules/usb-storage.ko
#do_insmod /vendor/lib/modules/uas.ko
do_insmod /vendor/lib/modules/cdc-acm.ko
do_insmod /vendor/lib/modules/ozwpan.ko
do_insmod /vendor/lib/modules/hid-nvidia-blake.ko
do_insmod /vendor/lib/modules/hid-jarvis-remote.ko
do_insmod /vendor/lib/modules/hid-xinmo.ko
do_insmod /vendor/lib/modules/hid-betopff.ko
/vendor/bin/log -t "$scriptName" -p i "Loading LKM SoC-Vendor modules completed"
}
#--------------------------------------------------------------------------------
# if [ "$1" = "recovery" ]; then
# Use BoardConfig.mk and init.recovery.lkm*.rc instead
if [ "$1" = "early" ]; then
early_load
else
normal_load
fi
+3
View File
@@ -0,0 +1,3 @@
#!/vendor/bin/sh
/vendor/bin/modprobe -a -d /vendor/lib/modules brcmfmac;
+98
View File
@@ -0,0 +1,98 @@
#
# Copyright (C) 2022 The LineageOS Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# Tegra pcie host
BOARD_VENDOR_KERNEL_MODULES_LOAD := \
pci_tegra
# Proprietary gpu driver
BOARD_VENDOR_KERNEL_MODULES_LOAD += \
nvgpu
# Bluedroid power management
BOARD_VENDOR_KERNEL_MODULES_LOAD += \
bluedroid_pm
# Tegra hdmi audio
BOARD_VENDOR_KERNEL_MODULES_LOAD += \
snd_hda_tegra
# Tegra audio processing engine
BOARD_VENDOR_KERNEL_MODULES_LOAD += \
snd_soc_tegra210_alt_xbar \
snd_soc_tegra210_alt_admaif \
snd_soc_tegra210_alt_sfc \
snd_soc_tegra210_alt_i2s \
snd_soc_tegra210_alt_mixer \
snd_soc_tegra210_alt_afc \
snd_soc_tegra210_alt_adx \
snd_soc_tegra210_alt_amx \
snd_soc_tegra210_alt_dmic \
snd_soc_tegra210_alt_mvc \
snd_soc_tegra210_alt_ope \
snd_soc_tegra_machine_driver
# Userspace aes crypto access
BOARD_VENDOR_KERNEL_MODULES_LOAD += \
tegra_cryptodev
# Input cpufreq boost
BOARD_VENDOR_KERNEL_MODULES_LOAD += \
input_cfboost
# JoyCons
BOARD_VENDOR_KERNEL_MODULES_LOAD += \
joycon-serdev
# Fan
BOARD_VENDOR_KERNEL_MODULES_LOAD += \
pwm_fan
# Power Monitor
BOARD_VENDOR_KERNEL_MODULES_LOAD += \
ina3221
# TV Tuners
BOARD_VENDOR_KERNEL_MODULES_LOAD += \
videobuf_dvb \
lgdt3306a \
si2168 \
si2157 \
lgdt3305 \
tda18272 \
em28xx_dvb \
em28xx_rc \
cx25840 \
cx231xx_dvb
# USB Storage
BOARD_VENDOR_KERNEL_MODULES_LOAD += \
usb_storage
# USB Modem
BOARD_VENDOR_KERNEL_MODULES_LOAD += \
cdc_acm
# Nvidia Controllers
BOARD_VENDOR_KERNEL_MODULES_LOAD += \
ozwpan \
hid_nvidia_blake \
hid_jarvis_remote
# Misc Controllers
BOARD_VENDOR_KERNEL_MODULES_LOAD += \
hid_xinmo \
hid_betopff