2019年7月13日 星期六

Arduino IDE compile NodeMCU 出現 board nodemcuv2 is unknown 錯誤

今天使用 Auduino IDE compile NodeMCU 時,出現了以下錯誤訊息:
Board nodemcuv2 (platform esp8266, package esp8266) is unknown
Error compiling for board NodeMCU 1.0 (ESP-12E Module).

解決方式為,進到以下目錄
 C:\Users"Your Username"\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266
這時候應該會看到兩個版本,把舊的那個版本 delete 掉就行了 

來源:https://github.com/esp8266/Arduino/issues/1514

2014年11月4日 星期二

消掉 ^M 的方法

用 vim 開啟文字檔時,常常會看到結尾會有 ^M 這種討厭的符號。

如果是在 vim 裡面,可以打 %s/\r//g ,就可以把 ^M 消掉。

如果是在命令列,可以用 sed ‘s/\r//g’ <filename>,就可以得到沒有 ^M 的輸出,再用 > 符號轉向要存的檔案即可;或是使用  sed ‘s/\r//g’ -i <filename> 直接修改原檔。

當然,也可以配合 find 指令,把目前目錄下的所有檔案的 ^M 全部幹掉;命令如下

find . -type f -exec sed -i 's/\r//g' {} \;

2014年7月27日 星期日

Asus VW266h LCD 故障維修 DIY


買了三年多的 Asus VW266h LCD,前一段時間故障了,又剛好過保固沒多久。
查了一下,「VW266h 故障」之類的關鍵字,很多人都是一樣的壞法:一開始畫面會有很多橫條紋雜訊,熱機一下子就正常,關機久一點後再開機,又會出現一樣的橫條紋雜訊;如果不處理它,熱機到正常的時間會越來越久;看到有人的修法是電容全部換掉,但是是哪一顆電容故障也不能確定。
乾脆把 LCD 拆開,把電容一顆顆慢慢換慢慢測試,確定問題出在 C223 這顆 100uF/16V 電容掛掉,可能導致 1.8V 穩壓有問題。
換掉電容後到今天三個多月,使用上一切正常。

2012年12月8日 星期六

Ubuntu 桌面下回到 command line 的方法


安裝完 Ubuntu Server,用 apt-get 安裝桌面系統,本來都 run 的好好的,今天下午某個軟體出問題,導致工具列都消失掉,網路介面也還沒設定好,不能遠端 reboot。

發生這種情況,除了含淚按下 power 鍵外,還有另一種選擇。

按下 ctrl-alt-F1,就可以看到熟悉的 login: 畫面,登入後再打 sudo reboot,或重啟桌面都行。
ctrl-alt-[F1-F6] 可以進入 tty1 到 tty6,若要回到桌面,按 ctrl-alt-F7 即可。

2012年12月6日 星期四

KVM 在 Core i7 上效能低落的原因

在一台 Core i7的機器上,安裝 XenServer,開了一個 Ubuntu 的 Server,速度很快。
在同一台機器上,直接安裝Ubuntu,在KVM上開一台VM起來,速度跟XenServer的VM有明顯落差,開始找原因。

一開始是往 disk 的方向找;XenServer是使用一個LV當做VM的disk,在KVM上我本來是用file當做VM的disk;使用一個LV給KVM的VM當disk後,速度一樣緩慢,這個可能有影響,但不是主因。

以下是使用libvirt,劃一個LV給VM用的domain XML片段
<disk device="disk" type="block"> <driver name="qemu" type="raw"> <source dev="/dev/ubuntu/kvm_3"></source> <target bus="ide" dev="hda"> </target></driver></disk>
其中,/dev/ubuntu/kvm_3即是一個LV。

後來乾脆在Ubuntu安裝GUI (Ubuntu Server 原本無 GUI),再安裝virt-manager,使用virt-manager create一個VM,同樣使用file當VM的image;start VM後,發現VM速度很快,至此幾乎確認問題應該不在 disk。

使用virsh dumpxml將virt-manager create的VM的XML show出來,再一行一行比對,發現最根本原因在於第一行,virt-manager的VM是 <domain id="1" type="kvm">
我原來用libvirt create VM的第一行是 <domain type="qemu">
答案揭曉,若將domain type設定為qemu,會呼叫的emulator為/usr/bin/qemu-system-x86_64;若將domain type設定為kvm,emulator為/usr/bin/kvm。

因為Core i7有 vmx flags,使用kvm的方式會快上許多,若使用qemu當emulator,可能會有一次轉換的動作,導致效能低落。

將所有 VM 的 domain type 換成 KVM 後,速度已有明顯改善。

2012年12月5日 星期三

ssh 登入很慢

問題:每次要登入公司的server,打完 ID 後,要等 password: 出來時,都會等個十秒鐘左右的時間。

原因:ssh進行DNS反查,PC 沒hostname

解決方法:修改 /etc/ssh/sshd_config (需有 root 權限),加入 「UseDNS no」,存檔,再 sudo service ssh restart 即可。

2012年12月1日 星期六

CentOS 和 Ubuntu 改網路設定的方法整理

要修改 CentOS 和 Ubuntu 的網路設定,作法有點不一樣,整理如下

CentOS

  • 修改 /etc/sysconfig/network-scripts/ifcfg-eth0
  • 執行 sudo service network restart


Ubuntu

  • 修改 /etc/network/interfaces
  • 執行 sudo service networking restart


有一些地方需註記一下

  • 在CentOS 6.3中,一改完ifcfg-eth0後,在很短的時間內就會自動生效,不用執行 service network restart 也會有效果。會發現這點是因為我在改的時候,不小心把 IP 的設定打錯,存檔後幾秒鐘就斷線,這時我還未執行 service network restart。Ubuntu 則沒有這個現象,一定要執行 service networking restart 才會生效。在改 CentOS 的設定檔時需小心檢查,如果不在機器旁,設定又改錯,一存檔就糗了。
  • 要改 nameserver 的設定,傳統作法是改 /etc/resolv.conf,現在的作法是改上述的設定檔。在CentOS的 ifcfg-eth0 中,設 DNS1=8.8.8.8;在 Ubuntu 的 interfaces中,設dns-nameservers=8.8.8.8,就可以把 nameserver 設為 google 的 DNS server 了。設定完這些檔後,/etc/resolv.conf會依據這些設定檔自動修改,加入nameserver 8.8.8.8;直接改 /etc/resolv.conf 不是正確的作法。