HP Prime G2CalculatorでDOOMを起動する



DOOMを任意のデバむスにむンストヌルするこずは、倒れた芁塞に勝者のバナヌを掲げるようなものです。「たあ、運呜を始めたの」ず聞かれたした。私がこの蚈算機をいじっおいるこずを圌らが知ったずき、少なくずも35回。芳客をがっかりさせず、DOOMの発売を実珟するこずにしたした。その過皋で、それは機噚の性胜の良いテストずなり、䞍快なバグを明らかにしたした。じゃ、行こう



プロゞェクトニュヌス



どうやっおDOOMを実行したのか疑問に思っおいる人は、この章をスキップしお次の章にスキップできたす。プロゞェクトの珟圚のステヌタスを瀺すだけです。



前のパヌトパヌト1ず パヌト2で芚えおいるように 、私はLinuxを電卓に眮き、u-boot、カヌネル、rootfsを再構築するこずに埓事しおいたした。それ以来、私は電卓に非垞に密接に関䞎し、u-boot、カヌネル、およびデバむスツリヌで䜕が行われたかを完党に理解したした。これが私の趣味であり、私の䞻な仕事や家族からの自由な時間に、すべおがすぐに進むわけではなく、時にはそれがやや非論理的であるこずを理解する必芁がありたす。



ナヌザヌのおかげでメむンニュヌスが行われたした Alx2000y、カヌトでチャットに招埅しおくれたした。そこでは、XiaomiGatewayのファヌムりェアが同様のプロセッサで芋られたした。このトピックに関するHabréに関する蚘事もあり たす。人々はすでにこのトピックで倚くのこずを進歩させ、デバむスの機胜を信じられないほど拡匵しおいたす。そしお、nandの問題を克服するのに倧いに圹立ちたした。ご存知のように、最初は愚かさからナンドのむメヌゞを䞀掃したした。その結果、かなりの数の「仮想」䞍良セクタが発生したした。最も䞍快なのは、䞍良セクタが最初からあり、そこにu-bootを曞き蟌むこずができなかったこずです。以䞋は䞍良セクタのリストです。それらのほずんどは仮想です。



=> nand bad
Device 0 bad blocks:
  00000000
  00020000
  00040000
  00060000
  012c0000
  04e20000
  05280000
  094c0000
  17b20000
  1ff80000
  1ffa0000
  1ffc0000
  1ffe0000
=> 
      
      





Lenarは、䞊蚘のチャットから、私を倧いに助けおくれたした。問題は、u-bootの2぀のコマンドだけで解決されたした。



nand erase.chip


nand scrub.chip


Really scrub this NAND flash? <y/N>
y
      
      





その埌、䞍良セクタの数を確認したす。芋よ、䞍良セクタは倧幅に少なくなっおいたす。



=> nand bad

Device 0 bad blocks:
  1ff80000
  1ffa0000
  1ffc0000
  1ffe0000
      
      





その結果、u-bootをセクタヌ0にロヌドしお起動できるようになりたした。珟時点では、電卓は電源を入れるだけでロヌドでき、Linuxが完党にロヌドされ、ディスプレむが機胜し、UARTを介しおプログラムを実行できるようになりたす。 DOOMでも正しく動䜜したす。 「しかし、ニュアンスがありたす」C。どうやらキヌボヌドドラむバヌがubifsドラむバヌずオヌバヌラップしおいるようで、その結果、キヌボヌドのいずれかのキヌを抌すず、電卓がすぐにハングしたす。カヌネルパニックは䞀床も私に飛んだが、少なくずもこの亀差点の堎所を芋぀けるためにそれを保存しようずは思わなかった。したがっお、今のずころ、すべおがinitramfsで確実に機胜したす。 nandのロヌド、DOOMの起動、フリヌズの䜜業を瀺すビデオが私の電報チャンネルに投皿されたした 。



他の良いニュヌスから、私はubuntuをnandに入れようずしたした、それも正しく動䜜したす。もちろんパッケヌゞはむンストヌルできたせんが、䞀般的には䜜業しお䜿甚できるので䟿利です。しかし、キヌボヌドが機胜しおいなければ、これらのゲヌムにはただ実甚的な意味がありたせん。



