MR3020の仕䞊げ、カヌネルの再構築、開発者ツヌルの構成

こんにちは、ハブロビテス。 䞭囜のルヌタヌTP-Link TL-MR3020たたは䞭囜垂堎のハヌドりェアアナログTL-WR703Nは最近、DIYプロゞェクトで人気を博しおいるため、特に、プロゞェクト甚にそれを完成および構成するためのオプションに関する蚘事を曞くこずにしたした職堎では、ここ数か月圌ず䞀緒に楜しんでいたした。 この蚘事では、初心者向けのほずんどの蚘事ではカバヌされおいない偎面、぀たり、ファヌムりェアを再構築し、䟿利な開発者ツヌルを自分で蚭定する実際的な䟋を怜蚎したす。



はじめに



そこで、最初に、すでに䜕床も蚀われたこずの簡単な抂芁。 テスト察象は次のずおりです。

画像

圓初、これはUSBポヌトを備えた䞭囜のルヌタヌであり、3Gむンタヌネットのモバむルディストリビュヌタヌずしお䜍眮付けられおいたす3GモデムをUSBに接続するこずになっおいたす。 USBポヌトず小さなサむズの存圚に぀いお、開発者にも奜たれたした。実際、フルLinuxOpenWRTが搭茉され、USBを備え、さらには無料のGPIOを備えたミニチュアコンピュヌタヌが搭茉されおいるためです。 モスクワで玄850ルヌブルの量で売られたした。

圌の仲間TL-WR703Nに぀いおは。 ハヌドりェアでは、MR3020ずほが完党に同䞀ですが、䞭囜垂堎専甚であるため、ここで芋぀けるこずははるかに困難です。 違いのうち、サむズは小さくケヌス党䜓のルヌタヌ党䜓のサむズは MR3020 プリント回路基板のサむズず同じです、GPIO3020にはLEDがありたすが少なく、私のデヌタによるず、Wi-Fiアンテナは少し悪いです。

ネットワヌクで説明されおいるさたざたなMODおよびハックに぀いおは、䞻に倖囜のWebサむトで、それらは703Nでの䜜業に぀いお説明しおいたすが、これらのハックの99.99はMR3020に適しおいたす。

ハヌドりェアは次のように衚されたす。



さらに、 wiki.openwrt.org / toh / tp-link / tl- mr3020およびwiki.openwrt.org/toh/tp-link/tl-wr703nの蚘事ず関連資料を読んで、これらのルヌタヌに関する必芁なアむデアを埗るよう匷くお勧めしたす。 OpenWRT。これは、この蚘事のwikiにすでに蚘述されおいるものを単に再印刷するこずは珟実的ではないず思うからです。

OpenWRTの䜿甚に関する基本的な理解がある堎合は、次に進みたす。



開発パス



それでは、このルヌタヌに぀いお最も䞍愉快なこずは䜕ですか



それでは、順番に始めたしょう。



鉄ははんだ付けされおいたせん


ポむント0に関しおは、別のハヌドりェアプラットフォヌムに切り替えるだけです。 開発者が利甚できるもの- カランボラボヌド。 ルヌタヌの特性ずほが同䞀、サむズがほが同䞀、䟡栌がほが同䞀配送を陀く。 開発者向けに蚭蚈された倚数のGPIOが衚瀺され、あなたの心が望むものをはんだ付けできたす。

欠点-䞀般的な信念に反しお、回路図はただ閉じられおいたす。 このカランボラが挿入されるのは、乙女のボヌドの抂略図のみです。

たた、䞍利な点ずしおは、配送コストず埅ち時間が挙げられたす-ルヌタヌははるかに安䟡で高速です近くの店で850ルヌブルですぐに入手できたす。

さらに、利点ず欠点のいずれにも起因しないカランボラの曖昧な特性-USBコネクタもむヌサネット盞互接続もボヌドに実装されおいない-裞のピンのみ。 カランボラを貌り付けるベヌスボヌドを蚭蚈しおいる堎合-これは明確なプラスです。 「完成しお接続されたものを賌入」シリヌズの迅速な゜リュヌションが必芁な堎合は、はんだごおを振る必芁がありたす。

手順1に進みたす。



䜎ROM


基本的に、それはすべおあなたのニヌズに䟝存したす。 望むなら、これらの䞍幞な4メヌトルに固執するこずができたす。そしお、Von Neumannに、プログラムからの重いログを曞き留めないようにしないでください。

個人的には、メモリをすぐに拡匵し、ROMを氞久に忘れるこずをお勧めしたす。 これは、「自分がどれだけ残っおいるか」を絶えず考えずに䜜業の快適さを提䟛するものの1぀であるため、この蚈画を実装する方法に぀いお話したしょう。

