Skip to content

Commit

Permalink
Merge pull request #2 from brain-hackers/ci-usb
Browse files Browse the repository at this point in the history
Add USB role switch
  • Loading branch information
puhitaku authored Mar 27, 2023
2 parents bdd3615 + fa8cc98 commit 64edb65
Show file tree
Hide file tree
Showing 2 changed files with 58 additions and 16 deletions.
68 changes: 52 additions & 16 deletions brain-config
Original file line number Diff line number Diff line change
Expand Up @@ -295,6 +295,38 @@ do_ssh() {
fi
}

do_usb() {
if [ "$INTERACTIVE" = True ]; then
MODE=$(whiptail --menu "Select the role of the USB Host Controller." 20 60 10 "host" "USB Host Mode" "peripheral" "USB Device Mode (for Gadget)" 3>&1 1>&2 2>&3)
else
MODE=$1
true
fi

MODEL=$(cat /sys/firmware/devicetree/base/compatible | grep -Eao 'pw-[a-z0-9]+' | sed -E 's/-//g')
DTB="/boot/imx28-${MODEL}.dtb"
DTS=`mktemp`

if [ "${MODE}" != "host" -a "${MODE}" != "peripheral" ]; then
echo "Specify the mode from 'host' or 'peripheral'."
return 1
fi

dtc -I dtb -O dts ${DTB} > ${DTS} 2> /dev/null

RE='(^[\t ]*dr_mode[\t ]*=[\t ]*\")(.*)(\"[\t ]*;[\t ]*$)'
CURRENT=`sed -En "s|${RE}|\2|p" ${DTS} | head -1`

if [ "${CURRENT}" != "${MODE}" ]; then
mount -o rw,remount /boot
echo "Changing dr_mode to ${MODE}"
sed -Ei "s|${RE}|\1${MODE}\3|" ${DTS}
dtc -I dts -O dtb ${DTS} > ${DTB} 2> /dev/null
sync
ASK_TO_REBOOT=1
fi
}

disable_brain_config_at_boot() {
if [ -e /etc/profile.d/brain-config.sh ]; then
rm -f /etc/profile.d/brain-config.sh
Expand Down Expand Up @@ -519,32 +551,34 @@ fi
do_system_menu() {
FUN=$(whiptail --title "SHARP Brain Software Configuration Tool (brain-config)" --menu "System Options" $WT_HEIGHT $WT_WIDTH $WT_MENU_HEIGHT --cancel-button Back --ok-button Select \
"S1 Wireless LAN" "Enter SSID and passphrase" \
"S3 Password" "Change password for the '$USER' user" \
"S4 Hostname" "Set name for this computer on a network" \
"S2 Password" "Change password for the '$USER' user" \
"S3 Hostname" "Set name for this computer on a network" \
3>&1 1>&2 2>&3)
RET=$?
if [ $RET -eq 1 ]; then
return 0
elif [ $RET -eq 0 ]; then
case "$FUN" in
S1\ *) do_wifi_ssid_passphrase ;;
S3\ *) do_change_pass ;;
S4\ *) do_hostname ;;
S2\ *) do_change_pass ;;
S3\ *) do_hostname ;;
*) whiptail --msgbox "Programmer error: unrecognized option" 20 60 1 ;;
esac || whiptail --msgbox "There was an error running option $FUN" 20 60 1
fi
}

