1. 程式人生 > >香橙派PC筆記-05-編譯linux核心和UVC攝像頭驅動筆記

香橙派PC筆記-05-編譯linux核心和UVC攝像頭驅動筆記

香橙派PC筆記-05-編譯linux核心和UVC攝像頭驅動筆記

我的筆記和資料全共享在雲盤:

沒有密碼,歡迎下載~~~~~~

材料:

香橙派:orangepi PC

TF卡:用原來的三星8G CLASS 10 TF卡裝LUBUNTU

電源介面卡:1A的帶不動,啟動卡死,改用某A10S盒子的5V/2A電源OK(內徑1.7MM外徑4MMDC)

系統:UBUNTU 12.04LTS 64BIT

核心原始碼資源

串列埠終端:minicom 終端,用於啟動視訊監控除錯,安裝方法自己百度~~

昨晚嘗試編譯 mjpg-streamer 視訊監控軟體 時發現Lubuntu核心沒有UVC 驅動,於是嘗試自己編譯驅動,

後續上 編譯 mjpg-streamer的視訊監控筆記~~~

1、下載H3 的linux原始碼資源

【Orange Pi PC試用體驗】05-編譯linux核心和UVC攝像頭驅動

1、解壓h3-lichee-1.0.tar.gz

$ tar -vzxf h3-lichee-1.0.tar.gz 

$cd  lichee

Lichee 特意查了下,原來就是荔枝的意思!!!  音譯的!

裡面有簡單的編譯幫助文件,README ,媽媽的不好用,

./build.sh 這個指令碼才爽,直接執行

#./build.sh  出現提示:

ERROR: run \'./build.sh config\' setup env

開啟看build.sh 指令碼,發現呼叫的是別的指令碼,於是開啟看看,找到幫助說明

#./build.sh -h  列出幫助文件

/lichee$ ./build.sh -h

Top level build script for lichee

Examples:

1. Set the config option and build

    $ ./build.sh config

2. Build lichee using preset config value

    $ ./build.sh

3. Pack a linux, dragonboard image

    $ ./build.sh pack

4. Build lichee using command argument

    $ ./build.sh -p 

