<?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>Raspberry Pi on Ivon's Blog</title><link>https://ivonblog.com/ja-jp/tags/raspberry-pi/</link><description>Recent content in Raspberry Pi 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>Fri, 22 Mar 2024 23:00:00 +0800</lastBuildDate><atom:link href="https://ivonblog.com/ja-jp/tags/raspberry-pi/index.xml" rel="self" type="application/rss+xml"/><follow_challenge><feedId>56005902658351104</feedId><userId>1132431067563556864</userId></follow_challenge><item><title>PinePhoneをRaspberry Piのように使い、Linuxサーバーを構築する</title><link>https://ivonblog.com/ja-jp/posts/turning-pinephone-into-a-server/</link><pubDate>Fri, 22 Mar 2024 23:00:00 +0800</pubDate><author>infoivonblog.nkfjt@aleeas.com (Ivon Huang)</author><guid>https://ivonblog.com/ja-jp/posts/turning-pinephone-into-a-server/</guid><description>&lt;!-- Co-translated by ChatGPT --&gt;
&lt;p&gt;Turning PinePhone into a Linux server like Raspberry Pi.&lt;/p&gt;
&lt;p&gt;Linuxスマホ「PinePhone」を、Raspberry PiもどきのLinuxサーバーにします。&lt;/p&gt;
&lt;p&gt;これは台湾の小さいエッグロールではありません。アメリカの大きいスマホです。
&lt;figure&gt;
 &lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 alt=""
 src="https://static.ivonblog.com/posts/turning-pinephone-into-a-server/images/20240322_211522.webp"
 onerror="this.onerror=null;this.src='https://ivonblog.com/images/unable-to-load-the-image-pepe.webp'"
 &gt;&lt;/figure&gt;
&lt;/p&gt;</description><content:encoded>&lt;!-- Co-translated by ChatGPT --&gt;
&lt;p&gt;Turning PinePhone into a Linux server like Raspberry Pi.&lt;/p&gt;
&lt;p&gt;Linuxスマホ「PinePhone」を、Raspberry PiもどきのLinuxサーバーにします。&lt;/p&gt;
&lt;p&gt;これは台湾の小さいエッグロールではありません。アメリカの大きいスマホです。
&lt;figure&gt;
 &lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 alt=""
 src="https://static.ivonblog.com/posts/turning-pinephone-into-a-server/images/20240322_211522.webp"
 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;p&gt;2019年に発表された無印版PinePhoneは、私が&lt;a href="https://ivonblog.com/ja-jp/posts/pine64-pinephone-review/" target="_blank" rel="noreferrer"&gt;買って開封レビュー&lt;/a&gt;してからもう2年経ちました。当時買って実際に数か月手元で使ったあと、引き出しにしまって保管していました。Wifiチップが勝手に焼け死んだからです。4Gをオンにしただけで軽く50度まで上がるスマホは、ポケットに入れて持ち歩くには本当に向いていません。&lt;/p&gt;
