Linkstation上U-BOOT

花了半天的時間(不含survey的時間!)成功將linkstation刷成u-boot及可以急救的系統,記錄一下,或許他日或他人會用到。

  • Flash Information
    • Flash分成四個部分,參考wiki的詳細說明
      比較重要的是以下兩個section:

      • FFC0-0000, 3MB, kernel image,及開機的一些設定(initrds);支援急救的firmimg.bin則是要燒這裏。
      • FFF0-0000 448K, Boot code;U-boot就是要取代原廠的bootcode,所以就是燒在這裏
    • Flash的information可以用’cat /proc/mtd’看到address & size
    • 有些版本的kernel可能沒有flash driver,或者flash driver設定不對;在linkstation wiki  Forum中有一篇提到在2.4.20中才能用dd if=u-boot-hg.flash.bin of=/dev/mtd1 bs=1k的方法,其他版本有風險。
  • Booting
    • (推測)原廠的開機流程,load flash中(FFC0-0000)的kernel,然後將root設成/dev/hda1;以往的改機是將debian裝在hda3,然後將hda1和hda3對調,所以事實上kernel還是使用flash中的kernel。
    • U-Boot的開機是可以設定的;預設的開機有
      • Flash開機 flboot:boot FFC0-0000,root設成/dev/hda1。
      • 緊急模式 emboot:開flash中的kernel,root設在RAM disk中;要注意原廠的firmimg.bin不能進入EM,因為一來沒有telnet/tftp,另外有密碼的問題會無法登入。
      • 硬碟開機 hdboot:將kernel image load到80-0000,然後boot 80-0000,視kernel所在而做設定。
    • 預設的variables: http://buffalo.nas-central.org/wiki/U-boot_Default_Environmental_Variables_and_Values
    • 不修改firmware更改kernel的方法:開機後再用loader 載入新的kernel;在kernel 2.6中有使用這種做法,很方便切換不同版本的kernel;不同版本的kernel有不同版本的loader,不可混用 。
    • Linux kernel 2.6的kernel有使用一個dtb檔用來記錄硬體設定,在U-Boot中會load到7f-0000。
  • Firmimg.bin
    • 包含了kernel和initrds;有很多個版本,除了原廠版本(kernel是2.4.20或2.4.17)
      • linuxnotincluded支援U-boot的版本,kernel是2.4.33,支援telnet/tftp/fdisk,可以進EM: http://buffalo.nas-central.org/wiki/Uboot_firmimg.bin_ppc
      • linuxnotincluded不需要U-boot的版本,和U-boot版內容似乎一樣,以後的openlink可能使用這版本 : http://buffalo.nas-central.org/wiki/Telnet_and_FTP_enabled_ramdisks

由於不能肯定我的LS上的kernel版本flash driver有沒有問題,所以決定採用u-boot來刷u-boot及firmimg.bin,以降低風險。嘗試過自行build RAM load,但始終無法在netconsole看到東西,最後決定使用網路上已經build好的版本,先用RAM版玩一玩。
玩了好幾次,稍微了解u-boot的操作後,就決定了要怎麼做,也發現了一個小問題:我的硬碟中沒有原廠2.4.20 kernel的uImge(vmlinux.Uboot),網路上也找不到,如果刷了那個可以急救的firmimg.bin,kernel就會變成2.4.33。因為我的系統都是在2.4.20下運作的,為了確定2.4.33沒有問題,還是先試一下-這就是先試RAM版的好處。很幸運的,2.4.33的uImage找得到-應該是先有這個kernel才有這個firmimg.bin的。

使用到的檔案列表:

  1. Kernel image – kernel 2.4.33
    http://downloads.buffalo.nas-central.org/LSHG_PPC/Kernel/Kernels/Uboot/linuxnotincluded/linux-2.4.33.3-list.mg.2-v3/ 附檔名是UBoot的那個檔案。
  2. Firmimg.bin – linuxnotincluded的U-Boot版, kernel 2.4.33
    在http://buffalo.nas-central.org/wiki/Uboot_firmimg.bin_ppc 內文中有連結。
  3. Uloader.o 及u-boot-load-hg.sh
    http://buffalo.nas-central.org/index.php/U-boot_bootloader 中有,不過似乎只有支援kernel為2.4.17及2.4.20。
  4. U-boot ram build
    http://downloads.buffalo.nas-central.org/LSHG_PPC/Bootloader/Uboot/Precompiled/u-boot-hg.ram.bin
  5. u-boot flash build
    http://downloads.buffalo.nas-central.org/LSHG_PPC/Bootloader/Uboot/Precompiled/u-boot-lsppchg-flash-1.2.0-r2.bin