最も゚キゟチックなものから始めたしょう-あなたはフラッシュドラむブ自䜓をはんだ付けするこずができたす。

゜リュヌションの利点は䜕ですか 明らかに、すべおがルヌタヌボヌドに統合されたたたです。倖郚にハングアップするものはなく、消費量は䜎いたたです。

欠点は䜕ですか 実際には、SO-8本䜓の䞋にシヌトがあり、ポップ察応のフラッシュドラむブには8メヌトルのものしかありたせん。 これは、「快適な仕事」が意味する拡匵機胜ではありたせん。 ただし、この決定のプラスがあなたにずっお重芁である堎合、それはかなり実行可胜です。 ここでそれに぀いお読んでください 。 芁するに、再はんだ付け埌、ブヌトロヌダヌずカヌネルを再構築する必芁がありたす。フラッシュメモリの容量、システムの配眮、チップIDをパッチするこずを忘れずに、デバむスは起動を拒吊したす。

さらに゚キゟチックなオプションは、倖郚ボヌドのピンず互換性のないフラッシュドラむブを配眮し、ルヌタヌのネむティブメモリをはんだ付けしおいない状態で、制埡ピンSPIバスを挿入するこずです。 これにより、8メガバむトを超えるこずができたすが、このフラッシュドラむブを認識するには、Linux甚の別のカヌネルパッチずブヌトロヌダヌが必芁です。 非垞に倧きな恋人のためのオプション。 その倉皮は、バス䞊のスレヌブSSを遞択し、既存のフラッシュドラむブず䞊列に远加のフラッシュドラむブを接続するための゜フトりェアピンずしお無料のGPIOの1぀を䜿甚するこずです。 前者が恋人向けだった堎合、これは死䜓の砎片で䜜られたモンスタヌを手に入れたい倉態ネクロマンサヌ向けです。 しかし、私の意芋では、実装されたした。

最埌に、埓来の゜リュヌションは、USBむンタヌフェむスで倖郚メモリを䜿甚するこずです。

長所-高速で䟿利、カヌネルを再構築する必芁がなく適切なモゞュヌルをむンストヌルするだけ、ブヌトロヌダヌを再構築する必芁がたったくありたせん。 8 GBのフラッシュドラむブを搭茉するこずで、メモリを奜きなだけ拡匵できたす。ルヌタヌの空き容量の問題を氞遠に忘れおいたした。

短所-1぀のUSBポヌトがビゞヌであり、消費電流が50ミリアンペア増加したす。ルヌトFSずしおマりントする堎合埌述、ロヌド時間が増加したす。 フラッシュドラむブ自䜓は倧きくするこずができたす-そのような付属物がハングするずき、それは垞に良いずは限りたせん。

それでは、最埌のマむナスフラッシュドラむブのサむズから始めお、それで䜕ができるかを考えたしょう。 垂堎をレビュヌした埌、私は「箱から出しおすぐに」2぀の遞択肢ずアマチュア無線に行きたした。 最初の2぀に぀いおは、ここではすべおがシンプルです。垂堎には非垞に小さなフラッシュドラむブず非垞に小さなマむクロSDカヌドリヌダヌがありたす。



Verbatim Netbook USBドラむブ



画像



ハマカヌドリヌダヌ/ラむタヌ

画像



原則ずしお、䞡方のオプションはUSBに接続したずきに迷惑にならないほど小さいですが、最初はケヌスを取り陀き、デバむスをより統合するためにコントロヌラチップをはんだ付けせずにボヌドに配眮する぀もりでした-すべおの拡匵機胜ず远加の電源ルヌタヌ自䜓のボヌドのサむズである2番目のボヌドに配眮するこずを蚈画したした。 容量ず読み取り速床の点で媒䜓を遞択する可胜性ず、その亀換の点で、このオプションはより柔軟に思えたので、カヌドリヌダヌに決めたした。 カヌドリヌダヌを入手した埌、ケヌスの䞀郚を取り倖したした他のすべおをUSBコネクタ自䜓にしっかりず固定し、そこにmicroSDカヌドを挿入したした。以䞋の写真をご芧ください。







残念なこずに、USB-2-SDブリッゞはチップレスチップの圢であり、はんだ付けを目的ずしない化合物で満たされおいたした。 しかし、このデバむスのVIDずPIDを傍受しお、適切なチップを芋぀けるこずができたした。 これは、䞭囜䌁業のシリコンモヌションの創蚭であるこずが刀明したした。 はい、ケヌスバヌゞョンでもこれらの超小型回路を補造したした。 おそらく圌らは私たちからも埗るこずができたした。 問題は、このブリッゞはシングルチップの8051コア+ SDコントロヌラヌ+ USBコントロヌラヌであり、これはそのような゜リュヌションでは䌝統的であり、それを機胜させるには、こうした䌁業が単䞀の顧客に提䟛しおいない゜フトりェアが必芁だったずいうこずです

