2015/03/05

Raspberry Pi:Raspbian增加deb套件的下載來源

這篇寫給自己看,很簡略。

燒錄Raspbian後,需要以apt-get更新軟體套件,看了/etc/apt/sources.list檔案內容,

deb http://mirrordirector.raspbian.org/raspbian/ wheezy main contrib non-free rpi
# Uncomment line below then 'apt-get update' to enable 'apt-get source'
#deb-src http://mirror.ox.ac.uk/sites/archive.raspbian.org/archive/raspbian/ wheezy main contrib non-free rpi


其中套件伺服器遠在國外,可到Raspbian Repository Mirrors查詢鏡像站,有台灣的,所以試試在sources.list首行加入:

deb http://ftp.yzu.edu.tw/Linux/raspbian/raspbian/ wheezy main contrib non-free rpi

然後更新套件清單,
$ sudo apt-get update

再試試安裝套件,其中套件下載動作的部份,出現類似下列訊息:
Fetched 51.0 MB in 58s (877 kB/s)

哇,877 kB/s耶,比以前快多了。

若是http://ftp.yzu.edu.tw/Linux/raspbian/raspbian/只有30 kB/s,若是原http://mirrordirector.raspbian.org/raspbian/則是150 kB/s,當然啦,這些數據僅供參考。

另外,可先用指令netselect判斷哪個站台最快。

2015/03/03

Raspberry Pi釋放主控台序列埠(GPIO14,GPIO15)

之前曾透過序列埠登入Raspberry Pi主控台,但若序列埠想移做他用,譬如與別塊板子、別顆晶片溝通,該怎麼釋放掉呢?

我的環境是Raspberry Pi Model B+,作業系統Raspbian(2014-12-24-wheezy-raspbian.zip),先確定可從另一台電腦(Windows)透過序列埠登入主控台,看到如下畫面,有著ttyAMA0的字樣。

底下步驟可釋放掉rpi的序列埠:

編輯/etc/inittab檔,
$ sudo nano /etc/inittab

內容大概如下:

...省略...
# Example how to put a getty on a serial line (for a terminal)
#
#T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100
#T1:23:respawn:/sbin/getty -L ttyS1 9600 vt100

# Example how to put a getty on a modem line.
#
#T3:23:respawn:/sbin/mgetty -x0 -s 57600 ttyS3


#Spawn a getty on Raspberry Pi serial line
T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100


請在藍色那一行前頭加個「#」,代表註解掉,使其無作用。存檔離開。

另外,rpi開機時會把除錯訊息送往序列埠,若想關掉須修改另一支檔案/boot/cmdline.txt,
$ sudo nano /boot/cmdline.txt

其內容只有一行,但很長:
dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

刪除其中的「console=ttyAMA0,115200」,其餘不動。存檔離開。舊版Raspbian若有「kgdboc=ttyAMA0,115200」,也一併刪除。

然後重開機,如此即可。接下來測試。讓個人電腦(Windows)與rpi透過序列埠溝通,互相傳送,傳輸設定如下:
  • Speed (baud rate): 9600
  • Bits: 8
  • Parity: None
  • Stop Bits: 1
  • Flow Control: None
rpi端執行minicom:
$ minicom -b 9600 -o -D /dev/ttyAMA0

離開minicom的按鍵是先按「Ctrl-a」再按「x」。

Windows端執行PieTTY或PuTTY,Serial line填入COM8(請查詢),Speed填入9600,
然後切換到「Serial」分頁,確認傳輸設定,便可開啟連線。
底下是minicom的畫面,看到從PieTTY傳來的字樣「hello how are you?」。
底下是PieTTY的畫面,看到從minicom傳來的字樣「I'm fine. Thank you.」。
另外,在Windows上除了PieTTY,也可使用Tera Term,記得到選單「Setup-Serial port...」設定。
在rpi端除了minicom,也可使用screen,指令是「$ screen /dev/ttyAMA0 9600」,離開的按鍵是「Ctrl-a」再按「k」。


參考資料:

2015/03/01

安裝Cygwin

Cygwin的基礎是一套軟體模擬層,也就是cygwin1.dll,由此DLL(Dynamic Link Library,動態連結程式庫)提供POSIX的功能,在Windows上模擬出Linux。

Cygwin支援從Windows XP SP3起、所有32位元與64位元版本的Windows作業系統。

首先到Cygwin官方網站(https://cygwin.com/),進入下載區,根據你的作業系統版本下載「安裝程式」,setup-x86.exe(32位元)或setup-x86_64.exe(64位元)。

執行後會顯示安裝程式本身的版本,安裝程式也會不斷更新,當你下次想安裝新套件或更新原有套件時,應再次從Cygwin官網下載。
Install from Internet,從套件網站下載到硬碟裡,然後安裝。
Download Without Installing,只下載套件。若想安裝多台電腦,可先以此選項下載,然後複製到別台電腦,再以下一個選項安裝。
Install from Local Directory,安裝先前儲存在硬碟裡的套件。
Select Root Install Directory,指定安裝路徑根目錄,若無特別需求,請使用預設值C:\cygwin,若想更改,建議目錄名不要過長、不要含空格、不要含中文,也建議不要安裝到磁碟的根目錄。
Select Local Package Directory,指定存放套件的目錄。
Select Your Internet Connection,設定網路連線,請根據你的網路環境來設置。
Choose A download Site,選擇從哪個Cygwin套件站台下載,預設站台皆在國外,太過緩慢,可到Cygwin Mirror Sites查詢最靠近你的站台,輸入到「User URL」並點按「Add」。若是台灣的話,可使用「ftp://ftp.yzu.edu.tw/cygwin/」或「http://ftp.yzu.edu.tw/cygwin/」。
安裝程式會向該站台索取套件資訊。
便可看到選擇套件的畫面;預設已勾選基本的套件。
套件很多,最便利的方式是在「Search」裡輸入關鍵字,找出你想安裝的套件。
譬如我輸入「mercurial」,找到這套分散式版本控管系統。從下圖裡可看到,目前狀態欄「New」標示為「Skip」,代表跳過不安裝。
點按一下後,便可切換改成安裝,顯示版本「3.0.1-1」,後面欄位「Bin?」代表是建置好可執行的套件包,「Src?」代表原始程式碼,預設只會勾選「Bin?」,一般來說不需要原始碼,除非你想研究該套件的程式碼。
若是之後再執行安裝程式,便會看到已安裝的套件被標示為「Keep」,代表站台上無新版本,保持不動。
其他可行動作還有「Reinstall」重新安裝,「Uninstall」解除安裝,有些套件可能同時有多個版本,還能挑選版本。
在安裝畫面右上角,可切換顯示套件的方式,「Category」以分類方式顯示,「Full」完整顯示,「Pending」只顯示需要安裝或更新的套件,「Up To Date」顯示已為最新版的套件,「Not Installed」不安裝的套件。

選擇套件時請小心,注意不要勾選跟X Window相關的套件,要不然會安裝一大堆有的沒的。

然後便是進行安裝。
最後詢問要不要在程式集與桌面建立圖示與捷徑。
執行Cygwin Terminal終端機後。
便可得到類似於Linux/Unix的命令列模式。