組み込みLinuxシステムの開発に不慣れな学生にとって、開発環境のセットアップは大きな課題です。開発環境を構築するための参入の端に多くの新参者を見てきましたが、彼らは数日間懸命に努力して無駄になりました。それで、私はこの記事を書きました。
まず第一に、ここでの目的がLinux開発環境を構築することであることを明確にする必要があります。
実際、X86ラップトップまたはデスクトップコンピューターがあれば、Windowsシステムをインストールするのと同じように、Ubuntuやその他のLinuxオペレーティングシステムを直接インストールできます。ただし、多くの学生は、ラップトップまたはデスクトップコンピューターを1台しか持っていません。オペレーティングシステムはLinuxに置き換えられています。初心者にとっては、後の使用プロセスでの課題は依然として非常に大きく、Linuxシステムの操作スタイルはWindowsシステムとはまだ大きく異なります。
デュアルシステムをインストールできると言う人もいるかもしれません。1台のコンピューターに2つのオペレーティングシステム(Windows + Ubuntu)をインストールし、起動時にWindowsとUbuntuのどちらを使用するかを選択します。これは可能ですが、それでも以前の問題に直面します。Ubuntuに入るときは、純粋なLinux環境で作業する必要があります。Windowsに慣れている場合は、慣れていない可能性があります。
幸い、仮想化テクノロジーがあります。これにより、Vmwareなどの仮想マシン管理ソフトウェアを介して、Ubuntuなどの別のオペレーティングシステムをWindowsコンピューターに直接インストールできます。このようにして、1台のコンピューターにWindowsとLinuxの両方のオペレーティングシステムがあります。Linuxでコードをコンパイルしながら、オフィスやドキュメントの作成にWindowsを使用できます。
もちろん、2台のコンピューターがある場合は、1つはWindowsを使用し、もう1つはUbuntuを使用する方がはるかに簡単で、最高のパフォーマンスが得られます。コンピューターが1台しかない場合は、仮想マシンを使用することをお勧めします。実際、パフォーマンスの低下についてはあまり心配しないでください。私のラップトップはThinkpad E480(I7 8550U + 16G RAM)です。仮想マシンの電源がオンになっていない場合、CPUはほとんどの時間使用せず、仮想マシンの電源をオンにしてもスタックを感じることはありません。
ここでは、Windows-Vmwareで最も一般的に使用されている仮想マシン管理ソフトウェアを選択します。最新バージョンはVMware Workstation Pro 15.5.0で、ここからダウンロードできます。
実際、多くのLinuxオペレーティングシステム(ディストリビューション)があり、多くの学生が1つか2つを伝えることができるかもしれません:Ubuntu、Debian、Fedora、Red Hat、CentOS。組み込みLinux開発に関しては、Ubuntuを最初に選択する必要があります。
調べてみると、最も人気のあるAndroidオペレーティングシステムであるGoogleが推奨する開発環境はUbuntuであることがわかります。また、Google内では、エンジニアが使用する開発環境は、Ubuntu、NXP、Rockchipなどの元のチップメーカーの開発ガイダンスでもあります。このドキュメントでは、推奨される開発環境もUbuntuです。さらに、現在のホットAIとさまざまなフレームワークも、Ubuntuシステムのインストールパッケージを優先します。Fedoraなどのディストリビューションを使用する場合、既製のインストールパッケージが見つからない場合があります。次に、これらのフレームワークをソースコードからコンパイルする必要があります。そうすると、さまざまな頭痛の種のライブラリの依存関係が発生します。以前はFedoraシステムで実行されていたAIで開発ボードをプレイしていましたが、当時はAIフレームワークのCaffeをインストールしたかったのですが、既製のインストールパッケージはありません。ソースコードからしかコンパイルできません。コンパイルプロセス全体が大変です。このボード用にUbuntuシステムを移植しました。
したがって、組み込みLinux開発環境を構築するには、Ubuntuを選択する必要があります。
Ubuntuダウンロードページ:Ubuntu Downloadsを開くと、ダウンロードできるバージョンが多数あることがわかります。
19.04、18.04 LTS、16.04 LTSだけでなく、デスクトップ、サーバー、64ビット、32ビットもあることがわかります。これらのバージョンの違いは何ですか?どのバージョンを選択する必要がありますか?
ここでは、Ubuntuのリリースルールを説明する必要があります。Ubuntuはローリング開発戦略を採用しており、通常、年に2つのメジャーバージョンをリリースします。1つは4月、もう1つは10月です。たとえば、2019年4月にリリースされたものはUbuntu19.04と呼ばれます。 2019年10月のリリースはUbuntu19.10などと呼ばれます。同時に、2年ごとにUbuntu 18.04LTSやUbuntu16.04LTSなどのLTSバージョンが4月にリリースされます。いわゆるLTSはLongTime Support、つまり長期サポートバージョンです。Ubuntuの担当者は多数のLTSバージョンを提供します。 2015年のパッチのアップグレードとサポート、およびUbuntuの公式Webサイトでは、Ubuntu 18.04は2023年4月まで長期無料のセキュリティ更新のメンテナンスサポートを提供すると述べていますが、通常のバージョンではこの処理は行われません。したがって、開発環境の場合は、LTSバージョンを選択することをお勧めします。昨年からUbuntu16.04からUbuntu18.04に切り替えました。経験は良好です。
デスクトップバージョンとサーバーバージョンの違いは何ですか?簡単に言うと、デスクトップ版はグラフィカルなインターフェースを備えたバージョンです。マウスでクリックしてWindowsシステムのように操作できます。サーバーバージョンにはグラフィカルなインターフェースがありません。基本的にはコマンドラインで操作します。初心者の方はデスクトップ版をお勧めします。 Ubuntuデスクトップはどんどん良くなっています。
64- ビット、32ビット:すべての現在のコンピューターは、特に古くはないにしても64ビットである必要があるため、パフォーマンスを向上させるために64ビットシステムを選択してください。将来Androidシステムの開発を行う場合、GoogleはAndroidを64ビットUbuntuでコンパイルする必要があることを義務付けていることに気付くでしょう。
したがって、ここで理解する必要があります。Ubuntu18.04LTSを選択します。ここをクリックしてダウンロードできます。
また、信頼できる組織が開発したこの種のソフトウェアについては、公式サイトからのダウンロードに慣れ、他のサードパーティリンクからのダウンロードは避けてください。このサードパーティリンクの信頼性は保証できません。
ダウンロードしたVMware-workstation-full-15.5.0-14665864.exeファイルを直接ダブルクリックすると、次のプロンプトが表示される場合があります。
システムを再起動するには、「はい」を直接選択してシステムを再起動します。再起動後、しばらく待ってからexeインストールファイルをクリックしてください。再起動が成功するまでに数回かかる場合があります。
次のステップは、インストールが完了するまで次のステップを選択することです。
WindowsのスタートメニューをクリックしてVmwareを起動します。
次に、ライセンスの入力を求められる場合があります。インターネットでこれを検索すると、見つけることができるはずです。
これも皆さんの体験です。一般的に、初めてソフトウェアをインストールする場合は、ソフトウェアにあまり慣れていません。一般的な構成を選択してみてください。エラーを回避し、不要なピットに足を踏み入れる方が簡単です。このソフトウェアに慣れたら、自分の好みに応じてカスタム設定を選択できます。
この手順が正しく設定されている場合は、プロンプトメッセージ** Ubuntu64ビット18.04が検出されました**が表示されます。
ここでは、自分の好みに応じて設定できますが、設定後に明確に覚えておく必要があります。後でUbuntuシステムにログインするために使用します。
これは、インストール後のUbuntuシステムの保存場所を指します。仮想マシンのパフォーマンスを向上させるのに役立つ、ディスクパフォーマンスの高い場所を選択することをお勧めします。
安全のため、通常はシステムディスクとデータディスクを分離する、つまり、Ubuntuシステムをハードディスクにインストールしてから、ダウンロードしたプログラムコードなどのデータを格納するために別のハードディスクをUbuntuシステムに追加するのが最善です。これの利点は、Ubuntuシステムを完全にクラッシュさせた場合に、Ubuntuシステムを再インストールするだけです。プログラムとデータは別の独立したディスクにあり、システムを再インストールしても失われません。
これは、システムをWindowsのCドライブにインストールしてから、他のデータをDドライブとEドライブに配置するのと同じです。
したがって、ここでは、Ubuntuシステムをインストールするために比較的小さなディスクをセットアップできます。30Gで十分です。次に、大きなディスクをそれに追加します。
メモリ容量を設定する
これは、実際の物理マシンメモリの一部をUbuntuシステムに分割するのと同じ、物理マシンメモリのサイズに応じて設定する必要があります。設定が大きすぎると、Windowsシステムの残りのメモリが少なくなり、Windowsのパフォーマンスが低下します。設定が小さすぎると、Ubuntuのパフォーマンスは向上しません。仮想マシンがオンになっていないときのWindowsシステムのメモリ使用量に注意を払い、それを設定することができます。私のラップトップには16Gのメモリがあります。通常、Windowsシステムのメモリ使用量は約8Gであることがわかったので、ここでは残りの8Gを仮想マシンに割り当てます。
仮想マシンのCPUの数を設定します
私のノートブックCPUはI78550 U、4コア、8スレッドなので、ここで同じパラメーターを設定します。
設定後、閉じるを選択します。
完了をクリックすると、Ubuntuシステムが自動的にインストールを開始します。
次のエラーを見つけた場合:
これは次のように解決できます。
bcdedit /set hypervisorlaunchtype off
Ubuntuがインストールを開始
このプロセスには時間がかかる場合がありますので、しばらくお待ちください。
最終的なインストールが成功すると、自動的にログインインターフェイスに入ります。
をクリックしてパスワードを入力すると(アカウントとパスワードは以前に設定されているので、覚えておく必要があります)、Ubuntuデスクトップに入ります。
最後の完了まで次を選択します。
システム時間が間違っていることに気付くかもしれません。慌てる必要はありません。Ubuntuデスクトップの右上隅をクリックすると、設定オプションがポップアップ表示されます。
次に、レンチのようなアイコンをクリックします。
ポップアップ設定インターフェイスで、** Detials ** — "** Date&TIme ** —" ** Time Zone **を順番に選択します
ポップアップインターフェイスで** Shanghai **を検索します。インターフェイスを閉じた後、時刻は正しいです。
ソフトウェアソースは、Ubuntuシステムの詳細やソフトウェアのダウンロード時に、対応するサーバーアドレスを指定することです。デフォルト設定は米国からのダウンロードです。速度は比較的遅いです。国内ソースに設定されている場合は、システムを更新するか、後でソフトウェアをインストールする方がはるかに高速です。
Ubuntuデスクトップの右下隅をクリックし、** Software&Updates **アイコンを選択します。
** Dowload from オプションで other **を選択します
次に、ポップアップオプションで中国を見つけ、対応するサーバーを選択します。ここで、中国科学技術大学のソースであるustcを選択し、[サーバーの選択]をクリックします。
前のインターフェースに戻ったら、閉じるをクリックし、ポップアップダイアログボックスで再読み込みを選択します。
操作全体で、パスワードを要求するポップアップダイアログボックスが表示された場合は、アカウントのパスワードを直接入力するだけです。これは、一部の操作でroot権限が必要なためです。
ここでもう少し知識を追加しましょう。Ubuntuやその他のLinuxオペレーティングシステムは、厳密な権限管理を備えたシステムです。ユーザーを通常のユーザーとrootユーザーに分割します。たとえば、仮想マシンのインストール時に設定したユーザー名に対応するユーザーは通常のユーザーです。ユーザーと通常のユーザーの権限は制限されています。たとえば、一部のデバイスにアクセスできず、一部のディレクトリを削除できません。rootユーザーは、Windowsシステムの管理者と同じです。彼は最大の権限を持ち、システム内で任意の操作を実行したり、ファイルやディレクトリを削除したりできます。任意のプログラムをインストールします。また、Linuxシステムは操作に多数のコマンドを必要とするシステムであるため、rootユーザーにとって、コマンドが誤って使用されると、システム内の重要なファイルやシステム自体が削除される可能性があり、非常に危険です。そのため、経験豊富な開発者は、通常、デフォルトではrootユーザーとしてではなく、通常のユーザーとしてログインします。操作を実行して権限が不十分な場合、システムは自動的に権限が不十分であることを通知します。対応するコマンドの前に** sudo **を追加して再実行し、パスワードを入力します。
図に示すように、 apt installopenssh-server
コマンドを直接実行して** openssh-server ソフトウェアをインストールすると、システムがエラーを報告し、 Permission denied を要求します。これは、このコマンドを実行する権限がないことを意味します。ソフトウェアのインストール時に操作を実行するにはroot権限が必要なため、このコマンド sudo apt installopenssh-server
を sudo **の形式で実行する必要があります。そうすると、システムはパスワードの入力を求めます。対応するパスワードを入力すると、インストールは正常に完了しました。
この操作により、このコマンドは実行時にroot権限を持つことができます。コマンドの実行後も、誤った操作による悲惨な結果の可能性を最小限に抑えるために、通常のユーザーとして他の操作を実行し続けます。
さらに、正式な企業で開発する場合、すべての開発はサーバー上で実行されます。現時点では、管理者のみがルートアカウントのパスワードを持っています。他の開発者はルートパスワードを知りません。すべての人が通常のユーザーとして動作します。ソフトウェアのインストールなどの操作が発生した場合、それらはすべて管理者を通じて行われます。そのため、誰もが最初からできるだけ普通のユーザーとして操作する習慣を身につける必要があります。 Linuxの話が始まってからライブラリを削除するまでの話の発生を避けてください。
sshはSecureShellの略で、リモートログインプロトコルです。これを使用すると、ローカルエリアネットワーク内のあるマシンから別のマシンにログインし、コマンドを使用してこのマシンでさまざまな操作を実行できます。Linux関連する開発のほとんどはこの方法で実行されます。 sshを有効にする前に、Ubuntuにopenssh-serverをインストールする必要があります。インストールコマンドは次のとおりです。
sudo apt install openssh-server
上図の矢印に注意してください。コマンドの実行後、パスワードの入力を求められる場合があり、** Yを入力する必要がある**続行しますか?[Y / n] **プロンプトが表示されます。 **インストールを続行します。
ほとんどのソフトウェアのインストールは、このプロセスに従います。
ifconfigコマンドを実行して、Ubuntu仮想マシンのIPアドレスを表示します。
図からわかるように、ifconfigコマンドを初めて実行すると、コマンドが見つからないというプロンプトが表示され、インストール方法が求められます。プロンプトに従ってインストールしてください。これは、Ubuntuシステムを使用しているときに他のアンインストールされたコマンドに遭遇した場合の同様の処理方法でもあります。
インストールが完了したら、ifconfigコマンドを再度実行すると、UbuntuシステムのIPアドレスが 192.168.153.128
であることがわかります。これは、ネイティブWindowsシステムのIPアドレスとは異なります。
次に、SecureCRTソフトウェアをWindowsシステムにインストールします。このソフトウェアを使用して、sshを介してUbuntuシステムにログインできます。
SecureCRTソフトウェアをインターネットからダウンロードしてインストールできます。インストールが完了してから開始します。
** + **をクリックし、ssh2を選択して、次のステップに進みます。
ホスト名はUbuntuシステムのIPアドレスを入力し、ユーザー名はUbuntuシステムのユーザー名を入力します。次のステップでは、セッション名を自由に選択できます。ここでモナークという名前を選択して完了します。
左側の対応するセッションをダブルクリックして、ssh接続を開始します。
初めて接続すると、上記のプロンプトが表示されます。[同意して保存]を選択するだけです。次に、Ubuntuログインパスワードを入力して、正常にログインします。
ここにインストールされているUbuntuのデフォルトのIPアドレスは動的に割り当てられるため、変更される可能性があります。ある日、sshがこのアドレスを介して接続できない場合は、Ubuntuインターフェイスからアクセスして ifconfig
IPアドレスを確認するコマンド。
デスクトップバージョンがインストールされており、仮想マシンを介してマウスを介してインターフェイス操作を適切に実行できるため、なぜsshを介してリモートでログインする必要があるのでしょうか。 sshは完全なコマンドラインインターフェイスであり、使用するのは非常に困難です。
これには、Linuxの使用に関する哲学的な問題が含まれます。Linux/ Unixなどのオペレーティングシステムは、もともとコマンドラインに基づいたオペレーティングインターフェイスを提供するように設計されていました。現在でも、Androidシステムが登場するまで、Linuxオペレーティングシステムにはほとんどのアプリケーションがあります。ドメインは、さまざまなサーバー、ログオンするさまざまなWebサイト、ホームルーター、さらには携帯電話に信号を送信するさまざまな基地局です。これらはLinuxシステムで実行され、基本的にグラフィカルデスクトップを表していません。サーバーを例にとると、グラフィカルインターフェイスはありません。一部の小さなサーバーにデスクトップバージョンのLinuxシステムがインストールされている場合でも、このデスクトップは通常、管理者がシステムを保守するときにのみ使用します。通常の開発ユーザーsshからログインし、コマンドラインを使用して作業を完了します。
Linuxコマンドライン操作はグラフィカルインターフェイス操作ほど効率的ではないと考える人もいるかもしれません。実際、これはLinuxシステムと接触し始めたばかりのほとんどの人の幻想です。開発、特にLinuxなどの大規模プロジェクトを含むコードの開発カーネル、U-Boot、Android、この種のプロジェクトには数十万のコードファイルが存在する可能性があります。グラフィカルインターフェイスを使用して特定のファイルを検索し、特定の関数の参照を検索すると、非常に遅くなります。 Linuxコマンドライン検索は非常に効率的です。いくつかの単純なキーワード、またはファイルタイプさえ知っている限り、完全なファイル名を覚えておく必要はありません。Linuxコマンドラインの強力なファジーマッチング機能を使用して、これらのファイルを見つけることができます。関数や特定の式の使用法、検索結果は色で強調表示されます。式に関連するキーワードを知る必要はありません。形式を知っているだけで、すぐに取得できます。 grep
コマンドで検索してください。
Linuxカーネル、U-Boot、およびその他のほとんどすべてのLinuxシステムオープンソースプロジェクトのコンパイル、ファームウェアパッケージング、および分析は、コマンドラインを介して実行されます。
私が普段接しているLinux関連の開発に携わっているオタクの数が多いことからすると、基本的には開発能力の高い人なら簡単にコマンドラインで遊べます。
常にLinuxを最大の敵と見なしてきたマイクロソフトでさえ、最近、ユーザーがWindowsシステムでコマンドライン操作を便利に実行できるようにすることを目的とした「WindowsTerminal」と呼ばれるツールを開発しました。 Linuxコマンドラインの魅力を見ることができます。
Windowsで作成するさまざまなドキュメントのバージョン管理にはgitを使用する必要があります。gitにはWindowsのグラフィカルインターフェイスがありますが、慣れていないため、 Cmder
というコマンドラインツールを使用します。 Linux環境と同じ効率的なエクスペリエンスが得られました。
Linuxコマンドラインの下にIDEがないので、まだ心配しているかもしれません。KeilやSourceInsightなどのIDEを使用してコードを作成するのが好きです。問題ありません。Linuxでの作業ディレクトリをSambaサービスを介してWindowsシステムにマップし、Windowsでお気に入りのIDEにコードを記述できるようにする方法を説明します。実際、Vimは非常に効率的にコードを書くこともできます。
上記のこれらのLinuxコマンドラインの利点はすべてLinuxでの開発を目的としていることに注意してください。娯楽用の場合、グラフィカルインターフェイスに匹敵するものはありません。これはWindowsやMacOSよりも強力です。
心配する人もいるかもしれませんが、なぜ有名なVMwareToolsのインストールを開始しなかったのでしょうか。
VMware公式ウェブサイトの指示によると:VMware Toolsは仮想マシンの機能を強化するために使用され、Ubuntuシステムには独自のOpen VMToolsがあります。VMwareはUbuntuに付属のバージョンを使用することを公式に推奨しています。次のコマンドを使用してシステムで表示できます。 :
システムにはデフォルトでOpenVM Toolsがすでにインストールされていることがわかります。したがって、再度インストールする必要はありません。
私が観察したところによると、Ubuntuをインストールした後、システムは一度再起動する限り、このOpenVMツールを自動的にインストールします。
前述のように、Ubuntuシステムを別のディスクにインストールすることをお勧めします。Ubuntuシステムが基本的にインストールされたので、Ubuntuがデータを保存するための別のハードディスクを追加します。
上の写真を左から右にたどってください。
推奨設定に従って、[SCSI]を選択してから、次の手順を実行します。
新しい仮想ディスクの作成を選択します。もちろん、システムを再インストールしていて、以前に使用した既存のディスクがある場合は、既存の仮想ディスクを使用を選択して、元のディスクのデータを直接使用できます。
このディスクはデータのロードに使用されるため、容量はできるだけ大きく設定する必要があります。
新しいディスクストレージパスを選択して終了します。
ディスクの作成プロセスには時間がかかり、時間がかかる場合があります。
作成が完了したら、Ubuntuを起動します。
デスクトップの左下隅をクリックし、ユーティリティを開いて、内部のディスクツールを選択します。
新しく追加したディスクを選択し、[設定]ボタンをクリックして、[パーティションのフォーマット]を選択します
名前は好きなように書かれています。通常、Linuxで最も一般的な形式であるEXT4を選択します。
次に、次へ-"フォーマット、ディスクをフォーマットします。
EXT4形式にフォーマットされています。
マウントオプションの編集を選択します
これは主にディスクマウントディレクトリを設定するためのもので、通常はホームディレクトリの下にマウントします。
マウントオプションをクリックすると、ディスクが正常にマウントされます。後でシステムを再起動すると、自動的にマウントされます。
df-hl
コマンドを使用すると、追加の150Gディスクがシステムにマウントされていることがわかります。
これで、WindowsとUbuntuの両方のオペレーティングシステムを1台のコンピューターで同時に実行できるようになりました。したがって、これら2つのオペレーティングシステムでデータを直接共有する必要がある場合はどうでしょうか。
これにはSambaサービスを使用することをお勧めします。
まず、UbuntuシステムにSambaをインストールします。
sudo apt install samba
samba構成ファイルを編集します。
sudo vim /etc/samba/smb.conf
ファイルの最後に以下を追加します。
その中で、 path
はUbuntuで共有する必要のあるディレクトリパスです。
次のコマンドを実行して、sambaサービスを開始します。
sudo service smbd restart
sudo ufw allow samba
sambaアカウントを追加します。
sudo smbpasswd -a yourusername
yourusernameは、後続のsamba接続に適したログイン名です。通常、Ubuntuシステムのログイン名と同じに設定します。次に、パスワードを設定するように求められます。
Windowsシステムでこのコンピューターをメールで送信-》 マップネットワークドライブ:
フォルダーオプションにUbuntuコンピューターのIPアドレスとsmb.confファイルで構成された名前(角括弧内の名前)を入力すると、完了です。
次に、以前に設定したsambaアカウントとパスワードを入力して、Ubuntuシステムの下のディレクトリに接続します。
Windowsコンピュータがディスクをローカルにマッピングしていることがわかります。このディスクは、Ubuntuの下にあるディスクと同じです。このディスク上のコードファイルの変更は、Ubuntuのファイルの変更と同じです。
これまでは、基本的にVmware仮想マシンを介して組み込みLinux開発用の仮想マシン環境を構築してきました。この環境では、さまざまな調査や試行を行うことができます。ミスをしたり、システムを壊したりすることを恐れる必要はありません。このプロセスに従ってシステムを再インストールするのに約1時間かかり、コンピュータに影響を与えることはありません。ダメージがあります。
Hack Fun
Recommended Posts