
Maemoが何であり、どこで機能するのかを説明するのは意味がありません。 これはLinuxであり、現在はNokiaのタブレットと新しいNokia N900で動作することを誰もが理解しています。 しかし、プロジェクトはオープンソースであるため、他のメーカーがこのプラットフォームでデバイスを作成することを妨げるものはないと思います(おそらく、HTCまたはMaemoベースのMotorollaが登場するかもしれません)。
この記事では、Maemoの開発環境をセットアップする方法について説明します。
まず、2つのタイプのSDKがあります-Maemo5 / 4の現在の安定版(Fremantle / Diablo)と、現在ベータ版である新しいSDK-MADDEです。
さて、安定版(比較的議論の余地があり、後でその理由を説明します)と現在のフリーマントル(執筆時点では「最終版2」で、現在は「最終版」)から始めましょう。 これはDiabloに基づいているため、インストールプロセスとツールは同じです。 ディアブロが必要な場合は、この手順が機能します。その後、フリーマントルについてのみ説明します。必要に応じてディアブロを使用できると疑います。
さて、Fremantle SDKを選択したと仮定します(MADDEは次の記事に専念します)。 このSDKには1つの欠点があります-単一プラットフォームです。 Linux x86でのみ動作します(できればdebianベースですが、必須ではありません)。 このシステムの幸せなユーザーには、SDKをインストールする簡単な方法があります。
このページからスクリプトをダウンロードし、
この指示に従って行動する必要があります。
動作しているシステムがWindows(最も人気のある)/ Linux x64 / MacOの場合はどうすればよいですか? 絶望しないでください。 ここにも選択肢があります。 最も簡単な方法は、カスタマイズされた環境で
ここから仮想イメージをダウンロードし、そこで作業することです。 すべてが非常に簡単です-ダウンロードし、VMWare、QEMU、VirtualBoxから実行します。 ESBoxとSDKがすでにあります。 システムを仮想マシンにインストールする方法がわからない場合は、この記事をさらに覗いてください。

