第二種畫桌子的方法
1. 加入 Cube,將 Cube 左下角移至原點,並按 z 切換至骨架模式 (Wire frame)
a. 按 RMB 點選 Cube 以選擇 Cube,按 g 再押著 Ctrl 不放將左下角移至 0,0
然後按 LMB。
b. 按 TAB 進入物件編輯模式,然後按 b 拉一個框框圈選最上面的端點。
c. 移動端點:按 g、按 y、按 3。
d. 取消端點選擇,然後選擇右側的面
e. 移動端點:按 g、按 x、按 8。到目前為止,我們會有一個方塊其大小為 5 x 10 x 2(高)
f. 移至視窗 3 (yz 平面),取消端點選擇,然後選擇最底下的面
g. 移動端點:按 g、按 z、按 1.7,此時我們即可得到一個 5 x 10 x 0.3 之方塊
練習 2
1. 回到初始狀態,刪除內建方塊
2. 切至視角 7,新增一個 Circle,其端點數為 32 (預設值),半徑 (Radius) 設為 1, fill type 設為 Triangle Fan,此時我們可以得到一片圓形。
3. 按 b 拉一個框框圈選左半圓的點,再按 x 然後將其刪除,刪完之後我們有半個圓。
4. 新增一個 plan,將此 plan 高度調為 1,並與半圓重疊
5. 刪半圓之某些端點,將圓切 plan 處加上一個新的端點,使用 k (knife) 工具。
6. 將切完之端點填面,可以選三個端點(按 Shift + RMB 點選) 再填面 (f)或是四個端點填面 (f)
7. 將 3D 遊標歸零 -> Shift +s -> Cursor to Grid / Cursor to Center
8. 全選所有端點,按 Ctrl + D 複製,將旋轉點 pivot 改為 3D 遊標,按 r 旋轉 180 度,即可完成一個重疊的圓。
9. 全選所有端點,按 Remove Double 按鍵,即可將重疊的端點「融合」
10. 移至視角 3,全選所有端點,按 e(extrude 延伸)、按 z、按 0.3
2013年3月10日 星期日
2013年3月3日 星期日
fpga 0304 上課講義
1. 如何證明我們所寫的半加器工作正確 ?
在 simulation command 的部份,我們需要針對半加器的動作來進行完整測試,請問什麼是半加器的完整測試 ? 要判別一個半加器是否完整動作,最簡單的方法是把真值表上的每一列都模擬一次,如果輸出/入之狀態完全符合真值表,則我們可以確認此電路工作正常。
x y | Sum Cout
-----+-----------
0 0 | 0 0
0 1 | 1 0
1 0 | 1 0
1 1 | 0 1
將全部可能的輸入訊號都跑一次模擬並檢查模擬結果是否正確,若全部正確的話,我們可以假設電路設計是對的。
2. 如何撰寫 test fixture (測試程式)
2.1 什麼是 test fixture ?
當我們寫完 verilog 電路後,我們必須證明它是對的,因此我們要寫 test fixture 來針對我們所寫的 verilog 程式進行測試。
2.2 test fixture 的內容
一個 test fixture 就是一個 verilog module,以半加器 test fixture 為例,其語法大致如下:
module test_ha;
reg definition -> 暫存器定義
wire definition -> 線定義
other definition -> 其它定義
half_adder ha0 () -> 呼叫我們要進行測試的電路
initial begin -> 開始進行波形輸入
$dumpvars; -> 產生 gtkwave 語法
$dumpfile("testha.dmp"); -> 將波形以 VCD 格式存在 testha.dmp 檔中,
testha.dmp 可照自己的需求改名字
simulation command 模擬指令,以下特別說明!!
$dumpall; -> 紀錄所有訊號
$dumpflush; -> 必要
#10 $finish; -> 在 10 個時間單位後結束模擬
end -> 結束 initial begin
endmodule
因此一個完整的半加器 test fixture 如下,我們將其存為 test_ha.v
module test_ha;
reg a, b;
wire sumX, coutX;
half_adder ha0(a, b, sumX, coutX);
initial begin
$dumpvars;
$dumpfile("testha.dmp");
#0 a=0;
b=0;
#10 a=0;
b=1;
#10 a=1;
b=0;
#10 a=1;
b=1;
$dumpall;
$dumpflush;
#10 $finish;
end
endmodule
2.3 進行 verilog 測試模擬
請執行
cver ha_gate.v test_ha.v \Enter
理論上應該輸出如下:
GPLCVER_2.12a of 05/16/07 (Linux-elf).
Copyright (c) 1991-2007 Pragmatic C Software Corp.
All Rights reserved. Licensed under the GNU General Public License (GPL).
See the 'COPYING' file for details. NO WARRANTY provided.
Today is Mon Mar 7 11:25:30 2011.
Compiling source file "ha_gate.v"
Compiling source file "test_ha.v"
Highest level modules:
test_ha
Halted at location **test_ha.v(25) time 40 from call to $finish.
我們會發現沒有 error、沒有 warning,而且會有個檔案叫 testha.dmp,接下來就可以用 GTKwave 觀察波形了。
3. 使用 GTKwave
請執行
gtkwave testha.dmp
來載入模擬波形檔,並觀察我們所寫的變數 (reg, wire .. 之類) 的輸出,若想將目前觀察狀態留待下次載入,請選擇
File -> Write Save File
存檔為 testha.sav,下次載入 gtkwave 時請執行:
gtkwave testha.dmp testha.sav
即可載入前一次觀察狀態。
2.3 進行 verilog 測試模擬
請執行
cver ha_gate.v test_ha.v \Enter
理論上應該輸出如下:
GPLCVER_2.12a of 05/16/07 (Linux-elf).
Copyright (c) 1991-2007 Pragmatic C Software Corp.
All Rights reserved. Licensed under the GNU General Public License (GPL).
See the 'COPYING' file for details. NO WARRANTY provided.
Today is Mon Mar 7 11:25:30 2011.
Compiling source file "ha_gate.v"
Compiling source file "test_ha.v"
Highest level modules:
test_ha
Halted at location **test_ha.v(25) time 40 from call to $finish.
我們會發現沒有 error、沒有 warning,而且會有個檔案叫 testha.dmp,接下來就可以用 GTKwave 觀察波形了。
3. 使用 GTKwave
請執行
gtkwave testha.dmp
來載入模擬波形檔,並觀察我們所寫的變數 (reg, wire .. 之類) 的輸出,若想將目前觀察狀態留待下次載入,請選擇
File -> Write Save File
存檔為 testha.sav,下次載入 gtkwave 時請執行:
gtkwave testha.dmp testha.sav
即可載入前一次觀察狀態。
作業 1. 畫 Full Adder 的電路圖
以 Gate Level 寫 Verilog 程式
撰寫 test fixture,並跑模擬,可存檔檔名為 testfa.dmp
列印波形
2013年3月1日 星期五
blender 0301 上課講義
安裝執行 Blender
1. 請至 blender 網頁下載 Blender 檔案:
http://www.blender.org/download/get-blender/
下載
blender-2.63a-linux-glibc27-i686.tar.bz2
2. 將此檔案解壓縮至 /usr/local
/usr/local# tar jxfv 目錄/blender-2.63a-linux-glibc27-i686.tar.bz2
此時會解開一個 blender-2.63a-linux-glibc27-i686 目錄,其完整路徑為
/usr/local/blender-2.63a-linux-glibc27-i686
3. 在 /usr/local/bin 建一個 blender 之連結
/usr/local/bin# ln -s /usr/local/blender-2.63a-linux-glibc27-i686/blender .
4. 呼叫 Blender
在選單中啟動 Blender 或是直接輸入 blender,看是不是最新的 2.63a 版
Blender 基本操作:
視角切換(以鍵盤右側數字鍵盤來操作)
- 7 -> yx 平面
- 3 -> zy 平面
- 1 -> xz 平面
- 0 -> Camera 視角
- 5 -> 切換透視投影 / 平行投影
基本操作
- 旋轉視角 -> MMB 按著移動滑鼠可以旋轉視角
- 拉近/拉遠與物件的距離 -> MMB 滾輪
- 平移視角 -> 左手先按 Shift + 右手按 MMB 再移動
- 選取物件 -> 以 RMB 點選不同的物件,這裡面的物件泛指 3D 物件、Camera、燈源皆是物件。
- 刪除物件 -> 先選取物件,再按 x,此時會出現一個 Delete 視窗,請點 OK 即可刪除物件。
- 還原上一步 -> Ctrl + z,可以還原上一步,例如將剛剛刪除的物件還原回來
- z -> 切換著色模式/網格模式
- 新增物件 -> 選單 Add -> Mesh 可以新增基本物件,其快捷鍵為 Shift + a
- 旋轉物件 -> r 移動滑鼠
- 若臨時不想執行旋轉操作,可以按 Esc 退出,
- 若要固定角度旋轉,請按 r 之後,將左手按 Ctrl,右手移動滑鼠,如此一來可以以 5 度角為單位旋轉物件。
- 若想針對某軸進行特定角度旋轉,請在左下角 rotation 小表格中直接填入該軸的旋轉角度。
- 縮放物件 -> s 移動滑鼠
- a. 若臨時不想執行縮放操作,可以按 Esc 退出,
- b. 若要固定單位縮放,請按 s 之後,將左手按 Ctrl,右手移動滑鼠,如此一來
- 可以以 0.1 為單位旋轉物件。
- c 若想針對某軸進行縮放,請按 s 之後,再按該軸 (x or y or z),右手移動
- 滑鼠,如此一來可以沿該軸縮放。
- 移動物件 -> g 移動滑鼠
- 若臨時不想執行移動操作,可以按 Esc 退出,
- 若要固定單位移動,請按 s 之後,將左手按 Ctrl,右手移動滑鼠,如此一來可以以 0.1 為單位移動物件。
- 若想針對某軸進行移動,請按 s 之後,再按該軸 (x or y or z),右手移動滑鼠,如此一來可以沿該軸移動。
- 取消/全選物件 -> a
- 複製物件 -> Shift + d
2013年2月20日 星期三
自序
算一算,自民國 83 年起至現在,筆者玩 Linux 已經超過 17 年了,當初玩 Linux 曾經有裝過五十幾片磁碟片的,後來出了雲觀光碟可以一次搞定安裝 Slackware,再後來出了 Redhat Linux,一直到現在玩的 Debian 作業系統。我還記得當初為了要在 Linux 上看中文字得從倚天中文字形轉成 Linux 可用的格式,而 chdrv 更是當初不可或缺的工具。一開始玩 Linux 作業系統時,Linux 被眾多作業系統大廠笑稱之為「高級玩具作業系統」。的確,那時候的 Linux 比上 (Solaris、HP Unix、IBM AIX ..) 不足,比下 (Dos、 Minix ) 有餘。然而物換星移到了今天,當初許多的作業系統大廠已經消失了,而這個當年的「玩具作業系統」卻登堂入室,成為高科技產業不可或缺的一部份,從伺服器架設,Android 手機/平板、嵌入式系統乃至於機器人控制 .. 等在在可看見 Linux 的身影。
這本書是筆者累積這幾年教學經驗所整理的教學內容,其主要目的是以 Debian Linux 為基礎教導讀者一步步從文字介面安裝、設定乃至於完整的中文桌面環境,再至程式設計環境架設等。筆者希望本書可以讓一般學生在一個學期內完成本書的內容,以此書學習到的內容為基礎,讀者可以在進入 Linux 伺服器管理甚至是嵌入式 Linux/Android 系統開發等領域都會變得比較容易。
由於這本書主要是寫給 Linux 入門的初學者看的,因此筆者盡可能把安裝過程螢幕上的資訊一一截取下來,讓初學者能按圖索驥以利學習,希望藉此降低初學者安裝、學習過程中遇到問題卻無法解決的困境。
本書「不保證」你能順利安裝 Linux,亦「不保證」你的主機不會因此受到損壞(包括硬體損壞及軟體損壞或資料毀損)。從另一方面來說,由於筆者學識不足能力有限,書裡錯誤疏漏之處在所難免,望請各位多多海涵。
李博明 謹誌 於南台科技大學 電子系
這本書是筆者累積這幾年教學經驗所整理的教學內容,其主要目的是以 Debian Linux 為基礎教導讀者一步步從文字介面安裝、設定乃至於完整的中文桌面環境,再至程式設計環境架設等。筆者希望本書可以讓一般學生在一個學期內完成本書的內容,以此書學習到的內容為基礎,讀者可以在進入 Linux 伺服器管理甚至是嵌入式 Linux/Android 系統開發等領域都會變得比較容易。
由於這本書主要是寫給 Linux 入門的初學者看的,因此筆者盡可能把安裝過程螢幕上的資訊一一截取下來,讓初學者能按圖索驥以利學習,希望藉此降低初學者安裝、學習過程中遇到問題卻無法解決的困境。
本書「不保證」你能順利安裝 Linux,亦「不保證」你的主機不會因此受到損壞(包括硬體損壞及軟體損壞或資料毀損)。從另一方面來說,由於筆者學識不足能力有限,書裡錯誤疏漏之處在所難免,望請各位多多海涵。
李博明 謹誌 於南台科技大學 電子系
2013年1月17日 星期四
如何在 RPI 板子上編譯 Quake 3 程式
http://www.raspberrypi.org/phpBB3/viewtopic.php?f=78&t=18853
1. 下載必要套件
# apt-get install git gcc build-essential libsdl1.2-dev
2. 下載 quake3 的程式碼
請以 pi 權限執行
git clone https://github.com/raspberrypi/quake3.git
或至 ftp 下載解壓縮 quake3.tar.xz
下載完畢後我們會有一個目錄叫 quake3
3. 編譯設定檔
請切換至 quake3 目錄,編譯 build.sh,修改以下部份:
ARM_LIBS=/opt/bcm-rootfs/opt/vc/lib
改成
ARM_LIBS=/opt/vc/lib
INCLUDES="-I/opt/bcm-rootfs/opt/vc/include -I/opt/bcm-rootfs/opt/vc/include/interface/vcos/pthreads"
改成
INCLUDES="-I/opt/vc/include -I/opt/vc/include/interface/vcos/pthreads"
CROSS_COMPILE=bcm2708-
改成
#CROSS_COMPILE=bcm2708-
修改完畢後可以開始編譯
4. 編譯 quake3
請執行
time sh ./build.sh
即可開始編譯,如果你的環境設定都沒問題的話經過約一個小時後會編譯完 quake3。
編譯完畢後,我們可以在 ~/quake3/build/release-linux-arm/
看到 ioquake3.arm 這個可執行檔。在執行此檔案前,我們要先將 q3 的地圖檔放
至 ~/quake3/build/release-linux-arm/baseq3 目錄。
5. 放地圖檔
請下載 quake3 Demo 檔案,指令如下:
wget http://dl.dropbox.com/u/1816557/Q3%20Demo%20Paks.zip
執行完畢後會下載一個檔案名為 Q3 Demo Paks.zip,請執行 unzip 解開
unzip "Q3 Demo Paks.zip"
此時會解開 baseq3 的目錄,底下有 pak0.pk3 ~ pak8.pk3 這 9 個檔案。
將 baseq3 目錄下的檔案移至 ~/quake3/build/release-linux-arm/baseq3
接著再執行 ioquake3.arm 檔案即可進入 quake3。
如何建立 Raspberry Pi SD Card
1. 下載 2013-02-09-wheezy-raspbian.zip
a. 從官方網站下載 - http://www.raspberrypi.org/downloads
b. 從我的映像站下載
2. 解開 2013-02-09-wheezy-raspbian.zip
unzip 2013-02-09-wheezy-raspbian.zip
此時會解開出一個 2013-02-09-wheezy-raspbian.img 的影像檔,我們可以使用之前所介紹掛載 sdcard.img 的方式來掛載此檔以觀察其內容。
3. 掛載 2013-02-09-wheezy-raspbian.img 檔案
a. 請先切換至 root 權限 (su)
b. # losetup /dev/loop0 2013-02-09-wheezy-raspbian.img
此指令是將 2013-02-09-wheezy-raspbian.img "連接" 至 /dev/loop0 這個裝置
# losetup -a -> 觀察連接的結果,其輸出如下:
/dev/loop0: [0805]:999425 (/home/herman/raspberry/2013-02-09-wheezy-raspbian.img)
我們可以得知 /dev/loop0 已經跟 2013-02-09-wheezy-raspbian.img 連接在一起。接著我們可以執行 fdisk -lu 來觀察 /dev/loop0 這個裝置,請執行底下指令:
d. 將 /dev/loop1 掛載至 /mnt/sdcard1 目錄
# mount /dev/loop1 /mnt/sdcard1
將 /dev/loop2 掛載至 /mnt/sdcard2 目錄
# mount /dev/loop2 /mnt/sdcard2
若無 /mnt/sdcard1 /mnt/sdcard2 目錄的話,請先執行底下建立:
# mkdir -p /mnt/sdcard1 /mnt/sdcard2
掛載完後請執行 df -h 來觀察是否已掛載成功,其輸出如下:
檔案系統 Size Used Avail Use% 掛載點
/dev/loop1 56M 17M 40M 30% /mnt/sdcard1
/dev/loop2 1.8G 1.4G 315M 82% /mnt/sdcard2
e. 切換至 /mnt/sdcard1 /mnt/sdcard2 目錄來觀察其內容。
cd /mnt/sdcard1
ls -l
我們可以看到此分割區為 bootloader 及 kernel 之目錄,其輸出如下:
-rwxr-xr-x 1 root root 17764 2012-10-29 01:40 bootcode.bin
-rwxr-xr-x 1 root root 142 2012-12-16 01:43 cmdline.txt
-rwxr-xr-x 1 root root 1180 2012-12-16 01:43 config.txt
-rwxr-xr-x 1 root root 2020 2012-10-29 01:40 fixup_cd.dat
-rwxr-xr-x 1 root root 5282 2012-10-29 01:40 fixup.dat
-rwxr-xr-x 1 root root 137 2012-12-17 03:51 issue.txt
-rwxr-xr-x 1 root root 2104952 2012-10-29 01:40 kernel_cutdown.img
-rwxr-xr-x 1 root root 9522048 2012-10-29 01:40 kernel_emergency.img
-rwxr-xr-x 1 root root 2695192 2012-10-29 01:40 kernel.img
-rwxr-xr-x 1 root root 523144 2012-10-29 01:40 start_cd.elf
-rwxr-xr-x 1 root root 2347828 2012-10-29 01:40 start.elf
cd /mnt/sdcard2
ls -l
我們可以看到此分割區為 rootfs 之目錄,其輸出如下:
drwxr-xr-x 2 root root 4096 2012-12-16 02:16 bin
drwxr-xr-x 2 root root 4096 2012-12-16 01:43 boot
drwxr-xr-x 3 root root 4096 2012-12-16 02:16 dev
drwxr-xr-x 95 root root 4096 2012-12-17 03:39 etc
drwxr-xr-x 3 root root 4096 2012-12-17 03:39 home
drwxr-xr-x 12 root root 4096 2012-12-16 02:05 lib
drwx------ 2 root root 16384 2012-12-16 01:28 lost+found
drwxr-xr-x 2 root root 4096 2012-12-16 01:31 media
drwxr-xr-x 2 root root 4096 2012-09-03 01:08 mnt
drwxr-xr-x 3 root root 4096 2012-12-16 01:42 opt
drwxr-xr-x 2 root root 4096 2012-09-03 01:08 proc
drwx------ 2 root root 4096 2012-12-16 01:31 root
drwxr-xr-x 7 root root 4096 2012-12-17 03:37 run
drwxr-xr-x 2 root root 4096 2012-12-16 02:16 sbin
drwxr-xr-x 2 root root 4096 2012-06-20 17:23 selinux
drwxr-xr-x 2 root root 4096 2012-12-16 01:31 srv
drwxr-xr-x 2 root root 4096 2012-11-27 17:13 sys
drwxrwxrwt 2 root root 4096 2012-09-03 01:08 tmp
drwxr-xr-x 10 root root 4096 2012-12-16 01:31 usr
3. 掛載實體 SD card
# mount /dev/sdb1 /mnt/sdcard1
# mount /dev/sdb2 /mnt/sdcard2
使用 df -h 來觀察其輸出,如下所示:
檔案系統 Size Used Avail Use% 掛載點
/dev/sdb1 56M 17M 40M 30% /mnt/sdcard1
/dev/sdb2 1.8G 1.4G 315M 82% /mnt/sdcard2
4. 觀察 SD card
cd /mnt/sdcard1 目錄觀察
cd /mnt/sdcard2 目錄觀察
5. 修改開機參數
cd /mnt/sdcard1
vi config.txt
將
#hdmi_safe=1 改為
hdmi_safe=1
a. 從官方網站下載 - http://www.raspberrypi.org/downloads
b. 從我的映像站下載
2. 解開 2013-02-09-wheezy-raspbian.zip
unzip 2013-02-09-wheezy-raspbian.zip
此時會解開出一個 2013-02-09-wheezy-raspbian.img 的影像檔,我們可以使用之前所介紹掛載 sdcard.img 的方式來掛載此檔以觀察其內容。
3. 掛載 2013-02-09-wheezy-raspbian.img 檔案
a. 請先切換至 root 權限 (su)
b. # losetup /dev/loop0 2013-02-09-wheezy-raspbian.img
此指令是將 2013-02-09-wheezy-raspbian.img "連接" 至 /dev/loop0 這個裝置
# losetup -a -> 觀察連接的結果,其輸出如下:
/dev/loop0: [0805]:999425 (/home/herman/raspberry/2013-02-09-wheezy-raspbian.img)
我們可以得知 /dev/loop0 已經跟 2013-02-09-wheezy-raspbian.img 連接在一起。接著我們可以執行 fdisk -lu 來觀察 /dev/loop0 這個裝置,請執行底下指令:
# fdisk -lu /dev/loop0
其輸出如下:
Disk /dev/loop0: 1939 MB, 1939865600 bytes
255 heads, 63 sectors/track, 235 cylinders, total 3788800 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00017b69
Device Boot Start End Blocks Id System
/dev/loop0p1 8192 122879 57344 c W95 FAT32 (LBA)
Partition 1 does not end on cylinder boundary.
/dev/loop0p2 122880 3788799 1832960 83 Linux
Partition 2 does not end on cylinder boundary.
c. 將 2013-02-09-wheezy-raspbian.img 的第一分割區"連接"至 /dev/loop1,其指令如下:
losetup -o `expr 8192 \* 512` /dev/loop1 /dev/loop0
我們可以執行 losetup -a 來觀察連接結果,其輸出如下:
/dev/loop0: [0805]:999425 (/home/herman/raspberry/2013-02-09-wheezy-raspbian.img)
/dev/loop1: [0005]:1312 (/dev/loop0), offset 4194304
接著將 2013-02-09-wheezy-raspbian.img 的第二分割區"連接"至 /dev/loop2,其指令如下:
losetup -o `expr 122880 \* 512` /dev/loop2 /dev/loop0
我們可以執行 losetup -a 來觀察連接結果,其輸出如下:
/dev/loop0: [0805]:999425 (/home/herman/raspberry/2013-02-09-wheezy-raspbian.img)
/dev/loop1: [0005]:1312 (/dev/loop0), offset 4194304
/dev/loop2: [0005]:1312 (/dev/loop0), offset 62914560
這表示 /dev/loop1 及 /dev/loop2 都連接至正確的分割區,接著就可以進行掛載。
d. 將 /dev/loop1 掛載至 /mnt/sdcard1 目錄
# mount /dev/loop1 /mnt/sdcard1
將 /dev/loop2 掛載至 /mnt/sdcard2 目錄
# mount /dev/loop2 /mnt/sdcard2
若無 /mnt/sdcard1 /mnt/sdcard2 目錄的話,請先執行底下建立:
# mkdir -p /mnt/sdcard1 /mnt/sdcard2
掛載完後請執行 df -h 來觀察是否已掛載成功,其輸出如下:
檔案系統 Size Used Avail Use% 掛載點
/dev/loop1 56M 17M 40M 30% /mnt/sdcard1
/dev/loop2 1.8G 1.4G 315M 82% /mnt/sdcard2
e. 切換至 /mnt/sdcard1 /mnt/sdcard2 目錄來觀察其內容。
cd /mnt/sdcard1
ls -l
我們可以看到此分割區為 bootloader 及 kernel 之目錄,其輸出如下:
-rwxr-xr-x 1 root root 17764 2012-10-29 01:40 bootcode.bin
-rwxr-xr-x 1 root root 142 2012-12-16 01:43 cmdline.txt
-rwxr-xr-x 1 root root 1180 2012-12-16 01:43 config.txt
-rwxr-xr-x 1 root root 2020 2012-10-29 01:40 fixup_cd.dat
-rwxr-xr-x 1 root root 5282 2012-10-29 01:40 fixup.dat
-rwxr-xr-x 1 root root 137 2012-12-17 03:51 issue.txt
-rwxr-xr-x 1 root root 2104952 2012-10-29 01:40 kernel_cutdown.img
-rwxr-xr-x 1 root root 9522048 2012-10-29 01:40 kernel_emergency.img
-rwxr-xr-x 1 root root 2695192 2012-10-29 01:40 kernel.img
-rwxr-xr-x 1 root root 523144 2012-10-29 01:40 start_cd.elf
-rwxr-xr-x 1 root root 2347828 2012-10-29 01:40 start.elf
cd /mnt/sdcard2
ls -l
我們可以看到此分割區為 rootfs 之目錄,其輸出如下:
drwxr-xr-x 2 root root 4096 2012-12-16 02:16 bin
drwxr-xr-x 2 root root 4096 2012-12-16 01:43 boot
drwxr-xr-x 3 root root 4096 2012-12-16 02:16 dev
drwxr-xr-x 95 root root 4096 2012-12-17 03:39 etc
drwxr-xr-x 3 root root 4096 2012-12-17 03:39 home
drwxr-xr-x 12 root root 4096 2012-12-16 02:05 lib
drwx------ 2 root root 16384 2012-12-16 01:28 lost+found
drwxr-xr-x 2 root root 4096 2012-12-16 01:31 media
drwxr-xr-x 2 root root 4096 2012-09-03 01:08 mnt
drwxr-xr-x 3 root root 4096 2012-12-16 01:42 opt
drwxr-xr-x 2 root root 4096 2012-09-03 01:08 proc
drwx------ 2 root root 4096 2012-12-16 01:31 root
drwxr-xr-x 7 root root 4096 2012-12-17 03:37 run
drwxr-xr-x 2 root root 4096 2012-12-16 02:16 sbin
drwxr-xr-x 2 root root 4096 2012-06-20 17:23 selinux
drwxr-xr-x 2 root root 4096 2012-12-16 01:31 srv
drwxr-xr-x 2 root root 4096 2012-11-27 17:13 sys
drwxrwxrwt 2 root root 4096 2012-09-03 01:08 tmp
drwxr-xr-x 10 root root 4096 2012-12-16 01:31 usr
drwxr-xr-x 11 root root 4096 2012-12-16 01:31 var
4. 解除掛載
a. 解除掛載 目錄
# umount /mnt/sdcard1
# umount /mnt/sdcard2
使用 df -h 來觀察是否已解除掛載
b. 解除 loop 連接
# losetup -d /dev/loop2
# losetup -d /dev/loop1
# losetup -d /dev/loop0
使用 losetup -a 來觀察是否已解除連接
** 將 2013-02-09-wheezy-raspbian.img 下載至 sdcard **
1. 首先將 SD card 放入讀卡機,並接上電腦,然後執行 dmesg 觀察最後面輸出之
SD card 的代號,例如:
[11237833.478264] sd 4:0:0:0: [sdb] 7673856 512-byte logical blocks: (3.92 GB/3.65 GiB)
[11237833.478885] sd 4:0:0:1: [sdc] Attached SCSI removable disk
[11237833.479635] sd 4:0:0:2: [sdd] Attached SCSI removable disk
[11237833.480265] sd 4:0:0:3: [sde] Attached SCSI removable disk
[11237833.481313] sd 4:0:0:0: [sdb] Write Protect is off
[11237833.481317] sd 4:0:0:0: [sdb] Mode Sense: 03 00 00 00
[11237833.482161] sd 4:0:0:0: [sdb] No Caching mode page present
[11237833.482165] sd 4:0:0:0: [sdb] Assuming drive cache: write through
[11237833.486012] sd 4:0:0:0: [sdb] No Caching mode page present
[11237833.486017] sd 4:0:0:0: [sdb] Assuming drive cache: write through
[11237833.488435] sdb: sdb1 sdb2
[11237833.491524] sd 4:0:0:0: [sdb] No Caching mode page present
[11237833.491529] sd 4:0:0:0: [sdb] Assuming drive cache: write through
[11237833.491533] sd 4:0:0:0: [sdb] Attached SCSI removable disk
從上面訊息我們可以得知 SD card 是 /dev/sdb 這個裝置,其容量為 3.92 GB = 4 GB
2. 將 2013-02-09-wheezy-raspbian.img 植入 SD card
請先切換至 root 權限,再執行:
# dd if=2013-02-09-wheezy-raspbian.img of=/dev/sdb bs=1024k
經過 N 分鐘後會完成植入流程,N 自 5 ~ 8 不等,看記憶卡的速度。執行完畢後之輸出如下:
1850+0 records in
1850+0 records out
1939865600 bytes (1.9 GB) copied, 656.276 s, 3.0 MB/s
3. 掛載實體 SD card
# mount /dev/sdb1 /mnt/sdcard1
# mount /dev/sdb2 /mnt/sdcard2
使用 df -h 來觀察其輸出,如下所示:
檔案系統 Size Used Avail Use% 掛載點
/dev/sdb1 56M 17M 40M 30% /mnt/sdcard1
/dev/sdb2 1.8G 1.4G 315M 82% /mnt/sdcard2
4. 觀察 SD card
cd /mnt/sdcard1 目錄觀察
cd /mnt/sdcard2 目錄觀察
5. 修改開機參數
cd /mnt/sdcard1
vi config.txt
將
#hdmi_safe=1 改為
hdmi_safe=1
接著我們就可以拿 SD card 至 raspberry pi 板子上開機。
訂閱:
文章 (Atom)
