Update for Orange Pi CM5
This commit is contained in:
parent
94d50c2386
commit
cf11d6e48e
Binary file not shown.
|
|
@ -0,0 +1,14 @@
|
||||||
|
# Rockchip RK3588s SoC
|
||||||
|
BOARD_NAME="Orange Pi CM5 Tablet"
|
||||||
|
BOARDFAMILY="rockchip-rk3588"
|
||||||
|
BOOTCONFIG="orangepi_cm5_tablet_defconfig"
|
||||||
|
KERNEL_TARGET="legacy"
|
||||||
|
BOOT_LOGO="desktop"
|
||||||
|
BOOT_FDT_FILE="rockchip/rk3588s-orangepi-cm5-tablet.dtb"
|
||||||
|
BOOT_SCENARIO="spl-blobs"
|
||||||
|
IMAGE_PARTITION_TABLE="gpt"
|
||||||
|
BOOT_SUPPORT_SPI="yes"
|
||||||
|
SKIP_BOOTSPLASH="yes" # Skip boot splash patch, conflicts with CONFIG_VT=yes
|
||||||
|
DISTRIB_TYPE_LEGACY="bullseye bookworm focal jammy"
|
||||||
|
BOOTFS_TYPE="fat"
|
||||||
|
REVISION="1.0.0"
|
||||||
|
|
@ -9,6 +9,6 @@ BOOT_SCENARIO="spl-blobs"
|
||||||
IMAGE_PARTITION_TABLE="gpt"
|
IMAGE_PARTITION_TABLE="gpt"
|
||||||
BOOT_SUPPORT_SPI="yes"
|
BOOT_SUPPORT_SPI="yes"
|
||||||
SKIP_BOOTSPLASH="yes" # Skip boot splash patch, conflicts with CONFIG_VT=yes
|
SKIP_BOOTSPLASH="yes" # Skip boot splash patch, conflicts with CONFIG_VT=yes
|
||||||
DISTRIB_TYPE_LEGACY="bullseye bookworm bionic focal jammy"
|
DISTRIB_TYPE_LEGACY="bullseye bookworm focal jammy"
|
||||||
BOOTFS_TYPE="fat"
|
BOOTFS_TYPE="fat"
|
||||||
REVISION="1.0.0"
|
REVISION="1.0.0"
|
||||||
|
|
|
||||||
|
|
@ -5679,7 +5679,7 @@ CONFIG_SND_SOC_TS3A227E=y
|
||||||
# CONFIG_SND_SOC_NAU8822 is not set
|
# CONFIG_SND_SOC_NAU8822 is not set
|
||||||
# CONFIG_SND_SOC_NAU8824 is not set
|
# CONFIG_SND_SOC_NAU8824 is not set
|
||||||
# CONFIG_SND_SOC_TPA6130A2 is not set
|
# CONFIG_SND_SOC_TPA6130A2 is not set
|
||||||
CONFIG_SND_SOC_AW87XXX=y
|
# CONFIG_SND_SOC_AW87XXX is not set
|
||||||
# CONFIG_SND_SOC_AW883XX is not set
|
# CONFIG_SND_SOC_AW883XX is not set
|
||||||
# end of CODEC drivers
|
# end of CODEC drivers
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
# Automatically generated file; DO NOT EDIT.
|
# Automatically generated file; DO NOT EDIT.
|
||||||
# Linux/arm64 5.10.160 Kernel Configuration
|
# Linux/arm64 5.10.160 Kernel Configuration
|
||||||
#
|
#
|
||||||
CONFIG_CC_VERSION_TEXT="aarch64-linux-gnu-gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0"
|
CONFIG_CC_VERSION_TEXT="aarch64-none-linux-gnu-gcc (GNU Toolchain for the Arm Architecture 11.2-2022.02 (arm-11.14)) 11.2.1 20220111"
|
||||||
CONFIG_CC_IS_GCC=y
|
CONFIG_CC_IS_GCC=y
|
||||||
CONFIG_GCC_VERSION=110400
|
CONFIG_GCC_VERSION=110201
|
||||||
CONFIG_LD_VERSION=238000000
|
CONFIG_LD_VERSION=202438220000
|
||||||
CONFIG_CLANG_VERSION=0
|
CONFIG_CLANG_VERSION=0
|
||||||
CONFIG_LLD_VERSION=0
|
CONFIG_LLD_VERSION=0
|
||||||
CONFIG_CC_CAN_LINK=y
|
CONFIG_CC_CAN_LINK=y
|
||||||
|
|
@ -758,6 +758,10 @@ CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y
|
||||||
# end of GCOV-based kernel profiling
|
# end of GCOV-based kernel profiling
|
||||||
|
|
||||||
CONFIG_HAVE_GCC_PLUGINS=y
|
CONFIG_HAVE_GCC_PLUGINS=y
|
||||||
|
CONFIG_GCC_PLUGINS=y
|
||||||
|
# CONFIG_GCC_PLUGIN_CYC_COMPLEXITY is not set
|
||||||
|
# CONFIG_GCC_PLUGIN_LATENT_ENTROPY is not set
|
||||||
|
# CONFIG_GCC_PLUGIN_RANDSTRUCT is not set
|
||||||
# end of General architecture-dependent options
|
# end of General architecture-dependent options
|
||||||
|
|
||||||
CONFIG_RT_MUTEXES=y
|
CONFIG_RT_MUTEXES=y
|
||||||
|
|
@ -4680,7 +4684,7 @@ CONFIG_VIDEO_OV4689=y
|
||||||
# CONFIG_VIDEO_OV50C40 is not set
|
# CONFIG_VIDEO_OV50C40 is not set
|
||||||
# CONFIG_VIDEO_OV5640 is not set
|
# CONFIG_VIDEO_OV5640 is not set
|
||||||
# CONFIG_VIDEO_OV5645 is not set
|
# CONFIG_VIDEO_OV5645 is not set
|
||||||
# CONFIG_VIDEO_OV5647 is not set
|
CONFIG_VIDEO_OV5647=y
|
||||||
# CONFIG_VIDEO_OV6650 is not set
|
# CONFIG_VIDEO_OV6650 is not set
|
||||||
# CONFIG_VIDEO_OV5670 is not set
|
# CONFIG_VIDEO_OV5670 is not set
|
||||||
# CONFIG_VIDEO_OV5675 is not set
|
# CONFIG_VIDEO_OV5675 is not set
|
||||||
|
|
@ -5707,7 +5711,7 @@ CONFIG_SND_SOC_TS3A227E=y
|
||||||
# CONFIG_SND_SOC_NAU8822 is not set
|
# CONFIG_SND_SOC_NAU8822 is not set
|
||||||
# CONFIG_SND_SOC_NAU8824 is not set
|
# CONFIG_SND_SOC_NAU8824 is not set
|
||||||
# CONFIG_SND_SOC_TPA6130A2 is not set
|
# CONFIG_SND_SOC_TPA6130A2 is not set
|
||||||
CONFIG_SND_SOC_AW87XXX=y
|
# CONFIG_SND_SOC_AW87XXX is not set
|
||||||
# CONFIG_SND_SOC_AW883XX is not set
|
# CONFIG_SND_SOC_AW883XX is not set
|
||||||
# end of CODEC drivers
|
# end of CODEC drivers
|
||||||
|
|
||||||
|
|
@ -7958,6 +7962,10 @@ CONFIG_LSM="lockdown,yama,loadpin,safesetid,integrity,bpf"
|
||||||
# Memory initialization
|
# Memory initialization
|
||||||
#
|
#
|
||||||
CONFIG_INIT_STACK_NONE=y
|
CONFIG_INIT_STACK_NONE=y
|
||||||
|
# CONFIG_GCC_PLUGIN_STRUCTLEAK_USER is not set
|
||||||
|
# CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF is not set
|
||||||
|
# CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF_ALL is not set
|
||||||
|
# CONFIG_GCC_PLUGIN_STACKLEAK is not set
|
||||||
# CONFIG_INIT_ON_ALLOC_DEFAULT_ON is not set
|
# CONFIG_INIT_ON_ALLOC_DEFAULT_ON is not set
|
||||||
# CONFIG_INIT_ON_FREE_DEFAULT_ON is not set
|
# CONFIG_INIT_ON_FREE_DEFAULT_ON is not set
|
||||||
# end of Memory initialization
|
# end of Memory initialization
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -5629,7 +5629,7 @@ CONFIG_SND_SOC_TS3A227E=y
|
||||||
# CONFIG_SND_SOC_NAU8822 is not set
|
# CONFIG_SND_SOC_NAU8822 is not set
|
||||||
# CONFIG_SND_SOC_NAU8824 is not set
|
# CONFIG_SND_SOC_NAU8824 is not set
|
||||||
# CONFIG_SND_SOC_TPA6130A2 is not set
|
# CONFIG_SND_SOC_TPA6130A2 is not set
|
||||||
CONFIG_SND_SOC_AW87XXX=y
|
# CONFIG_SND_SOC_AW87XXX is not set
|
||||||
# CONFIG_SND_SOC_AW883XX is not set
|
# CONFIG_SND_SOC_AW883XX is not set
|
||||||
# end of CODEC drivers
|
# end of CODEC drivers
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5679,7 +5679,7 @@ CONFIG_SND_SOC_TS3A227E=y
|
||||||
# CONFIG_SND_SOC_NAU8822 is not set
|
# CONFIG_SND_SOC_NAU8822 is not set
|
||||||
# CONFIG_SND_SOC_NAU8824 is not set
|
# CONFIG_SND_SOC_NAU8824 is not set
|
||||||
# CONFIG_SND_SOC_TPA6130A2 is not set
|
# CONFIG_SND_SOC_TPA6130A2 is not set
|
||||||
CONFIG_SND_SOC_AW87XXX=y
|
# CONFIG_SND_SOC_AW87XXX is not set
|
||||||
# CONFIG_SND_SOC_AW883XX is not set
|
# CONFIG_SND_SOC_AW883XX is not set
|
||||||
# end of CODEC drivers
|
# end of CODEC drivers
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,7 @@ case $BRANCH in
|
||||||
LINUXCONFIG="linux-rockchip-rk3588-legacy"
|
LINUXCONFIG="linux-rockchip-rk3588-legacy"
|
||||||
[[ ${BOARD} == orangepi5pro ]] && LINUXCONFIG="linux-rockchip-rk3588-legacy-opi5pro"
|
[[ ${BOARD} == orangepi5pro ]] && LINUXCONFIG="linux-rockchip-rk3588-legacy-opi5pro"
|
||||||
[[ ${BOARD} == orangepi5max ]] && LINUXCONFIG="linux-rockchip-rk3588-legacy-opi5max"
|
[[ ${BOARD} == orangepi5max ]] && LINUXCONFIG="linux-rockchip-rk3588-legacy-opi5max"
|
||||||
|
[[ ${BOARD} == orangepicm5-tablet ]] && LINUXCONFIG="linux-rockchip-rk3588-legacy-opicm5-tablet"
|
||||||
|
|
||||||
if [[ "${build_rt_image}" =~ yes ]]; then
|
if [[ "${build_rt_image}" =~ yes ]]; then
|
||||||
KERNELBRANCH='branch:orange-pi-5.10-rk35xx-rt'
|
KERNELBRANCH='branch:orange-pi-5.10-rk35xx-rt'
|
||||||
|
|
@ -110,7 +111,7 @@ family_tweaks_s() {
|
||||||
rsync -a --chown=root:root "${EXTER}"/packages/bsp/rk3588/* ${SDCARD}/
|
rsync -a --chown=root:root "${EXTER}"/packages/bsp/rk3588/* ${SDCARD}/
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ ${BOARD} =~ orangepi5plus|orangepi5pro|orangepi900 ]]; then
|
if [[ ${BOARD} =~ orangepi5plus|orangepi5max|orangepi900 ]]; then
|
||||||
|
|
||||||
if [[ ${SELECTED_CONFIGURATION} == desktop && ${DESKTOP_ENVIRONMENT} == kde-plasma ]]; then
|
if [[ ${SELECTED_CONFIGURATION} == desktop && ${DESKTOP_ENVIRONMENT} == kde-plasma ]]; then
|
||||||
rsync -a --chown=root:root --exclude=etc/pulse "${EXTER}"/packages/bsp/orangepi5plus/* ${SDCARD}/
|
rsync -a --chown=root:root --exclude=etc/pulse "${EXTER}"/packages/bsp/orangepi5plus/* ${SDCARD}/
|
||||||
|
|
@ -146,13 +147,18 @@ family_tweaks_s() {
|
||||||
install_balenaEtcher
|
install_balenaEtcher
|
||||||
|
|
||||||
# Board audio specific changes
|
# Board audio specific changes
|
||||||
if [[ ${BOARD} =~ orangepi5|orangepi5b ]]; then
|
if [[ ${BOARD}x =~ orangepi5x|orangepi5bx|orangepicm5-tabletx ]]; then
|
||||||
|
|
||||||
echo 'SUBSYSTEM=="sound", ENV{ID_PATH}=="platform-hdmi0-sound", ENV{SOUND_DESCRIPTION}="HDMI0 Audio"' > ${SDCARD}/etc/udev/rules.d/90-naming-audios.rules
|
echo 'SUBSYSTEM=="sound", ENV{ID_PATH}=="platform-hdmi0-sound", ENV{SOUND_DESCRIPTION}="HDMI0 Audio"' > ${SDCARD}/etc/udev/rules.d/90-naming-audios.rules
|
||||||
echo 'SUBSYSTEM=="sound", ENV{ID_PATH}=="platform-dp0-sound", ENV{SOUND_DESCRIPTION}="DP0 Audio"' >> ${SDCARD}/etc/udev/rules.d/90-naming-audios.rules
|
echo 'SUBSYSTEM=="sound", ENV{ID_PATH}=="platform-dp0-sound", ENV{SOUND_DESCRIPTION}="DP0 Audio"' >> ${SDCARD}/etc/udev/rules.d/90-naming-audios.rules
|
||||||
echo 'SUBSYSTEM=="sound", ENV{ID_PATH}=="platform-es8388-sound", ENV{SOUND_DESCRIPTION}="ES8388 Audio"' >> ${SDCARD}/etc/udev/rules.d/90-naming-audios.rules
|
echo 'SUBSYSTEM=="sound", ENV{ID_PATH}=="platform-es8388-sound", ENV{SOUND_DESCRIPTION}="ES8388 Audio"' >> ${SDCARD}/etc/udev/rules.d/90-naming-audios.rules
|
||||||
|
|
||||||
elif [[ "${BOARD}" =~ orangepi5plus|orangepi900 ]]; then
|
elif [[ ${BOARD}x =~ orangepicm5x ]]; then
|
||||||
|
|
||||||
|
echo 'SUBSYSTEM=="sound", ENV{ID_PATH}=="platform-hdmi0-sound", ENV{SOUND_DESCRIPTION}="HDMI0 Audio"' > ${SDCARD}/etc/udev/rules.d/90-naming-audios.rules
|
||||||
|
echo 'SUBSYSTEM=="sound", ENV{ID_PATH}=="platform-dp0-sound", ENV{SOUND_DESCRIPTION}="DP0 Audio"' >> ${SDCARD}/etc/udev/rules.d/90-naming-audios.rules
|
||||||
|
|
||||||
|
elif [[ "${BOARD}x" =~ orangepi5plusx|orangepi900x ]]; then
|
||||||
|
|
||||||
echo 'SUBSYSTEM=="sound", ENV{ID_PATH}=="platform-hdmi0-sound", ENV{SOUND_DESCRIPTION}="HDMI0 Audio"' > ${SDCARD}/etc/udev/rules.d/90-naming-audios.rules
|
echo 'SUBSYSTEM=="sound", ENV{ID_PATH}=="platform-hdmi0-sound", ENV{SOUND_DESCRIPTION}="HDMI0 Audio"' > ${SDCARD}/etc/udev/rules.d/90-naming-audios.rules
|
||||||
echo 'SUBSYSTEM=="sound", ENV{ID_PATH}=="platform-hdmi1-sound", ENV{SOUND_DESCRIPTION}="HDMI1 Audio"' >> ${SDCARD}/etc/udev/rules.d/90-naming-audios.rules
|
echo 'SUBSYSTEM=="sound", ENV{ID_PATH}=="platform-hdmi1-sound", ENV{SOUND_DESCRIPTION}="HDMI1 Audio"' >> ${SDCARD}/etc/udev/rules.d/90-naming-audios.rules
|
||||||
|
|
@ -160,7 +166,7 @@ family_tweaks_s() {
|
||||||
echo 'SUBSYSTEM=="sound", ENV{ID_PATH}=="platform-dp0-sound", ENV{SOUND_DESCRIPTION}="DP0 Audio"' >> ${SDCARD}/etc/udev/rules.d/90-naming-audios.rules
|
echo 'SUBSYSTEM=="sound", ENV{ID_PATH}=="platform-dp0-sound", ENV{SOUND_DESCRIPTION}="DP0 Audio"' >> ${SDCARD}/etc/udev/rules.d/90-naming-audios.rules
|
||||||
echo 'SUBSYSTEM=="sound", ENV{ID_PATH}=="platform-es8388-sound", ENV{SOUND_DESCRIPTION}="ES8388 Audio"' >> ${SDCARD}/etc/udev/rules.d/90-naming-audios.rules
|
echo 'SUBSYSTEM=="sound", ENV{ID_PATH}=="platform-es8388-sound", ENV{SOUND_DESCRIPTION}="ES8388 Audio"' >> ${SDCARD}/etc/udev/rules.d/90-naming-audios.rules
|
||||||
|
|
||||||
elif [[ "${BOARD}" == orangepi5pro ]]; then
|
elif [[ "${BOARD}x" == orangepi5prox ]]; then
|
||||||
|
|
||||||
echo 'SUBSYSTEM=="sound", ENV{ID_PATH}=="platform-hdmi0-sound", ENV{SOUND_DESCRIPTION}="HDMI0 Audio"' > ${SDCARD}/etc/udev/rules.d/90-naming-audios.rules
|
echo 'SUBSYSTEM=="sound", ENV{ID_PATH}=="platform-hdmi0-sound", ENV{SOUND_DESCRIPTION}="HDMI0 Audio"' > ${SDCARD}/etc/udev/rules.d/90-naming-audios.rules
|
||||||
echo 'SUBSYSTEM=="sound", ENV{ID_PATH}=="platform-hdmi1-sound", ENV{SOUND_DESCRIPTION}="HDMI1 Audio"' >> ${SDCARD}/etc/udev/rules.d/90-naming-audios.rules
|
echo 'SUBSYSTEM=="sound", ENV{ID_PATH}=="platform-hdmi1-sound", ENV{SOUND_DESCRIPTION}="HDMI1 Audio"' >> ${SDCARD}/etc/udev/rules.d/90-naming-audios.rules
|
||||||
|
|
|
||||||
|
|
@ -97,9 +97,27 @@ prepare_board() {
|
||||||
rockpro64|renegade-elite|pinebook-pro|station-p1)
|
rockpro64|renegade-elite|pinebook-pro|station-p1)
|
||||||
BOARDFAMILY=rk3399
|
BOARDFAMILY=rk3399
|
||||||
;;
|
;;
|
||||||
orangepi5|orangepicm5|orangepi5b|orangepi5plus|orangepi5pro|orangepi5max|orangepitab|orangepi900)
|
orangepi5|orangepicm5|orangepicm5-tablet|orangepi5b|orangepi5plus|orangepi5pro|orangepi5max|orangepitab|orangepi900)
|
||||||
[[ $BOARD =~ orangepi5|orangepi5b ]] && echo host > /sys/kernel/debug/usb/fc000000.usb/mode
|
[[ $BOARD =~ orangepi5|orangepi5b ]] && echo host > /sys/kernel/debug/usb/fc000000.usb/mode
|
||||||
|
|
||||||
|
if [[ ${BOARD}x == orangepicm5x ]]; then
|
||||||
|
|
||||||
|
declare -A led_map=(
|
||||||
|
["lan2"]="end|eth"
|
||||||
|
["lan1"]="enP3"
|
||||||
|
["wan"]="enP4"
|
||||||
|
)
|
||||||
|
|
||||||
|
for led in "${!led_map[@]}"; do
|
||||||
|
interface=$(ls /sys/class/net/ | grep -E "${led_map[$led]}" | sed -n 1p)
|
||||||
|
echo netdev > "/sys/class/leds/$led/trigger"
|
||||||
|
echo "$interface" > "/sys/class/leds/$led/device_name"
|
||||||
|
echo 1 > "/sys/class/leds/$led/tx"
|
||||||
|
echo 1 > "/sys/class/leds/$led/rx"
|
||||||
|
echo 1 > "/sys/class/leds/$led/link"
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
if [[ $BOARD =~ orangepi900 ]]; then
|
if [[ $BOARD =~ orangepi900 ]]; then
|
||||||
es8388_card=$(aplay -l | grep "es8388" | cut -d ':' -f 1 | cut -d ' ' -f 2)
|
es8388_card=$(aplay -l | grep "es8388" | cut -d ':' -f 1 | cut -d ' ' -f 2)
|
||||||
jack_num=$(tinymix -D ${es8388_card} | grep "Headphone Jack" | cut -c1-2)
|
jack_num=$(tinymix -D ${es8388_card} | grep "Headphone Jack" | cut -c1-2)
|
||||||
|
|
@ -149,7 +167,7 @@ prepare_board() {
|
||||||
--baudrate 1500000 --patchram /lib/firmware/ap6275p/BCM4362A2.hcd /dev/ttyS9 &
|
--baudrate 1500000 --patchram /lib/firmware/ap6275p/BCM4362A2.hcd /dev/ttyS9 &
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ $BOARD =~ orangepi5pro ]]; then
|
if [[ $BOARD =~ orangepi5pro|orangepicm5-tablet ]]; then
|
||||||
|
|
||||||
es8388_card=$(aplay -l | grep "es8388" | cut -d ':' -f 1 | cut -d ' ' -f 2)
|
es8388_card=$(aplay -l | grep "es8388" | cut -d ':' -f 1 | cut -d ' ' -f 2)
|
||||||
tinymix -D ${es8388_card} 37 1
|
tinymix -D ${es8388_card} 37 1
|
||||||
|
|
|
||||||
|
|
@ -235,6 +235,7 @@ if [[ -z $BOARD ]]; then
|
||||||
options+=("orangepi800" "Rockchip RK3399 hexa core 4GB RAM GBE eMMC USB3 USB-C WiFi/BT VGA")
|
options+=("orangepi800" "Rockchip RK3399 hexa core 4GB RAM GBE eMMC USB3 USB-C WiFi/BT VGA")
|
||||||
options+=("orangepi5" "Rockchip RK3588S octa core 4-16GB RAM GBE USB3 USB-C NVMe")
|
options+=("orangepi5" "Rockchip RK3588S octa core 4-16GB RAM GBE USB3 USB-C NVMe")
|
||||||
options+=("orangepicm5" "Rockchip RK3588S octa core 4-16GB RAM GBE USB3 USB-C")
|
options+=("orangepicm5" "Rockchip RK3588S octa core 4-16GB RAM GBE USB3 USB-C")
|
||||||
|
options+=("orangepicm5-tablet" "Rockchip RK3588S octa core 4-16GB RAM USB3 USB-C WiFi/BT")
|
||||||
options+=("orangepi5b" "Rockchip RK3588S octa core 4-16GB RAM GBE USB3 USB-C WiFi/BT eMMC")
|
options+=("orangepi5b" "Rockchip RK3588S octa core 4-16GB RAM GBE USB3 USB-C WiFi/BT eMMC")
|
||||||
#options+=("orangepitab" "Rockchip RK3588S octa core 4-16GB RAM USB-C WiFi/BT NVMe")
|
#options+=("orangepitab" "Rockchip RK3588S octa core 4-16GB RAM USB-C WiFi/BT NVMe")
|
||||||
#options+=("orangepi900" "Rockchip RK3588 octa core 4-16GB RAM 2.5GBE USB3 USB-C WiFi/BT NVMe")
|
#options+=("orangepi900" "Rockchip RK3588 octa core 4-16GB RAM 2.5GBE USB3 USB-C WiFi/BT NVMe")
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue