(補足)SL-A300の場合
- フルリセットが必要なことがあるため、事前にバックアップ。
- Homeキーを押しながらリセット穴をつつく。電源インジケータが点滅を始めるまでHomeキーは押したまま。
- 電源インジケータが点滅を始めたらHomeキーは離す。
- 電源インジケータの点滅が遅くなり(書き込み中)、消える(完了)。
- リセット穴をつつくとリセットされて再起動。
- もし立ち上がらなければリセット穴を長押しするとフルリセットされて再起動。
(5) 必要に応じてモジュールを入れて下さい(オプション)。
特に不都合がなければインストールは不要です。
復旧手順
何か問題があった場合は、元のカーネルを使って上記(4)をやり直して下さい。
元のカーネルは、SHARP提供のアップデートソフトがある機種 (B500, C700, C860)ならば、そこから取り出して下さい。
SHARP提供のアップデートソフトがない機種 (C750, C760, 6000, C1000, C3000, C3100, C3200)ならば、元のカーネルと同等のものを使って下さい。
A300の場合、アップデートソフトからカーネルだけ取り出すのが面倒なので、同等品を使ってください。
/procファイルシステム
/procファイルシステムにより、カーネル設定の参照/変更が可能です。
例えば、CCCRの値を参照したい時は、
$ cat /proc/cccr_change
CCCRを241に変更したい時は、
# echo 241 > /proc/cccr_change
など、通常のファイルのようにアクセスします。
変更 (書き込み)はroot権限が必要です。
以下に主要なものを示しますが、これ以外にも、ぴろさんの
カーネルパッチをまとめるのページにいくつか書いてあります。
- /proc/zaurus/CCCR : C1000/C3000/C3100/C3200のCPUクロック (非アイドル時のCCCR値) (read/write)
- 対応機種: C1000/C3000/C3100/C3200
- 2000210: CPUクロック416MHz システムバス208MHz LCD104MHz(default)
- 2000290: CPUクロック520MHz システムバス208MHz LCD104MHz
- 2000310: CPUクロック624MHz システムバス208MHz LCD104MHz
- 2000214: CPUクロック520MHz システムバス260MHz LCD 64MHz
- 2000218: CPUクロック624MHz システムバス312MHz LCD 78MHz
- a000214: CPUクロック520MHz システムバス260MHz LCD130MHz
- a000218: CPUクロック624MHz システムバス312MHz LCD156MHz
- 解説: クロックアップ時はコア電圧もセットで変更して下さい。
- 使用例:
# echo 0e > /proc/zaurus/VCORE && echo 2000310 > /proc/zaurus/CCCR
クロックの変更/確認には、ぴろさんの
qclockchange-for-c3000がお勧め (root権限で実行にチェックが必要)。
また、ぴろさんの
BatteryPlus
ならばバッテリ残量に応じてクロックとコア電圧を変えられます。
- /proc/zaurus/VCORE : C1000/C3000/C3100/C3200のコア電圧 (read/write)
- 対応機種: C1000/C3000/C3100/C3200
- 00: 0.850V
- 01: 0.900V
- 02: 0.950V
- 03: 1.000V
- 04: 1.050V
- 05: 1.100V
- 06: 1.150V
- 07: 1.200V
- 08: 1.250V
- 09: 1.300V
- 0a: 1.350V (default: 416MHz時の定格)
- 0b: 1.400V
- 0c: 1.450V (520MHz時の定格)
- 0d: 1.500V
- 0e: 1.550V (624MHz時の定格)
- 0f: 1.600V
- 解説: クロックアップ時はコア電圧を上げないと安定しないようです。
- 使用例:
# echo 0e > /proc/zaurus/VCORE
- /proc/cccr_change : CPUクロック (非アイドル時のCCCR値) (read/write)
- 対応機種: B500/C700/C750/C760/C860/5600/6000
- 241: B500/C700/5600のノーマルカーネルでの値
- 242: B500/C700/5600用の初期値
- 161: C750/C760/C860/6000用の初期値 (ノーマルカーネルと同じ)
- 162: C750/C760/C860/6000で運が良ければ動くかも
- 解説: C750/C760/C860/6000の場合、162を試してみて、だめなら161でお使い下さい。
ここでの設定値によらず、アイドル時には自動的にクロックが落ちます。
クロックの変更/確認には、ぴろさんの
qclockchangeがお勧め (root権限で実行にチェックが必要)。
また、ぴろさんの
BatteryPlus
ならばバッテリ残量に応じてクロックとコア電圧を変えられます。
- /proc/driver/w100/fastsysclk : ATI W100のFASTSYSCLK (read/write)
- 対応機種: C700/C750/C760/C860
- 75: ノーマル (default)
- 100: 高速
- 解説: グラフィックチップとしてATI W100を搭載している機種(Cxxxシリーズ)のみ有効。
100にすると画面描画が高速化される。
個体差により画面にゴーストが出ることもあります。
画面が乱れるなどの不具合が起きる場合は75でお使い下さい。
- /proc/power_key_off : パワーキーサスペンドモードON/OFF (read/write)
- 対応機種: C700/C750/C760/C860
- 0: パワーキーサスペンドモードOFF (default)
- 1: パワーキーサスペンドモードON
- 解説: コンソール向け機能
- /proc/three_button : 3ボタンモードON/OFF (read/write)
- 対応機種: B500/C700/C750/C760/C860/5600
- 0: 3ボタンモードOFF (default)
- 1: 3ボタンモードON
- 解説: コンソール向け機能
- /proc/tspressure (SL-C1000/C3000/C3100/C3200では/proc/zaurus/tspressure) : 筆圧感知ON/OFF (read/write)
- 対応機種: B500/C700/C750/C760/C860/C1000/C3000/C3100/C3200/5600
- 0: 筆圧感知OFF (default)
- 1: 筆圧感知ON
- 解説: 筆圧感知機能を使うには、
PetitePeintureのような筆圧対応アプリケーションが必要です。
- /proc/driver/w100/rotation : ハードウェアローテーション (read/write)
- 対応機種: C700/C750/C760/C860
- 0: 標準 (default)
- 180: 上下反対
- 解説: コンソール向けか。
- 使用例:
# echo 180 > /proc/driver/w100/rotation
# echo 0 > /proc/driver/w100/rotation
- /proc/version : バージョン確認 (read)
- 対応機種: A300/B500/C700/C750/C760/C860/C1000/C3000/C3100/C3200/5600/6000
- 解説: 読み出しのみ。
v13a@tetsu.homelinux.orgのようにバージョンが表示される。
FAQ
全般
- (Q1-1) 危険ではないのか。
ハードが壊れたりしないのか。
- (A1-1) 私は責任がとれません。
これまでにハードが壊れたという話は聞きません。
バージョンによっては内蔵フラッシュの内容を(ソフト的に)壊すこともありましたが、このようなバージョンは公開停止しています。
カーネル入れ換え作業時に誤って他機種のinitrd.binを書き込むと復旧が難しいので十分注意して下さい。
- (Q1-2) SHARPからもいずれ同等の速度が出るカーネルがリリースされるのでは。
- (A1-2) 無理です。
まっとうなメーカとしてはプロセッサの定格外の使い方を推奨するわけにはいかないからです。
- (Q1-3) カーネルを入れ換えなくてもクロックアップはできるのではないか。
- (A1-3) 無理です。
カーネル内に規定のクロック以外にはならないようなコードが入っているからです。
ぴろさんの10/27版パッチ以降を適用したカーネルだとクロックを変更できるようになります。
- (Q1-4) 私のSL-xxxxでyyyyという不具合が起きるのですが。
- (A1-4) 具体的に教えていただければ考えます。
直せるかどうかは分かりません。
Q1-11も参照。
- (Q1-5) B500やC700にもなぜC750/C760/C860用ソースを使うのか。
B500/C700向けならばB500/C700用のソースのほうが良いのではないか。
- (A1-5) ライトバックキャッシュに対応したコードがC750/C760/C860用ソースにしか入っていないからです。
仮にB500/C700用のソースを使っても、ライトバックキャッシュ対応を行なえばC750/C760/C860用のソースと同等になってしまいますし、使用メモリ量が減ったりもしません。6000のソースもC860のソースより古いので、ぴろさんがC860のソースに6000の差分をポートしました。
- (Q1-6) C750/C760/C860/C1000/C3100/C3200にも使えるか。
- (A1-6) 用意しましたが、必ずしも動作確認をしているわけではありません。
- (Q1-7) バイナリやパッチの転載をしても良いか。
リンクを張っても良いか。
記事にして良いか。
- (A1-7) ご自由にどうぞ。
ソフトのライセンスはGPLです。
- (Q1-8) どのバージョンを使えば良いかわからない。
- (A1-8) 新しいほうが改良されているのでお勧めです。
- (Q1-9) カーネルが書き替わらない。
- (A1-9) ファイル名がzImageとなっているかお確かめ下さい。
書き込みが成功の場合は、Successと表示がでるはずです。
- (Q1-10) CCCRの値はどれが速いのか。
- (A1-10) C1000/C3000/C3100/C3200以外の場合、非常に大雑把に言うと、241 < 161 < 242 < 162 です。
ただし、161と242では、161のバス速度が242より速いため、使い方次第で逆転します(161のほうが良いかも)。
各論
- (Q2-1) タッチスクリーンが安定しない。
- (A2-1) 「echo 3230 > /dev/ts」を試してみて下さい。
3230は個体差により0〜5000の間で変えてみて下さい(ぴろさんとuchさんからの情報)。
v11g以降では負の値も設定可能です。
ぴろさんの
tscalibを使うと適切な値を簡単に見つけられそうです。
- (Q2-3) CCCRが変更できない。
- (A2-3) CCCRの変更は危険なので、バックアップを取ってから行なって下さい。
ターミナル(コンソール)にて、root権限にて、「echo xxx > /proc/cccr_change」です。
「echo xxx > /proc/cpu/registers/CCCR」ではありません。
- (Q2-4) 筆圧が感知されない。
- (A2-4) 「echo 1 > /proc/tspressure」としないと筆圧感知機能が有効になりません。
無効にするのは「echo 0 > /proc/tspressure」です。
SL-C1000/C3000/C3100/C3200では/proc/zaurus/tspressureです。
- (Q2-6) USBストレージ機能がうまく動かない。USBストレージ機能利用後にUSBネットワークが動かない、再起動できなくなるなど不具合が起きる。
- (A2-6) usbd-storeageのパッチとUSBモジュールの双方をインストールしてください。
- v14xの場合: usbd-storageのパッチと非プリエンプティブカーネル用USBモジュール
- v13xの場合: usbd-storageのパッチとプリエンプティブカーネル用USBモジュール
- usbd-storageのパッチ(非プリエンプティブカーネル/プリエンプティブカーネル共用)
- 非プリエンプティブカーネル用USBモジュール(v14x) -- ぴろさん作(mppeモジュール含む)
その他
- (Q3-1) もっとスピードが上がる方法を見つけた。
- (A3-1) 教えて下さい。
- (Q3-2) これはすごい。
みんなに広めたい。
- (A3-2) お好きにどうぞ。
- (Q3-3) これはボロい。
みんなに使わないように言い広めようと思うが。
- (A3-3) お好きにどうぞ。
- (Q3-4) カーネルの入れ換えに失敗して復旧できなくなった。
- (A3-4) だからNANDバックアップを取っておくようにと何度言えば...
- (Q3-5) このページのタイトル長すぎ。
- (A3-5) 対応機種が増えるたびにタイトルが長くなっていくというジョークなので意図どおりです。
消費社会、使い捨て社会に対するアンチテーゼでもあります。
(ところでアンチテーゼって何?)
技術情報
PXA27x動作周波数
SL-C1000/C3000/C3100/C3200はPXA270を搭載。
Turbo-mode frequency = 13MHz * L * N
Run-mode frequency = 13MHz * L
System-bus frequency = 13MHz * L / B
B = 1 (when in fast-bus mode)
B = 2 (when not in fast-bus mode)
CCCR L N B Turbo-mode System-bus LCD-freq
2000210 16 2 1 416MHz 208MHz 104MHz (C1000/C3000/C3100/C3200 default)
2000290 16 2.5 1 520MHz 208MHz 104MHz
2000310 16 3 1 624MHz 208MHz 104MHz
2000214 20 2 1 520MHz 260MHz 64MHz
2000218 24 2 1 624MHz 312MHz 78MHz
a000214 20 2 1 520MHz 260MHz 130MHz
a000218 24 2 1 624MHz 312MHz 156MHz
詳しくはIntel(R) PXA27x Processor Family Developer's Manualを参照のこと。
PXA210/25x動作周波数
SL-A300はPXA210を搭載。
SL-B500/C700/5600はPXA250を搭載。
SL-C750/C760/C860/6000はPXA255を搭載。
Crystal Frequency = 3.6864MHz
Memory Frequency = Crystal Frequency * L
Run Mode Frequency = Memory Frequency * M
Turbo Mode Frequency = Run Mode Frequency * N
PXbus Frequency = Run Mode Frequency / 2
CCCR L M N Turbo-mode System-bus
121 27 1 1 100MHz 100MHz
141 27 2 1 199MHz 100MHz (A300 default)
142 32 2 1 236MHz 118MHz
241 27 2 2 398MHz 100MHz (B500/C700/5600 default)
242 32 2 2 472MHz 118MHz
161 27 4 1 398MHz 199MHz (C750/C760/C860/6000 default)
162 32 4 1 472MHz 236MHz
163 36 4 1 531MHz 264MHz
詳しくはIntel(R) PXA255 Applications Processors Developer's Manualを参照のこと。
カーネルコンフィグレーション
カーネルソースには、SL-A300用=discovery-MV、SL-B500用=poodle-j、SL-C700用=corgi、SL-C750用=shepherd-j、SL-C760用=husky-j、SL-C860用=boxer-j、SL-6000用=tosa-j、SL-C3000用=spitz-j、SL-C1000用=akita-jという名前のconfigが含まれています。
このファイルを元に、コンフィグレーションファイルを次のように修正しています。
機能早見表
記憶だけで書いてるので少し怪しい。