Skip to content

Commit

Permalink
Add Odroid board selection (#298)
Browse files Browse the repository at this point in the history
* Add Odroid board selection
* Set status to review
* Add author, layout fixes.
* Indentation fixes
* Menu adjustement and simplified condition, spaces to tabs, name with GH name
* Update config.system.json
* Small cosmetic and code styling fixes
---------
Co-authored-by: Igor Pecovnik <[email protected]>
  • Loading branch information
GeoffClements authored Dec 5, 2024
1 parent d0cd842 commit 5c6dbb7
Show file tree
Hide file tree
Showing 2 changed files with 54 additions and 0 deletions.
10 changes: 10 additions & 0 deletions tools/json/config.system.json
Original file line number Diff line number Diff line change
Expand Up @@ -352,6 +352,16 @@
"status": "Stable",
"author": "@armbian",
"condition": "module_zfs status"
},
{
"id": "SY020",
"description": "Select Odroid board configuration",
"command": [
"manage_odroid_board select"
],
"status": "Preview",
"author": "",
"condition": "[ $BOARDFAMILY == odroidxu4 ]"
}
]
}
Expand Down
44 changes: 44 additions & 0 deletions tools/modules/system/manage_odroid_board.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
module_options+=(
["manage_odroid_board,author"]="@GeoffClements"
["manage_odroid_board,ref_link"]=""
["manage_odroid_board,feature"]="Odroid board"
["manage_odroid_board,desc"]="Select optimised Odroid board configuration"
["manage_odroid_board,example"]="select"
["manage_odroid_board,status"]="Stable"
)
#
# @description Select optimised board configuration
#
function manage_odroid_board() {

local board_list=("Odroid XU4" "Odroid XU3" "Odroid XU3 Lite" "Odroid HC1/HC2")
local board_id=("xu4" "xu3" "xu3l" "hc1")
local -a list
local state

local env_file=/boot/armbianEnv.txt
local current_board=$(grep -oP '^board_name=\K.*' ${env_file})
local target_board=${current_board}

for board_num in $(seq 0 $((${#board_list[@]} - 1))); do
if [[ "${board_id[${board_num}]}" == "${current_board}" ]]; then
state=on
else
state=off
fi
list+=("${board_id[${board_num}]}" "${board_list[${board_num}]}" "${state}")
done

if target_board=$($DIALOG --notags --title "Select optimised board configuration" \
--radiolist "" 10 42 4 "${list[@]}" 3>&1 1>&2 2>&3); then
sed -i "s/^board_name=.*/board_name=${target_board}/" ${env_file} 2> /dev/null && \
grep -q "^board_name=${target_board}" ${env_file} 2>/dev/null || \
echo "board_name=${target_board}" >> ${env_file}
sed -i "s/^BOARD_NAME.*/BOARD_NAME=\"Odroid ${target_board^^}\"/" /etc/armbian-release

if $DIALOG --title " Reboot required " --yes-button "Reboot" --no-button "Cancel" --yesno \
"A reboot is required to apply the changes. Shall we reboot now?" 7 34; then
reboot
fi
fi
}

0 comments on commit 5c6dbb7

Please sign in to comment.