目前分類:Jetson TK1 (48)

瀏覽方式: 標題列表 簡短摘要

使用 hardinfo 應用程式可取得系统資訊並包含 CPU, GPU, FPU Benchmark 工具.

hardinfo 無法辨識 ARM 處理器核心數量與時脈, 因為 hardinfo/modules/devices/arm/processor.c 對 /proc/cpuinfo 解析不完整.

<< 安裝最新發行版本 >>

~$ sudo apt-get install hardinfo
~$ hardinfo

hardinfo.jpg  

<< 原始碼下載與编譯 >>

安裝必要套件.

~$ sudo apt-get install cmake
~$ sudo apt-get install libgtk2.0-dev

文章標籤

版大 發表在 痞客邦 留言(0) 人氣()

GStreamer 安裝與使用 一文介紹 GStreamer 工具使用方法, 本文說明 NVIDIA GStreamer NVIDIA GStreamer 模組 (Pluging) 與元件 (Element) 編譯, 安裝與使用. 

NVIDIA GStreamer 模組 (pluging) 原始檔可從 https://developer.nvidia.com/platform-software-development 下載.

* 本文作業環境為 Jetson TK1 R21.2, Ubuntu 14.04, 使用者帳號 Ubuntu.

<< 安裝必要套件 >>

~$ sudo apt-get install autotools-dev
~$ sudo apt-get install autoconf
~$ sudo apt-get install libegl1-mesa-dev
~$ sudo apt-get install xorg-server-source

~$ sudo apt-get install libgstreamer-plugins-base1.0-dev
~$ sudo apt-get install libgstreamer-plugins-base0.10-dev

文章標籤

版大 發表在 痞客邦 留言(0) 人氣()

VGA Arbiter 的功能為協調多個 PCI 介面 VGA 裝置對 I/O 或 MEM 的存取. Jetson TK1 並無 PCI 介面 VGA 裝置, 且核心除錯訊息出現 vagarb 相關訊息.

~$ dmesg | grep vgaarb
[ 0.587446] vgaarb: loaded
[ 13.407491] vgaarb: this pci device is not a vga device

<< 移除 VGA Arbiter 支援 >>

--- a/arch/arm/configs/tegra12_defconfig
+++ b/arch/arm/configs/tegra12_defconfig
@@ -419,6 +419,8 @@ CONFIG_VIDEO_CAMERA=y
  CONFIG_SOC_CAMERA=y
  CONFIG_SOC_CAMERA_PLATFORM=m

文章標籤

版大 發表在 痞客邦 留言(0) 人氣()

Jetson TK1 R21.2 核心 panic 後等待開發人員除錯, 不自動重新啟動. 對於一般使用者自動重新啟動比較方便.

<< 設定 panic timeout 為 10 秒 >>

diff --git a/arch/arm/configs/tegra12_defconfig b/arch/arm/configs/tegra12_defconfig
index bb69680..0ec5d46 100644
--- a/arch/arm/configs/tegra12_defconfig
+++ b/arch/arm/configs/tegra12_defconfig
@@ -11,6 +11,7 @@ CONFIG_RESOURCE_COUNTERS=y
 CONFIG_CGROUP_SCHED=y
 CONFIG_RT_GROUP_SCHED=y
 CONFIG_BLK_DEV_INITRD=y

文章標籤

版大 發表在 痞客邦 留言(0) 人氣()

溫度感知器 一文, 我們能使用 Tegra 除錯 sysfs 取得 TMP451 溫度資訊. 與平台無關的 lm-sensors 硬體感知器監視工具可使用在 Jetson TK1 上.

 << 找出 lm-sensors 套件並安裝 >>

ubuntu@tegra-ubuntu:~$ apt-cache search lm-sensors
libsensors4 - library to read temperature/voltage/fan sensors
libsensors4-dev - lm-sensors development kit
fancontrol - utilities to read temperature/voltage/fan sensors
lm-sensors - utilities to read temperature/voltage/fan sensors
mrtgutils-sensors - Utilities to generate statistics for mrtg (from lm-sensors)
nagios-plugins-contrib - Plugins for nagios compatible monitoring systems
phpsysinfo - PHP based host information

