ユーザ用ツール

サイト用ツール


システム関連

Jetsonシステム関連

このページでは、 Qiitaなどに投稿する前のメモ書きを書いておく。


センサドライバ関連

センサドライバを開発した際に苦労したことを書きたいところだが、仕事上の情報が入ってしまうのと、いまいち、 ひとに伝えるほどわかっていないことが多いので、、未だに書けず。


カーネルのクロスビルドの32.6.1での確認

Jetson Nanoのクロスビルド環境の構築(Qiita)

で紹介した内容を、L4T 32.6.1の環境で、同じことをやる。 そのときにやったことを、ここにメモ書きする。

まず、SDK Managerのアップデート。

いつも、HeroBoxのデスクトップ上に出ていた、SDK Manager version 1.x.x.xxxx is now available。 今日は、1.6.0.8170。今日はUpdate Nowボタンを押して、アップデート開始。 Continueボタン、そして、パスワードを入力すると、しばらくして、

Update successfully! のダイアログ。

そして、

New version is available

New version: JetPack 4.6 Linux

Installed version: JetPack 4.5 Linux

  • Install Now
  • Later

の選択から、Install Nowのボタンを押す。 SDK ManagerのSTEP 02まで行ったが、前の環境が残っていて、容量が足らない。 一旦手動で、前のバージョンを削除および、カーネルのビルド環境はポータブルHDDにコピー。

カーネルのビルド環境をmvしてしまったため、処理が遅くなってしまった。 固めてからコピーしたらよかった。。。

少し待ってみたが、待ちきれず、途中でやめて削除。

SDK Managerで4.6をダウンロード。ターゲットにFlashするのはSkip。

Jetson Linux R32.6.1 Release Page

L4T Driver Package (BSP) Sources

からソースをダウンロードして展開。 I copied the file kernel-4.9/build_setup.sh from the backup.

Device Treeの記述が若干大きく?変わっている。 tegrat210-p3448-0000-p3449-0000-b00.dtsに直接、tegra210-tc358748.dtsiをincludeし、 ラズパイカメラ用のdtsiファイルのincludeを外した。(それでいけたみたい)

あと、.configはビルドディレクトリに生成されるんだった。

flash.shの実行時に、xmllint not foundと言われた。 apt-get install libxml2-utilsでインストールして、再度、flash.shを実行。

flash完了で、リブートおよびセットアップ。

uname -aで、4.9.253-tegraとバージョンアップされたことが確認できた。

/dev/spidev0.0などが自動的には生成されないが、insmod spidevすればOK。 spidev.koのありかはmodinfo spidevで分かる。

CONFIGSPISPIDEV=m だからだろうが、以前もm指定だった。 何かの依存関係で、自動的にロードされたのか?

ひとまず、CONFIGSPISPIDEV=yとすれば、最初からspidevのデバイスファイルが生成された。 ひとまず、そうしておくか。

Jetson Nanoのルータ化

Ubuntu20.04でルータを作成 | 日々修行

を参考に検討。

sirius@jetson-nano-05:~$ sudo cp -p /etc/sysctl.conf /etc/sysctl.conf.org
sirius@jetson-nano-05:~$ sudo vi /etc/sysctl.conf 
sirius@jetson-nano-05:~$ diff /etc/sysctl.conf /etc/sysctl.conf.org
28c28
< net.ipv4.ip_forward=1
---
> #net.ipv4.ip_forward=1
sirius@jetson-nano-05:~$ sudo sysctl -p
net.ipv4.ip_forward = 1
sirius@jetson-nano-05:~$ sudo apt install iptables-persistent
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
以下のパッケージが自動でインストールされましたが、もう必要とされていません:
  apt-clone archdetect-deb bogl-bterm busybox-static cryptsetup-bin
  dpkg-repack gir1.2-timezonemap-1.0 gir1.2-xkl-1.0 grub-common
  kde-window-manager kinit kio kpackagetool5 kwayland-data kwin-common
  kwin-data kwin-x11 libdebian-installer4 libkdecorations2-5v5
  libkdecorations2private5v5 libkf5activities5 libkf5attica5
  libkf5completion-data libkf5completion5 libkf5declarative-data
  libkf5declarative5 libkf5doctools5 libkf5globalaccel-data libkf5globalaccel5
  libkf5globalaccelprivate5 libkf5idletime5 libkf5jobwidgets-data
  libkf5jobwidgets5 libkf5kcmutils-data libkf5kcmutils5 libkf5kiocore5
  libkf5kiontlm5 libkf5kiowidgets5 libkf5newstuff-data libkf5newstuff5
  libkf5newstuffcore5 libkf5package-data libkf5package5 libkf5plasma5
  libkf5quickaddons5 libkf5solid5 libkf5solid5-data libkf5sonnet5-data
  libkf5sonnetcore5 libkf5sonnetui5 libkf5textwidgets-data libkf5textwidgets5
  libkf5waylandclient5 libkf5waylandserver5 libkf5xmlgui-bin libkf5xmlgui-data
  libkf5xmlgui5 libkscreenlocker5 libkwin4-effect-builtins1 libkwineffects11
  libkwinglutils11 libkwinxrenderutils11 libqgsttools-p1 libqt5designer5
  libqt5help5 libqt5multimedia5 libqt5multimedia5-plugins
  libqt5multimediaquick-p5 libqt5multimediawidgets5 libqt5opengl5
  libqt5quickwidgets5 libqt5sql5 libqt5test5 libxcb-composite0 libxcb-cursor0
  libxcb-damage0 os-prober python3-dbus.mainloop.pyqt5 python3-icu python3-pam
  python3-pyqt5 python3-pyqt5.qtsvg python3-pyqt5.qtwebkit
  qml-module-org-kde-kquickcontrolsaddons qml-module-qtmultimedia
  qml-module-qtquick2 rdate tasksel tasksel-data
