GNU / LinuxおよびRockchip 2918デバむス

たず、少しの背景。 GV2Bメディアプレヌダヌでのストヌリヌの小さな続き。これに぀いおは、前にtu / tで説明したした。 最初は、このボックスはテレビのAndroidセットトップボックスずしお賌入されたのではなく 、4月にアプリケヌションを残したが8月にしか届かないRaspberry Piのより匷力な代替品ずしお賌入されたこずを思い出させおください。 そしお、GV2Bは泚文から8日埌に私の手元にあり、わずか100ドルで、ケヌブル䞀匏充電、コヌド、ケヌス付きのRaspberry Piキットよりもわずか5ドル高いでした。

YoutubeやPlayず共にむンストヌルされた他のアプリケヌションが正垞に機胜し、デバむスにこれ以䞊の欠点は芋぀からなかったずいう以前の投皿から、意地悪な人々を安心させたす。



最近では、Puppy Linux、Arch Linux、UbuntuがARMデバむスにどのようにむンストヌルされたかを説明するトピックがいく぀か登堎したした。 これはAllwinner A10のナニヌクな機胜であり、過小評䟡するこずは困難ですが、システムは内蔵フラッシュではなく、SDカヌドから物理的に起動されたす。 私はこの問題にもっず積極的に取り組み始め、デバむスのフラッシュメモリに䜕かをフラッシュするための3぀の方法に出䌚いたした。これは励みになり、おそらく、本栌的なGNU / Linuxを埋めるための抜け穎を開きたす。 this慢なこずに、これはSDカヌドからわずかにドッピングされた画像の通垞の起動埌の次のステップであるこずに泚意しおください。



目的



-デバむスにLinuxカヌネルをむンストヌルしたす。 最新のものが望たしい。 たたは、すべおのデバむス固有のドラむバヌを含む最新のもの。

-GNUを眮きたす。

-デスクトップ環境を眮きたす。

-䜕か問題が発生した堎合にデバむスを元の状態に戻すこずができるように、バックアップを䜜成したす。

-チャレンゞを楜しんでくださいWiiにUSBダりンロヌダヌの最初のバヌゞョンをむンストヌルし、NetHackたたはDwarf Fortressを通過するのに匹敵したす。



手段



Rockchip 2918略しおRK29CPU ARM Cortex A8 1GHz + GPU Vivante GC800 600MHzをベヌスにした未知の䞭囜メヌカヌのGV-2Bデバむス、4GBフラッシュメモリ、512MB RAM、および倚数のコネクタ。

SDカヌド16GBクラス10。

Arch Linuxを搭茉したPC。

キヌボヌド

モニタヌ

モニタヌを接続するためのHDMI-DVIコヌド。

倚数のUSBコヌド、アダプタヌなど。



泚意ず自己䞍満



確かに倚くの読者は、トピックで説明されおいるこず、たたは少なくずも特定の郚分をより速く、より良くしたでしょうが、ネットワヌクの広倧さでそのような偉業に぀いおの蚀及は芋぀かりたせんでした。 トピックには倚くの実践ず非垞に少ない理論が含たれおいたすが、議論されおいるこずず起こっおいるこずを理解するために最も必芁なものだけです正盎に蚀うず、私ず説明された領域の理論自䜓では十分ではありたせん。 孊術的な芳点から、圌は3時間の実隓宀䜜業に匕き付けられたす。 たた、デスクトップコンピュヌタヌにプレむンストヌルされたUbuntuのディスクずPC104 x86互換のシングルボヌドの接続を陀倖するず、初めおこのすべおを行うこずになりたす。



デバむス遞択



Gラむンナップには 、異なるプロセッサ䞊に、異なる数のコネクタを備えた玄20の異なるデバむスがありたすが、機胜はほが同じです。



最初はAllwinner A10でデバむスを䜿甚しなかったのではないかず心配しおいたしたが、カヌネル゜ヌスのオヌプン性に関するいく぀かのレビュヌを読んだ埌、Rockchipの堎合、状況はそれほど悪くないこずに気付きたした。



同じモデル範囲のデバむスを泚文するオプションがありたしたが、Cortex A9、぀たりAmLogic 8726-Mで既に䜿甚されおいたしたが、Rockchip 2918よりも異垞な利点はなく、AmLogic Webサむトによるず、最新のチップの゜ヌスコヌドもありたす悲しいこずに。



方法



そのため、デバむスのファヌムりェア同じ4GBフラッシュメモリの内容を曎新する3぀の方法が芋぀かりたした。



1぀目-GVラむンOEMモデルのいずれかを䜿甚しおいるメヌカヌの堎合、動䜜したせんでした。ファヌムりェアは3぀のUSBポヌトを備えたわずかに異なるデバむス甚であり、䞡者の違いは非垞に深刻であるため、通垞はファヌムりェアがデバむスを回すレンガに。



残り2぀です。 2぀目は、 AndroidForumsを䜿甚するハッカヌの堎合、電源ボタンを数秒間抌したたた、ボックス内にある远加の2぀目のリセットボタンをクリックする必芁があるずいうこずです。 この方法は、興味深い機胜、すなわちAndroidシステム回埩ナヌティリティv1.3.37メニュヌ明らかに1337 を開きたした。

-今すぐシステムを再起動したす

-工堎出荷時リセット

-システム回埩

-SDCARDからの曎新

-uDiskからの曎新

-工堎テスト







残念なこずに、デバむスに接続され、Androidをロヌドした埌でも正垞に動䜜するキヌボヌドは、システム回埩メニュヌ、およびボヌド䞊の3぀のボタン電源、リセット、ただリセットには圱響したせんでした。リセット。これにより、デフォルトのアクティブアむテムのリブヌトシステムが遞択されるか、単に意図した目的で機胜するようになりたした。 残りのカヌ゜ルボタンは、残念ながら移動したせんでした。 この方法は、SDメモリカヌドからファヌムりェアを正確に入力するこずでしたが、どの方法でも機胜したせんでした。



fat32でSDカヌドをフォヌマットした埌、ファむルストレヌゞからほずんどダりンロヌドしなかったAndroid甚のダりンロヌドされた曎新プログラムを泚ぎたした神様、Dropboxに぀いお聞いおいないのですか 通垞の起動時に、Androidは間違ったupdate.imgがSDカヌドにあるず呪いたした。 しかし、バックアップはstill病者によっお行われるだけでなく、ある著者が獲埗した1぀たたは別のupdate.imgを同様のデバむスに泚ぐず、別の著者からレンガに倉わるこずが頻繁に報告されたため、私はただそれを満たそうずしたせんでした。



䞉番目の方法の 息子は、私がやろうずしおいたこずに近いこずが刀明したした 。 これは、USBケヌブルを䜿甚しおデバむスをコンピュヌタヌに接続するこずにありたした。



最初は、システム回埩モヌドでは、必芁なすべおのワむダを適切な堎所に接続したにもかかわらず、USBを介しお察向電源を4.57Vおよび5.08Vに向けたにもかかわらず、コンピュヌタからデバむスがたったく怜出されなかったこずは非垞に恥ずかしかったです結果にならなかった。 埌で刀明したように、そうする必芁がありたす。なぜなら、圌らはそこに独自のプロトコルを持っおいるからであり、倖郚メディアの接続ずの違いは重芁です。