文章標籤

版大 發表在 痞客邦 留言(0) 人氣()

可視分區能使用 "mmc part", "ext2ls" 等指令操作. 但是 U-Boot 存在於 EBT 分區中, 為隱藏分區, 只能利用 mmc read/write 指令對指定區塊操作.

<< 表列 MMC 0 分區 >>

切換至 MMC 0.

Tegra124 (Jetson TK1) # mmc dev 0
switch to partitions #0, OK
mmc0(part 0) is current device

讀取 MMC 0 分區資訊.

Tegra124 (Jetson TK1) # mmc part

Partition Map for MMC device 0 -- Partition Type: EFI

Part       Start LBA End LBA Name

文章標籤

版大 發表在 痞客邦 留言(0) 人氣()

啟動 ramoops 需要在核心配置加入 PSTORE.

R21.2 核心定義 ramoops 記憶體為 2MB, 配置於主記憶體最後. (參考 kernel/arch/arm/mach-tegra/common.c)

<< 核心配置加入 PSTORE >>

diff --git a/arch/arm/configs/tegra12_defconfig b/arch/arm/configs/tegra12_defconfig
index 0d421c0..bb69680 100644
--- a/arch/arm/configs/tegra12_defconfig
+++ b/arch/arm/configs/tegra12_defconfig
@@ -589,6 +589,10 @@ CONFIG_VFAT_FS=y
CONFIG_NTFS_FS=y
CONFIG_TMPFS=y

文章標籤

版大 發表在 痞客邦 留言(0) 人氣()

Tegra K1 内建 2 個顯示控制器 tegradc.0 與 tegradc.1, R21.2 核心配置同時配置 framebuffer 裝置 fb0 與 fb1, tegradc.0 為 fb0, tegradc.1 為 fb1. 

ubuntu@tegra-ubuntu:~$ ls /dev/fb*
/dev/fb0 /dev/fb1

fb1 為 HDMI 顯示器. fb0 為 DSI WXGA 顯示器, 定義於 board-ardbeg-panel.c::ardbeg_panel_configure(). 

default:
        panel = &dsi_p_wuxga_10_1;
        tegra_io_dpd_enable(&dsic_io);
        tegra_io_dpd_enable(&dsid_io);
break;

可使用 fbset 取得 framebuffer 裝置資訊.

文章標籤

版大 發表在 痞客邦 留言(0) 人氣()

啟動 USB RNDIS 主機功能後, Jetston TK1 就能透過 Android 智慧手機 USB 行動數據分享連網.

<< 啟動 USB RNDIS 主機功能 >>

diff --git a/arch/arm/configs/tegra12_defconfig b/arch/arm/configs/tegra12_defconfig
index 24c006a..57fcd4c 100644
--- a/arch/arm/configs/tegra12_defconfig
+++ b/arch/arm/configs/tegra12_defconfig
@@ -240,6 +240,7 @@ CONFIG_PPPOPNS=m
CONFIG_PPP_ASYNC=m
CONFIG_PPP_SYNC_TTY=m
CONFIG_USB_USBNET=y

文章標籤

版大 發表在 痞客邦 留言(0) 人氣()

tegrarcm (Tegra ReCovery Mode) 工具是開放原始碼 Tegra 裝置刷新工具, 同時需要 cbootimage 與 cbootimg-configs 製作 tegrarcm 所需之 BCT.
 
<< tegrarcm 原始碼下載, 编譯與安裝 >>

~$ git clone https://github.com/NVIDIA/tegrarcm.git
~$ sudo apt-get install autoconf libcrypto++ libusb-1.0
~$ cd tegrarcm
~/tegrarcm$ ./autogen.sh
~/tegrarcm$ make
~/tegrarcm$ sudo make install

文章標籤

版大 發表在 痞客邦 留言(0) 人氣()

Jetson TK1 核心啟動過程中依照 board_info 參數配置硬體. board_info 存在於 EEPROM 中偏移量 0x04.

<< Jetson TK1 版本編號定義於 tegra-board-id.h >>

/* Processor Board ID */
#define BOARD_PM375 0x0177
/* Board SKU */
#define BOARD_SKU_0 0x0000
/* Board Fab version */
#define BOARD_FAB_A02 0x2