flags:

  -p,--platform:  platform to build, e.g. sun9iw1p1 (default: \'\')

  -k,--kernel:  kernel to build, e.g. 3.3 (default: \'linux-3.4\')

  -b,--board:  board to build, e.g. evb (default: \'\')

  -m,--module:  module to build, e.g. buildroot, kernel, uboot, clean

                (default: \'\')

  -c,--business:  business to kernel config, e.g. stardard, security

                  (default: \'\')

  -h,--[no]help:  show this help (default: false)

看上面的幫助說明,一步一步操作實驗並做筆記:

./build.sh config

All available chips:

   0. sun6i

   1. sun8iw6p1

   2. sun8iw7p1

   3. sun9iw1p1

選 chips ,到底是哪個呢?看上面的名字好熟悉,好像在哪見過,於是發現

sun8iw7p1_android_orangepi_pc_uart0_v0.8.0.rar   這個android映象名字裡面有,於是選擇

sun8iw7p1

輸入2 ,出現選擇平臺

All available platforms:

   0. android

   1. dragonboard

   2. linux

Choice:

我選擇 2,linux系統

not set business, to use default!

LICHEE_BUSINESS=

using kernel \'linux-3.4\':

All available boards:

   0. dolphin-cmcc-wasu-p1

   1. dolphin-p1

   2. dolphin-perf

   3. fpga

Choice: 

出現選擇主機板,我不清楚了,隨便選個試試~~

於是選擇了2

,全選2,開始編譯了~~~!!~

編譯完成!!等了好久哦!!!!

於是在這裡

/lichee/out/sun8iw7p1/linux/common

找到uImage 、rootfs.ext4檔案系統等,燒到TF卡估計可以引導啟動linux,這暫時不是我需要的

我要的是uvc驅動,於是在下面目錄下找到

lichee/out/sun8iw7p1/linux/common/buildroot/target/lib/modules/3.4.39/uvcvideo.ko

天助我也!沒想到這個配置了uvc驅動,於是把它用u盤靠到香橙派隨意一個位置,我是直接在掛載的u盤裡直接安裝的

#mount -t vfat /dev/sda1 /mnt

#cd /mnt

#sudo insmod uvcvideo.ko

沒想到安裝成功!

於是插上USB攝像頭,檢視 /dev下是否有對應裝置

$ ls /dev/vi*

/dev/video0

OK成功!!!

拔掉USB攝像頭後 ls就沒有video 了

啟動mjpg-streamer-code-182/mjpg-streamer$ sudo ./start.sh &

mjpg-streamer的啟動指令碼 start.sh 的內容:

export LD_LIBRARY_PATH="$(pwd)"

./mjpg_streamer -i "./input_uvc.so" -o "./output_http.so -w ./www"

啟動後資訊:

[email protected]:~/app/mjpg-streamer-code-182/mjpg-streamer$ sudo ./start.sh &

[1] 2223

[email protected]:~/app/mjpg-streamer-code-182/mjpg-streamer$ MJPG Streamer Version: svn rev: 

 i: Using V4L2 device.: /dev/video0

 i: Desired Resolution: 640 x 480

 i: Frames Per Second.: 5

 i: Format............: MJPEG

Adding control for Pan (relative)

Control exists: File exists

Adding control for Tilt (relative)

Control exists: File exists

Adding control for Pan Reset

Control exists: File exists

Adding control for Tilt Reset

Control exists: File exists

Adding control for Pan/tilt Reset

Control exists: File exists

Adding control for Focus (absolute)

Control exists: File exists

mapping control for Pan (relative)

UVCIOC_CTRL_MAP - Error: No such file or directory

mapping control for Tilt (relative)

UVCIOC_CTRL_MAP - Error: No such file or directory

mapping control for Pan Reset

UVCIOC_CTRL_MAP - Error: No such file or directory

mapping control for Tilt Reset

UVCIOC_CTRL_MAP - Error: No such file or directory

mapping control for Pan/tilt Reset

UVCIOC_CTRL_MAP - Error: No such file or directory

mapping control for Focus (absolute)

UVCIOC_CTRL_MAP - Error: No such file or directory

mapping control for LED1 Mode

UVCIOC_CTRL_MAP - Error: No such file or directory

mapping control for LED1 Frequency

UVCIOC_CTRL_MAP - Error: No such file or directory

mapping control for Disable video processing

UVCIOC_CTRL_MAP - Error: No such file or directory

mapping control for Raw bits per pixel

UVCIOC_CTRL_MAP - Error: No such file or directory

 o: www-folder-path...: ./www/

 o: HTTP TCP port.....: 8080

 o: username:password.: disabled

 o: commands..........: enabled

或IP地址加  :8080 開啟網站

【Orange Pi PC試用體驗】05-編譯linux核心和UVC攝像頭驅動

1、我上傳的可以在香橙派上執行的原始碼和程式

mjpg-streamer-code-182.tar.gz

內含UVC驅動,先解壓,

解壓進到 cd mjpg-streamer-code-182/mjpg-streamer/run_mjpg-streamer/

安裝驅動和執行 mjpg-streamer同上面筆記

mjpg-streamer的編譯筆記下章分解~~

預告:記錄在電腦交叉編譯和香橙派原生編譯mjpg-streamer筆記

2、

3、檢視香橙派的系統版本:

#$ cat /proc/version

Linux version 3.2.0-29-generic ([email protected]) (gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) ) #46-Ubuntu SMP Fri Jul 27 17:03:23 UTC 2012

4、

http://bbs.ickey.cn/community/forum.php?mod=viewthread&tid=43908

相關推薦

香橙PC筆記-05-編譯linux核心UVC攝像頭驅動筆記

香橙派PC筆記-05-編譯linux核心和UVC攝像頭驅動筆記 我的筆記和資料全共享在雲盤: 沒有密碼,歡迎下載~~~~~~ 材料: 香橙派:orangepi PC TF卡:用原來的三星8G CLASS 10 TF卡裝LUBUNTU 電源介面卡:1A的帶

【學習筆記編譯Linux核心(下)---KConfig、Makefile詳解以及ARM平臺Linux核心編譯

本文主要介紹Linxu2.6的核心配置系統。 如果你瀏覽一下原始碼目錄,就可以發現原始碼目錄及其子目錄中有很多的KConfig檔案和Makefile檔案。這些檔案什麼作用呢?正是這些檔案組成了Li

基於MT7688模組的開發筆記4——編譯Linux系統Uboot

之前搭建Linux系統的時候,在make dep之後再make的時候老是出錯,實在無語至極!後來使用Ubuntu12.4.2版本的系統,居然成功的通過了編譯,韌體也生成了。 一、以下軟體是必須要有的。 apt-get install -y libncurses5-dev a

zynq學習筆記四:編譯linux核心

cd ~/build git clone https://github.com/Xilinx/linux-xlnx.git//獲取原始碼 cd linux-xlnx git checkout xilinx-v2015.2//改版本與網上大多數教程匹配 make distcl

【讀書筆記】《Linux核心設計與實現》程序管理與程序排程

大學跟老師做嵌入式專案,寫過I2C的裝置驅動,但對Linux核心的瞭解也僅限於此。Android系統許多導致root的漏洞都是核心中的,研究起來很有趣,但看相關的分析文章總感覺隔著一層窗戶紙,不能完全理會。所以打算系統的學習一下Linux核心。買了兩本書《Linux核心設計與實現(第3版)》和《深入理解Lin

Linux核心設計與實現 總結筆記(第二章)

一、Linux核心中的一些基本概念 核心空間:核心可獨立於普通應用程式,它一般處於系統態,擁有受保護的記憶體空間和訪問硬體裝置的所有許可權。這種系統態和被保護起來的記憶體空間,稱為核心空間。 程序上下文:當應用程式執行一條系統呼叫,通過系統呼叫執行在核心空間,而核心被稱為執行在程序上下文中。  

Linux核心設計與實現 總結筆記(第五章)系統呼叫

系統呼叫 核心提供了使用者程序和核心互動的介面,使得應用程式可以受限制的訪問硬體裝置。 提供這些介面主要是為了保證系統穩定可靠,避免應用程式恣意妄行。   一、核心通訊 系統呼叫在使用者空間程序和硬體裝置之間新增中間才能。作用有三: 為使用者空間提供一種硬體的抽象介面。無需理會物理

Linux核心設計與實現 總結筆記(第六章)核心資料結構

核心資料結構 Linux核心實現了這些通用資料結構,而且提倡大家在開發時重用。 核心開發者應該儘可能地使用這些資料結構,而不要自作主張的山寨方法。 通用的資料結構有以下幾種:連結串列、佇列、對映和二叉樹   一、連結串列 1.1 單向連結串列和雙向連結串列   1.2 環形

編譯linux核心原始碼,安裝、刪除核心

Linux核心編譯、安裝流程 本部落格屬於原創,轉載請註明來源 此處只講linux核心編譯步驟至於安裝虛擬機器,安裝ubuntu作業系統請自行百度 環境資訊: Linux作業系統:ubuntu16.04 核心版本:4.15.0-29-generic 需要編譯和安裝的核心原始碼

如何通過編譯Linux核心開啟IPVS(LVS)的debug模式

前言 為了定位keepalived VIP的問題, 一步一步定位到IPVS, IPVS預設是沒有開啟Debug模式的, 若需要開啟Debug模式需要重新編譯IPVS模組載入後才行, 最好的方式當然是僅僅編譯IPVS模組就行, 但是實踐過程中發現單獨編譯IPVS模組存在諸多問題, 暫且先放一放, 後續再整理整

linux核心V2.6.11學習筆記(1)--pid點陣圖

開始系統的學習linux核心了,手頭的參考書是<<深入理解linux核心>>第三版,裡面是基於2.6.11版來講解的,所以我這裡的筆記也是基於這個版本.我的目的是將該書中我覺得講的不太詳細或者可以展開討論理解的地方寫出來供別人參考.計劃三個月內精讀完該書,爭取每週更新約三次筆記

linux核心V2.6.11學習筆記(2)--listhlist

這兩個資料結構在核心中隨處可見,不得不拿出來單獨講講.這兩個資料結構都是為了方便核心開發者在使用到類似資料結構的時候不必自行開發(雖然不難),因此它們需要做到足夠的"通用性",也就是說,今天可以用它們做一個存放程序的連結串列,明天同樣可以做一個封裝定時器的連結串列.兩個資料結構的對外API封裝了針對它

linux核心網路協議棧學習筆記(6)

本篇討論IP包的收發(暫不包括路由) 先來看inet_init, 首先是呼叫proto_register,註冊了tcp_prot, udp_prot, raw_prot,其中proto_register前半部分是初始化各種slab_cache,後半部分把這些struct

初學者編譯Linux核心,最簡單ko模組

#include <linux/init.h> #include <linux/kernel.h> #include <linux/module.h> MODULE_LICENSE("GPL"); static int __init helloko_init() {/* K

ubuntu 10.10下編譯linux核心make menuconfig報 'make menuconfig' requires the ncurses libraries 等錯誤

Problem:在ubuntu 10.10下編譯linux核心出現如下錯誤:[email protected]:/$sudo  make menuconfig *** Unable to find the ncurses libraries or the ***

交叉編譯linux核心,報undefined reference *** 錯誤

錯誤提示,與built-in.o檔案相關的引用錯誤,導致無法連線生成vmlinux.o檔案 解決:用source insight在原始碼中查詢 報錯的引用量所在的位置(本次錯誤中提示未定義的量為:omap_mcbsp_dai) ,得到omap_mcbsp_dai定義的檔案

手工編譯Linux核心rpm包

在實際的生產環境中由於一些bug或核心功能限制需要開啟核心的一些引數,就要用到手工編譯核心,編譯方法下面介紹如下: 編譯環境 centos7.2 min安裝 安裝開發工具 # yum install gcc* ncurses-devel bc

Linux 核心完全註釋》閱讀筆記

在閱讀原始碼之前,有必要對Linux核心的體系結構、原始碼的目錄結構有個巨集觀地瞭解,《Linux核心完全註釋》非常詳細地介紹了這方面的內容,所以 這裡僅僅進行概述性的討論,以便讓所有的筆記構成一個整體。     這裡主要介紹四部分內容。 1. Monolithic ke

編譯linux核心遇到的問題

問題一: 編譯linux核心(OK210),多個地方出現這個問題: error: too few arguments to function 'mmc_suspend_host' 網上查了下mmc_s

在Ubuntu 18.04上編譯Linux核心

一、環境說明 編譯環境我選擇了Ubuntu 18.04的虛擬機器,核心截止2018-10-14最新版為4.18.14,筆者即將編譯這個版本 請確保磁碟空間足夠,筆者之前20G編譯到最後空間不足,還得重來 二、編譯步驟 下載核心原始碼 下載到的檔案存