最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

ourdev_630473DUITNH

IT圈 admin 18浏览 0评论

2024年10月28日发(作者:弭慧月)

ATMEL ARM9 LINUX移植文档 1/14

ATMEL ARM9 Linux移植文档

基于Linux UVC的MJPEG-Streamer网络摄像机实现

基于Mplayer和USB声卡的网络收音机实现

本文档适用于AT91SAM9260 AT91SAM9G20芯片

QQ:632124280

ATMEL ARM9 LINUX移植文档 2/14

1. 配置及编译Linux内核文件

首先配置默认配置文件,以下针对at91sam9g20/at91sam9260芯片。

>make at91sam9g20ek_defconfig

默认的配置成功后,需要加入内核对NFS根文件系统,YAFFS文件系统,USB声卡支持以及Linux UVC

设备的支持功能。

>make menuconfig

参看以下图片中的选项,首先确认已经选择了ATMEL AT91 SoC中的AT91SAM9G20-EK。

选择系统类型

.

选择ATMEL芯片

ATMEL ARM9 LINUX移植文档 3/14

选择AT91SAM9G20-EK

配置内核支持USB声卡

进入设备驱动配置部分,进入Device Drivers选项

ATMEL ARM9 LINUX移植文档 4/14

首先选择Sound Card Support

选择 USB Sound Devices选项

ATMEL ARM9 LINUX移植文档 5/14

选中 USB Sound Devices选项下面的所有选项

配置 Linux UVC设备,也就是对USB摄像头的支持

关于 Linux UVC的详细资料可以查看/uvc/

首先进入Multimedia support选项

ATMEL ARM9 LINUX移植文档 6/14

选择Video Capture adapters选项

选择V4L USB devices选项

ATMEL ARM9 LINUX移植文档 7/14

选择 USB Video CLASS(UVC)选项和UVC input events device support选项

配置对NFS根文件系统的支持

选择Network File System中的选项,注意对根文件系统的支持

ATMEL ARM9 LINUX移植文档 8/14

配置文件系统中对YAFFS2文件系统的支持

配置结束后,保存退出。

然后编译内核

>make uImage

假设开发板中烧入了bootstrap和u-boot。而且在U-boot中设定了IP地址以及MAC地址等参数。

利用tftp传输uImage

打开tftpd32,指定uImage文件所在位置,PC主机的IP地址,开发板的IP地址,需要发送的文件

名uImage,点击“Put”开始发送。

另外在U-boot命令行中键入命令接收tftp文件:

>tftp 0x22200000 uImage

将tftp传输的uImage文件接收到内存0x22200000处。

下图是配置示例。

ATMEL ARM9 LINUX移植文档 9/14

在U-boot中可以设定bootm参数,bootargs参数,开发板上电后能自动运行。

假设PC端Linux环境已经开启了NFS功能,设置bootargs参数实现在开发板上电后自动挂载PC

Linux中的文件系统。假设根文件系统在PC Linux的/home/target文件夹中。

>setenv bootargs root=/dev/nfs rw nfsroot=192.168.1.50:/home/target

ip=192.168.1.25:192.168.1.50:192.168.1.1:255.255.255.0:at91:eth0:off console=ttyS0,115200

>saveenv

重启开发板,超级终端输出U-boot启动信息,Linux内核启动信息,根文件系统信息,最后停留在

根文件系统的login提示处,输入用户名:root后回车,系统进入shell。

Freeing init memory: 120K

login:root

进入根文件系统的根目录下的camera目录中:

>cd /camera

在该目录中已经存放了预编译后的mjpeg-streamer运行所需的可执行文件,动态库及运行脚本。

其中即为脚本文件,其内容为:

#--------------------------------------------------------------------------------------------------

#! /bin/sh

boa #启动boa网络服务器

./mjpg_streamer -i "./input_" -o "./output_ -w /www"

exit 0

#--------------------------------------------------------------------------------------------------

MJPG-streamer [529]: starting application

MJPG Streamer Version.: 2.0

MJPG-streamer [529]: MJPG Streamer Version.: 2.0

i: Using V4L2 device.: /dev/video0

MJPG-streamer [529]: Using V4L2 device.: /dev/video0

输出MJPG-streamer的启动信息如下:

运行该脚本

>./

ATMEL ARM9 LINUX移植文档 10/14

i: Desired Resolution: 640 x 480

MJPG-streamer [529]: Desired Resolution: 640 x 480

i: Frames Per Second.: 5

MJPG-streamer [529]: Frames Per Second.: 5

i: : MJPEG

MJPG-streamer [529]: : MJPEG

o: : /www/

MJPG-streamer [529]: : /www/