do_interface_menu() {
FUN=$(whiptail --title "SHARP Brain Software Configuration Tool (brain-config)" --menu "Interfacing Options" $WT_HEIGHT $WT_WIDTH $WT_MENU_HEIGHT --cancel-button Back --ok-button Select \
"I2 SSH" "Enable/disable remote command line access using SSH" \
"I1 SSH" "Enable/disable remote command line access using SSH" \
"I2 USB" "Switch the role of the USB Host Controller" \
3>&1 1>&2 2>&3)
RET=$?
if [ $RET -eq 1 ]; then
return 0
elif [ $RET -eq 0 ]; then
case "$FUN" in
I2\ *) do_ssh ;;
I1\ *) do_ssh ;;
I2\ *) do_usb ;;
*) whiptail --msgbox "Programmer error: unrecognized option" 20 60 1 ;;
esac || whiptail --msgbox "There was an error running option $FUN" 20 60 1
fi
Expand All @@ -554,7 +588,7 @@ do_internationalisation_menu() {
FUN=$(whiptail --title "SHARP Brain Software Configuration Tool (brain-config)" --menu "Localisation Options" $WT_HEIGHT $WT_WIDTH $WT_MENU_HEIGHT --cancel-button Back --ok-button Select \
"L1 Locale" "Configure language and regional settings" \
"L2 Timezone" "Configure time zone" \
"L4 WLAN Country" "Set legal wireless channels for your country" \
"L3 WLAN Country" "Set legal wireless channels for your country" \
3>&1 1>&2 2>&3)
RET=$?
if [ $RET -eq 1 ]; then
Expand All @@ -563,7 +597,7 @@ do_internationalisation_menu() {
case "$FUN" in
L1\ *) do_change_locale ;;
L2\ *) do_change_timezone ;;
L4\ *) do_wifi_country ;;
L3\ *) do_wifi_country ;;
*) whiptail --msgbox "Programmer error: unrecognized option" 20 60 1 ;;
esac || whiptail --msgbox "There was an error running option $FUN" 20 60 1
fi
Expand All @@ -572,15 +606,15 @@ do_internationalisation_menu() {
do_advanced_menu() {
FUN=$(whiptail --title "SHARP Brain Software Configuration Tool (brain-config)" --menu "Advanced Options" $WT_HEIGHT $WT_WIDTH $WT_MENU_HEIGHT --cancel-button Back --ok-button Select \
"A1 Expand Filesystem" "Ensures that all of the SD card is available" \
"A4 Network Interface Names" "Enable/disable predictable network i/f names" \
"A2 Network Interface Names" "Enable/disable predictable network i/f names" \
3>&1 1>&2 2>&3)
RET=$?
if [ $RET -eq 1 ]; then
return 0
elif [ $RET -eq 0 ]; then
case "$FUN" in
A1\ *) do_expand_rootfs ;;
A4\ *) do_net_names ;;
A2\ *) do_net_names ;;
*) whiptail --msgbox "Programmer error: unrecognized option" 20 60 1 ;;
esac || whiptail --msgbox "There was an error running option $FUN" 20 60 1
fi
Expand All @@ -600,19 +634,21 @@ if [ "$INTERACTIVE" = True ]; then
while true; do
FUN=$(whiptail --title "SHARP Brain Software Configuration Tool (brain-config)" --menu "Setup Options" $WT_HEIGHT $WT_WIDTH $WT_MENU_HEIGHT --cancel-button Finish --ok-button Select \
"1 System Options" "Configure system settings" \
"5 Localisation Options" "Configure language and regional settings" \
"6 Advanced Options" "Configure advanced settings" \
"9 About brain-config" "Information about this configuration tool" \
"2 Interface Options" "Configure connections to peripherals" \
"3 Localisation Options" "Configure language and regional settings" \
"4 Advanced Options" "Configure advanced settings" \
"5 About brain-config" "Information about this configuration tool" \
3>&1 1>&2 2>&3)
RET=$?
if [ $RET -eq 1 ]; then
do_finish
elif [ $RET -eq 0 ]; then
case "$FUN" in
1\ *) do_system_menu ;;
5\ *) do_internationalisation_menu ;;
6\ *) do_advanced_menu ;;
9\ *) do_about ;;
2\ *) do_interface_menu ;;
3\ *) do_internationalisation_menu ;;
4\ *) do_advanced_menu ;;
5\ *) do_about ;;
*) whiptail --msgbox "Programmer error: unrecognized option" 20 60 1 ;;
esac || whiptail --msgbox "There was an error running option $FUN" 20 60 1
else
Expand Down
6 changes: 6 additions & 0 deletions debian/changelog
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
brain-config (20230327) bullseye; urgency=medium

* Added do_usb

-- Brain Hackers <[email protected]> Mon, 27 Mar 2022 16:56:00 +0900

brain-config (20220702) bullseye; urgency=medium

* Forked from raspi-config
Expand Down

0 comments on commit 64edb65

Please sign in to comment.