<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Sony Xperia on Ivon's Blog</title><link>https://ivonblog.com/ja-jp/tags/sony-xperia/</link><description>Recent content in Sony Xperia on Ivon's Blog</description><generator>Hugo -- gohugo.io</generator><language>ja-jp</language><managingEditor>infoivonblog.nkfjt@aleeas.com (Ivon Huang)</managingEditor><webMaster>infoivonblog.nkfjt@aleeas.com (Ivon Huang)</webMaster><copyright>Ivon's Blog（ivonblog.com）の記事はご自由に共有いただけます。引用の際は、記事のURLを明記してください。特に明記されていない限り、すべての記事CC BY-SA 4.0 表示-継承 4.0 国際 ライセンスの下で提供されています。商用利用をご希望の場合は、お問い合わせください。</copyright><lastBuildDate>Sat, 10 Sep 2022 10:01:46 +0800</lastBuildDate><atom:link href="https://ivonblog.com/ja-jp/tags/sony-xperia/index.xml" rel="self" type="application/rss+xml"/><follow_challenge><feedId>56005902658351104</feedId><userId>1132431067563556864</userId></follow_challenge><item><title>postmarketOS移植、Sony Xperia 5 IIを例に</title><link>https://ivonblog.com/ja-jp/posts/sony-xperia-5-ii-postmarketos-porting/</link><pubDate>Sat, 10 Sep 2022 10:01:46 +0800</pubDate><author>infoivonblog.nkfjt@aleeas.com (Ivon Huang)</author><guid>https://ivonblog.com/ja-jp/posts/sony-xperia-5-ii-postmarketos-porting/</guid><description>&lt;!-- Co-translated by ChatGPT --&gt;
&lt;p&gt;この記事は、僕が自分でpostmarketOSを移植した過程を記録したものです。「現在は未完成状態」です。&lt;/p&gt;
&lt;p&gt;移植手順については、postmarketOS Wikiの&lt;a href="https://wiki.postmarketos.org/wiki/Porting_to_a_new_device" target="_blank" rel="noreferrer"&gt;Porting to a new device&lt;/a&gt;と&lt;a href="https://wiki.postmarketos.org/wiki/Mainlining_Guide" target="_blank" rel="noreferrer"&gt;Mainlining Guide&lt;/a&gt;がかなり明確に書いています。この記事は、そのWikiの内容を中国語に翻訳し、そこへ僕の注釈を少し足したものです。&lt;/p&gt;</description><content:encoded>&lt;!-- Co-translated by ChatGPT --&gt;
&lt;p&gt;この記事は、僕が自分でpostmarketOSを移植した過程を記録したものです。「現在は未完成状態」です。&lt;/p&gt;
&lt;p&gt;移植手順については、postmarketOS Wikiの&lt;a href="https://wiki.postmarketos.org/wiki/Porting_to_a_new_device" target="_blank" rel="noreferrer"&gt;Porting to a new device&lt;/a&gt;と&lt;a href="https://wiki.postmarketos.org/wiki/Mainlining_Guide" target="_blank" rel="noreferrer"&gt;Mainlining Guide&lt;/a&gt;がかなり明確に書いています。この記事は、そのWikiの内容を中国語に翻訳し、そこへ僕の注釈を少し足したものです。&lt;/p&gt;

&lt;h2 class="relative group"&gt;1. ハードウェア要件
 &lt;div id="1---ハードウェア要件" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#1---%e3%83%8f%e3%83%bc%e3%83%89%e3%82%a6%e3%82%a7%e3%82%a2%e8%a6%81%e4%bb%b6" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;移植対象のスマホ：Sony Xperia 5 II (XQ-AS72、コードネームsony-pdx206)、Bootloader解除済み。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;この機種は&lt;a href="https://wiki.postmarketos.org/wiki/Sony_Xperia_5_II_%28sony-pdx206%29" target="_blank" rel="noreferrer"&gt;postmarketOS Wiki&lt;/a&gt;に登録情報があり、&lt;a href="https://docs.somainline.org/platform/sm8250/sony/pdx206/" target="_blank" rel="noreferrer"&gt;somainlineが開発したmainline kernel&lt;/a&gt;で起動することもできます。ただしUFSにbugがあるため（後述）、まだ正式な移植はありません。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;PC：64ビットLinuxである必要があります。仮想マシンでも構いません。僕のCPUはi5-7400、RAMは16GBです。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;postmarketOSのシステムファイルはとても小さいので、何十GBものソースコードをダウンロードする必要はなく、コンパイルにも何時間もかかりません。&lt;/p&gt;

