勉強中、私はほぼ18ヶ月間Android iOSアプリとウェブサイトを開発してきました。今年の最後のプロジェクトとして、Androidなどのモバイル機器にリリースすることを目指して、Linuxのソースコード作業を行っています。私はインターネットのチュートリアルに従い、正常にDebianパッケージを作成しました。私は現在Ubuntuを使用しています。
戦略がありますが、正しい道を行っているかどうかはわかりません。次のように:
ㅏ:
Linuxのソースコードをダウンロードしてください。追加のドライバを削除し、現在実行中のUbuntuにそれらをコンパイルしてインストールしてから使用してください。
コードをさらにカスタマイズし、独自のディストリビューションで実行してください。こういうわけで私はフォローしているリニアFS。
特定のターゲットモバイルデバイスを指定し、そのコードを修正し、ドライバを作成し(必要な場合)、どのドライバであるかはわかりません(だから私がここにいる理由です)。その後、そのデバイスでカーネルを起動します。
私の戦略が正しいかどうかはわかりません。誰かが私に教えてくれたら、とても感謝しています。
第二:
- 私は正しい道を行っていますか?そうでなければ、何が正しいですか?
- 電話を指定し、そのカーネルコードをカスタマイズする必要がありますか?
- ドライバに加えて、カーネルで何を変更する必要がありますか?
- 最後に重要なのは、モバイルデバイスでカーネルを起動するときにインターフェイスまたは端末がありますか?
私の質問がわからない場合は申し訳ありません。私はまだ何かを見つけようとしている学生です。誰もがインターネットでどのトピックを検索するべきかについてのアドバイスをいただきありがとうございます。
更新:私が望むのは、私の戦略が正しいことを確認することです。そうでない場合は、従うべき手順をリストしてください。
ベストアンサー1
kernel.orgの通常のカーネルの代わりにAndroid Linuxカーネルを最初にコンパイルしてみるのは簡単ではありませんか?原則として、カーネルはGPLなので、すべてのAndroidデバイスで動作します。製造元がこれについて全く知らないか、既知のGPL違反であるため、ターゲットデバイスのカーネルソースコードを取得できない場合は、次のオプションは同様のSoC(Tegra 3、RK3188、ETC)をダウンロードしてコンパイルすることです。 。
さまざまなSoC設計を実行するモバイルデバイスからの起動は、おなじみのAMDまたはIntel CPUを搭載したデスクトップまたはラップトップから起動するよりもはるかに確実ではありません。実際、カーネルをモバイルデバイスにコピーまたはフラッシュできるかどうかはわかりません(もちろん、モバイルデバイスがラップトップでない場合)。だからそれも研究する必要があります。
だから最初に見たのはターゲットデバイスでした。理論的には、Linuxを実行するためにカーネルや他のオペレーティングシステムのエントリをSDカードにコピーできるため、外部SDカードから起動できるデバイスを選択することをお勧めします。さらに、カーネルを適切なブートパーティションにフラッシュできる回復パーティションが動作するデバイスを選択してください。これらのデバイスには、実際にはAndroidブートパーティションと回復パーティションという2つのブートパーティションがあります。したがって、問題が発生してデバイスが起動しない場合は、デバイスの特別なハードウェアボタンの組み合わせを押してリカバリパーティションから起動し、デバイスを利用可能な状態に戻すことができます。