Windowsで、Rockchip Flasherツヌルが発芋されたした。これは、蚀語がすばらしいず呌ぶこずはありたせん。なぜなら、それはひどく行われたため、新しいupdate.imgをフラッシュするこずしかできないからです。 しかし、䜕かが突然うたくいかなかった堎合に備えお、フラッシュするだけでなく、既存のものをダりンロヌドする必芁があったため、䞭囜のプログラマヌの仕事を拒吊しなければなりたせんでした。



足で、ずころで、あなたは泚意する必芁がありたす。





バックアップ



䜕か問題が発生した堎合、フラッシュメモリに保存されおいるすべおのものを保存しお、すべおを元のバヌゞョンに埩元できるようにしたす。 これにはいく぀かの異なる方法がありたす。



チタンのバックアップ 。 システムパヌティションの写真を撮り、SDカヌドにコピヌできるAndroidアプリケヌション。 すべお問題ありたせんが、このためにデバむスをルヌト化する必芁がありたす管理者暩限を取埗したす。 Android 2.3.1でデバむスをルヌト化するために、Universal Androotはもはや適切ではなく、その著者は、HTC電話にのみ適したUnrevokedを䜿甚するか 、 すべおの人に適しおいるがデバむスをルヌト化するSuperOneClickを䜿甚するこずを遞択するこずを提案したすコヌドでWindowsコンピュヌタヌに接続する必芁がありたす。 すべおがいいでしょうが、圌はファヌムりェアをダりンロヌドし、そこにいく぀かのファむルを远加し、それをアップロヌドし盎したす。 バックアップコピヌを䜜成するためにファヌムりェアを倉曎するのは狂気です。



Android SDKのAndroid Debug Bridgeを匕き続き掻甚したしたが、これはこの特定のデバむスで動䜜するずいう事実ではなく、かなりの数の䟝存関係を匕き継いでいたので、たったく望みたせんでした。 それ以倖は、゜ヌスからこれらすべおを収集する必芁がありたしたArch LinuxのAURを読んでください。



すでに悲しいこずでしたが、突然、 ここで発衚された玠晎らしいナヌティリティRK29kitchenを芋぀けたした。これは、説明から刀断するず、USBを介しおトリッキヌなデバむス通信プロトコルを分解した䜜者から他の倚くの玠晎らしいナヌティリティを吞収し、パヌティションテヌブルを備えたややトリッキヌなファむルです。



打ち䞊げ



それほど単玔ではないこずが刀明したした。 デバむスはシステム回埩モヌドではなく、オフ状態である必芁がありたすが、垞に電源がオンになっおいる必芁がありたす。 問題は、USB経由で接続されたこずを怜知するずすぐに電源をオンにしようずするこずです。 しかし、これは制埡できたす。 䞡方のリセットボタンを5秒間抌したたた、最初に内郚ボタンを離し、3秒埌に内郚ボタンを離したす。 私は立ち䞊げお蟛抱匷くなろうずしたす。

$ ./flashdump.sh Check that your tablet is in the firmware flash mode and connected to computer rkflashtool: info: interface claimed rkflashtool: info: reading flash memory at offset 0x00000100 unpacking...OK Dumping misc (rkflashtool29 r 0x00002000 0x00002000 ) Dumping kernel (rkflashtool29 r 0x00004000 0x00004000 ) Dumping boot (rkflashtool29 r 0x00008000 0x00002000 ) Dumping recovery (rkflashtool29 r 0x0000a000 0x00004000 ) Dumping system (rkflashtool29 r 0x0000e000 0x00080000 ) Dumping backup (rkflashtool29 r 0x0008e000 0x00082000 )
      
      





少し玛らわしいのは、flashdumpの゜ヌスコヌドが次のように蚀っおいるこずです。

 rkflashtool29 r 0 0x200
      
      





そしお結論ずしお

 reading flash memory at offset 0x00000100
      
      





parm.imgの読み取り元が完党に明確ではありたせん。



したがっお、5〜10分間ずゎヌルデンキヌで 、フラッシュメモリのむメヌゞをすべおのセクションから完党に個別に取埗したす。

 $ ls -l flashdump/Image/ 4194304 Jun 29 18:15 boot.img 8388608 Jun 29 18:15 kernel.img 4194304 Jun 29 18:14 misc.img 8388608 Jun 29 18:16 recovery.img 268435456 Jun 29 18:18 system.img $ ls -l flashdump 272629760 Jun 29 18:21 backup.img 4096 Jun 29 18:16 Image 583 Jun 29 18:13 parameter 262144 Jun 29 18:13 parm.img
      
      





どうしたの RK29kitchenのフォヌラムず゜ヌスコヌドを詳しく調べるず、デバむスのフラッシュメモリの内容を読んでいるこずが明らかになりたす。パヌティションテヌブルから始め、棚に分類しおパラメヌタヌテキストファむルに蚘録し、それを䜿甚しおパヌティションテヌブルを個別に蚘録したした。

ここで、RK2918䞊のデバむスのフラッシュメモリの曎新に固有の信じられないほどの量の情報が芋぀かりたした。 説明されおいるすべおのデバむスはタブレットであり、曎新のためにコンピュヌタヌに接続するのは倚少簡単です組み蟌みのmicroUSBポヌトを考えるず、USB OTGでもありたす。



これは、パラメヌタファむルの倖芳です。

 FIRMWARE_VER:1.2.3 MACHINE_MODEL:SUNVEK MACHINE_ID:007 MANUFACTURER:rock-chips MAGIC: 0x5041524B ATAG: 0x60000800 MACHINE: 2929 CHECK_MASK: 0x80 KERNEL_IMG: 0x60408000 CMDLINE: console=ttyS1,115200n8n androidboot.console=ttyS1 init=/init initrd=0x62000000,0x300000 mtdparts=rk29xxnand:0x00002000@0x00002000(misc),0x00004000@0x00004000(kernel),0x00002000@0x00008000(boot),0x00004000@0x0000A000(recovery),0x00080000@0x0000E000(system),0x00082000@0x0008E000(backup),0x0003a000@0x00110000(cache),0x00100000@0x0014a000(userdata),0x00002000@0x0024a000(kpanic),-@0x0024c000(user)
      
      





16進法を䜿甚した最埌の行には、長さ、セクションの先頭、および括匧内の名前が含たれおいたす。 パヌティションテヌブル自䜓を実際に栌玍する必須セクションがありたせん。 解読しようずしたす。



読み取られるパラメヌタヌブロックのサむズは0x200RK29kitchenの゜ヌスファむルから、512、およびファむルサむズは262144バむトです。 条件ブロックのサむズは262144/512、぀たり512バむトであり、rkflashtoolのドキュメントで確認されおいたす。

0x200から0x2000の間でメモリを占有するもの、これは3.75MBにも及ぶ謎です。



パラメヌタヌパヌティションテヌブル 256KB
その他 4MB
カヌネル 8MB
ブヌツ 4MB
回埩 8MB
システム 256MB
バックアップ 260MB
キャッシュ 116MB
ナヌザヌデヌタ 512MB
パニック 4MB
ナヌザヌ 残りのすべおのスペヌス


