[LINUX] Verwenden Sie PX-S1UD / PX-Q1UD mit Jetson Nano

Einführung

Da es viele Artikel zum Erstellen eines Aufzeichnungsservers mit Raspberry Pi gab, dachte ich, dass es möglich wäre, ihn mit Jetson zu erstellen, und es ist eine Zusammenfassung verschiedener Stolpersteine. Der Grund, warum ich mich für Jetson Nano entschieden habe, war, dass die Codierungsleistung verbessert wurde, als ich mir die Spezifikationen ansah.4K @ 30 | 4x 1080p @ 30 | 9x 720p @ 30 (H.264/H.265) Da gesagt wird, dass es möglich ist, 4ch Echtzeitcodierung neben der Notwendigkeit zu tun? ?? ?? Ich fing an, es zu bauen. Der Schwerpunkt liegt darauf, den Tuner für die Verwendung mit Jetson vorzubereiten. Weitere Informationen zum Einrichten der Aufnahme usw. finden Sie in anderen Artikeln.

Was du brauchst

Voraussetzung Umgebung

Betriebssysteminstallation auf Jetson Nano und Terminalbetrieb durch SSH usw.

Betriebssystemumgebung

Jetson Nano Developer Kit SD Card Image JP 4.4 Kernel 4.9.140

Verfahren

Einführung

Wenn Sie in der obigen Umgebung den PX-Q1UD erstechen,

terminal


$ dmesg
[ 1942.289567] usb 1-2.1.1: new high-speed USB device number 11 using tegra-xusb
[ 1942.310251] usb 1-2.1.1: New USB device found, idVendor=3275, idProduct=0080
[ 1942.310257] usb 1-2.1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 1942.310261] usb 1-2.1.1: Product: PX-S1UD Digital TV Tuner
[ 1942.310265] usb 1-2.1.1: Manufacturer: PLEX Digital TV Tuner

Sie sehen nur eine solche Kernel-Nachricht und der DVB-Treiber wird nicht angewendet. Dies liegt daran, dass der DVB-Treiber im Jetson-Standardkernel weggelassen wird. ** Erster Stolperstein: Schluchzen: **

Erstellen Sie den Kernel

Es gibt einen sehr leicht verständlichen Referenzartikel. Die Bedeutung des Befehls finden Sie hier. https://qiita.com/yamamo-to/items/6fc622df7b5cce3eccfb

Kernel-Konfiguration

Befehle vom Herunterladen des Kernels bis zum Anzeigen des Konfigurationseinstellungsbildschirms

terminal


$ sudo jetson_clocks
$ sudo apt install -y libncurses5-dev
$ cd && mkdir kernel && cd kernel
$ wget https://developer.nvidia.com/embedded/L4T/r32_Release_v4.2/Sources/T210/public_sources.tbz2
$ tar xvf public_sources.tbz
$ cd Linux-for-Tegra/source/public
$ tar xvf kernel_src.tbz2
$ cd kernel/kernel-4.9
$ zcat /proc/config.gz  > .config
$ make menuconfig

DL-Ziel der neuesten Quelle "BSP-Quellen (L4T Driver Package)" ist die URL

Wenn Sie nach einiger Zeit zu diesem Bildschirm wechseln,

スクリーンショット 2020-05-11 19.02.08.png Der Menükonfigurationsbildschirm wird angezeigt Gehen Sie zu Gerätetreiber-> Multimedia-Unterstützung. スクリーンショット 2020-05-11 19.02.17.png スクリーンショット 2020-05-11 19.02.35.png

Innerhalb der Multimedia-Unterstützung

Ich werde den Bereich ändern. (Es kann unnötige Dinge geben)

Speichern Sie es nach dem Ändern mit Speichern und drücken Sie wiederholt Esc, um es zu beenden.

Kernel-Patch

Ich wünschte, ich könnte es damit bauen und verwenden, aber es scheint, dass es einen Fehler im Siano-Treiber gibt, wenn ich es mit arm64 verwende, und wenn ich den Tuner einfüge, hängt er nach einer bestimmten Zeit. ** Zweiter Stolperstein: Schluchzen: **

Wenn Sie dmesg überprüfen smsusb:smsusb_onresponse: error, urb status -71, 0 bytes smmu_dump_pagetable Was mc-err Was ist los Ich bekomme so einen Fehler.

Ein Patch zur Lösung des Problems wurde veröffentlicht, daher werde ich ihn anwenden.

Sehr dankbarer Nachschlagewerk https://blog.ayushio.com/2018/12/27/rock64-record/

terminal


$ cd ~/kernel/Linux_for_Tegra/source/public/kernel
$ wget -O siano.patch https://patchwork.kernel.org/patch/10256121/raw/
$ cd kernel-4.9
$ patch -p1 < ../siano.patch

Bauen

terminal


