2012年10月23日 星期二

raspberry pi 樹莓派介紹

Raspberry Pi 是 arm 平台信用卡大小的電腦,由英國的 Raspberry Pi Foundation 開發。

一開始是創辦人們看到學校竟然在教Word、Excel,有感於現代孩童不再親手「做」東西,接觸的都是圖形化介面、遊戲機,加上現在年輕人越來越不懂得怎麼寫程 式,於是,想找回學習電腦運算與程式設計的樂趣,特別是帶回校園中,致力推廣資訊科學與相關知識,所以打造出這台超便宜、性能卻不差的電腦。


硬體上分 model A 及 model B 二種:

Model A: 25美金,記憶體 256M,1個 usb 2.0 port,電源 300 mA (1.5 W)
Model B: 35美金,記憶體 512M,2個 usb 2.0 port,電源 700 mA (3.5 W),10/100 乙太網路卡(RJ45)

其他部份就二者都相同:

CPU: 700 MHz ARM1176JZF-S core (armv6)
GPU: 可播藍光 DVD 及 h264 1080p 影片
視訊輸出: 1個 AV 端子及 1個 HDMI 接頭
音效: 透過 HDMI 或 3.5mm 音源輸出
儲存空間: SD / MMC / SDIO 卡
重量: 45克
官方支援 OS: Fedora,Arch linux,Debian

其他非官方也有一堆 linux 支援 Raspberry Pi,但是不支援 ubuntu,因為 Raspberry Pi 是 ARMv6 cpu,而 ubuntu 早就捨棄 v6 的支援。

GPU 等級和 XBox 一代的效能差不多,整體效能約等於一台 300MHz Pentium 2,但是卻包含很不錯的顯示卡。

一定要有記憶卡才能開機。
舊版 256M ram 是 cpu 及 gpu 共享, 可以調配 240/16, 224/32, 192/64, 128/128

