Nokia N900。 「Nokia N900のハッキング」を引き続き理解する

こんにちは、読者の皆様。 Nokia N900に関する一連の記事を続けます。 ここここここ -私の以前の出版物。
今日もデバイスの研究を続けており、今日のトピックはハックです。 開発者が変更することを意図していないさまざまなことを行い、さまざまなことを変更します。 これは非常に簡単に行われ、必要に応じて平均的なユーザーであっても対象となります。 カーネルにパッチを適用したり、デバイスを高性能モードにしたりする方法については説明しません。すべてのユーザーに役立つ有用な改善点をいくつか紹介します。
警告:著者は、これらの指示に従う過程でのデバイスの損傷について責任を負いません。 あなたは自分の危険とリスクですべてをします。
本当に怖くないですか? デバイスを復元できないほどの状態にデバイスを強制終了することは、実際には非現実的です(しかし、可能性!!!私は1つのケースを知っています)。 しかし、成功したとしても、99%のサービスセンターがお手伝いします。 しかし、主なルールは、最初に注意して読んでから、それを実行し、それを注意深く実行し、アクションのシーケンスに最も注意を払うことです。最も重要なことは、赤で強調表示されていることです(私が強調したことではないためです)。
画像



N900を分解して組み立てます。


タイトルページには、分解されたN900のプロセスが表示されます。 公式のサービスマニュアルがあります。 しかし、公開されていません。 私の知る限り、サービスセンターに配布されます。 しかし、ネットワーク上にはインスタンスがあり、必要に応じてそれらを見つけることができます:キーワードNokia、サービスマニュアルRX-51。 私はそれをレイアウトする権利がありません-それは著作権と矛盾します:
本書の一部またはすべての内容の複製、転送、配布または保管
Nokiaの事前の書面による許可がない形式は禁止されています。

これはおおよそ次のように翻訳されます。Nokiaの事前の同意なしに、この文書の一部またはすべての内容をあらゆる形式でコピー、転送、配布、保存することは禁じられています。
私はこのドキュメントからではなく、ここからかなり人気のある広範囲なリソースから写真を撮りました、そして私は彼らから再公開する許可を個人的に受け取りました(彼らはこの画像を公開する権利があり、再公開を許可する権利があると主張しています)。 しかし、ノキアの代表者からのこの情報の配布の違法性を示す最初の控訴で、私はこの写真を削除します。
まあ、このドキュメントではすべてが写真で説明されており、他のデバイスを分解する場合と大差ありません。
ドキュメントをレイアウトできないことをおaびしますが、自分の指示を行うことはできません。このためにデバイスを分解するのは残念です:-)。

N900を点滅。


以前の出版物で、私は多くの興味深いアプリケーションについて説明しましたが、それらの多くは、余分なテスト用のリポジトリ、さらには非常に優れたリポジトリにあります。 これは、これらのアプリケーションが安定して動作することを保証するだけでなく、携帯電話を破損しないことを保証しないことを意味します:-)さらに、この出版物からのいくつかの指示は、N900からレンガを作ることができます。 そのため、この場合にデバイスを復元する方法を最初に示すことにしました。
ロシア語の追加資料として、FructでMaemo.org Wikiの翻訳を見ることができます。
この点でノキアは、よくやった、あなたはどんなOSでもN900を再フラッシュすることができます(私は3つのLinux / MacOS / Windowsを意味しますが、実際にはすべてのOSではありません:-))。
必要なもの:
1.ファームウェアツールはフラッシャーです。
こちらからダウンロードしてください
そのようなファイルは私たちにとって興味深いものです(次のバージョンが表示される可能性があるため、バージョンは異なる可能性がありますが、名前は同じまたは類似したままでなければなりません)。
maemo_flasher-3.5_2.5.2.2.exe-Windows 7、XP、Vista用のバージョン。
maemo_flasher-3.5_2.5.2.2.tar.gz-Linux用のバージョン。
maemo_flasher-3.5_2.5.2.2_i386.debは、LinuxファミリのDebianバージョンです。
maemo_flasher-3.5_2.5.2.2_i386.dmg-Intel Mac OSのバージョン。
maemo_flasher-3.5_2.5.2.2_ppc.dmg-PPC Mac OSのバージョン。
2.ここからルートシステムイメージのイメージと、必要に応じてeMMCイメージ(これは32 GBのメモリ)をダウンロードします。
<a href= choosehref=> tablet-dev.nokia.com/nokia_N900.php " >このリンクからダウンロードしてください。
そこでIMEIを入力する必要があります。
画像
バッテリーの下または「オプション」->「製品について」にあります。 ポップアップウィンドウの最後の行があります。
画像
電話のキーパッドで*#06#と入力しても取得できます。
次に、[同意する]ボタンをクリックして、ライセンス契約に同意します。
このファイルに興味があります:RX-51_2009SE_3.2010.02-8_PR_COMBINED_MR0_ARM.bin以降(必要な場合)
eMMCを再フラッシュする場合は、このRX-51_2009SE_1.2009.41-1.VANILLA_PR_EMMC_MR0_ARM.binを使用します。
また、販売されたデバイスには、販売されている地域の地図が事前に読み込まれていますが、この画像にはカードがありませんが、これは怖いものではありません。MapLoaderを使用してこの問題を解消できます。 なぜこれが必要なのかを以下に説明しますが、必要かどうかわからない場合は必要ありません。

Linuxにフラッシャーをインストールする際の注意。

64ビットのDebian Linuxがあり、debファイルからインストールする場合、パッケージを保存したディレクトリでこのコマンドを実行する必要があります
sudo dpkg -i --force-architecture ./maemo_flasher-3.5_2.5.2.2_i386.deb


Mac OSでフラッシャーをインストールする際の注意。

ここで何もする必要はありません。知っておく必要があるのは、フラッシャーが/ usr / binにあることだけです。

Windowsにフラッシャーをインストールする際の注意。

デフォルトのパッケージは、%Program Files%/ maemo /に置かれます。
Windows 7では、ドライバー署名の検証を無効にする必要があります。 簡単です。
[スタート]メニューに移動し、cmdプログラムを選択します。 それを右クリックし、「管理者として実行」。
画像
インタープリターウィンドウで、次のコマンドを入力します。
bcdedit.exe -set loadoptions DDISABLE_INTEGRITY_CHECKS
bcdedit.exe-テスト署名をオンに設定

その結果、次のようなものが表示されます。
画像

eMMCファームウェアについて少し。 これはフラッシュイメージで、ディレクトリツリー内の/ home / user / MyDocsにあります。 再フラッシュが必要なのは、初期状態のデバイスを取得する場合、または電話の開発バージョンを使用している場合のみです。 ブリックを再フラッシュするだけなら、eMMCをフラッシュする必要はありません!!!

すべてはコンソールから行われ、上記のすべてのOSでまったく同じように動作します。 唯一の問題はWindows 7で発生する可能性があります。しかし、これについてはもう少し詳しく説明します。
警告:電話機を完全に充電してください。ファームウェアの実行中にバッテリーが切れると、非常に悪くなります。 ファームウェア中、デバイスはUSB経由で充電されません!!!
だから、私たちは皆、フラッシャーユーティリティをダウンロードしてインストールしました。 コンソールを起動します(Windowsではcmdコマンドインタープリターですが、とにかくコンソールと呼びます:-))。
そしてコンソールでこれらの言葉を書きます:
Windows:
cd "%ProgramFiles%\ maemo \ flasher-3.5"
flasher-3.5.exe -F RX-51_2009SE_3.2010.02-8_PR_COMBINED_MR0_ARM.bin -f -R

Linux:
sudo flasher-3.5 -F RX-51_2009SE_3.2010.02-8_PR_COMBINED_MR0_ARM.bin -f -R

MacOS:
sudo /usr/bin/flasher-3.5 -F RX-51_2009SE_3.2010.02-8_PR_COMBINED_MR0_ARM.bin -f -R


その結果、次の碑文が得られます。

適切なUSBデバイスが見つからない、待機中


0. eMMCを再フラッシュする場合は、事前に背面カバーを取り外して、何かでバッテリーをこじ開けます(フラッシュ中に脱落しないように、無理にしないでください)。
1.デバイスがUSB経由で接続されている場合は、切断します。
2.オフにします(USBを接続した状態でオフにした場合、デバイスは完全にオフにならないため、手順1に従ってください)。
3.キーボードの「u」ボタンを押したまま、USBケーブルを接続します。
4. Nokiaのロゴ(背景が非常に薄く、バックライトが非常に弱い場合がありますが、明るい白の背景にはあまり表示されません)とUSBアイコンの右上隅に表示されます。

すべてを正しく行った場合、ラベルが実行され、ファームウェアのさまざまな段階について通知されます。
デバイスが再起動します。 これで点滅は終わりました。 それだけですよね?

eMMCをフラッシュする場合は、この時点でバッテリーを抜く必要があります。これにより、OSがロードされなくなります。
EMMCは、rootfsファームウェアの後でのみフラッシュでき、rootfsファームウェアとEMMCイメージの間にダウンロードすることはできません!!!!

eMMCをフラッシュしたい人のために。
上記と同じコマンドを実行すると、異なる画像のみが縫製されます。
Windows:
cd "%ProgramFiles%\ maemo \ flasher-3.5"
flasher-3.5.exe -F RX-51_2009SE_1.2009.41-1.VANILLA_PR_EMMC_MR0_ARM.bin -f -R

Linux:
sudo flasher-3.5 -F RX-51_2009SE_1.2009.41-1.VANILLA_PR_EMMC_MR0_ARM.bin -f -R

MacOS:
sudo /usr/bin/flasher-3.5 -F RX-51_2009SE_1.2009.41-1.VANILLA_PR_EMMC_MR0_ARM.bin -f -R


紛失したデバイスに関する碑文が再び表示されます。
フラッシャーv2.5.2(2009年10月21日)

画像「mmc」、サイズ241163 kB
バージョンRX-51_2009SE_1.2009.41-1.VANILLA
適切なUSBデバイスが見つからないため、待機しています。


USBケーブルをデバイスに挿入し、プロセスが終了するまで待ちます。
バッテリーを背面に挿入し、「u」ボタンなしでUSBを接続します。
次のようになります。
バス001、デバイスアドレス006でUSBデバイスが見つかりました。
デバイスRX-51、ハードウェアリビジョン2101が見つかりました
NOLOバージョン1.4.13
「sw-release」のバージョン:RX-51_2009SE_1.2009.42-11.002_PR_002
デバイスをフラッシュモードで起動しています。
適切なUSBデバイスが見つからないため、待機しています。
バス001、デバイスアドレス007でUSBデバイスが見つかりました。
EP2で見つかった生データ転送EP。
[書き込み74%179200/241163 kB 13180 kB / s]
画像は26.848秒(8982 kB / s)で正常にフラッシュしました!

このプロセスには1分もかかりませんでした。 その後、デバイスは再起動します。 すべて準備完了です。

問題と解決策。

* nix 'Permission denied'にメッセージがある場合(tar.gzからflasherを取得した場合)、そうします
chmod + x ./flasher-3.5


* nixで「USBインターフェイスの要求エラー:デバイスまたはリソースがビジーです」というメッセージがある場合は、コマンドを実行します
sudo modprobe -r cdc_phonet


フラッシャーがデバイスを見つけられない場合、次の手順を実行します。


一般に、ファームウェアを把握しました。プロセスは簡単で、フレームレスです(少なくとも、MacOS 10.6、Linux Ubuntu 9.10、およびWindows XPでは問題が発生しませんでした)。

Tyunキーボードレイアウト。


なぜこれが必要なのでしょうか?
1.現在のレイアウトが気に入らない場合(たとえば、デバイスでPythonを使用していて、キーボードに「=」が表示されないことに悩まされる場合は、追加の文字のテーブルを毎回呼び出す必要があります)。
2.「グレー」の電話があり、「ブルー」の文字がロシア語のレイアウトの文字と、ブルジョア版とロシア語の2つの矢印に一致しない場合2.このため、恥ずかしさが始まります。 グレーのデバイスを購入したのは、英語の文字がロシア語により多く刻まれており、非常に便利だからです。 しかし、追加の文字の不一致の問題に遭遇しました。 セミコロンから始まり、ドル記号と括弧で終わる。
これはロシアのキーボードの外観です:
画像
そして、刻まれたブルジョアは次のとおりです。
画像
ご覧のとおり、一致しません。

まあ、決定はきれいであることが判明しました。
必要なのは、レイアウトを変更することだけです。 N900は標準のxkb X拡張を使用します。 レイアウトファイルは次の場所にあります:/ usr / share / X11 / xkb / symbols / nokia_vndr / rx-51
ファイル形式とxkb設定の詳細については、 こちらこちらこちらご覧ください

