星期三, 9月 24, 2014

SQLite quickstart: 使用指令行

安裝:sudo apt-get install sqlite3

執行
sqlite3 或 sqlite3 <file_name>
EOF (通常是 Ctrl-D) 離開
sqlite 的資料庫是存在檔案,如果執行時未指定 <file_name>,離開時暫時的資料庫會移除

輸入 SQL 指令
每個 SQL 指令以「;」結束

範例
$ sqlite3 ex1
SQLite version 3.8.5 2014-05-29 12:36:14
Enter ".help" for usage hints.
sqlite> create table tbl1(one varchar(10), two smallint);
sqlite> insert into tbl1 values('hello!',10);
sqlite> insert into tbl1 values('goodbye', 20);
sqlite> select * from tbl1;
hello!|10
goodbye|20
sqlite>

sqlite3 特殊指令 (dot commands)
.help 列出所有 dot 指令

SQL 指令 readfile()、writefile() (非內建)可存取檔案

轉換 SQLite 資料庫
sqlite3 ex1 .dump 可輸出 SQL 成文字檔,或轉換成其它 SQL 資料庫。

參考來源
  1. Command Line Shell For SQLite

VLAN Tag

virtual local area network, virtual LAN, VLAN:將一個 Layer 2 網路分成多個獨立的廣播域。

VLAN Tag:0x8100 + 3-bit PCP + 1-bit DEI + 12-bit VID
  • PCP (Priority Code Point):優先權
  • DEI (Drop Eligible Indicator):可獨立使用或和 PCP 搭用,表示 congestion 時可以 drop。
    • 先前是CFI (Canonical Format Indicator, 制式格式指示):一般 CFI = 0,使用「制式格式」(Canonical format),也就是 MAC 位址是是最高位元 (most significant bit) 先傳送。CFI = 1 則包含有 RIF 欄位 (Routing Information Field) ,其中 NCFI 旗標值決定 MAC 位址傳送是否使用「制式格式」,非制式格式是最低位元 (least significant bit) 先傳送。
  • VID (虛擬網路辨識碼)
    • = 0:Priority-tagged 封包,只有 priority 資訊,不作為 VLAN ID 使用。
    • = 1:bridge 內部使用,當 ingress frame 沒有 VID 時的預設 Port VID。
    • = 4095:預留,可以用在網管或資料庫過濾時代表任何 VID。
VLAN成員指定方式
  • Port-based – 依照機器所接到的 switch port 決定它屬於哪個VLAN,在這個 port 的所有機器只能在同一個 VLAN 下。
  • MAC-based – 依照機器的 MAC address 決定它屬於哪個VLAN。switch 會有個 MAC address 對應到VLAN的表。
  • Protocol-based – 依照封包的協定決定屬於哪個 VLAN。
  • Authentication based – 經由 802.1x 認證決定屬於哪個 VLAN。
參考來源
  1. http://en.wikipedia.org/wiki/Virtual_LAN
  2. 802.1Q

星期四, 9月 18, 2014

CONFIG_REGULATOR_FIXED_VOLTAGE

AM335x 或 BBB 的 kernel 有用到,不然會有下列錯誤

[    0.984058] omap_hsmmc 48060000.mmc: unable to get vmmc regulator -517
[    0.991028] platform 48060000.mmc: Driver omap_hsmmc requests probe deferral
[    0.998717] omap_hsmmc 481d8000.mmc: unable to get vmmc regulator -517
[    1.005611] platform 481d8000.mmc: Driver omap_hsmmc requests probe deferral
[    1.019195] omap_rtc 44e3e000.rtc: setting system clock to 2000-01-01 00:00:0
0 UTC (946684800)                                                              
[    1.031031] Waiting for root device /dev/mmcblk0p2...                       
[    1.037015] omap_hsmmc 48060000.mmc: unable to get vmmc regulator -517
[    1.044030] platform 48060000.mmc: Driver omap_hsmmc requests probe deferral
[    1.051768] omap_hsmmc 481d8000.mmc: unable to get vmmc regulator -517
[    1.058698] platform 481d8000.mmc: Driver omap_hsmmc requests probe deferral

