*linux-2.6.22-landisk [#s6cd7b65]
-概要
--''libataへ移行完了''
---LANDISKはaec62xxからpata_artopへ~
オリジナルではDMAがUDMA33へ設定されるようです。
単に表示上だけの問題なのか、それとも実際そのように設定されているのか詳しくは調査していませんが、少々気持ち悪かったので、UDMA133に設定する無責任な「俺パッチ」を仕込んでいます。今のところ(3ヶ月くらい)問題なく動作しています。~
(もしかして、単に表示をUDMA133へ変えるだけのパッチだったするかもしれませんが、、)~
&color(red){どなたか、ACARD ATP865のチップ仕様書を持ってる方、見せてくれませんか?};~
---USL-5Pはide-shからpata_platformへ
--''rtc-rs5c313の統合完了''~
メインツリーにようやくrtc-rs5c313が統合されました。~
http://marc.info/?l=linux-kernel&w=2&r=1&s=rs5c313&q=b
--''Wake on LAN 対応''~
rtl8139-diag、gio2コマンドはもはや不要に!~
#pre{{
# /usr/local/sbin/ethtool -s eth0 wol g
}}
--''LED''~
LEDのパッチを統合してもらおうと3月下旬から交渉中。~
いい加減疲れてきました。統合はあきらめるかもしれません。…orz~
http://marc.info/?l=linux-kernel&w=2&r=1&s=leds+landisk&q=b
-パッチ … [[linux-2.6.22-landisk.patch:http://eggplant.ddo.jp/www/download/kernel26/linux-2.6.22/linux-2.6.22-landisk.patch]]~
--クロスビルドしたい場合は、 CROSS_COMPILEへgccコマンドのプレフィックス文字列を指定すれば良い
CROSS_COMPILE ?= sh4-linux-
~
--dot config ファイル~
landisk_defconfig-ata : パッチ中に含まれる。~
~
~
-カーネルバイナリ … [[linux-2.6.22:http://eggplant.ddo.jp/www/download/kernel26/linux-2.6.22/]]~
~
~
-その他~
[[landisk-tools-20070612.tgz:http://eggplant.ddo.jp/www/download/debian26/base/landisk-tools-20070612.tgz]]~
ledctrl、btnctrlコマンド等を本カーネル向けに修正。~
~
*LEDの制御方法 …暫定版[#f869ca3c]
-はじめに~
LANDISK/USL-5PのLED制御ドライバをlinuxの標準ドライバ仕様にあわせて大幅に書き直ししました。~
LEDの制御は/sysfs/class/leds下にマッピングされたファイルを読み書きして行います。~
以下例を交えながら簡単に説明します。~
-LANDISK/USL-5PそれぞれのLED~
--LANDISKのLED~
#pre{{
landisk:~# ls /sys/class/leds/
power status
}}
--USL-5PのLED~
#pre{{
usl5p:~# ls /sys/class/leds/
buzzer power status usb1 usb2 usb3 usb4 usb5
}}
--機種判別~
/sys/class/leds/buzzer ディレクトリの有無でLANDISKとUSL-5Pの機種判別が可能。
-LEDのモード設定について~
個々のLEDディレクトリ下にはtriggerファイルがあります。triggerをcatすると、使用可能なLEDのtriggerモードが表示されます。~
現在仕様中のtriggerは'[',']' で囲まれいます。
#pre{{
usl5p:~# cat /sys/class/leds/power/trigger
none [bitpat]
}}
-LEDのON/OFF~
LEDを(設定されてないならば)"bitpat"モードに設定して、bitdataに値を書き込みます。
#pre{{
LEDをbitpat triggerモードへ
usl5p:~# echo bitpat > /sys/class/leds/power/trigger
#LED ON
usl5p:~# echo &color(red){1}; > /sys/class/leds/power/bitdata
#LED OFF
usl5p:~# echo &color(red){0}; > /sys/class/leds/power/bitdata
}}
-LEDの点滅~
LED triggerを"bitpat"モードに設定して、delayに点滅周期(正確にはトグル周期)をミリ秒単位で、bitdataへ点滅パターンを指定します。
#pre{{
usl5p:~# echo bitpat > /sys/class/leds/power/trigger
usl5p:~# echo 250 > /sys/class/leds/power/delay
usl5p:~# echo &color(red){01R}; > /sys/class/leds/power/bitdata
}}
&color(red){01R};とは、0(OFF)->1(ON)->R(先頭から繰り返し)という意味です。最後にRをつけると無限ループします。~
bitpat triggerの特徴は0,1,Rを連結した文字列でLEDのON/OFFパターンを表現する点にあります。~
なお現実装では設定可能な文字列長は16文字です。~
~
-ブザー~
LED(ブザー)もLEDと同様に、bitpat triggerモードで使用します。~
#pre{{
usl5p:~# echo bitpat > /sys/class/leds/buzzer/trigger
usl5p:~# echo 250 > /sys/class/leds/buzzer/delay
usl5p:~# echo 1010000010 > /sys/class/leds/buzzer/bitdata
}}
-bitpat triggerモードの補足~
エイリアス(on/off/blink)を使用して次のようにしてLEDを制御することもできます。~
#pre{{
#LED ON
usl5p:~# echo &color(red){on}; > /sys/class/leds/power/bitdata
usl5p:~# cat /sys/class/leds/power/bitdata
bitdata : 1
meaning : 0=OFF, 1=ON, R=Repeat
#LED OFF
usl5p:~# echo &color(red){off}; > /sys/class/leds/power/bitdata
usl5p:~# cat /sys/class/leds/power/bitdata
bitdata : 0
meaning : 0=OFF, 1=ON, R=Repeat
#LED 点滅
usl5p:~# echo &color(red){blink}; > /sys/class/leds/power/bitdata
usl5p:~# cat /sys/class/leds/power/bitdata
bitdata : 01R
meaning : 0=OFF, 1=ON, R=Repeat
}}
-diskアクセスランプ~
LANDISKのstatus(赤LED)にのみ本モードは設定可能です。
#pre{{
landisk:~# cat /sys/class/leds/status/trigger
none disk [bitpat]
landisk:~# echo &color(red){disk}; > /sys/class/leds/status/trigger
landisk:~# cat /sys/class/leds/status/trigger
none [disk] bitpat
}}