以下是我刷u-boot和firmimg.bin的過程,設定IP,使用nc,以及在hda3中取消swaphd.sh的過程就如很多教學中的作法一樣,就不再提了。

  1. 準備檔案
    下載符合系統的uloader.o,預設是從/dev/hda1開機,然後檔案放在hda3的share中,所以是在/mnt/share中;包含

    uloader.o
    u-boot-hg.ram.bin
    u-boot-load-hg.sh

    這個RAM版的upgrade預設是燒 partition 3的/share/u-boot/u-boot-hg.flash.bin,所以要將檔案放在/mnt/share/u-boot中。不過,我在測試的過程發生了找不到檔案的狀況,試著用ext2ls發現進/share就有問題,推測或許是/share中有中文檔名的關係,所以只好將u-boot搬到partition 1的/u-boot,更改u-boot的ubfile及ubpart後還是成功了,後來firmimg.bin也放在/u-boot。
    將(1.)找到的2.4.33 kernel image放在patition 1 & 3的/boot/vmlinux.UBoot,這是下載的u-boot-hg.ram.bin中的預設值。
  2. 測試
    或許是timing的問題,RAM版的netconsole反應有點遲鈍,很容易掉資料,有時候似乎要猜猜看時機直接輸入s 才會看到東西;小小的懷疑之前自己build的版本可能也是這樣。不過,只要抓到停下來看到提示的”=>”符號,就很正常了。
    試patition 1上的/boot/vmlinux.UBoot開機,root也設成/dev/hda1,正常。
    reboot,因為這個vmlinux.Uboot的kernel是2.4.33,而我用的uloader.o是2.4.20;所以要先reboot成flash中的kernel後,才能再load u-boot-hg.ram.bin。
    試patition 3上的/boot/vmlinux.UBoot開機,root也設成/dev/hda3,正常。這是工作的系統,花了很多時間測試。
    測完還是要先reboot回2.4.20的kernel才行-就是這樣才擔心有些東西在2.4.20跑得好好的不知道到了2.4.33後會不會有問題。
  3. 刷u-boot
    Linkstation wiki上說最好先試著寫128k,看看有沒有timeout的問題再刷flash,原本想試,因為時間有點晚了,也花了很久的時間,精神不太清楚了,心一橫就直接”run upgrade”了;這告訴我們,長時間的工作事實上品質是有問題的,也很容易下錯誤的決定。
    第一次run的結果是失敗,因為u-boot讀不到檔案,重來將u-boot-hg.ram.bin放在patition 1的/u-boot後,就成功了。
    這個版本的u-boot和那個RAM版的事實上是不一樣的,environment variables不一樣,似乎是用來boot foonas用的,而且netconsole的反應也較快,比較沒有掉資料的問題。
  4. 刷firmimg.bin
    (刷firmimg.bin的過程有點驚險,還好之前有看這些說明一下,反應得當,否則...)
    刷成功u-boot後,馬上接著嘗試firmimg.bin,參考刷u-boot的流程以及 http://buffalo.nas-central.org/index.php/U-boot_bootloader 上的範例,結果發生了timeout!
    還好提示符號(=>)還是有出現,再試一次,一樣失敗,再試著將erase及write分開,還是一樣timeout。
    冷靜下來,心想結果一樣就好了,過程可以不一樣,測試過每次都是0xffe0-0000不一樣,0xffc0-0000 ~ 0xffdf-fffff是成功的,算了一下firmimg.bin的大小是2,991,408合0x2DA530(果然和filesize一樣),剛好前2MB都成功,只要把剩下的0xDA530再寫進去就行了:

    =>protect off ffe00000 ffefffff
    =>erase ffe00000 ffefffff
    =>cp.b a00000 ffe00000 DA530

    再比較一下:

    =>cmp.b 800000 ffc00000 2DA530

    一模一樣~成功了~
    試了進入EM,竟然沒辦法連線192.168.11.150,仔細研究
    http://buffalo.nas-central.org/wiki/How_to_use_Uboot_and_2.4.33.3_firmimg.bin_%28ppc%29
    “sometimes it seems that DHCP works”,連到router,果然找到了。其實DHCP看似方便,但要有一些方法才能找到IP,比起來固定的IP不用猜不用找是比較方便的。
    到此,才真的算是成功了。其他的就是更改開機流程的參數,然後saveenv就行了。
  5. 後記
    本來想要將ipaddr及serverip改成192.168.1.x,後來想想,下次用到netconsole的時候不知是何年何月,到時候可能不記得到底設成什麼了,所以還是維持192.168.11.149/150。
    另外,要改變ippaddr要注意,一旦更改,連線馬上中斷,所以要下連續的command,像是

    =>setenv ipaddr 192.168.1.x;saveenv

    這樣才能成功改變IP。

