發表文章

目前顯示的是有「Linux」標籤的文章

Disable Weston video playback offset

現在目標與狀況 目標 Disable Weston video playback User hardware decode 遇到狀況 Enable Weston video playback normally gst-launch-1.0 filesrc location=/home/root/demo.mp4 ! \ qtdemux name=d d.video_0 ! queue ! h264parse ! vpudec ! \ queue ! waylandsink Disable Weston video playback offset gst-launch-1.0 -v \ filesrc location=/home/root/demo.mp4 ! \ qtdemux name=d d.video_0 ! queue ! h264parse ! \ vpudec ! glimagesink 驗證分析 同一支影片、同一個 decoder,在不同video sink,行為不同 更換video sink glimagesink: 是 OpenGL 視窗/GL render 路徑 kmssink: 是直接走 DRM/KMS plane 的路徑 如果要避開 Weston,又想低 CPU,應該要是decoder → KMS plane 簡單測試kmssink gst-launch-1.0 -v videotestsrc ! kmssink # 發現顯示 Caught SIGSEGV,所以kmssink有bug 用 modetest 去看DRM支援什麼 modetest -M imx-drm # formats: XR24 AR24 RG16 XB24 AB24 RX24 RA24 AR15 XR15 ...

Network tool

 Network tool Ifconfig 看已啟動的網卡資訊 ip addr 將所有ip位置列出來 ping 傳輸連接 iperf3 網路的頻寬流量 dhcp 主動設定DHCP Server WIFI tool iw 顯示wifi裝置的詳細資訊與ifconfig類似但只顯示無線裝置 wpa_passphrase 建WPA PSK .conf檔 wpa_supplicant 連接wpa wifi工具

ALSA

 ALSA(advanced linux sound architecture) 測試檔 gst-launch-1.0 audiotestsrc ! audioconvert ! alsasink device-name=realtekrt5651co 播放 gst-launch-1.0 filesrc location = 檔名路徑 !\ mpegaudioparse!\ avdec_mp3!\ audioconvert!\ alsasink devic=hw:0  (alsa走哪個裝置 系統資訊 可以到/proc搜尋系統資訊 /proc/uptime 可以看到系統啟動執行時間及系統空閒時間 /proc/cpuinfo CPU資訊 /proc/asound Audio資訊 如音效卡、HDMICODEC、devices、PCM...等 ALSA Tool aplay 播放聲音 arecord 錄音 amixer audio參數設定 alsamixer audio參數設定介面 amixer & alsamixer的差異在於alsamixer有介面而amixer只是文字

SQL UPDATE 更新修改資料

 SQL UPDATE 更新修改資料 UPDATE用法 table1的表格 ID Name Color 1 Red #FF0000 2 Green #00FF00 3 Blue #0000FF UPDATE基本用法 UPDATE [table1] SET [table1].[Color] = #0000cd WHERE [table1].[ID] = 3 執行結果: ID Name Color 1 Red #FF0000 2 Green #00FF00 3 Blue #0000cd ...

Gstreamer

 Gstreamer 測試檔 gst-launch-1.0 videotestsrc ! video/x-raw, width=1280, height=720 ! kmssink gst-launch-1.0 filesrc location = 檔名路徑 !\ decodebin name =dec !\ videoconvert !\ kmssink 影像 gst-inspect  列出GStreamer plugins gst-inspect-1.0 | grep -i videosink  gst-launch  播放 gst-typefind  查詢檔案的decodebin gst- typefind -1.0 | grep -i videosink 

Cross compilation toolchain

Cross compilation toolchain 簡單明瞭就是在不同的開發平台做交叉編輯 大多數使用的電腦都是 x86如果 直接在電腦上 compiler, 只能編譯出 x86 辨識的執行檔 所以如果要 compile 出其他 CPU 可以辨識的執行檔就要使用 cross compiler 使用 ARM 系列 CPU

X Window & wayland

圖片
 X Window & Wayland X Window & Wayland 簡單關係 X window以點陣圖方式顯示的軟體視窗系統 Wayland是用來取代改善X windows 的桌面系統protocol X Window  X server 接收到X Client回傳的需求後 須要再將需求傳遞給Compositor合成器將畫面疊加 再返回給X server 才能做display Wayland 將Compositor與server包在一起 Client將動作直接傳遞給 Wayland Compositor 在執行display 1. Devise input trigger Driver 收到event傳遞給Wayland Compositor 2. Wayland Compositor 將 event傳遞給 Client 3.  Client 要做的動作傳給 Wayland Compositor 4.  Wayland Compositor 經由KMS做display  controller 走KMS吃CPU效能 走DRM吃GPU效能 KMS (Kernel Model Set) -> color,resolution,refresh -> 訊號有關的 DRM(Direct Renddering Manager) -> 記憶體有觀的 FrameBuffer包含在DRM內 Application 將影像資料寫入Memory(FrameBuffer)  MMAP將資料轉到driver driver將資料傳至display顯示 weston linux 使用Weston主要原因為Weston使用Wayland的protocol 燒入版本Yocto

Linux嵌入式系統啟動流程

 Linux嵌入式系統啟動流程 流程說明 Soc啟動ROM Code一上電就動作 根據HW設計的boot select //讀取mini boot 放置sram  //Init ddr 將u-boot 放置ddr SRAM mini boot 將u-boot讀取至ddr ram U-boot 起來後會將linux kernel 放置ddr ram 執行 Linux 啟動後會依去boot loader 來決定RootFS BootLoader是嵌入式設備中用來啟動操作系統內核的一段程序。 uboot(universal bootloader)是一種可以用於多種嵌入式CPU的BootLoader程序,換言之,uboot是bootloader的一個子集。 uboot的核心作用就是啟動操作系統內核

Userland

 Userland Userland 分成User Space & Kernel Space內存保護和硬件保護,防止惡意或錯誤的軟件行為 User Space 指操作系統中位於Kernel之外的所有代碼,例如操作系統都預裝了各種功能的工具、編程語言和圖形工具,這些都是User Space控制。 User Space不能直接操作系统资源必須通過system call,才能向Kernel發出指令。 Kernel Space 控制系統資源處理驅動程序,較為底層核心的操作