<< 資料結構定義於 board.h >>

struct board_info {

文章標籤

版大 發表在 痞客邦 留言(0) 人氣()

Jetson TK1 U-Boot 提供 "enterrcm" 指令重新啟動系統並進入 USB 回復模式 (Recovery Mode). 核心可用 "reboot -f forced-recovery".

<< 中斷 U-Boot 自動啟動並進入 USB 回復模式>>

Hit any key to stop autoboot: 0
Tegra124 (Jetson TK1) # enterrcm
Entering RCM...

<< 連接 Jetson TK1 MicroUSB 接口 (USB0) 至 PC >>

<< 在 PC 端確認 Jetson TK1 進入 USB 回復模式 >>

$ lsusb
Bus 002 Device 017: ID 0955:7140 NVidia Corp.

<< U-Boot 實作於 cmd_enterrcm.c >>

文章標籤

版大 發表在 痞客邦 留言(0) 人氣()

目前 Chrome OS SDK 只支援 x86 系统.

ubuntu@tegra-ubuntu:~/chromiumos$ cros_sdk
Usage: cros_sdk [options] [VAR1=val1 .. VARn=valn -- args]

This script is used for manipulating local chroot environments; creating,
deleting, downloading, etc. If given --enter (or no args), it defaults
to an interactive bash shell within the chroot.

If given args those are passed to the chroot environment, and executed.

cros_sdk: error: cros_sdk is currently only supported on x86_64; you're running armv7l. Please find a x86_64 machine.


文章標籤

版大 發表在 痞客邦 留言(0) 人氣()

預設開機裝置順序為 MMC1 -> MMC0 -> USB -> PXE -> network. 開機順序定義於 u-boot/include/configs/tegra-common-post.h

#define BOOT_TARGET_DEVICES(func) \
        func(MMC, mmc, 1) \
        func(MMC, mmc, 0) \
        func(USB, usb, 0) \
        func(PXE, pxe, na) \
        func(DHCP, dhcp, na)

<< 列印 U-Boot 環境變數 boot_targets >>

Tegra124 (Jetson TK1) # printenv boot_targets
boot_targets=mmc1 mmc0 usb0 pxe dhcp

文章標籤

版大 發表在 痞客邦 留言(0) 人氣()

裝置資訊 board_info 與 利用 i2c-tools 存取 EEPROM 文中, board_info 資料結構在 EPROM 中的偏移量 (offset) 為 0x04. 

root@tegra-ubuntu:/home/ubuntu# i2cdump -y 0 0x56
No size specified (using byte-data access)
0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef
00: 01 00 07 00 77 01 00 00 03 45 00 ff ff ff ff ff ?.?.w?..?E......

board_info 資料结構

struct board_info {
        u16 board_id;
        u16 sku;
        u8 fab;

文章標籤

版大 發表在 痞客邦 留言(0) 人氣()

K400r 使用 Logitech Unifying 接收器 (USB 介面). USB 裝置為了省電必須支援自動休眠 (autosuspend), 在裝置閒置 (idle) 一段時間後進入休眠模式. K400r 進入休眠的間隔很短, 裝置喚醒的時間較長, 造成使用上的不便. 開啟核心配置 CONFIG_USB_DEBUG 可觀察 K400r 自動休眠行為.

logitech_k400r.jpg  