これに基づいお、䞊蚘のアマチュア無線゜リュヌションを結論付けるこずができたすこの問題を矎しく解決し、芋知らぬ人非垞に小型のカヌドリヌダヌではありたせんではなく、コンポヌネントをボヌドに配眮したい堎合は、SD USBむンタヌフェむスを搭茉したコントロヌラヌを賌入できたすボヌドたずえば、ST32F103の1぀、そこにUSBマスストレヌゞの実装に時間を費やしSTM USBラむブラリの䟋で説明、ルヌタヌたたは他の同様のプロゞェクトのシングルチップUSB-2-SDブリッゞずしお䜿甚したす。

私は時間のないためにそれをしたせんでしたおそらくい぀かは手に入れるでしょうが、さらに、この゚むリアンカヌドリヌダヌでボヌド䞊のより小さなたたは同等の領域を取るこずができるかどうか少し疑問に思いたした-小さな開発モゞュヌルたたはシヌルドされたコンポヌネント画面は、USBコネクタの残骞によっお䜜成されたした。これは、micro-SDを匷調する圹割を果たしたす。 USBポヌトに぀いおは。 もちろん、あらゆる䞭囜のUSBハブが助けになりたす。 しかし、実践が瀺しおいるように、それらは䞻にブランドに関係なく同じチップAU6256で実行され、非垞に䞍快な機胜を備えおいたす-100 mA x 5V半分ワット これは、率盎に蚀っお、少し気になりたした-空のハブをUSBポヌトに接続するず、ルヌタヌ自䜓よりも倚くの電力を消費し始めたす。

すべおの最愛のテキサス・むンスツルメンツから同様の超小型回路がありたす-䟋えば、TUSB2046B、そのデヌタシヌトには40 mAの消費が蚘茉されおいたす-再び、私はそれをチェックするこ぀を埗るたで、私は䞭囜人よりもTIを信じる傟向がありたす。

ステップ3に進みたす。



䜎RAM


この件に぀いおは、2぀のニュヌスを衚明できたす。 良いこずは、RAMを互換性のある64メガバむトのマむクロ回路で簡単に眮き換えるこずができるこずです。これは、ほずんどの堎合、実隓の倧郚分に十分すぎるほどです。 このため、フラッシュは䞍芁で、ロヌダヌやカヌネルにパッチを圓おる必芁もありたせん。 これに぀いおは、 ここで詳しく説明したす。

悪いニュヌスはすべおそのような゜リュヌションです-䞊蚘のルヌタヌずASUSの兄匟WL-500など、および開発者Karambolaは最も叀いDDR1チップ䞊に構築されおおり、それらず互換性のある64メガバむトを芋぀けるこずは倧きな問題になりたした。 可胜性のある゜ヌスは䞊蚘のリンクで瀺されたす-それらは叀いRAMモゞュヌルです䞻に異なるラップトップから-しかし、ほずんどの堎合、グヌグルは販売のオファヌはありたせんが、このリストを䞀蚀䞀句リストする同じ電子゚ンゞニアのフリヌマヌケットでの祈りず少なくずも1぀のそのようなバヌの所有者は、驚くべきこずに呚囲の人々に応答するように求められたす。

ちなみに、これは、Texas Instrumentsの最新のチップ、たずえばSITARAで同様の゜リュヌションを本圓に芋たい理由の1぀です。これらは、Linuxが長幎移怍されおきたARMコアを備えた最新のアクセスしやすいプロセッサです。 これらには、乙女、SDK、およびその他のパンの兞型的なスキヌムを備えたapnoutが付属し、さらにDDR3で動䜜したす。 ただし、このようなボヌドの開発には倚くの時間ずかなりの投資が必芁ですLUTは圹に立ちたせん、倚局のものが必芁です。特に具䜓的なタスクがただないので、私はただこれを敢えおしたせん。 おそらく誰かがすでにこれを行っおいる/それを蚈画しおいる-協力するこずは可胜だろう-目暙は、過剰な鉄を巻き取るこずなく、開発者がそのような「ルヌタヌ」゜リュヌションを眮き換えるための起動プラットフォヌムずしお、Carambolaに䌌た最小限のシングルボヌドコンピュヌタヌを䜜るこずです。

しかし、ルヌタヌに戻りたしょう。 鉄のレビュヌが終了したら、構成ず再構築に盎接進みたす。



コアを再構築する



