2014年9月18日 星期四

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/ ()

2014年9月5日 星期五

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 無關。
相關文章

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的隨身碟?
延伸閱讀

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

2014年9月4日 星期四

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
延伸閱讀

SIP header Via

所有 SIP 訊息 都要有 Via,縮寫 v。一開始的 UAC 和後續途經的每個 proxy 都會疊加一個 Via 放傳送的位址,依序作為回應的路徑。 格式 sent-protocol sent-by [ ;branch= branch ][ ; 參數 ...] s...