JetPackのUbuntuを20.04にアップしてみる

#目次
[1.はじめに](#1-はじめに)
[2.Ubuntuをアップグレード](#2-ubuntuをアップグレード)
[3.アップグレードしたJetPack](#3-アップグレードしたjetpack)
[4.おわりに](#4-おわりに)

# 1. はじめに

* ただの社内対策。〇〇の権威や指示への備え(/・ω・)/
     * アドリブ用ってことですね。
     * ROS2 FoxyがUbuntu20.04でないとサポートされない。
     

:::note warn
要注意
* 後述の参照元でも述べていますが、Nvidia及び記事作成元含め、非サポートです。
    * どんな選択をしても20.04LTSになったあとに依存関係のエラーが出る模様…
    * 公式ではJetPack(18.04ベース）はDockerで20.04のイメージでROS2を動かしてますね。

:::

:::note info
インフォメーション
- JetPack5.0.1DPがUbuntu20.04ベースになっています。
- 旧プラットフォームのXavier nxやAGX Xavierでも可能です。

:::

https://qiita.com/Manyan3/items/91e35d9d976be22c7bb7



## 環境(いけにえ)
* Jetson AGX Xavier
* JetPack4.6.1

:::note info
参考
私の場合はシンボリックを張り替えていたので、これを直すのに手間取りました。
オリジナル環境で進める事を強く推奨します。

:::

# 2. Ubuntuをアップグレード

**参照元**

https://qengineering.eu/install-ubuntu-20.04-on-jetson-nano.html

オリジナルサイトではNanoを使用していますが、今回はAGX Xavierを使用します。

:::note info
注意
オリジナル手順では最初にchromium-browserをパージしています。
これをすっ飛ばしたばかりに後々祟りが起きます。

:::

1. (chromiumの削除)--オリジナルサイトをご覧ください

```
　sudo apt-get remove --purge chromium-browser chromium-browser-l10n

　#(以下略）私はこの手順を踏んでいなかったので・・・　

```
* release-upgradesの編集

```

sudo vi /etc/update-manager/release-upgrades

```

* **prompt=normal と書き換え保存します。**

```
prompt=normal

```

* 編集後に以下の通り実行

```
sudo apt-get update
sudo apt-get dist-upgrade
sudo reboot
```
* 　**いよいよアップグレード**

>リブート後にいよいよ書き換えに入ります。
>記事ではJetson Nanoですが、AGX Xavierでも2時間近くかかります。
>Nanoだったらどれぐらいかかったんだろう・・・
> 
> >```　
> >　sudo do-release-upgrade
> >　　
> >```
>書き換えの途中で何度かY/Nと聞かれますが、本家の様に22まで上げる話は
でませんでした。 

* また、途中で20.04になっているような様子もうかがえます。
![20ninatta.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2155177/f730852c-d9c3-3b71-1a2e-4446328df2a6.jpeg)


# 3. アップグレードしたJetPack

**書き換え完了後、リブートをすると！**

![Screenshot from 2022-07-15 10-48-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2155177/054496e5-64bb-0073-46a9-a4919ade1cfe.png)

**なんか間延びした変なマーク**
その他、アップグレー途中にインストールされたアプリやデスクトップ入り乱れてます。

****
```

sudo vi /etc/update-manager/release-upgrades

```
* **prompt=normal を元に戻します(必須)**

```
prompt=never

```

* 当初はsystem settingが起動しないのをを始め、 apt updateでエラーが複数出てきました。
* 冒頭の記載の通り、chromiumをはじめ、OpenCVのライブラリのエラーがどっさり
    * またsystem-settingメニューが起動しなくなっていました。
**さようならchromium**

```
sudo apt install -f  20.04 remove
sudo apt purge chromiumm-*
reboot

```

１．ソフトウェアアップデータ(CUI）
 /etc/apt/sources.list.d/　フォルダのエラーの元になっている、
アクセスできないリポジトリを削除していきます。
これだけでも大分エラーが減ります。

２．ソフトウェアアップデータ(GUI) 
* こちらで公認？のリポジトリにチェックを入れていきます。
18.04などにチェックがあればはずします。
>参考画像(日本語版ですが‥) 
>> ![software_check.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2155177/fdd493d5-db86-1bb0-c8fb-111bf320f44a.png)
> Ubuntuのソフトウェアのチェックでsource codeのチェックが外れていたら
入れておきます

:::note info
余談
ブラウザ、Firefox入っていますね。

:::


* いちおうリブートして設定画面をクリック
    * うーん何と言っていいのやら
![Screenshot from 2022-07-15 18-56-28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2155177/dd35f97e-9815-9abd-b4d7-5d5d3b38c000.png)

* 最後まで残ったlibopencvたちは以下でなんとか解決

```
sudo apt autoremove
sudo apt clean
reboot

```

```
sudo apt --fix-broken install -o Dpkg::Options::="--force-overwrite"

```

**これでようやくaptパッケージが入るようになりました**

# 4. おわりに

- 無事にcurlも入る様になり、ROS,ROS2のセットアップまでできました。
と、いうことで担当の方にお返しします。

- 試される方はほとんどいないと思われますが、
素でROS2 Foxyを入れたいという方向けです。

- 個人的にはDockerになじめず、AnacondaでPython使い分けですが、記事では分からない苦労を考えると公式の手順なんでしょうね・・・Σ(￣ロ￣lll)

:::note info
余談2 
よくよく見てみるとJetPack5.0.1DPがUbuntu20.04ベースになっていました。このインストールをしたせいか!?、5.0.1DPのFlash段階でコケて奮闘中(2022年8月2日現在)

:::

# おまけ(2023追加

:::note info
需要があるのかイマイチ判断がつかないのですが、ぽつぽつみられているようなので、
役経つか分からない情報追加します
:::

## CLI(WSLベースSDK ManagerとXavier(新しいのは社内の”プロ”がいじっている）

![屏幕截图 2022-07-30 23.20.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2155177/7e12dcd5-efb3-b315-34f0-fbeb01ec6e7a.png)

- CLI でSDK Managerを動かしてしまう
- Ubuntuとはいえ、WSL上ではUSBが結構バシバシ切られるので、気合でアクセス監視
-
![屏幕截图 2022-07-28 20.16.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2155177/81a7667f-558d-efc7-c13a-4e04606ffcda.png)

![屏幕截图 2022-07-29 12.37.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2155177/b088c8c5-a5a8-1bef-0bee-d890c66683a8.png)

:::note info
普通にGUI版使った方がいいです。
**くれぐれもカーネルが(Xavier)どうしたこうしたではないとおもうと独り言**
:::

お粗末様です。