Linkstation HG1T

服役四年的Linkstation HG250早就不敷使用;放了約150G的RAW檔和50G的JPEG檔,剩下沒有多少空間,不過因為有這些功能,還是得清一些空間來放照片:

  • flickr upload/download
    • 已經寫好的PHP script,可以上傳到flickr;隨著相機pixel的成長,檔案也跟著成長,每次upload(2g~4g)都花了10個小時左右,用NAS傳其實還不錯,不用一直開著PC等。
  • Rsync
    • 照片和一些重要的資料都用rsync備份到另一台NAS TS-209 pro。東西放在兩台機器上感覺比較放心。
  • Svn
    • 用來放一些自己寫的小程式,PHP/Javascript什麼的。

在裝svn的時候,不小心搜尋到Kuro-SATA,是一個讓Linkstation/Kuro-box可以裝上SATA硬碟的轉接卡。
然後,我買了5D2,兩千萬畫素,兩倍於5D的RAW檔-兩倍的吃硬碟空間速度。
去東京玩的時候,心想該不會BIC CAMERA有賣吧?竟然真的讓我在有樂町店找到了:日幣2480。
回台灣後,考慮了幾天,還是在PCHOME買了一台1T的SATA硬碟。
安裝過程參考http://www.mobile01.com/topicdetail.php?f=168&t=90488 的拆機過程,圖文解說得非常詳細。
裝上硬碟後,照wiki的方法
Update firmware上openlink,第一次會因為format硬碟太久失敗,等硬碟燈不閃了,再試一次,照理說會成功,不過我是第三次才成功。
把拆下來的原本250G硬碟裝到USB外接盒,插上linkstation的前USB,試著mount
>mount -t ext3 /dev/sda3 /mnt2/usbhda3
成功!
接下來就是把原本的debian複制到partition 3,然後用rsync把資料copy到新的硬碟,沒想到200G的資料花了快兩天整-速度約1.4MB/sec。不知道是linkstation的USB效能不彰還是CPU太弱?還是這個外接盒太舊了,速度太差?
本來應該是到此告一個段落了,但看到U-BOOT,不禁心癢了起來,又花了一些時間,上了U-BOOT。U-BOOT的部分放在另一篇。

東京賞櫻記

從三月初規劃好去日本玩後,就很注意櫻花前線的動態。看到
http://weathernews.com/jp/c/press/2008/080225.html 預估東京三月底會滿開不禁心中竊喜,只是更仔細調查後,才知道沒那麼簡單,而且看起來似乎也不是那麼早開:
http://www.rurubu.com/season/spring/sakura/
十一點出發的飛機,到東京市中心也快五點了,不過,既然晚上也是有夜櫻可以看,就不要浪費了,於是挑了一個比較近的「千鳥ケ淵」。一看之下才發現,果真還沒全開,於是回到旅館重新研究接下來幾天的賞櫻路線。
幾天看下來,驗證了這個網站的資訊是很準確的,而且氣象預告也很準,可以做為規劃賞櫻的重要參考資訊: http://weathernews.jp/sakura/ 。
「千鳥ケ淵」的夜櫻,果然才剛開始開。看起來如果滿開會很漂亮。
IMG_0061.JPG

後樂園,網站上標示著滿開。一直以為後樂園是後宫的樂園,原來是「後天下之樂而樂」的後樂園。雖然櫻花不多,但滿開的櫻花還是漂亮,而這個花園也有其可觀之處。
門口的櫻花開得最漂亮:
IMG_0085.JPG
另一角的兩棵不同顏色的櫻花:
IMG_0111.JPG

六義園,名字來自詩的六義﹣風雅頌賦比興。櫻花也不多,不過一樣滿開的一棵勝過沒開的一片。
IMG_0136.JPG