最埌の郚分で、nandずRAMで実行するず、u-bootの動䜜が異なるず䞍満を挏らしたした。私は2日間、u-bootの゜ヌスコヌドを調べお、䜕が起こっおいるのかを理解したした。そしお、すべおが陳腐であるこずが刀明したした恥ずかしいこずさえありたす。 uuuナヌティリティは、メモリからu-bootを起動するず、環境倉数をそこに枡したす。より正確には、mfgtool_argsを呌び出し、その結果、ブヌト環境倉数の行は次のようになりたす。



bootargs=rdinit=/linuxrc g_mass_storage.stall=0 g_mass_storage.removable=1 g_mass_storage.file=/fat g_mass_storage.ro=1 g_mass_storage.idVendor=0x066F g_mass_storage.idProduct=0x37FF g_mass_storage.iSerialNumber= mtdparts=gpmi-nand:4m(boot),8m(kernel),1m(dtb),1m(misc),-(rootfs) clk_ignore_unused
      
      





もちろん、nandから起動する堎合、そのようなパラメヌタヌを䜿甚するず、4番目のセクションのubifsは衚瀺されたせん。したがっお、u-bootをRAMにロヌドした埌、次の環境倉数を匷制的に蚭定したす。



setenv bootargs  console=ttymxc0,115200 ubi.mtd=4 root=ubi0:rootfs rootfstype=ubifs mtdparts=gpmi-nand:4m(boot),8m(kernel),1m(dtb),1m(misc),-(rootfs)
      
      





そしお、すべおがうたく機胜したす。



これが必芁な理由を説明したしょう。ブヌトロヌダヌをれロセクタヌにフラッシュするず、mfgtooluuuナヌティリティを介しお䜜業する機胜が倱われたす。そしおこの段階では、開発ずデバッグで構成されおおり、これがメむンツヌルです。したがっお、uuuナヌティリティを実行したたたにしお、毎回手動でu-bootをロヌドする方が簡単です。



DOOMの起動



楜しい郚分に移りたす-電卓でDOOMを実行したす。ご想像のずおり、最初にすべおの問題に぀いお曞いたのは無駄ではありたせんでした。 NANDフラッシュにロヌドされたずきにDOOMを実行できたす。そこには、あらゆる皮類のカヌド、DOOMのすべおの可胜なバヌゞョン、および䞀般的には必芁なものをすべお配眮できたす。ただし、RAMで実行する堎合、rootfsむメヌゞのサむズは玄15 MBに制限されたす実際には、16がただロヌルするこずが瀺されおいたす。この点で、私はDOOMのバヌゞョンを遞択しお正しいアセンブリを䜜成し、それを操䜜する方法を孊ぶ必芁がありたした。



すべおの良いものはずっず前に私たちのために発明されたこずがわかりたした、そしおDOOMは゜ファを離れるこずなくbuildrootで盎接組み立おるこずができたす。組み蟌みシステム甚のDOOMの可胜なすべおのバリアントをグヌグルで怜玢し、それらを構築しようずしたずきに、これを芋぀けたした。結局のずころ、実行するだけで十分です。



make menuconfig
      
      





そしお、DOOMを遞択したす。これは「Target packages ---> Games --->



」で 行われたす





DOOMには、chocolate-doomずprboomの2぀のバヌゞョンが あり たす。いく぀かの実隓の結果、chocolate-doomがinitramfsに適合したくないこずに気付きたした。ただし、wadファむルを完党に削陀した堎合を陀きたす。私はチョコレヌトの運呜に合うクロップドワッドファむルを芋぀けようずしおいたした。しかし、圌女は圌らず䞀緒に働くこずを拒吊したした。その結果、チョコレヌトバヌゞョンをprboomず䞀緒にnandにむンストヌルしお、そこで詊しおみたした。パラメヌタなどを遞択したした。実隓の結果、次の起動方法が埗られたした。



export SDL_NOMOUSE=1 
chocolate-doom -geometry 320x240 -bpp 24 -nomouse
      
      





その結果、私は倧いに倱望したした。このバヌゞョンの運呜は、画面を誀っおたたは逆に正しく匕き䌞ばし、画面の端に幅の広い瞞暡様を残したした。





DOOMのチョコレヌトバヌゞョン。䞋に黒い瞞暡様が芋えたす。



起動時に、私のチョコレヌトの運呜は、りィンドりのサむズ倉曎が䜕をするかを教えおくれたす。



I_InitGraphics: 320x240 mode not supported on this machine.
I_InitGraphics: Auto-adjusted to 320x200x32bpp.
      
      





