ARM上のLinuxとMele A1000 / A2000上のArchLinuxへの短い余談

みなさんこんにちは。
YouTubeでビデオを見て、Mele A1000やMK802のようなシングルボードコンピューターでubuntuを実行する方法を、パフォーマンスで何かをすると同時に、このデバイスでArchLinuxを実行する必要があると決めました。 何らかの理由で、誰もまだこれをしていません。

パフォーマンスの問題


ARMおよびMIPSのすべてのデバイスの動作がデスクトップシステムほど遅いのはなぜですか? 理由はたくさんあります。
  1. すべてのデバイスは異なります。 一部のコマンドは1セットのコマンドをサポートし、他の一部はサポートします。 FPUを持っている人もいれば持っていない人もいます。 一部のARMv5、他のARMv6、他のARMv7
  2. コンパイラーの非最適化。
  3. 製造業者の低迷/不作為。
  4. サポートの複雑さとディストリビューターのメンテナーの低迷。


x86の場合、最初のものは実質的に重要ではありません。 誰もがFPUを持ち、特定のプロセッサの最適化によりパフォーマンスが5〜10%を超えることはありません。ARMデバイスは大幅に向上します。Meleの場合、浮動小数点を含む複雑なタスクでは30%〜150%ビデオデコード)。
実際のデバイスのメインラインコアには実際の本格的なサポートはありませんが、テストボードはないため、メーカーのカーネルを使用せざるを得ません。これは3番目のブランチがある場合に適しています。 さらに、カーネルへの変更は多くの場合、背面から行われます。そのため、構成メニューのオプションと、マニアツールを使用してこれらの変更をより新しいカーネルに移植することは不可能です(もちろん、これは万人向けではありません)。
ディストリビューションメンテナーは、追加のリポジトリ用に強度、計算能力、およびディスクスペースを無駄にしたくありません。非常に長い間、FPUエミュレーションまたはsoftfp(FPUを使用できますが、エミュレーションと互換性があります)、およびARMv5の最適化ですべてをコンパイルしましたが、 1年ほど前、Cortex-A8が大衆化したとき、メンテナはそれについて考え、ハードウェア浮動小数点ですべてをコンパイルしようとすることにしました。 そのため、ubuntu 12.04はarmhfリポジトリが登場した最初のマスディストリビューションでした。 これは大きな進歩です。これにより、softfpと比較してCortex-A8が20%-40%増加します。すべてのアプリケーションは現在ARMv7で構築されていますが、これでは不十分です。
現在、ハードウェア浮動小数点を備えたリポジトリを備えた3つのディストリビューション、ArchLinux-ARM、Ubuntu、Fedoraがあります。 なぜなら 私はArchLinuxが大好きで、その選択は私には明らかです。

装置

「メンテナがNEONなしでパッケージを収集するのはなぜですか?」
NEON命令セットなしのARMv7 (CuBoxデバイスのMarvell Armadaなど)
Cortex-A8 (ARMv7 + NEON、Allwinner A10を搭載した中国語デバイス:Mele、MK802、MiniX)
NEONなしのCortex-A9 (東芝AC100のnVidia Tegra 2)
NEONを使用したCortex-A9
Cortex-A9のVFPはすでにNEONとほぼ同じ速度であり、NEON最適化はパフォーマンスよりも省エネの問題であることに注意してください。

何がされた


CFLAGS:
march=armv7-a -mfloat-abi=hard -mfpu=neon -ftree-vectorize -mvectorize-with-neon-quad -mcpu=cortex-a8 -mtune=cortex-a8 -mthumb -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2

ハードウェアビデオアクセラレーションが機能しません。
glesが機能するかどうかは明確ではありません。 glxinfoによると、ダイレクトレンダリング:はい、glxgearsは回転していますが、実際にはそうではありません。 サーバーとして使用できます。

これらすべてをUSBフラッシュドライブに書き込む方法は、リンクで読むことができます。
www.cnx-software.com/2012/07/20/nightly-builds-for-allwinner-a10-u-boot-linux-kernel-and-hardware-packs

インターフェースを開始するには、ssh root / rootに移動してstartxと入力します

助けたいという願望と機会があれば、ArchLinuxが好きで、Allwinnerの中国語デバイスでそれを見たいと思ったら、私に連絡してください。

そしてもう少し情報:Allwinnerは、XBMC for AndroidのビデオアクセラレーションでXBMCと協力しています。 本物のSTBがありますが、今では何もありません。

ダウンロード: rghost.ru/39743296

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


All Articles