上野公園,如果滿開真的會很漂亮。
IMG_0171.JPG

新宿御苑。因為有開放時間,所以沒有熬夜卡位的上班族,如果想學日本人在花下吃飯,是一個好選擇。
IMG_0242.JPG
剛好有人在拍寫真集(?),經過的人都在拍,我也跟著拍一張。

其他照片在Flickr。
照片及地圖。

5D2使用感想

操作和大小都和5D 沒有太大的不同,除了

  1. Menu多了分類,不像在5D中沒有分類,也多了short cut的功能(My menu),可以自訂常用的功能。方便的好功能,但如果可以設定按鍵控制反光鏡預鎖就更好了。
  2. 可以用 RC1遙控器﹣而且可以用RC-1啓動錄影,自拍方便多了。從EOS 50E到300D一直用得很高興的RC1,到了5D竟然不能用,我一直覺得很不爽:80N3快門線不但比RC1貴,體積也比較大,自拍還得要10秒衝刺。
  3. 時間設定竟然可以設定「秒」,對回家後用gps track做geotag有一些幫助,可以準確到秒左右。
  4. LCD大而且顏色比5D漂亮。
  5. 換了新的電池,LP-E6內建序號,相機會記錄每顆電池的資訊;不過原廠的很貴﹣快3000而且還缺貨!副廠的目前還沒加上序號及晶片,相機無法顯示電量,也不能用原廠充電器充電,使用起來比較不方便。應該等一陣子就會有完全相容的電池出現了。(在eBay上己經有了,不過價格也是莫名其妙地高﹣和原廠一樣!?)
  6. 一樣的使用習慣下,使用小小白(70-200mmF4)IS覺得準焦率有提高的感覺。
  7. 光線好時,顏色似乎比較鮮艷。
  8. 反差大時,暗部和亮部的對比卻好像沒那麼大﹣可能是Auto Lighting Optimizer的關係(default是starndard),還需要研究。
  9. 多了一些Custom Function,還在摸索中。

其他的感想:

  1. Live View/Movie的設定邏輯有點複雜。另外,如果習慣相機背在前面,設定SET鈕為拍攝Movie不是好的選擇,很容易不小心碰到。
  2. 1920×1080錄影很炫。不過,錄完後我才發現我的MBP螢幕才1440×900,想到兩千萬畫素的5616×3744,突然覺得很空虛。
  3. 畫素變高,CF卡容量需求也變大,硬碟容量需求也變大﹣所以升級成本跟著提高。

5D2開光照

古時候的劍打好後要試劍,新的相機也應該要開個光。今天帶著新買的5D2去拍幾張照片,做為開光。只是假日到處人都多,天氣又熱,隨便拍個幾張就回來了
開光照用的是轉轉鏡zeiss 75/1.5,不過回家才發現ISO是1600,所以Dynamic Range好像有點不夠。

5d_first

又到櫻花的季節

聽說今年日本的櫻花會提早,查了一下,發現東京五日機加酒竟然只要1萬多,不去實在可惜。想起前年去關西賞櫻和去年東北紅葉,稍微整理了一些出來;順便更新「名宿之旅」系列,先上酸湯,有空再寫妙乃湯和佐勘。

22ON22- To 5d2 or not to 5d2

最近考慮上5D2,上網研究了一下,又猶豫了起來。
5D2的十字橫紋:
http://www.fredmiranda.com/forum/topic/748830
低ISO雜訊:
http://www.fredmiranda.com/forum/topic/735873/0

Red Channel雜訊:
http://forums.dpreview.com/forums/readflat.asp?forum=1032&thread=31093852

暗部雜訊(和D3x比較):
http://diglloyd.com/diglloyd/free/PushingTheBlacks/images/channels.html

中文的部分也有人提,不過這個討論看起來很長,但看完原PO,其他的就不用看了,很遺憾地,01開始變成無法討論的地方了
http://www.mobile01.com/topicdetail.php?f=244&t=895210&p=1
還有這篇:
http://mskeith.pixnet.net/blog/post/23721753
這篇有讓人轉移焦點的正妹,所以我直接列出重點:
“實際拍攝狀況下,低ISO的暗部出現了令人不解的紅綠雜點,即便在ISO100~400也同樣發生”

這是高pixel的代價嗎?但也有人提到1DSIII沒那麼糟啊…