すぐに声を出したタスク。 コアを再構築しお䜕を達成したいのですか

  1. OpenWRTを䜿甚するず、カヌネルモゞュヌルを含め、リポゞトリから必芁なものをすべお簡単にロヌドできるため、システムを起動するために䞍芁なものをアセンブリに組み蟌む必芁はありたせん。
  2. パスやその他の誀解に関する䞍必芁な問題を回避するため、ルヌトFS党䜓を远加のディスクずしおマりントするのではなく、USBフラッシュドラむブに転送するこずにしたした。 これにより、ラむブラリを間違った堎所にむンストヌルするためにラむブラリが「芋぀からない」ずいう考えられるすべおの問題が解決され、ルヌタヌの䜿甚がより䟿利になりたす。 これは、カヌネルに組み蟌たれたモゞュヌルの芁件を意味したす-USB、ext4ファむルシステム、倖郚ドラむブのサポヌト
  3. ルヌタヌのマむナヌプリセット-フラッシュ埌に最初からやり盎す必芁がある堎合は煩わしいので、ファヌムりェアのFSレベルで既に修正できるため、毎回これを行う必芁はありたせん-たずえば、デフォルトではMR3020がフラッシュ埌にすぐに動䜜するため、サヌバヌのふりをしお、実際のルヌタヌを蹎るのではなく、IPを取埗しおネットワヌクの䞀郚になりたす。これにより、開発/デバッグプロセスが簡玠化され、「むンタヌネットがある」ず「接続がある」のどちらかを遞択する必芁がなくなりたす MR3020»で


再構築プロセス自䜓はここで詳しく説明されおいたすが 、啓発の前に読むこずをお勧めしたす。繰り返しになりたすが、「make menuconfigコマンドを入力しおカヌネルを蚭定する」こずはありたせん。

この段萜を読んだ時点で、前に蚘事で説明したすべおの項目実際にはmenuconfigを既に完了しおおり、すべおが機胜するこずを確認しおカヌネルをビルドしようずしたこずもありたす。 私は原則ずしお初めおそれをしたした。぀たり、問題を匕き起こすこずはありたせん-すべおの手順はかなり透明です。 私が泚意する唯䞀のこずは、奇劙なこずに、 dircleanヘルプを䜜成するこずです 。これにより 、構築したものだけでなく、システム自䜓が構築したもの、぀たり収集したツヌルチェヌンなどもクリヌンアップされたす。

これが圹に立たない堎合は、 make distcleanを䜜成する䟡倀がありたす。システムによっおダりンロヌドされたものを含め、䞀般的にすべおをクリヌンアップしたす。 その埌、ビルド党䜓が非垞に長い間、最初から実行されたすが、問題が発生しなくなる可胜性がありたす。 すべおが組み立おられるたで数時間埅ちたくない堎合は、特別な必芁なしにこれを行わないでください。

menuconfigに移動し、正しいタヌゲットずタヌゲットプロファむルAtheros AR7xxx / AR9xxx、TP-Link TL-MR3020を遞択し、保存しお、configにMR3020のデフォルト倀を入力するこずを忘れないでください。

menuconfigの䜜成が完了したら、 iptablesなどのビルドを含め、ほずんどすべおをビルドから削陀したした。1぀目はルヌタヌではないため、2぀目は埌で簡単に配信できるためです。 したがっお、メニュヌを調べお、䞍芁なものはすべお砎棄したす。

私は次のものを残したした

  1. ベヌスシステムでは、 ベヌスファむル、busybox、dnsmasq、dropbear、hotplug2がデフォルトで残っおいるずいう事実から、ディスクを接続するのに必芁なブロックマりントが組み蟌たれおいるこずを確認したす USB接続通知なしで攟眮したくない堎合は忘れないでくださいおよびボタンを抌す、 mtd、opkg、uci
  2. Kernel Modulesで、Filesystemsセクションに移動し、 そこでkmod-fs-ext4をアクティブにしたす。

    必芁に応じお、他のシステムを遞択できたすが、ext4は1぀で十分です。 私がむンストヌルしおいない他のすべおのカヌネルモゞュヌルは、デフォルトのLEDモゞュヌルからいく぀かの項目を陀いおもちろん、それらを削陀するず、ルヌタヌはLEDを点滅させず、ブヌトプロセスがどうなったかさえわかりたせん、 kmod-gpio-button-hotplug 、ルヌタヌのボタンが抌されたずきに通知を送信したす1぀のボタンず1぀の3䜍眮レバヌ、Linuxを2぀のボタンず芋なしたす、同じ堎所にあるデフォルトのkmod-wdt-ath79 、私たちにずっお非垞に重芁なkmod-usb -ochi、kmod-usb-storage-extras、kmod-usb-uchi、kmod-usb2 USBサポヌトからおよび組み蟌みのドラむバヌ Wi -Fi-ワむダレスドラむバヌのkmod-ath9k 。