さて、最後のオプション-独自のプラットフォームでアプリケーションを開発したい場合-問題ありません! ESBox(想像するのを忘れた-これらはMaemo5 / 4用の開発用Eclipse +プラグイン)は仮想マシンで動作します。 つまり、ESBoxでコードを記述し、仮想マシンでそれを収集してそこで起動し、ネイティブシステムに結果が再び表示されることがわかります。 仮想システムは「日陰で」動作します。 アイデアは美しいですね。
実際、Windowsではすべてがそれほどスムーズではなく、
Mac OSおよびLinuxではすべてが正常に機能します (近い将来、Windowsで指摘したすべてのバグが修正されることを期待しています)。 私はいくつかの不快な瞬間に出会いましたが、さまざまな場所で見つけることができるドキュメントの一部はノキアではなく、オープンソースコミュニティによって作成されたものであり、バージョンの不正確性と矛盾が時々あります
この記事では、WindowsでMaemo SDKをインストールする方法について説明します(プロセスがLinux、Mac OSオプションと異なる場合はコメントがあります)。さらに、30分以内にそれを行います。 カットの下でそれらにすべてのビデオと表記。
ちなみに、これらはすべて、開発のためだけでなく、実際のデバイスがなくてもMaemoに慣れるためにインストールできます。
ウサノフカのプロセスは複雑で、多くの手紙があるようです。 実際はそうではありませんが、できるだけ詳細に説明しようとしました。 実際、動画を見るだけで十分です。はっきりしない場合は、この動画の説明を読んでください。UPD:執筆時点では、仮想システムのイメージは「PreFinal2」で、数日前に最終バージョンがリリースされました。 ただし、このタイプのインストールでは何も変更されていないため、指示は完全に関連したままです。 仮想システムイメージのコンテンツのみが変更されており、maemo環境が構成されています。リーダーシップの順序は次のとおりです。最初にビデオ、次にその説明とリンク。 だから、それらすべてを覚えていない、私はビデオの後にそれらをもたらすでしょう(私はあなたがHDで見ることを勧めます、私はビデオの前にリンクを与えます、私はここでHDビデオを追加する方法を見つけませんでした)
最初のステップ:仮想マシンのインストールと初期構成:
HD YouTubeバージョンへのリンク。アクションのシーケンスは次のとおりです。
サイトからMaemo Virtual Imageをダウンロードします(リンクをクリックすると、ライセンス契約に同意する必要があります)。 ファイル「Maemo_Ubuntu_Intrepid_Server_SDK_Virtual_Image.zip」をダウンロードします。 これは、特にいくつかの追加が加えられた画像です:
Ubuntu Server 8.10 Intrepid Ibex
GUIアプリケーションを使用しないMaemoホストPC接続リリース
仮想化パフォーマンスツールのインストールウィザード
公式VMWareツールのインストーラー
Open VMWareツールのインストーラー
VirtuaBox GuestAdditionsのインストーラー
さらに、いくつかのパッチがインストールされています。
次に、
VirtualBox Webサイトにアクセスし、[ダウンロード]セクションでプラットフォームのインストーラーをダウンロードします。 それに応じて、すべてのデフォルトパラメータでインストールします(注意:インストール中、VirtualBoxネットワークインターフェイスはしばらく落ちます)。
次に、ダウンロードしたUbuntuの仮想イメージを便利な場所に解凍します(zip形式は、すべてのOSで「そのまま」サポートされています)。
VirtualBoxを起動し、ダウンロードしたばかりのイメージを接続するディスクとして新しい仮想マシンを作成します。
仮想マシンを起動します:ログインとパスワード:maemo。
次のコマンドで〜/ install_guest_additions_server.shツールを実行します。
sudo /home/maemo/ToolsInstallers/install_guest_additions_server.sh
次に、すべての質問に積極的に回答し、すべてのライセンス契約に同意します。
インストールプロセスが完了したら、次のコマンドを使用して仮想マシンを再起動します。
sudo reboot
ステップ2:ESbox + SDKをインストールして構成し、仮想マシンで動作するようにします。
YouTubeのHDバージョンにリンクします。仮想マシンの設定に入り、「ネットワーク」セクションでネットワーク接続のタイプを「NAT」から「ネットワークブリッジ」に変更します。
一般に、ホストシステムと仮想システムの間でクロスボールを編成する必要があります。 ボールのスキームは次のとおりです。