たくさんの手紙がありますので、ここでは詳しく説明しませんが、あなた自身の裁量で変更できるように十分です。
したがって、このファイルを開くと、再入力するのが大きくなります。 主な部分について説明します。
レイアウトの基本は英語です-基本、このセクションは次のようになります。
partial hidden alphanumeric_keys xkb_symbols "english_base" { // 1. row key <AD01> { [ q, Q, 1, 1 ] }; key <AD02> { [ w, W, 2, 2 ] }; key <AD03> { [ e, E, 3, 3 ] }; key <AD04> { [ r, R, 4, 4 ] }; key <AD05> { [ t, T, 5, 5 ] }; key <AD06> { [ y, Y, 6, 6 ] }; key <AD07> { [ u, U, 7, 7 ] }; key <AD08> { [ i, I, 8, 8 ] }; key <AD09> { [ o, O, 9, 9 ] }; key <AD10> { [ p, P, 0, 0 ] }; key <AB08> { [ comma, semicolon, equal, equal ] }; // 2. row key <AC01> { [ a, A, asterisk, asterisk ] }; key <AC02> { [ s, S, plus, plus ] }; key <AC03> { [ d, D, numbersign, numbersign ] }; key <AC04> { [ f, F, minus, minus ] }; key <AC05> { [ g, G, underscore, underscore ] }; key <AC06> { [ h, H, parenleft, parenleft ] }; key <AC07> { [ j, J, parenright, parenright ] }; key <AC08> { [ k, K, ampersand, ampersand ] }; key <AC09> { [ l, L, exclam, exclam ] }; key <AB09> { [ period, colon, question, question ] }; // 3. row key <AB01> { [ z, Z, sterling, sterling ] }; key <AB02> { [ x, X, dollar, dollar ] }; key <AB03> { [ c, C, EuroSign, EuroSign ] }; key <AB04> { [ v, V, slash, slash ] }; key <AB05> { [ b, B, backslash, backslash ] }; key <AB06> { [ n, N, quotedbl, quotedbl ] }; key <AB07> { [ m, M, apostrophe, apostrophe ] }; key <SPCE> { [ space, space, at, at ] }; }; * This source code was highlighted with Source Code Highlighter .
  1. partial hidden alphanumeric_keys xkb_symbols "english_base" { // 1. row key <AD01> { [ q, Q, 1, 1 ] }; key <AD02> { [ w, W, 2, 2 ] }; key <AD03> { [ e, E, 3, 3 ] }; key <AD04> { [ r, R, 4, 4 ] }; key <AD05> { [ t, T, 5, 5 ] }; key <AD06> { [ y, Y, 6, 6 ] }; key <AD07> { [ u, U, 7, 7 ] }; key <AD08> { [ i, I, 8, 8 ] }; key <AD09> { [ o, O, 9, 9 ] }; key <AD10> { [ p, P, 0, 0 ] }; key <AB08> { [ comma, semicolon, equal, equal ] }; // 2. row key <AC01> { [ a, A, asterisk, asterisk ] }; key <AC02> { [ s, S, plus, plus ] }; key <AC03> { [ d, D, numbersign, numbersign ] }; key <AC04> { [ f, F, minus, minus ] }; key <AC05> { [ g, G, underscore, underscore ] }; key <AC06> { [ h, H, parenleft, parenleft ] }; key <AC07> { [ j, J, parenright, parenright ] }; key <AC08> { [ k, K, ampersand, ampersand ] }; key <AC09> { [ l, L, exclam, exclam ] }; key <AB09> { [ period, colon, question, question ] }; // 3. row key <AB01> { [ z, Z, sterling, sterling ] }; key <AB02> { [ x, X, dollar, dollar ] }; key <AB03> { [ c, C, EuroSign, EuroSign ] }; key <AB04> { [ v, V, slash, slash ] }; key <AB05> { [ b, B, backslash, backslash ] }; key <AB06> { [ n, N, quotedbl, quotedbl ] }; key <AB07> { [ m, M, apostrophe, apostrophe ] }; key <SPCE> { [ space, space, at, at ] }; }; * This source code was highlighted with Source Code Highlighter .
  2. partial hidden alphanumeric_keys xkb_symbols "english_base" { // 1. row key <AD01> { [ q, Q, 1, 1 ] }; key <AD02> { [ w, W, 2, 2 ] }; key <AD03> { [ e, E, 3, 3 ] }; key <AD04> { [ r, R, 4, 4 ] }; key <AD05> { [ t, T, 5, 5 ] }; key <AD06> { [ y, Y, 6, 6 ] }; key <AD07> { [ u, U, 7, 7 ] }; key <AD08> { [ i, I, 8, 8 ] }; key <AD09> { [ o, O, 9, 9 ] }; key <AD10> { [ p, P, 0, 0 ] }; key <AB08> { [ comma, semicolon, equal, equal ] }; // 2. row key <AC01> { [ a, A, asterisk, asterisk ] }; key <AC02> { [ s, S, plus, plus ] }; key <AC03> { [ d, D, numbersign, numbersign ] }; key <AC04> { [ f, F, minus, minus ] }; key <AC05> { [ g, G, underscore, underscore ] }; key <AC06> { [ h, H, parenleft, parenleft ] }; key <AC07> { [ j, J, parenright, parenright ] }; key <AC08> { [ k, K, ampersand, ampersand ] }; key <AC09> { [ l, L, exclam, exclam ] }; key <AB09> { [ period, colon, question, question ] }; // 3. row key <AB01> { [ z, Z, sterling, sterling ] }; key <AB02> { [ x, X, dollar, dollar ] }; key <AB03> { [ c, C, EuroSign, EuroSign ] }; key <AB04> { [ v, V, slash, slash ] }; key <AB05> { [ b, B, backslash, backslash ] }; key <AB06> { [ n, N, quotedbl, quotedbl ] }; key <AB07> { [ m, M, apostrophe, apostrophe ] }; key <SPCE> { [ space, space, at, at ] }; }; * This source code was highlighted with Source Code Highlighter .
  3. partial hidden alphanumeric_keys xkb_symbols "english_base" { // 1. row key <AD01> { [ q, Q, 1, 1 ] }; key <AD02> { [ w, W, 2, 2 ] }; key <AD03> { [ e, E, 3, 3 ] }; key <AD04> { [ r, R, 4, 4 ] }; key <AD05> { [ t, T, 5, 5 ] }; key <AD06> { [ y, Y, 6, 6 ] }; key <AD07> { [ u, U, 7, 7 ] }; key <AD08> { [ i, I, 8, 8 ] }; key <AD09> { [ o, O, 9, 9 ] }; key <AD10> { [ p, P, 0, 0 ] }; key <AB08> { [ comma, semicolon, equal, equal ] }; // 2. row key <AC01> { [ a, A, asterisk, asterisk ] }; key <AC02> { [ s, S, plus, plus ] }; key <AC03> { [ d, D, numbersign, numbersign ] }; key <AC04> { [ f, F, minus, minus ] }; key <AC05> { [ g, G, underscore, underscore ] }; key <AC06> { [ h, H, parenleft, parenleft ] }; key <AC07> { [ j, J, parenright, parenright ] }; key <AC08> { [ k, K, ampersand, ampersand ] }; key <AC09> { [ l, L, exclam, exclam ] }; key <AB09> { [ period, colon, question, question ] }; // 3. row key <AB01> { [ z, Z, sterling, sterling ] }; key <AB02> { [ x, X, dollar, dollar ] }; key <AB03> { [ c, C, EuroSign, EuroSign ] }; key <AB04> { [ v, V, slash, slash ] }; key <AB05> { [ b, B, backslash, backslash ] }; key <AB06> { [ n, N, quotedbl, quotedbl ] }; key <AB07> { [ m, M, apostrophe, apostrophe ] }; key <SPCE> { [ space, space, at, at ] }; }; * This source code was highlighted with Source Code Highlighter .
  4. partial hidden alphanumeric_keys xkb_symbols "english_base" { // 1. row key <AD01> { [ q, Q, 1, 1 ] }; key <AD02> { [ w, W, 2, 2 ] }; key <AD03> { [ e, E, 3, 3 ] }; key <AD04> { [ r, R, 4, 4 ] }; key <AD05> { [ t, T, 5, 5 ] }; key <AD06> { [ y, Y, 6, 6 ] }; key <AD07> { [ u, U, 7, 7 ] }; key <AD08> { [ i, I, 8, 8 ] }; key <AD09> { [ o, O, 9, 9 ] }; key <AD10> { [ p, P, 0, 0 ] }; key <AB08> { [ comma, semicolon, equal, equal ] }; // 2. row key <AC01> { [ a, A, asterisk, asterisk ] }; key <AC02> { [ s, S, plus, plus ] }; key <AC03> { [ d, D, numbersign, numbersign ] }; key <AC04> { [ f, F, minus, minus ] }; key <AC05> { [ g, G, underscore, underscore ] }; key <AC06> { [ h, H, parenleft, parenleft ] }; key <AC07> { [ j, J, parenright, parenright ] }; key <AC08> { [ k, K, ampersand, ampersand ] }; key <AC09> { [ l, L, exclam, exclam ] }; key <AB09> { [ period, colon, question, question ] }; // 3. row key <AB01> { [ z, Z, sterling, sterling ] }; key <AB02> { [ x, X, dollar, dollar ] }; key <AB03> { [ c, C, EuroSign, EuroSign ] }; key <AB04> { [ v, V, slash, slash ] }; key <AB05> { [ b, B, backslash, backslash ] }; key <AB06> { [ n, N, quotedbl, quotedbl ] }; key <AB07> { [ m, M, apostrophe, apostrophe ] }; key <SPCE> { [ space, space, at, at ] }; }; * This source code was highlighted with Source Code Highlighter .
  5. partial hidden alphanumeric_keys xkb_symbols "english_base" { // 1. row key <AD01> { [ q, Q, 1, 1 ] }; key <AD02> { [ w, W, 2, 2 ] }; key <AD03> { [ e, E, 3, 3 ] }; key <AD04> { [ r, R, 4, 4 ] }; key <AD05> { [ t, T, 5, 5 ] }; key <AD06> { [ y, Y, 6, 6 ] }; key <AD07> { [ u, U, 7, 7 ] }; key <AD08> { [ i, I, 8, 8 ] }; key <AD09> { [ o, O, 9, 9 ] }; key <AD10> { [ p, P, 0, 0 ] }; key <AB08> { [ comma, semicolon, equal, equal ] }; // 2. row key <AC01> { [ a, A, asterisk, asterisk ] }; key <AC02> { [ s, S, plus, plus ] }; key <AC03> { [ d, D, numbersign, numbersign ] }; key <AC04> { [ f, F, minus, minus ] }; key <AC05> { [ g, G, underscore, underscore ] }; key <AC06> { [ h, H, parenleft, parenleft ] }; key <AC07> { [ j, J, parenright, parenright ] }; key <AC08> { [ k, K, ampersand, ampersand ] }; key <AC09> { [ l, L, exclam, exclam ] }; key <AB09> { [ period, colon, question, question ] }; // 3. row key <AB01> { [ z, Z, sterling, sterling ] }; key <AB02> { [ x, X, dollar, dollar ] }; key <AB03> { [ c, C, EuroSign, EuroSign ] }; key <AB04> { [ v, V, slash, slash ] }; key <AB05> { [ b, B, backslash, backslash ] }; key <AB06> { [ n, N, quotedbl, quotedbl ] }; key <AB07> { [ m, M, apostrophe, apostrophe ] }; key <SPCE> { [ space, space, at, at ] }; }; * This source code was highlighted with Source Code Highlighter .
  6. partial hidden alphanumeric_keys xkb_symbols "english_base" { // 1. row key <AD01> { [ q, Q, 1, 1 ] }; key <AD02> { [ w, W, 2, 2 ] }; key <AD03> { [ e, E, 3, 3 ] }; key <AD04> { [ r, R, 4, 4 ] }; key <AD05> { [ t, T, 5, 5 ] }; key <AD06> { [ y, Y, 6, 6 ] }; key <AD07> { [ u, U, 7, 7 ] }; key <AD08> { [ i, I, 8, 8 ] }; key <AD09> { [ o, O, 9, 9 ] }; key <AD10> { [ p, P, 0, 0 ] }; key <AB08> { [ comma, semicolon, equal, equal ] }; // 2. row key <AC01> { [ a, A, asterisk, asterisk ] }; key <AC02> { [ s, S, plus, plus ] }; key <AC03> { [ d, D, numbersign, numbersign ] }; key <AC04> { [ f, F, minus, minus ] }; key <AC05> { [ g, G, underscore, underscore ] }; key <AC06> { [ h, H, parenleft, parenleft ] }; key <AC07> { [ j, J, parenright, parenright ] }; key <AC08> { [ k, K, ampersand, ampersand ] }; key <AC09> { [ l, L, exclam, exclam ] }; key <AB09> { [ period, colon, question, question ] }; // 3. row key <AB01> { [ z, Z, sterling, sterling ] }; key <AB02> { [ x, X, dollar, dollar ] }; key <AB03> { [ c, C, EuroSign, EuroSign ] }; key <AB04> { [ v, V, slash, slash ] }; key <AB05> { [ b, B, backslash, backslash ] }; key <AB06> { [ n, N, quotedbl, quotedbl ] }; key <AB07> { [ m, M, apostrophe, apostrophe ] }; key <SPCE> { [ space, space, at, at ] }; }; * This source code was highlighted with Source Code Highlighter .
  7. partial hidden alphanumeric_keys xkb_symbols "english_base" { // 1. row key <AD01> { [ q, Q, 1, 1 ] }; key <AD02> { [ w, W, 2, 2 ] }; key <AD03> { [ e, E, 3, 3 ] }; key <AD04> { [ r, R, 4, 4 ] }; key <AD05> { [ t, T, 5, 5 ] }; key <AD06> { [ y, Y, 6, 6 ] }; key <AD07> { [ u, U, 7, 7 ] }; key <AD08> { [ i, I, 8, 8 ] }; key <AD09> { [ o, O, 9, 9 ] }; key <AD10> { [ p, P, 0, 0 ] }; key <AB08> { [ comma, semicolon, equal, equal ] }; // 2. row key <AC01> { [ a, A, asterisk, asterisk ] }; key <AC02> { [ s, S, plus, plus ] }; key <AC03> { [ d, D, numbersign, numbersign ] }; key <AC04> { [ f, F, minus, minus ] }; key <AC05> { [ g, G, underscore, underscore ] }; key <AC06> { [ h, H, parenleft, parenleft ] }; key <AC07> { [ j, J, parenright, parenright ] }; key <AC08> { [ k, K, ampersand, ampersand ] }; key <AC09> { [ l, L, exclam, exclam ] }; key <AB09> { [ period, colon, question, question ] }; // 3. row key <AB01> { [ z, Z, sterling, sterling ] }; key <AB02> { [ x, X, dollar, dollar ] }; key <AB03> { [ c, C, EuroSign, EuroSign ] }; key <AB04> { [ v, V, slash, slash ] }; key <AB05> { [ b, B, backslash, backslash ] }; key <AB06> { [ n, N, quotedbl, quotedbl ] }; key <AB07> { [ m, M, apostrophe, apostrophe ] }; key <SPCE> { [ space, space, at, at ] }; }; * This source code was highlighted with Source Code Highlighter .
  8. partial hidden alphanumeric_keys xkb_symbols "english_base" { // 1. row key <AD01> { [ q, Q, 1, 1 ] }; key <AD02> { [ w, W, 2, 2 ] }; key <AD03> { [ e, E, 3, 3 ] }; key <AD04> { [ r, R, 4, 4 ] }; key <AD05> { [ t, T, 5, 5 ] }; key <AD06> { [ y, Y, 6, 6 ] }; key <AD07> { [ u, U, 7, 7 ] }; key <AD08> { [ i, I, 8, 8 ] }; key <AD09> { [ o, O, 9, 9 ] }; key <AD10> { [ p, P, 0, 0 ] }; key <AB08> { [ comma, semicolon, equal, equal ] }; // 2. row key <AC01> { [ a, A, asterisk, asterisk ] }; key <AC02> { [ s, S, plus, plus ] }; key <AC03> { [ d, D, numbersign, numbersign ] }; key <AC04> { [ f, F, minus, minus ] }; key <AC05> { [ g, G, underscore, underscore ] }; key <AC06> { [ h, H, parenleft, parenleft ] }; key <AC07> { [ j, J, parenright, parenright ] }; key <AC08> { [ k, K, ampersand, ampersand ] }; key <AC09> { [ l, L, exclam, exclam ] }; key <AB09> { [ period, colon, question, question ] }; // 3. row key <AB01> { [ z, Z, sterling, sterling ] }; key <AB02> { [ x, X, dollar, dollar ] }; key <AB03> { [ c, C, EuroSign, EuroSign ] }; key <AB04> { [ v, V, slash, slash ] }; key <AB05> { [ b, B, backslash, backslash ] }; key <AB06> { [ n, N, quotedbl, quotedbl ] }; key <AB07> { [ m, M, apostrophe, apostrophe ] }; key <SPCE> { [ space, space, at, at ] }; }; * This source code was highlighted with Source Code Highlighter .
  9. partial hidden alphanumeric_keys xkb_symbols "english_base" { // 1. row key <AD01> { [ q, Q, 1, 1 ] }; key <AD02> { [ w, W, 2, 2 ] }; key <AD03> { [ e, E, 3, 3 ] }; key <AD04> { [ r, R, 4, 4 ] }; key <AD05> { [ t, T, 5, 5 ] }; key <AD06> { [ y, Y, 6, 6 ] }; key <AD07> { [ u, U, 7, 7 ] }; key <AD08> { [ i, I, 8, 8 ] }; key <AD09> { [ o, O, 9, 9 ] }; key <AD10> { [ p, P, 0, 0 ] }; key <AB08> { [ comma, semicolon, equal, equal ] }; // 2. row key <AC01> { [ a, A, asterisk, asterisk ] }; key <AC02> { [ s, S, plus, plus ] }; key <AC03> { [ d, D, numbersign, numbersign ] }; key <AC04> { [ f, F, minus, minus ] }; key <AC05> { [ g, G, underscore, underscore ] }; key <AC06> { [ h, H, parenleft, parenleft ] }; key <AC07> { [ j, J, parenright, parenright ] }; key <AC08> { [ k, K, ampersand, ampersand ] }; key <AC09> { [ l, L, exclam, exclam ] }; key <AB09> { [ period, colon, question, question ] }; // 3. row key <AB01> { [ z, Z, sterling, sterling ] }; key <AB02> { [ x, X, dollar, dollar ] }; key <AB03> { [ c, C, EuroSign, EuroSign ] }; key <AB04> { [ v, V, slash, slash ] }; key <AB05> { [ b, B, backslash, backslash ] }; key <AB06> { [ n, N, quotedbl, quotedbl ] }; key <AB07> { [ m, M, apostrophe, apostrophe ] }; key <SPCE> { [ space, space, at, at ] }; }; * This source code was highlighted with Source Code Highlighter .
  10. partial hidden alphanumeric_keys xkb_symbols "english_base" { // 1. row key <AD01> { [ q, Q, 1, 1 ] }; key <AD02> { [ w, W, 2, 2 ] }; key <AD03> { [ e, E, 3, 3 ] }; key <AD04> { [ r, R, 4, 4 ] }; key <AD05> { [ t, T, 5, 5 ] }; key <AD06> { [ y, Y, 6, 6 ] }; key <AD07> { [ u, U, 7, 7 ] }; key <AD08> { [ i, I, 8, 8 ] }; key <AD09> { [ o, O, 9, 9 ] }; key <AD10> { [ p, P, 0, 0 ] }; key <AB08> { [ comma, semicolon, equal, equal ] }; // 2. row key <AC01> { [ a, A, asterisk, asterisk ] }; key <AC02> { [ s, S, plus, plus ] }; key <AC03> { [ d, D, numbersign, numbersign ] }; key <AC04> { [ f, F, minus, minus ] }; key <AC05> { [ g, G, underscore, underscore ] }; key <AC06> { [ h, H, parenleft, parenleft ] }; key <AC07> { [ j, J, parenright, parenright ] }; key <AC08> { [ k, K, ampersand, ampersand ] }; key <AC09> { [ l, L, exclam, exclam ] }; key <AB09> { [ period, colon, question, question ] }; // 3. row key <AB01> { [ z, Z, sterling, sterling ] }; key <AB02> { [ x, X, dollar, dollar ] }; key <AB03> { [ c, C, EuroSign, EuroSign ] }; key <AB04> { [ v, V, slash, slash ] }; key <AB05> { [ b, B, backslash, backslash ] }; key <AB06> { [ n, N, quotedbl, quotedbl ] }; key <AB07> { [ m, M, apostrophe, apostrophe ] }; key <SPCE> { [ space, space, at, at ] }; }; * This source code was highlighted with Source Code Highlighter .
  11. partial hidden alphanumeric_keys xkb_symbols "english_base" { // 1. row key <AD01> { [ q, Q, 1, 1 ] }; key <AD02> { [ w, W, 2, 2 ] }; key <AD03> { [ e, E, 3, 3 ] }; key <AD04> { [ r, R, 4, 4 ] }; key <AD05> { [ t, T, 5, 5 ] }; key <AD06> { [ y, Y, 6, 6 ] }; key <AD07> { [ u, U, 7, 7 ] }; key <AD08> { [ i, I, 8, 8 ] }; key <AD09> { [ o, O, 9, 9 ] }; key <AD10> { [ p, P, 0, 0 ] }; key <AB08> { [ comma, semicolon, equal, equal ] }; // 2. row key <AC01> { [ a, A, asterisk, asterisk ] }; key <AC02> { [ s, S, plus, plus ] }; key <AC03> { [ d, D, numbersign, numbersign ] }; key <AC04> { [ f, F, minus, minus ] }; key <AC05> { [ g, G, underscore, underscore ] }; key <AC06> { [ h, H, parenleft, parenleft ] }; key <AC07> { [ j, J, parenright, parenright ] }; key <AC08> { [ k, K, ampersand, ampersand ] }; key <AC09> { [ l, L, exclam, exclam ] }; key <AB09> { [ period, colon, question, question ] }; // 3. row key <AB01> { [ z, Z, sterling, sterling ] }; key <AB02> { [ x, X, dollar, dollar ] }; key <AB03> { [ c, C, EuroSign, EuroSign ] }; key <AB04> { [ v, V, slash, slash ] }; key <AB05> { [ b, B, backslash, backslash ] }; key <AB06> { [ n, N, quotedbl, quotedbl ] }; key <AB07> { [ m, M, apostrophe, apostrophe ] }; key <SPCE> { [ space, space, at, at ] }; }; * This source code was highlighted with Source Code Highlighter .
  12. partial hidden alphanumeric_keys xkb_symbols "english_base" { // 1. row key <AD01> { [ q, Q, 1, 1 ] }; key <AD02> { [ w, W, 2, 2 ] }; key <AD03> { [ e, E, 3, 3 ] }; key <AD04> { [ r, R, 4, 4 ] }; key <AD05> { [ t, T, 5, 5 ] }; key <AD06> { [ y, Y, 6, 6 ] }; key <AD07> { [ u, U, 7, 7 ] }; key <AD08> { [ i, I, 8, 8 ] }; key <AD09> { [ o, O, 9, 9 ] }; key <AD10> { [ p, P, 0, 0 ] }; key <AB08> { [ comma, semicolon, equal, equal ] }; // 2. row key <AC01> { [ a, A, asterisk, asterisk ] }; key <AC02> { [ s, S, plus, plus ] }; key <AC03> { [ d, D, numbersign, numbersign ] }; key <AC04> { [ f, F, minus, minus ] }; key <AC05> { [ g, G, underscore, underscore ] }; key <AC06> { [ h, H, parenleft, parenleft ] }; key <AC07> { [ j, J, parenright, parenright ] }; key <AC08> { [ k, K, ampersand, ampersand ] }; key <AC09> { [ l, L, exclam, exclam ] }; key <AB09> { [ period, colon, question, question ] }; // 3. row key <AB01> { [ z, Z, sterling, sterling ] }; key <AB02> { [ x, X, dollar, dollar ] }; key <AB03> { [ c, C, EuroSign, EuroSign ] }; key <AB04> { [ v, V, slash, slash ] }; key <AB05> { [ b, B, backslash, backslash ] }; key <AB06> { [ n, N, quotedbl, quotedbl ] }; key <AB07> { [ m, M, apostrophe, apostrophe ] }; key <SPCE> { [ space, space, at, at ] }; }; * This source code was highlighted with Source Code Highlighter .
  13. partial hidden alphanumeric_keys xkb_symbols "english_base" { // 1. row key <AD01> { [ q, Q, 1, 1 ] }; key <AD02> { [ w, W, 2, 2 ] }; key <AD03> { [ e, E, 3, 3 ] }; key <AD04> { [ r, R, 4, 4 ] }; key <AD05> { [ t, T, 5, 5 ] }; key <AD06> { [ y, Y, 6, 6 ] }; key <AD07> { [ u, U, 7, 7 ] }; key <AD08> { [ i, I, 8, 8 ] }; key <AD09> { [ o, O, 9, 9 ] }; key <AD10> { [ p, P, 0, 0 ] }; key <AB08> { [ comma, semicolon, equal, equal ] }; // 2. row key <AC01> { [ a, A, asterisk, asterisk ] }; key <AC02> { [ s, S, plus, plus ] }; key <AC03> { [ d, D, numbersign, numbersign ] }; key <AC04> { [ f, F, minus, minus ] }; key <AC05> { [ g, G, underscore, underscore ] }; key <AC06> { [ h, H, parenleft, parenleft ] }; key <AC07> { [ j, J, parenright, parenright ] }; key <AC08> { [ k, K, ampersand, ampersand ] }; key <AC09> { [ l, L, exclam, exclam ] }; key <AB09> { [ period, colon, question, question ] }; // 3. row key <AB01> { [ z, Z, sterling, sterling ] }; key <AB02> { [ x, X, dollar, dollar ] }; key <AB03> { [ c, C, EuroSign, EuroSign ] }; key <AB04> { [ v, V, slash, slash ] }; key <AB05> { [ b, B, backslash, backslash ] }; key <AB06> { [ n, N, quotedbl, quotedbl ] }; key <AB07> { [ m, M, apostrophe, apostrophe ] }; key <SPCE> { [ space, space, at, at ] }; }; * This source code was highlighted with Source Code Highlighter .
  14. partial hidden alphanumeric_keys xkb_symbols "english_base" { // 1. row key <AD01> { [ q, Q, 1, 1 ] }; key <AD02> { [ w, W, 2, 2 ] }; key <AD03> { [ e, E, 3, 3 ] }; key <AD04> { [ r, R, 4, 4 ] }; key <AD05> { [ t, T, 5, 5 ] }; key <AD06> { [ y, Y, 6, 6 ] }; key <AD07> { [ u, U, 7, 7 ] }; key <AD08> { [ i, I, 8, 8 ] }; key <AD09> { [ o, O, 9, 9 ] }; key <AD10> { [ p, P, 0, 0 ] }; key <AB08> { [ comma, semicolon, equal, equal ] }; // 2. row key <AC01> { [ a, A, asterisk, asterisk ] }; key <AC02> { [ s, S, plus, plus ] }; key <AC03> { [ d, D, numbersign, numbersign ] }; key <AC04> { [ f, F, minus, minus ] }; key <AC05> { [ g, G, underscore, underscore ] }; key <AC06> { [ h, H, parenleft, parenleft ] }; key <AC07> { [ j, J, parenright, parenright ] }; key <AC08> { [ k, K, ampersand, ampersand ] }; key <AC09> { [ l, L, exclam, exclam ] }; key <AB09> { [ period, colon, question, question ] }; // 3. row key <AB01> { [ z, Z, sterling, sterling ] }; key <AB02> { [ x, X, dollar, dollar ] }; key <AB03> { [ c, C, EuroSign, EuroSign ] }; key <AB04> { [ v, V, slash, slash ] }; key <AB05> { [ b, B, backslash, backslash ] }; key <AB06> { [ n, N, quotedbl, quotedbl ] }; key <AB07> { [ m, M, apostrophe, apostrophe ] }; key <SPCE> { [ space, space, at, at ] }; }; * This source code was highlighted with Source Code Highlighter .
  15. partial hidden alphanumeric_keys xkb_symbols "english_base" { // 1. row key <AD01> { [ q, Q, 1, 1 ] }; key <AD02> { [ w, W, 2, 2 ] }; key <AD03> { [ e, E, 3, 3 ] }; key <AD04> { [ r, R, 4, 4 ] }; key <AD05> { [ t, T, 5, 5 ] }; key <AD06> { [ y, Y, 6, 6 ] }; key <AD07> { [ u, U, 7, 7 ] }; key <AD08> { [ i, I, 8, 8 ] }; key <AD09> { [ o, O, 9, 9 ] }; key <AD10> { [ p, P, 0, 0 ] }; key <AB08> { [ comma, semicolon, equal, equal ] }; // 2. row key <AC01> { [ a, A, asterisk, asterisk ] }; key <AC02> { [ s, S, plus, plus ] }; key <AC03> { [ d, D, numbersign, numbersign ] }; key <AC04> { [ f, F, minus, minus ] }; key <AC05> { [ g, G, underscore, underscore ] }; key <AC06> { [ h, H, parenleft, parenleft ] }; key <AC07> { [ j, J, parenright, parenright ] }; key <AC08> { [ k, K, ampersand, ampersand ] }; key <AC09> { [ l, L, exclam, exclam ] }; key <AB09> { [ period, colon, question, question ] }; // 3. row key <AB01> { [ z, Z, sterling, sterling ] }; key <AB02> { [ x, X, dollar, dollar ] }; key <AB03> { [ c, C, EuroSign, EuroSign ] }; key <AB04> { [ v, V, slash, slash ] }; key <AB05> { [ b, B, backslash, backslash ] }; key <AB06> { [ n, N, quotedbl, quotedbl ] }; key <AB07> { [ m, M, apostrophe, apostrophe ] }; key <SPCE> { [ space, space, at, at ] }; }; * This source code was highlighted with Source Code Highlighter .
  16. partial hidden alphanumeric_keys xkb_symbols "english_base" { // 1. row key <AD01> { [ q, Q, 1, 1 ] }; key <AD02> { [ w, W, 2, 2 ] }; key <AD03> { [ e, E, 3, 3 ] }; key <AD04> { [ r, R, 4, 4 ] }; key <AD05> { [ t, T, 5, 5 ] }; key <AD06> { [ y, Y, 6, 6 ] }; key <AD07> { [ u, U, 7, 7 ] }; key <AD08> { [ i, I, 8, 8 ] }; key <AD09> { [ o, O, 9, 9 ] }; key <AD10> { [ p, P, 0, 0 ] }; key <AB08> { [ comma, semicolon, equal, equal ] }; // 2. row key <AC01> { [ a, A, asterisk, asterisk ] }; key <AC02> { [ s, S, plus, plus ] }; key <AC03> { [ d, D, numbersign, numbersign ] }; key <AC04> { [ f, F, minus, minus ] }; key <AC05> { [ g, G, underscore, underscore ] }; key <AC06> { [ h, H, parenleft, parenleft ] }; key <AC07> { [ j, J, parenright, parenright ] }; key <AC08> { [ k, K, ampersand, ampersand ] }; key <AC09> { [ l, L, exclam, exclam ] }; key <AB09> { [ period, colon, question, question ] }; // 3. row key <AB01> { [ z, Z, sterling, sterling ] }; key <AB02> { [ x, X, dollar, dollar ] }; key <AB03> { [ c, C, EuroSign, EuroSign ] }; key <AB04> { [ v, V, slash, slash ] }; key <AB05> { [ b, B, backslash, backslash ] }; key <AB06> { [ n, N, quotedbl, quotedbl ] }; key <AB07> { [ m, M, apostrophe, apostrophe ] }; key <SPCE> { [ space, space, at, at ] }; }; * This source code was highlighted with Source Code Highlighter .
  17. partial hidden alphanumeric_keys xkb_symbols "english_base" { // 1. row key <AD01> { [ q, Q, 1, 1 ] }; key <AD02> { [ w, W, 2, 2 ] }; key <AD03> { [ e, E, 3, 3 ] }; key <AD04> { [ r, R, 4, 4 ] }; key <AD05> { [ t, T, 5, 5 ] }; key <AD06> { [ y, Y, 6, 6 ] }; key <AD07> { [ u, U, 7, 7 ] }; key <AD08> { [ i, I, 8, 8 ] }; key <AD09> { [ o, O, 9, 9 ] }; key <AD10> { [ p, P, 0, 0 ] }; key <AB08> { [ comma, semicolon, equal, equal ] }; // 2. row key <AC01> { [ a, A, asterisk, asterisk ] }; key <AC02> { [ s, S, plus, plus ] }; key <AC03> { [ d, D, numbersign, numbersign ] }; key <AC04> { [ f, F, minus, minus ] }; key <AC05> { [ g, G, underscore, underscore ] }; key <AC06> { [ h, H, parenleft, parenleft ] }; key <AC07> { [ j, J, parenright, parenright ] }; key <AC08> { [ k, K, ampersand, ampersand ] }; key <AC09> { [ l, L, exclam, exclam ] }; key <AB09> { [ period, colon, question, question ] }; // 3. row key <AB01> { [ z, Z, sterling, sterling ] }; key <AB02> { [ x, X, dollar, dollar ] }; key <AB03> { [ c, C, EuroSign, EuroSign ] }; key <AB04> { [ v, V, slash, slash ] }; key <AB05> { [ b, B, backslash, backslash ] }; key <AB06> { [ n, N, quotedbl, quotedbl ] }; key <AB07> { [ m, M, apostrophe, apostrophe ] }; key <SPCE> { [ space, space, at, at ] }; }; * This source code was highlighted with Source Code Highlighter .
  18. partial hidden alphanumeric_keys xkb_symbols "english_base" { // 1. row key <AD01> { [ q, Q, 1, 1 ] }; key <AD02> { [ w, W, 2, 2 ] }; key <AD03> { [ e, E, 3, 3 ] }; key <AD04> { [ r, R, 4, 4 ] }; key <AD05> { [ t, T, 5, 5 ] }; key <AD06> { [ y, Y, 6, 6 ] }; key <AD07> { [ u, U, 7, 7 ] }; key <AD08> { [ i, I, 8, 8 ] }; key <AD09> { [ o, O, 9, 9 ] }; key <AD10> { [ p, P, 0, 0 ] }; key <AB08> { [ comma, semicolon, equal, equal ] }; // 2. row key <AC01> { [ a, A, asterisk, asterisk ] }; key <AC02> { [ s, S, plus, plus ] }; key <AC03> { [ d, D, numbersign, numbersign ] }; key <AC04> { [ f, F, minus, minus ] }; key <AC05> { [ g, G, underscore, underscore ] }; key <AC06> { [ h, H, parenleft, parenleft ] }; key <AC07> { [ j, J, parenright, parenright ] }; key <AC08> { [ k, K, ampersand, ampersand ] }; key <AC09> { [ l, L, exclam, exclam ] }; key <AB09> { [ period, colon, question, question ] }; // 3. row key <AB01> { [ z, Z, sterling, sterling ] }; key <AB02> { [ x, X, dollar, dollar ] }; key <AB03> { [ c, C, EuroSign, EuroSign ] }; key <AB04> { [ v, V, slash, slash ] }; key <AB05> { [ b, B, backslash, backslash ] }; key <AB06> { [ n, N, quotedbl, quotedbl ] }; key <AB07> { [ m, M, apostrophe, apostrophe ] }; key <SPCE> { [ space, space, at, at ] }; }; * This source code was highlighted with Source Code Highlighter .
  19. partial hidden alphanumeric_keys xkb_symbols "english_base" { // 1. row key <AD01> { [ q, Q, 1, 1 ] }; key <AD02> { [ w, W, 2, 2 ] }; key <AD03> { [ e, E, 3, 3 ] }; key <AD04> { [ r, R, 4, 4 ] }; key <AD05> { [ t, T, 5, 5 ] }; key <AD06> { [ y, Y, 6, 6 ] }; key <AD07> { [ u, U, 7, 7 ] }; key <AD08> { [ i, I, 8, 8 ] }; key <AD09> { [ o, O, 9, 9 ] }; key <AD10> { [ p, P, 0, 0 ] }; key <AB08> { [ comma, semicolon, equal, equal ] }; // 2. row key <AC01> { [ a, A, asterisk, asterisk ] }; key <AC02> { [ s, S, plus, plus ] }; key <AC03> { [ d, D, numbersign, numbersign ] }; key <AC04> { [ f, F, minus, minus ] }; key <AC05> { [ g, G, underscore, underscore ] }; key <AC06> { [ h, H, parenleft, parenleft ] }; key <AC07> { [ j, J, parenright, parenright ] }; key <AC08> { [ k, K, ampersand, ampersand ] }; key <AC09> { [ l, L, exclam, exclam ] }; key <AB09> { [ period, colon, question, question ] }; // 3. row key <AB01> { [ z, Z, sterling, sterling ] }; key <AB02> { [ x, X, dollar, dollar ] }; key <AB03> { [ c, C, EuroSign, EuroSign ] }; key <AB04> { [ v, V, slash, slash ] }; key <AB05> { [ b, B, backslash, backslash ] }; key <AB06> { [ n, N, quotedbl, quotedbl ] }; key <AB07> { [ m, M, apostrophe, apostrophe ] }; key <SPCE> { [ space, space, at, at ] }; }; * This source code was highlighted with Source Code Highlighter .
  20. partial hidden alphanumeric_keys xkb_symbols "english_base" { // 1. row key <AD01> { [ q, Q, 1, 1 ] }; key <AD02> { [ w, W, 2, 2 ] }; key <AD03> { [ e, E, 3, 3 ] }; key <AD04> { [ r, R, 4, 4 ] }; key <AD05> { [ t, T, 5, 5 ] }; key <AD06> { [ y, Y, 6, 6 ] }; key <AD07> { [ u, U, 7, 7 ] }; key <AD08> { [ i, I, 8, 8 ] }; key <AD09> { [ o, O, 9, 9 ] }; key <AD10> { [ p, P, 0, 0 ] }; key <AB08> { [ comma, semicolon, equal, equal ] }; // 2. row key <AC01> { [ a, A, asterisk, asterisk ] }; key <AC02> { [ s, S, plus, plus ] }; key <AC03> { [ d, D, numbersign, numbersign ] }; key <AC04> { [ f, F, minus, minus ] }; key <AC05> { [ g, G, underscore, underscore ] }; key <AC06> { [ h, H, parenleft, parenleft ] }; key <AC07> { [ j, J, parenright, parenright ] }; key <AC08> { [ k, K, ampersand, ampersand ] }; key <AC09> { [ l, L, exclam, exclam ] }; key <AB09> { [ period, colon, question, question ] }; // 3. row key <AB01> { [ z, Z, sterling, sterling ] }; key <AB02> { [ x, X, dollar, dollar ] }; key <AB03> { [ c, C, EuroSign, EuroSign ] }; key <AB04> { [ v, V, slash, slash ] }; key <AB05> { [ b, B, backslash, backslash ] }; key <AB06> { [ n, N, quotedbl, quotedbl ] }; key <AB07> { [ m, M, apostrophe, apostrophe ] }; key <SPCE> { [ space, space, at, at ] }; }; * This source code was highlighted with Source Code Highlighter .
  21. partial hidden alphanumeric_keys xkb_symbols "english_base" { // 1. row key <AD01> { [ q, Q, 1, 1 ] }; key <AD02> { [ w, W, 2, 2 ] }; key <AD03> { [ e, E, 3, 3 ] }; key <AD04> { [ r, R, 4, 4 ] }; key <AD05> { [ t, T, 5, 5 ] }; key <AD06> { [ y, Y, 6, 6 ] }; key <AD07> { [ u, U, 7, 7 ] }; key <AD08> { [ i, I, 8, 8 ] }; key <AD09> { [ o, O, 9, 9 ] }; key <AD10> { [ p, P, 0, 0 ] }; key <AB08> { [ comma, semicolon, equal, equal ] }; // 2. row key <AC01> { [ a, A, asterisk, asterisk ] }; key <AC02> { [ s, S, plus, plus ] }; key <AC03> { [ d, D, numbersign, numbersign ] }; key <AC04> { [ f, F, minus, minus ] }; key <AC05> { [ g, G, underscore, underscore ] }; key <AC06> { [ h, H, parenleft, parenleft ] }; key <AC07> { [ j, J, parenright, parenright ] }; key <AC08> { [ k, K, ampersand, ampersand ] }; key <AC09> { [ l, L, exclam, exclam ] }; key <AB09> { [ period, colon, question, question ] }; // 3. row key <AB01> { [ z, Z, sterling, sterling ] }; key <AB02> { [ x, X, dollar, dollar ] }; key <AB03> { [ c, C, EuroSign, EuroSign ] }; key <AB04> { [ v, V, slash, slash ] }; key <AB05> { [ b, B, backslash, backslash ] }; key <AB06> { [ n, N, quotedbl, quotedbl ] }; key <AB07> { [ m, M, apostrophe, apostrophe ] }; key <SPCE> { [ space, space, at, at ] }; }; * This source code was highlighted with Source Code Highlighter .
  22. partial hidden alphanumeric_keys xkb_symbols "english_base" { // 1. row key <AD01> { [ q, Q, 1, 1 ] }; key <AD02> { [ w, W, 2, 2 ] }; key <AD03> { [ e, E, 3, 3 ] }; key <AD04> { [ r, R, 4, 4 ] }; key <AD05> { [ t, T, 5, 5 ] }; key <AD06> { [ y, Y, 6, 6 ] }; key <AD07> { [ u, U, 7, 7 ] }; key <AD08> { [ i, I, 8, 8 ] }; key <AD09> { [ o, O, 9, 9 ] }; key <AD10> { [ p, P, 0, 0 ] }; key <AB08> { [ comma, semicolon, equal, equal ] }; // 2. row key <AC01> { [ a, A, asterisk, asterisk ] }; key <AC02> { [ s, S, plus, plus ] }; key <AC03> { [ d, D, numbersign, numbersign ] }; key <AC04> { [ f, F, minus, minus ] }; key <AC05> { [ g, G, underscore, underscore ] }; key <AC06> { [ h, H, parenleft, parenleft ] }; key <AC07> { [ j, J, parenright, parenright ] }; key <AC08> { [ k, K, ampersand, ampersand ] }; key <AC09> { [ l, L, exclam, exclam ] }; key <AB09> { [ period, colon, question, question ] }; // 3. row key <AB01> { [ z, Z, sterling, sterling ] }; key <AB02> { [ x, X, dollar, dollar ] }; key <AB03> { [ c, C, EuroSign, EuroSign ] }; key <AB04> { [ v, V, slash, slash ] }; key <AB05> { [ b, B, backslash, backslash ] }; key <AB06> { [ n, N, quotedbl, quotedbl ] }; key <AB07> { [ m, M, apostrophe, apostrophe ] }; key <SPCE> { [ space, space, at, at ] }; }; * This source code was highlighted with Source Code Highlighter .
  23. partial hidden alphanumeric_keys xkb_symbols "english_base" { // 1. row key <AD01> { [ q, Q, 1, 1 ] }; key <AD02> { [ w, W, 2, 2 ] }; key <AD03> { [ e, E, 3, 3 ] }; key <AD04> { [ r, R, 4, 4 ] }; key <AD05> { [ t, T, 5, 5 ] }; key <AD06> { [ y, Y, 6, 6 ] }; key <AD07> { [ u, U, 7, 7 ] }; key <AD08> { [ i, I, 8, 8 ] }; key <AD09> { [ o, O, 9, 9 ] }; key <AD10> { [ p, P, 0, 0 ] }; key <AB08> { [ comma, semicolon, equal, equal ] }; // 2. row key <AC01> { [ a, A, asterisk, asterisk ] }; key <AC02> { [ s, S, plus, plus ] }; key <AC03> { [ d, D, numbersign, numbersign ] }; key <AC04> { [ f, F, minus, minus ] }; key <AC05> { [ g, G, underscore, underscore ] }; key <AC06> { [ h, H, parenleft, parenleft ] }; key <AC07> { [ j, J, parenright, parenright ] }; key <AC08> { [ k, K, ampersand, ampersand ] }; key <AC09> { [ l, L, exclam, exclam ] }; key <AB09> { [ period, colon, question, question ] }; // 3. row key <AB01> { [ z, Z, sterling, sterling ] }; key <AB02> { [ x, X, dollar, dollar ] }; key <AB03> { [ c, C, EuroSign, EuroSign ] }; key <AB04> { [ v, V, slash, slash ] }; key <AB05> { [ b, B, backslash, backslash ] }; key <AB06> { [ n, N, quotedbl, quotedbl ] }; key <AB07> { [ m, M, apostrophe, apostrophe ] }; key <SPCE> { [ space, space, at, at ] }; }; * This source code was highlighted with Source Code Highlighter .
  24. partial hidden alphanumeric_keys xkb_symbols "english_base" { // 1. row key <AD01> { [ q, Q, 1, 1 ] }; key <AD02> { [ w, W, 2, 2 ] }; key <AD03> { [ e, E, 3, 3 ] }; key <AD04> { [ r, R, 4, 4 ] }; key <AD05> { [ t, T, 5, 5 ] }; key <AD06> { [ y, Y, 6, 6 ] }; key <AD07> { [ u, U, 7, 7 ] }; key <AD08> { [ i, I, 8, 8 ] }; key <AD09> { [ o, O, 9, 9 ] }; key <AD10> { [ p, P, 0, 0 ] }; key <AB08> { [ comma, semicolon, equal, equal ] }; // 2. row key <AC01> { [ a, A, asterisk, asterisk ] }; key <AC02> { [ s, S, plus, plus ] }; key <AC03> { [ d, D, numbersign, numbersign ] }; key <AC04> { [ f, F, minus, minus ] }; key <AC05> { [ g, G, underscore, underscore ] }; key <AC06> { [ h, H, parenleft, parenleft ] }; key <AC07> { [ j, J, parenright, parenright ] }; key <AC08> { [ k, K, ampersand, ampersand ] }; key <AC09> { [ l, L, exclam, exclam ] }; key <AB09> { [ period, colon, question, question ] }; // 3. row key <AB01> { [ z, Z, sterling, sterling ] }; key <AB02> { [ x, X, dollar, dollar ] }; key <AB03> { [ c, C, EuroSign, EuroSign ] }; key <AB04> { [ v, V, slash, slash ] }; key <AB05> { [ b, B, backslash, backslash ] }; key <AB06> { [ n, N, quotedbl, quotedbl ] }; key <AB07> { [ m, M, apostrophe, apostrophe ] }; key <SPCE> { [ space, space, at, at ] }; }; * This source code was highlighted with Source Code Highlighter .
  25. partial hidden alphanumeric_keys xkb_symbols "english_base" { // 1. row key <AD01> { [ q, Q, 1, 1 ] }; key <AD02> { [ w, W, 2, 2 ] }; key <AD03> { [ e, E, 3, 3 ] }; key <AD04> { [ r, R, 4, 4 ] }; key <AD05> { [ t, T, 5, 5 ] }; key <AD06> { [ y, Y, 6, 6 ] }; key <AD07> { [ u, U, 7, 7 ] }; key <AD08> { [ i, I, 8, 8 ] }; key <AD09> { [ o, O, 9, 9 ] }; key <AD10> { [ p, P, 0, 0 ] }; key <AB08> { [ comma, semicolon, equal, equal ] }; // 2. row key <AC01> { [ a, A, asterisk, asterisk ] }; key <AC02> { [ s, S, plus, plus ] }; key <AC03> { [ d, D, numbersign, numbersign ] }; key <AC04> { [ f, F, minus, minus ] }; key <AC05> { [ g, G, underscore, underscore ] }; key <AC06> { [ h, H, parenleft, parenleft ] }; key <AC07> { [ j, J, parenright, parenright ] }; key <AC08> { [ k, K, ampersand, ampersand ] }; key <AC09> { [ l, L, exclam, exclam ] }; key <AB09> { [ period, colon, question, question ] }; // 3. row key <AB01> { [ z, Z, sterling, sterling ] }; key <AB02> { [ x, X, dollar, dollar ] }; key <AB03> { [ c, C, EuroSign, EuroSign ] }; key <AB04> { [ v, V, slash, slash ] }; key <AB05> { [ b, B, backslash, backslash ] }; key <AB06> { [ n, N, quotedbl, quotedbl ] }; key <AB07> { [ m, M, apostrophe, apostrophe ] }; key <SPCE> { [ space, space, at, at ] }; }; * This source code was highlighted with Source Code Highlighter .
  26. partial hidden alphanumeric_keys xkb_symbols "english_base" { // 1. row key <AD01> { [ q, Q, 1, 1 ] }; key <AD02> { [ w, W, 2, 2 ] }; key <AD03> { [ e, E, 3, 3 ] }; key <AD04> { [ r, R, 4, 4 ] }; key <AD05> { [ t, T, 5, 5 ] }; key <AD06> { [ y, Y, 6, 6 ] }; key <AD07> { [ u, U, 7, 7 ] }; key <AD08> { [ i, I, 8, 8 ] }; key <AD09> { [ o, O, 9, 9 ] }; key <AD10> { [ p, P, 0, 0 ] }; key <AB08> { [ comma, semicolon, equal, equal ] }; // 2. row key <AC01> { [ a, A, asterisk, asterisk ] }; key <AC02> { [ s, S, plus, plus ] }; key <AC03> { [ d, D, numbersign, numbersign ] }; key <AC04> { [ f, F, minus, minus ] }; key <AC05> { [ g, G, underscore, underscore ] }; key <AC06> { [ h, H, parenleft, parenleft ] }; key <AC07> { [ j, J, parenright, parenright ] }; key <AC08> { [ k, K, ampersand, ampersand ] }; key <AC09> { [ l, L, exclam, exclam ] }; key <AB09> { [ period, colon, question, question ] }; // 3. row key <AB01> { [ z, Z, sterling, sterling ] }; key <AB02> { [ x, X, dollar, dollar ] }; key <AB03> { [ c, C, EuroSign, EuroSign ] }; key <AB04> { [ v, V, slash, slash ] }; key <AB05> { [ b, B, backslash, backslash ] }; key <AB06> { [ n, N, quotedbl, quotedbl ] }; key <AB07> { [ m, M, apostrophe, apostrophe ] }; key <SPCE> { [ space, space, at, at ] }; }; * This source code was highlighted with Source Code Highlighter .
  27. partial hidden alphanumeric_keys xkb_symbols "english_base" { // 1. row key <AD01> { [ q, Q, 1, 1 ] }; key <AD02> { [ w, W, 2, 2 ] }; key <AD03> { [ e, E, 3, 3 ] }; key <AD04> { [ r, R, 4, 4 ] }; key <AD05> { [ t, T, 5, 5 ] }; key <AD06> { [ y, Y, 6, 6 ] }; key <AD07> { [ u, U, 7, 7 ] }; key <AD08> { [ i, I, 8, 8 ] }; key <AD09> { [ o, O, 9, 9 ] }; key <AD10> { [ p, P, 0, 0 ] }; key <AB08> { [ comma, semicolon, equal, equal ] }; // 2. row key <AC01> { [ a, A, asterisk, asterisk ] }; key <AC02> { [ s, S, plus, plus ] }; key <AC03> { [ d, D, numbersign, numbersign ] }; key <AC04> { [ f, F, minus, minus ] }; key <AC05> { [ g, G, underscore, underscore ] }; key <AC06> { [ h, H, parenleft, parenleft ] }; key <AC07> { [ j, J, parenright, parenright ] }; key <AC08> { [ k, K, ampersand, ampersand ] }; key <AC09> { [ l, L, exclam, exclam ] }; key <AB09> { [ period, colon, question, question ] }; // 3. row key <AB01> { [ z, Z, sterling, sterling ] }; key <AB02> { [ x, X, dollar, dollar ] }; key <AB03> { [ c, C, EuroSign, EuroSign ] }; key <AB04> { [ v, V, slash, slash ] }; key <AB05> { [ b, B, backslash, backslash ] }; key <AB06> { [ n, N, quotedbl, quotedbl ] }; key <AB07> { [ m, M, apostrophe, apostrophe ] }; key <SPCE> { [ space, space, at, at ] }; }; * This source code was highlighted with Source Code Highlighter .
  28. partial hidden alphanumeric_keys xkb_symbols "english_base" { // 1. row key <AD01> { [ q, Q, 1, 1 ] }; key <AD02> { [ w, W, 2, 2 ] }; key <AD03> { [ e, E, 3, 3 ] }; key <AD04> { [ r, R, 4, 4 ] }; key <AD05> { [ t, T, 5, 5 ] }; key <AD06> { [ y, Y, 6, 6 ] }; key <AD07> { [ u, U, 7, 7 ] }; key <AD08> { [ i, I, 8, 8 ] }; key <AD09> { [ o, O, 9, 9 ] }; key <AD10> { [ p, P, 0, 0 ] }; key <AB08> { [ comma, semicolon, equal, equal ] }; // 2. row key <AC01> { [ a, A, asterisk, asterisk ] }; key <AC02> { [ s, S, plus, plus ] }; key <AC03> { [ d, D, numbersign, numbersign ] }; key <AC04> { [ f, F, minus, minus ] }; key <AC05> { [ g, G, underscore, underscore ] }; key <AC06> { [ h, H, parenleft, parenleft ] }; key <AC07> { [ j, J, parenright, parenright ] }; key <AC08> { [ k, K, ampersand, ampersand ] }; key <AC09> { [ l, L, exclam, exclam ] }; key <AB09> { [ period, colon, question, question ] }; // 3. row key <AB01> { [ z, Z, sterling, sterling ] }; key <AB02> { [ x, X, dollar, dollar ] }; key <AB03> { [ c, C, EuroSign, EuroSign ] }; key <AB04> { [ v, V, slash, slash ] }; key <AB05> { [ b, B, backslash, backslash ] }; key <AB06> { [ n, N, quotedbl, quotedbl ] }; key <AB07> { [ m, M, apostrophe, apostrophe ] }; key <SPCE> { [ space, space, at, at ] }; }; * This source code was highlighted with Source Code Highlighter .
  29. partial hidden alphanumeric_keys xkb_symbols "english_base" { // 1. row key <AD01> { [ q, Q, 1, 1 ] }; key <AD02> { [ w, W, 2, 2 ] }; key <AD03> { [ e, E, 3, 3 ] }; key <AD04> { [ r, R, 4, 4 ] }; key <AD05> { [ t, T, 5, 5 ] }; key <AD06> { [ y, Y, 6, 6 ] }; key <AD07> { [ u, U, 7, 7 ] }; key <AD08> { [ i, I, 8, 8 ] }; key <AD09> { [ o, O, 9, 9 ] }; key <AD10> { [ p, P, 0, 0 ] }; key <AB08> { [ comma, semicolon, equal, equal ] }; // 2. row key <AC01> { [ a, A, asterisk, asterisk ] }; key <AC02> { [ s, S, plus, plus ] }; key <AC03> { [ d, D, numbersign, numbersign ] }; key <AC04> { [ f, F, minus, minus ] }; key <AC05> { [ g, G, underscore, underscore ] }; key <AC06> { [ h, H, parenleft, parenleft ] }; key <AC07> { [ j, J, parenright, parenright ] }; key <AC08> { [ k, K, ampersand, ampersand ] }; key <AC09> { [ l, L, exclam, exclam ] }; key <AB09> { [ period, colon, question, question ] }; // 3. row key <AB01> { [ z, Z, sterling, sterling ] }; key <AB02> { [ x, X, dollar, dollar ] }; key <AB03> { [ c, C, EuroSign, EuroSign ] }; key <AB04> { [ v, V, slash, slash ] }; key <AB05> { [ b, B, backslash, backslash ] }; key <AB06> { [ n, N, quotedbl, quotedbl ] }; key <AB07> { [ m, M, apostrophe, apostrophe ] }; key <SPCE> { [ space, space, at, at ] }; }; * This source code was highlighted with Source Code Highlighter .
  30. partial hidden alphanumeric_keys xkb_symbols "english_base" { // 1. row key <AD01> { [ q, Q, 1, 1 ] }; key <AD02> { [ w, W, 2, 2 ] }; key <AD03> { [ e, E, 3, 3 ] }; key <AD04> { [ r, R, 4, 4 ] }; key <AD05> { [ t, T, 5, 5 ] }; key <AD06> { [ y, Y, 6, 6 ] }; key <AD07> { [ u, U, 7, 7 ] }; key <AD08> { [ i, I, 8, 8 ] }; key <AD09> { [ o, O, 9, 9 ] }; key <AD10> { [ p, P, 0, 0 ] }; key <AB08> { [ comma, semicolon, equal, equal ] }; // 2. row key <AC01> { [ a, A, asterisk, asterisk ] }; key <AC02> { [ s, S, plus, plus ] }; key <AC03> { [ d, D, numbersign, numbersign ] }; key <AC04> { [ f, F, minus, minus ] }; key <AC05> { [ g, G, underscore, underscore ] }; key <AC06> { [ h, H, parenleft, parenleft ] }; key <AC07> { [ j, J, parenright, parenright ] }; key <AC08> { [ k, K, ampersand, ampersand ] }; key <AC09> { [ l, L, exclam, exclam ] }; key <AB09> { [ period, colon, question, question ] }; // 3. row key <AB01> { [ z, Z, sterling, sterling ] }; key <AB02> { [ x, X, dollar, dollar ] }; key <AB03> { [ c, C, EuroSign, EuroSign ] }; key <AB04> { [ v, V, slash, slash ] }; key <AB05> { [ b, B, backslash, backslash ] }; key <AB06> { [ n, N, quotedbl, quotedbl ] }; key <AB07> { [ m, M, apostrophe, apostrophe ] }; key <SPCE> { [ space, space, at, at ] }; }; * This source code was highlighted with Source Code Highlighter .
  31. partial hidden alphanumeric_keys xkb_symbols "english_base" { // 1. row key <AD01> { [ q, Q, 1, 1 ] }; key <AD02> { [ w, W, 2, 2 ] }; key <AD03> { [ e, E, 3, 3 ] }; key <AD04> { [ r, R, 4, 4 ] }; key <AD05> { [ t, T, 5, 5 ] }; key <AD06> { [ y, Y, 6, 6 ] }; key <AD07> { [ u, U, 7, 7 ] }; key <AD08> { [ i, I, 8, 8 ] }; key <AD09> { [ o, O, 9, 9 ] }; key <AD10> { [ p, P, 0, 0 ] }; key <AB08> { [ comma, semicolon, equal, equal ] }; // 2. row key <AC01> { [ a, A, asterisk, asterisk ] }; key <AC02> { [ s, S, plus, plus ] }; key <AC03> { [ d, D, numbersign, numbersign ] }; key <AC04> { [ f, F, minus, minus ] }; key <AC05> { [ g, G, underscore, underscore ] }; key <AC06> { [ h, H, parenleft, parenleft ] }; key <AC07> { [ j, J, parenright, parenright ] }; key <AC08> { [ k, K, ampersand, ampersand ] }; key <AC09> { [ l, L, exclam, exclam ] }; key <AB09> { [ period, colon, question, question ] }; // 3. row key <AB01> { [ z, Z, sterling, sterling ] }; key <AB02> { [ x, X, dollar, dollar ] }; key <AB03> { [ c, C, EuroSign, EuroSign ] }; key <AB04> { [ v, V, slash, slash ] }; key <AB05> { [ b, B, backslash, backslash ] }; key <AB06> { [ n, N, quotedbl, quotedbl ] }; key <AB07> { [ m, M, apostrophe, apostrophe ] }; key <SPCE> { [ space, space, at, at ] }; }; * This source code was highlighted with Source Code Highlighter .
  32. partial hidden alphanumeric_keys xkb_symbols "english_base" { // 1. row key <AD01> { [ q, Q, 1, 1 ] }; key <AD02> { [ w, W, 2, 2 ] }; key <AD03> { [ e, E, 3, 3 ] }; key <AD04> { [ r, R, 4, 4 ] }; key <AD05> { [ t, T, 5, 5 ] }; key <AD06> { [ y, Y, 6, 6 ] }; key <AD07> { [ u, U, 7, 7 ] }; key <AD08> { [ i, I, 8, 8 ] }; key <AD09> { [ o, O, 9, 9 ] }; key <AD10> { [ p, P, 0, 0 ] }; key <AB08> { [ comma, semicolon, equal, equal ] }; // 2. row key <AC01> { [ a, A, asterisk, asterisk ] }; key <AC02> { [ s, S, plus, plus ] }; key <AC03> { [ d, D, numbersign, numbersign ] }; key <AC04> { [ f, F, minus, minus ] }; key <AC05> { [ g, G, underscore, underscore ] }; key <AC06> { [ h, H, parenleft, parenleft ] }; key <AC07> { [ j, J, parenright, parenright ] }; key <AC08> { [ k, K, ampersand, ampersand ] }; key <AC09> { [ l, L, exclam, exclam ] }; key <AB09> { [ period, colon, question, question ] }; // 3. row key <AB01> { [ z, Z, sterling, sterling ] }; key <AB02> { [ x, X, dollar, dollar ] }; key <AB03> { [ c, C, EuroSign, EuroSign ] }; key <AB04> { [ v, V, slash, slash ] }; key <AB05> { [ b, B, backslash, backslash ] }; key <AB06> { [ n, N, quotedbl, quotedbl ] }; key <AB07> { [ m, M, apostrophe, apostrophe ] }; key <SPCE> { [ space, space, at, at ] }; }; * This source code was highlighted with Source Code Highlighter .
  33. partial hidden alphanumeric_keys xkb_symbols "english_base" { // 1. row key <AD01> { [ q, Q, 1, 1 ] }; key <AD02> { [ w, W, 2, 2 ] }; key <AD03> { [ e, E, 3, 3 ] }; key <AD04> { [ r, R, 4, 4 ] }; key <AD05> { [ t, T, 5, 5 ] }; key <AD06> { [ y, Y, 6, 6 ] }; key <AD07> { [ u, U, 7, 7 ] }; key <AD08> { [ i, I, 8, 8 ] }; key <AD09> { [ o, O, 9, 9 ] }; key <AD10> { [ p, P, 0, 0 ] }; key <AB08> { [ comma, semicolon, equal, equal ] }; // 2. row key <AC01> { [ a, A, asterisk, asterisk ] }; key <AC02> { [ s, S, plus, plus ] }; key <AC03> { [ d, D, numbersign, numbersign ] }; key <AC04> { [ f, F, minus, minus ] }; key <AC05> { [ g, G, underscore, underscore ] }; key <AC06> { [ h, H, parenleft, parenleft ] }; key <AC07> { [ j, J, parenright, parenright ] }; key <AC08> { [ k, K, ampersand, ampersand ] }; key <AC09> { [ l, L, exclam, exclam ] }; key <AB09> { [ period, colon, question, question ] }; // 3. row key <AB01> { [ z, Z, sterling, sterling ] }; key <AB02> { [ x, X, dollar, dollar ] }; key <AB03> { [ c, C, EuroSign, EuroSign ] }; key <AB04> { [ v, V, slash, slash ] }; key <AB05> { [ b, B, backslash, backslash ] }; key <AB06> { [ n, N, quotedbl, quotedbl ] }; key <AB07> { [ m, M, apostrophe, apostrophe ] }; key <SPCE> { [ space, space, at, at ] }; }; * This source code was highlighted with Source Code Highlighter .
  34. partial hidden alphanumeric_keys xkb_symbols "english_base" { // 1. row key <AD01> { [ q, Q, 1, 1 ] }; key <AD02> { [ w, W, 2, 2 ] }; key <AD03> { [ e, E, 3, 3 ] }; key <AD04> { [ r, R, 4, 4 ] }; key <AD05> { [ t, T, 5, 5 ] }; key <AD06> { [ y, Y, 6, 6 ] }; key <AD07> { [ u, U, 7, 7 ] }; key <AD08> { [ i, I, 8, 8 ] }; key <AD09> { [ o, O, 9, 9 ] }; key <AD10> { [ p, P, 0, 0 ] }; key <AB08> { [ comma, semicolon, equal, equal ] }; // 2. row key <AC01> { [ a, A, asterisk, asterisk ] }; key <AC02> { [ s, S, plus, plus ] }; key <AC03> { [ d, D, numbersign, numbersign ] }; key <AC04> { [ f, F, minus, minus ] }; key <AC05> { [ g, G, underscore, underscore ] }; key <AC06> { [ h, H, parenleft, parenleft ] }; key <AC07> { [ j, J, parenright, parenright ] }; key <AC08> { [ k, K, ampersand, ampersand ] }; key <AC09> { [ l, L, exclam, exclam ] }; key <AB09> { [ period, colon, question, question ] }; // 3. row key <AB01> { [ z, Z, sterling, sterling ] }; key <AB02> { [ x, X, dollar, dollar ] }; key <AB03> { [ c, C, EuroSign, EuroSign ] }; key <AB04> { [ v, V, slash, slash ] }; key <AB05> { [ b, B, backslash, backslash ] }; key <AB06> { [ n, N, quotedbl, quotedbl ] }; key <AB07> { [ m, M, apostrophe, apostrophe ] }; key <SPCE> { [ space, space, at, at ] }; }; * This source code was highlighted with Source Code Highlighter .
  35. partial hidden alphanumeric_keys xkb_symbols "english_base" { // 1. row key <AD01> { [ q, Q, 1, 1 ] }; key <AD02> { [ w, W, 2, 2 ] }; key <AD03> { [ e, E, 3, 3 ] }; key <AD04> { [ r, R, 4, 4 ] }; key <AD05> { [ t, T, 5, 5 ] }; key <AD06> { [ y, Y, 6, 6 ] }; key <AD07> { [ u, U, 7, 7 ] }; key <AD08> { [ i, I, 8, 8 ] }; key <AD09> { [ o, O, 9, 9 ] }; key <AD10> { [ p, P, 0, 0 ] }; key <AB08> { [ comma, semicolon, equal, equal ] }; // 2. row key <AC01> { [ a, A, asterisk, asterisk ] }; key <AC02> { [ s, S, plus, plus ] }; key <AC03> { [ d, D, numbersign, numbersign ] }; key <AC04> { [ f, F, minus, minus ] }; key <AC05> { [ g, G, underscore, underscore ] }; key <AC06> { [ h, H, parenleft, parenleft ] }; key <AC07> { [ j, J, parenright, parenright ] }; key <AC08> { [ k, K, ampersand, ampersand ] }; key <AC09> { [ l, L, exclam, exclam ] }; key <AB09> { [ period, colon, question, question ] }; // 3. row key <AB01> { [ z, Z, sterling, sterling ] }; key <AB02> { [ x, X, dollar, dollar ] }; key <AB03> { [ c, C, EuroSign, EuroSign ] }; key <AB04> { [ v, V, slash, slash ] }; key <AB05> { [ b, B, backslash, backslash ] }; key <AB06> { [ n, N, quotedbl, quotedbl ] }; key <AB07> { [ m, M, apostrophe, apostrophe ] }; key <SPCE> { [ space, space, at, at ] }; }; * This source code was highlighted with Source Code Highlighter .
partial hidden alphanumeric_keys xkb_symbols "english_base" { // 1. row key <AD01> { [ q, Q, 1, 1 ] }; key <AD02> { [ w, W, 2, 2 ] }; key <AD03> { [ e, E, 3, 3 ] }; key <AD04> { [ r, R, 4, 4 ] }; key <AD05> { [ t, T, 5, 5 ] }; key <AD06> { [ y, Y, 6, 6 ] }; key <AD07> { [ u, U, 7, 7 ] }; key <AD08> { [ i, I, 8, 8 ] }; key <AD09> { [ o, O, 9, 9 ] }; key <AD10> { [ p, P, 0, 0 ] }; key <AB08> { [ comma, semicolon, equal, equal ] }; // 2. row key <AC01> { [ a, A, asterisk, asterisk ] }; key <AC02> { [ s, S, plus, plus ] }; key <AC03> { [ d, D, numbersign, numbersign ] }; key <AC04> { [ f, F, minus, minus ] }; key <AC05> { [ g, G, underscore, underscore ] }; key <AC06> { [ h, H, parenleft, parenleft ] }; key <AC07> { [ j, J, parenright, parenright ] }; key <AC08> { [ k, K, ampersand, ampersand ] }; key <AC09> { [ l, L, exclam, exclam ] }; key <AB09> { [ period, colon, question, question ] }; // 3. row key <AB01> { [ z, Z, sterling, sterling ] }; key <AB02> { [ x, X, dollar, dollar ] }; key <AB03> { [ c, C, EuroSign, EuroSign ] }; key <AB04> { [ v, V, slash, slash ] }; key <AB05> { [ b, B, backslash, backslash ] }; key <AB06> { [ n, N, quotedbl, quotedbl ] }; key <AB07> { [ m, M, apostrophe, apostrophe ] }; key <SPCE> { [ space, space, at, at ] }; }; * This source code was highlighted with Source Code Highlighter .


使用される4つのレベルがあります。 各エントリは記号であり、コメントはキーボード上の行に分割されます。 このレイアウトは4つのレベルを使用します(1つのボタンで4つの異なる値を取得できます)。 これらのレベルはどのように切り替わるのでしょうか:
Shift(キーボードの上矢印) -いずれの場合も1レベルずつ増加します。 ホールドするか1回押すと、レベルをクリックすると次のキーで値が増加するか、Caps Lockモードを取得するために2回押す必要があります。つまり、その後のすべてのボタンの押下は1レベル増加します。
Fn(キーボードの青い矢印)-2レベル上げます。 Shiftと組み合わせて、3レベル上に増加します。

したがって、テーブルに従って、シンボルテーブルから目的の文字を取得することができます。たとえば、最初のボタンを取得します。
  1. キー<AD01> {[q、Q、1、1]};
*このソースコードは、 ソースコードハイライターで強調表示されました。



「しかし、レイアウトの切り替えはどうですか?」とあなたは尋ねます。 そしてすべてがシンプルです。 ロシア語のレイアウトのセクションを見てみましょう。
  1. 部分的な英数字キー
  2. xkb_symbols "ru" {
  3. include "nokia_vndr / rx-51(english_base)"
  4. 「nokia_vndr / rx-51(arrows_2btns)」を含める
  5. name [Group1] = "Russian" ;
  6. key.type [Group1] = "EIGHT_LEVEL_SEMIALPHABETIC" ;
  7. // 1.行
  8. key <AD01> {[q、Q、1、1、Cyrillic_shorti、Cyrillic_SHORTI、1、1]};
  9. キー<AD02> {[w、W、2、2、Cyrillic_tse、Cyrillic_TSE、2、2]};
  10. キー<AD03> {[e、E、3、3、Cyrillic_u、Cyrillic_U、3、3]};
  11. キー<AD04> {[r、R、4、4、Cyrillic_ka、Cyrillic_KA、4、4]};
  12. キー<AD05> {[t、T、5、5、Cyrillic_ie、Cyrillic_IE、5、5]};
  13. キー<AD06> {[y、Y、6、6、Cyrillic_en、Cyrillic_EN、6、6]};
  14. キー<AD07> {[u、U、7、7、Cyrillic_ghe、Cyrillic_GHE、7、7]};
  15. キー<AD08> {[i、I、8、8、Cyrillic_sha、Cyrillic_SHA、8、8]};
  16. キー<AD09> {[o、O、9、9、Cyrillic_shcha、Cyrillic_SHCHA、9、9]};
  17. キー<AD10> {[p、P、0、0、Cyrillic_ze、Cyrillic_ZE、0、0]};
  18. キー<AB08> {[Cyrillic_ha、Cyrillic_HA、Cyrillic_hardsign、Cyrillic_HARDSIGN、Cyrillic_ha、Cyrillic_HA、Cyrillic_hardsign、Cyrillic_HARDSIGN]};
  19. // 2.行
  20. キー<AC01> {[a、A、アスタリスク、アスタリスク、キリル文字ef、キリル文字EF、アスタリスク、アスタリスク]};
  21. キー<AC02> {[s、S、plus、plus、Cyrillic_yeru、Cyrillic_YERU、plus、plus]};
  22. キー<AC03> {[d、D、numbersign、numbersign、Cyrillic_ve、Cyrillic_VE、numbersign、numbersign]};
  23. キー<AC04> {[f、F、マイナス、マイナス、キリル文字、キリル文字、マイナス、マイナス]};
  24. キー<AC05> {[g、G、アンダースコア、アンダースコア、Cyrillic_pe、Cyrillic_PE、アンダースコア、アンダースコア]};
  25. キー<AC06> {[h、H、exclam、exclam、Cyrillic_er、Cyrillic_ER、exclam、exclam]};
  26. キー<AC07> {[j、J、question、question、Cyrillic_o、Cyrillic_O、question、question]};
  27. キー<AC08> {[k、K、セミコロン、セミコロン、キリル文字、キリル文字、セミコロン、セミコロン]};
  28. キー<AC09> {[l、L、コロン、コロン、キリル文字、キリル文字、コロン、コロン]};
  29. キー<AB09> {[カンマ、コンマ、コンマ、コンマ、Cyrillic_zhe、Cyrillic_ZHE、コンマ、コンマ]};
  30. キー<UP> {[期間、期間、期間、期間、キリル文字、キリル文字、期間、期間]};
  31. // 3.行
  32. キー<AB01> {[z、Z、ドル、ドル、Cyrillic_ya、Cyrillic_YA、ドル、ドル]};
  33. キー<AB02> {[x、X、EuroSign、EuroSign、Cyrillic_che、Cyrillic_CHE、EuroSign、EuroSign]};
  34. キー<AB03> {[c、C、スラッシュ、スラッシュ、Cyrillic_es、Cyrillic_ES、スラッシュ、スラッシュ]};
  35. キー<AB04> {[v、V、parenleft、parenleft、Cyrillic_em、Cyrillic_EM、parenleft、parenleft]};
  36. キー<AB05> {[b、B、parenright、parenright、Cyrillic_i、Cyrillic_I、parenright、parenright]};
  37. キー<AB06> {[n、N、quotedbl、quotedbl、Cyrillic_te、Cyrillic_TE、quotedbl、quotedbl]};
  38. キー<AB07> {[m、M、アポストロフィ、アポストロフィ、キリル文字のソフトサイン、キリル文字のソフトサイン、アポストロフィ、アポストロフィ]};
  39. キー<LEFT> {[Cyrillic_be、Cyrillic_BE、Cyrillic_yu、Cyrillic_YU、Cyrillic_be、Cyrillic_BE、Cyrillic_yu、Cyrillic_YU]};
  40. };
*このソースコードは、 ソースコードハイライターで強調表示されました。

最初に目を引くのは、レベルの数です。 この場合、4ではなく8です。すべてが論理的です。 レベル1〜4は英語のレイアウトで、レベル5〜8はロシア語です。 この記録はこれについても語っています。
  1. key.type [Group1] = "EIGHT_LEVEL_SEMIALPHABETIC" ;
*このソースコードは、 ソースコードハイライターで強調表示されました。

レベルを増減するには、Ctrl +スペースの組み合わせを使用します。 ユーザーにとっては、レイアウトの切り替えと呼ばれ、レベルが4増加します。ロシア語にレイアウトを切り替えると(さらに4回押すと)、ShiftキーとFnキーは同じ原理で機能します。

ただし、レベル7および8で記述しないという1つの制限がありますが、値はレベル3.4から取得されます。 ただし、レベル7および8では、起こりうる問題を回避するために、3および4とまったく同じ値を書き留めることをお勧めします。
2番目に注意する必要があるのは、このエントリです。
  1. 「nokia_vndr / rx-51(arrows_2btns)」を含める
*このソースコードは、 ソースコードハイライターで強調表示されました。

2ボタンカーソルを接続します(これは気に入らず、さらにキーに4つのカーソルボタンがあります)。
ボタンセクションを見てみましょう。
  1. 部分的に隠されたalphanumeric_keys
  2. xkb_symbols "arrows_2btns" {
  3. // rx-51固有の矢印マッピング
  4. // Shiftキーでテキストを選択できるように、通常の第2レベルを列挙しないでください
  5. キー<DOWN> {type [Group1] = "PC_FN_LEVEL2" 、シンボル[Group1] = [Left、Up]};
  6. キー<RGHT> {type [Group1] = "PC_FN_LEVEL2" 、シンボル[Group1] = [Right、Down]};
  7. };
  8. 部分的に隠されたalphanumeric_keys
  9. xkb_symbols "arrows_4btns" {
  10. //標準の矢印マッピング
  11. // Shiftキーでテキストを選択できるように、通常の第2レベルを列挙しないでください
  12. キー<UP> {type [Group1] = "ONE_LEVEL" 、シンボル[Group1] = [Up]};
  13. キー<LEFT> {type [Group1] = "ONE_LEVEL" 、シンボル[Group1] = [Left]};
  14. キー<DOWN> {type [Group1] = "ONE_LEVEL" 、シンボル[Group1] = [Down]};
  15. キー<RGHT> {type [Group1] = "ONE_LEVEL" 、シンボル[Group1] = [Right]};
  16. };
*このソースコードは、 ソースコードハイライターで強調表示されました。

arrows_2btnsの最初のセクション 、ロシア語のレイアウトや、キーボード用の2つのキーのみがカーソル用に予約されている他の多くのレイアウトで使用されます。 プロパティタイプ[Group1] = "PC_FN_LEVEL2"-キーに2つの機能があることを決定します。 Arrows_4btnsの2番目のセクションでは、 4つのキーがカーソルに割り当てられ、各キーには1つの機能しかありません(どれだけ無駄:-))、属性タイプ[Group1] =“ ONE_LEVEL”はこれを示しています。
ここで、完全に加速することができます、ダブルレイアウトでカーソルに6つの値を掛けることができます。
  1. 部分的に隠されたalphanumeric_keys
  2. xkb_symbols "arrows_rule" {
  3. //標準の矢印マッピング
  4. // Shiftキーでテキストを選択できるように、通常の第2レベルを列挙しないでください
  5. キー<UP> {type [Group1] = "EIGHT_LEVEL_SEMIALPHABETIC" 、シンボル[Group1] = [Up、Up、Cyrillic_e、Cyrillic_E、Up、Up、Cyrillic_e、Cyrillic_E]};
  6. キー<LEFT> {type [Group1] = "EIGHT_LEVEL_SEMIALPHABETIC" 、シンボル[Group1] = [Left、Left、Cyrillic_be、Cyrillic_BE、Left、Left、Cyrillic_be、Cyrillic_BE]};
  7. キー<DOWN> {type [Group1] = "EIGHT_LEVEL_SEMIALPHABETIC" 、シンボル[Group1] = [Down、Down、Cyrillic_yu、Cyrillic_YU、Down、Down、Cyrillic_yu、Cyrillic_YU]};
  8. キー<RGHT> {type [Group1] = "EIGHT_LEVEL_SEMIALPHABETIC" 、シンボル[Group1] = [Right、Right、Cyrillic_hardsign、Cyrillic_HARDSIGN、Right、Right、Cyrillic_hardsign、Cyrillic_HARDSIGN]};
  9. };
*このソースコードは、 ソースコードハイライターで強調表示されました。

私のバージョンでは、ロシア語と英語のレイアウトでは、カーソルはカーソルのままです。 Fnを使用すると、通常のボタン-E、B、Yu、Kommersantには収まらなかったロシア文字を印刷できます。 FnとShiftタイプの大文字および小文字の組み合わせ。 3.4および7.8レベルの上記の制限のため、ロシア語の文字はどのレイアウトでも印刷されますが、損失は大きくありません。 現在、カーソルボタンには3つの機能負荷(矢印と大文字と小文字)があります。 Ctrl +矢印と組み合わせてHome、End、PgUp、およびPgDwnに対応する矢印がある場合、元のように2ではなく4つの関数が得られます。

すべてに加えて、「ru」セクション自体を変更し、「グレー」キーボードの青いボタン(Fn-組み合わせ)がキーボードに書かれているものと一致するようになりました。 一部のボタンは物議をかもしました。
、; =-多くの機能があり、すべてが適合しません。 固体記号を削除し、右矢印に移動しました。 別の欠点であるコンマは英語レイアウトにのみあり、ロシア語レイアウトのポンド記号の代わりにコンマを転送すると思います。
。:? まあ-まあ、すべてが収まり、ドットだけが再び英語のレイアウトにのみ存在し、ドル記号またはユーロ記号の代わりにそれを転送できます。
<左のカーソル>-カーソルは常にカーソルのままにしておき、文字は大文字でも大文字でも使用できます。 このような要件では、すべてが1つのキーに収まるわけではありません。 したがって、<カーソルダウンキー>を移動しました
私のバージョンは、 このリンク上の私のサイトから言うことができます。 rx-51ファイルがあります。
ファイルは/ usr / share / X11 / xkb / symbols / nokia_vndrにあります。
ファイルの新しいバージョン(私のものか自分のもの)をデバイス上の任意の場所にコピーし、xtermから次のコマンドを実行する必要があります。
sudo gainroot
cp / usr / share / X11 / xkb / symbols / nokia_vndr / rx-51 /usr/share/X11/xkb/symbols/nokia_vndr/rx-5.bak
cp / home / user / MyDocs / rx-51 / usr / share / X11 / xkb /シンボル/ nokia_vndr / rx-51
setxkbmap ru

不正なrx-51ファイルを置いてデバイスを再起動すると、起動できなくなり、デバイスを再フラッシュする必要があるため、非常に注意してください。

一般に、選択したレイアウトを変更するための非常に簡単な方法。 たとえば、コンソールで頻繁に作業する人には、パイプ「|」を追加すると便利です。 まあなど。

ボタンでトピックを閉じるために、Fn + Ctrlを押したときに表示される追加文字の表を変更することもできます。 しかし、ここではすべてがそれほど単純ではありません。 難点は、これらの文字がバイナリ形式で保存されることです。 また、独自のテーブルを作成するには、この形式の特別なコンパイラをアセンブルし、独自の構成を作成し、コンパイルする必要があります。
興味のある方のために、ここにMaemo Wikiへのリンクがあります。

RootFSのスペースを解放する


この問題は私にとって驚きでした。 Rootfsは、カーネルが配置されているルートファイルシステムであり、システムを起動するために必要なもの(カーネルモジュール、システム構成ファイル)です。 Rootfは、eMMCではなく、はんだ付けされたNANDフラッシュに自然に配置されます。 明確にするために、メモリのタイプについて少し説明します。
NORフラッシュはフラッシュメモリの一種で、任意の場所からバイトを取得できます(読み取り用のランダムアクセス)。大きなプラスは、NORアドレス空間から直接プログラムを実行することです(XIP)。 欠点は価格です。 通常、設定やさまざまな小さなものを保存するために使用されます。 不揮発性メモリ。 簡単に-不揮発性RAMのようなもの。 さて、最近、NORは情報に関してNANDに大きく遅れをとっています。
NAND-NORよりはるかに安い。 NANDの書き込み速度は、NORよりもはるかに高速です。 しかし、主な欠点は、NANDブロックデバイスがブロックでしか読み取れないことです(チップによっては、512/2048/4096バイトになる場合があります)。 SD / MMCカードは単なるNANDの代表です。

そして明確にするために、別の用語はSoC-System on Chipです。 「1チップのシステム」または「水晶のシステム」と訳されています。
スプレーしないように、用語の定義と特性を次に示します。

したがって、「裸の」N900には、次のような思い出があります。


まず、カーネルのルートとブートローダーが256Mb NANDにあることに注意してください。 以下で詳しく説明します。
32GB eMMCは3つのセクションに分かれています。

画像

さて、今度はrootfsについて詳しく説明します。 UBIFSとしてフォーマットされたすべての256Mb NAND。 UBIFSは、人気のあるJFFS2の代替品です。 違いは、UBIFSがキャッシュできることと、大容量のボリュームでパフォーマンスが大幅に向上することです。 欠点は、UBIFSがより複雑で(MTDの上で実行されるUBIの上で実行される)、JFFS2がNANDと直接連携することです。 さて、UBIFSは2007年にのみ登場し、バージョン2.6.27からカーネルで動作しています。 それが、ほとんどすべての組み込みデバイスがJFFS2を使用する理由です。 しかし、ノキアのエンジニアは、UBIFSを使用するという大胆な決定を下しました。 このファイルシステムの詳細については、 こちらこちらをご覧ください
NANDには、ブートローダー、カーネル、およびルートディレクトリがあります。「/」と、ブートに必要なさまざまなシステムファイルです。 「裸の」デバイスでは、約100 MBの空き容量が必要です。 問題は、多くのリポジトリを接続すると、aptのキャッシュが非常に大きくなることです。 さらに、一部のライブラリもrootfsにインストールされ、1週間後にrootfsがいっぱいになりました。 これは非常に悲しいことであり、これを防ぐために追加の手順を実行する必要があります。 rootfsがオーバーフローすると、システムの速度が低下し始め、アプリケーションディレクトリの更新が不可能になります(キャッシュを保存する場所がありません)。

理想的には、VFATに適切に転送できるすべてのものがありますが、コンピューターに接続するとマウント解除されるため、これは危険です。 / optの場合と同様に、すべてを/ homeにドラッグできます。 これが私の方法の基礎となっています。

満杯の状態は、ターミナルでコマンドを実行することで確認できます。
df -h


すべてを転送する最も簡単な方法は、次のコンテンツでスクリプトを作成することです。
#!/bin/sh
# Nokia N900 Maemo 5 Script to free up space on rootfs
# ignoring errors when creating dirs that may already exist

# Moving ?? icons to /home/opt
mkdir -p /home/opt/usr/share/icons 2> /dev/ null
cp -r /usr/share/icons/* /home/opt/usr/share/icons
rm -r /usr/share/icons
ln -s /home/opt/usr/share/icons /usr/share/icons

# Moving video on start-up to /home/opt
mkdir -p /home/opt/usr/share/hildon-welcome 2> /dev/ null
cp -r /usr/share/hildon-welcome/* /home/opt/usr/share/hildon-welcome
rm -r /usr/share/hildon-welcome
ln -s /home/opt/usr/share/hildon-welcome /usr/share/hildon-welcome

# ??
mkdir -p /home/opt/usr/share/pixmaps 2> /dev/ null
cp -r /usr/share/pixmaps/* /home/opt/usr/share/pixmaps
rm -r /usr/share/pixmaps
ln -s /home/opt/usr/share/pixmaps /usr/share/pixmaps

# Moving 'apt cache' to /home/opt - Valid until Bug 5746 is fixed .
mkdir -p /home/opt/ var /cache/apt 2> /dev/ null
cp -r / var /cache/apt/* /home/opt/ var /cache/apt
rm -r / var /cache/apt
ln -s /home/opt/ var /cache/apt / var /cache/apt

# Moving locales Source
mv /usr/share/locale /opt
ln -s /opt/locale /usr/share/locale


* This source code was highlighted with Source Code Highlighter .


たとえば、free_my_rootfs.shというファイルを作成しました
コンソールで実行:
chmod + x free_my_rootfs.sh
./free_my_rootfs.sh


このスクリプトは、アイコン、起動時に開始するビデオ「ハンドシェイク」、apt'aキャッシュ、およびシステムロケールを転送します。

さらに、Pythonを「optify python」にドラッグすることもできます(翻訳する場合は、「pythonを/ optにドラッグ」):
sudo gainroot
apt-get pymaemo-optifyをインストール
apt-get clean


Mapsアプリケーションはrootfsにも保存されます(マップ自体は最大のパーティションにキャッシュされます)。これを行うことができます。
sudo gainroot
mv / usr / share / nokia-maps / home / opt /
ln -s / home / opt / nokia-maps / usr / share / nokia-maps


MicroBエンジンは引き続き移動できます。
sudo gainroot
mv / usr / share / microb-engine / home / opt
ln -s / home / opt / microb-engine / usr / share / microb-engine


N900の使用に関するチュートリアルを移動できます。
sudo gainroot
mv / usr / share / tutorial-applet / home / opt
ln -s / home / opt / tutorial-applet / usr / share / tutorial-applet


テーマはrootfsにも存在しますが、それらを転送することはあまり安全ではありません。「レンガ」を取得でき、デバイスを再フラッシュする必要があります。 いくつかのトピックを保持し、近い将来使用しないトピックを削除することをルールにしてください。

さて、これはすべてあなたを助けるはずです。 別の方法がありますが、これは非常に残忍ですが、本当のオタク向けです。 別のパーティションを作成し(27 GB VFATパーティションを削減)、そこにすべてを配置する必要があるという事実から成ります。 この方法の詳細な説明は、こちらをご覧ください 。 データが既に移動されたかどうかをチェックし、最後にrootfsでどれだけのスペースを節約したかを示すスマートスクリプトがまだあります。 しかし、初心者にはこの方法の使用はお勧めしません。

さて、そして最も重要なことは、次のファームウェアで

Source: https://habr.com/ru/post/J89651/


All Articles