&lt;p&gt;現在、PinePhoneのカーネルは特製版の&lt;code&gt;kernel-megi&lt;/code&gt;からメインラインの&lt;code&gt;linux-sunxi&lt;/code&gt;へ変わりました。開発者はこのボード系列を統一したようで、同じボードのデバイスならメインラインLinuxカーネルを動かせるようになっています。&lt;/p&gt;
&lt;p&gt;開発者の努力に感謝します。postmarketOSとMobianはいずれもlinux-sunxiカーネルを使っているので、PinePhoneのハードウェア面の開発は「完了」したと見てもよさそうです。開発過程は険しかったものの、postmarketOS、Mobian、Ubuntu touchは今でもPinePhoneをサポートしています。一方でArch Linux ARMは更新を諦めました。&lt;/p&gt;
&lt;p&gt;私はすでに&lt;a href="https://ivonblog.com/ja-jp/posts/pine64-pinetab2-review" target="_blank" rel="noreferrer"&gt;PineTab 2を新しいメインデバイスとして買った&lt;/a&gt;ので、PinePhoneの出番はほぼありません。PineTab 2のRK3566プロセッサも遅いとはいえ、少なくともPineTab 2には大きい画面があり、電子書籍を読むくらいはできます。&lt;/p&gt;
&lt;p&gt;塵は塵に、土は土に。今x86マシン上で動かしているself-hostingサービスを置き換えるためにRaspberry Pi 5を買おうかと思ったこともありますが、まずは廃物利用してみます。もともと開発ボードを改造したようなPinePhoneスマホを、開発ボードの用途へ戻すわけです。&lt;/p&gt;
&lt;p&gt;PinePhoneと一般的なARM開発ボードの違いは、バッテリー、カメラ、センサーが増えている一方で、I/Oポートが不足しており、GPIOピンもない点です。Android TVシステムを書いている人もいないので、テレビボックスにするのはまず無理です。となると、PinePhoneに残された道はサーバー用途くらいです。&lt;/p&gt;
&lt;p&gt;なぜ&lt;a href="https://ivonblog.com/ja-jp/posts/postmarketos-general-installation/" target="_blank" rel="noreferrer"&gt;postmarketOS&lt;/a&gt;を動かせる、もっと高性能な古いAndroidスマホを使わないのか？PinePhoneのようにハードウェアドライバーが全面的にLinuxでサポートされている端末なんてないからです&amp;hellip;特にUSB周り。&lt;/p&gt;
&lt;p&gt;ネット上の資料によると、PinePhoneのAllwinner A64プロセッサの性能はRaspberry Pi 4のBroadcom BCM2711の半分程度しかありません。ただし少なくともRaspberry Pi 3のBroadcom BCM2837よりは少し良いので、まだ使い道はあります。&lt;/p&gt;
&lt;p&gt;何を動かせるのか？&lt;/p&gt;
&lt;p&gt;Dockerで&lt;a href="https://ivonblog.com/posts/nextcloud-docker/" target="_blank" rel="noreferrer"&gt;Nextclouldファイルサーバー&lt;/a&gt;、&lt;a href="https://ivonblog.com/posts/immich-setup/" target="_blank" rel="noreferrer"&gt;Immich写真クラウド&lt;/a&gt;、Sonarr BTトレントダウンロードサービスを動かすくらいなら、まあ何とかなります。貧者版NASです。ただし&lt;a href="https://ivonblog.com/posts/self-hosting-jellyfin/" target="_blank" rel="noreferrer"&gt;Jellyfin動画ストリーミング&lt;/a&gt;は無理です。PinePhoneはサーバー側での1080pデコードがとても遅い。動画再生をしたいなら、SAMBAサーバー方式でストリーミングし、再生側で動画をデコードさせるしかありません。
&lt;figure&gt;
 &lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 alt=""
 src="https://static.ivonblog.com/posts/turning-pinephone-into-a-server/images/screenshot_20240322_224823.webp"
 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;p&gt;PinePhoneはPiHoleを動かして広告ブロックにも使えます。ネットワークカードを2枚用意すれば、簡単なルーターにもできます。あるいはVPNの入口として使う手もあります（ただし私はTailScaleやZeroTierを使うことが多く、家庭用VPNは実際あまり必要ありません）。PinePhoneは結局のところ開発ボード改造品なので、消費電力は低く、24時間稼働でも問題ないはずです。&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-%e7%92%b0%e5%a2%83" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;システム：Mobian (Debian Trixie)&lt;/li&gt;
&lt;li&gt;スマホ：Pine64 PinePhone&lt;/li&gt;
&lt;li&gt;アクセサリ：USB拡張ポート、外付けHDDケースx1、HDDx1、microSDカードx1、USB Wifi兼Bluetoothネットワークカードx1、鉄の箱1つ&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これが最終形です。装置一式を鉄の箱に入れています。これなら燃えても周囲に被害が及ばないでしょう（？）。
&lt;figure&gt;
 &lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 alt=""
 src="https://static.ivonblog.com/posts/turning-pinephone-into-a-server/images/20240322_211522.webp"
 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;p&gt;画像のとおり、PinePhoneの下にあるのは外付けHDDで、USB経由で接続しています。PinePhoneはさらにUSB拡張ポート経由でWifi、イーサネット、充電ケーブルへ接続します。
&lt;figure&gt;
 &lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 alt=""
 src="https://static.ivonblog.com/posts/turning-pinephone-into-a-server/images/20240322_192703.webp"
 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;p&gt;PinePhone内蔵eMMCは不良セクタがある疑いがあるため、システムはSDカードへインストールし、重要データは外付けHDDへ置くしかありませんでした。&lt;/p&gt;
&lt;p&gt;この構成はまだ改善が必要です。小米のキューブ型電源タップでも買って中の電源をまとめて管理し、電源オンオフしやすい延長ケーブルのボタンを設計するかもしれません。&lt;/p&gt;

&lt;h2 class="relative group"&gt;2. 先にシステムを再インストール
 &lt;div id="2-先にシステムを再インストール" 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-%e5%85%88%e3%81%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e3%82%92%e5%86%8d%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;システムを入れる目的は、ハードウェアが正常かどうか確認することです。&lt;/p&gt;
&lt;p&gt;システムはMobianを選びます。Debian Testingブランチベースで開発されており、現在はTrixieです。&lt;/p&gt;
&lt;p&gt;&lt;a href="https://ivonblog.com/ja-jp/posts/pinephone-os-installation/" target="_blank" rel="noreferrer"&gt;PinePhoneシステムインストール手順&lt;/a&gt;を参考に、先に&lt;a href="https://ivonblog.com/ja-jp/posts/pinephone-tow-boot/" target="_blank" rel="noreferrer"&gt;Tow-Boot&lt;/a&gt;を入れてから、&lt;a href="https://wiki.debian.org/Mobian" target="_blank" rel="noreferrer"&gt;Mobianイメージ&lt;/a&gt;をSDカードへ書き込みます。&lt;/p&gt;
&lt;p&gt;私はSSHのリモートログインとPhoshグラフィカル環境を併用してシステムを設定しました。UARTを使ってもよいですが、別途アダプターを買う必要があります（PinePhoneのUARTはスマホのイヤホンジャック部分にあります）。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;起動後、Phoshのグラフィカル画面に入り、システム設定で自動消灯モードをオフにします。さらに&lt;code&gt;~/.bashrc&lt;/code&gt;へ追加して、サスペンドを防ぎます&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight-wrapper"&gt;&lt;pre tabindex="0"&gt;&lt;code class="language-bsh" data-lang="bsh"&gt;if [[ -n $SSH_CONNECTION ]]; then
 sh -c &amp;#34;gnome-session-inhibit --inhibit suspend --reason \&amp;#34;SSH connection active\&amp;#34; --inhibit-only &amp;gt; /dev/null 2&amp;gt;&amp;amp;1 &amp;amp;&amp;#34;
fi&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;ol start="2"&gt;
&lt;li&gt;
&lt;p&gt;ほとんどの場合はSSHでリモートアクセスし、nmcliで固定IPを設定します。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Debianは自由ソフトウェアのディストリビューションなので、LinuxメインラインカーネルがサポートするMT7601 Wifiドライバーを読み込むには、&lt;code&gt;linux-firmware-nonfree&lt;/code&gt;パッケージをインストールする必要があります。その他の未対応Wifiは、自分でDKMSを使ってドライバーをビルド、インストールします。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;ip addr&lt;/code&gt;でWifiデバイスを一覧表示します&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Wfiiと起動時の自動接続を設定&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;sudo nmcli dev wifi connect &lt;span class="s2"&gt;&amp;#34;SSID&amp;#34;&lt;/span&gt; password &lt;span class="s2"&gt;&amp;#34;password&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo nmcli device &lt;span class="nb"&gt;set&lt;/span&gt; wlan0 autoconnect yes&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;ファイアウォールとSSHサービスを設定&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 openssh-server ufw
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo systemctl &lt;span class="nb"&gt;enable&lt;/span&gt; ssh
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo ufw &lt;span class="nb"&gt;enable&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo ufw allow ssh
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo ufw reload&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;システムを入れ終わったらPinePhoneをシャットダウンし、ハードウェア改造を始めます。&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 shutdown now&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&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-%e3%82%b5%e3%83%bc%e3%83%90%e3%83%bc%e5%90%91%e3%81%91%e3%81%ae%e3%83%8f%e3%83%bc%e3%83%89%e3%82%a6%e3%82%a7%e3%82%a2%e6%94%b9%e9%80%a0" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;PinePhoneの筐体はドライバーで分解できます。理論上は画面と外装を外し、基板部分を露出させて自分で箱を探して入れることもできますが、私は手先が不器用なので、今のところそこまでする気はありません。&lt;/p&gt;
&lt;p&gt;プラスチックの背面カバーだけを外し、画面は土台として残して、メインボード全体を露出させます。背面カバーを外したら、プラスチックケースに貼り付いているスピーカー部品を忘れずに戻します。
&lt;figure&gt;
 &lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 alt=""
 src="https://static.ivonblog.com/posts/turning-pinephone-into-a-server/images/20240322_190519.webp"
 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;p&gt;フレームを外している途中、プラスチックケースが劣化していて&amp;hellip;折れました
&lt;figure&gt;
 &lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 alt=""
 src="https://static.ivonblog.com/posts/turning-pinephone-into-a-server/images/20240322_211334.webp"
 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;p&gt;電源ボタンを押しやすくするため（Tow-BootではSDカードから起動するのに音量キーを手動で押す必要があります）、音量キーのモジュールをこじ開け、平らに寝かせます。