$ make oldconfig
$ make prepare
$ make modules_prepare
$ make -j4 Image && make -j4 modules

Es dauert ungefähr eine Stunde. Lass es uns abkühlen.

Installation

terminal


$ sudo make modules_install
$ sudo cp -p /boot/Image /boot/Image.org
$ sudo cp arch/arm64/boot/Image /boot/Image

Starten Sie danach neu (es wird einige Zeit dauern)

Bestätigung

Nach dem Einstecken des PX-Q1UD / PX-S1UD in den USB-Anschluss Wenn ich dmesg starte,

terminal


[ 2402.115532] usb 1-2.1.1: new high-speed USB device number 10 using tegra-xusb
[ 2402.136510] usb 1-2.1.1: New USB device found, idVendor=3275, idProduct=0080
[ 2402.136515] usb 1-2.1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 2402.136519] usb 1-2.1.1: Product: PX-S1UD Digital TV Tuner
[ 2402.136522] usb 1-2.1.1: Manufacturer: PLEX Digital TV Tuner
[ 2402.137321] smsusb:smsusb_probe: board id=18, interface number 0
[ 2402.189130] DVB: registering new adapter (Siano Rio Digital Receiver)
[ 2402.189613] usb 1-2.1.1: DVB: registering adapter 0 frontend 0 (Siano Mobile Digital MDTV Receiver)...
[ 2402.189718] smsdvb:smsdvb_hotplug: DVB interface registered.
[ 2402.189721] smsmdtv:smscore_init_ir: IR port has not been detected
[ 2402.189724] smsusb:smsusb_probe: Device initialized with return code 0

Wenn ein solches Protokoll fließt und das Gerät unter / dev / dvb / vorhanden ist, ist es erfolgreich.

Schließlich

Ich war überrascht, dass es viele Artikel auf Japanisch gab. Es zieht schneller ein als Englisch, daher ist es sehr hilfreich. Vielen Dank an diejenigen, die es als Artikel geteilt haben.

Recommended Posts

Verwenden Sie PX-S1UD / PX-Q1UD mit Jetson Nano
Verwendung von Chainer mit Jetson TK1
Verwendung des Python-Wrappers PyRealsense von Realsense mit Jetson Nano
Führen Sie das Original YOLO mit Jetson Nano aus
Jetson Nano Setup
Verwenden Sie mecab-ipadic-neologd mit igo-python
Verwenden Sie RTX 3090 mit PyTorch
Verwenden Sie pipdeptree mit virtualenv
[Python] Verwenden Sie JSON mit Python
Verwenden Sie den Indikator mit pd.merge
Verwenden Sie Gentelella mit Django
Verwenden Sie Mecab mit Python 3
Verwenden Sie Tensorboard mit Chainer
Verwenden Sie DynamoDB mit Python
Verwenden Sie pip mit MSYS2
Verwenden Sie Python 3.8 mit Anaconda
Verwenden Sie Copyright mit Spacemacs
Richten Sie Jetson Nano ein
Verwenden Sie Python mit Docker
Verwenden Sie TypeScript mit Django-Kompressor
Verwenden Sie WENIGER mit Django
Einfacher Gesichtserkennungsversuch mit Jetson Nano und Webkamera
Verwenden Sie MySQL mit Django
Verwenden Sie Enum mit SQLAlchemy
Verwenden Sie Tensorboard mit NNabla
Verwenden Sie GPS mit Edison
Verwenden Sie nim mit Jupyter
Verwenden Sie die Trello-API mit Python
Verwenden Sie gemeinsam genutzten Speicher mit gemeinsam genutzten Bibliotheken
Verwenden Sie benutzerdefinierte Tags mit PyYAML
Verwenden Sie Richtungsdiagramme mit networkx
Verwenden Sie TensorFlow mit Intellij IDEA
Verwenden Sie die Twitter-API mit Python
Verwenden Sie pip mit Jupyter Notebook
Verwenden Sie DATE_FORMAT mit dem SQLAlchemy-Filter
Verwenden Sie TUN / TAP mit Python
Verwenden Sie sqlite3 mit NAO (Pepper)
Verwenden Sie die load_extensions von sqlite mit Pyramid
Verwenden Sie Windows 10-Schriftarten mit WSL
Verwenden Sie SSL mit Sellerie + Redis
Verwenden Sie Cython mit Jupyter Notebook
Verwenden Sie Maxout + CNN mit Pylearn2
Verwenden Sie WDC-433SU2M2 mit Manjaro Linux
Verwenden Sie OpenBLAS mit numpy, scipy
Verwenden Sie die Unterschall-API mit Python3
Verwenden von Sonicwall NetExtener mit Systemd
Verwenden Sie prefetch_related bequem mit Django
Verwenden Sie einen AWS-Interpreter mit Pycharm
Verwenden von Bokeh mit IPython Notebook
Verwenden Sie Python-ähnliche Bereiche mit Rust