&lt;h2 class="relative group"&gt;2. pmbootstrapをインストールする
 &lt;div id="2--pmbootstrapをインストールする" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2--pmbootstrap%e3%82%92%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab%e3%81%99%e3%82%8b" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;pmbootstrapというツールは、postmarketOSのインストールファイル作成や移植作業に使えます。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;システムにPython3、openSSL、Pip、Gitをインストールします：&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt install python3 openssl python-pip3 git&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;ol start="2"&gt;
&lt;li&gt;pipでpmbootstrapをインストールし、再読み込みします:&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;pip3 install --user pmbootstrap
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;source&lt;/span&gt; ~/.profile&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;ol start="3"&gt;
&lt;li&gt;自動補完をインストールし、&lt;code&gt;~/.bashrc&lt;/code&gt;へ追加します:&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; pip3 install --user argcomplete
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;eval &amp;#34;$(register-python-argcomplete3 pmbootstrap)&amp;#34;&amp;#39;&lt;/span&gt; &amp;gt;&amp;gt; ~/.bashrc
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;source&lt;/span&gt; ~/.bashrc&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;ol start="4"&gt;
&lt;li&gt;インストール後に&lt;code&gt;pmbootstrap&lt;/code&gt;を入力してもコマンドが見つからないと表示される場合は、再起動します。&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 class="relative group"&gt;3. 機種設定を初期化する
 &lt;div id="3--機種設定を初期化する" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#3--%e6%a9%9f%e7%a8%ae%e8%a8%ad%e5%ae%9a%e3%82%92%e5%88%9d%e6%9c%9f%e5%8c%96%e3%81%99%e3%82%8b" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;pmbootstrapを初期化し、質問に沿って機種の設定値を入力します。以下の質問に対応する設定ファイルは&lt;code&gt;~/.config/pmbootstrap.cfg&lt;/code&gt;にあります。&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;~ $ pmbootstrap init
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 作業ディレクトリ&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Work path &lt;span class="o"&gt;[&lt;/span&gt;/home/ivon/.local/var/pmbootstrap&lt;span class="o"&gt;]&lt;/span&gt;: Enter
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 更新チャンネルは安定版またはedgeを入力します。edgeはAlpine上流の更新で依存関係が壊れることがあります&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Channel &lt;span class="o"&gt;[&lt;/span&gt;edge&lt;span class="o"&gt;]&lt;/span&gt;: v22.06
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# メーカーを選択&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Vendor &lt;span class="o"&gt;[&lt;/span&gt;qemu&lt;span class="o"&gt;]&lt;/span&gt;: sony
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Sony公式の機種コードネームを入力&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Device codename: pdx206
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 新機種移植を確認&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;You are about to &lt;span class="k"&gt;do&lt;/span&gt; a new device port &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;sony-pdx206&amp;#39;&lt;/span&gt;.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Continue? &lt;span class="o"&gt;(&lt;/span&gt;y/n&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;y&lt;span class="o"&gt;]&lt;/span&gt;: y
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# プロセッサのアーキテクチャを入力&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Device architecture &lt;span class="o"&gt;(&lt;/span&gt;armv7/aarch64/x86_64/x86&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;armv7&lt;span class="o"&gt;]&lt;/span&gt;: aarch64
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 製造元を入力&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Who produced the device &lt;span class="o"&gt;(&lt;/span&gt;e.g. LG&lt;span class="o"&gt;)&lt;/span&gt;? sony
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# スマホの正式名称を入力&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;What is the official name &lt;span class="o"&gt;(&lt;/span&gt;e.g. Google Nexus 5&lt;span class="o"&gt;)&lt;/span&gt;? Sony Xperia &lt;span class="m"&gt;5&lt;/span&gt; II
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# スマホの発売年&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;In what year was the device released &lt;span class="o"&gt;(&lt;/span&gt;e.g. 2012&lt;span class="o"&gt;)&lt;/span&gt;? &lt;span class="m"&gt;2020&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# デバイス種別をハンドヘルドに設定&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;What &lt;span class="nb"&gt;type&lt;/span&gt; of device is it? handset
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# キーボードなし、nと回答&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Does the device have a hardware keyboard? &lt;span class="o"&gt;(&lt;/span&gt;y/n&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;n&lt;span class="o"&gt;]&lt;/span&gt;: n
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# SDカードスロットあり、yと回答&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Does the device have a sdcard or other external storage medium? &lt;span class="o"&gt;(&lt;/span&gt;y/n&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;n&lt;span class="o"&gt;]&lt;/span&gt;: y
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# フラッシュ方式はfastbootを選択&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Which flash method does the device support?
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Flash method &lt;span class="o"&gt;(&lt;/span&gt;0xffff/fastboot/heimdall/none/rkdeveloptool/uuu&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;0xffff&lt;span class="o"&gt;]&lt;/span&gt;: fastboot
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# pmbootstrapにboot.imgの起動パラメータを解析させます。僕はサードパーティROMのboot.imgを使いました&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;[&lt;/span&gt;11:15:10&lt;span class="o"&gt;]&lt;/span&gt; You can analyze a known working boot.img file to automatically fill out the flasher information &lt;span class="k"&gt;for&lt;/span&gt; your deviceinfo file. Either specify the path to an image or press &lt;span class="k"&gt;return&lt;/span&gt; to skip this step &lt;span class="o"&gt;(&lt;/span&gt;you can &lt;span class="k"&gt;do&lt;/span&gt; it later with &lt;span class="s1"&gt;&amp;#39;pmbootstrap bootimg_analyze&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Path: /home/ivon/下載/Evo/extracted_20220826_113410/boot.img
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# デフォルトユーザー名&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Username &lt;span class="o"&gt;[&lt;/span&gt;user&lt;span class="o"&gt;]&lt;/span&gt;: user
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# グラフィカルUIを選択。ハードウェアアクセラレーションが使えるか未確定なうちは、先にXFCE4を選びます&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;User interface &lt;span class="o"&gt;[&lt;/span&gt;weston&lt;span class="o"&gt;]&lt;/span&gt;: xfce4
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# デフォルトのbootパーティション設定を維持し、nを入力&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Additional options: extra free space: &lt;span class="m"&gt;0&lt;/span&gt; MB, boot partition size: &lt;span class="m"&gt;256&lt;/span&gt; MB, parallel jobs: 9, ccache per arch: 5G, sudo timer: False, mirror: http://mirror.postmarketos.org/postmarketos/
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Change them? &lt;span class="o"&gt;(&lt;/span&gt;y/n&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;n&lt;span class="o"&gt;]&lt;/span&gt;: n
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 追加ソフトウェアパッケージをインストールするか&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Additional packages that will be installed to rootfs. Specify them in a comma separated list &lt;span class="o"&gt;(&lt;/span&gt;e.g.: vim,file&lt;span class="o"&gt;)&lt;/span&gt; or &lt;span class="s2"&gt;&amp;#34;none&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Extra packages &lt;span class="o"&gt;[&lt;/span&gt;none&lt;span class="o"&gt;]&lt;/span&gt;: none
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# システムのタイムゾーンを設定&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Your host timezone: Asia/Taipei
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Use this timezone instead of GMT? &lt;span class="o"&gt;(&lt;/span&gt;y/n&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;y&lt;span class="o"&gt;]&lt;/span&gt;: y
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# システム言語を設定。先に英語を使うのがおすすめです&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Choose default locale &lt;span class="k"&gt;for&lt;/span&gt; installation: en_US.UTF-8
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# デバイス名を設定&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Device hostname &lt;span class="o"&gt;(&lt;/span&gt;short form, e.g. &lt;span class="s1"&gt;&amp;#39;foo&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;sony-pdx206&lt;span class="o"&gt;]&lt;/span&gt;: Enter
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# ローカルのSSH公開鍵をpostmarketOSシステムへコピーするか&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Would you like to copy your SSH public keys to the device? &lt;span class="o"&gt;(&lt;/span&gt;y/n&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;n&lt;span class="o"&gt;]&lt;/span&gt;: n
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 古くなったソフトウェアパッケージを自動コンパイル&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;After pmaports are changed, the binary packages may be outdated. If you want to install postmarketOS without changes, reply &lt;span class="s1"&gt;&amp;#39;n&amp;#39;&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; a faster installation.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Build outdated packages during &lt;span class="s1"&gt;&amp;#39;pmbootstrap install&amp;#39;&lt;/span&gt;? &lt;span class="o"&gt;(&lt;/span&gt;y/n&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;y&lt;span class="o"&gt;]&lt;/span&gt;: y&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 class="relative group"&gt;4. kernelのコンパイルオプションを設定する
 &lt;div id="4--kernelのコンパイルオプションを設定する" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#4--kernel%e3%81%ae%e3%82%b3%e3%83%b3%e3%83%91%e3%82%a4%e3%83%ab%e3%82%aa%e3%83%97%e3%82%b7%e3%83%a7%e3%83%b3%e3%82%92%e8%a8%ad%e5%ae%9a%e3%81%99%e3%82%8b" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;pmbootstrapはARMのchroot環境を自動で作成するため、必要なタイミングでパスワードを入力するのを忘れないでください。コンパイル中は別の端末で&lt;code&gt;pmbootstrap log&lt;/code&gt;を実行し、エラーメッセージを確認します。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;まずスマホのkernel（核心）ソースコードを取得します。postmarketOSは&lt;a href="https://github.com/LineageOS" target="_blank" rel="noreferrer"&gt;LineageOSのGithub&lt;/a&gt;からkernelを探すことを推奨していますが、現在LineageOSにはXperia 5 II用がありません。仕方ないのでXDA上のサードパーティkernelを採用します。たとえば僕が使ったのは&lt;a href="https://github.com/XperiaBrickers/android_kernel_sony_sm8250" target="_blank" rel="noreferrer"&gt;XperiaBrickerの版&lt;/a&gt;です。なお、&lt;a href="https://github.com/sonyxperiadev/kernel-copyleft/tree/58.1.A.5.xxx" target="_blank" rel="noreferrer"&gt;Sony公式もkernelを公開しています&lt;/a&gt;。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;作業ディレクトリへ切り替えます:&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; /home/&lt;span class="nv"&gt;$USER&lt;/span&gt;/.local/var/pmbootstrap/cache_git/pmaports/device/testing/linux-sony-pdx206&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;ol start="3"&gt;