OpenWrt Network

設定網路界面、routing、Ethernet switch VLAN。

設定檔是 /etc/config/network,執行 /etc/init.d/network reload 重新載入。對特定邏輯網路界面可用 ifup <邏輯網路界面>,如包含有有 Wi-Fi 界面,需多執行 wifi up。

interface 區段:定義邏輯網路界面 (例如 lan、wan 等,可自取名稱),是網路設定的核心,包括 IP 位址、實體界面 (ifname)、alias、route、以及防火牆規則。
  • 設定 IP 位址透過 option proto 及其它相關 option
    • option proto dhcp
    • option proto static
      option ipaddr 192.168.1.1
      option netmask 255.255.0.0
  • option type bridge 將邏輯網路界面加上 bridge 層,可有多個實體界面,例如 option ifname 'eth0 eth1'
  • VLAN 界面是 ifname 加 .<vid>
  • 如果要新增額外的 IP 位址,有兩種方式。舊方式是新增 alisa 區段,透過 option interface 連到邏輯網路界面。新方式是新增另一個 interface 區段,透過相同的 option ifname 並在一起。如要跟 type bridge 的邏輯網路界面併,option ifname 的值前面要加 br-。
  • 有些協定需要搭配 /etc/config/firewall 將兩個邏輯網路界面串在一起,例如 PPtP-over-PPPoE、IPv6-in-IPv4 tunnel。

route/route5 區段:設定 static route,透過 option interface 連到邏輯網路界面。

rule/rule6 區段:透過 option in 連到邏輯網路界面。

switch 區段:設定 Ethernet switch 的 VLAN,跟上述區段比較沒有直接關係。新的 swconfig 框架每個 VLAN 分出 switch_vlan 區段來設定,透過 option device 連到 switch 區段。


switch_port 區段:設定 port VLAN

取得實體網路界面名稱
source /lib/functions/network.sh

if network_get_ipaddr addr "wan"; then
    echo "IP is $addr"
fi

參考來源:
  1. http://wiki.openwrt.org/doc/uci/network
  2. http://wiki.openwrt.org/doc/uci/network/switch
延伸閱讀
  • netifd
  • swconfig
  • /proc/switch

VRRP

VRRP (Virtual Router Redundancy Protocol) 「虛擬路由器備援協定」用來備援路由器,當使用的路由器出問題,可自動切換到備份的路由器,避免單點故障造成網路不通。這些路由器成為一個 Virtual Router 群組,都有各自的 IP 位址,但有一個共用的 Virtual IP 位址,由實際提供服務的路由器使用。除了 Router,也可以用來備援各種 Server。

分成 master 跟 backup 兩種角色,只有 master 週期送 VRRP 封包作為 heartbeat。如果有兩個以上 master,則看 VRRP 的 priority 決定。當 backup 在三倍的週期沒收到 heartbeat,就會變為 master,在網路界面加上 Virtual IP 並送 GARP 通知大家。當變為 backup 時,則移除網路界面的 Virtual IP。

VRRP 的 IP port 是 112,封包是送給 multicast IP 224.0.0.18,MAC 位址是 00-00-5E-00-01-XX 送給 01-00-5E-00-00-12,其中 XX 是 Virtual Router IDentifier (VRID),每個 Virtual Router 群組有一個值。

VRRP priority 範圍是 1~255,數字大的為高優先權,master 預設為 255,backup 預設為 100。如果 master 想要下線,可先將 priority 設為較小的值,加速其它 backup 不用等候 hold time 變為 master,來減小空窗期。

參考:
  1. wikipedia: Virtual Router Redundancy Protocol
  2. VRRP source code
  3. CARP 是為了避免 HSRP (Hot Standby Router Protocol) 或 VRRP 的專利而發展,使用跟 VRRP 一樣的 IP port,所以兩者不能共存 。但似乎 CARP 除了 failover redundancy 外,還可以作 load balance。
  4. 有很種方式可以達到類似 VRRP 的功能,基本上都是 Virtual IP 的概念,例如使用 GARP 取代 VRRP 封包。
  5. 基本原理 http://tavi.debian.org.tw/index.php?page=VRRP (請見基本原理部份)
