SL-B500/C700/C750/C760/C860/6000 special kernel
近況報告
- 2004/11/10 v14dです。v14cからpreemptパッチを外したことで、Bluetoothの問題が解決しました。さらに、Bluetoothは最新のパッチを当ててみました。
- 2004/9/21 メールサーバの設定を間違っていて、@tetsu.homelinux.orgメールが受け取れなくなっていました。直しましたが、これまでにメールを送っていただいたかたは、お手数ですが再送をお願いします。
- 2004/7/23 C750とC760のノーマルカーネル同等品が壊れていたので作り直しました(ご指摘ありがとうございます)。また、密かにSL-6000のソースからビルドしたSL-6000用の実験版(v16-pre4)も置いときます。CCCR=163で危険ですが高速で、無線LANやBluetoothも問題なく動いてます(私は常用してます)。
- 2004/7/21 ディスククラッシュで失われたv14bと同等のv14cを作りました。v15で問題のあるかたにはこちらがお勧めです。
- 2004/6/19 v15です。SL-6000にも対応したつもり。主成分は以下の通り。
- 2004/6/18(2) すいません、やっぱりほとんどのファイルが壊れているみたいです。怪しいものは削除しましたが、ダウンロードできても使うのはちょっと待って下さい。
- 2004/6/18 ほぼ復旧しました。ファイルが無かったり壊れていたらご連絡下さい。
- 2004/6/17 ディスククラッシュのため壊滅状態。現在復旧中。ほとんどリンク切れになります。
- 2004/4/1 スペシャルカーネルは無料で配布しており、ライセンスはGPLです(念のため)。
- 2004/3/23 USBストレージ機能利用時のトラブル対策をFAQのQ2-6に載せました。問題解決にご協力いただいた皆様に感謝します。
- 2004/3/7 v14以降を使う場合、usb-modules_preemptはアンインストールして下さい。
無責任
本カーネルの使用により、あなたのZaurusがレンガになったりしても、私は何も補償できませんのであしからず。
何だろう
SL-C860のカーネルをちょっといじってSL-B500/C700/C750/C760/C860/6000でちょっと速く動くかもしれないようにしたものです。
カーネルの入れ換え手順
(1) SHARPのサイトからconsolescrollとupdater.sh.xxxxをもらってくる。
updater.sh.xxxxはファイル名をupdater.shと変更。
双方をメモリカードにコピーする。
(2) 下記から使いたいカーネルを選び、ファイル名はzImageと変更してメモリカードにコピーする (zImage.binではないことに注意)。
(3) consolescroll, updater.sh, zImage以外がメモリカードにないことを確認。
特にinitrd.binは危険なので絶対に消して下さい。
後は(1)のSHARPのサイトの手順通りですが、完全消去はしないで下さい (手順11で7だけ実行し、後は普通に電源を入れる)。
復旧手順
何か問題があった場合は、元のカーネルを使って上記(3)をやり直して下さい。
元のカーネルは、SHARP提供のアップデートソフトがある機種 (B500, C700, C860)ならば、そこから取り出して下さい。
SHARP提供のアップデートソフトがない機種 (C750, C760, 6000)ならば、元のカーネルと同等のものを使って下さい。
/procファイルシステム
/procファイルシステムにより、カーネル設定の参照/変更が可能です。
例えば、CCCRの値を参照したい時は、
$ cat /proc/cccr_change
CCCRを241に変更したい時は、
# echo 241 > /proc/cccr_change
など、通常のファイルのようにアクセスします。
変更 (書き込み)はroot権限が必要です。
以下に主要なものを示しますが、これ以外にも、ぴろさんの
カーネルパッチをまとめるのページにいくつか書いてあります。
- /proc/cccr_change : CPUクロック (非アイドル時のCCCR値) (read/write)
- 241: B500/C700のノーマルカーネルでの値
- 242: B500/C700用の初期値
- 161: C750/C760/C860/6000用の初期値 (ノーマルカーネルと同じ)
- 162: C750/C760/C860/6000で運が良ければ動くかも
- 解説: C750/C760/C860/6000の場合、162を試してみて、だめなら161でお使い下さい。
ここでの設定値によらず、アイドル時には自動的にCCCR=121までクロックが落ちます。
クロックの変更/確認には、ぴろさんの
qclockchangeがお勧め (変更時はroot権限で実行にチェックが必要)。
同じくぴろさんのfreqchangeappletを使うと自動的に好きなCCCR値に設定することができます。
- /proc/driver/w100/fastsysclk : ATI W100のFASTSYSCLK (read/write)
- 75: ノーマル (default)
- 100: 高速
- 解説: グラフィックチップとしてATI W100を搭載している機種(Cxxxシリーズ)のみ有効。
100にすると画面描画が高速化される。
個体差により画面にゴーストが出ることもあります。
画面が乱れるなどの不具合が起きる場合は75でお使い下さい。
- /proc/power_key_off : パワーキーサスペンドモードON/OFF (read/write)
- 0: パワーキーサスペンドモードOFF (default)
- 1: パワーキーサスペンドモードON
- 解説: コンソール向け機能
- /proc/three_button : 3ボタンモードON/OFF (read/write)
- 0: 3ボタンモードOFF (default)
- 1: 3ボタンモードON
- 解説: コンソール向け機能
- /proc/tspressure : 筆圧感知ON/OFF (read/write)
- 0: 筆圧感知OFF (default)
- 1: 筆圧感知ON
- 解説: 筆圧感知機能を使うには、
PetitePeintureのような筆圧対応アプリケーションが必要です。
- /proc/version : バージョン確認 (read)
- 解説: 読み出しのみ。
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) なぜ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/6000にも使えるか。
- (A1-6) 用意しましたが、必ずしも動作確認をしているわけではありません。
- (Q1-7) バイナリやパッチの転載をしても良いか。
リンクを張っても良いか。
記事にして良いか。
- (A1-7) ご自由にどうぞ。
ソフトのライセンスはGPLです。
- (Q1-8) どのバージョンを使えば良いかわからない。
- (A1-8) 新しいほうが改良されているのでお勧めです。
- (Q1-9) カーネルが書き替わらない。
- (A1-9) ファイル名がzImageとなっているかお確かめ下さい。
書き込みが成功の場合は、Successと表示がでるはずです。
- (Q1-10) CCCRの値の違うのがあるが、どれが速いのか。
- (A1-10) 非常に大雑把に言うと、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の変更は危険なので、バックアップを取ってから行なって下さい。
CCCRの変更/確認はぴろさんの
qclockchangeがお勧め(変更時はroot権限で実行にチェックが必要)。
他の手段としては、ターミナル(コンソール)にて、root権限にて、「echo xxx > /proc/cccr_change」です。
「echo xxx > /proc/cpu/registers/CCCR」ではありません。
- (Q2-4) 筆圧が感知されない。
- (A2-4) 「echo 1 > /proc/tspressure」としないと筆圧感知機能が有効になりません。
無効にするのは「echo 0 > /proc/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) お好きにどうぞ。
技術情報
動作周波数
CCCR L M N
C700(Normal) 0x0241 27 2 2
C750/C760/C860 0x0161 27 4 1
0x0242 32 2 2
0x0162 32 4 1
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
Memory Frequency(100MHz)を基準に考えると、
C700(Normal)はRun modeは2倍速(200MHz)でTurbo modeは4倍速(400MHz)。
C750はRun modeもTurbo modeも4倍速(400MHz)。
Run mode周波数を高くするとPXバスも速くなる(Run mode周波数の半分)。
ソース
linux-c860-20031107-rom1_10.tar.bz2を元にビルドしました。
ソースの修正点
以下のようにソースを修正しています。
カーネルコンフィグレーション
SL-C860のカーネルソースには、SL-B500用=poodle-j、SL-C700用=corgi、SL-C750用=shepherd-j、SL-C760用=husky-j, SL-C860用=boxer-j, SL-6000用=tosa-jという名前のconfigが含まれています。
このファイルを元に、コンフィグレーションファイルを次のように修正しています。
機能早見表
機能 |
normal |
special kernel |
クロックアップ(B500/C700のみ), WBキャッシュON, FCSE |
- |
yes |
UNICON |
- |
yes |
LCD BUFF |
- |
no (v14a-), yes (-v14) |
NO SHARP LOGO |
- |
yes |
MILD SWAP |
- |
yes |
CCCR可変 |
- |
yes |
筆圧感知 |
- |
起動時OFF, 有効化可能 |
SYSCLK100 |
- |
起動時OFF, 有効化可能 |
PREEMPT, LOCKBREAK |
- |
no (v14d〜), yes (〜v13e) |
3ボタン |
- |
起動時OFF, 有効化可能 |
POWERKEYOFF |
- |
起動時OFF, 有効化可能 |
山田哲靖
webmaster@tetsu.homelinux.org