重新安装并重新启动调制解调器管理器(恢复 arduino 脚本所做的更改)

重新安装并重新启动调制解调器管理器(恢复 arduino 脚本所做的更改)

我就是那些不幸的人之一,没有阅读脚本的内容就以 su 的身份运行了脚本。

我尝试安装 Arduino。因此下载并解压了安装程序。我发现脚本调用install.sharduino-linux-setup.sh运行install.sh然后运行arduino-linux-setup.shinstall.sh只是将必要的文件放在必要的目录中并创建 .desktop 文件。这是一个无害的脚本。

但是arduino-linux-setup.sh删除了我的调制解调器管理器,甚至没有提示权限。输出如下(图像)。

arduino-linux-setup.sh脚本的输出:

arduino-linux-setup.sh 脚本的输出

它通过运行删除了调制解调器管理器,sudo apt-get -y remove modemmanager输出也显示了以下行。

Created symlink /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

看起来这可以做到。

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 运行的命令。

相关内容