準備する



これで、ダりンロヌドした䞀連のimgファむル、ディスクむメヌゞが手に入りたした。 䜕が入っおいるのだろうか。 以前の知識から、倉曎するこずを意図しおいないファむルOSのカヌネルなどをフラッシュメモリに曞き蟌むには、 cramfs圢匏で䜜成されたすが、非垞にunningな䞭囜人がこれらの画像にヘッダヌずフッタヌを远加しおからgzipを䜿甚するこずを知っおいたすどうやら自分自身を読んで自分の画像を䜜成するこずを困難にしようずしおいるようです。



私が芋たのは、この奇跡であり、人々から名付けられたした。

 $ sudo mount -t cramfs Image/boot.img /media/cramfs mount: wrong fs type, bad option, bad superblock on /dev/loop0 $ dmesg |tail [41549.071136] cramfs: wrong magic
      
      





同じRK29kitchenず接続しようずするず、結果はほが同じです。

 /sbin/e2fsck: Bad magic number in super-block while trying to open system.img
      
      





imgファむルから最初の8バむトをトリミングする必芁がありたす。

 $ dd if=boot.img of=bootimg.gz skip=8 bs=8 count=20000000 524280+0 records in 524280+0 records out 4194296 bytes (4.2 MB) copied, 4.41275 s, 950 kB/s
      
      





玠晎らしい。 ファむルがgzipで圧瞮され、䞍合理なヘッダヌずフッタヌがそれらに远加されるずいうたさにそのケヌスに出くわしたした。そこにはCRCず、おそらく䜕か他のものがありたす。



さらに-より興味深い

 $ mkdir myboot $ cd myboot $ gunzip < ../bootimg.gz | sudo cpio -i --make-directories $ ls data dev init_battery.sh init.rc proc sbin system ueventd.rc default.prop init init.goldfish.rc init.rk29board.rc rk29xxnand_ko.ko sys ueventd.goldfish.rc ueventd.rk29board.rc
      
      





内郚には倚数のファむルがありたすが、それらが必芁かどうかはあたり明確ではありたせん。 このビゞネスを逆順で収集するには、さらに正確にする必芁がありたす。ファむルの日付をリセットする必芁がありたす。

 $ find . -exec touch -d "1970-01-01 01:00" {} \; $ find . ! -name "." | sort | cpio -oa -H newc | gzip -n >../customboot.gz $ cd .. $ rkcrc -k customboot.gz customboot.img
      
      







むメヌゞのアセンブリには、cpioが䌝統的に䜿甚されたす。 より䞀般的なtarず比范しお、cpioには倚くの利点がありたすが、このトピックでは詳しく説明したせん。



そしお今、手元に自分で組み立おたcustomboot.imgがあり、それをデバむスに戻すこずができたす。

kernel.imgでは、このような準備は機胜したせん。



そしお、system.imgで䜕が起こったのかを次に瀺したす。

 $ sudo mount -t cramfs system.img /media/cramfs $ ls /media/cramfs/ app bin build.prop etc fonts framework lib media tts usr xbin
      
      





Androidアプリファむル実行可胜ファむルアヌカむブがアプリフォルダヌに芋぀かりたした。 ぀たり、迷惑で退屈なものを含め、新しいプログラムをそこに远加したり、削陀したりできたす。 suずbusyboxをbinに远加できたすが、これはデバむスをルヌト化するのに十分だず理解しおいたす。 などで、構成を倉曎したす。 などなど。 理論的に。 実際には、マりントされたcramfsむメヌゞにそのように曞き蟌むこずができないずいう事実を少しいじる必芁がありたす。



さお、私はなんずか分析するこずができたした。



新しい倖芳



もちろん、誰かが慎重に準備した画像を読み蟌んでSDカヌドから起動しようずするのは玠晎らしいこずですが、RK29にはそのような機䌚がないため、画像を䜜成しおデバむスのフラッシュメモリに盎接フラッシュする必芁がありたす。 バックアップがあるこずを願っおいたす。



前の段萜で䜜成された画像は、すべお異なる圢匏でした。぀たり、

boot.imgの圢匏はcra p fsであり、残りはそれ以降に既に読み蟌たれおおり、より消化しやすい圢匏でした。 したがっお、タンバリンず螊るのはこのboot.imgのみであり、残りの画像ではすべおが倚かれ少なかれ普通だず思いたす。



蚘憶を曎新し、Linuxのむンストヌルに必芁なセクションを曞きたす。

/ルヌトセクション。 カヌネルむメヌゞを含む重芁な/ブヌトフォルダヌが含たれおいたす。 / bootは、他の非ゞャヌナリングファむルシステム䞊の別のパヌティションにするこずもできたすカヌネルのロヌドおよび曎新時にのみ䜿甚されるため。 ただし、簡単にするために、ルヌトパヌティションに保持するこずができたす。 もう1぀の重芁なフォルダヌ/ homeにはナヌザヌデヌタが含たれおおり、個別のパヌティションを䜜成しおおくず䟿利です。 スワップは、メモリが1GB未満のデバむスの仮想メモリに必芁です。ただし、この問題に限定された読み取り/曞き蟌みサむクルで内蔵フラッシュメモリを䜿甚するこずは、少なくずも賢明ではありたせん。これらの目的には、倖郚SDカヌドを䜿甚するこずをお勧めしたす。 / usrは、すべおのナヌザヌに共通のファむルを保存したす。 / var、ログを保存したす。たた、倖郚SDカヌドに保存する方が論理的です。



したがっお、䜜業を少なくするために、3぀のセクションで構成されるむメヌゞを䜜成したす。

/ブヌト、cra p fsファむルシステムで16 MB

/、ルヌトファむルシステムの䞋に〜4GBの残りのスペヌス

/ homeを䜜成したせん。これたでのずころ、rootずしお埅機し、倖郚SDカヌドをマりントするずどうなるか、マりントしたす。

/スワップは倖郚フラッシュカヌドにもマりントされたす



Rockchip 2918で開発された最新のオヌプン゜ヌスカヌネルをodys.deからダりンロヌドしお解凍したした。 カヌネルバヌゞョン2.6は悲しくなりたした。 Archlinux ARMコアのクロスコンパむル手順により、あなたは銬鹿げおいるず感じ、サポヌトされおいるデバむスのリストを混乱させたした。 Yoctoprojectは少し混乱しおいたす。 Linaroアセンブリの豊富さず、サポヌトされおいるデバむスの限られたリスト、およびサポヌトされおいるデバむスでさえかなりの数のバグが玛らわしいです。 すでにLFSに目を向け始めたした。 Cortex A8 / A9に基づいた倚かれ少なかれ暙準的な機噚で、ハヌフビットで起動する普遍的なものは本圓にありたせんか うわ



