###### tags: `產品開發` `FlagsBlock`,`esp8266`,`arduino`,`測試` [TOC] # 在 Linux 上執行 Flag's Block ## 下載軟體 以下假設下載的檔案都放在預設的 `下載` 資料夾下, 而目前工作資料夾在家目錄下: 1. [Flag's Block Linux 版下載]() 並解開壓縮檔: ```bash $ tar Jxvf 下載/FlagsBlock.tar.xz ``` ## 完成 Flag's Block 軟體執行前的準備工作 以下根據不同發行版本, 使用個別的安裝程序: - [Ubuntu (Debia-based) Linux](#Ubuntu-1804-Debian-based-Linux) - [Manjaro (Arch-based) Linux](#Manjaro-Linux-180-Arch-based-Linux) - [Fedora (RedHat) Linux](#Fedora-29-Red-Hat-Linux) - [OpenSuse](#OpenSuse) ### Ubuntu 18.04 (Debian-based Linux) 1. 安裝顯示圖檔的工具 feh、Python 2.7 以及所需的套件 Tkinter: ```bash $ sudo apt install feh python python-tk ``` 1. 安裝 nwjs 所需的程式庫 libgconf2-4 及 GTK 相關模組: ```bash $ sudo apt install libgconf2-4 libcanberra-gtk-module libcanberra-gtk3-module ``` 3. 將自己加入具備通訊埠權限的 dialout 群組: ```bash $ sudo usermod -a -G dialout <你的使用者名稱> ``` 記得要重新啟動後才會生效, 這樣才會具備 dialout 群組的權限。 ### Manjaro Linux 18.0 (Arch-based Linux) 1. 安裝顯示圖檔的工具 feh、Python 所需的 Tkinter 套件、nwjs 所需的 gconf 套件: ```bash $ sudo pacman -S feh tk gconf ``` 3. 將自己加入具備通訊埠權限的 uucp 群組: ```bash $ ls -l /dev/ttyUSB0 crw-rw---- 1 root uucp 188, 0 3月 21 13:38 /dev/ttyUSB0 $ sudo usermod -a -G uucp <你的使用者名稱$ ``` 記得要重新啟動後才會生效, 這樣才會具備 uucp 群組的權限。 ### Fedora 29 (Red Hat Linux) 1. 安裝顯示圖片的工具程式 feh: ```bash $ sudo yum install feh ``` 1. 安裝 Python 環境與所需的套件 tkinter: ```bash $ sudo yum install python tkinter ``` 1. 將自己加入具備通訊埠權限的 dialout 群組: ```bash sudo usermod -a -G dialout <你的使用者名稱> ``` 記得要先重新啟動後才會生效, 這樣才會具備 dialout 群組的權限。 ### OpenSuse 1. 安裝 gconf2, 官方已不提供套件, 請下載[社群維護版本](https://software.opensuse.org/download/package?package=gconf2&project=openSUSE%3ALeap%3A15.2)安裝。 1. 安裝 feh: ```bash $ sudo zypper install feh ``` 1. 安裝 Python Tkinter 套件: ```bash $ sudo zypper install python-tkinter ``` 3. 將自己加入具備通訊埠權限的 dialout 群組: ```bash $ sudo usermod -a -G dialout <你的使用者名稱> ``` 記得要重新啟動後才會生效, 這樣才會具備 dialout 群組的權限。 ## 啟動 Flag's Block 假設您將 Flag's Block 解壓縮在家目錄下: ```bash $ cd FlagsBlock/ $ ./start.sh ``` ## FAQ ### 上傳程式 1. 控制板的連接埠應該選那一個? 根據你所使用的控制板, 在 Linux 上的序列埠名稱會不一樣: |控制板型號|序列埠名稱| |:----|:----| |Flag One|/dev/ttyACM0| |Flag 1|/dev/ttyUSB0| |D1 mini|/dev/ttyUSB0| 2. 插上 USB 傳輸線後就是看不到序列埠的名稱? 建議安裝 CH340 驅動程式, 可參考[在 Linux 上安裝 D1 mini 驅動程式](/k5bQTTmoTHON1gsrQ0WaJg)。 3. 如果上傳程式到 **D1 mini** 控制板看到以下錯誤訊息: ![](https://i.imgur.com/fTrhDtt.png) 畫面下方的橘色錯誤訊息為: ``` warning: espcomm_sync failed error: espcomm_open failed error: espcomm_upload_mem failed 上傳草稿碼時發生錯誤 ``` 而你確認序列埠設定都正確, 請拿一條杜邦線將 D3 與 G 短路, 應該就可以正常上傳了