Skip to content

Commit 5168111

Browse files
committed
Added ayn-odin2-portal config
1 parent 3052141 commit 5168111

File tree

1 file changed

+135
-0
lines changed

1 file changed

+135
-0
lines changed

config/boards/ayn-odin2-portal.csc

Lines changed: 135 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,135 @@
1+
# Ayn Odin2 Portal Configuration
2+
declare -g BOARD_NAME="Ayn Odin2 Portal"
3+
declare -g BOARD_VENDOR="ayntec"
4+
declare -g BOARD_MAINTAINER="FantasyGmm"
5+
declare -g BOARDFAMILY="sm8550"
6+
declare -g KERNEL_TARGET="old,current,edge"
7+
declare -g KERNEL_TEST_TARGET="edge"
8+
declare -g EXTRAWIFI="no"
9+
declare -g BOOTCONFIG="none"
10+
declare -g BOOTFS_TYPE="fat"
11+
declare -g BOOTSIZE="256"
12+
declare -g IMAGE_PARTITION_TABLE="gpt"
13+
declare -g BOOTIMG_CMDLINE_EXTRA="clk_ignore_unused pd_ignore_unused rw quiet rootwait"
14+
15+
# Use the full firmware, complete linux-firmware plus Armbian's
16+
declare -g BOARD_FIRMWARE_INSTALL="-full"
17+
declare -g DESKTOP_AUTOLOGIN="yes"
18+
19+
function ayn-odin2portal_is_userspace_supported() {
20+
[[ "${RELEASE}" == "jammy" ]] && return 0
21+
[[ "${RELEASE}" == "trixie" ]] && return 0
22+
[[ "${RELEASE}" == "noble" ]] && return 0
23+
[[ "${RELEASE}" == "plucky" ]] && return 0
24+
return 1
25+
}
26+
27+
function pre_customize_image__ayn-odin2_alsa_ucm_conf() {
28+
if ! ayn-odin2portal_is_userspace_supported; then
29+
return 0
30+
fi
31+
32+
display_alert "Add alsa-ucm-conf for ${BOARD}" "${RELEASE}" "warn"
33+
(
34+
cd "${SDCARD}/usr/share/alsa" || exit 6
35+
curl -L -o temp.zip "https://github.com/AYNTechnologies/alsa-ucm-conf/archive/refs/heads/ayn/v1.2.13.zip"
36+
unzip -o temp.zip
37+
unzip_dir=$(unzip -Z1 temp.zip | head -n1 | cut -d/ -f1)
38+
cp -rf "${unzip_dir}/"* .
39+
rm -rf "$unzip_dir" temp.zip
40+
)
41+
}
42+
43+
function post_family_tweaks_bsp__ayn-odin2portal_firmware() {
44+
display_alert "Install firmwares for ${BOARD}" "${RELEASE}" "warn"
45+
46+
# USB Gadget Network service
47+
mkdir -p $destination/usr/local/bin/
48+
mkdir -p $destination/usr/lib/systemd/system/
49+
mkdir -p $destination/etc/initramfs-tools/scripts/init-bottom/
50+
install -Dm655 $SRC/packages/bsp/usb-gadget-network/setup-usbgadget-network.sh $destination/usr/local/bin/
51+
install -Dm655 $SRC/packages/bsp/usb-gadget-network/remove-usbgadget-network.sh $destination/usr/local/bin/
52+
install -Dm644 $SRC/packages/bsp/usb-gadget-network/usbgadget-rndis.service $destination/usr/lib/systemd/system/
53+
install -Dm655 $SRC/packages/bsp/usb-gadget-network/usb-gadget-initramfs-hook $destination/etc/initramfs-tools/hooks/usb-gadget
54+
install -Dm655 $SRC/packages/bsp/usb-gadget-network/usb-gadget-initramfs-premount $destination/etc/initramfs-tools/scripts/init-premount/usb-gadget
55+
install -Dm655 $SRC/packages/bsp/usb-gadget-network/dropbear $destination/etc/initramfs-tools/scripts/init-premount/
56+
install -Dm655 $SRC/packages/bsp/usb-gadget-network/kill-dropbear $destination/etc/initramfs-tools/scripts/init-bottom/
57+
58+
return 0
59+
}
60+
61+
function post_family_tweaks__ayn-odin2portal_enable_services() {
62+
if ! ayn-odin2portal_is_userspace_supported; then
63+
if [[ "${RELEASE}" != "" ]]; then
64+
display_alert "Missing userspace for ${BOARD}" "${RELEASE} does not have the userspace necessary to support the ${BOARD}" "warn"
65+
fi
66+
return 0
67+
fi
68+
69+
if [[ "${RELEASE}" == "jammy" ]] || [[ "${RELEASE}" == "noble" ]] || [[ "${RELEASE}" == "plucky" ]]; then
70+
display_alert "Adding Mesa PPA For Ubuntu ${BOARD}" "warn"
71+
do_with_retries 3 chroot_sdcard add-apt-repository ppa:kisak/kisak-mesa --yes
72+
73+
do_with_retries 3 chroot_sdcard_apt_get_update
74+
display_alert "Installing Mesa Vulkan Drivers"
75+
do_with_retries 3 chroot_sdcard_apt_get_install libgl1-mesa-dri mesa-vulkan-drivers vulkan-tools
76+
fi
77+
78+
if [[ "${RELEASE}" == "trixie" ]]; then
79+
do_with_retries 3 chroot_sdcard_apt_get_update
80+
display_alert "Installing Mesa Vulkan Drivers"
81+
do_with_retries 3 chroot_sdcard_apt_get_install libgl1-mesa-dri mesa-vulkan-drivers vulkan-tools
82+
fi
83+
84+
# We need unudhcpd from armbian repo, so enable it
85+
mv "${SDCARD}"/etc/apt/sources.list.d/armbian.sources.disabled "${SDCARD}"/etc/apt/sources.list.d/armbian.sources
86+
87+
do_with_retries 3 chroot_sdcard_apt_get_update
88+
display_alert "Installing ${BOARD} tweaks" "warn"
89+
do_with_retries 3 chroot_sdcard_apt_get_install alsa-ucm-conf qbootctl qrtr-tools unudhcpd mkbootimg
90+
# disable armbian repo back
91+
mv "${SDCARD}"/etc/apt/sources.list.d/armbian.sources "${SDCARD}"/etc/apt/sources.list.d/armbian.sources.disabled
92+
do_with_retries 3 chroot_sdcard_apt_get_update
93+
94+
# Add Gamepad udev rule
95+
echo 'SUBSYSTEM=="input", ATTRS{name}=="AYN Odin2 Gamepad", MODE="0666", ENV{ID_INPUT_JOYSTICK}="1"' > "${SDCARD}"/etc/udev/rules.d/99-ignore-gamepad.rules
96+
# Not Any driver support suspend mode
97+
chroot_sdcard systemctl mask suspend.target
98+
99+
chroot_sdcard systemctl enable qbootctl.service
100+
chroot_sdcard systemctl enable usbgadget-rndis.service
101+
102+
return 0
103+
}
104+
105+
function post_family_tweaks_bsp__ayn-odin2portal_bsp_firmware_in_initrd() {
106+
display_alert "Adding to bsp-cli" "${BOARD}: firmware in initrd" "warn"
107+
declare file_added_to_bsp_destination # Will be filled in by add_file_from_stdin_to_bsp_destination
108+
# Using odin2portal's firmware for now
109+
add_file_from_stdin_to_bsp_destination "/etc/initramfs-tools/hooks/ayn-odin2portal-firmware" <<- 'FIRMWARE_HOOK'
110+
#!/bin/bash
111+
[[ "$1" == "prereqs" ]] && exit 0
112+
. /usr/share/initramfs-tools/hook-functions
113+
for f in /lib/firmware/qcom/sm8550/* ; do
114+
add_firmware "${f#/lib/firmware/}"
115+
done
116+
for f in /lib/firmware/qcom/sm8550/ayn/* ; do
117+
add_firmware "${f#/lib/firmware/}"
118+
done
119+
for f in /lib/firmware/qcom/sm8550/ayn/odin2portal/* ; do
120+
add_firmware "${f#/lib/firmware/}"
121+
done
122+
add_firmware "qcom/a740_sqe.fw" # Extra one for dpu
123+
add_firmware "qcom/gmu_gen70200.bin" # Extra one for gpu
124+
add_firmware "qcom/vpu/vpu30_p4.mbn" # Extra one for vpu
125+
# Extra one for wifi
126+
for f in /lib/firmware/ath12k/WCN7850/hw2.0/* ; do
127+
add_firmware "${f#/lib/firmware/}"
128+
done
129+
# Extra one for bt
130+
for f in /lib/firmware/qca/* ; do
131+
add_firmware "${f#/lib/firmware/}"
132+
done
133+
FIRMWARE_HOOK
134+
run_host_command_logged chmod -v +x "${file_added_to_bsp_destination}"
135+
}

0 commit comments

Comments
 (0)