遞択の䜙地はありたせんでした。゜ヌスからカヌネルをクロスコンパむルし、自分でむメヌゞを収集する必芁がありたす。 linux-linaro-3.5-rc3-2012.06.tar.bz2カヌネル゜ヌスコヌドずgcc-linaro-arm-linux-gnueabihf-2012.06-20120625_linux.tar.bz2クロスコンパむルツヌルキットをダりンロヌドしたした。 唯䞀の迷惑は、コンパむルにデバむス固有の.configファむルが必芁なこずです。LinaroにはRK2918にはありたせん。 幞いなこずに、前述のodysカヌネルにはRockchip固有のファむルがあり、easypix.euの新しい゜ヌスにも含たれおいたした。 ぀たり、Linaroの゜ヌスにコピヌしたした。

-フォルダヌアヌチ/アヌム/ mach-rk29

-50キロバむトのarch / arm / configs / rk29_ddr3sdk_defconfigず倚数のデバむス固有オプション

-アヌチ/アヌム/ツヌル/マッハタむプの最終行

-arch / arm / KconfigからのセクションARCH_RK29

-゜ヌスルヌトからのmkkrnlimg



カヌネルのクロスコンパむル





3.5.0-rc3 by Linaro


 $ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- rk29_ddr3sdk_defconfig $ PATH=$PATH:~/linaro/gcc-linaro-arm-linux-gnueabihf-2012.06-20120625_linux/bin $ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- uImage ... kernel/cgroup.c:470:2: error: 'saved_link' undeclared (first use in this function) ... make: *** [kernel] Error 2
      
      





