From cf5de23f5efdee660551aa5594f1838e36e97c69 Mon Sep 17 00:00:00 2001 From: classabbyamp Date: Thu, 21 Mar 2024 18:00:45 -0400 Subject: [PATCH 1/3] New package: x13s-base-0.1 --- srcpkgs/x13s-base/INSTALL | 12 ++++++++++++ srcpkgs/x13s-base/files/72-touchscreen.rules | 1 + srcpkgs/x13s-base/files/90-net-address.rules | 1 + srcpkgs/x13s-base/files/dracut.conf | 6 ++++++ srcpkgs/x13s-base/files/mkinitcpio.conf | 6 ++++++ srcpkgs/x13s-base/template | 20 ++++++++++++++++++++ 6 files changed, 46 insertions(+) create mode 100644 srcpkgs/x13s-base/INSTALL create mode 100644 srcpkgs/x13s-base/files/72-touchscreen.rules create mode 100644 srcpkgs/x13s-base/files/90-net-address.rules create mode 100644 srcpkgs/x13s-base/files/dracut.conf create mode 100644 srcpkgs/x13s-base/files/mkinitcpio.conf create mode 100644 srcpkgs/x13s-base/template diff --git a/srcpkgs/x13s-base/INSTALL b/srcpkgs/x13s-base/INSTALL new file mode 100644 index 00000000000000..6b7a4d1eaa0df7 --- /dev/null +++ b/srcpkgs/x13s-base/INSTALL @@ -0,0 +1,12 @@ +case "$ACTION" in +post) + mkdir -p etc/runit/runsvdir/default/ + ln -sf /etc/sv/qrtr-ns etc/runit/runsvdir/default/ + ln -sf /etc/sv/pd-mapper etc/runit/runsvdir/default/ + + # assign a random wlan MAC address with the correct OUI + sed -i.bak -e "s/:XX:YY:ZZ/$(od -An -N3 -t x1 /dev/urandom | tr ' ' ':')/g" \ + usr/lib/udev/rules.d/90-x13s-net-address.rules + rm usr/lib/udev/rules.d/90-x13s-net-address.rules.bak + ;; +esac diff --git a/srcpkgs/x13s-base/files/72-touchscreen.rules b/srcpkgs/x13s-base/files/72-touchscreen.rules new file mode 100644 index 00000000000000..c0a1cb63749643 --- /dev/null +++ b/srcpkgs/x13s-base/files/72-touchscreen.rules @@ -0,0 +1 @@ +ACTION=="add" , RUN+="/bin/sh -c 'echo 4-0010 > /sys/bus/i2c/drivers/i2c_hid_of/bind'" diff --git a/srcpkgs/x13s-base/files/90-net-address.rules b/srcpkgs/x13s-base/files/90-net-address.rules new file mode 100644 index 00000000000000..79911ffb908b29 --- /dev/null +++ b/srcpkgs/x13s-base/files/90-net-address.rules @@ -0,0 +1 @@ +ACTION=="add", SUBSYSTEM=="net", KERNELS=="0006:01:00.0", RUN+="/usr/bin/ip link set dev $name address F4:A0:0D:XX:YY:ZZ" diff --git a/srcpkgs/x13s-base/files/dracut.conf b/srcpkgs/x13s-base/files/dracut.conf new file mode 100644 index 00000000000000..c6ee58563f3b3d --- /dev/null +++ b/srcpkgs/x13s-base/files/dracut.conf @@ -0,0 +1,6 @@ +add_drivers+=" nvme phy_qcom_qmp_pcie " +# keyboard +add_drivers+=" i2c_hid_of i2c_qcom_geni " +# display +add_drivers+=" leds_qcom_lpg pwm_bl qrtr pmic_glink_altmode gpio_sbu_mux " +add_drivers+=" phy_qcom_qmp_combo gpucc_sc8280xp dispcc_sc8280xp phy_qcom_edp panel_edp msm " diff --git a/srcpkgs/x13s-base/files/mkinitcpio.conf b/srcpkgs/x13s-base/files/mkinitcpio.conf new file mode 100644 index 00000000000000..d1904fae9d099f --- /dev/null +++ b/srcpkgs/x13s-base/files/mkinitcpio.conf @@ -0,0 +1,6 @@ +MODULES+=(nvme phy_qcom_qmp_pcie) +# keyboard +MODULES+=(i2c_hid_of i2c_qcom_geni) +# display +MODULES+=(leds_qcom_lpg pwm_bl qrtr pmic_glink_altmode gpio_sbu_mux + phy_qcom_qmp_combo gpucc_sc8280xp dispcc_sc8280xp phy_qcom_edp panel_edp msm) diff --git a/srcpkgs/x13s-base/template b/srcpkgs/x13s-base/template new file mode 100644 index 00000000000000..2d170196ca6ba8 --- /dev/null +++ b/srcpkgs/x13s-base/template @@ -0,0 +1,20 @@ +# Template file for 'x13s-base' +pkgname=x13s-base +version=0.1 +revision=1 +archs="aarch64*" +depends="linux6.8 dracut linux-firmware-qualcomm linux-firmware-network + alsa-ucm-conf qrtr-ns pd-mapper" +short_desc="Void Linux Thinkpad X13s platform package" +maintainer="classabbyamp " +license="Public Domain" +homepage="https://www.voidlinux.org" + +# TODO: bluetooth: https://github.com/jhovold/linux/wiki/X13s#bluetooth + +do_install() { + vinstall "${FILESDIR}"/72-touchscreen.rules 644 usr/lib/udev/rules.d 90-x13s-touchscreen.rules + vinstall "${FILESDIR}"/90-net-address.rules 644 usr/lib/udev/rules.d 90-x13s-net-address.rules + vinstall "${FILESDIR}"/dracut.conf 644 usr/lib/dracut.conf.d x13s.conf + vinstall "${FILESDIR}"/mkinitcpio.conf 644 etc/mkinitcpio.conf.d x13s.conf +} From df5a05fe293cae5deecca31a909b6be704a8dce7 Mon Sep 17 00:00:00 2001 From: classabbyamp Date: Thu, 21 Mar 2024 18:01:30 -0400 Subject: [PATCH 2/3] linux6.8: add support for lenovo x13s --- srcpkgs/linux6.8/files/arm64-dotconfig | 75 ++++++++++++++++++-------- srcpkgs/linux6.8/template | 2 +- 2 files changed, 55 insertions(+), 22 deletions(-) diff --git a/srcpkgs/linux6.8/files/arm64-dotconfig b/srcpkgs/linux6.8/files/arm64-dotconfig index 77f5b8afd5ed5d..16e44b2911e714 100644 --- a/srcpkgs/linux6.8/files/arm64-dotconfig +++ b/srcpkgs/linux6.8/files/arm64-dotconfig @@ -2,7 +2,7 @@ # Automatically generated file; DO NOT EDIT. # Linux/arm64 6.8.1 Kernel Configuration # -CONFIG_CC_VERSION_TEXT="aarch64-linux-musl-gcc (GCC) 13.2.0" +CONFIG_CC_VERSION_TEXT="aarch64-linux-gnu-gcc (GCC) 13.2.0" CONFIG_CC_IS_GCC=y CONFIG_GCC_VERSION=130200 CONFIG_CLANG_VERSION=0 @@ -596,7 +596,7 @@ CONFIG_DPM_WATCHDOG=y CONFIG_DPM_WATCHDOG_TIMEOUT=60 CONFIG_PM_CLK=y CONFIG_PM_GENERIC_DOMAINS=y -# CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set +CONFIG_WQ_POWER_EFFICIENT_DEFAULT=y CONFIG_PM_GENERIC_DOMAINS_SLEEP=y CONFIG_PM_GENERIC_DOMAINS_OF=y CONFIG_CPU_PM=y @@ -2368,7 +2368,7 @@ CONFIG_SOC_BUS=y CONFIG_REGMAP=y CONFIG_REGMAP_I2C=y CONFIG_REGMAP_SPI=y -CONFIG_REGMAP_SPMI=m +CONFIG_REGMAP_SPMI=y CONFIG_REGMAP_W1=m CONFIG_REGMAP_MMIO=y CONFIG_REGMAP_IRQ=y @@ -2436,7 +2436,7 @@ CONFIG_ARM_SCMI_TRANSPORT_VIRTIO_VERSION1_COMPLIANCE=y CONFIG_ARM_SCMI_POWER_CONTROL=m # end of ARM System Control and Management Interface Protocol -CONFIG_ARM_SCPI_PROTOCOL=m +CONFIG_ARM_SCPI_PROTOCOL=y CONFIG_ARM_SDE_INTERFACE=y CONFIG_FIRMWARE_MEMMAP=y CONFIG_DMIID=y @@ -2492,7 +2492,8 @@ CONFIG_ARM_PSCI_FW=y # CONFIG_QCOM_SCM=y # CONFIG_QCOM_SCM_DOWNLOAD_MODE_DEFAULT is not set -# CONFIG_QCOM_QSEECOM is not set +CONFIG_QCOM_QSEECOM=y +CONFIG_QCOM_QSEECOM_UEFISECAPP=y # end of Qualcomm firmware drivers CONFIG_HAVE_ARM_SMCCC=y @@ -4903,7 +4904,7 @@ CONFIG_XILLYUSB=m CONFIG_I2C=y CONFIG_ACPI_I2C_OPREGION=y CONFIG_I2C_BOARDINFO=y -# CONFIG_I2C_COMPAT is not set +CONFIG_I2C_COMPAT=y CONFIG_I2C_CHARDEV=m CONFIG_I2C_MUX=m @@ -5132,7 +5133,7 @@ CONFIG_SPI_SLAVE=y CONFIG_SPI_SLAVE_TIME=m CONFIG_SPI_SLAVE_SYSTEM_CONTROL=m CONFIG_SPI_DYNAMIC=y -CONFIG_SPMI=m +CONFIG_SPMI=y CONFIG_SPMI_HISI3670=m CONFIG_SPMI_MSM_PMIC_ARB=m CONFIG_SPMI_MTK_PMIF=m @@ -5321,7 +5322,7 @@ CONFIG_PINCTRL_SM8450=m CONFIG_PINCTRL_SM8550=m # CONFIG_PINCTRL_SM8650 is not set # CONFIG_PINCTRL_X1E80100 is not set -CONFIG_PINCTRL_QCOM_SPMI_PMIC=m +CONFIG_PINCTRL_QCOM_SPMI_PMIC=y CONFIG_PINCTRL_QCOM_SSBI_PMIC=m CONFIG_PINCTRL_LPASS_LPI=m # CONFIG_PINCTRL_SC7280_LPASS_LPI is not set @@ -5910,12 +5911,13 @@ CONFIG_THERMAL_OF=y CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y # CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set # CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set +# CONFIG_THERMAL_DEFAULT_GOV_POWER_ALLOCATOR is not set # CONFIG_THERMAL_DEFAULT_GOV_BANG_BANG is not set CONFIG_THERMAL_GOV_FAIR_SHARE=y CONFIG_THERMAL_GOV_STEP_WISE=y CONFIG_THERMAL_GOV_BANG_BANG=y CONFIG_THERMAL_GOV_USER_SPACE=y -# CONFIG_THERMAL_GOV_POWER_ALLOCATOR is not set +CONFIG_THERMAL_GOV_POWER_ALLOCATOR=y CONFIG_CPU_THERMAL=y CONFIG_CPU_FREQ_THERMAL=y # CONFIG_CPU_IDLE_THERMAL is not set @@ -5973,7 +5975,7 @@ CONFIG_GENERIC_ADC_THERMAL=m # CONFIG_QCOM_TSENS=m CONFIG_QCOM_SPMI_ADC_TM5=m -# CONFIG_QCOM_SPMI_TEMP_ALARM is not set +CONFIG_QCOM_SPMI_TEMP_ALARM=m CONFIG_QCOM_LMH=m # end of Qualcomm thermal drivers @@ -6011,7 +6013,7 @@ CONFIG_XILINX_WATCHDOG=m CONFIG_ZIIRAVE_WATCHDOG=m CONFIG_MLX_WDT=m CONFIG_SL28CPLD_WATCHDOG=m -# CONFIG_ARM_SP805_WATCHDOG is not set +CONFIG_ARM_SP805_WATCHDOG=y CONFIG_ARM_SBSA_WATCHDOG=m CONFIG_ARMADA_37XX_WATCHDOG=m CONFIG_CADENCE_WATCHDOG=m @@ -6024,7 +6026,7 @@ CONFIG_IMX2_WDT=m CONFIG_IMX_SC_WDT=m CONFIG_IMX7ULP_WDT=m CONFIG_TEGRA_WATCHDOG=m -# CONFIG_QCOM_WDT is not set +CONFIG_QCOM_WDT=m CONFIG_MESON_GXBB_WATCHDOG=m CONFIG_MESON_WATCHDOG=m CONFIG_MEDIATEK_WATCHDOG=m @@ -9324,7 +9326,7 @@ CONFIG_SCSI_UFSHCD_PCI=m CONFIG_SCSI_UFSHCD_PLATFORM=m CONFIG_SCSI_UFS_CDNS_PLATFORM=m # CONFIG_SCSI_UFS_DWC_TC_PLATFORM is not set -# CONFIG_SCSI_UFS_QCOM is not set +CONFIG_SCSI_UFS_QCOM=m CONFIG_SCSI_UFS_MEDIATEK=m CONFIG_SCSI_UFS_HISI=m CONFIG_SCSI_UFS_EXYNOS=m @@ -10343,7 +10345,7 @@ CONFIG_QCM_GCC_2290=m CONFIG_QCS_GCC_404=m CONFIG_SC_CAMCC_7180=m CONFIG_SC_CAMCC_7280=m -# CONFIG_SC_CAMCC_8280XP is not set +CONFIG_SC_CAMCC_8280XP=m CONFIG_SC_DISPCC_7180=m CONFIG_SC_DISPCC_7280=m CONFIG_SC_DISPCC_8280XP=m @@ -10355,9 +10357,9 @@ CONFIG_SC_GCC_8180X=m CONFIG_SC_GCC_8280XP=m CONFIG_SC_GPUCC_7180=m CONFIG_SC_GPUCC_7280=m -# CONFIG_SC_GPUCC_8280XP is not set +CONFIG_SC_GPUCC_8280XP=m CONFIG_SC_LPASSCC_7280=m -# CONFIG_SC_LPASSCC_8280XP is not set +CONFIG_SC_LPASSCC_8280XP=m CONFIG_SC_LPASS_CORECC_7180=m CONFIG_SC_LPASS_CORECC_7280=m CONFIG_SC_MSS_7180=m @@ -10415,7 +10417,7 @@ CONFIG_SM_TCSRCC_8550=m # CONFIG_SM_TCSRCC_8650 is not set CONFIG_SM_VIDEOCC_8150=m CONFIG_SM_VIDEOCC_8250=m -# CONFIG_SM_VIDEOCC_8350 is not set +CONFIG_SM_VIDEOCC_8350=m # CONFIG_SM_VIDEOCC_8550 is not set CONFIG_SPMI_PMIC_CLKDIV=m CONFIG_QCOM_HFPLL=m @@ -10493,7 +10495,7 @@ CONFIG_TIMER_IMX_SYS_CTR=y # end of Clock Source drivers CONFIG_MAILBOX=y -# CONFIG_ARM_MHU is not set +CONFIG_ARM_MHU=y CONFIG_ARM_MHU_V2=m CONFIG_IMX_MBOX=m CONFIG_PLATFORM_MHU=m @@ -10535,8 +10537,8 @@ CONFIG_IOMMU_IO_PGTABLE_DART=y # CONFIG_IOMMU_DEBUGFS is not set # CONFIG_IOMMU_DEFAULT_DMA_STRICT is not set -# CONFIG_IOMMU_DEFAULT_DMA_LAZY is not set -CONFIG_IOMMU_DEFAULT_PASSTHROUGH=y +CONFIG_IOMMU_DEFAULT_DMA_LAZY=y +# CONFIG_IOMMU_DEFAULT_PASSTHROUGH is not set CONFIG_OF_IOMMU=y CONFIG_IOMMU_DMA=y CONFIG_IOMMU_SVA=y @@ -11926,7 +11928,38 @@ CONFIG_INTERCONNECT_IMX8MM=m CONFIG_INTERCONNECT_IMX8MN=m CONFIG_INTERCONNECT_IMX8MQ=m CONFIG_INTERCONNECT_IMX8MP=m -# CONFIG_INTERCONNECT_QCOM is not set +CONFIG_INTERCONNECT_QCOM=y +CONFIG_INTERCONNECT_QCOM_BCM_VOTER=y +# CONFIG_INTERCONNECT_QCOM_MSM8916 is not set +# CONFIG_INTERCONNECT_QCOM_MSM8939 is not set +# CONFIG_INTERCONNECT_QCOM_MSM8974 is not set +# CONFIG_INTERCONNECT_QCOM_MSM8996 is not set +CONFIG_INTERCONNECT_QCOM_OSM_L3=m +# CONFIG_INTERCONNECT_QCOM_QCM2290 is not set +# CONFIG_INTERCONNECT_QCOM_QCS404 is not set +# CONFIG_INTERCONNECT_QCOM_QDU1000 is not set +CONFIG_INTERCONNECT_QCOM_RPMH_POSSIBLE=y +CONFIG_INTERCONNECT_QCOM_RPMH=y +# CONFIG_INTERCONNECT_QCOM_SA8775P is not set +# CONFIG_INTERCONNECT_QCOM_SC7180 is not set +# CONFIG_INTERCONNECT_QCOM_SC7280 is not set +# CONFIG_INTERCONNECT_QCOM_SC8180X is not set +CONFIG_INTERCONNECT_QCOM_SC8280XP=y +# CONFIG_INTERCONNECT_QCOM_SDM660 is not set +# CONFIG_INTERCONNECT_QCOM_SDM670 is not set +# CONFIG_INTERCONNECT_QCOM_SDM845 is not set +# CONFIG_INTERCONNECT_QCOM_SDX55 is not set +# CONFIG_INTERCONNECT_QCOM_SDX65 is not set +# CONFIG_INTERCONNECT_QCOM_SDX75 is not set +# CONFIG_INTERCONNECT_QCOM_SM6115 is not set +# CONFIG_INTERCONNECT_QCOM_SM6350 is not set +# CONFIG_INTERCONNECT_QCOM_SM8150 is not set +# CONFIG_INTERCONNECT_QCOM_SM8250 is not set +# CONFIG_INTERCONNECT_QCOM_SM8350 is not set +# CONFIG_INTERCONNECT_QCOM_SM8450 is not set +# CONFIG_INTERCONNECT_QCOM_SM8550 is not set +# CONFIG_INTERCONNECT_QCOM_SM8650 is not set +# CONFIG_INTERCONNECT_QCOM_X1E80100 is not set CONFIG_INTERCONNECT_SAMSUNG=y CONFIG_INTERCONNECT_EXYNOS=m CONFIG_INTERCONNECT_CLK=m diff --git a/srcpkgs/linux6.8/template b/srcpkgs/linux6.8/template index a0365a618bd173..1ee9678dbafb16 100644 --- a/srcpkgs/linux6.8/template +++ b/srcpkgs/linux6.8/template @@ -1,7 +1,7 @@ # Template file for 'linux6.8' pkgname=linux6.8 version=6.8.2 -revision=1 +revision=2 short_desc="Linux kernel and modules (${version%.*} series)" maintainer="Duncaen " license="GPL-2.0-only" From 136fce3af56c05d2524156c6308a99725c3c1129 Mon Sep 17 00:00:00 2001 From: classabbyamp Date: Tue, 2 Apr 2024 17:07:53 -0400 Subject: [PATCH 3/3] New package: x13s-firmware-20240312 --- srcpkgs/x13s-firmware/template | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 srcpkgs/x13s-firmware/template diff --git a/srcpkgs/x13s-firmware/template b/srcpkgs/x13s-firmware/template new file mode 100644 index 00000000000000..5e90d17b21c8a6 --- /dev/null +++ b/srcpkgs/x13s-firmware/template @@ -0,0 +1,29 @@ +# Template file for 'x13s-firmware' +pkgname=x13s-firmware +version=20240402 +revision=1 +_bt_ver=14 +_gfx_ver=20 +archs="aarch64*" +build_style=fetch +hostmakedepends="innoextract" +short_desc="Bluetooth and GPU Firmware for ThinkPad X13s" +maintainer="classabbyamp " +license="custom:Lenovo" +homepage="https://github.com/ironrobin/x13s-alarm/blob/trunk/x13s-firmware" +distfiles="https://download.lenovo.com/pccbbs/mobiles/n3hww${_bt_ver}w.exe + https://download.lenovo.com/pccbbs/mobiles/n3hdr${_gfx_ver}w.exe" +checksum="8b6a1e2d4233e0a17d5c2dce568386fe9c7974b872da47900242c3485f57d0f7 + 270ca5f6e28e9e3a707c777e55a1878d8b3dc7c714b9174508446e5ea689c046" +nostrip=yes + +post_extract() { + innoextract --extract "n3hdr${_gfx_ver}w.exe" --include "N3HDR${_gfx_ver}W/drivers/qcvss8280.mbn" + innoextract --extract "n3hww${_bt_ver}w.exe" --include "hpnv21.b8c" +} + +do_install() { + vinstall "code\$GetExtractPath\$/bluetooth_hsp/hpnv21.b8c" 644 usr/lib/firmware/qca + vinstall "code\$GetExtractPath\$/N3HDR${_gfx_ver}W/drivers/qcvss8280.mbn" 644 \ + usr/lib/firmware/qcom/sc8280xp/LENOVO/21BX +}