それ以倖はすべお無効にされたか、埌続のむンストヌルのためにモゞュヌル圢匏でコンパむルされたした。

この段階では、OpenWRT wikiの指瀺に埓っおカヌネルをビルドしおからフラッシュしおも問題ありたせん。



cd /tmp wget ------.bin mtd write -.bin reboot
      
      







その埌、ルヌタヌが正垞に起動した堎合-MOTD今日のメッセヌゞ、ログむン埌の招埅に泚意しおください-ビルド番号が倉曎されるはずです-おめでずうございたす、カヌネルの組み立おずシステムの倉曎に成功したした。 ルヌタヌが起動を拒吊する堎合-問題ではありたせんが、幞いなこずにタッチしなかったスマヌトブヌトロヌダヌの助けを借りお状況を保存できたす-再びwikiの指瀺に埓いたすUSB-rs232アダプタヌが必芁です。

それでは、蚭定に移りたしょう。 FSがフラッシュにフラッシュされるむメヌゞに組み蟌たれ、OpenWRT゜ヌスのどこかにあるず想定するのは論理的です。 そうです、途䞭でFSを芋぀けるこずができたす

openwrt / trunk / build_dir / target-mips_r2_uClibc-0.9.33.2 / root-ar71xx

将来的には、コンピュヌタヌに衚瀺されるすべおの方法を蚘述したす。openwrtは、゜ヌスコヌドがチェックされたディレクトリです

このディレクトリはビルドごずに新たに生成されるため、ここでは、ビルドシステムを倧きく損なうこずを恐れずに、必芁なものを線集できたす。 したがっお、最初にカヌネルを構成し、アセンブルしおから、ここで修正を行い、カヌネルを再構築せずに必芁なモゞュヌルを個別に終了したす。 䜕かを台無しにした堎合は、もう䞀床makeを実行するずディレクトリが埩元されたす。 openwrt / trunkから圌女のむメヌゞをビルドするには、 make target / installコマンドを発行したす

ただし、より基本的な方法がありたす- / openwrt / trunk / package / base-files / filesディレクトリの内容を線集するには-いわゆる「スケルトン」があり、タヌゲットFSを生成したす。これはカヌネルの再構築時に消去されたせん。 しかし、䞊蚘の方法ずは異なり、FSの完党なむメヌゞをタヌゲットマシン䞊にある圢で芋぀けるこずは䞍可胜であり、䜕かを䞍可逆的に台無しにするのは簡単なので、あたり行きたせんでした。

䞀般に、この段階で、むメヌゞの構成を開始できたす。 そしお、最初に行うこずは、config / etc / config / fstabを線集しお、起動時にシステムがフラッシュドラむブをルヌトずしお認識するようにするこずです。

ちょっずした助けこれはoverlayfsを介しお行われたす。その本質は、ナヌザヌの透過モヌドでは、いく぀かのファむルシステムのコンテンツを掌握するこずです。 これは䜕のためですか たずえば、USBフラッシュドラむブを䜿甚したくない堎合でも、元々はOpenWRTで䜿甚されおいたした。SquashFSファむルシステムがあり、読み取り専甚の小さなスペヌスを占有したす。 ナヌザヌがファむルを線集できるようにするために同時に、線集されなかったものはすべお䟿利なSquashFSに残りたすこのオヌバヌレむが䜿甚されたす。 2぀のFSは1぀にマヌゞされおいるように芋え、䞀般的に、デヌタはSquashFSから取埗されたすが、ナヌザヌがファむルを線集するずすぐに、読み取りず曞き蟌みが可胜なセクションにコピヌが䜜成されたすデフォルトではJFFSがありたす。 これらのオヌバヌレむを実装するシステムは、実際にはオヌバヌレむJFFSで同じ名前のアクセス可胜なファむルを芋぀けるず、それを既にナヌザヌにポップし、他のすべおのファむルはSquashFSから以前のたたにしたす。

したがっお、ルヌタヌで䜕を倉曎しおも、オヌバヌレむを無効にする䟡倀があり、読み取り専甚FSを元の圢匏で取埗したす。これは、ルヌタヌの埩旧モヌドに䜿甚されたす䞀床詊したこずがありたすが、 。

ちなみに、同じ理由で、ファヌムりェアに存圚するパッケヌゞのいずれかを砎壊しようずするず、空き領域が枛少したす-パッケヌゞは元の堎所に残るため、構成ファむルのオヌバヌレむコピヌなど、削陀の圱響を受けるものが䜜成されたす。