したがっお、私はprboomに萜ち着きたした。共有WADファむルずprboom自䜓ず䞀緒に画像を䜜成し、 䞍芁なものをすべお削陀したした。しかし、それでも、非垞に長い間、私はそれを機胜させるこずができたせんでした。私はあらゆる皮類のマニュアルを読み、すべおが正しく機胜するように構成する方法を探したした。画像は衚瀺され、ボタンに反応したすが、画面が䞍噚甚に䌞びおカラヌカヌブが衚瀺されたす。いく぀かのフォヌラムで理想的な起動パラメヌタを芋぀けるたで。



䞀般に、電卓の堎合、prboomの起動は次のずおりです。マりスをオフにしおから、次のパラメヌタヌを䜿甚しおprboomを起動したす。



export SDL_NOMOUSE=1 
/usr/games/prboom -width 320 -height 240 -nosound -vidmode 32bit
      
      





ここでの重芁なパラメヌタ "-vidmode 32bit"



。





私は長い間適切なパラメヌタを探しおいたしたが、これだけですべおが始たりたした。䟿宜䞊、すべおをd.shスクリプトに曞き留めたした。最埌にすべおが機胜し、プレむするこずもできたす





特にあなたのために、私はDOOMを䜿ったflash_utilityの曎新されたアセンブリを甚意したした。 これは、フラッシュしなくおも電卓で実行でき、友達にDOOMが私の電卓で動䜜するこずを瀺したす。電卓を分解し、最初の郚分で説明した接点を閉じお実行するだけで十分です



sudo uuu doom.uu
      
      





すべおのステップの最埌に、LinuxずDOOMを備えた電卓が届きたす。DOOMを起動するには、ログむンしお電卓で実行する必芁がありたす。



./d.sh
      
      





芁玄する



DOOMは動䜜したす再生できたすかええず、ロヌカルでは、コンピュヌタヌからダりンロヌドできたす。それはクヌルで矎しいように芋えたすが、実際には、あなたが本圓に欲しいものではありたせん。地䞋鉄に乗っおいるずきは、電卓を持っお広い脚から匕き出し、電源を入れお珟圚、省電力モヌドは機胜しおいたせん、DOOMを起動するのはずおもクヌルです。これは、DOOM、Duke Nukem 3D、Quake I、II、IIIなどの電卓でメトロでプレむするのに本圓にクヌルです。しかし、事実は倉わりたせん。DOOMはこのハヌドりェアで実行されおいたす。しかし、やるべきこずはただたくさんありたす。



䞀般に、この蚈算機の呚りには少なくずも小さなコミュニティ少なくずも私よりも倚いが​​十分ではないため、問題のテスタヌがいお、話したり共有したり、アドバむスを聞いたりする人がいたす。原䜜者は、巚倧な仕事をしたしたが、明らかにこのプロゞェクトに冷静になりたした。私は圌をよく理解しおおり、このプロゞェクトに぀いおのアドバむスがあっおも助けたくないず圌を非難するこずはできたせん。たあ、圌は小さな掚薊をしたした、しかし圌は明らかにもはや圌次第ではありたせんでした。したがっお、アむデア、蚈算機、助けたいずいう願望があれば、少なくずもアドバむスがあれば、ここたたはカヌトに曞いおください。



PSなぜ私はこれをしおいるのですか



よく「䜕のために」ず聞かれたすかこの質問に答えるのはばかげおいるこずを知的に理解しおいたすが、それでも答えたす。



アヌティストが絵を描いたり、䜜家が本を曞いたりするのはなぜですか正盎に蚀うず、本、絵画、その他の䜜品の90はたったく光が芋えない可胜性があり、光が芋える人のほんの䞀郚が知られるようになり、幅広い読者を獲埗したす。簡単に蚀えば、ほずんどのクリ゚むタヌは「圹に立たない」仕事をしおいたす。さらに、倚くの䜜品は読者を芋぀けるこずさえありたせんが、なぜ圌らはそうすべきではないのですかこれらの人々を動かすものは䜕ですかすべおがかなりありふれたものです。圌らは単玔な感芚によっお動かされたす





簡単に蚀えば、それはクヌルで急いでいるからです。そしお、奇劙なこずに、芋た目ほど明癜ではありたせんが、将来的には倧きなメリットがもたらされるでしょう。



ダりンロヌドするファむル










All Articles