ESboxのワークスペース(図では「C:\ maemo \ shared」)を仮想マシンの対応するフォルダーにマウントして、SDKが仮想システムからコンパイルおよび起動できるようにします。 ボールはsmbプロトコルによって編成されます。
ただし、快適な作業のために、SDKからヘッダーファイルを接続するために、仮想マシンからホストマシンにリターンボールを作成することができます。したがって、ESBoxからそれらを確認し、オートコンプリートを有効にできます。 これは必要ではありませんが、便利です。
仮想マシンでNATを介したネットワーク接続がある場合は、ポート22のリダイレクトを行う必要があります。そのため、「ブリッジ」ネットワークを作成しやすくなります。そのため、仮想マシンは別のインスタンスとしてネットワークに表示されます これにより、別のコンピューターからネットワーク経由で開発を行うことができます(たとえば、この仮想イメージを妻用のコンピューターに掛けたり、ブナ自体にコードを付けたり、電源がアイドル状態になっている理由:-)か、仮想マシンでリモートで作業したりできます(多くのオプションがあります)。
しかし、それは一瞬考慮する価値があります。 ネットワークはこれを許可しないか、ルーターがあまり賢くない場合、ホストと仮想マシンの間のデータ転送は安全にインターネットを介して(プロバイダーを介して)実行できます-トラフィックが少ない場合でも、この場合はひどいブレーキがかかる可能性があります。 したがって、NATネットワーキングを使用するオプションを破棄しません。
ポート転送を構成する方法については、こちらを参照してください 。
次に、
このサイトからESboxをダウンロードする必要があります
。 。
次の2つのファイルをダウンロードする必要があります。
esbox_2.0.0-R20091216-common.zip
esbox_2.0.0-R20091216-win32.win32.x86.zip-Windows用(またはプラットフォームに適した)。
R20091216-執筆時点で利用可能なバージョンの番号。もちろん、後者をダウンロードする必要があります。
最初のアーカイブはプラグインと機能であり、2番目はプラットフォーム依存のファイル(実行可能ファイルおよび関連ファイル)です。
両方のファイルを同じフォルダーに解凍します(たとえば、C:\に解凍すると、プログラムはC:\ ESBoxに解凍されます)。zipアーカイブは、サードパーティ製品のないすべてのプラットフォームでサポートされます。
展開したESBoxを起動し、初期構成に進みます。
最初に、ワークスペースの場所を尋ねられます。 C:\ maemo \ sharedを指定することをお勧めします。 (ビデオで間違ったディレクトリが選択されましたが、字幕に正しいパスが書き込まれています。後で、背後のワークスペースへのパスを変更しました)。
これがデフォルトのワークスペースであることを通知し、起動時に配置について尋ねる必要がなくなりました。
次に、ヘルプを接続します(オプション)。
最初に、オンラインヘルプリポジトリが接続され、入力する際のパラメータは次のとおりです。
名前:Maemo Docs Libraray
ホスト:library.maemodocs.nokia.com
パス:/フリーマントル
また、必要に応じて、オフラインヘルプをインストールできます。
これを行うには、新しいリポジトリを追加します。
場所: maemoide.nokia.com/downloads/fremantle
必要なパッケージ(私の場合はすべて)を選択し、ライセンス契約に同意してインストールします。
その後、ESBoxを閉じます。
Windowsユーザーのみの次のステップは、Xサーバーのインストールです。 Mac OSでは、サーバーは「箱から出してすぐに」動作し、正常に動作します(チェック済み)。 Linuxの場合、Xephyrをインストールする必要があります。
sudo apt-get install xserver-xephyr
Windowsでは、XServerから選択できます。 Maemo SDK開発者はCygwin / Xを提供しますが、私はXMingを提供します。 両方とも同じように機能します(同様に間違っています。次の章を参照)。
Cygwin / Xをインストールするには、
cygwin.orgに
アクセスし、このリンクからファイルをダウンロードする必要があります
。その後、インストーラーを実行して、X11 / xorg-server、X11 / xinit、X11 / xdpyinfoの3つのパッケージを追加します。
Windows 7のユーザーへの注意。Cygwin/ Xバージョン1.7
はバグのためクラッシュします。 コンポジション拡張に関連付けられています(これについては、4番目のステップで詳しく説明します)。
XMingをインストールするには、
sourceforge.netからインストーラーをダウンロードします。 インストーラーを実行し、指示に従って進めます(デフォルト設定はすべて残しました)。
私にとっては、XMingのインストールは簡単で高速です。
次に、仮想マシンを構成し、ESbox-> Build Machinesの設定に移動して、仮想マシンのリストからVirtualBoxを選択する必要があります。
最初のタブで、実行可能ファイルVirtual Boxへのパスを変更し(私のようにデフォルトですべてを設定する場合は余分な文字「xVM」を削除します)、リストから仮想マシンを選択する必要があります。
2番目のタブでは、ネットワークインターフェイスを構成します。
これを行うには、仮想マシンを起動してアクセスします:ユーザー名/パスワード-maemo / maemo。
次のコマンドを入力します。
ifconfig
このコマンドは仮想マシンのアドレスを表示し、ホストマシンのインターフェースのドロップダウンリストで適切なIPアドレスを選択します。
そして、必ず「適用」ボタンをクリックしてください。
次に、「maemoインストーラーはここをクリック」の上のリンクをクリックしてください。
最初にScratchboxをインストールします。
ターゲットプラットフォーム(FremantleまたはDiablo)を選択します。 提案されたautoconfs'aパッチに同意し、仮想マシンを再起動します。
このリンクをもう一度クリックして、Scratchboxの目標を設定します(それぞれ、FremantleまたはDiablo)。
ここでは、ライセンス契約に同意する必要があります。
目標を設定した後、Nokiaから市販の(閉じた)バイナリファイルをインストールするよう求められます。
これはフリーマントルにとって必要なステップです。
トリッキーなライセンス契約があります。上のリンクをクリックし、ブラウザでライセンス契約を読み、確認コードを入力してdebリポジトリへのパスを取得する必要があります。 このパスをコピーして、適切なインストーラーフィールドに入力する必要があります。
その後、必要なパッケージはすでにインストールされています。
ネットワークリソースの設定にはまだ触れていません。これについては次の章で説明します。
ステップ3:セットアップを完了し、最初のアプリケーションのビルドとデバッグを試みます。
注:次のビデオでは、C:/ maemo /共有フォルダーにネットワークアクセスし、ローカルユーザーにファイルを変更する許可を与えていることを前提としています。
ネットワークリソースは、Sambaプロトコルを使用して編成する必要があります。
googleで簡単に見つけることができるWindows / Linux / Mac OSでそれを行う方法。
YouTubeのHDバージョンにリンクします。[共有フォルダー]タブで仮想マシンの設定に移動します(上の図を参照)。 パスを確認し、「マシンの検証」ボタンをクリックします。
ESboxは、仮想マシンの適切なディレクトリで共有されているC:\ Maemo \をマウントし、接続用のユーザー名とパスワードを要求します(それらを記憶し、再度要求することはありません)。
ここでは、Mac OSとLinuxのすべてがエラーなく動作するはずです。
Windowsでは、すべてが適切にマウントされたが利用できないというメッセージが表示されます。 このメッセージは無視してください。 さて、例外は飛び出します。 バグ番号1。これには注意を払わず、2つのディスクTとSがWindows(または設定を変更した場合は他のディスク)に表示されることを確認するだけです。
次に、新しいプロジェクトMaemo C ++-> Hello Worldを作成します。
ESboxはインストールされている依存関係を確認するように求めます。 初めて実行する場合、いくつかのパッケージがインストールされます(既に持っています)。
maemoロゴのあるボタンをクリックして、maemo環境を開始します。 Xサーバーを起動するためにサポートされていないパラメーターを削除することをお勧めします(何も影響しないことを試みましたが、同意する方が良いです)。
私の推奨事項に従ってXMingをインストールした場合、何も開始されないので問題ありません。 それでも同じように機能しません。ビデオをご覧ください。 Xboxで動作するようにESboxを設定する手順については、次の章を参照してください。
ビデオでは、左隅にたくさんのアイコンがあります(すでにウィジェットがインストールされています)。Twitterアイコンしかありません。 下からクリックすると、スクロールバーが表示されます(このブラウザーが起動します)。
これはバグ番号2であり、次の章でその回避方法を説明します。 このバグは、Windowsでのみ表示されます。LinuxおよびMac OSでは、すべてが適切に表示されます(表示されない場合は、この手順の最後を参照してください)。
ご覧のとおり、ウィンドウマネージャーは正常に機能していません。 天気アプリはタイトルなしで表示されます。
Maemo環境をオフにして、Xサーバーを手で閉じます(別のバグ、ESBoxはXサーバーを閉じることができません)。
ここで、アプリケーションをビルドしようとしています。選択したFREMANTLE_X86(デバッグ)をターゲットとして使用します。 そして、何も起こりません。 コンソールにエラー(スクリプトが見つからない)とプラグイン例外(別のバグ)があります。
心配しないで。 別のアセンブリターゲットを選択するだけで機能します。その後、収集されなかった目標が収集されます。 これは、初期値の一部が初期化されていないという事実によるものだと思いますが、目標を切り替えると満たされます。
autoconfを長時間使用した後、アプリケーションを起動する準備が整いました。
Maemo環境を起動し、デバッグモードでアプリケーションを実行します。
アプリケーションはブレークポイントで停止します。つまり、gdbは正常に機能しますが、実行後は画面上で黒くなります。 そうであるはずです。 このアプリケーションのウィンドウタイトルにはコントロールが1つしかありませんが、タイトルがないため(ウィンドウマネージャーは起動しませんでしたが、後で詳しく説明します)、表示されません。
Mac OSおよびLinuxユーザーの場合、すべてがすでに機能し、正しく表示されるはずです。 表示される場合は、Xサーバーの起動時に-extension Compositeオプションが表示されないことを確認してください。 このオプションはディアブロにありましたが、フリーマントルでは必要ありません。
4番目のステップ、最後:XMingのセットアップ、バグのバイパス、アプリケーションのデバッグ。
YouTubeのHDバージョンにリンクします。まず、私に耳を傾けてXMingを使用した人への指示。
ESbox-> X Serverの設定に入り、値を変更します:
サーバーを起動するコマンドテンプレート:「C:\\ Program Files \\ XMing \\ XMing.exe」
サーバーの追加PAthエントリ: "" C:\\ Program Files \\ XMing "
ここで、すべてのタイプのXについて、次のパラメーターを追加する必要があります。
+拡張機能Composite +拡張機能「汎用イベント」
実行すると、XMingが起動します。
ビデオを一時停止し、私の推論を少し聞いてください。
ここで、すべてが正しく表示されない理由を理解します。
Cygwin / Xには、matchbox(maemoのウィンドウマネージャー)が複合拡張機能がXサーバーにインストールされていることを認識できないという問題があります。 そして、それは始まりません。 その結果、アイコンが失われ、ヘッダーやその他すべてが失われます。
このバグは既知ですが、少し異なります。 要するに、Fremantle SDKでCygwin 1.7のサポートを確認する必要があるということです 。
Cygwin 1.7の代わりに、バージョン1.5.25-15を使用することをお勧めします。 しかし、Cygwinの古いバージョンは公式インストーラーではインストールできません(公式リポジトリのXorg-serverの最も古いバージョンは
xorg-server-1.6.5-1です )が、高速のものを見つけてダウンロードできませんでした。 はい、これは問題を解決するという事実ではありません(この秋はバグで説明されており、複合拡張機能のサポートの欠如ではありません)。 誰かが試してみたら、成功について登録解除してください。
2番目のオプションはXMingです。 ここでは、Generic Events(XGE)をサポートしていません。通常、Composition拡張機能を有効にするとクラッシュします。 エラーがなければ、ただ静かに落ちます。 特にその開発はすでに非常に進んでおり、アナウンスから判断すると、これは既にバージョン7.5.0.14(最新バージョン7.5.0.16)で修正されているため、デバッグする必要はありません。 Composite Extensionの問題も修正された可能性があります。 ただし、大幅な遅延のあるバージョンはパブリックアクセス(バージョン6.9.0.31になりました)でレイアウトされており、最新バージョンにアクセスするには、ドナーコードを取得する必要があります(このためには、プロジェクトに寄付する必要があります)。 XサーバーをWindowsで使用した場合、間違いなく使用します。 しかし、私のメインプラットフォームはMac OSです。 繰り返しになりますが、誰かが最新のXMingをチェックする機会があれば-購読を解除してください。非常に興味深いです。
はい、ちなみに、XMingでは、クリップボードを有効にする-clipboardオプションを追加できます。
さて、今すべてを機能させる方法。
スキームは次のとおりです。 Maemo環境は仮想マシンで実行されますが、画面はESBoxが提供するものではなく、ローカルのものを使用する必要があります。 Xephyrはローカルで起動されます(このXサーバーは、別のXServerに組み込まれています(ネスト、ネスト))。 XServerの画面はXMing / Cygwinになります。 maemo環境とXServer Windowsの間で判明したので、仮想マシンにXephyrを挿入します。
これを行うのは非常に簡単です。
ビデオから一時停止を解除し、さらに設定を進めましょう。
仮想マシンに行き、Xephyrをインストールします。
sudo apt-get install xserver-xephyr
次に、実行するスクリプトを作成します。
./start1.shをタッチします
chmod a + x ./start1.sh
vim ./start1.sh
当然、vimの代わりに、nano、mceditという別のエディターを使用できます。
スクリプトの内容は次のようになります。
#!/ bin / bash
エクスポートDISPLAY = 192.168.1.152:2
Xephyr:2 -host-cursor -screen 800x600x16 -dpi 96 -ac -kb
192.168.1.152の代わりに-ホストマシンのIPアドレスを指定します。
スクリプトを実行すると、画面に接続できないことを誓う必要があります。
ESboxの下からXServerを起動し、スクリプトを再度実行します。
出力はコンソールのように表示されます。
Xephyrを終了するには、Ctr + Cを押します(仮想マシンのコンソールを切り替えるには、Alt + <左/右矢印の組み合わせを使用します)。
次に、それを修正し、スクラッチボックスに移動してmaemo起動スクリプトを修正し、XmingではなくローカルXephyrサーバーに表示されるようにする必要があります。
/ scratchbox /ログイン
vim /usr/bin/af-sb-init.sh
最初にこのような行を追加します
エクスポートDISPLAY = 127.0.0.1:2
さて、WindowsでXmingを実行し、仮想マシンでXephyrのスクリプトを実行し、ESboxからMaemo環境を実行します。
ここには、ほとんど機能するMaemoがあります(ブラウザーやオーディオプレーヤーなど、一部のアプリケーションはまだ起動しませんでした)。
では、helloworldをデバッグモードで実行してみましょう。ここでも、設定を少し変更する必要があります。 環境変数では、次の行を追加する必要があります。
ディスプレイ= 127.0.0.1:2
したがって、アプリケーションはXMingではなくXephyrでも表示されます。
ご覧のとおり、すべてが正常に機能しています。
ところで、私がしたように、アプリケーションマネージャーで任意のソフトウェアに指示することができます。したがって、システムに精通することができます。
おわりに
結論に達しました。おめでとうございます。
もちろん、完璧な環境は得られませんでしたが、うまくいきます。
主な短所:
コンパイルは、コンピューター全体のフルパワーではなく、仮想マシンのパワーを使用します
ディスプレイは本来の美しさや速さではありません
設定が難しい(ビデオの合計時間は25分ですが、パッケージのダウンロードにかかる時間は考慮されていません)
Eclipse環境(ESBox)には欠点(速度、メモリ、エラー)がないわけではありません。
しかし、代替手段があります-これはMADDEです。 このSDKはまだ開発中ですが、既に使用できます。
クロスプラットフォームです。 最小限のインストールが必要で、Qt-creator'eでこのSDKのサポートがあります(ただし、これまでのところ実験的です)。 現在、MADDEでアプリケーションを作成できますが、実際のデバイスでのみ作成できます。 MADDEのインストール方法と使用方法については、後続の記事で説明します。
次の記事では、Qtアプリケーションを作成し、他の人がインストールできるようにパッケージをビルドする方法を説明します。
また、XMingとCygwin / Xの問題を解決するためのアドバイスと考えを待っています。
Maemoの知人をお楽しみください。
UPD:いつものように、伝統的に、英語版のパックは私の個人的なブログ
erudenko.comで見つけることができます。 確かに、それらは少し遅れて表示されます(翻訳の難しさ:-))。