&lt;li&gt;
&lt;p&gt;中には&lt;code&gt;APKBUILD&lt;/code&gt;ファイルがあります。これはkernelをコンパイルするための設定ファイルです。&lt;code&gt;#Source&lt;/code&gt;ブロックはkernelのソースリポジトリです。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;ここではLineageOS公式のrepoを使わないため、&lt;code&gt;#Source&lt;/code&gt;ブロックを以下のように変更します。最後の行で&lt;code&gt;$_config&lt;/code&gt;の下にあるものは、コンパイル時にこれらのpatchを適用するという意味です。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Source&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;_repository&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;android_kernel_sony_sm8250&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;_commit&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;8bdbbde86f74be117281c82f4181d1f938659ce0&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;_config&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;config-&lt;/span&gt;&lt;span class="nv"&gt;$_flavor&lt;/span&gt;&lt;span class="s2"&gt;.&lt;/span&gt;&lt;span class="nv"&gt;$arch&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;source&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt;	&lt;/span&gt;&lt;span class="nv"&gt;$pkgname&lt;/span&gt;&lt;span class="s2"&gt;-&lt;/span&gt;&lt;span class="nv"&gt;$_commit&lt;/span&gt;&lt;span class="s2"&gt;.tar.gz::https://github.com/XperiaBrickers/&lt;/span&gt;&lt;span class="nv"&gt;$_repository&lt;/span&gt;&lt;span class="s2"&gt;/archive/&lt;/span&gt;&lt;span class="nv"&gt;$_commit&lt;/span&gt;&lt;span class="s2"&gt;.tar.gz
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt;	&lt;/span&gt;&lt;span class="nv"&gt;$_config&lt;/span&gt;&lt;span class="s2"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt;	gcc10-extern_YYLOC_global_declaration.patch
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt; gcc7-give-up-on-ilog2-const-optimizations.patch
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt; gcc8-fix-put-user.patch
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt; kernel-use-the-gnu89-standard-explicitly.patch
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;ol start="5"&gt;
&lt;li&gt;kernelソースコードのリポジトリで&lt;code&gt;Makefile&lt;/code&gt;ファイルを探し、その中に書かれている&lt;code&gt;VERSION&lt;/code&gt;、&lt;code&gt;PATCHLEVEL&lt;/code&gt;、&lt;code&gt;SUBLEVEL&lt;/code&gt;に従って、APKBUILDの&lt;code&gt;pkgver&lt;/code&gt;へバージョン番号を入力します。たとえばここでは4.19.195です。その後ファイルを保存します。&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;pkgver&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;4.19.195&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;ol start="6"&gt;
&lt;li&gt;kerenelソースコードのリポジトリから&lt;code&gt;defconfig&lt;/code&gt;を探します。これはkernel設定ファイルを生成するためのファイルです。たとえばこのkernelが使うconfig設定ファイルは&lt;code&gt;arch/arm64/configs&lt;/code&gt;にあるので、それを作業ディレクトリへダウンロードし、config-機種名-コードネーム-ビット数へリネームします:&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;wget https://raw.githubusercontent.com/XperiaBrickers/android_kernel_sony_sm8250/base/arch/arm64/configs/pdx206_defconfig
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;mv pdx206_defconfig config-sony-pdx206.aarch64&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;ol start="7"&gt;
&lt;li&gt;kernelソースコードをダウンロードし、チェックサムを生成します。APKBUILDファイルを変更した場合は必ずこのコマンドを実行します。&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;pmbootstrap checksum linux-sony-pdx206&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;ol start="8"&gt;
&lt;li&gt;コンパイル開始前に、kernelの設定ファイル(config)を編集します。kernel編集画面で左右キーを使ってExitへ移動し、Enterを押してkernel設定ファイルを保存します。&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;pmbootstrap kconfig edit&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;ol start="9"&gt;
&lt;li&gt;
&lt;p&gt;新しく移植する機種ではデフォルトで4つのpatchが追加されます。kconfigがcannot apply patchと表示した場合は、APKBUILDの&lt;code&gt;$config&lt;/code&gt;からpatchファイル名を削除します。&amp;ldquo;Please don&amp;rsquo;t include linux directly&amp;quot;が出た場合は、APKBUILDの先頭に&lt;code&gt;REPLACE_GCCH=0&lt;/code&gt;を追加します。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;もう一度チェックサムを生成し、kernel設定ファイルを編集します&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;pmbootstrap checksum linux-sony-pdx206
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;pmbootstrap kconfig edit&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;ol start="11"&gt;
&lt;li&gt;
&lt;p&gt;kernel編集画面で左右キーを使ってExitへ移動し、Enterを押してkernel設定ファイルを保存します。
&lt;figure&gt;
 &lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 alt=""
 src="https://i.postimg.cc/cCTCsBG4/2021-12-15-00-00-11.png"
 onerror="this.onerror=null;this.src='https://ivonblog.com/images/unable-to-load-the-image-pepe.webp'"
 &gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;次にpmbootstrapがkernelに不足している設定を確認し、その後黄色のWARNINGを表示します：&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;[&lt;/span&gt;12:15:36&lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;native&lt;span class="o"&gt;)&lt;/span&gt; generate checksums &lt;span class="k"&gt;for&lt;/span&gt; linux-sony-pdx206
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;[&lt;/span&gt;12:15:37&lt;span class="o"&gt;]&lt;/span&gt; WARNING: linux-sony-pdx206/config-sony-pdx206.aarch64: CONFIG_ANDROID_PARANOID_NETWORK should *not* be set. See &amp;lt;https://wiki.postmarketos.org/wiki/kconfig#CONFIG_ANDROID_PARANOID_NETWORK&amp;gt; &lt;span class="k"&gt;for&lt;/span&gt; details.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;[&lt;/span&gt;12:15:37&lt;span class="o"&gt;]&lt;/span&gt; WARNING: linux-sony-pdx206/config-sony-pdx206.aarch64: CONFIG_DEVTMPFS should be set. See &amp;lt;https://wiki.postmarketos.org/wiki/kconfig#CONFIG_DEVTMPFS&amp;gt; &lt;span class="k"&gt;for&lt;/span&gt; details.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;[&lt;/span&gt;12:15:37&lt;span class="o"&gt;]&lt;/span&gt; WARNING: linux-sony-pdx206/config-sony-pdx206.aarch64: CONFIG_SYSVIPC should be set. See &amp;lt;https://wiki.postmarketos.org/wiki/kconfig#CONFIG_SYSVIPC&amp;gt; &lt;span class="k"&gt;for&lt;/span&gt; details.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;[&lt;/span&gt;12:15:37&lt;span class="o"&gt;]&lt;/span&gt; WARNING: linux-sony-pdx206/config-sony-pdx206.aarch64: CONFIG_VT should be set. See &amp;lt;https://wiki.postmarketos.org/wiki/kconfig#CONFIG_VT&amp;gt; &lt;span class="k"&gt;for&lt;/span&gt; details.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;[&lt;/span&gt;12:15:37&lt;span class="o"&gt;]&lt;/span&gt; WARNING: linux-sony-pdx206/config-sony-pdx206.aarch64: CONFIG_USER_NS should be set. See &amp;lt;https://wiki.postmarketos.org/wiki/kconfig#CONFIG_USER_NS&amp;gt; &lt;span class="k"&gt;for&lt;/span&gt; details.&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;ol start="13"&gt;
&lt;li&gt;これらのWARNINGをコピーします。次にWARNING後ろのURLを開いてWikiでどの設定をオン・オフすべきか確認します。その後kernel編集画面を開き、それらを有効または無効にします（スペースキーで選択または選択解除）：&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;pmbootstrap kconfig edit&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;ol start="14"&gt;
&lt;li&gt;調整後、Exitで保存します。kernel設定ファイルがpostmarketOSの要件を満たしているか確認します。成功すると&lt;code&gt;kconfig check succeeded!&lt;/code&gt;が返ります。&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;pmbootstrap kconfig check&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 class="relative group"&gt;5. kernelをコンパイルする
 &lt;div id="5-kernelをコンパイルする" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#5-kernel%e3%82%92%e3%82%b3%e3%83%b3%e3%83%91%e3%82%a4%e3%83%ab%e3%81%99%e3%82%8b" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;次にkernelのコンパイルを開始します。これはおそらく一番長いステップです。コンパイル中は別の端末で&lt;code&gt;pmbootstrap log&lt;/code&gt;を実行してエラーメッセージを確認してください。&lt;/p&gt;