同じトリックを䜿甚したすが、フラッシュドラむブからのファむルシステムに察しお-フラッシュにはファむルシステムの完党なコピヌがあり、すべおの蚭定が完了したらすぐに準備したす。 ロヌドするず、組み蟌みのファむルシステムの䞊郚にオヌバヌレむが配眮され、すべおの倉曎はUSBフラッシュドラむブでのみ行われたす。 同時に、ダりンロヌドする前にUSBフラッシュドラむブが取り倖された堎合、ルヌタヌは穏やかに起動しクリヌンなfs、珟圚むメヌゞで線集䞭のfs、指定されたオヌバヌレむをマりントできなかったこずを報告するこずを忘れたせん。

そのため、フラッシュドラむブをext4でフォヌマットし、そこに2぀のパヌティションを䜜成したす。1぀はスワップ甚1぀目、2぀目はルヌトFS甚に䜜成したした。 必芁に応じお、/ homeたたは䜕か別のパヌティションを䜜成できたすが、これで十分でした。 / etc / config / fstab  openwrt / trunk / build_dir / target-mips_r2_uClibc-0.9.33.2 / root-ar71xx / etc / config / fstabぞのフルパス に次のように蚘述したす。



 config mount option target / option device /dev/sda2 option fstype ext4 option options rw,sync option enabled 1 option is_rootfs 1 config swap option device /dev/sda1 option enabled 1
      
      





これにより、オヌバヌレむルヌトシステムを/ dev / sda2にマりントする必芁があるこずを通知したすis_rootfsオプションは、これが単なるマりント、぀たりextrootではないこずを意味したすおよび/ dev / sda1にスワップしたす

基本的なこずはすべお完了です。 次に、すべおを自由に蚭定したす。 個人的には、すべおのボヌドに察しおすぐに生成されるため、構成をクリヌンアップしたした。そのため、いずれの構成でも、巚倧なifa皮のような玠晎らしさが芋られたす。



 case $(ar71xx_board_name) in wzr-hp-ag300h) ar922x_disable_gpio_jtag $phyname ;;
      
      







取締圹䌚、぀たりMR3020に関連しないifからすべおのケヌスを容赊なく削陀できたす。 さらに、ieee1394やJTAGのホットプラグルヌルなど、物理的には存圚しない䞀郚の構成ファむルは、このボヌドにはたったく意味をなさず、他のプラットフォヌムずの互換性のために同じ方法で生成されたした。

たた、 / etc / configディレクトリ内のいく぀かのファむルはUCIシステムによっお自動的に生成されるこずを忘れないでください。 これはすべお/ lib内のスクリプトによっお実装されたす-すぐにそれらに気付くでしょう。 これらには、たずえば、初期構成を実行し、他のスクリプトをプルするar71xx.shおよびfunctions.shが含たれたす特に、ボヌドを怜出し、その倉数ar71xx_board_nameを入力するだけです。 したがっお、たずえば、最埌の/lib/wifi/mac80211.shファむルには、無線の/ etc / configファむルに远加される行が含たれおいたす。



 cat <<EOF config wifi-device radio$devidx option type mac80211 option channel ${channel} option macaddr $(cat /sys/class/ieee80211/${dev}/macaddress) option hwmode 11${mode_11n}${mode_band} $ht_capab # REMOVE THIS LINE TO ENABLE WIFI: option disabled 1 config wifi-iface option device radio$devidx option network lan option mode ap option ssid OpenWrt option encryption none EOF devidx=$(($devidx + 1)) done }
      
      







ここで、むンタヌフェむス名、デフォルトのポむント名、暗号化などを修正できたす。その埌、最初の起動時に、線集に埓っお/ etc / config / wirelessの内容が生成されたす。

すべおの蚭定が完了したら、フラッシュドラむブにこのファむルシステムの完党なコピヌを䜜成し、そこからブヌトする必芁がありたす。 同時に、このようなフェむントを䜜成するこずを匷くお勧めしたす。MOTDは/ etc / bannerにあり、SSH / Telnet経由でシステムにログむンするずきに衚瀺されたす。 これは任意の方法で倉曎できたすこの厄介なカクテルレシピを削陀し、OpenWRTロゎのみを残したしたが、それを行う1぀のこずは間違いなく䟡倀がありたす。FSをUSBフラッシュドラむブにコピヌした埌、ファむルずは異なるファむルを远加したすopenwrtで/ trunk / build_dir / target-mips_r2_uClibc-0.9.33.2 / root-ar71xx / etc / config

たずえば、この行で、 ATTITUDE ADJUSTMENTBleeding Edge、r33444の行をATTITUDE ADJUSTMENTBleeding Edge、r33444、USB Overlayに倉曎したす



この小さなトリックのおかげで、ログむン盎埌にオヌバヌレむが機胜したかどうかを知るこずができたすたずえば、フラッシュドラむブたたはハブ党䜓が突然「萜ちた」堎合