o: HTTP : 8080

MJPG-streamer [529]: HTTP : 8080

o: username:password.: disabled

MJPG-streamer [529]: username:password.: disabled

o: : enabled

MJPG-streamer [529]: : enabled

MJPG-streamer [529]: starting input plugin

MJPG-streamer [529]: starting output plugin: ./output_ (ID: 00)

在PC端,可以打开PC端代理软件,运行界面如下:

点击”Connect”开始预览,其中IP地址192.168.1.25为开发板地址,端口为8080。

ATMEL ARM9 LINUX移植文档 11/14

另外在根文件系统中已经包含了boa服务器,在脚本中也已经启动了boa服务器,在PC端打开

浏览器,地址栏中输入:

192.168.1.25:8080

运行后的界面如下:

ATMEL ARM9 LINUX移植文档 12/14

利用USB声卡实现网络收音机

插入USB声卡,超级终端中输出信息:

usb 1-2: new full speed USB device using at91_ohci and address 3

input: USB AUDIO as /devices/platform/at91_ohci/usb1/1-2/1-2:1.3/input/input2

generic-usb 0003:1130:F211.0001: input: USB HID v1.10 Device [USB AUDIO ] on

usb-at91-2/input3

input: USB AUDIO as /devices/platform/at91_ohci/usb1/1-2/1-2:1.4/input/input3

generic-usb 0003:1130:F211.0002: input: USB HID v1.10 Device [USB AUDIO ] on

usb-at91-2/input4

利用mplayer播放mp3文件

>mplayer 3

输出运行信息:

MPlayer 1.0rc2-4.3.3 (C) 2000-2007 MPlayer Team

CPU: ARM

Playing 3.

Audio file file format detected.

Clip info:

Title: 莫扎特摇篮曲

Artist: 莫扎特

Album: 伴你入睡

Year: 2004

Comment: .:: ::.

Track: 5

Genre: Goa

==============================================================

Requested audio codec family [mp3] (afm=mp3lib) not available.

Enable it at compilation.

Opening audio decoder: [ffmpeg] FFmpeg/libavcodec audio decoders

invalid new backstep 590

AUDIO: 44100 Hz, 2 ch, s16le, 192.0 kbit/13.61% (ratio: 24000->176400)

Selected audio codec: [ffmp3] afm: ffmpeg (FFmpeg MPEG layer-3 audio decoder)

==============================================================

AO: [oss] 44100Hz 2ch s16le (2 bytes per sample)

Video: no video

说明mplayer可以正常播放,并且耳机在耳机中听到了音乐。

ATMEL ARM9 LINUX移植文档 13/14

要收听网络上的音频信息,必须能连接到外网,下面Ping

>ping

PING (202.102.75.161): 56 data bytes

64 bytes from 202.102.75.161: seq=0 ttl=55 time=7.885 ms

64 bytes from 202.102.75.161: seq=1 ttl=55 time=27.487 ms

64 bytes from 202.102.75.161: seq=2 ttl=55 time=25.455 ms

64 bytes from 202.102.75.161: seq=3 ttl=55 time=7.758 ms

64 bytes from 202.102.75.161: seq=4 ttl=55 time=13.620 ms

能连接外网。

下面用mplayer播放外网的网络电台链接:

>mplayer mms:///pop/

MPlayer 1.0rc2-4.3.3 (C) 2000-2007 MPlayer Team

CPU: ARM

Playing mms:///pop/.

STREAM_ASF, URL: mms:///pop/

Resolving for

Connecting to server [58.215.37.216]:

Connected

unknown object

file object, packet length = 5493 (5493)

unknown object

stream object, stream ID: 2

unknown object

unknown object

data object

mmst packet_length = 5493

Cache size set to 64 KBytes

Cache fill: 0.00% (0 bytes)

ASF file format detected.

[asfheader] Audio stream found, -aid 1

[asfheader] Audio stream found, -aid 2

==============================================================

Opening audio decoder: [libwma] libwma Rockbox-based WMA decoder

AUDIO: 48000 Hz, 2 ch, s16le, 128.0 kbit/8.33% (ratio: 16002->192000)

Selected audio codec: [libwmav2] afm: libwma (DivX audio v2 (libwma))

==============================================================

AO: [oss] 48000Hz 2ch s16le (2 bytes per sample)

Video: no video

A:1838682.6 (510:44:42.6) of 2133437440.0 (59652:19:24.7) ??,?% 3%

ATMEL ARM9 LINUX移植文档 14/14

实现的硬件平台,USB供电,串口连接超级终端,两个USB HOST用于连接USB摄像头和USB声卡,一

个网口用于实现NFS和连接外网。

