Переустановите и перезапустите диспетчер модемов (отмените изменения, сделанные сценарием arduino)

Я один из тех неудачников, которые запускали скрипт как su, не читая его содержимого.

Я пытался установить Arduino. Итак, скачал и распаковал установку. Я нашел скрипты под названием install.sh и arduino-linux-setup.sh , запустили install.sh , затем запустили arduino-linux-setup.sh . install.sh просто помещает необходимые файлы в необходимые каталоги и создает файлы .desktop. Это невинный сценарий.

Но arduino-linux-setup.sh удалил мой модем-менеджер, даже не запрашивая разрешения. Результат выглядит следующим образом (изображение).

Вывод сценария arduino-linux-setup.sh:

Output of arduino-linux-setup.sh script

Он удалил диспетчер модемов, запустив sudo apt-get -y remove modemmanager Вывод также показал следующую строку.

Создана символическая ссылка /run/systemd/system/ModemManager.service -> / dev / null

Я включаю содержимое arduino-linux-setup.sh ниже.

refreshudev () {

    echo ""
    echo "Restarting udev"
    echo ""
    
    sudo udevadm control --reload-rules
    sudo udevadm trigger
    
    if [ -d /lib/systemd/ ]
    then
        sudo systemctl restart systemd-udevd
    else
        sudo service udev restart
    fi

}

groupsfunc () {
    echo "Add User to dialout,tty, uucp, plugdev groups"

    sudo groupadd plugdev
    sudo groupadd dialout
    sudo usermod -a -G tty $1
    sudo usermod -a -G dialout $1
    sudo usermod -a -G uucp $1
    sudo usermod -a -G plugdev $1

}

acmrules () {
    echo "# Setting serial port rules"

    cat <<EOF
    KERNEL=="ttyUSB[0-9]*", TAG+="udev-acl", TAG+="uaccess", OWNER="$1"
    KERNEL=="ttyACM[0-9]*", TAG+="udev-acl", TAG+="uaccess", OWNER="$1"
    EOF
}

openocdrules () {
    echo "# Adding Arduino M0/M0 Pro, Primo UDEV Rules for CMSIS-DAP port"

    cat <<EOF
    ACTION!="add|change", GOTO="openocd_rules_end"
    SUBSYSTEM!="usb|tty|hidraw", GOTO="openocd_rules_end"

    #Please keep this list sorted by VID:PID

    #CMSIS-DAP compatible adapters
    ATTRS{product}=="*CMSIS-DAP*", MODE="664", GROUP="plugdev"

    LABEL="openocd_rules_end"
    EOF
}

avrisprules () {
    echo "# Adding AVRisp UDEV rules"
    
    cat <<EOF
    SUBSYSTEM!="usb_device", ACTION!="add", GOTO="avrisp_end"
    # Atmel Corp. JTAG ICE mkII
    ATTR{idVendor}=="03eb", ATTRS{idProduct}=="2103", MODE="660", GROUP="dialout"
    # Atmel Corp. AVRISP mkII
    ATTR{idVendor}=="03eb", ATTRS{idProduct}=="2104", MODE="660", GROUP="dialout"
    # Atmel Corp. Dragon
    ATTR{idVendor}=="03eb", ATTRS{idProduct}=="2107", MODE="660", GROUP="dialout"
    
    LABEL="avrisp_end"
    EOF
    
}

dfustm32rules () {
        echo "# Adding STM32 bootloader mode UDEV rules"
    
    cat <<EOF
    # Example udev rules (usually placed in /etc/udev/rules.d)
    # Makes STM32 DfuSe device writeable for the "plugdev" group
    
    ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="df11", MODE="664", GROUP="plugdev", TAG+="uaccess"
    EOF
    
}

dfuarduino101rules (){
# Arduino 101 in DFU Mode"

    cat <<EOF
    SUBSYSTEM=="tty", ENV{ID_REVISION}=="8087", ENV{ID_MODEL_ID}=="0ab6", MODE="0666", ENV{ID_MM_DEVICE_IGNORE}="1", ENV{ID_MM_CANDIDATE}="0"
    SUBSYSTEM=="usb", ATTR{idVendor}=="8087", ATTR{idProduct}=="0aba", MODE="0666", ENV{ID_MM_DEVICE_IGNORE}="1"
    EOF
}

removemm () {
    # Removing modem manager
    sudo apt-get -y remove modemmanager
}


if [ "$1" = "" ]
then
    echo ""
    echo "Run the script with command ./arduino-linux-setup.sh \$USER"
    echo ""
else

    [ `whoami` != $1 ] && echo "" && echo "The user name is not the right one, please double-check it !" && echo "" && exit 1

    groupsfunc $1

    removemm
    acmrules $1 > /tmp/90-extraacl.rules
    openocdrules > /tmp/98-openocd.rules
    avrisprules > /tmp/avrisp.rules
    dfustm32rules > /tmp/40-dfuse.rules
    dfuarduino101rules > /tmp/99-arduino-101.rules

    sudo mv /tmp/*.rules /etc/udev/rules.d/

    refreshudev

    echo "*********** Please Reboot your system ************"
fi

Мой вопрос

После запуска скрипта я не смог использовать свой ключ использования.

Как мне отменить то, что скрипт arduino сделал с моей системой, и заставить мой USB-ключ снова работать. Я переустановил модем-менеджер, но он все еще не работает. Есть ли какое-то отношение к созданной символической ссылке? В настоящее время я не могу подключиться к Интернету со своего ноутбука.

1
задан 14 February 2021 в 11:56

1 ответ

Похоже, что это сделает это.

rm /etc/udev/rules.d/90-extraacl.rules
rm /etc/udev/rules.d/98-openocd.rules
rm /etc/udev/rules.d/avrisp.rules
rm /etc/udev/rules.d/40-dfuse.rules
rm /etc/udev/rules.d/99-arduino-101.rules
rm /run/systemd/system/ModemManager.service

Тогда попробуйте это.

systemctl enable ModemManager.service

Чтобы посмотреть, воссоздает ли он правильную ссылку к нему, он должен увидеть ничего, что показывает, что он удалил файл сервиса только с новой ссылкой на / dev / null в каталоге, что символическая ссылка Предполагается начать с. Затем перезагрузитесь и надеюсь, что он вернулся к нормальному. Редактируйте все команды, работающие с sudo в передней части них, если вы этого не знаете.

1
ответ дан 18 March 2021 в 23:34

Другие вопросы по тегам:

Похожие вопросы: