1.はじめに
公式のDeveloper Kitでは、Ubuntuが18.04で既にサポートが終了しております。
Ubuntuを20.04にすることで、少しでも延命したいと思います。
2.参照先
USBから起動
18.04から20.04
https://qiita.com/Manyan3/items/c1d583dbfef443536cef
https://qengineering.eu/install-ubuntu-20.04-on-jetson-nano.html
3.準備する物
Jetson Nano
MicroSD(32GB以上)
モニタ、キーボード、マウス
MicroSDでUpgradeすると大変時間が掛かるため、私はUSB-SSD上で行ってます。
4.MicroSDの作成
DL
Jetson Download Centerから、「Jetson Nano Developer Kit SD Card Image」をDLします。
MicroSDに焼く
詳細は割愛します。私は「BalenaEtcher」で焼きました。
5.起動
Jetson Nano Developer Kit SD Card ImageのMicroSDをJetson Nanoに挿して起動します。
User、Password、言語等の設定をします。
以下、起動後の画面になります。
6.MicroSDからUSB-SSDへ
2.参照先の「USBから起動」の通り実行します。
7.不要アプリの削除
USB-SSDから起動ができましたら、不要アプリの削除を行います。
必須削除
chromium-browser
sudo apt purge chromium-browser chromium-browser-l10n chromium-codecs-ffmpeg-extra
任意削除
私は「libreoffice」と「thunderbird」を削除しました。
sudo apt purge libreoffice* thunderbird*
sudo apt clean
sudo apt autoremove
8.18.04のUpdate
(注意)ここのUpdateが上手くいかないと、20.04に上げても起動しなくなります。
必ず、Updateしてエラーが無い状態にします。
update
sudo apt update
***********
(省略)
***********
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
アップグレードできるパッケージが 318 個あります。表示するには 'apt list --upgradable' を実行してください。
結構な量があります(笑)
sudo apt upgrade
***********
(省略)
***********
アップグレード: 317 個、新規インストール: 6 個、削除: 0 個、保留: 1 個。
666 MB のアーカイブを取得する必要があります。
この操作後に 4,080 kB のディスク容量が解放されます。
続行しますか? [Y/n] Y ←「Y」入力しEnter
***********
(省略)
***********
設定ファイル '/etc/ld.so.conf.d/nvidia-tegra.conf'
==> これはインストールしてから (あなたかスクリプトによって) 変更されています。
==> パッケージ配布元が更新版を提供しています。
どうしますか? 以下の選択肢があります:
Y か I : パッケージメンテナのバージョンをインストールする
N か O : 現在インストールされている自分のバージョンを残す
D : 両バージョンの差異を表示する
Z : 状況を調査するためにシェルを開始する
デフォルトでは現在使っている自分のバージョンを残します。
*** nvidia-tegra.conf (Y/I/N/O/D/Z) [デフォルト=N] ? Y ← 「Y」入力しEnter
***********
(省略)
***********
設定ファイル '/etc/systemd/nv-oem-config-post.sh'
==> これはインストールしてから (あなたかスクリプトによって) 削除されています。
==> パッケージ配布元が更新版を提供しています。
どうしますか? 以下の選択肢があります:
Y か I : パッケージメンテナのバージョンをインストールする
N か O : 現在インストールされている自分のバージョンを残す
D : 両バージョンの差異を表示する
Z : 状況を調査するためにシェルを開始する
デフォルトでは現在使っている自分のバージョンを残します。
*** nv-oem-config-post.sh (Y/I/N/O/D/Z) [デフォルト=N] ? Y ← 「Y」入力しEnter
***********
(省略)
***********
lqqqqqqqqqqqqqqqqqqqqqqqqu Configuring docker.io tqqqqqqqqqqqqqqqqqqqqqqqqqk
x x
x If Docker is upgraded without restarting the Docker daemon, Docker will x
x often have trouble starting new containers, and in some cases even x
x maintaining the containers it is currently running. See x
x https://launchpad.net/bugs/1658691 for an example of this breakage. x
x x
x Normally, upgrading the package would simply restart the associated x
x daemon(s). In the case of the Docker daemon, that would also imply x
x stopping all running containers (which will only be restarted if x
x they're part of a "service", have an appropriate restart policy x
x configured, or have some other means of being restarted such as an x
x external systemd unit). x
x x
x Automatically restart Docker daemon? x
x x
x <Yes> <No> x
x x
mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj
<No>を選択
***********
(省略)
***********
nvidia-l4t-kernel (4.9.337-tegra-32.7.4-20230608212426) のトリガを処理しています ...
処理中にエラーが発生しました:
nvidia-l4t-bootloader
nvidia-l4t-xusb-firmware
nvidia-l4t-initrd
E: Sub-process /usr/bin/dpkg returned an error code (1)
ここでエラーが出力します。
このエラーを放置したまま20.04にすると起動しなくなります(経験済み)
下記のコマンドを実行します。
sudo mv /var/lib/dpkg/info/ /var/lib/dpkg/backup/
sudo mkdir /var/lib/dpkg/info/
sudo apt update
sudo apt -f install
sudo mv /var/lib/dpkg/info/* /var/lib/dpkg/backup/
sudo rm -rf /var/lib/dpkg/info
sudo mv /var/lib/dpkg/backup/ /var/lib/dpkg/info/
sudo apt install nvidia-l4t-bootloader
sudo apt install nvidia-l4t-xusb-firmware
sudo apt install nvidia-l4t-initrd
またUpdate確認をします。
sudo apt update && sudo apt -y upgrade && sudo apt -y dist-upgrade && sudo apt -y autoremove -y
上記を実行して、エラーの表示がありませんでしたので、1度再起動します。
sudo reboot
問題無く起動できることを確認します。
18.04から20.04へ
前準備
2.参照先のUSBから起動にある
https://qiita.com/kitazaki/items/cb87be80a760184513dc
を参照してください。
参照するのは、
・release-upgradesの編集
・prompt=normal と書き換え保存します。
・編集後に以下の通り実行
です。
20.04へUpgrade
下記の通り入力します。
sudo do-release-upgrade
***********
(省略)
***********
パッケージリストを読み込んでいます... Done
依存関係ツリーを作成しています
状態情報を読み取っています... Done
No snaps are installed yet. Try 'snap install hello-world'.
Checking for installed snaps
Calculating snap size requirements
リポジトリ情報のアップデート
サードパーティが提供するリポジトリを使わない設定にしました
sources.list にあるサードパーティが提供するリポジトリを使わない設定にしました。>アップグレード完了後、'ソフトウェアソース'
ツールもしくはパッケージマネージャーを使って再び利用可能な設定にすることができま
す。
続けるには [ENTER] キーを押してください ←(Enter)
***********
(省略)
***********
アップグレードを開始しますか?
25 個のインストール済みパッケージは Canonical
によってサポートされなくなりました。ただしコミュニティからのサポートは受けること
ができます。
37 個のパッケージが削除されます。 605 個の新規パッケージがインストールされます。
1747
個のパッケージがアップグレードされます。
合計 1,232 M をダウンロードする必要があります。 このダウンロードは約 4 分 かかり
ます。
アップグレードをインストールするのに数時間かかることがあります。ダウンロードが完
了してしまうと、処理はキャンセルできません。
続行する[yN] 詳細 [d] y ← 「y」入力してEnter
Lock screen disabled
Your lock screen has been disabled and will remain disabled until you
reboot.
続けるには [ENTER] キーを押してください ← Enter
***********
(省略)
***********
キーボード、キーボードのレイアウトの選択は、japaneseにしました
***********
(省略)
***********
configuring gdm3はOKを選択
configuring gdm3でgdm3を選択
***********
(省略)
***********
Automatically restart Docker daemon?
は<No>を選択しました
***********
(省略)
***********
設定ファイル '/etc/X11/app-defaults/XScreenSaver-nogl'
==> これはインストールしてから (あなたかスクリプトによって) 変更されています。
==> パッケージ配布元が更新版を提供しています。
どうしますか? 以下の選択肢があります:
Y か I : パッケージメンテナのバージョンをインストールする
N か O : 現在インストールされている自分のバージョンを残す
D : 両バージョンの差異を表示する
Z : 状況を調査するためにシェルを開始する
デフォルトでは現在使っている自分のバージョンを残します。
*** XScreenSaver-nogl (Y/I/N/O/D/Z) [デフォルト=N] ? N ← 「N」を入力してEnter
***********
(省略)
***********
設定ファイル '/etc/update-manager/release-upgrades'
==> これはインストールしてから (あなたかスクリプトによって) 変更されています。
==> パッケージ配布元が更新版を提供しています。
どうしますか? 以下の選択肢があります:
Y か I : パッケージメンテナのバージョンをインストールする
N か O : 現在インストールされている自分のバージョンを残す
D : 両バージョンの差異を表示する
Z : 状況を調査するためにシェルを開始する
デフォルトでは現在使っている自分のバージョンを残します。
*** release-upgrades (Y/I/N/O/D/Z) [デフォルト=N] ? N ← 「N」を入力してEnter
***********
(省略)
***********
設定ファイル '/etc/update-motd.d/91-release-upgrade'
==> これはインストールしてから (あなたかスクリプトによって) 削除されています。
==> パッケージ配布元が更新版を提供しています。
どうしますか? 以下の選択肢があります:
Y か I : パッケージメンテナのバージョンをインストールする
N か O : 現在インストールされている自分のバージョンを残す
D : 両バージョンの差異を表示する
Z : 状況を調査するためにシェルを開始する
デフォルトでは現在使っている自分のバージョンを残します。
*** 91-release-upgrade (Y/I/N/O/D/Z) [デフォルト=N] ? N ← 「N」を入力してEnter
***********
(省略)
***********
設定ファイル '/etc/xdg/autostart/blueman.desktop'
==> これはインストールしてから (あなたかスクリプトによって) 変更されています。
==> パッケージ配布元が更新版を提供しています。
どうしますか? 以下の選択肢があります:
Y か I : パッケージメンテナのバージョンをインストールする
N か O : 現在インストールされている自分のバージョンを残す
D : 両バージョンの差異を表示する
Z : 状況を調査するためにシェルを開始する
デフォルトでは現在使っている自分のバージョンを残します。
*** blueman.desktop (Y/I/N/O/D/Z) [デフォルト=N] ? N ← 「N」を入力してEnter
***********
(省略)
***********
設定ファイル '/etc/xdg/autostart/clipit-startup.desktop'
==> これはインストールしてから (あなたかスクリプトによって) 変更されています。
==> パッケージ配布元が更新版を提供しています。
どうしますか? 以下の選択肢があります:
Y か I : パッケージメンテナのバージョンをインストールする
N か O : 現在インストールされている自分のバージョンを残す
D : 両バージョンの差異を表示する
Z : 状況を調査するためにシェルを開始する
デフォルトでは現在使っている自分のバージョンを残します。
*** clipit-startup.desktop (Y/I/N/O/D/Z) [デフォルト=N] ? N ← 「N」を入力してEnter
***********
(省略)
***********
設定ファイル '/etc/gdm3/custom.conf'
==> これはインストールしてから (あなたかスクリプトによって) 変更されています。
==> パッケージ配布元が更新版を提供しています。
どうしますか? 以下の選択肢があります:
Y か I : パッケージメンテナのバージョンをインストールする
N か O : 現在インストールされている自分のバージョンを残す
D : 両バージョンの差異を表示する
Z : 状況を調査するためにシェルを開始する
デフォルトでは現在使っている自分のバージョンを残します。
*** custom.conf (Y/I/N/O/D/Z) [デフォルト=N] ?N ← 「N」を入力してEnter
***********
(省略)
***********
古いソフトウェアを検索しています
状態情報を読み取っています... Done
サポートが中止された(あるいはリポジトリに存在しない)パッケージを削除しますか?
136 個のパッケージが削除されます。 3 個の新規パッケージがインストールされます。
アップグレードの取得とインストールには数時間かかることがあります。ダウンロードが
完了してしまうと、処理はキャンセルできません。
続行する[yN] 詳細 [d] y ← 「y」を入力してEnter
***********
(省略)
***********
システムのアップグレードが完了しました。
再起動が必要です
アップグレードを完了するには再起動が必要です。
'Y' を選択すると再起動します。
続行する[yN] N ← 「N」を入力してEnter(重要)
注意
最後に再起動は絶対にしないようにしてください。
9.Upgrade後の処理
2.参照先の18.04から20.04
https://qiita.com/Manyan3/items/c1d583dbfef443536cef
を参照してください。
参照するのは、
・prompt=normal を元に戻します(必須)
の前後の
sudo vi /etc/update-manager/release-upgrades
prompt=never
です。
10.再起動
sudo reboot
11.後処理
icd.dを削除します。
sudo rm -rf /usr/share/vulkan/icd.d
Updateします。
sudo apt update && sudo apt -y upgrade && sudo apt -y dist-upgrade && sudo apt -y autoremove
循環シンボリックリンクを削除します。
sudo rm /usr/share/applications/vpi1_demos
トップバーの歪んだnvidiaロゴを削除します
cd /usr/share/nvpmodel_indicator
sudo mv nv_logo.svg no_logo.svg
最後の再起動
sudo reboot
12. 20.04になっているか確認
lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04.6 LTS
Release: 20.04
Codename: focal
13.まとめ
Ubuntuを20.04にすることで、2025年4月までサポートされます。
14.追記
コメントのOpenSSLについて確認しました。
$ openssl version
OpenSSL 1.1.1f 31 Mar 2020
と表示しました。
https://www.openssl.org/policies/releasestrat.html
を拝見しますと、
Version 1.1.1 will be supported until 2023-09-11 (LTS).
の記載がありました。
15. OpenSSLのUpdate
DL
下記より、
https://www.openssl.org/source/
openssl-3.1.1.tar.gz (SHA256) (PGP sign) (SHA1)
をDLします。
解凍
DLしたディレクトリに移動して解凍します。
tar -zxvf openssl-3.1.1.tar.gz
解凍すると、
openssl-3.1.1
のディレクトリが出来ます。
Build&Install
解凍したディレクトリに入ります
cd openssl-3.1.1
buildします。
sudo ./config
(省略)
sudo make
(省略)
sudo make install
古いOpenSSLを退避
cd /usr/bin
sudo mv openssl openssl.org
buildしたOpenSSLを設定
ln -s /usr/local/bin/openssl
ldconfig
sudo ldconfig /usr/local/lib/
OpenSSLのversion確認
openssl version
OpenSSL 3.1.1 30 May 2023 (Library: OpenSSL 3.1.1 30 May 2023)
一応、これでOpenSSLを上げることができました。
OpenSSLの参照先
https://www.trusted-design.net/archives/933/
こちらを参考にさせていただきました。