&lt;p&gt;pmbootstrapはAPKBUILDに書かれた手順に従ってkernelをコンパイルします。まず&lt;code&gt;#Sources&lt;/code&gt;のURLに従ってkernelソースコードをダウンロードし、次に&lt;code&gt;config-sony-pdx206.aarch64&lt;/code&gt;をkernelのconfigとして適用します。その後&lt;code&gt;build()&lt;/code&gt;ブロックのコマンドに従ってmakeを開始するため、ここに&lt;code&gt;make -j8&lt;/code&gt;を追加してコンパイル速度を上げることもできます。&lt;/p&gt;

&lt;h3 class="relative group"&gt;5.1. kernelのコンパイルを開始する
 &lt;div id="51--kernelのコンパイルを開始する" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#51--kernel%e3%81%ae%e3%82%b3%e3%83%b3%e3%83%91%e3%82%a4%e3%83%ab%e3%82%92%e9%96%8b%e5%a7%8b%e3%81%99%e3%82%8b" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;以下のコマンドを実行してコンパイルを開始します&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;pmbootstrap build linux-sony-pdx206
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# kernelのソースコードを自分で変更したい場合は、build時にsrcパラメータを追加し、自分で展開したファイルからコンパイルします:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;pmbootstrap build linux-sony-pdx206 --src&lt;span class="o"&gt;=&lt;/span&gt;/home/ivon/下載/android_kernel_sony_sm8250/&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;ol start="2"&gt;
&lt;li&gt;順調なら30分ほどでコンパイルが完了するはずです：&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&amp;gt;&amp;gt;&amp;gt; linux-sony-pdx206*: Tracing dependencies...
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&amp;gt;&amp;gt;&amp;gt; linux-sony-pdx206*: Package size: 55.0 MB
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&amp;gt;&amp;gt;&amp;gt; linux-sony-pdx206*: Compressing data...
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&amp;gt;&amp;gt;&amp;gt; linux-sony-pdx206*: Create checksum...
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&amp;gt;&amp;gt;&amp;gt; linux-sony-pdx206*: Create linux-sony-pdx206-4.19.195_p20220910214444-r0.apk
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&amp;gt;&amp;gt;&amp;gt; linux-sony-pdx206: Build &lt;span class="nb"&gt;complete&lt;/span&gt; at Sat, &lt;span class="m"&gt;10&lt;/span&gt; Sep &lt;span class="m"&gt;2022&lt;/span&gt; 14:03:42 +0000 elapsed &lt;span class="nb"&gt;time&lt;/span&gt; 0h 18m 58s
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&amp;gt;&amp;gt;&amp;gt; linux-sony-pdx206: Updating the pmos/aarch64 repository index...
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&amp;gt;&amp;gt;&amp;gt; linux-sony-pdx206: Signing the index...&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;しかし、たいてい物事はそんなに簡単ではありません。コンパイル中にerrorに遭遇すると停止します。この時は&lt;code&gt;pmbootstrap log&lt;/code&gt;または&lt;code&gt;~/.local/var/pmbootstrap/log.txt&lt;/code&gt;ファイルのエラーメッセージを見て、デバッグを始めます。&lt;/p&gt;