QQ 632124280

2024年10月28日发(作者:弭慧月)

ATMEL ARM9 LINUX移植文档 1/14

ATMEL ARM9 Linux移植文档

基于Linux UVC的MJPEG-Streamer网络摄像机实现

基于Mplayer和USB声卡的网络收音机实现

本文档适用于AT91SAM9260 AT91SAM9G20芯片

QQ:632124280

ATMEL ARM9 LINUX移植文档 2/14

1. 配置及编译Linux内核文件

首先配置默认配置文件,以下针对at91sam9g20/at91sam9260芯片。

>make at91sam9g20ek_defconfig

默认的配置成功后,需要加入内核对NFS根文件系统,YAFFS文件系统,USB声卡支持以及Linux UVC

设备的支持功能。

>make menuconfig

参看以下图片中的选项,首先确认已经选择了ATMEL AT91 SoC中的AT91SAM9G20-EK。

选择系统类型

.

选择ATMEL芯片

ATMEL ARM9 LINUX移植文档 3/14

选择AT91SAM9G20-EK

配置内核支持USB声卡

进入设备驱动配置部分,进入Device Drivers选项

ATMEL ARM9 LINUX移植文档 4/14

首先选择Sound Card Support

选择 USB Sound Devices选项

ATMEL ARM9 LINUX移植文档 5/14

选中 USB Sound Devices选项下面的所有选项

配置 Linux UVC设备,也就是对USB摄像头的支持

关于 Linux UVC的详细资料可以查看/uvc/

首先进入Multimedia support选项

ATMEL ARM9 LINUX移植文档 6/14

选择Video Capture adapters选项

选择V4L USB devices选项

ATMEL ARM9 LINUX移植文档 7/14

选择 USB Video CLASS(UVC)选项和UVC input events device support选项

配置对NFS根文件系统的支持

选择Network File System中的选项,注意对根文件系统的支持

ATMEL ARM9 LINUX移植文档 8/14

配置文件系统中对YAFFS2文件系统的支持

配置结束后,保存退出。

然后编译内核

>make uImage

假设开发板中烧入了bootstrap和u-boot。而且在U-boot中设定了IP地址以及MAC地址等参数。

利用tftp传输uImage

打开tftpd32,指定uImage文件所在位置,PC主机的IP地址,开发板的IP地址,需要发送的文件

名uImage,点击“Put”开始发送。

另外在U-boot命令行中键入命令接收tftp文件:

>tftp 0x22200000 uImage

将tftp传输的uImage文件接收到内存0x22200000处。

下图是配置示例。

ATMEL ARM9 LINUX移植文档 9/14

在U-boot中可以设定bootm参数,bootargs参数,开发板上电后能自动运行。

假设PC端Linux环境已经开启了NFS功能,设置bootargs参数实现在开发板上电后自动挂载PC

Linux中的文件系统。假设根文件系统在PC Linux的/home/target文件夹中。

>setenv bootargs root=/dev/nfs rw nfsroot=192.168.1.50:/home/target

ip=192.168.1.25:192.168.1.50:192.168.1.1:255.255.255.0:at91:eth0:off console=ttyS0,115200

>saveenv

重启开发板,超级终端输出U-boot启动信息,Linux内核启动信息,根文件系统信息,最后停留在

根文件系统的login提示处,输入用户名:root后回车,系统进入shell。

Freeing init memory: 120K

login:root

进入根文件系统的根目录下的camera目录中:

>cd /camera

在该目录中已经存放了预编译后的mjpeg-streamer运行所需的可执行文件,动态库及运行脚本。

其中即为脚本文件,其内容为:

#--------------------------------------------------------------------------------------------------

#! /bin/sh

boa #启动boa网络服务器

./mjpg_streamer -i "./input_" -o "./output_ -w /www"

exit 0

#--------------------------------------------------------------------------------------------------

MJPG-streamer [529]: starting application

MJPG Streamer Version.: 2.0

MJPG-streamer [529]: MJPG Streamer Version.: 2.0

i: Using V4L2 device.: /dev/video0

MJPG-streamer [529]: Using V4L2 device.: /dev/video0

输出MJPG-streamer的启动信息如下:

运行该脚本

>./

ATMEL ARM9 LINUX移植文档 10/14

i: Desired Resolution: 640 x 480

MJPG-streamer [529]: Desired Resolution: 640 x 480

i: Frames Per Second.: 5

MJPG-streamer [529]: Frames Per Second.: 5

i: : MJPEG

MJPG-streamer [529]: : MJPEG

o: : /www/

MJPG-streamer [529]: : /www/

o: HTTP : 8080

MJPG-streamer [529]: HTTP : 8080