かなり甘いですが、修正可胜です。 誰かが慎重に2行ずコメントを消去したこずがわかりたす。 これはメモリ䜿甚率の最適化ずリファクタリングず呌ばれたすが、今回は私には合わないので、元の堎所に戻さなければなりたせん。

 static void __put_css_set(struct css_set *cg, int taskexit) { struct cg_cgroup_link *link; struct cg_cgroup_link *saved_link;
      
      





うたくいきたした。 興味深いこずに、Linaroの安定したアセンブリは䞀般に収集を詊みたすが、どのようにコンパむル゚ラヌが発生したすか



別の間違い

 fs/yaffs2/yaffs_vfs.c:46:28: fatal error: linux/smp_lock.h: No such file or directory
      
      





ファむルはOdysの゜ヌスで芋぀かりたしたが、別の゚ラヌが発生したした。

 fs/yaffs2/yaffs_vfs.c:317:3: error: assignment of read-only member 'i_nlink' ... fs/yaffs2/yaffs_vfs.c:1995:9: error: ?struct mtd_info? has no member named ?sync? fs/yaffs2/yaffs_vfs.c:1996:6: error: ?struct mtd_info? has no member named ?sync? fs/yaffs2/yaffs_vfs.c:2097:2: error: ?struct mtd_info? has no member named ?erase ...
      
      





yaffs2をアセンブリから陀倖したすか 䜕も理解できないCコヌドを線集したすか 最初の間違いをなんずかしお、少し助けにならないパッチを芋぀けたので、inode.cに焊点を圓おおランダムに修正する必芁がありたした。 struct mtdに゚ラヌがありたした。Android3.4のカヌネルバヌゞョンでは、 すべおが同じであり、垌望を埅぀堎所がないず感じたした。 早朝の日が賢明だず感じた。 しかし、.configからYAFFSに関連するすべおの行を削陀しお続行したいずいう芁望は匷かった。 次に、フラッシュメディア甚ではなく、UBIFS、たたは極端な堎合にはext3を䜿甚できたす。



賞は迅速でした。

 Image Name: Linux-3.5.0-rc3 Created: Tue Jul 3 05:35:58 2012 Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 2258064 Bytes = 2205.14 kB = 2.15 MB Load Address: fffffff2 Entry Point: fffffff2 echo ' Image arch/arm/boot/uImage is ready' Image arch/arm/boot/uImage is ready
      
      





どうぞ

 $ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- modules ... CC drivers/media/video/gspca/gspca_main.mod.o LD [M] drivers/media/video/gspca/gspca_main.ko CC drivers/scsi/scsi_wait_scan.mod.o LD [M] drivers/scsi/scsi_wait_scan.ko
      
      





すべおがうたくいき、特定のRK29がコンパむルされおいないこずを譊告するだけで、これは非垞に疑わしいものです。 uImageを受信したした。



easypix.euの3.0.8以降


念のため、easypix.euから゜ヌスをコンパむルするこずにしたした。 ここで、RK29の゜ヌスコヌドがコンパむルされおいるこずがはっきりずわかりたす。 .configおよびUBIFSにはYAFFSはありたせん。 / bootに適した読み取り専甚のcramfsのみがありたすが、ルヌトパヌティションにはたったく適しおいたせん。 アセンブリは次のずおりです。

  CC drivers/net/wireless/bcm4329/wl_iw.o drivers/net/wireless/bcm4329/wl_iw.c: In function 'wl_iw_set_pmksa': drivers/net/wireless/bcm4329/wl_iw.c:5069:5: error: array subscript is above array bounds [-Werror=array-bounds]
      
      





.configを修正し、そこからBCM4329 WiFiモゞュヌルを削陀し、フラッシュメモリ甚のすべおの可胜なファむルシステムを远加したした。 RTL8192ドラむバヌがコンパむルされるかどうかはわかりたせんでした。 私は続けお成功したす

  OBJCOPY arch/arm/boot/Image Kernel: arch/arm/boot/Image is ready UIMAGE arch/arm/boot/uImage Image Name: Linux-3.0.8+ Created: Thu Jul 5 13:29:41 2012 Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 7028772 Bytes = 6864.04 kB = 6.70 MB Load Address: 60408000 Entry Point: 60408000 Image: arch/arm/boot/uImage is ready
      
      







モンスタヌ


フランケンシュタむン博士は自然に挑戊し、easypixが私たちに投げ぀けた遺物で最埌のコアを枡りたす。



Linaro甚のHWpackを䜜成するのは非垞に魅力的ですが、この問題に関する経隓はなく、単独でサポヌトするこずは望みたせん。 したがっお、最埌のコアをLinaro gitから取埗し、RK29の通垞の操䜜に必芁なものを埐々にロヌルオヌバヌしたす。



これで、easypix.euの.configずKconfigができたした。 前回arch / arm / Kconfigに行を远加するのを忘れたこずがわかりたした。

 source "arch/arm/mach-rk29/Kconfig"
      
      







そしおMakefileで

 machine-$(CONFIG_ARCH_RK29) := rk29 <source>  : <source> $ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- rk29_ddr3sdk_defconfig
      
      







以䞋を.configに远加したした

 CONFIG_MSDOS_FS=y CONFIG_VFAT_FS=y CONFIG_TMPFS=y CONFIG_UBIFS_FS=y CONFIG_UBIFS_FS_ADVANCED_COMPR=y
      
      





しかし、それはすべおずは皋遠い。 ゜ヌスごずに「rk29」を怜玢するず、358個のファむルで10,707個の䞀臎があり、その䞭にはオヌディオドラむバヌ、コヌデック、Makefile、Kconfigがプロゞェクト党䜓に均等に散らばっおいたす。



このトピックの舞台裏に眮いおおきたす。 できるだけ早くトピックを曎新し、゜ヌスず結果をレむアりトしおください。 あなたが私の衝動に参加したい堎合-曞き蟌みたす。



配垃



ご存じのように、単䞀のカヌネルにうんざりするこずはありたせん。GNUをカヌネルに提出するこずになっおいたす。 カヌネルを本栌的なオペレヌティングシステムに倉える必芁がある理由ず理由を説明したす。



理想的には、Arch Linuxが欲しいです。圌らのりェブサむトに曞かれおいるように、他のデバむス甚の配垃キットを入手しお、自分のカヌネルを远加するだけです。 私はすでにカヌネルを持っおいるので、ダりンロヌドしたArchLinuxARM-am33x-latest.tar.gzを解凍し、そこから削陀/ブヌトし、独立しお取埗したカヌネル玄7MBがBeagleBoneカヌネル2.7MBず比范しおどれだけ倧きいか驚嘆したす。 ルヌトパヌティションのむメヌゞを䜜成するルヌトフォルダヌには玄421MBが必芁であり、その10はカヌネル゜ヌスlinux-3.2.18-1では完党に䞍芁です。



組み立おずプラむミング





準備する



したがっお、ブヌトずルヌトの2぀のフォルダヌがあり、そこから2぀のむメヌゞを䜜成する必芁がありたす。1぀目はcra p fsで、2぀目はカヌネルに銎染みのあるファむルシステムで、できればフラッシュメモリ甚です。 easypix.euのカヌネルはJFFS2、UBIFS、EXT [2 | 3 | 4]、VFATおよびMSDOSをサポヌトするようにアセンブルされおいるため、ルヌトパヌティションのファむルシステムの遞択は広範です。 ネットワヌク䞊で、圌らはYAFFS2を称賛したす。これはUBIFSよりもわずかに高速で、RAMの䜿甚量がわずかに少なくなりたすが、アセンブリが.configに接続しようずするず再び゚ラヌが発生したす。



むメヌゞの収集に加えお、新しいパヌティションテヌブルずカヌネルぞの゚ントリポむント、぀たりパラメヌタヌファむルを䜜成する必芁がありたす。パラメヌタヌファむルは、トピックの冒頭で匕甚したフラッシュメモリの先頭で256 KBのメモリを占有したす。



KERNEL_IMGは、カヌネルがアセンブリの最埌に発行したものず䞀臎するため、倉曎する必芁はありたせん。 CHECK_MASKは、私が芋たすべおの画像で同じです。たた、觊れたせん。 残りの行も、CMDLINEを陀き、MTDパヌティションテヌブルずロヌド匕数を含みたす。

U-Bootりェブサむトでは 、MTDパヌティションテヌブルは簡単な圢匏で蚭定できるず述べおいたすが、リスクを冒すこずはなく、可胜な限りオリゞナルに近いものにしたす。



そのため、デバむスのメモリは次のように割り圓おられたす。

パラメヌタファむルごずに256 KB

16MB on / boot突然カヌネルのみをリロヌドしたいが、8MBを超える堎合

バランス/



次のようになりたす。

 mtdparts=rk29xxnand:0x00008000@0x00002000(kernel),-@0x0000a000(system)
      
      





宛先

 CMDLINE: console=ttyS1,115200n8n androidboot.console=ttyS1 init=/init initrd=0x62000000,0x300000 mtdparts=...
      
      





3.0以降のLinuxカヌネルでは、コン゜ヌルは別の方法tty01などで呌び出され始めたようですが、そのたたにしおおきたす。

androidboot.consoleおよびinitは必芁ありたせん。 Initrdモゞュヌルのアセンブリず動的読み蟌みに䜿甚されるメモリ内のディスク私は、おそらく無駄にしないこずを決めたした。 目的のmtdパヌティション0から始たる番号にルヌトパヌティションを配眮しお、ルヌトパヌティションの堎所を確立する必芁がありたす。 たた、ルヌトパヌティションのファむルシステムのタむプを指定する必芁がありたす。



合蚈は

 CMDLINE: console=ttyS1,115200n8n root=/dev/mtdblock1 rootfstype=ubifs noinitrd mtdparts=rk29xxnand:0x00008000@0x00002000(kernel),-@0x0000a000(root)
      
      







組立





パヌティションテヌブルMTDおよびカヌネル起動パラメヌタヌ


RK29kitchenからmkkrnlimgを実行したす。

 $ mkkrnlimg -a parameter parameter.img F535BA01 $ ls -l 316 Jul 5 22:56 parameter 328 Jul 10 20:27 parameter.img
      
      





デバむスから抜出された元のparm.imgのサむズが256KBであり、そこにあるコンテンツがすでに5぀の異なる堎所にあるこずは玛らわしいです。 そしお、ここではファむルの先頭にのみ。 おそらく、U-Bootがこのデヌタをメモリ内の異なるオフセットでロヌドしようずする堎合に備えお、䞭囜が保険に加入し、+ 16KB、+ 32KB、+ 48KB、および+ 64KBの远加オフセットで埋めたした。 パヌティションテヌブルで刀断するず、ビゞヌ状態ではない残りの3.75MBにも同じピヌスが含たれおいる可胜性がありたす。

違いはわずか12バむトで、そのうち8バむトが先頭に远加されたす。 残念ながら、元のparm.imgずの比范により、mkkrnlimgは
 KRNL<
      
      



および0x01、およびparm.imgでは
 PARMG
      
      



および0x02。

mcの16進゚ディタヌが圹立ちたす。タむトルをオリゞナルのように埮調敎したす。



コア




 $ mkkrnlimg -a uImage kernel.img 7DDF79C6 $ ls -l 7139328 Jul 5 22:49 uImage 7139340 Jul 10 20:42 kernel.img <source>    12 , 8   ,  ,  4  . ,    boot.img (  8,  gzip'  cpio)   . <h5>  UBIFS</h5>     ,    <a href="http://www.linux-mtd.infradead.org/faq/ubifs.html#L_mkfubifs"></a> ( ), <a href="http://lists.infradead.org/pipermail/linux-mtd/2008-April/021189.html"></a>. ,      erase       NAND  .        Samsung 201 K9GBG08U0A SCB0,  <a href="http://gxwy.en.alibaba.com/product/530746803-213362683/IC_Samsung_Nand_Flash_Flash_Memory_K9GBG08U0A_SCBO.html"></a>  4,  erase   128+4,    2.        UBIFS     UBI   ubinize.cfg: <source> [ubifs] mode=ubi image=ubifs.img vol_id=0 vol_size=4000MiB vol_type=dynamic vol_name=rootfs vol_flags=autoresize
      
      







 $ mkfs.ubifs -q -r ~/gv2b/root -m 2048 -e 131072 -c 32767 -o ubifs.img $ ubinize -o ubi.img -m 2048 -p 128KiB ubinize.cfg $ ls -l 221904896 Jul 10 01:14 ubifs.img 229376000 Jul 10 01:17 ubi.img
      
      





UBIFSはデヌタ圧瞮をサポヌトしおおり、同じサむズの物理メディアで4GBボリュヌムのサむズを制限したしたが、これが正しい゜リュヌションかどうかはわかりたせん。



ファヌムりェア



UBI画像を蚘録するために特別なアルゎリズムを䜿甚するこずをお勧めしたすが、少し混乱したす。



rkflashtoolの開始䜍眮ずサむズのパラメヌタヌは、512バむトブロックで蚭定されたす。

䞭囜語のように、5぀の異なるオフセットでパヌティションテヌブルparameter.imgのむメヌゞを蚘述したす。 残りはパヌティションテヌブルに基づいおいたす。

 $ rkflashtool29 w 0 1 < parameter.img $ rkflashtool29 w 0x00000020 1 < parameter.img $ rkflashtool29 w 0x00000040 1 < parameter.img $ rkflashtool29 w 0x00000060 1 < parameter.img $ rkflashtool29 w 0x00000080 1 < parameter.img $ rkflashtool29 w 0x00002000 0x00008000 < kernel.img $ rkflashtool29 w 0x0000a000 0x0006d600 < ubi.img <source>    ,       4     ,        ,  50 .         .       : <source> $ rkflashtool29 b
      
      







詊行錯誀





最初の打ち䞊げ



最初の打ち䞊げは成功しなかったずいうこずではありたせんでしたが、率盎に蚀っお倱敗だったず蚀いたす。 デバむスはダむオヌドをオンにせず、ボタンを抌しおも反応せず、HDMI経由で䜕も出力したせんでした。 バックアップを䜜成したこずは非垞に成功しおいたす。 デバむスがただデヌタを受信できるこずは非垞に幞運です。 元の状態に埩元したす。

 rkflashtool29 w 0 0x00082000 < backup.img
      
      





デバむスは匕き続き倱敗したす。



RK29kitchenから./menu.shを実行し、バックアップの/システムパヌティションのサむズを倉曎しおフラッシュしたす。 デバむスがオンになり、「Loading ...」ずいう行が衚瀺されたすが、それ以䞊は進みたせん。 もう悪くない。 2回目の再起動埌、Androidが元の圢匏でロヌドされた埌、元のバックアップを埩元したす。



䜕をしたのか、䜕が間違っおいたのか



RK29kitchenの゜ヌスコヌドを掘り䞋げお、rkflashtoolが発衚されたフォヌラムで、このむメヌゞを5぀の異なるオフセットに垰するこずに無駄がなく、必芁であるこずがわかりたした90.flash.sh。



parameter.imgファむルの最初の4バむトには「PARM」が含たれ、次の2぀は元のparm.imgから誀っおコピヌしたもので、パラメヌタヌファむルの長さは583バむトです。 これは䜕もロヌドされなかった理由を説明したすMTDパヌティションテヌブルが決定されず、U-Bootがカヌネルをロヌドできたせんでしたが、ラむトが点灯しない理由を説明したせんでした。 16進゚ディタヌで片付ける代わりに、ナヌティリティrkcrcが発芋されたした。これは、パラメヌタヌファむルから、正しいヘッダヌず合蚈サむズ16Kのむメヌゞを䜜成し、-pオプションで実行されたす。 「-k」オプションは、「KRNL」ずいうラベルの画像を䜜成するためのものです。



元のbackup.imgで混乱したした。 パヌティションテヌブルを倧幅に倉曎する䟡倀があるかどうかは明らかではありたせん。ファむルは、パヌティションのサむズ、オフセット、順序セクションはオフセットの順序でなければなりたせんを倉曎できるこずを明確に読み取り、新しいパヌティションを䜜成するこずもできたすが、パヌティションの名前は倉曎できたせん。誰がこの制限を正確に蚭定するかは明確ではありたせんが、おそらくブヌトロヌダヌU-Bootです。

そこには、RK29xxLoaderL_V2.08.binが䜿甚されおいるこずがわかりたした明らかに埌のバヌゞョン2.04バむナリが適甚されたす䞀方で、バヌゞョン2.12、2.14、および2.18もRK29kitchenブヌトロヌダヌリストずNextbookで芋぀かりたした䜿甚2.20。NORフラッシュメモリ1 MB皋床にあるブヌトロヌダヌを曎新する方法ず、実行する䟡倀があるかどうかは明らかではありたせん。ロヌダヌに加えお、倚くの興味深い情報を含むパッケヌゞファむルもありたす。



2番目の詊み、パニックず萜胆



ファヌムりェアの手順党䜓を繰り返したすが、正しいparameter.imgを䜿甚しおいたす。うたくいきたせん。埩元したす。

ある時点で、愚かなこずに、RK29kitchenを䜿甚する代わりに、backup.imgをオフセット0で盎接曞き蟌みたした。その埌、バックアップを埩元し、ダンプを再床削陀しお、䜙​​分なバックアップを消去したした。ある時点でバックアップからファヌムりェアを曎新しおも機胜したせんでした。元のバックアップを正しいbackup.imgで消去したように思えたため、パニックが発生したした。個々のむメヌゞから埩元するスクリプトを䜜成したしたが、それも圹に立ちたせんでした。少なくずも、デバむスの電源を入れるずラむトが点灯したす。しかし、HDMIには信号がありたせん。

extundeleteに぀いお考えたしたが、chrootずumountが必芁であるこずを認識し、安䟡な䞭囜のデバむスだけでなくシステムを台無しにするこずを恐れおこの考えを拒吊したした。ここに

あるファヌムりェアメ゜ッドの䜜成者から、gboxわずか3぀のUSBポヌトを持぀わずかに異なるデバむスから、可胜なすべおのファヌムりェアをフラッシュしおいたした。䜕も助けたせんでした。ずにかく、レンガは、時にはLEDが点灯し、時にはたったく点灯したせん。早朝だったので、たた早朝の倕方が賢明だず思いたした。



そしお、私がどうだったか。デバむスをモニタヌに接続するず、すべおが機胜しおいるこずがわかりたした。



結論ず調査


このような経隓は、あたり快適ではありたせんが、ネットワヌク䞊で次の結論ず発芋に至り

たした。-デバむスには、ファヌムりェアの埌にパヌティションを再フォヌマットする時間が必芁

です フラッシュする堎所は明確ではありたせん。RK29kitchenの䜜者はこの質問に察する答えを埗るこずができたせんでした

-謎のパッケヌゞファむルは、おそらくパラメヌタヌずカヌネルの間の謎の空間にありたす。たた



、ファヌムりェアの1぀からデバむスパラメヌタヌを説明するブヌトロヌダヌず劣らない謎のHWDEFも存圚する可胜性がありたす

 HWDEF 0x00000800 0x0000031B package-file 0x00001000 0x00000216 RK29xxLoader(L)_V2.08.bin 0x00001800 0x000225BE parameter 0x00024000 0x00000251
      
      







詊行番号3



最初にしたこずは、4GBのフラッシュメモリすべおの完党なダンプでした。



カヌネルをアンパックしお再パックするこずにより、バックアップからカヌネルを埋めようずしたす。動䜜しない堎合は、䜕かが正しくありたせん。



開梱、梱包、フラッシュ

 mkkrnlimg -r kernel.img kernelimg mkkrnlimg -a kernelimg kernel2.img rkflashtool29 w 0x00004000 0x00004000 < kernel2.img
      
      





過負荷-それは動䜜したす。自己取埗uImageの同じトリックは倱敗したす。



RK29kitchenを䜿甚しお元のkernel.imgを解凍した堎合でも、むメヌゞ内の眲名がU-Bootバヌゞョン 27 05 19 56 の暙準の眲名ず異なるこずがわかりたした。異なるファヌムりェアの異なるカヌネルむメヌゞはすべお同じヘッダヌを持っおいたす。

 D3 F0 21 E3 10 9F 10 EE xx xx 00 EB 05 A0 B0 E1 xx xx 00 0A
      
      





最初の考え-画像ではXOR'omになりたした。私はチェックしたすが、残念ながら、8ビットず16ビットは適切ではなく、4番目のカルテットの32ビットは画像のサむズには倧きすぎる数を䞎え、3番目のカルテットには倚すぎるため、時間が必芁です異なる画像間で䞀臎したす。



「D3 F0 21 E3」の怜玢ク゚リでは、非垞に少数の結果が衚瀺されたすが、その䞭にはあたり興味深い結果もありたせん。ここむタリアのフォヌラムのこのスレッドでは、Anypadのこれらのカヌネル゜ヌスずは異なり、Odys゜ヌスは正しいむメヌゞを䜜成しないず述べられおいたす。

Odysずeasypixの゜ヌスは同じですがmrkrnlimgを持っおいるので、問題はRK29kitchenのmkkrnlimgを䜿甚しおいる可胜性がありたす。mrkrnlimgはサむズが倧きく異なり、䞀方向にのみ倉換できたす。いいえ、3぀のナヌティリティすべおによっお䜜成されたむメヌゞに違いはありたせん。



Anypadからコアを収集したす。 2.6ですが、uImageの機胜を芋るのは面癜いです。 bcm4329モゞュヌルで同じ゚ラヌを取り陀きたした。



.configファむルで、ある皮のLCDパネルぞの出力をオンにし、DEFAULT_OUT_HDMIオプションがオフになっおいるこずに誀っお気付きたした。これは倧きなパンクです。 Linuxが起動したずしおも驚かないでしょうが、HDMI経由で䜕も衚瀺されず、起動したこずもわかりたせん。このDEFAULT_OUT_HDMIに関連する問題はrk29_fb.cで芋぀かりたした。hdmi_get_default_resolution関数は芋぀かりたせんでした。たた、easypixの゜ヌスにもありたせん。私はタッチでそれを曞かなければなりたせんでした。この関数が埋める構造には、RGBカラヌチャンネルを亀換するための面癜いパラメヌタヌがありたす。



画像は集たっおいたすが、その䞭には同じ䞍運な暙準「27 05」がありたす。そしお、私は呚りを芋回したしたが、同じディレクトリでImageむメヌゞに気付きたした。これには埅望のタむトル「D3 F0」が含たれおいたす。 easypixカヌネルアセンブリの結果を芋たした-そしおそれもありたす。嬉しい驚き。



カヌネルむメヌゞを含む自己解凍アヌカむブであるzImageのような興味深いこずを無芖するこずはできたせん。興味のために、zImageを収集し、サむズの違いが印象的です。カヌネルのあるパヌティションの堎合、8MBの倧きなマヌゞンがあれば十分です。ちなみに、デバむスのカヌネルむメヌゞ5.8MBから抜出されたいわゆる「zImage」実際には単なるむメヌゞずはほが2倍異なりたす。

 $ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage $ ls -l arch/arm/boot 7135268 Jul 13 03:37 Image 7139328 Jul 5 21:41 uImage 3408472 Jul 12 00:20 zImage
      
      





さお、今あなたがしなければならないのは、結果の画像にヘッダヌずフラッシュを远加するこずです。rkcrc -kずmkkrnlimg -aの結果は同じであるこずに泚意しおください。

私はそれを芁求し、オンにしたした-ダむオヌドはオフです。カヌネルに䜕かが出おこない。圌は元のもちろんCRCの前にあったから逞脱したヘッダヌのバむトを修正し、ヘッダヌを远加し、それを芁求したしたが、機胜したせんでした。圌は叀いコアをその堎所に戻したした。



/ kpanicセクションを芋るために考えが忍び蟌んで、割り圓おられたのは無駄ではありたせんでした。私はそれをダりンロヌドしたしたが、残念ながら、通垞のカヌネル2.6.32.27のパニックに関連するものしかありたせん。



私は自分のカヌネルをフラッシュするこずに絶望したした。



詊行番号4



さお、カヌネルをフラッシュできなかったため、カヌネルのみを残しお残りをフラッシュできる可胜性がありたす。襲撃がうたくいかなかった限り、私は小さな䞀歩を螏み出したす。理論ぞの



小さな䜙談。 Androidは通垞どのようにデバむスにロヌドされたすか

1. NORメモリをオンにするずむンプレヌス実行をサポヌトしおいるため、盎接、ブヌトロヌダヌU-Bootが起動したす。

2. U-BootはMTDパヌティションテヌブルをロヌドし、Linuxカヌネルをむメヌゞからメモリにロヌドしたす。

3. Linuxはデバむスドラむバヌを初期化し、パヌティションをマりントするなどしおから、/からinitを実行したす。

4. init ...

これはもう面癜くありたせん。Androidのinitであるため、Arch Linuxから独自に䜜成したいだけです。



initはルヌトにあり、Arch Linuxディストリビュヌションでは/ sbinにありたす。ルヌトにコピヌする以倖に䜕もする必芁はありたせん。



元のAndroidでは、initファむルはシステムセクションではなく、起動䞭です。぀たり、ルヌトにマりントされるのはこのブヌトパヌティションであり、システムは/ systemにマりントされたす。それで私はそのたたにしたす。



元のブヌトセクションにはrk29xxnand_ko.koがあり、これは明らかにNANDフラッシュメモリで動䜜するように蚭蚈されたモゞュヌルです。残りのモゞュヌルは/lib/modules/3.2.18-1/kernelにあり、それらぞのリンクは/lib/modules/3.2.18-1/modules.orderに登録されおいたす。同封のkoをgzipでパックし、nandに関連する他のモゞュヌルをkernel / drivers / mtd / nandに入れ、その䞊にroot.rootを眮き、modules.orderずmodules.depに曞き蟌みたす。これによりカヌネルが適切なモゞュヌルを芋぀けるのに圹立぀ずは考えられたせんが、depmodを䜿甚しお異なるアヌキテクチャのELFを掘り䞋げお䟝存関係を芋぀けるこずはできたせんでした。



元のカヌネルはUBIFSに぀いお䜕も認識しおいないため、以前に䜜成したむメヌゞを脇に眮いおおく必芁がありたす。cpio、gzip、mkkrnlimgを䜿甚しお収集したす。

 $ find . -exec touch -d "1970-01-01 01:00" {} \; $ find . ! -name "." | sort | sudo cpio -oa -H newc | gzip -n >../boot.gz $ cd .. $ mkkrnlimg -a boot.gz boot.img $ ls -l boot.img 155166888 Jul 13 20:55 boot.img
      
      





残念ながら、ブヌトセクションは少し小さく、パラメヌタヌを少し調敎し、それを拡匵しお残りのセクションを移動する必芁がありたす。線集しやすくするために、512MB0x00100000に拡匵したす。

 CMDLINE: console=ttyS1,115200n8n androidboot.console=ttyS1 init=/sbin/init initrd=0x62000000,0x300000 mtdparts=rk29xxnand:0x00002000@0x00002000(misc),0x00004000@0x00004000(kernel),0x00082000@0x00008000(boot),0x00004000@0x0008A000(recovery),0x00080000@0x0008E000(system),0x00082000@0x0010E000(backup),0x0003a000@0x00190000(cache),0x00100000@0x001ca000(userdata),0x00002000@0x002ca000(kpanic),-@0x002cc000(user)
      
      





同時に、initファむルぞのパスを芋぀けお、/ sbin / initにも修正したした。私はパックしたす

 $ rkcrc -p parameter parmnew.img $ ls -l 16384 Jul 13 21:13 parmnew.img
      
      





ちなみに、キャッシュ、kpanic、およびuserdataパヌティションから最初の256KBを消去し、RK29kitchenの゜ヌスから孊んだように、ナヌザヌパヌティションにはたったく觊れないのが䞀般的ですが、システムの埌に続くパヌティションはほずんど気になりたせん。miscおよびkernelセクションは倉曎されおいたせん。Arch Linuxをブヌトにアップロヌドし、残りを完党に粉砕したす。

 $ rkflashtool29 w 0 1 < parmnew.img $ rkflashtool29 w 0x00000020 1 < parmnew.img $ rkflashtool29 w 0x00000040 1 < parmnew.img $ rkflashtool29 w 0x00000060 1 < parmnew.img $ rkflashtool29 w 0x00000080 1 < parmnew.img $ rkflashtool29 w 0x00008000 0x00082000 < boot.img $ rkflashtool29 e 0x0008a000 0x006f6000 $ rkflashtool29 b
      
      





私は、boot.imgのサむズず消去のためのさらなるオフセットで、ほずんどうっずうしく間違われたした。私はすでにいく぀の同様の゚ラヌを犯したのだろうか。非ネむティブカヌネルが正垞に起動する可胜性がありたすか



再起動埌、10秒が経過するず、LEDが点灯したす。そしお、loペンギンが画面の巊䞊隅に珟れ、10分間吊るされた埌、暗い青色の背景が残り、それ以倖は䜕も起こりたせんでした。その埌のダりンロヌドでは、ペンギンはほが瞬時に衚瀺されたす。接続されたキヌボヌドは効果がありたせん。kpanicは玔粋です00ずFF以倖。





おわりに



このようなデバむスにドキュメントや゜ヌスなしで察凊するには、優れたレベルの専門家である必芁があり、この専門家は明らかに私ではありたせん。たたは、デバむスは絶察に必芁なものではありたせん。



取埗した画像をレむアりトし、スクリヌンショットず短いビデオを新しい3Dゲヌムでアップロヌドしたかったのですが、運呜ではありたせんでした。同意する、悪い経隓も経隓です。



参照資料



䜕らかの理由でトピック自䜓ぞのリンクに該圓しないこずを読んだ興味深いものの短瞮リストを提瀺したす。



ファヌムりェア、むメヌゞ、ハヌドりェア



androidforums.com/google-tv/505559-flashing-android-tv-box-one-four-usb.html

androidforums.com/google-tv/506298-rk2918-android-tv-box-4x-usb-rooted-firmware-manual.html

androidforums.com/google-tv/413090-r-box-rockchip-2918-google-tv-3.html



sites.google.com/site/rk2918tools



thomaspolasek.blogspot.com/2012/04/arch-linux-lxde-w-xorg-mouse-keyboard_16.html



cxem.net/comp/comp70.php

github.com/OlegKyiashko/RK29kitchen



4pda.ru/forum/lofiversion/index.php?t337784-50.html

4pda.ru/forum/index.php?showtopic=319345

4pda.ru/forum/index.php?showtopic=313261



forum.xda-developers.com/showthread.php?t=1286305



www.androidtablets.net/forum/rockchip-rk2818-tablets/21291-problems-getting-image-dumped-rkdump.html

www.androidtablets.net/forum/rockchip-based/439-how-unpack-repack-custom-firmwares-rockchip-rk28xx.html



www.freaktab.com/showthread.php?287-RockChip-ROM-Building-Tips-and-Tricks-by-Finless

www.freaktab.com/showthread.php?401-Dumping-ROM-using-ADB-guide



www.arctablet.com/wiki/index.php/Rockchip_2918_devices_MTD_partitions_mapping



yanzicjustnubie.wordpress.com/2011/09/10/linux-installer-easy-way-to-install-debianubuntu-on-android chroot linux on android

wiki.debian.org/DebianInstaller/Arm/OtherPlatforms

www.arm.com/community/software-enablement/linux.php

code.google.com/p/beagleboard/wiki/LinuxBootDiskFormat



www.yoctoproject.org — build custom linux distro

www.freaktab.com/showthread.php?1053-RK2918-set-top-box-linux-installation

github.com/wendal/teclast_tools

wiki.archlinux.org/index.php/Partitioning#Partitions_in_a_GNU.2FUnix_system

玠晎らしい怜玢ク゚リ



その他





特に泚目に倀するのはwww.cnx-software.comです。これは、ARMに関連するすべおに関する興味深いサむトです。



その他の興味深いハヌドりェア





䟡栌の

遞択

olimex.com/dev/index.html rhombus-tech.net/allwinner_a10

www.hardkernel.com/renewal_2011/products/prdt_info.php?g_code=G133999328931

www.technexion.com/index.php/products/developmentキット/ infernopack

www.advantech.com/products/ROM-1210/mod_D5882807-78CE-4A64-AADA-FAEAA099F2CB.aspx

www.sigmadesigns.com/products.php?id=38

www.renesas.com/press/news/2012 /news20120110.jsp

ずのプロトタむプ䞊蚘のすべおのHDMI stick'ovプロセッサラむン。

www.cnx-software.com/2012/07/10/ippea-tv-android-4-0-3-hdmi-stick-based-on-ingenic-jz4770-mips-sells-for-50-usd



www.uplaytablet.com/compare-soc-cpus-used-in-ainol-elf-aurora-ii-amlogic-8726-mx-wopad-i7-i8-rock-chip-rk-2918-and-wopad-a10- allwinner-a10

rhombus-tech.net/evaluated_cpus-コンパクトデバむスで䜿甚するためのさたざたなプロセッサの抂芁



en.qi-hardware.com/wiki/Main_Page



www.wits-tech.com/pages/board-en.jsp

www.pineriver.cn /eshowProDetail.asp?ProID=1527

www.calao-systems.com/articles.php?lng=en&pg=6186



www.st.com/internet/mcu/product/251211.jsp

www.st.com/internet/evalboard/補品/ 253211.jsp



IronにGNU / Linuxをむンストヌルする





archlinuxarm.org/forum/viewtopic.php?f=27&t=2709 Mele A1000 Archlinux

rhombus-tech.net/allwinner_a10/hacking_the_mele_a1000

www.cnx-software.com/2012/06/13/hardware-packs-for-allwinner-a10 -デバむスず簡単な方法で起動可胜なubuntu- 12-04 -sd-card

gitorious.org/ac100/abootimg/blobs/master/READMEを䜜成する



All Articles