これを削除するには 'sudo apt autoremove' を利用してください。
以下の追加パッケージがインストールされます:
  netfilter-persistent
以下のパッケージが新たにインストールされます:
  iptables-persistent netfilter-persistent
アップグレード: 0 個、新規インストール: 2 個、削除: 0 個、保留: 260 個。
13.1 kB のアーカイブを取得する必要があります。
この操作後に追加で 81.9 kB のディスク容量が消費されます。
続行しますか? [Y/n] 
取得:1 http://ports.ubuntu.com/ubuntu-ports bionic-updates/universe arm64 netfilter-persistent all 1.0.4+nmu2ubuntu1.1 [6,748 B]
取得:2 http://ports.ubuntu.com/ubuntu-ports bionic-updates/universe arm64 iptables-persistent all 1.0.4+nmu2ubuntu1.1 [6,340 B]
13.1 kB を 1秒 で取得しました (17.9 kB/s) 
debconf: delaying package configuration, since apt-utils is not installed
以前に未選択のパッケージ netfilter-persistent を選択しています。
(データベースを読み込んでいます ... 現在 159766 個のファイルとディレクトリがインストールされています。)
.../netfilter-persistent_1.0.4+nmu2ubuntu1.1_all.deb を展開する準備をしています ...
netfilter-persistent (1.0.4+nmu2ubuntu1.1) を展開しています...
以前に未選択のパッケージ iptables-persistent を選択しています。
.../iptables-persistent_1.0.4+nmu2ubuntu1.1_all.deb を展開する準備をしています ...
iptables-persistent (1.0.4+nmu2ubuntu1.1) を展開しています...
netfilter-persistent (1.0.4+nmu2ubuntu1.1) を設定しています ...
Created symlink /etc/systemd/system/multi-user.target.wants/netfilter-persistent.service → /lib/systemd/system/netfilter-persistent.service.
update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults
iptables-persistent (1.0.4+nmu2ubuntu1.1) を設定しています ...
man-db (2.8.3-2ubuntu0.1) のトリガを処理しています ...
systemd (237-3ubuntu10.50) のトリガを処理しています ...
$ sudo apt install iptables-persistent
$ sudo su
# iptables -t nat -A POSTROUTING -s 192.168.130.0/24 -o wlan0 -j MASQUERADE
# iptables-save > /etc/iptables/rules.v4

などとやってみたが、まだうまく行っていない。

デバイスドライバのデバッグ手法(dynamic debug編)

V4L2ドライバあたりのデバッグで、去年やっていたことをもう一度やり直す際に、そのときやっていたdynamic debugの手法を復習しているので、それをここに記録する。

DYNAMIC DEBUGの使い方 - hana_shinのLinux技術ブログ

あたりを参考に。

$ echo file channel.c +p > /sys/kernel/debug/dynamic_debug/control

などとすると、channel.c内のdev_dbgによるデバッグ用ログ出力が有効になる。


カーネルのクロスビルドの32.7.3での確認

Jetson Nanoのクロスビルド環境の構築(Qiita)

で紹介した内容を、Jetson Linux 32.7.3の環境で、同じことをやる。 そのときにやったことを、ここにメモ書きする。これは、後で、Qiitaにて紹介してあげた方がよいかもしれない。

Ubuntu 22.04だとJetson Nanoへのflashまでたどり着けなかったので、Ubuntu 20.04を入れなおして再実行。 os-releaseに小細工をすることは以前の通りで、20.04にするとflashまで行けて、無事、Jetson Nanoの初期セットアップまでうまく行った。

以前に、20.04の時代にflashまで行けていた環境で、その後に22.04にアップグレードしていたが、SDK Manager内で色々とエラーになっていたが、flashはできていたのだが、最初の時点で22.04だとダメだ、という状況のようだ。

https://developer.nvidia.com/embedded/linux-tegra-r3273

から“Driver Package (BSP) Sources”のリンクを辿って、publicsources.tbz2をダウンロード。 kernelsrc.tbz2

システム関連.txt · 最終更新: 2023/06/14 19:45 by makotoa67