その埌、安心しお゜ヌスのルヌトopenwrt / trunkに戻り、 make target / installず蚀いたす -これにより、 / openwrt / trunk / bin / ar71xxフォルダヌに衚瀺され、 openwrt-ar71xx-genericずいう最終むメヌゞの生成プロセスが開始されたす -tl-mr3020-v1-squashfs-sysupgrade.bin

既知の方法でフラッシュし、ロヌドした埌USBフラッシュドラむブをルヌタヌに挿入するこずを忘れないでください、Telnet経由でログむンするず、埅望のグリヌティングが衚瀺されたす。

姿勢調敎ブリヌディング゚ッゞ、r33444、USBオヌバヌレむ

さらに、 dfコマンドを入力しお確認できたす。 passwdコマンドでパスワヌドを蚭定するこずを忘れないでください。その埌、telnetではなくSSHで䜜業する機䌚が埗られたす。 ちなみに、セキュリティ䞊の理由だけでなく、䞀郚のナヌティリティ以䞋で説明したすが空のパスワヌドを䜿甚するこずをお勧めしたせん。これは、パスワヌドを蚘憶するオプションがある堎合でも、空のパスワヌドは芚えおおく䟡倀がないず考えお、迷惑をかけ続けたす。



開発者ツヌルキット



蚘事の最埌の郚分では、なぜこれがすべお実際に考えられおいるのか、奇跡のデバむスの開発に぀いお説明したす。 Windowsのツヌルを怜蚎しおください。 ubuntuの䞋から、カヌネルずモゞュヌルのみをコンパむルしたす。 もちろん、C / C ++で蚘述し、カヌネルをクロスコンパむルするずきにコヌドをクロスコンパむルする機䌚はただありたすが、これは退屈で最良のオプションではありたせん-開発速床ずコヌドサポヌトは、Java、C、PythonやRubyなどのさたざたなスクリプトタむプの方がはるかに高いです。 OpenWRT甚のJavaマシンがありたすが、 igor_suhorukovのテストによるず、ほずんどクロヌルしたせん。 確かに 、 igor_suhorukovはOpenWRTで軜量のphoneMEマシンを組み立おたしたが、私の手はそれをテストするために圌女に届きたせんでした。 そのため、利甚可胜なものから先に進み、Python、Ruby、Lua、Perlなどのスクリプト蚀語がすべお利甚可胜になりたす。

率盎に蚀っお、私は䞀般に動的に型付けされた蚀語ずスクリプトのファンではありたせんが、私は䞊蚘のセットからpythonを遞択するこずにしたした-私は暗黒の勢力に助けを求めおいるので、それらを党䞖界を捕らえた最も有名で暗黒の勢力にしおください。

SSH経由でルヌタヌにアクセスし、必芁なパッケヌゞをむンストヌルしたす。



 opkg update opkg install vsftpd python
      
      





これにより、SFTPサヌバヌず、実際にはPythonむンタヌプリタヌがむンストヌルされたす。

次に、 WinSCP開発マシンに無料のナヌティリティをむンストヌルしたす。これにより、ルヌタヌのファむルシステムを簡単に登っおファむルを亀換できるようになりたす。 WinSCPで新しい構成を䜜成したしょう。ホスト名フィヌルドで、ルヌタヌのIPアドレスたたはネットワヌク名を蚭定し、デフォルトでポヌトを残し、ナヌザヌ名ずパスワヌドを入力し、プロトコルSFTPを遞択したす。



[ログむン]をクリックしお、ルヌタヌのFSぞのフルアクセスを取埗したす。これにより、必芁な堎合に構成などを線集するプロセスが高速化されたす。

次に、有名なJetBrains瀟のPyCharmから玠晎らしいIDEをダりンロヌドしおむンストヌルしたす。 バヌゞョンが2.6以䞊であるこずを確認したす-過去には、リモヌトデバッグが機胜しなかったためにバグがありたす。

[ファむル]-[蚭定]-[展開]に移動し、リストの䞊にあるプラス蚘号をクリックしお、新しいサヌバヌ展開を远加したす。 衚瀺されるりィンドりで、たずえばMR3020などの名前を入力し、SFTPプロトコルを遞択したす。

次に、展開サヌバヌを構成したす。[接続]タブで、[SFTPホスト]フィヌルドにルヌタヌのアドレスを指定し、デフォルトで[ポヌト]および[ルヌトパス]フィヌルドを残したす。

適切なフィヌルドにナヌザヌ名ずパスワヌドを入力し、「パスワヌドを保存する」チェックマヌクを入れお、すべおの展開を求められないようにしたす。 その埌、「SFTP接続のテスト」をクリックしお、すべおがうたくいったこずを確認したす。



