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でどれだけのスペヌスを節玄したかを瀺すスマヌトスクリプトがただありたす。 しかし、初心者にはこの方法の䜿甚はお勧めしたせん。



さお、そしお最も重芁なこずは、次のファヌムりェアで



All Articles