[技術] Milestone的鬧鐘問題

Written on 12:47 上午 by Yu Lai

Milestone從原本都很正常work的鬧鐘,
從我出差來泰國後, 沒有插著AC充睡覺就開始怪怪的.
後來花了點時間去trace, 才發現原來RTC的interrupt在2.1的firmware被改濫了.
還好有人把新版本的kernel從新的加拿大版的firmware取出來做成SBF.

Ref From: http://and-developers.com/motorola_milestone:sbf

2.1 kernel fix of scheduled CPU wake-ups

This SBF file will flash only the boot.img (kernel+init) from SHOLS_U2_03.10.0: mediafire, rapidshare

It will fix the broken scheduling of Alarm/RTC interrupts on the SHOLS_U2_02.31 and
SHOLS_U2_02.34 systems (kernel problem - alarms delayed).


升級前先把Kernel的版號記錄一下:
2.6.29-omap1 a21146@ca25rhe74 #1

透過上一篇提到的sbf_flash指令,把kernel更新後,版號變成如下:
2.6.29-omap1 rkg683@ca25rhe56 #1

應該是有更新成功吧,就看這幾天鬧鐘正不正常囉。

[技術] Milestone上SBF和RSD Lite說明

Written on 12:01 上午 by Yu Lai

之前在root Milestone時有使用到的SBF以及RSD Lite,
這陣子有把資料找全了,在這裡重新說明一下用以備忘。

首先SBF是Single Binary File的縮寫,
它是包含了要燒錄的binary data和checksum資料等。
提供給RSD介面燒錄資料到device上。
除了Motorola官方提供的SBF可供燒錄外,
我們也可以透過SBF-Recalc自行產生出可燒錄的SBF檔。
Ref: http://and-developers.com/motorola_milestone:sbf

而講到RSD Lite就要先講一下RSD,
RSD是Remote Software Download的縮寫,
它是Motorola開發出來用來做為遠端燒錄flash的介面,
也就是說只有Motorola的device才會用到的東東。
而目前使用到RSD的軟體有:
RSD-NetConnected
RSD Lite
Motorola Software Updater
RSD-NPI

目前RSD Lite只有Windows版本,若要在Linux下使用不太方便。
於是有網友[mbm]提供了一個Linux程式sbf_flash,有興趣可以到這裡看看。
Ref:http://and-developers.com/motorola_milestone:tools:rsd_lite

[技術] Linux Kernel的schedule_timeout error

Written on 4:45 下午 by Yu Lai

今天在寫Code時,Kernel狂吐schedule_timeout: wrong timeout value fffffd85 from c01595ef。
查了一下Google才發現這是說schedule_timeout被傳了負數的value進去導致的錯誤。
到/proc/ksyms或System.map一查才發現原來是epoll所呼叫的。
比對了一下code才發現原來忘了對timeout variable進行initial與小於0的check,修正後即解決。