arm128_start.elf : 128M ARM, 128M GPU split (use this for heavy 3D work, possibly also required for some video decoding)
arm192_start.elf : 192M ARM, 64M GPU split (this is the default)
arm224_start.elf : 224M ARM, 32M GPU split (use this for Linux only with no 3D or video processing. Its enough for the 1080p framebuffer, but not much else)
arm240_start.elf : 240M ARM, 16M GPU split (use this for headless mode only. It is enough to boot the system, but you can not use video at all.


如何在未安裝 OS 前分辨 model B 記憶體是 256M 或 512M:
就是位於AV端子與HDMI之間的那顆晶片(那是CPU和記憶體的位置)(整個板子的正中央那顆),記憶體是堆疊在CPU上方,你要看的就是在廠牌下面那行字,字上面是 "2G" (表示2Gbits = 256MB) 還是 "4G" (表示 4Gbits = 512MB)。



開機過程滿有趣的,開機後,gpu 先起來,從 vfat 中載入 firmware,再叫起 arm cpu,開始進入開機程序。

1 - gpu loads its firmware from sdcard
2 - gpu then fires up the arm
3 - arm loads its kernel from sdcard and starts runing.

基本上,能應用的層面相當廣,因為耗電量才 3.5W,當成 HTPC, NAS 都很適合。


這邊介紹裝上官方 raspbian 步驟及要注意事項:

到官方網站下載:
http://www.raspberrypi.org/downloads

這一個 rasbian
http://downloads.raspberrypi.org/images/raspbian/2012-09-18-wheezy-raspbian/2012-09-18-wheezy-raspbian.zip

準備好一張記 2G 以上的記憶卡 ,將抓回來的檔案解開後 dd 到記憶卡上。建議用快一點的記憶卡,因為我的 2G 沒 class 的,連 apt-get update 都要滿久的。

假設記憶卡在 /dev/sdb

$ unzip 2012-09-18-wheezy-raspbian.zip
$ sudo dd if=2012-09-18-wheezy-raspbian.img of=/dev/sdb bs=512k
記得設定  bs,否則預設 blocksize 是 512 bytes, 會 d 很久。

完成後,用 fdisk -l /dev/sdb 可看到二個 partition,第一個是 vfat 格式,放 kernel 及 firmware,第二個為 ext4,才是 rasbian 檔案系統。

/dev/sdb1            8192      122879       57344    c  W95 FAT32 (LBA)
/dev/sdb2          122880     3932159     1904640   83  Linux


$ sudo mount /dev/sdb1 /mnt
$ cd /mnt
$ view config.txt

將 sdb1 掛載起來,裡面有一個 config.txt,可設定一些參數:
- 一些 hdmi 的微調
- 電視的規格 pal or ntsc,預設為 ntsc,台灣的是 ntsc 因此不用調整
- 要不要超頻,預設為 700 MHz,可在這裡調整

建議一開始先不要做調整,等到都能正常使用了,再回頭來做微調。



至於 cpu 及 gpu 共享記憶體的配置,可以從這裡設定:(建議從後面 raspi-config 設定)


240/16:
$ sudo cp -p arm240_start.elf start.elf

224/32:
$ sudo cp -p arm224_start.elf start.elf

以此列推,至於512M 可能要再等一陣子吧。


$ cd /
$ sudo umount /mnt

將記憶卡插到 Raspberry Pi 中即可,網路線也要,再將 micro usb 電源線接上就會開機,要關機就拔電源線即可(若在 os 中要先 shutdown)。


預設 rasbian 是 dhcp 方式,而且 sshd 是開啟的,因此,若接到有 dhcp server 的地方,直接就會取得 ip,然後可 ssh 進入,根本不用電視或螢幕,之前測試失敗,是自己耍白癡,dhcp server 的 firewall 沒開放 dhcp 封包給 Raspberry Pi 連。

看 dhcp server 上的 log 或使用 nmap 來掃描看看 raspberry pi 取得哪個 ip,直接登入即可。

user:           pi
password:  raspberry

記得,一進去就要立刻修改密碼,否則很危險。

若是無法以 ssh 登入,只要插上螢幕或電視,外加 usb 鍵盤,從本機操作。
本機接鍵盤、螢幕或電視登入,有些鍵會不同,如 | ,因為預設是英國的鍵盤,可從選單上修改。

要再次進入設定選單,指令為:
$ sudo raspi-config

預設 raspbian 的 pi 使用者,sudo 可以不用密碼執行任何指令。
裡面已經裝好 X 環境了(lxde 搭配 openbox),可從 raspi-config 來設定開機自動進入 X。


raspi-config 選單各項功能:

expend_root:
首先做 expend_rootfs,因為下載回來的 rasbian 檔案系統是 1.9G,如果用 4G 的記憶卡來 dd,開機後看到的也只有 1.9G,所以要做 resize 動作,填滿整個 4G。

overscan:
預設不用動,如果顯示器旁邊有不明 黑色邊框,才需要調整,參考 /boot/config.txt

configure_keyboard:
由此調整鍵盤配置為美國的

change_timezone:
預設是英國的時區,改成 Asia/Taipei (會將 /usr/share/zoneinfo/Asia/Taipei 拷貝成 /etc/localtime)

memory_split:
cpu 及 gpu 記憶體配置

overclock:
超頻,預設 700MHz

boot_behaviour:
是否開機直接進入 X(是否啟動 lightdm),採用 lightdm 來自動登入

update:
更新 raspi-config 程式


由於 Raspberry Pi 沒有 real time clock (RTC),所以時間是透過 ntpd 取得,等了一陣子時間都沒自動調整,建議第一次手動設定時間。
$ sudo date -s "2012-10-23 21:07:22"

記憶卡2G 真的不夠用,開機後僅賸下 400M,還好可外接 usb storage。

若是二個 usb 插槽不夠用,可外接 usb hub (建議用有外接電源的種類)

倒是建議配合 synergy,這樣就不用再接 usb keyboard.

預設 raspbian 是使用 swapfile 位於 /var/swap

由於是 swapfile,因此要開關 swap 不要用 swapon,改用 dphys-swapfile 來切換。

先介紹到這,因為其他的和一般的 debian 沒二樣,改天有學到新柬西再繼續分享。



2012/10/24 目前要使用全部 512M 的記憶體,要抓新版 firmware 回來,作法如下:
最新版 firmware 下載位置

https://github.com/raspberrypi/firmware/tree/master/boot


抓回除了 COPYING.Linux  及 LICENSE.broadcom 以外的 8個檔放到 sd card 的第一個分割區中(/boot),覆蓋掉原本的檔案。
接著修改 config.txt 加上:
gpu_mem=32
存檔後重開機即可,開好後就會有 480/32 的記憶體配置


也可以使用 gpu_mem_percent 代表

gpu_mem_percent=25
gpu_mem=16



第一行表示用 gpu 用 25% 的記憶體 (128M), 但是還有第二行,所以再加 16M,共 144M


新的記憶體配置方法參考

http://www.raspberrypi.org/phpBB3/viewtopic.php?t=20642&p=200624





相關連結:

官方網頁:
http://www.raspberrypi.org/

官方論譠:

http://www.raspberrypi.org/phpBB3/


FAQ:
http://www.raspberrypi.org/faqs

打雷神之鎚3 也很順:
http://www.raspberrypi.org/archives/106

製造啤酒也可以:
http://forum.talkonly.net/viewthread.php?tid=15049

可裝各種作業系統:
http://elinux.org/RPi_Distributions

監控你的 Raspberry Pi:
http://raspcontrol.com/

免費雜誌 MagPi magazine
http://www.themagpi.com/

重編 Raspberry Pi 核心: (也有 cross compilation 說明)
http://elinux.org/RPi_Kernel_Compilation
最好是在 desktop 或 notebook 上來 cross compilation,這樣比較快

在 Raspberry 上開發程式:
http://elinux.org/RPi_Programming

免費線上課程:
http://www.cl.cam.ac.uk/freshers/raspberrypi/tutorials/os/


raspihub:
http://www.raspihub.com/

玩家:
http://ruten-proteus.blogspot.tw/


參考資料:
http://elinux.org/RaspberryPiBoard
http://en.wikipedia.org/wiki/Raspberry_Pi
http://yehnan.blogspot.tw/2012/01/raspberry-pi.html

沒有留言:

張貼留言