 << 實作 HID_QUIRK_SLOW_WAKE, 停用 Logitech K400r Unifying USB 接收器自動休眠功能 >>

diff --git a/drivers/hid/usbhid/hid-core.c b/drivers/hid/usbhid/hid-core.c
index 006267f..2807811 100644
--- a/drivers/hid/usbhid/hid-core.c
+++ b/drivers/hid/usbhid/hid-core.c
@@ -1190,6 +1190,8 @@ static int usbhid_start(struct hid_device *hid)
                                        USB_INTERFACE_PROTOCOL_MOUSE)
              usb_disable_autosuspend(dev);

文章標籤

版大 發表在 痞客邦 留言(0) 人氣()

R21.2 的 Ubuntu 14.04 根文件範例 (Tegra_Linux_Sample-Root-Filesystem_R21.2.0_armhf.tbz2), 動態載入模组 (loadable module) 對應的核心版本為 3.10.40-ged4f697. 動態載入模组提供於 L4T 中的壓縮檔 Linux_for_Tegra/kernel/kernel_supplements.tbz2.

當開發人員提交核心修改, 编譯後的核心 (zImage) 版本與動態載入模组 (.ko) vermagic 將被更新為最後一個提交的 commit ID (因為 CONFIG_LOCALVERSION_AUTO=y). 當動態載入模组對應的核心版本與運行中的核心不符, 將無法載入.

<< 核心版本可使用 uname -r 確認 >>

ubuntu@tegra-ubuntu:~$ uname -r
3.10.40-g5f847fc-dirty

<< 已載入的模组可使用 lsmod 確認 >>

ubuntu@tegra-ubuntu:~$ lsmod
Module                  Size  Used by
dm_crypt               13251  0
dm_mod                 73839  1 dm_crypt

文章標籤

版大 發表在 痞客邦 留言(0) 人氣()

Tegra K1 SATA 控制器規格為 rev 3.1, 頻率為 1.5GHz. Jetson TK1 提供一组 SATA 資料埠 (J2D1) 與 SATA 電源 (J4E2). 連接上 SATA 磁碟機開機後, R21.2 自動將 SATA 磁碟機褂載, 裝置為 /dev/sd[x].

Jetson TK1 內建 e.MMC 容量為 16 GB, 將 SATA 磁碟機設定為 ROOTFS 後可避免 e.MMC 容量的限制.

<< 連接 SATA 磁碟機於 Jetson TK1 >>

<< 刷新 Jetson TK1, 先由 e.MMC 啟動 >>

$ sudo ./flash.sh jetson-tk1 mmcblk0p1

<< Jetson TK1 成功啟動後. 使用 fdisk 刪除所有分區並建立 sda1 >>

ubuntu@tegra-ubuntu:~$ sudo fdisk /dev/sda

Command (m for help): d  <-- 刪除分區
Selected partition 1

文章標籤

版大 發表在 痞客邦 留言(0) 人氣()

本文以 Atheros AR5B22 mini PCI-E 無線網路模组為例安裝於 Jetson TK1, L4T 版本 R21.2.

* 本文作業環境為 Jetson-TK1 R21.2. 核心原始碼目錄為 ~/jetson-tk1-r21.2-kernel.

AR5B22_Jetson-TK1.jpg  
  

<< 將無線網路模组安裝於 mini PCI-E 插槽後, 使用 lspci 指令確認無線網路模组是否出現在 PCI 匯流排上 >>

ubuntu@tegra-ubuntu:~$ lspci
00:00.0 PCI bridge: NVIDIA Corporation Device 0e12 (rev a1)
01:00.0 Network controller: Qualcomm Atheros AR9462 Wireless Network Adapter (rev 01)

<< lspci 得知 AR5B22 晶片為 AR9462, 開啟下列核心配置加入驅動程式 ath9k >>

diff --git a/arch/arm/configs/tegra12_defconfig b/arch/arm/configs/tegra12_defconfig

文章標籤

版大 發表在 痞客邦 留言(0) 人氣()

UVC (USB Video Class) 支援在 Jetson TK1 R21.2 預設為啟動, UVC 裝置會被 uvcvideo 驅動程式褂載並建立 /dev/video0 裝置.

ubuntu@tegra-ubuntu:~$ dmesg

[ 2512.723098] usb 1-1: new high-speed USB device number 39 using tegra-ehci
[ 2512.866683] usb 1-1: New USB device found, idVendor=046d, idProduct=080f
[ 2512.866754] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=2
[ 2512.866799] usb 1-1: SerialNumber: C8050680
[ 2512.874740] uvcvideo: Found UVC 1.00 device <unnamed> (046d:080f)
[ 2512.921181] input: UVC Camera (046d:080f) as /devices/platform/tegra-ehci.2/usb1/1-1/1-1:1.0/input/input7

可透過 VLC 測試.

UVC_VLC_PLAY.jpg  

文章標籤

版大 發表在 痞客邦 留言(0) 人氣()

1 23