&lt;figure&gt;
 &lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 alt=""
 src="https://static.ivonblog.com/posts/turning-pinephone-into-a-server/images/20240322_191303.webp"
 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;p&gt;PinePhoneは起動にバッテリーが必要です。これはどうしようもありません。自作コンデンサでも用意しない限り無理です。ここではバッテリーを安価なUPSシステムとして扱い、充電上限はソフトウェアで制御します。&lt;/p&gt;
&lt;p&gt;次は4Gモジュール部分です。スマホとして使わないなら、この物体は基本的に不要なので、PinePhone設計のKill Switchを利用してオフにしました。金属部分は放熱板として残します。&lt;/p&gt;
&lt;p&gt;PinePhoneは画面が点いているだけで余計に発熱し、サーバー運用では画面も不要なので、画面を外します。下図を参考に、バッテリー上のこのケーブルを外せば、画面へ信号が出力されなくなります。
&lt;figure&gt;
 &lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 alt=""
 src="https://static.ivonblog.com/posts/turning-pinephone-into-a-server/images/20240322_190318.webp"
 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;p&gt;PinePhoneの待機時はだいたい40 ~ 50度前後、稼働時は約60度です。温度を抑えられない場合はUSBファンを買う必要があります。&lt;/p&gt;

&lt;h2 class="relative group"&gt;4. 後続のサービスインストール
 &lt;div id="4-後続のサービスインストール" 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-%e5%be%8c%e7%b6%9a%e3%81%ae%e3%82%b5%e3%83%bc%e3%83%93%e3%82%b9%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;テストによると、PinePhoneは画面が点いているだけで発熱するため、システムを入れ終わったらデスクトップ環境Phoshサービスを止めます。&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 systemctl disable phosh&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;バッテリー充電上限を80%に設定&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;echo&lt;/span&gt; &lt;span class="m"&gt;80&lt;/span&gt; &amp;gt; /sys/class/power_supply/axp20x-battery
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;/charge_control_end_threshold&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;Debian TestingのDockerには公式パッケージリポジトリのサポートがないため、Debianのパッケージリポジトリから入れるしかありません&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 docker.io docker-compose&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;画面なしではLEDとHDDアクセスランプでシステムが正常に起動したか判断するしかないため、起動サービスを作り、システムサービス起動後にPinePhoneのLEDを青く点灯させます。&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;cat &lt;span class="s"&gt;&amp;lt;&amp;lt;EOF &amp;gt; /etc/systemd/system/bootled.service
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;[Unit]
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;Description=Booting LED service
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;[Service]
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;ExecStart=/bin/bash -c &amp;#34;/usr/bin/echo 1 &amp;gt; /sys/class/leds/blue:indicator/brightness&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;[Install]
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;WantedBy=multi-user.target
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;EOF&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&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="m"&gt;1&lt;/span&gt; &amp;gt; &lt;span class="s1"&gt;&amp;#39;/sys/class/leds/blue:indicator/brightness&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo systemctl daemon-reload
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo systemctl &lt;span class="nb"&gt;enable&lt;/span&gt; bootled.service&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;
&lt;p&gt;一時的にグラフィカル画面が必要な場合、ハードウェア画面を挿さないならTigerVNCサーバーでも用意してからデスクトップ環境を起動します。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;外付けHDDをEXT4でフォーマットし、起動時に自動マウントするよう設定します。&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;# HDDのデバイス名を探す&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;lsblk
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# HDDをパーティション分割し、GPTパーティションを新規作成&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo fdisk /dev/sdb
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;g
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;n
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;w
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;q
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;mkfs.ext4 /dev/sdb1
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo mkdir /run/media
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo mkdir /run/media/mobian/HDD
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# HDDのUUIDを一覧表示&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo blkid
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;su
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&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;UUID=&amp;#34;uuid&amp;#34; /run/media/mobian/HDD ext4 defaults,rw 0 1&amp;#39;&lt;/span&gt; &amp;gt;&amp;gt; /etc/fstab&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 class="relative group"&gt;参考資料
 &lt;div id="参考資料" 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="#%e5%8f%82%e8%80%83%e8%b3%87%e6%96%99" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://xnux.eu/devices/feature/leds-pp.html" target="_blank" rel="noreferrer"&gt;PinePhone LEDs - xnux.eu&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.mobian.org/posts/2023/09/30/paperweight-dilemma/" target="_blank" rel="noreferrer"&gt;The Paperweight Dilemma - Mobian&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://wiki.pine64.org/index.php/PinePhone" target="_blank" rel="noreferrer"&gt;PinePhone - Pine64 Wiki&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content:encoded><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://ivonblog.com/ja-jp/posts/turning-pinephone-into-a-server/featured.webp"/></item></channel></rss>