&lt;h3 class="relative group"&gt;5.2. デバッグ
 &lt;div id="52-デバッグ" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#52-%e3%83%87%e3%83%90%e3%83%83%e3%82%b0" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;p&gt;コンパイル時に出るwarningは先に無視して構いません。まず解決すべきなのはerrorです。&lt;/p&gt;
&lt;p&gt;試せる選択肢：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;grep&lt;/code&gt;コマンドで他のpostmarketOS機種から似たエラーメッセージを探し、そのpatchファイルをこのスマホのAPKBUILDへ追加します。&lt;code&gt;pmbootstrap checksum linux-sony-pdx206&lt;/code&gt;を実行した後、再度buildします。&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;grep -r &lt;span class="s1"&gt;&amp;#39;perf_trace_counters\.c&amp;#39;&lt;/span&gt; ~/.local/var/pmbootstrap/cache_git/pmaports/device/testing/&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;ol start="2"&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://wiki.postmarketos.org/wiki/Porting_to_a_new_device#Changing_compiler" target="_blank" rel="noreferrer"&gt;コンパイラを変更&lt;/a&gt;します。pmbootstrapはデフォルトで最新版GCCを使います。一部のAndroid kernelは旧版GCCでないとコンパイルできないことがあり、あるいはCLANGの使用を検討します。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;問題が少ない別のkernelソースコードへ変更します&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://matrix.to/#/%23porting:postmarketos.org" target="_blank" rel="noreferrer"&gt;postmarketOSのMatrixチャンネル&lt;/a&gt;で支援を求めます。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 class="relative group"&gt;6. 機種パラメータを設定し、機種専用パッケージをコンパイルする
 &lt;div id="6--機種パラメータを設定し機種専用パッケージをコンパイルする" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#6--%e6%a9%9f%e7%a8%ae%e3%83%91%e3%83%a9%e3%83%a1%e3%83%bc%e3%82%bf%e3%82%92%e8%a8%ad%e5%ae%9a%e3%81%97%e6%a9%9f%e7%a8%ae%e5%b0%82%e7%94%a8%e3%83%91%e3%83%83%e3%82%b1%e3%83%bc%e3%82%b8%e3%82%92%e3%82%b3%e3%83%b3%e3%83%91%e3%82%a4%e3%83%ab%e3%81%99%e3%82%8b" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;このステップでは、その機種専用パッケージ(device specific package)を設定・コンパイルします。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;kernelのコンパイルに成功したら、機種パッケージのディレクトリへ切り替えます：&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; /home/&lt;span class="nv"&gt;$USER&lt;/span&gt;/.local/var/pmbootstrap/cache_git/pmaports/device/testing/device-sony-pdx206&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;ol start="2"&gt;