WinSCPたたはSSHを䜿甚しおルヌタヌに移動し、たずえば/ rootのpyHelpersディレクトリなどの䟿利な堎所に䜜成したす。ここでは、IDE補助スクリプトがコピヌされたす。

[ファむル]-[蚭定]-[プロゞェクトむンタヌプリタヌ]- [ Pythonむンタヌプリタヌ ]に移動し、右偎のプラス蚘号をクリックしお、ドロップダりンメニュヌで[リモヌト...]を遞択したす。 衚瀺されるりィンドりで、「展開蚭定から入力」リンクをクリックし、MR3020ずいう名前の構成枈みの展開サヌバヌを遞択したす。 「Pythonむンタヌプリタヌパス」フィヌルドず「PyCharmヘルパヌのコピヌ先」フィヌルドで、ルヌタヌ䞊のpythonバむナリヌぞのパスデフォルトは正しい、 / usr / bin / python を指定し、䜜成したヘルパヌのディレクトリヌぞのパスは/ root / PyHelpersです



「OK」をクリックした埌、怅子に寄りかかり、IDEがルヌタヌ䞊のむンタヌプリタヌず通信し、ヘルパヌを䜿甚しお機胜ずラむブラリのリストを䜜成するたで埅ちたす。

最も興味深い郚分は、ルヌタヌの開発を開始するずきに、蚭定枈みのリモヌトPythonをむンタヌプリタヌずしお遞択しお新しいプロゞェクトを䜜成するこずです。 次に、 [マッピング]タブの[ ファむル]-[蚭定]-[展開]に移動し、サヌバヌの[MR3020]フィヌルドの展開パスで、ルヌタヌのプロゞェクトぞのパスを遞択したす。 「これをデフォルトサヌバヌずしお䜿甚する」をクリックするこずを忘れないでください。

[ ツヌル]-[展開 ] -[オプション ]メニュヌの[倉曎されたファむルをデフォルトサヌバヌに自動的にアップロヌドする]フィヌルドで䟿利な展開モヌドを蚭定したす-私にずっおは[明瀺的な保存アクション]です-CTRL + Sを抌すず、倉曎されたファむルが自動的にルヌタヌに賞賛されたす

これで、最初のファむルをプロゞェクトに远加し、埅望の印刷「Hello World」行をそこに曞き蟌むこずができたす。 ファむルを保存し、以䞋のコン゜ヌルのIDEがサヌバヌぞのファむルのアップロヌドの成功を報告する方法を確認したす。 次に、プロゞェクトツリヌでファむル名を右クリックしお[実行]を遞択したす。これにより、起動甚の構成が自動的に䜜成されたす。 問題が発生しおプログラムが起動しない堎合は、 実行-構成の線集に進み、ルヌタヌのスクリプトぞのパスがスクリプトフィヌルドに曞き蟌たれおいるこずを確認したす。 プログラムの結果は、画面䞋郚のコン゜ヌルに衚瀺されたす。



おわりに



実際、それがすべおです。 開発マシンでpythonを蚘述し、タヌゲットプラットフォヌムルヌタヌにスクリプトを自動的にダりンロヌドしおそこで実行し、IDEコン゜ヌルに結果を衚瀺できる最新の匷力なIDEができたした。 たた、デバッグずトレヌスを蚱可したす。 「曞き蟌み、コンパむル、ルヌタヌぞの転送、ルヌタヌぞの移動、起動、芋た、動䜜しなかった、開発マシンぞの戻り」ずいうステップのプロセスから陀倖されるため、開発速床が䜕床も向䞊し、Pythonスクリプトの移怍性により、ほずんどのタスクが既に実行されおいたす䜕らかの圢で誰かによっお解決され、ラむブラリの圢にフレヌム化されたした-それをグヌグルで怜玢しおください。

そのため、たずえば、䜜業䞭のプロゞェクトを開発するずき、PyNMEAラむブラリのためにGPSはルヌタヌに簡単にネゞ止めされおいたした。

MR3020は、特に同じSTM32でリアルタむム凊理ずその機胜を組み合わせた堎合、ロボットやホヌムオヌトメヌションシステムにずっお優れた「頭脳」ずなりたす。この堎合、小さなM3皮質は䜎レベルシステムのハヌドりェアコントロヌラヌずしお機胜し、USB経由で情報を送信し、受信したすルヌタからのコマンド。アルゎリズムの重い郚分は䟿利なpythonで蚘述されたす。 たずえば、ロボットの堎合、STM32コントロヌラヌはサヌボコントロヌラヌずしお完党に機胜し、PWM信号を生成したす。たた、さたざたなセンサヌから情報を収集し、パケットで収集しおルヌタヌに送信したすが、Pythonスクリプトは既により高いレベルの「動䜜」を実装したす。

成功した開発



All Articles