o: username:password.: disabled

MJPG-streamer [529]: username:password.: disabled

o: : enabled

MJPG-streamer [529]: : enabled

MJPG-streamer [529]: starting input plugin

MJPG-streamer [529]: starting output plugin: ./output_ (ID: 00)

在PC端,可以打开PC端代理软件,运行界面如下:

点击”Connect”开始预览,其中IP地址192.168.1.25为开发板地址,端口为8080。

ATMEL ARM9 LINUX移植文档 11/14

另外在根文件系统中已经包含了boa服务器,在脚本中也已经启动了boa服务器,在PC端打开

浏览器,地址栏中输入:

192.168.1.25:8080

运行后的界面如下:

ATMEL ARM9 LINUX移植文档 12/14

利用USB声卡实现网络收音机

插入USB声卡,超级终端中输出信息:

usb 1-2: new full speed USB device using at91_ohci and address 3

input: USB AUDIO as /devices/platform/at91_ohci/usb1/1-2/1-2:1.3/input/input2

generic-usb 0003:1130:F211.0001: input: USB HID v1.10 Device [USB AUDIO ] on

usb-at91-2/input3

input: USB AUDIO as /devices/platform/at91_ohci/usb1/1-2/1-2:1.4/input/input3

generic-usb 0003:1130:F211.0002: input: USB HID v1.10 Device [USB AUDIO ] on

usb-at91-2/input4

利用mplayer播放mp3文件

>mplayer 3

输出运行信息:

MPlayer 1.0rc2-4.3.3 (C) 2000-2007 MPlayer Team

CPU: ARM

Playing 3.

Audio file file format detected.

Clip info:

Title: 莫扎特摇篮曲

Artist: 莫扎特

Album: 伴你入睡

Year: 2004

Comment: .:: ::.

Track: 5

Genre: Goa

==============================================================

Requested audio codec family [mp3] (afm=mp3lib) not available.

Enable it at compilation.

Opening audio decoder: [ffmpeg] FFmpeg/libavcodec audio decoders

invalid new backstep 590

AUDIO: 44100 Hz, 2 ch, s16le, 192.0 kbit/13.61% (ratio: 24000->176400)

Selected audio codec: [ffmp3] afm: ffmpeg (FFmpeg MPEG layer-3 audio decoder)

==============================================================

AO: [oss] 44100Hz 2ch s16le (2 bytes per sample)

Video: no video

说明mplayer可以正常播放,并且耳机在耳机中听到了音乐。

ATMEL ARM9 LINUX移植文档 13/14

要收听网络上的音频信息,必须能连接到外网,下面Ping

>ping

PING (202.102.75.161): 56 data bytes

64 bytes from 202.102.75.161: seq=0 ttl=55 time=7.885 ms

64 bytes from 202.102.75.161: seq=1 ttl=55 time=27.487 ms

64 bytes from 202.102.75.161: seq=2 ttl=55 time=25.455 ms

64 bytes from 202.102.75.161: seq=3 ttl=55 time=7.758 ms

64 bytes from 202.102.75.161: seq=4 ttl=55 time=13.620 ms

能连接外网。

下面用mplayer播放外网的网络电台链接:

>mplayer mms:///pop/

MPlayer 1.0rc2-4.3.3 (C) 2000-2007 MPlayer Team

CPU: ARM

Playing mms:///pop/.

STREAM_ASF, URL: mms:///pop/

Resolving for

Connecting to server [58.215.37.216]:

Connected

unknown object

file object, packet length = 5493 (5493)

unknown object

stream object, stream ID: 2

unknown object

unknown object

data object

mmst packet_length = 5493

Cache size set to 64 KBytes

Cache fill: 0.00% (0 bytes)

ASF file format detected.

[asfheader] Audio stream found, -aid 1

[asfheader] Audio stream found, -aid 2

==============================================================

Opening audio decoder: [libwma] libwma Rockbox-based WMA decoder

AUDIO: 48000 Hz, 2 ch, s16le, 128.0 kbit/8.33% (ratio: 16002->192000)

Selected audio codec: [libwmav2] afm: libwma (DivX audio v2 (libwma))

==============================================================

AO: [oss] 48000Hz 2ch s16le (2 bytes per sample)

Video: no video

A:1838682.6 (510:44:42.6) of 2133437440.0 (59652:19:24.7) ??,?% 3%

ATMEL ARM9 LINUX移植文档 14/14

实现的硬件平台,USB供电,串口连接超级终端,两个USB HOST用于连接USB摄像头和USB声卡,一

个网口用于实现NFS和连接外网。

QQ 632124280

发布评论

评论列表 (0)

  1. 暂无评论