&lt;li&gt;この時点で、pmbootstrapにもう一度boot.imgの起動パラメータを解析させ、結果を&lt;code&gt;deviceinfo&lt;/code&gt;へ追加できます。&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;pmbootstrap bootimg_analyze /home/ivon/下載/Evo/extracted_20220826_113410/boot.img&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;ol start="2"&gt;
&lt;li&gt;&lt;code&gt;deviceinfo&lt;/code&gt;を編集し、画面解像度を設定します：&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;deviceinfo_screen_width&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;1080&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;deviceinfo_screen_height&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;2520&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;ol start="3"&gt;
&lt;li&gt;
&lt;p&gt;postmarketOS Wiki上のsony-pdx206の説明によると、Sonyのソフトウェア実装には問題があり、UFSを有効にするとbootloaderが消去されます。そのためrootfsはスマホへ焼き込みません。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;もう一度ファイルに問題がないか確認し、機種専用パッケージをコンパイルします：&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;pmbootstrap checksum device-sony-pdx206
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;pmbootstrap build device-sony-pdx206&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;これでSony Xperia 5 II専用のpostmarketOS kernelと機種パッケージが作成できました。次にインストールファイルを作成します。&lt;/p&gt;

&lt;h2 class="relative group"&gt;7. スマホへ焼き込む
 &lt;div id="7--スマホへ焼き込む" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#7--%e3%82%b9%e3%83%9e%e3%83%9b%e3%81%b8%e7%84%bc%e3%81%8d%e8%be%bc%e3%82%80" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;postmarketOSインストールファイルを作成します。約10分です。途中でユーザーパスワードの作成を求められます。&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;pmbootstrap install&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;ol start="2"&gt;