最後更新 20200721

Asterisk Realtime Architecture

Asterisk Realtime Architecture (ARA) 讓 Asterisk 使用各種外部資料庫 (稱為 engine) 來作設定,包括靜態設定跟 realtime 設定。靜態設定跟使用相關的 *.conf 設定檔一樣,只是設定值從資料庫讀取。realtime 設定是在需要時才去查看。(資料庫更新?)

res_config_*.so
目前支援的外部資料庫有 odbc、sqlite、sqlite3、pgsql、curl、ldap、mysql (),對應的模組是 res_config_*.so。(跟 res_*.so 有關係嗎?)

ARA 的設定檔是 extconfig.conf,extconfig.conf 只有一個區塊,叫做 [settings]。靜態設定的格式是
file.conf => driver,database[,table[,priority]]
對應特定 *.conf 設定檔到指定的資料庫 driver, database and table (or uses the name of the file as the table if not specified)

設定檔 asterisk.conf、extconfig.conf、logger.conf 不能使用 ARA。設定檔 manager.conf、cdr.conf、rtp.conf 則必須在 modules.conf preload 資料庫模組才能使用。


Realtime 設定對應特定 family 設定到指定資料庫 driver, database and table (or uses the name of the family if the table is not specified

已知的 family 有
sippeers, sipregs, sipusers, extensions, ...

ast_config_engine_register()
ast_config_engine_deregister()
  • 註冊資料庫引擎,除了名稱外,提供下列功能
    • load_func()/unload_func():載入/釋出設定
    • realtime_func()
    • realtime_multi_func()
    • update_func()
    • update2_func()
    • store_func()
    • destroy_func()
    • require_func()

ast_check_realtime(family):檢查 family 有沒有對應的 realtime database
ast_load_realtime()/ast_load_realtime_
ast_update_realtime():執行資料庫引擎的 update_func()。

參考來源
  1. https://wiki.asterisk.org/wiki/display/AST/Realtime+Database+Configuration
  2. asterisk 11: main/config.c

AM335x Common Platform Time Sync

AM335x 有兩個 GMII 埠 (ZCE 包裝只有一個),內建有 3 埠 Ethernet Switch 跟 SoC 其它部份連接,驅動程式使用 cpsw (CONFIG_CPSW)。並且支援 PTP,需要開啟 CONFIG_TI_CPTS (TI Common Platform Time Sync Support),會連帶開啟 CONFIG_PTP_1588_CLOCK 及 CONFIG_PPS。

參考

  1. AM335x Ethernet
  2. https://www.creative-technologies.de/implementation-and-performance-analysis-of-precision-time-protocol-on-linux-based-system-on-chip-platform/ 
  3. https://github.com/jeffegg/beaglebone/blob/master/Documentation/ptp/ptp.txt
  4. https://training.ti.com/ptp-procsdk-linux-ptp-on-linux
  5. https://issuu.com/ajintom/docs/gps_ptp_timesync_report

AM335x cryptographic hardware accelerators

AM335x 有 AES、SHA、MD5 密碼運算及 RNG 亂數的硬體加速,相關的 Linux 設定:
  • CONFIG_CRYPTO_DEV_OMAP_SHAM:MD5/SHA1/SHA2
  • CONFIG_CRYPTO_DEV_OMAP_AES
  • CONFIG_HW_RANDOM_OMAP:提供 /dev/hwrng
OpenSSL 需要指定 -engine cryptodev 來透過 OCF kernel 模組 (cryptosoft.ko, cryptodev.ko, ocf.ko) 使用這些硬體加速。

參考來源
  1. http://processors.wiki.ti.com/index.php/Cryptography_Users_Guide
延伸閱讀

OpenWrt on BeagleBone Black

Update: Now official OpenWrt support BeagleBone Black.

Follow steps shown on https://github.com/nc543/openwrt-bbb/wiki

To enable GPIO Support
make kernel_menuconfig
select Device Drivers -> GPIO Support -> /sys/class/gpio/... (sysfs interface)
make

Just replace the file /boot/zImage with bin/omap/*zImage, and reference http://wiki.openwrt.org/doc/hardware/port.gpio to setting GPIO.

References:
  1. http://wiki.openwrt.org/toh/beaglebone/black?s
  2. https://bpaste.net/show/322887

uEnv.txt

uEnv.txt 是 u-boot 環境變數 bootenv 預設的額外環境變數設定檔。u-boot 環境變數除了可以透過指令 setenv 設定外,也可以用指令 env import 載入。

大致流程如下:
開機預設執行 bootcmd → 執行 mmcboot → 執行 loadbootenv → 執行 importbootenv 載入環境變數 → 執行 uenvcmd (如果有的話)。

開機執行的 bootcmd 會去執行 mmcboot:
bootcmd=run findfdt; run mmcboot;setenv mmcdev 1; setenv bootpart 1:2; run mmcboot;run nandboot;

mmcboot 執行 loadbootenv 成功的話,執行 importbootenv 載入環境變數。如果 uEnv.txt 有 uenvcmd,就執行它。

mmcboot=mmc dev ${mmcdev};
if mmc rescan; then
    echo SD/MMC found on device ${mmcdev};
    if run loadbootenv; then
        echo Loaded environment from ${bootenv};
        run importbootenv;
    fi;
    if test -n $uenvcmd; then
        echo Running uenvcmd ...;
        run uenvcmd;
    fi;
    if run loadimage; then
        run mmcloados;
    fi;
fi;


loadbootenv 將 bootenv (也就是 uEnv.txt) 載入到記憶體 loadaddr 的位置:
loadbootenv=load mmc ${mmcdev} ${loadaddr} ${bootenv}

importbootenv 將記憶體中的環境變數用 env import 載入:
importbootenv=echo Importing environment from mmc ...; env import -t $loadaddr $filesize

註解:#

參考來源:
  • BeagleBone Black u-boot
  • u-boot source code: lib/hashtable.c himport_r()
延伸閱讀:

Sony 液晶電視 KDL-42W700B

規格整理自原廠產品網站、參考指南及 i-Manual
視訊面板解析度Full HD 1920x1080
背光技術動態側光式 LED 背光 / 全域背光控制技術
影像處理器X-Reality PRO - 超極真影像晶片
極瞬流線影像科技Motionflow XR 240
智慧噪訊抑制技術(第四台)
最佳可視範圍178 度 (上下左右)
數位電視訊號相容480/60i, 480/60p, 720/60p, 1080/60i, 1080/24p (HDMI), 1080/30p (HDMI), 720/30p (HDMI), 720/24p (HDMI), 1080/60p (HDMI/Component)
24p 真實電影還原技術
音效揚聲器8 瓦 + 8 瓦,低音反射箱型揚聲器
Clear Audio+ 真實音訊處理技術
廣域 S-FORCE 環繞音場
音質設定模式標準 / 壓縮音頻
環繞音效模式電影院 / 音樂/ 體育/ 遊戲
輸入天線HD 數位 (+類比?)
Cable類比
HDMI4 組,MHL 使用 HDMI 1,ARC 使用 HDMI 2 或其它 HDMI + 數位聲音輸出,DVI 使用 HDMI 3 + Audio in
ASUS VivoMini UN62
Chromecast
色差1 組
AV 端子2 組 (一組與色差端子共用)
USB 2.02 組
網路連接埠Fast Ethernet
Wi-FiIEEE 802.11a/b/g/n,WPA/WPA2, Wi-Fi Direct, WMM, WPS [Wi-Fi CERTIFIED]
螢幕鏡射 (Miracast, WiDi, OpenWFD):透過 Wi-Fi Direct 的無線 HDMI 播放影音,Android 4.2 Jelly Bean 開始支援
輸出光纖數位聲音輸出/耳機聲音輸出1 組 / 1 組
娛樂功能播放支援的檔案格式
Sony 網路娛樂平台按遙控器的「SEN」按鈕,可選取各種線上服務與應用程式,有電影、電視節目、音樂、遊戲或社群互動等內容。
Social Viewing 觀賞電視時透過社群網站聊天
網路瀏覽器
Related Search相關搜尋
影音操控多媒體導覽選單
BRAVIA Sync相容裝置透過 HDMI 或 MHL 連結,用遙控器同步操控
智慧場景鮮明 / 標準 / 自訂 / 電影院 1 / 電影院 2 / 遊戲-標準 / 遊戲-原始設定 / 圖像 / 體育 / 動畫 / 照片-鮮明 / 照片-標準 / 照片-原始設定 / 照片-自訂
雙重畫面
DLNA透過網路連接 DLNA 伺服器,播放影音。
Renderer透過網路播放其它裝置的影音。
TV SideView 智慧型手機、平板電腦透過網路,或 VAIO® 筆電透過紅外線,遙控電視及其它週邊,有節目表、社群討論功能。(前身是 media remote)
Photo Share透過網路傳送相片顯示。
節能環境色溫感應器
省電模式
外觀不含底座尺吋約 958 x 563 x 64mm (寬 x 高 x 深 mm)
不含底座重量約 10.5kg
含底座尺吋約 958 x 600 x 170mm (寬 x 高 x 深 mm)
含底座重量約 11.7kg
相容配件Skype 視訊CMU-BR200
觸控板遙控器RMF-CD004,One-flick 智慧娛樂體驗,透過 Xperia 手機 NFC 執行螢幕觸控鏡射 (One-touch mirroring)
無線重低音揚聲器SWF-BR100,附無線發射器接 AUDIO OUT 及 USB
BRAVIA Smart Stick 雲端媒體播放器包含電視棒及遙控器。電視棒接 HDMI (及 USB 供電),可下載 Google TV Apps 及遙控 Sony 網路娛樂平台。遙控器有多點觸控面板 (可如滑鼠點選操作),中文手寫輸入,虛擬鍵盤能切換多種中文輸入法,QWERTY 打字鍵盤能輕鬆輸入網址。NT$4990,比起 Chromecast、apple TV 不便宜。
ChromecastWi-Fi → Chromecast → HDMI。Chromecast 內建 HTML5 網頁瀏覽器播放影音,透過手機或電腦控制。也可播放電腦 chrome 分頁。
  • 隨附桌架可直接進行壁掛
  • 經濟部節能標章認證
  • 2014/05/30 $24900-1245 購入
  • 系統軟體 Version PKG2.134GAA (從 [Wi-Fi CERTIFIED] 看到作業系統是 Linux 2.6.35.14)
  • 開機有點慢,要過好久才能選台 (數位)。
  • 待機耗電比 2012/10/14 買的 Sharp LC-32LE456T 還高

參考來源:
  1. http://allaboutchromecast.com/chromecast-vs-miracast-everything-you-need-know-about-wireless-display-and-screen-mirroring/ ()

星期六, 9月 06, 2014

ARP and Gratuitous ARP

Ethernet 是靠 MAC 位址傳送封包,真正傳送 IP 封包前需要先知道對方 MAC 位址。ARP (Address Resolution Protocol) 就是用來詢問對方 MAC 位址的協定,包括 ARP request 跟 ARP reply。ARP request 廣播詢問對方 (用對方的 IP 位址) 的 MAC 位址。

ARP 的 Ethernet 封包使用 EtherType 0x0806,ARP 格式如下:

HW TypeProtocol TypeHALPALOpcodeSender HW AddressSender Protocol AddressTarget HW AddressTarget Protocol Address
22112HALPAL HALPAL
Hardware Type:1 = Ethernet。
Protocol Type:0x0800 = IPv4
HAL (Hardware Address Length):MAC Address 是 6。
PAL (Protocol Address Length):IPv4 是 4。
Opcode:1 為 ARP request,2 為 ARP response。
欄位Type位址長度OpcodeSender 位址Target 位址
Hardware1 = Ethernet61 = request
2 = response
MAC 位址
MAC 位址
Potocol0x0800 = IPv44IP 位址
IP 位址
長度212HAL/PALHAL/PAL
ARP request:(這裡 Target 就是對方)
L2: Sender MAC -> Broadcast (由於不曉得在哪裡,所以必須用廣播)
L3: Sender MAC & IP, Target IP,Target MAC 還不知道填 0

因為用廣播傳送,所以 Ethernet 上的主機都會收到,只有 IP 位址符合的對方會填上 Target MAC 回 ARP reply。其實 ARP request 有一個附帶作用是告訴對方跟大家 Sender 的 MAC 位址,對方就可以用 unicast 送 ARP reply。(broadcast 回不好嗎?)

ARP reply (Sender 是對方):
L2: Sender MAC -> Target MAC
L3: Sender MAC & IP, Target MAC & IP

Gratuitous 可譯作「無理由的、沒來由的」,Gratuitous ARP 的 Target IP 跟 Sender IP 一樣是自己的 IP,詢問自己 IP 的 MAC 位址是不是很無理?其實它是有一些作用的,可以是 request 或 reply,用 L2 broadcast 送給大家,正常情形不會有 reply。

作用:
  • 告訴 Ethernet 上所有機器我的 IP 及對應的 MAC Address,更新所有機器的 ARP 表格,Ethernet switch 也可以知道這個 MAC Address 在哪個 port
  • 偵測 IP 衝突
  • 當某個服務換介面時 (IP 沒變), 快速切換 MAC Address
  • 如果每當 Link up 時就送 GARP,如果常常有 GARP 出現,可以表示接線品質不佳
  • 負載平衡,同一 IP,但告訴不同機器不同 MAC Address
  • arp_accept

unicast ARP request:確認已知 MAC 位址是否還在。

  • RFC 1122 §2.3.2.1 講到 4 種清除過期 ARP cache 的機制,其中一個是 periodically 送 unicast ARP Request 詢問,如果連續 N 次沒收到回應則清除。
  • 被 ping 完過數秒會 unicast ARP request 確認。

參考

  1. wireshark: Gratuitous ARP
  2. wikipedia: ARP announcements

Linux LED class

naming
  • "devicename:colour:function"
user space
在 /sys/class/leds/<name>/
  • max_brightness
  • brightness: 0-max_brightness
  • trigger: 選擇性設定,設定特殊的顯示,可分成兩類
    • simple: 沒有設定
    • complex:有參數設定,例如 timer 有 delay_on、delay_off 參數
trigger 有 nand-disk mmc0 mmc1 timer oneshot heartbeat backlight gpio cpu0 default-on transient 等

hardware accelerated blink
  • LED 驅動程式有 blink_set 函數
  • led_blink_set()
  • led_brightness_set()
參考來源:
  1. Linux kernel source: Documentation/leds/leds-class.txt
延伸閱讀
  • 鍵盤 LED 由 input 子系統控制,跟 LED class 無關。
相關文章

BeagleBone Black

主要元件
  • AM3358 或 AM3359 @1GHz SoC (內建 RTC),512MB DDR3
  • 4GB 8-bit eMMC (接 MMC1)
    • Micron MTFC4GLDEA 0M WTMTFC4GACAJCN-1M WT 或 Kingston KE4CN2H5A-A58
    • eMMC (embedded MultiMediaCard) 是 NAND Flash 和 controller 包裝在一起的晶片,可焊在板子上 (cf. 直接用 NAND Flash, SSD, SD)
  • TPS65217C 電源管理及轉換 (接 I2C0,CONFIG_MFD_TPS65217 及 CONFIG_REGULATOR_TPS65217)、TL5209 3.3V 電源轉換
  • I2C 4KB eeprom 24LC32A (接 I2C0,很小的 5-pin 元件,板子接點 TP4 接地才能寫入)
外部界面
  • LED
    • PWR/D1:恆亮
    • USR0/D2 (heartbeat)
    • USR1/D3 (µSD access)
    • USR2/D4 (CPU activity)
    • USR3/D5 (eMMC access)
    控制 LED 方式
  • 按鍵
    • RESET (S1):(用原本的開機模式) 重新開機
    • BOOT (S2):選擇 µSD 卡開機
      • 沒按時:eMMC→µSD→UART0→USB0 (SYSBOOT[4:0] = 11100b)
      • 開機按著時:SPI0→µSD→USB0→UART0 (SYSBOOT[4:0] = 11000b)
    • POWER (S3):啟動。按超過 8 秒重新啟動。
  • 5V 電源接頭 (BeagleBone Green 無)
  • miniUSB client 提供電源及通訊 (USB0,BeagleBone Green 改為 µUSB)。原廠軟體可顯示為隨身碟,並提供 Ethernet 及 UART 界面。
  • USB host (USB1,有輸出電源控制,過電流/溫度偵測)
  • µSD (MMC0)
  • RJ45 Fast Ethernet:PHY SMSC LAN8710A (MII1 & MDIO,中斷未接,CONFIG_SMSC_PHY)
    • AM335x 內建有 3 埠 Ethernet Switch,連接兩個 GMII 埠及處理器,驅動程式使用 cpsw (CONFIG_CPSW,device tree 是 ti,cpsw)
    • MAC address: AM335x efuse 是 TI 原廠寫入的,使用者只能讀取,不能更改。efuse 包括 Device ID、Version、唯一的 MAC Address 等。
    • MII0 有些 pin 沒拉出,所以無法外接其它 PHY
  • µHDMI (BeagleBone Green 無,改為 Grove 界面 I2C 及 UART)
    • HDMI Framer TDA19988 (LCD_DATA, McASP0, I2C0, 可關掉的 24.576 MHz 振盪器)
  • 2x 46 pin headers (P8, P9)
  • UART0 console 接頭 (J1: 1=GND, 4=RX, 5=TX)
  • JTAG 接腳 (P2)
  • 電池接點 (TP5, TP6, TP7, TP8)
開機
  • miniUSB 接到電腦,POWER 燈亮開機,可顯示為隨身碟,並提供 Ethernet 及 UART 界面
  • 開機順序
    • eMMC→µSD→UART0→USB0 (SYSBOOT[4:0] = 11100b)
    • 開機按著 BOOT 時:SPI0→µSD→USB0→UART0 (SYSBOOT[4:0] = 11000b)
  • 按 RESET 重新開機,但不會改變開機方式
  • AM335x booting
韌體
  • 最新韌體
  • 製作 SD Card
  • 更新 eMMC:下載 BBB-eMMC-flasher-xxx.img.xz,解壓縮,dd 到 SD card。然後用 SD 開機,等約 45 分鐘,直到全部 LED 都一直亮著 [參考]

作業系統及開發環境 [參考]
pin mux
Beagle board
  • BeagleBoard:OMAP3530 Cortex-A8 720MHz
  • BeagleBoard-xM:AM37x Cortex-A8 1GHz
  • BeagleBone:AM335x Cortex-A8 720MHz $89
ItemNetworkeMMCUSBOther$
BeagleBone BlackFE4GB1µHDMI [照片]49
BlueSteel-BasicFE01no55
BeagleBone GreenFEyes1Grove39
BeagleBone EnhancedGE?41GB DDR3, Barometer, Accelerometer, Gyro, Temperature69
PocketBeagleFE0OTG??
BeagleBone WirelessWi-Fi + BTyes1HDMI?
BeagleBone Green Wireless Wi-Fi + BTyes4Grove44
BeagleBone BlueWi-Fi + BT 4.1 BLE4GB1Battery, Motor, Sensor?

相關網站

  1. Beaglebone Black System Reference Manual
跟 BBB 不同處
  • 沒有 HDMI framer 及界面,仍可透過 HDMI cape 提供 HDMI 界面
  • 新增 Grove 界面 (I2C 及 UART)
  • 沒有 5V DC Jack socket

FAT

FAT (File Allocation Table) 檔案系統一般是 FAT12、FAT16、FAT32 的通稱,原始設計是在 1977 給軟碟使用,也用在硬碟。隨著容量擴充,擴展出 FAT12、FAT16、FAT32,目前仍用於常用於隨身碟、記憶卡、數位相機、EFI 系統分割。

FAT 最大的缺點是 fragment造成讀寫速度變慢。

VFAT:FAT 支援長檔名的擴充,跟 FAT 相容,但會減少根目錄檔案數目。

在 Linux 檔案系統,msdos、vfat、及 umsdos 都支援 FAT12/16/32,msdos 只支援 8.3 的檔名,vfat 支援長檔名,umsdos 更加支援 Unix 檔案權限。

FAT12/16/32 檔名的編碼不是用 unicode,需要 native language 的 codepage 轉換,如 iso8859-1、cp437。

Linux 需載入 fat.ko、vfat.ko、nls_cp437.ko、及 nls_iso8859-1.ko,然後 (例如 SD 卡) 執行 mount /dev/mmcblk0p1 mnt/ 掛載。

exFAT:其實跟 FAT 的關係不大,沒有 NTFS 的 overhead,單檔可超過 4 GiB。
  • http://jamyy.dyndns.org/blog/2014/02/6011.html

最大容量最大檔案檔案數量叢集 (cluster) -- Allocation unit size
叢集大小叢集數
最小最大最少最大
FAT12
32MB4077



FAT16
2GB65517
64KB
65525
FAT3232GB、2TB4GiB - 1268435437512B64KB65,527 (*512B = 32MB = 最小容量)4177918
extFAT16EB16EB
512B32MB

NTFS


512B64KB


FAT32
opkg install dosfstools #工具程式,包含 mkfs.vfat 和 fsck.fat
opkg install kmod-fs-vfat #檔案系統不支援時安裝驅動程式
opkg update; opkg list “kmod-nls*” #列出可安裝的 NLS 檔,用來處理檔名編碼

exFAT
opkg install kmod-fs-exfat #工具程式
opkg install libblkid #檔案系統不支援時安裝驅動程式

參考來源:
  1. wikipedia: File Allocation Table
  2. wikipedia: FAT filesystem and Linux
  3. microsoft: Choosing Between File Systems
  4. microsoft: Character Sets Used in File Names
  5. iT邦幫忙─如何在XP使用超過4GB的隨身碟?
延伸閱讀

星期四, 9月 04, 2014

Ether Type

Ether Type
  • 0x0000 ~ 0x05DC (1500):IEEE 802.3 length
  • 0x0800 IPv4
  • 0x0806 ARP
  • 0x8035 RARP
  • 0x0842 Wake-on-LAN
  • 0x8100 VLAN
  • 0x86DD IPv6
  • 0x8809 EFM, Ethernet in the First Mile
  • 0x880B PPP, Point-to-Point Protocol
  • 0x8863 PPPoE, PPP Over Ethernet (Discovery Stage)
  • 0x8864 PPPoE, PPP Over Ethernet (PPP Session Stage)
  • 0x88A2 AoE, ATA over Ethernet:不用網路層的 storage area network (SAN),直接透過 Ethernet 存取 ATA 儲存設備
  • 0x88A8 Provider Bridging (IEEE 802.1ad)
  • 0x88B5 ~ 0x88B6 Local Experimental – 區域試驗用, 出處:IEEE Std 802a™-2003 (Amendment to IEEE Std 802®-2001)
  • 0x88B7 OUI Extended: 自訂 Layer 2 協定, 出處:IEEE Std 802a™-2003 (Amendment to IEEE Std 802®-2001)
  • 0x88BB LWAPP, Light Weight Access Point Protocol.
  • 0x88CC LLDP, Link Layer Discovery Protocol.
  • 0x88D8 Circuit Emulation Services over Ethernet (MEF-8)
  • 0x88E3 Media Redundancy Protocol (IEC62439-2)
  • 0x88E5 MAC security (IEEE 802.1AE)
  • 0x88F7 Precision Time Protocol (PTP) over Ethernet (IEEE 1588)
  • 0x8902 IEEE 802.1ag Connectivity Fault Management (CFM) Protocol / ITU-T Recommendation Y.1731 (OAM)
  • 0x892F High-availability Seamless Redundancy (HSR)
  • 0x9000 Loopback (Configuration Test Protocol)
  • 0x9002 Bridge Communications TCP/IP Systems Management
  • 0x9100 Q-in-Q
  • 0xFFFF reserved. 
參考來源
  1. http://en.wikipedia.org/wiki/Ethertype
延伸閱讀