&lt;li&gt;UFSが使えないため、インストールファイルはスマホのSDカードへ焼き込むしかありません：&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;pmbootstrap install --sdcard&lt;span class="o"&gt;=&lt;/span&gt;/dev/sdX&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;ol start="3"&gt;
&lt;li&gt;スマホをfastbootモードに入れ、kernelから起動します。&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;pmbootstrap flasher boot
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 上述のSonyソフトウェア側の理由により、本当にスマホのbootパーティションへ焼き込みたい場合を除き、このコマンドは使わないでください&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;pmbootstrap flasher flash_kernel&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;ol start="4"&gt;
&lt;li&gt;PC上のpmbootstrapを終了します：&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;pmbootstrap shutdown&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 class="relative group"&gt;8. 結果
 &lt;div id="8--結果" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#8--%e7%b5%90%e6%9e%9c" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;画面に何も表示されない場合でも、USBでPCへ接続し、sshでスマホへ接続してシステムに入れるか確認できます。&lt;/p&gt;
&lt;p&gt;結果、このSonyはやはり画面が出ませんでした。&lt;/p&gt;
&lt;p&gt;デスクトップに入れるなら、Gitlabでmergeを提出し、成果画像をWikiに載せましょう。&lt;/p&gt;
&lt;p&gt;次のステップはdownstream kernelをmainline kernelへ変更することです。純正のAndroid kernelは通常downstream kernelで、追加patchとクローズドなfirmwareが大量にあります。kernelをmainline kernelへ置き換えてこそ、postmarketOSの究極目標に合います。&lt;/p&gt;</content:encoded></item></channel></rss>