Work of Diploma - Stephan Robert

Transcription

Work of Diploma - Stephan Robert
People Detection in Video
Surveillance
based on Atom development kit
Author
Professors
Department
Date
:
:
:
:
Reussner Matthieu
S.Robert A.Srinivas
”TIC” & ”Information Science and Engineering”
June 20, 2012
”The value of an idea lies in the using of it.” Thomas Edison
Reussner Matthieu
Acknowledgements
First of all, I would like to thank those at PES-IT for allowing me to do my internship in Bangalore, India.
I would especially like to thanks professor A.Srinivas for his time, support and making me feel at home
in India.
I would also like to thanks professor S.Robert for giving me the opportunity to travel between Switzerland, India, and America for my studies
The following list comprises some of the peoples who helped me in any form during the realization of my
work of bachelor. My deepest gratitude to all of the below.
• Ahalya Srinivasan
• Aude Ray
• Kumari Radha
• Michael Haney
• Nitheesh K L
• Sarah Carbonel
• Valentin Delaye
• Valérie C. Fazan
Lastly, I wish to thank my parents Michel Reussner and Mireille Bourquin Reussner for their continuous
support.
Reussner Matthieu
Contents
1 Scope statement
1.1 Project objective . . . . . . . .
1.2 Proposed Solution . . . . . . .
1.3 Requirements . . . . . . . . . .
1.4 Deliverables . . . . . . . . . . .
1.4.1 Proof of concept . . . .
1.4.2 Report . . . . . . . . . .
1.4.3 User documentation . .
1.4.4 Presentation documents
1.5 Deadline . . . . . . . . . . . . .
1.6 Owner of Deliverables . . . . .
1.7 Milestones . . . . . . . . . . . .
1.8 Approved change requests . . .
1.9 Acceptance criteria . . . . . . .
1.10 Signatures . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
1
1
1
1
1
2
2
2
2
2
3
3
3
3
2 Summary
4
3 Introduction
5
4 Planning
4.1 Part One of the project (45 days) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2 Part Two of the project (45 days) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
6
7
5 Materials and software
R AtomTM Innovation Kit
5.1 Intel
5.1.1 Overview . . . . . . . .
5.1.2 Specifications[2] . . . . .
5.2 CompactFlash card . . . . . . .
5.2.1 Overview . . . . . . . .
5.3 Gnu/Linux Gentoo . . . . . . .
5.3.1 Overview . . . . . . . .
5.3.2 Specifications . . . . . .
5.4 OpenTLD . . . . . . . . . . . .
5.4.1 Overview . . . . . . . .
5.4.2 Specifications . . . . . .
5.5 OpenCV . . . . . . . . . . . . .
5.5.1 Overview . . . . . . . .
5.5.2 Specifications . . . . . .
5.6 The Spread Toolkit . . . . . . .
5.6.1 Overview . . . . . . . .
Board 2
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
8
8
8
8
9
9
9
9
10
10
10
10
10
11
11
11
11
i
Reussner Matthieu
.
.
.
.
.
.
.
.
11
11
12
12
12
12
12
12
6 Schema
6.1 Global . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.2 Sensor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
13
13
7 Installation
7.1 Operating system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.1.1 Downloading and installing the base system . . . . . . . . . . . . .
7.1.2 Enter the new installation environment . . . . . . . . . . . . . . .
7.1.3 Installing and configuring the Kernel . . . . . . . . . . . . . . . . .
7.1.4 Installing and configuring the Boot-loader . . . . . . . . . . . . . .
7.1.5 Configuring the Network . . . . . . . . . . . . . . . . . . . . . . . .
7.1.6 Installing and configuring of miscellaneous applications and library
7.2 Messaging service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.2.1 Installing the Spread toolkit . . . . . . . . . . . . . . . . . . . . . .
7.2.2 Configuring the Spread toolkit . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
15
15
15
17
17
17
18
18
18
19
19
8 Transmission of data
8.1 Schema . . . . . . .
8.2 Overview . . . . . .
8.3 Technical description
8.4 Implementation . . .
8.4.1 Data . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
20
20
20
20
21
21
9 Notifications
9.1 Schema . . . . . . .
9.2 Technical description
9.3 Implementation . . .
9.3.1 libcurl . . . .
9.3.2 libotr . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
22
22
22
22
23
23
10 Results
10.1 Definition . . . .
10.2 Methodology . .
10.3 Raw data . . . .
10.4 Interpretation . .
10.4.1 Recall . .
10.4.2 Precision
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
24
24
24
24
24
25
25
.
.
.
.
.
.
.
26
26
26
26
27
27
27
27
5.7
5.8
5.9
5.6.2 Specifications . . . .
Microsoft LifeCam VX-1000
5.7.1 Specifications[7] . . .
Library Curl . . . . . . . .
5.8.1 Overview . . . . . .
5.8.2 Specifications . . . .
Library Off-The-Record . .
5.9.1 Overview . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
. . . . . .
Webcam . . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
11 Problems
11.1 Network . . . . . . . . . . . . . . . .
11.1.1 Block of specific website . . .
11.1.2 Man In The Middle . . . . .
11.1.3 General Block . . . . . . . . .
11.1.4 Consequences on the project
11.2 Predator . . . . . . . . . . . . . . . .
11.2.1 Consequences on the project
.
.
.
.
.
.
.
. . . . . . . .
Black - USB
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
ii
Reussner Matthieu
12 Change from the initial objectives
12.1 Reason . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12.2 Conservation of some part of the project . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28
28
28
13 Cascade of Boosted Classifiers Based on Haar-like Features
13.1 Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13.2 Theory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13.3 Generation of the Haarcascade with OpenCV . . . . . . . . . .
13.3.1 Installation of the training program . . . . . . . . . . .
13.3.2 Sources images . . . . . . . . . . . . . . . . . . . . . . .
13.3.3 Generation of the vector . . . . . . . . . . . . . . . . . .
13.3.4 Training of the classifier . . . . . . . . . . . . . . . . . .
13.4 Test of the classifier . . . . . . . . . . . . . . . . . . . . . . . .
13.4.1 Subjective assessment . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
29
29
29
30
30
30
31
32
32
32
.
.
.
.
.
.
.
.
.
.
33
33
33
33
33
34
34
35
35
35
35
14 New notification system
14.1 Schema . . . . . . . . . . . . . . .
14.1.1 Schema of the Wall . . . . .
14.1.2 Logical connection . . . . .
14.2 Implementation . . . . . . . . . . .
14.2.1 Technical description . . . .
14.3 Making . . . . . . . . . . . . . . .
14.4 Product . . . . . . . . . . . . . . .
14.5 Problems . . . . . . . . . . . . . .
14.6 Realisation . . . . . . . . . . . . .
14.6.1 Installation of the operating
15 Source code and cf images
15.1 shared . . . . . . . . . . .
15.2 wall . . . . . . . . . . . .
15.3 master . . . . . . . . . . .
15.4 sensor . . . . . . . . . . .
15.5 wall.dd . . . . . . . . . . .
15.6 sensor.dd . . . . . . . . .
16 Deployment
16.1 Required Material
16.2 Notification system
16.3 Master node . . . .
16.4 Sensor . . . . . . .
. . .
(The
. . .
. . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
system on
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
the embedded board
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
38
38
38
39
39
39
39
. . . .
Wall)
. . . .
. . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
40
40
40
40
41
.
.
.
.
.
.
.
.
.
.
.
.
17 Conclusion
42
18 Bibliography
43
43
iii
Reussner Matthieu
19 Annexes
19.1 Custom settings for Portage . . . .
19.2 Network configuration . . . . . . .
19.3 Packages configurations . . . . . .
19.4 Kernel Configuration . . . . . . . .
19.5 Persistent net rules . . . . . . . . .
19.6 Network name resolution . . . . . .
19.7 Autologin . . . . . . . . . . . . . .
19.8 Spread toolkit configuration . . . .
19.9 Record video from Webcam . . . .
19.10mount Compact flash . . . . . . .
19.11updating environment settings . .
19.12Structure of transmitted data . . .
19.13Getting around the PESIT internet
20 Work log
20.1 Week
20.2 Week
20.3 Week
20.4 Week
20.5 Week
20.6 Week
20.7 Week
20.8 Week
20.9 Week
20.10Week
20.11Week
20.12Week
20.13Week
20.14Week
20.15Week
20.16Week
20.17Week
1. .
2. .
3. .
4. .
5,6 .
7. .
8. .
9. .
10 .
11 .
12 .
13 .
14 .
15 .
16 .
17 .
18 .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
block
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
44
44
44
45
45
61
61
62
62
62
64
64
64
65
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
66
66
67
67
68
68
69
69
69
70
70
71
71
71
72
72
73
73
iv
Reussner Matthieu
List of Figures
4.1
Desired schedule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.1
5.2
5.3
5.4
5.5
5.6
Pineview board overview[1] . .
SanDisk 16Gb FlashCard[3] . .
Gentoo logo[5] . . . . . . . . .
OpenCV logo[6] . . . . . . . . .
Webcam used for the project[7]
libcurl logo[8] . . . . . . . . . .
.
.
.
.
.
.
8
9
9
10
11
12
6.1
6.2
Global schema of the project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Sensor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
14
8.1
8.2
Transmission of data across the network . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Transmission of data across the network . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
21
9.1
9.2
Notifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Notification display by a email client (mutt) . . . . . . . . . . . . . . . . . . . . . . . . . .
22
23
13.1 Steps of haar-like features detection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29
14.1 The Wall . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14.2 The Wall . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33
34
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
6
v
Reussner Matthieu
List of Listings
7.1 Partition on the CF card . . . . . . . . . . . . . . . . . . . .
7.2 Creation of the file system on the CF card . . . . . . . . . . .
7.3 Mounting partition . . . . . . . . . . . . . . . . . . . . . . . .
7.4 Downloading and extracting Gentoo stage 3 and Portage files
7.5 Changing root value . . . . . . . . . . . . . . . . . . . . . . .
7.6 Building the kernel . . . . . . . . . . . . . . . . . . . . . . . .
7.7 Installing the boot-loader . . . . . . . . . . . . . . . . . . . .
7.8 Installation and configuration of miscellaneous applications .
7.9 Installing the messaging system . . . . . . . . . . . . . . . . .
11.1 Certificate informations . . . . . . . . . . . . . . . . . . . . .
11.2 Certificate informations . . . . . . . . . . . . . . . . . . . . .
11.3 Certificate informations . . . . . . . . . . . . . . . . . . . . .
11.4 Denying access to smtps . . . . . . . . . . . . . . . . . . . . .
13.1 Installing OpenCV on Ubuntu . . . . . . . . . . . . . . . . .
13.2 Sample from positive.txt . . . . . . . . . . . . . . . . . . . . .
13.3 Labelling . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13.4 Generation of the vector . . . . . . . . . . . . . . . . . . . . .
13.5 Training of the classifier . . . . . . . . . . . . . . . . . . . . .
14.1 Installation of the embedded system for the wall . . . . . . .
14.2 Deep copy . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14.3 Installation and configuration of miscellaneous applications .
15.1 Installation and configuration of miscellaneous applications .
15.2 Installation and configuration of miscellaneous applications .
16.1 Installation and configuration of miscellaneous applications .
16.2 Installation and configuration of miscellaneous applications .
16.3 Installation and configuration of miscellaneous applications .
19.1 Main gentoo configuration file . . . . . . . . . . . . . . . . . .
19.2 Network configuration with multicast route . . . . . . . . . .
19.3 Per-package ACCEPT KEYWORDS for profiles . . . . . . .
19.4 Feature selection . . . . . . . . . . . . . . . . . . . . . . . . .
19.5 Kernel .config . . . . . . . . . . . . . . . . . . . . . . . . . . .
19.6 Persistent configuration for network interface . . . . . . . . .
19.7 file hosts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19.8 Auto-login service . . . . . . . . . . . . . . . . . . . . . . . .
19.9 Spread main configuration file . . . . . . . . . . . . . . . . . .
19.10Webcam recorder . . . . . . . . . . . . . . . . . . . . . . . . .
19.11Mount then chroot inside cf card . . . . . . . . . . . . . . . .
19.12updating environment settings on CF card . . . . . . . . . . .
19.13Structure hosting data . . . . . . . . . . . . . . . . . . . . . .
19.14Configuring ssh connection . . . . . . . . . . . . . . . . . . .
19.15Content of authorizedkeys on vps server . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
15
16
16
16
17
17
17
18
19
26
26
27
27
30
31
31
31
32
35
36
36
38
38
40
40
41
44
44
45
45
45
61
62
62
62
63
64
64
64
65
65
vi
Reussner Matthieu
List of Tables
10.1 Result of the first part (rounded value) . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
vii
Reussner Matthieu
Glossary
Advanced Packaging Tool Default package management system for Debian. 9
HeigVD School of Business and Engineering Vaud. 2, 5
Open Source Computer Vision Library Library for computer vision. 5, 11
PES-IT PES School of Engineering is a premiere Technical Education College based in Bengaluru,
Karnataka. 2, 5
Yellowdog Updater, Modified Default package management system for RedHat. 9
viii
Reussner Matthieu
Acronyms
CCTV Closed-circuit television. 4
CF Compact Flash. 9
DARPA Defense Advanced Research Projects Agency. 11
DNS Domain Name System. 18
NSA National Security Agency (USA). 11
OpenTLD Open Track Learn Detect. 5, 10
PoI Person of Interest. 1
TAR the tape archiver. 16
UDP User Datagram Protocol. 20
VCA Video Content Analysis. 4
ix
Reussner Matthieu
1 Scope statement
1.1
Project objective
This project will develop and deliver a new tracking system. The new system will be able to select a
person on a video stream then track their movement across a large area covered by multiple movie-quality
cameras. The system will be developed to be cost effective and easy to maintain. The project should be
able to stop tracking a person for sometime then resume searching.
1.2
Proposed Solution
Project Person of Interest (PoI) will design, develop and deliver a new tracking system which will allow
user to stay focus on a specific person across a large area covered by multiple movies camera. This project
will involve the use of a video recognition system previously developed and available under license.
1.3
Requirements
The following equipment is required for the project:
R AtomTM Innovation Kit??
Intel
Movie camera One or more cameras/webcam that can be connected to the Innovation Kit??
Documentations Documentation will be provided as unfiltered1 Internet access.
1.4
1.4.1
Deliverables
Proof of concept
Disc Image A digital copy of hard drive (or SD cards) used during the project
Demo A demo board installed and configured.
1 YouTube
and Open-source projects repository must not be blocked
1
Reussner Matthieu
1.4.2
Report
A report describing the following part of the project written in English .
• Technical choices
• Configuration
• Deployment
• Tests
• Conclusions
1.4.3
User documentation
If relevant to the project usage, user documentation which states:
• How to track someone interactively
• How to resume searching someone
• How to save a pattern for later search
1.4.4
Presentation documents
All documents, videos, files, and slides used during the presentation must be included.
1.5
Deadline
At the end of the project (20th of June 2012), the following deliverables will be given to Pr. A.Srinivas
from PES-IT:
• Proof of concept
• Report
• User documentation
• Presentation documents
Only the report will be given on 20th of June to Pr. S.Robert from HeigVD. The remaining deliverables
(except the Proof of concept) will be transmitted to Pr. S.Robert during the week following the return
of M.Reussner.
1.6
Owner of Deliverables
This project is developed for two different schools PES-IT(India) and HeigVD (Switzerland). The Deliverables of the project will be owned by the two aforementioned schools.
2
Reussner Matthieu
1.7
Milestones
Every Friday at 8 pm (local time UTC+05:30), a summary of the work done during the week will be sent
to Pr. S.Robert (Pr. A.Srinivas can request a copy of these email if needed). On the 20th of April 20122 ,
an intermediate report will be give to Pr. A.Srinivas and Pr. S.Robert for review.
1.8
Approved change requests
Every change on the project has to be discussed and approved by Pr. A.Srinivas and forward to Pr.
S.Robert.
1.9
Acceptance criteria
This project evaluation will be based on
• project presentation
• project documentation
• project results
1.10
Signatures
Bengaluru, June 20, 2012
Pr. A.Srinivas (PES-IT)
2 The
Pr. S.Robert (HeigVD)
Reussner Matthieu
date was later changed to 4th of May
3
Reussner Matthieu
2 Summary
Currently, the rate at which Closed-circuit television (CCTV) are installed across the world is increasing
rapidly. From the first use in 1942 in Germany to the surveillance system in London, a lot of progress
have been made. They are now used for different purposes ranging from monitoring dangerous industrial
processes to traffic monitoring, to the fight against crime.
Since the first use of these cameras, much research has been carried out leading to tremendous development. Steady progress has led to cheaper systems, which has led to mass deployment (particuliary)
in public spaces. According to CCTV advocates, these cameras are supposed to deter crime, provide
evidence in criminal cases, and allow people to feel safer.
However, opponents of CCTV systems claim that systematic use of monitoring leads to the loss of privacy
and has a negative impact on civil liberties such as right of privacy, political meeting, etc...
The objective of this diploma project is to build an affordable Video Content Analysis (VCA) which will
be able to follow a moving object across a wide area covered by multiple sensors. An example use case
might be that of tracking a specific person in a mall if suspected of theft.
In order to achieve this goal, the specification provides two tasks which are simultaneously distinct and
complementary. The first task will be to set up a monitoring system using multiple embedded systems.
Secondarily, to integrate some intelligence into the monitoring system.
4
Reussner Matthieu
3 Introduction
This report describes the objectives and results of a Bachelor’s thesis done in collaboration between PESIT and HeigVD. This project was conducted between February 20, 2012 and June 20, 2012 in Bangalore
(Karnataka, India).
The first goal of this project is to study the capability of a tracking software developed by ”Zdenek Kalal”
during his PhD thesis. This software (called Open Track Learn Detect (OpenTLD) or ”Predator”),
visually identifies an object and tracks it wherever it moves, regardless of the object’s ability to disappear
and re-appear in the video stream. The second objective is to develop and implement an algorithm that
is demonstrative of a typical use case. Finally the last objective of this project is to distribute the search
of an object across a large area using multiple cameras plugged into multiple embedded systems.
For this project, a broad range of technologies and software were used. Among them Open Source
Computer Vision Library, OpenTLD, and ”The Spread toolkit”.
5
Task Description
11 Finalizing report
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 days
4.1
1 Writing report
Reading documentation
2
OpenTLD
3 Writing scope
Reading documentation
4
Network
Installaton configuration
5
Embedded
Installation + reading code
6
OpenTLD
7 Days off
developing Notification
8
system
transmition through Net9
work
10 Integration
Reussner Matthieu
4 Planning
Part One of the project (45 days)
1
As detailed in the work log, the project did not
follow the schedule for several reason including two
weeks of work not related to the project and various
problems with OpenTLD.
Figure 4.1: Desired schedule
6
Reussner Matthieu
4.2
Part Two of the project (45 days)
After seeing difference between the desired planning and the real one, during the first part of the project.
No real planning has been done for this part. The work done has been recorded in the work log.
7
Reussner Matthieu
5 Materials and software
5.1
R AtomTM Innovation Kit Board 2
Intel
Figure 5.1: Pineview board overview[1]
5.1.1
Overview
The kit5.1 is a fully integrated computer on one card (CPU,RAM,GPU, etc.). It was released on 11
January 2010. According to Intel[2], the kit halts the power of the previous version and is particularly
suitable for embedded device.
5.1.2
Specifications[2]
R PNV-M SC N450 1.6GHz; Intel
R PNV-D DC D410/D510/ D525
CPU Intel
R ICH8-M Chip-set
South-bridge Intel
System Memory One 200-pin SODIMM Up to 2GB DDR2 667MHz SDRAM/ One 204-pin SODIMM
4GB DDR3 800MHz SDRAM (EMX-PNV-D525)
Video Output Dual View, VGA, 18-bit LVDS, Optional 48-bit LVDS Output
High Definition Audio Codec Realtek ALC888 Supports 5.1+2-CH HD Audio
R 82583V Gigabit Ethernet
Ethernet Dual Intel
Expansion 1 PCI, 1 Mini PCI Express, CompactFlash reader
8
Reussner Matthieu
I/O 2 SATA, 4 COM, 8 USB, 16-bit GPIO
Power Type ATX/ AT Power Mode
Trusted Platform Module Infineon TPM 1.2 SLB9635 (Optional)
5.2
CompactFlash card
Figure 5.2: SanDisk 16Gb FlashCard[3]
5.2.1
Overview
Compact Flash (CF) is a ”Mass storage device” format developed in 1994 by SanDisk. It was later (1995)
standardized by the ”CompactFlash Association”.
According to the the ”CompactFlash Association”[4], even though the CompactFlash standards were first
developed for cameras, it is now broadly use in embedded systems.
5.3
Gnu/Linux Gentoo
Figure 5.3: Gentoo logo[5]
5.3.1
Overview
Gentoo5.3 Linux is an operating system based on Gnu/Linux kernel. Unlike most of other Gnu/Linux
distribution, Gentoo is a rolling release–meaning the system can be updated at any time. As all modern
distribution, Gentoo provide a ”package management system” called ”portage”. Portage provides the
ability to download, configure, compile, and install software. It may be differentiated from other ”package
manager” like Advanced Packaging Tool or Yellowdog Updater, Modified by its unique proficiency to
enable or disable features of the selected program.
9
Reussner Matthieu
5.3.2
Specifications
Flexibility Gentoo can be customized for just about any need–from supercomputers to embedded systems.
Speed Gentoo can be optimized to match local hardware.
Packages Gentoo provides 19,2341 packages. This variety ensures that the needed program for any
project will be available.
5.4
5.4.1
OpenTLD
Overview
OpenTLD2 is an implementation of the Predator algorithm for tracking objects without prior learning.
The object is selected on the first frame of a video3 . Predator then tracks it, learning its appearance in
order to detect it. OpenTLD is able to improve its detection rate over time as it processes additional
frames with the object.
5.4.2
Specifications
Training No off-line training
Time constraint Real-time performance on QVGA video stream
Object tracking TLD tracks only one object
Interoperability Windows, Mac OS X and Linux
Input video stream from a single camera
Licensing GPL version 3.0 and Commercial
5.5
OpenCV
Figure 5.4: OpenCV logo[6]
1 On
February 28 2012, multiples versions of the same program are count only once
C/Cpp version was choosen
3 From a video file or camera
2 The
10
Reussner Matthieu
5.5.1
Overview
Open Source Computer Vision Library is a computer library for image processing released under an BSD
license.
5.5.2
Specifications
Algorithms Version 2.3.1 include more than 2500 optimized algorithms for image processing and computer vision
Bindings C++, C, Python, Perl
Interoperability Windows, Mac os X, Linux, Android
5.6
5.6.1
The Spread Toolkit
Overview
Spread Toolkit is an open source library that provides messaging services across different computers. It
provides a layer of abstraction to most of the communications across different nodes of a network.
5.6.2
Specifications
Broadcast Multi-cast message sending
Group message Messages can be sent to 1 host, 1 group, or anyone
Strength Reliability and ordering can be assured
Wellknown Part of the funding was provided by Defense Advanced Research Projects Agency (DARPA)
and National Security Agency (USA) (NSA).
5.7
Microsoft LifeCam VX-1000 Webcam - Black - USB
Figure 5.5: Webcam used for the project[7]
11
Reussner Matthieu
5.7.1
Specifications[7]
Resolution 0.3 mega-pixel - 640 x 480
Drivers GSPCA
Size Width 2.2 in / Depth 2.1 in
5.8
Library Curl
Figure 5.6: libcurl logo[8]
5.8.1
Overview
Libcurl allows the transfer of data using various protocols, from HTTP to Gopher. This library is used
to send email through SMTP.
5.8.2
Specifications
Protocols FTP, FTPS, Gopher, HTTP, HTTPS, SCP, SFTP, TFTP, Telnet, DICT, the file URI scheme,
LDAP, LDAPS, IMAP, POP3, SMTP and RTSP.
Interoperability Solaris, NetBSD, FreeBSD, OpenBSD, Darwin, HPUX, IRIX, AIX, Tru64, Linux,
Unix-Ware, HURD, Windows, Symbian, Amiga, OS/2, BeOS, Mac OS X, Ultrix, QNX, OpenVMS, RISC OS, Novell NetWare, DOS
License Open source license based on MIT/X
5.9
5.9.1
Library Off-The-Record
Overview
Off the Record library provides the base64 encoding function used to encode images inside an email.
12
Reussner Matthieu
6 Schema
6.1
Global
Figure 6.1: Global schema of the project
As shown on figure6.1, the project once deployed is composed of different elements:
Sensor Multiple sensors as described in 6.2
Network A network which allow multi-cast data(without firewall to get best result if possible)
Object of interest An item (person or object) who will be tracked by the sensor network
Security officer Someone who will watch the video stream and report any suspicious activity
6.2
Sensor
Atom Board This is the ”brain” of the sensor, all calculations happen here.
Movie camera This is the ”eye” of the sensor.
13
Reussner Matthieu
Figure 6.2: Sensor
Power supply To be fully autonomous, the sensor can be plugged into a battery or if the system. needs
to stay on for an extended period of time, directly into sector AC.
Network connection This allows the sensor to share pictures to the other sensors and to the Security
officer.
14
Reussner Matthieu
7 Installation
7.1
Operating system
This section assumes that the reader has prior knowledge of the Unix command line interface (CLI) and
is using a Gnu/Linux distribution. This section covers the basis for installing a Gentoo system–more
information can be found in the ”Gentoo Handbook”[9]
7.1.1
Downloading and installing the base system
Preparing the Disks
Even though it is possible to use only one partition for the operating system, it’s almost never done in
practice. The first step is to split the cf card in smaller partitions. This step was done using fdisk from
a terminal though it can also be done using a graphical user interface (GUI).
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
s t e e l b o o k ˜ # f d i s k / dev / sdb
Command (m f o r h e l p ) : p
Disk / dev / sda : 3997 MB, 3997163520 b y t e s
255 heads , 63 s e c t o r s / t r a c k , 485 c y l i n d e r s , t o t a l 7806960 s e c t o r s
U n i t s = s e c t o r s o f 1 ∗ 512 = 512 b y t e s
S e c t o r s i z e ( l o g i c a l / p h y s i c a l ) : 512 b y t e s / 512 b y t e s
I /O s i z e ( minimum/ o p t i m a l ) : 512 b y t e s / 512 b y t e s
Disk i d e n t i f i e r : 0 x00054b7c
D e v i c e Boot
/ dev / sdb1
∗
/ dev / sdb2
/ dev / sdb3
Start
62
198276
2150532
End
198275
2150531
7806959
Blocks
99107
976128
2828214
Id
83
83
83
System
Linux
Linux
Linux
Command (m f o r h e l p ) :
Listing 7.1: Partition on the CF card
As shown on figure7.1, 3 partitions were created.
sdb1 Size: 100 Mo, FS Type: ext2, Flags: Boot, Mount Point: /boot
sdb2 Size: 1.0 Go, FS Type: swap
sdb3 Size: 2.8 Go, FS Type: ext3, Mount Point: /
15
Reussner Matthieu
Creating file-systems
The different file systems were created using the following commands
1
2
3
4
5
6
s t e e l b o o k ˜ # mkfs . e x t 2 / dev / sdb1
[...]
s t e e l b o o k ˜ # mkfs . e x t 3 / dev / sdb3
[...]
s t e e l b o o k ˜ # mkswap / dev / sdb2
[...]
Listing 7.2: Creation of the file system on the CF card
Mounting file-system
After spliting the CF and creating a filesystem on the resulting partition, mount the filesystems with the
following commands:
1
2
3
4
steelbook
steelbook
steelbook
steelbook
˜
˜
˜
˜
#
#
#
#
mkdir −p /mnt/ g e n t o o
/ dev / sdb3 /mnt/ g e n t o o
mkdir /mnt/ g e n t o o / boot
mount / dev / sdb1 /mnt/ g e n t o o / boot
Listing 7.3: Mounting partition
Downloading the base system and Portage files
Unlike most of Gnu/Linux distribution, Gentoo’s base layout is provided as a simple the tape archiver
(TAR) archive. It can be downloaded from various mirrors[10]1 .
1
2
3
4
5
6
7
8
s t e e l b o o k ˜ # cd /mnt/ g e n t o o /
s t e e l b o o k g e n t o o # wget h t t p : / / g e n t o o . c s . nctu . edu . tw/ g e n t o o / r e l e a s e s / x86 / c u r r e n t −
s t a g e 3 / s t a g e 3 −i 6 8 6 −20120221. t a r . bz2
s t e e l b o o k g e n t o o # t a r x j p f s t a g e 3 ∗ . t a r . bz2
[...]
s t e e l b o o k g e n t o o # cd
s t e e l b o o k ˜ # wget h t t p : / / g e n t o o . c s . nctu . edu . tw/ g e n t o o / s n a p s h o t s / p o r t a g e −l a t e s t . t a r
. bz2
s t e e l b o o k ˜ # t a r x j p f p o r t a g e −l a t e s t . t a r . bz2
[...]
Listing 7.4: Downloading and extracting Gentoo stage 3 and Portage files
Copying modified configuration files
The following files must be replaced be those provided
• /etc/udev/rules.d/70-persistent-net.rules 19.6
• /env.sh19.12
• /etc/kernels/kernel-config-x86-3.2.1-gentoo-r219.5
• /etc/make.conf19.1
1 nctu.edu.tw
was chosen for its speed from PES-IT. From Switzerland, the best choice is mirror.switch.ch
16
Reussner Matthieu
• /etc/conf.d/net19.2
• /etc/portage/package.accept keywords19.3
• /etc/portage/package.use19.4
• /etc/local.d/x.start19.8
7.1.2
Enter the new installation environment
Once all the previous operations have been completed, the next operation is to change the root (/) value:
1
2
3
4
steelbook
steelbook
steelbook
steelbook
˜
˜
˜
˜
#
#
#
#
cp −L / e t c / r e s o l v . c o n f /mnt/ g e n t o o / e t c /
mount −t p r o c none /mnt/ g e n t o o / p r o c
mount −o bind / dev /mnt/ g e n t o o / dev
c h r o o t /mnt/ g e n t o o / env . sh
Listing 7.5: Changing root value
7.1.3
Installing and configuring the Kernel
On Gentoo, the process of configuring, building, and installing a kernel can be done with genkernel. This
tool automates the process.
1
2
3
4
5
6
7
( chroot )
[...]
( chroot )
( chroot )
( chroot )
( chroot )
[...]
hostname ˜ # emerge g e n k e r n e l =s y s −k e r n e l / gentoo−s o u r c e s −3.2.1 − r 2
hostname
hostname
hostname
hostname
˜ #
src
src
src
cd / u s r / s r c /
# rm l i n u x
# l n −s l i n u x −3.2.1 − gentoo−r 2 l i n u x
# g e n k e r n e l a l l & echo ”Time t o have a nap o r d r i n g some t e e ”
Listing 7.6: Building the kernel
7.1.4
Installing and configuring the Boot-loader
EXTLinux from SysLinux was chosen as the project boot-loader, mainly because of it’s size and speed.
It can be installed on the CF card with the following commands:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
( c h r o o t ) hostname ˜ # emerge s y s −boot / s y s l i n u x
( c h r o o t ) hostname ˜ # mkdir / boot / e x t l i n u x /
( c h r o o t ) hostname ˜ # c a t − > / boot / e x t l i n u x / e x t l i n u x . c o n f
DEFAULT g e n t o o
LABEL g e n t o o
KERNEL / k e r n e l −g e n k e r n e l −x86 −3.2.1 − gentoo−r 2
INITRD / i n i t r a m f s −g e n k e r n e l −x86 −3.2.1 − gentoo−r 2
APPEND r e a l r o o t =/dev / sda3
c t r l −d
( c h r o o t ) hostname ˜ # e x t l i n u x −− i n s t a l l / boot / e x t l i n u x
( c h r o o t ) hostname ˜ # cd / boot
( c h r o o t ) hostname boot #l n −s . boot
Listing 7.7: Installing the boot-loader
17
Reussner Matthieu
7.1.5
Configuring the Network
Configuring interface name and IPv4 address
For this project, a trick was use to only have 1 cf card image but different IPv4 address without a DHCP
server. The physical interfaces are renamed based on their MAC address. This is done by matching the
”ATTRaddress” variable from /etc/udev/rules.d/70-persistent-net.rules with the MAC address, then a
unique name must be assigned. Consequently, all init services who require net as a dependency will not
be able to start without ”-D” option.
Then interface name must match their configuration in /etc/conf.d/net as show on Listing 19.2 The last
part of the network configuration is adding the name of the embedded inside hosts file. By doing this,
the network will not need a Domain Name System (DNS) server.
Configuring multi-cast address
A new static route must be created to the multi-cast address. The kernel will then be able to receive and
dispatch multi-cast data. This is done as shown on Listing19.2.
7.1.6
Installing and configuring of miscellaneous applications and library
The following packages need to be installed on the embedded system
iproute2 command line tool to deal with routing and ip address
awesome Windows manager
xorg-server X servers
opencv A collection of various computer vision algorithms
dhcpcd DHCP client
xterm terminal
mplayer Media Player for Linux
libotr provides functions to send email
net-misc/curl provides functions to send email
1
2
3
4
( c h r o o t ) hostname ˜ #
media−l i b s / opencv
[...]
( c h r o o t ) hostname ˜ #
( c h r o o t ) hostname ˜ #
emerge i p r o u t e 2 net−misc / dhcpcd xterm xorg−s e r v e r mplayer
x11−wm/ awesome net−misc / c u r l net−l i b s / l i b o t r
u s e r a d d −m g r a p h i c
echo ’ e x e c / u s r / b i n /awesome ’ > /home/ g r a p h i c / . x i n i t r c
Listing 7.8: Installation and configuration of miscellaneous applications
7.2
Messaging service
As specified on section 5.6, Spread is used as a messaging bus to transmit data across the different
embedded systems
18
Reussner Matthieu
7.2.1
Installing the Spread toolkit
The spread toolkit is tagged as arch, which means it is considered as not sufficiently tested to be included
in the default branch. Since this package is highly specific, it is usually tagged as unstable. Before
installing this package, the protection needs to be overridden (l1-34).
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
( c h r o o t ) hostname ˜ # emerge net−misc / s p r e a d −−autounmask−w r i t e
−av
These a r e t h e p a c k a g e s t h a t would be merged , i n o r d e r :
C a l c u l a t i n g d e p e n d e n c i e s . . . done !
[ ebuild N
˜ ] net−misc / s p r e a d − 4 . 1 . 0
0 kB
T o t a l : 1 package ( 1 new ) , S i z e o f downloads : 0 kB
The f o l l o w i n g keyword c h a n g e s a r e n e c e s s a r y t o p r o c e e d :
#r e q u i r e d by net−misc / s p r e a d ( argument )
=net−misc / s p r e a d − 4 . 1 . 0 ˜ x86
31
32
33
34
35
36
Would you l i k e t o add t h e s e c h a n g e s t o your c o n f i g
f i l e s ? [ Yes /No ] Yes
Autounmask c h a n g e s s u c c e s s f u l l y w r i t t e n . Remember t o run e t c −update .
[...]
( c h r o o t ) hostname ˜ # e t c −update
Scanning C o n f i g u r a t i o n f i l e s . . .
The f o l l o w i n g i s t h e l i s t o f f i l e s which need updating , each
c o n f i g u r a t i o n f i l e i s f o l l o w e d by a l i s t o f p o s s i b l e r e p l a c e m e n t f i l e s .
1 ) / e t c / p o r t a g e / package . keywords ( 1 )
P l e a s e s e l e c t a f i l e t o e d i t by e n t e r i n g t h e c o r r e s p o n d i n g number .
( don ’ t u s e −3, −5, −7 o r −9 i f you ’ r e u n s u r e what t o do )
(−1 t o e x i t ) (−3 t o auto merge a l l r e m a i n i n g f i l e s )
(−5 t o auto−merge AND not u s e ’mv −i ’ )
(−7 t o d i s c a r d a l l u p d a t e s )
(−9 t o d i s c a r d a l l u p d a t e s AND not u s e ’ rm −i ’ ) : 1
R e p l a c i n g / e t c / p o r t a g e / package . keywords with / e t c / p o r t a g e / . c f g 0 0 0 0 p a c k a g e .
keywords
mv : o v e r w r i t e ‘ / e t c / p o r t a g e / package . keywords ’ ? y e s
E x i t i n g : Nothing l e f t t o do ; e x i t i n g . : )
( c h r o o t ) hostname ˜ # emerge net−misc / s p r e a d
[...]
Listing 7.9: Installing the messaging system
7.2.2
Configuring the Spread toolkit
All aspect of the configuration of the Spread toolkit is done by altering the file /etc/spread.conf The
appropriate file for the project is provided on Listing19.9
19
Reussner Matthieu
8 Transmission of data
8.1
Schema
Figure 8.1: Transmission of data across the network
8.2
Overview
As shown on figure9.1, The data is packed and then compressed before being send on the network. On
the opposite side, they are uncompressed before being used.
8.3
Technical description
As the the spread toolkit limits the payload size to 100 Kilo Octet and 2 pictures with a resolution of
320x240x1 (width X height X depth) weight about 192 Ko, it was not possible to send this amount of
data without compressing it. The z library was chosen as it provides a good trade-off between size and
CPU usage. On average, after compression, the data (2 pictures + context) weighs 79.257 Ko. This
allows the compressed data to be sent inside 1 packet, which limits the delay between transmitting and
receiving the pictures.
As shown on figure 8.2 the data is similar to Matryoshka dolls. They are first compressed with zlib, and
then wrapped by the spread toolkit. All the data is then sent to a multi-cast address (224.0.0.1) as User
Datagram Protocol (UDP) message. This methodology allows the sender to pass the data in a single
transmission to many receivers without overloading the network.
20
Reussner Matthieu
Figure 8.2: Transmission of data across the network
8.4
8.4.1
Implementation
Data
For this project the data that will be transmitted is packed in a structure as shown on Listing19.13. The
fields used are described below:
pic1 memory space to store the previous picture (needed by openTLD to track)
pic2 memory space to store the actual picture
LBBx X coordinates of the top-left corner of the box bounding the previous object
LBBy Y coordinates of the top-left corner of the box bounding the previous object
LBBwidth Width of the box bounding the previous object
LBBheight Height of the box bounding the previous object
BBx X coordinates of the top-left corner of the box bounding the object
BBy Y coordinates of the top-left corner of the box bounding the object
BBwidth Width of the box bounding the object
BBheight Height of the box bounding the object
timer Timestamp of the second picture
status Object is present on the actual picture
21
Reussner Matthieu
9 Notifications
9.1
Schema
Figure 9.1: Notifications
9.2
Technical description
Every time an alert is triggered, the main embedded board sends an E-mail. As shown in figure 9.2,
the E-Mail includes some information about the camera and as attachment, a picture from the detected
object.
9.3
Implementation
The notification system is implemented using 2 libraries
• libcurl
• libotr from cypherpunks
22
Reussner Matthieu
Figure 9.2: Notification display by a email client (mutt)
9.3.1
libcurl
The curl library is used during this project for the following task:
Connection to the smtps server
Verification of the ssl/tls ceritificate
Generating most of the header
Sending the email
9.3.2
libotr
The Off-The-Record (OTR) library from ”Cypherpunks” allows any kind of message to be encrypted.
During this project, the library is used not to encrypt data but to encode it as base64.
23
Reussner Matthieu
10 Results
10.1
Definition
To measure the quality of the results, two notions are essential:
Recall is the number of object correctly found divided by the total number of object
Precision is the number of relevent object found divided by the total number of object found.
10.2
Methodology
Two movies of about 30 seconds are recorded then split into frames. Each frame is then labelled as
positive or negative. If the frame is labeled as positive, the position of the object is also compared with
the real position. The program is then run on each video and the results compared with the manual
labelling.
10.3
Raw data
Table 10.1 summarizes the result of the experiments. In the FINAL report, the results will be discussed
in greater detail.
Recall
Precision
# of frames
# of positives frames
# of negatives frames
Movie 1
Movie 2
27%
97%
549
286
263
24%
89%
415
251
164
Table 10.1: Result of the first part (rounded value)
10.4
Interpretation
As shown in table 10.1, Recall is too low for this system to work in real life.
24
Reussner Matthieu
10.4.1
Recall
Within the context of the object detection, the recall is the ratio of object found. Table 10.1 clearly show
that most occurence of the person are not found.
10.4.2
Precision
Within the context of the object detection, the precision is the ratio of real object found versus the false
positive. Table 10.1 show that the number of false positive is low.
25
Reussner Matthieu
11 Problems
11.1
Network
The internet connection of PESIT is filtered by a network appliance called ”FortiGate”. During the
realisation of this project, three different compartments of the ”box” were observed:
• Block of some website (tcp port 80 and 443) but no alteration of other data
• Man In The Middle for ssl connection
• Block of every thing except tcp port 0,53,80,443
The first blocking techniques can easily be circumvented. The third one required a computer outside the
network listing for incoming connection on one of the ”free” port.
11.1.1
Block of specific website
Nothing has to be done. smtp.gmail.com was not blocked.
11.1.2
Man In The Middle
As shown on listing11.1, the certificate for Google smtp can’t be trusted. The Certificate Authority who
sign it is not ”Google Internet Authority” but ”Fortinet”
1
2
3
4
5
6
∗ Server c e r t i f i c a t e :
∗ s u b j e c t : C=US ; ST=C a l i f o r n i a ; L=Mountain View ; O=Google I n c ; CN=smtp . g m a i l . com
∗ s t a r t d a t e : 2011−11−18 0 1 : 5 7 : 1 7 GMT
∗ e x p i r e d a t e : 2012−11−18 0 2 : 0 7 : 1 7 GMT
∗
i s s u e r : C=US ; ST=C a l i f o r n i a ; L=Sunnyvale ; O=F o r t i n e t ; OU=C e r t i f i c a t e A u t h o r i t y ;
CN=F o r t i G a t e CA; e m a i l A d d r e s s=s u p p o r t @ f o r t i n e t . com
∗ SSL c e r t i f i c a t e v e r i f y r e s u l t : s e l f s i g n e d c e r t i f i c a t e i n c e r t i f i c a t e c h a i n ( 1 9 )
, c o n t i n u i n g anyway .
Listing 11.1: Certificate informations
The correct certificat can be seen on figure11.2.
1
2
3
4
5
6
∗ Server c e r t i f i c a t e :
∗ s u b j e c t : C=US ; ST=C a l i f o r n i a ; L=Mountain View ; O=Google I n c ; CN=smtp . g m a i l . com
∗ s t a r t d a t e : 2011−11−18 0 1 : 5 7 : 1 7 GMT
∗ e x p i r e d a t e : 2012−11−18 0 2 : 0 7 : 1 7 GMT
∗
i s s u e r : C=US ; O=Google I n c ; CN=Google I n t e r n e t A u t h o r i t y
∗ SSL c e r t i f i c a t e v e r i f y ok .
Listing 11.2: Certificate informations
26
Reussner Matthieu
This block is more an annoyance than something really efficient. In this case, adding the following line
and creating a disposable1 gmail account is enough.
1
c u r l e a s y s e t o p t ( c u r l , CURLOPT SSL VERIFYPEER, 0L) ;
Listing 11.3: Certificate informations
11.1.3
General Block
Presently, all tcp port but 53,80,443 are blocked by the fortigate bastion. The only way around is to use
a server listening on one of the ”free” port. The server will then retransmit the data to smtp.gmail.com.
As shown in firgure11.4, acces in denied to Google smtp.
1
2
3
$ o p e n s s l s c l i e n t −s h o w c e r t s −c o n n e c t smtp . g m a i l . com : 4 6 5 </dev / n u l l
c o n n e c t : C o n n e c t i o n timed out
c o n n e c t : e r r n o =110
Listing 11.4: Denying access to smtps
As the block will not be present once the system is deployed, an elegant solution based on OpenSSH
”localforward” is used. The necessary step are shown in figure19.14 and 19.15.
11.1.4
Consequences on the project
About 1.5 day was lost due to the changes of the network policies. The changes don’t implies any
modification of the project itself.
11.2
Predator
The version of OpenTLD used during this project2 is not able to recognize the object under the following
circumstances:
• Rapid movement of the object
• Long disappearance of the object
• Partial view of the object if moving
11.2.1
Consequences on the project
The most important part of the project is based on OpenTLD, any change impact the whole work done
during the last 2 month.
Following the problems encountered, the project can’t be use as define in the ”Scope statement”. The
risk of missing something important / dangerous is too big.
For instance, a thief trying to leave the premise of PESIT, is likely going to run. In this case, the system
will not be able to follow him.
1 The
”Proxy” has acces to plain text data
alantrrs on github
2 From
27
Reussner Matthieu
12 Change from the initial objectives
12.1
Reason
Following the disappointing results observed in 10.1, and after a talk with Pr.A.Srinivas, it was decided
to change the orientation of the research.
12.2
Conservation of some part of the project
The main subject (object detection) of the project is kept as well as the following parts:
• Embedded system
• Notifications system
• Transmission between the embedded boards
The main change on the project is the algorithm responsible to detect the objects of interest. In the
first part, OpenTLD was the choosen algorithm, this part is done using Haar-like features from OpenCV.
Also, the part responsible for sending and receiving has to be updated. On the first part, only one object
was tracked, during the second, multiple occurences of an object can be tracked at the same time.
28
Reussner Matthieu
13 Cascade of Boosted Classifiers Based
on Haar-like Features
13.1
Description
Haar-like features are heavily used in computer object recognition, mostly for its calculation speed and
its adaptability.
A set of pictures of the particular object of interest is processed offline, a file contening all the results is
created. Later all the region of interest of the pictures are then compared with the file.
13.2
Theory
Haar-like features work by spliting the picture into squares. For each square the algorithm sums all the
pixel, then calculate the difference between these number. The difference is then converted as binary
based on a threshold. The thresholded values are then compared to the ”database” of value. Figure 13.1
show the differents steps needed to detect an eye.
(a) Original picture
(b) Training result
(c) Spliting
(d) Binary conversion
(e) Comparing
(f) (optional) drawing
Figure 13.1: Steps of haar-like features detection
29
Reussner Matthieu
13.3
Generation of the Haarcascade with OpenCV
6 steps are required to generate a Haarcascade classifier:
Collecting a large collection of images with and without the object of interest
Cropping all the pictures contening the Object of interest
Packing all the positives images in a single vector file
Training of the classifier
Merging all the trained cascade in a single xml file
Testing the haar-like cascade to detect an object
13.3.1
Installation of the training program
Generating haarcascade is a CPU Intensive process, which can’t be done in a timely fashion on the
embedded board. For this reason, another computer with an Intel i5 CPU and 4Go of ram was used.
The system use Ubuntu 11.10 code name Oneiric Ocelot as an operating system and OpenCV 2.3.
Thanks to M.Gijs Molenaar, the installation is as straightforward as
• add 2 repository
• updating local package cache
• installing a package
The following commands install OpenCV on Ubuntu 11.10 without going through the though process of
compiling OpenCV and it’s depencies.
1
2
3
4
5
6
7
8
9
10
buildCascade ˜
Password : 1234
buildCascade ˜
[...]
buildCascade ˜
[...]
buildCascade ˜
[...]
buildCascade ˜
[...]
$ sudo su −
# add−apt−r e p o s i t o r y ppa : g i j z e l a a r / cuda
# add−apt−r e p o s i t o r y ppa : g i j z e l a a r / opencv2 . 3
# apt−g e t update
# apt−g e t i n s t a l l l i b c v −dev
Listing 13.1: Installing OpenCV on Ubuntu
13.3.2
Sources images
The Collection of sources images need to be split in 2 different group. One containing all the pictures of
car called positive and one with all the remaining pictures called negative.
30
Reussner Matthieu
Positives images
The positive images need to be cropped to contain only one object, then ”tagged”. During this project,
”Gwenview” is use for this task.
Once this task completed, a file containing the following fields need to be writen:
• filename
• number of object in the picture
• top left x coordinate of the object
• top left y coordinate of the object
• width of the object
• height of the object
The following listing 13.2 shows the content of a sample file
1
2
#[ f i l e n a m e ] [# o f o b j e c t s ] [ [ x y width h e i g h t ]
p o s i t i v e / i m a g e 0 0 0 0 0 1 . png 1 0 0 310 268
[ . . . 2nd o b j e c t ]
...]
Listing 13.2: Sample from positive.txt
The labeling phase can be done with the following script:
1
2
3
4
5
6
7
8
9
10
#! / u s r / b i n / env bash
f o r f o o i n $ ( f i l e p o s i t i v e /∗ | t r −d ’
do
FILENAME=$ ( echo $ f o o | c u t −d : −f 1 )
SIZE=$ ( echo $ f o o | c u t −d , −f 2 )
WIDTH=$ ( echo $SIZE | c u t −d x −f 1 )
HEIGHT=$ ( echo $SIZE | c u t −d x −f 2 )
echo $FILENAME 1 0 0 $WIDTH $HEIGHT
done
’)
Listing 13.3: Labelling
Negative images
The negative pictures don’t need to be cropped. Neither did they need to be tagged. The only task is to
generate a text file containing the path of all the pictures. The easy way to do it, is to use ”find negative/
> negative.txt”.
13.3.3
Generation of the vector
The vector of positive pictures is generated by the following command:
1
2
opencv−c r e a t e s a m p l e s −i n f o p o s i t i v e . t x t −v e c v e c f i l e . v e c \
−num $ ( ( $ ( c a t p o s i t i v e . t x t | wc − l ) −1) )
Listing 13.4: Generation of the vector
The command shown in listing 13.4 counts the number of pictures listed in positive.txt then generate a
vector using the opencv-createsamples application.
31
Reussner Matthieu
13.3.4
Training of the classifier
The commands shown in listing 13.5 generate a classifier using 3.6Go of RAM in the haar folder, then
convert it to an xml file named haarCascade.xml.
1
2
opencv−h a a r t r a i n i n g −data haar −v e c v e c f i l e . v e c −bg n e g a t i v e . t x t −n s t a g e s 25 −mem
3600 −mode a l l
. / c o n v e r t c a s c a d e −− s i z e=” 30 x33 ” haar haarCascade . xml
Listing 13.5: Training of the classifier
13.4
Test of the classifier
13.4.1
Subjective assessment
Due to time constraints, only subjective tests have been made. The results seem to be promising with
no false positive and high detection rate.
32
Reussner Matthieu
14 New notification system
A new notification system was developped and integrated to the project. The notification system is called
”The WALL”
14.1
Schema
14.1.1
Schema of the Wall
Figure 14.1: The Wall
14.1.2
Logical connection
14.2
Implementation
The implementation of ”The WALL” rests on the following software:
• OpenCV
• Gstreamer
The main system board (embedded0) receive information from the sensors through spread. The system
generates an image corresponding to 9 screens and forwards it on the internal network of the wall. The
33
Reussner Matthieu
Figure 14.2: The Wall
other embedded systems retrieve the video stream, cut the portion corresponding to their screens and
displayed the video.
14.2.1
Technical description
Network
To make the system extensible, images are transmitted in ”multicaste”. This allow the streaming of the
video once to a unlimited number of clients. Inside ”The Wall”, the ip 224.0.0.1 is used.
Multimedia
The pair of framework GStreamer-OpenCV multimedia is used to generate a video, it is then encapsulated
and transmitted via the network. A program specifically developed for the occasion generates the image
corresponding to the screen wall, writes the contents to a file type ”FIFO”. The contents of that file
is then injected into a gstreamer’s pipeline . GStreamer is responsible for preparing the data and then
transmiting them via the network using the RTP protocol.
14.3
Making
The fabrication of the notification system has been outsourced to a fabricator in Bangalore suburb. The
address is Vaishnavi Controls Acoustics, Kanakapura Road, Bangalore-560062
34
Reussner Matthieu
14.4
Product
The final product weighing several dozen kilograms and measuring several meters, it is therefore not
possible to produce a copy for HeigVD. Therefore a gallery photo and video are different avaialble at the
following address: http://vps.reussner.ch/Wall/. Two representative photos are attached in the annexes.
14.5
Problems
Currently the system is not fully achieved. More than half (5/8) of the Embedded systems in possession
of PESIT are defective. To validate the concepte, it was decided to use desktop computer temporarily.
This change lead to heavy modifications to the operating system and to the project source code of the
project.
14.6
Realisation
14.6.1
Installation of the operating system on the embedded board
As specified in the ”Problems” section, the GNU/Linux distribution used had to be changed to support
PC. Currently a minimal version of ubuntu is used. It was generated using ”debootstrap” scripts as
shown below:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
r o o t @ s t e e l b o o k # mkdir /mnt/ c l e
r o o t @ s t e e l b o o k # mount / dev / sdb3 /mnt/ c l e
r o o t @ s t e e l b o o k # mkdir /mnt/ c l e / boot
r o o t @ s t e e l b o o k # mount / dev / sdb1 /mnt/ c l e / boot /
r o o t @ s t e e l b o o k # d e b o o t s t r a p −−v e r b o s e −−v a r i a n t=minbase −−a r c h i 3 8 6 p r e c i s e /mnt/
cle /
r o o t @ s t e e l b o o k # mount −o bind / dev /mnt/ c l e / dev
r o o t @ s t e e l b o o k # mount −t p r o c none /mnt/ c l e / p r o c
r o o t @ s t e e l b o o k # cp −L / e t c / r e s o l v . c o n f /mnt/ c l e / e t c /
r o o t @ s t e e l b o o k # c h r o o t /mnt/ c l e / b i n / bash
r o o t @ c h r o o t # apt−g e t update
r o o t @ c h r o o t # apt−g e t i n s t a l l l i b g t k 2 .0 −0 net−t o o l s i p r o u t e l i n u x −image \
g s t r e a m e r −t o o l s g s t r e a m e r 0 .10 − p l u g i n s −b a s e g s t r e a m e r 0 .10 − p l u g i n s −good \
x i n i t p s m i s c g s t r e a m e r 0 .10 − ff mp eg awesome x11−x s e r v e r − u t i l s
r o o t @ c h r o o t # c a t − > / e t c / hostname
embedded0
ˆ−D
r o o t @ c h r o o t # mkdir / boot / e x t l i n u x
r o o t @ c h r o o t # c a t − >/boot / e x t l i n u x / e x t l i n u x . c o n f
DEFAULT ubuntu
LABEL ubuntu
KERNEL / vmlinuz −3.2.0−23− g e n e r i c −pae
INITRD / i n i t r d . img −3.2.0−23− g e n e r i c −pae
APPEND r e a l r o o t =/dev / sda3 r o o t =/dev / sda3
ˆ−D
r o o t @ c h r o o t : /# c a t − > / r o o t / . x i n i t r c
x s e t −dpms
x s e t s noblank
xset s o f f
/ r o o t / w a l l ‘ hostname | g r e p −o [ 0 − 9 ] ‘ &
e x e c / u s r / b i n / awesome
35
Reussner Matthieu
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
ˆ−D
r o o t @ c h r o o t : /# c a t − > / e t c / r c . l o c a l
#! / b i n / sh −e
HOST=$ ( hostname | g r e p −o [ 0 − 9 ] ∗ )
i f c o n f i g e t h 0 1 9 2 . 1 6 8 . 2 3 . $ ( (HOST+1) ) up
i p r o u t e add 2 2 4 . 0 . 0 . 0 / 4 dev e t h 0
if
! f u s e r / dev / t t y 7 &> / dev / n u l l ; then
su − −c ’ s t a r t x &> ˜ / . x s e s s i o n −e r r o r s ’ &
fi
exit 0
ˆ−D
root@chroot # e x i t
r o o t @ s t e e l b o o k # dd i f =/u s r / s h a r e / s y s l i n u x /mbr . b i n o f =/dev / sdb
Listing 14.1: Installation of the embedded system for the wall
Once the first system is configured, the fastest way to deploy other system is to make a deep copy of
the memory card using ”dd” as presented below. The name of the embedded system must match the
following schema:
embedded0 for the screen 0
embedded1 for the screen 1
embedded8 for the screen 8
embedded9 for the full picture in one screen (debug feature)
1
2
3
4
5
root@steelbook
root@steelbook
root@steelbook
root@steelbook
root@steelbook
#
#
#
#
#
dd i f =/dev / sdb o f =/dev / s d X
bs=8M
mount / dev / s d c 3 /mnt/ c l e
echo embedded Y
> /mnt/ c l e / e t c / hostsname
> /mnt/ c l e / e t c / udev / r u l e s . d/70− p e r s i s t e n t −n e t . r u l e s
umount /mnt/ c l e
Listing 14.2: Deep copy
The system embedded0 need other programs and configurations:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
r o o t @ s t e e l b o o k # mount −o bind / dev /mnt/ c l e / dev
r o o t @ s t e e l b o o k # mount −t p r o c none /mnt/ c l e / p r o c
r o o t @ s t e e l b o o k # cp −L / e t c / r e s o l v . c o n f /mnt/ c l e / e t c /
r o o t @ s t e e l b o o k # c h r o o t /mnt/ c l e / b i n / bash
r o o t @ s t e e l b o o k : /# wget h t t p s : / / launchpad . n e t /˜ j r j o h a n s s o n /+ a r c h i v e / s p r e a d/+ b u i l d
/2124936/+ f i l e s / s p r e a d 4 . 1 . 0 − 0 u b u n t u 2 i 3 8 6 . deb
[...]
r o o t @ s t e e l b o o k : /# wget h t t p s : / / launchpad . n e t /˜ j r j o h a n s s o n /+ a r c h i v e / s p r e a d/+ b u i l d
/2124936/+ f i l e s / l i b s p r e a d 2 4 . 1 . 0 − 0 u b u n t u 2 i 3 8 6 . deb
[...]
r o o t @ s t e e l b o o k : /# gpg −−k e y s e r v e r k e y s e r v e r . ubuntu . com −−r e c v CA70E6A9087475A0
r o o t @ s t e e l b o o k : /# gpg −−e x p o r t −−armor CA70E6A9087475A0 | apt−key add −
r o o t @ s t e e l b o o k : /# apt−g e t update
[...]
Fetched 8035 kB i n 60 s ( 1 3 2 kB/ s )
Reading package l i s t s . . . Done
r o o t @ s t e e l b o o k : /# apt−g e t i n s t a l l opencv
Reading package l i s t s . . . Done
B u i l d i n g dependency t r e e
36
Reussner Matthieu
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
Reading s t a t e i n f o r m a t i o n . . . Done
The f o l l o w i n g e x t r a p a c k a g e s w i l l be i n s t a l l e d :
l i b c u d a r t 4 l i b c u f f t 4 l i b d c 1 3 9 4 −22 l i b j p e g 6 2 l i b n p p 4 l i b o p e n c v 2 . 3 l i b t b b 2 l i b u s b
−1.0−0
Recommended p a c k a g e s :
libcuda1
The f o l l o w i n g NEW p a c k a g e s w i l l be i n s t a l l e d :
l i b c u d a r t 4 l i b c u f f t 4 l i b d c 1 3 9 4 −22 l i b j p e g 6 2 l i b n p p 4 l i b o p e n c v 2 . 3 l i b t b b 2 l i b u s b
−1.0−0 opencv
0 upgraded , 9 newly i n s t a l l e d , 0 t o remove and 0 not upgraded .
Need t o g e t 3 3 . 7 MB o f a r c h i v e s .
A f t e r t h i s o p e r a t i o n , 221 MB o f a d d i t i o n a l d i s k s p a c e w i l l be used .
Do you want t o c o n t i n u e [Y/n ] ? Y
[...]
r o o t @ s t e e l b o o k : ˜# dpkg − i l i b s p r e a d 2 4 . 1 . 0 − 0 u b u n t u 2 i 3 8 6 . deb s p r e a d 4 . 1 . 0 − 0
u b u n t u 2 i 3 8 6 . deb
S e l e c t i n g p r e v i o u s l y u n s e l e c t e d package l i b s p r e a d 2 .
( Reading d a t a b a s e . . . 20004 f i l e s and d i r e c t o r i e s c u r r e n t l y i n s t a l l e d . )
Unpacking l i b s p r e a d 2 ( from l i b s p r e a d 2 4 . 1 . 0 − 0 u b u n t u 2 i 3 8 6 . deb ) . . .
S e l e c t i n g p r e v i o u s l y u n s e l e c t e d package s p r e a d .
Unpacking s p r e a d ( from s p r e a d 4 . 1 . 0 − 0 u b u n t u 2 i 3 8 6 . deb ) . . .
S e t t i n g up l i b s p r e a d 2 ( 4 . 1 . 0 − 0 ubuntu2 ) . . .
S e t t i n g up s p r e a d ( 4 . 1 . 0 − 0 ubuntu2 ) . . .
Adding group ‘ s p r e a d ’ (GID 1 0 5 ) . . .
Done .
Warning : The home d i r / v a r / run / s p r e a d you s p e c i f i e d a l r e a d y e x i s t s .
Adding system u s e r ‘ s p r e a d ’ (UID 1 0 3 ) . . .
Adding new u s e r ‘ s p r e a d ’ (UID 1 0 3 ) with group ‘ s p r e a d ’ . . .
The home d i r e c t o r y ‘ / v a r / run / s p r e a d ’ a l r e a d y e x i s t s . Not c o p y i n g from ‘ / e t c / s k e l ’ .
a d d u s e r : Warning : The home d i r e c t o r y ‘ / v a r / run / s p r e a d ’ d o e s not b e l o n g t o t h e u s e r
you a r e c u r r e n t l y c r e a t i n g . ‘
P r o c e s s i n g t r i g g e r s f o r l i b c −b i n . . .
l d c o n f i g d e f e r r e d p r o c e s s i n g now t a k i n g p l a c e
r o o t @ s t e e l b o o k : ˜# rm l i b s p r e a d 2 4 . 1 . 0 − 0 u b u n t u 2 i 3 8 6 . deb s p r e a d 4 . 1 . 0 − 0 u b u n t u 2 i 3 8 6 .
deb
Listing 14.3: Installation and configuration of miscellaneous applications
37
Reussner Matthieu
15 Source code and cf images
The project is split in 3 differents program. Each program include a Makefile for an easy compilation.
wall The program used to display the video on the notification system
sensor The program who detect the object and send the video
master The program who receive all the picture and video stream, generate the wall picture and stream
it
It should be noted that if the computer use for compilation run on Ubuntu, the program will not compile
”as is”. Two thing need to be changed.
Source code In every source file, the following line need to be replace:
1
2
3
4
5
6
// remove t h i s l i n e
#i n c l u d e <opencv2 / opencv . hpp>
// add t h e f o l l o w i n g l i n e
#i n c l u d e ” opencv2 / o b j d e t e c t / o b j d e t e c t . hpp ”
#i n c l u d e ” opencv2 / h i g h g u i / h i g h g u i . hpp ”
#i n c l u d e ” opencv2 / imgproc / imgproc . hpp ”
Listing 15.1: Installation and configuration of miscellaneous applications
Makefile Every Makefile related to OpenCV need to be edited
1
2
3
4
#r e p l a c e t h i s l i n e with
LDFLAGS=‘pkg−c o n f i g −− l i b s opencv ‘ − l z
#t h i s
LDFLAGS=‘pkg−c o n f i g −− l i b s opencv | s e d s/− l o p e n c v c o n t r i b / ’ ’ / g ‘ − l z
Listing 15.2: Installation and configuration of miscellaneous applications
15.1
shared
This folder contain 2 configuration files for the project. The resolution of the webcam can be changed
here.
15.2
wall
This program need to be executed on each embedded system of the wall. It required the screen id
as argument. For example: ./wall 0 for the screen 0. This program is started by xinit as stated in
/root/.xinitrc.
38
Reussner Matthieu
fullscreenRTP.c This source file is the program who display the RTP stream generate by master1 .
15.3
master
This folder contain the following source files and scripts used on embedded0 to receive the tagged frames
from the sensor, generate the wall and stream it.
server.sh Stream the picture of the wall from fifo.avi to the other embedded system
master.h configuration file for master program
master.cpp Source code
15.4
sensor
sensor.h configuration file for sensor program
sensor.cpp Source code
15.5
wall.dd
Backup image of the CF card of the embedded system for the wall. It should not be forgotted to change
the hostname and clear the MAC address
15.6
sensor.dd
Backup image of the CF card of the embedded system for the the sensor. It should not be forgotted to
change the hostname and clear the MAC address
1 Most
of
the
souce
code
come
from
the
website:
https://gitorious.org/blog-examples/blogexamples/trees/master/fullscreen video with gst gtk no license has been apply
39
Reussner Matthieu
16 Deployment
16.1
Required Material
The following material is needed to deploy the project:
• 9 screens + power supply + cables(VGA or DVI)
• 9 embedded system for ”The Wall” + power supply
• 1 switch 9 ports for ”The Wall” + cables
• Multiples embedded system + webcam as sensor (up to 20)
16.2
Notification system (The Wall)
The easiest way to deploy ”The Wall”, is usually to use the application ”dd”. This can be done using the
following commands
1
2
3
4
5
root@steelbook
root@steelbook
root@steelbook
root@steelbook
root@steelbook
#
#
#
#
#
dd i f =/dev / sdb o f =/dev / s d X
bs=8M
mount / dev / s d X 3 /mnt/ c l e
echo embedded Y
> /mnt/ c l e / e t c / hostsname
> /mnt/ c l e / e t c / udev / r u l e s . d/70− p e r s i s t e n t −n e t . r u l e s
umount /mnt/ c l e
Listing 16.1: Installation and configuration of miscellaneous applications
16.3
Master node
The master node can either be install on any Wall node or alone. If installed in a Wall node, please follow
the instruction in 16.1 first. then follow the instructions 14.3 then finally
1
2
3
4
5
6
7
8
9
10
r o o t @ s t e e l b o o k # mount / dev / s d X 3 /mnt/ c l e
r o o t @ s t e e l b o o k # c a t − > /mnt/ c l e / r o o t / . x i n i t r c
/ r o o t / w a l l ‘ hostname | g r e p −o [ 0 − 9 ] ‘ &
#Put t h i s i n a l o o p t o c a t c h k i l l by OOK
/ r o o t / s e r v e r . sh &
sleep 2
/ r o o t / master &
#end o f l o o p
e x e c / u s r / b i n / awesome
ˆ−D
40
Reussner Matthieu
11
r o o t @ s t e e l b o o k # umount /mnt/ c l e
Listing 16.2: Installation and configuration of miscellaneous applications
16.4
Sensor
Deployment of the sensor is very similar to deployment of the wall node. The following command can be
used:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
r o o t @ s t e e l b o o k # dd i f =s e n s o r . dd o f =/dev / s d X
bs=8M
r o o t @ s t e e l b o o k # mount / dev / s d X 3 /mnt/ c l e
r o o t @ s t e e l b o o k # c a t − > /mnt/ c l e / e t c / c o n f . d/ n e t
c o n f i g e t h 0=” 1 9 2 . 1 6 8 . 1 9 . SENSOR ID PLUS 1
netmask 2 5 5 . 2 5 5 . 2 5 5 . 0 brd
192.168.19.255 ”
r o u t e s e t h 0=” 2 3 9 . 0 . 0 . 0 / 8 dev e t h 0 ”
ˆ−D
r o o t @ s t e e l b o o k # > /mnt/ c l e / e t c / udev / r u l e s . d/70− p e r s i s t e n t −n e t . r u l e s
r o o t @ s t e e l b o o k # echo ” 1 9 2 . 1 6 8 . 1 9 . SENSOR ID PLUS 1
embedded SENSOR ID
>> /mnt/ c l e / e t c / h o s t s
root@steelbook # cat − > / etc / spread . conf
EventLogFile = / var / l o g / spread . l o g
EventTimeStamp
Spread Segment
embedded1
” \
239.0.0.1:4803 {
192.168.19.1 {
D 192.168.19.1
C 192.168.19.1
}
embedded SENSOR ID
1 9 2 . 1 6 8 . 1 9 . SENSOR ID PLUS 1
D 1 9 2 . 1 6 8 . 1 9 . SENSOR ID PLUS 1
C 1 9 2 . 1 6 8 . 1 9 . SENSOR ID PLUS 1
}
{
}
ˆ−D
Listing 16.3: Installation and configuration of miscellaneous applications
41
Reussner Matthieu
17 Conclusion
At the end of my internship, and I’m can say that the project developped during the last 4 month has
reached a stable and usable state. Currently the status of the project is a woking distributed system
of sensor able to recognising an object/person on a video stream and sending alerts to a centraliszed
notification system.
The system developped can be use as a whole or split in differents parts. The current use-case of the
full system are: monitoring a very big area, searching for a specific animal in its natural habitat, etc. If
not use as a whole, the system can be split in two differents parts: detection system and a Synchronize
multiple screen. The use cases ranged from advertisement in public places (train station, airport,...) to
display of medical informations through person counting.
The project duration was not enough to explore all the aspect of the topic, therefor the following enhancements remain to be explored:
• Representing a person’s position in real time in a building
• Person identification system(can be helpful in prison, colleges, hospitals, etc).
• Extending the display from small screen devices to the Wall.
Having been able to explore the field of inteligent sensor has been very rewarding experience. Having
been able to work in the young and dynamic environnement of the ”Nokia Lab” of PESIT has certainty
contributed to the success of this internship. Having the opportunity of achieving a work of diploma
abroad, particulary in Bangalore - which is known as the Silicon Valley of asia - was an immense opportunity.
I would once again thank the following people for the assistance provided during this project: S.Robert,
A.Srinivas, Kumari Radha, Nitheesh K L, Vishal Gupta, Ahalya Srinivasan, Greeshma N and any members of the ”Lab”.
42
Reussner Matthieu
18 Bibliography
R atomTM innovation kit board 2 overview picture. http://www.indiaeduservices.
[1] Intel. Intel
com/cms/images/stories/atomik/pineview1.png. Feb, 2012.
[2] Intel. Intel atom innovation kit board 2. http://www.indiaeduservices.com/cms/index.php?
option=com_content&view=article&id=81&Itemid=165. Feb, 2012.
[3] SanDisk. Sandisk 16gb flashcard. http://www.sandisk.com/media/370208/ultra16gbbig.jpg.
Feb, 2012.
[4] The CompactFlash Association.
specifications/. Feb, 2012.
Compactflash specifications.
http://compactflash.org/
[5] Lennart Andre Rolland. The gentoo linux logo in svg format, without reflections. http://www.
gentoo.org/main/en/name-logo.xml. Sep, 2007.
[6] Willow Garage. Opencv logo. http://opencv.itseez.com/report/logo.jpg. Feb, 2012.
[7] Microsoft. Microsoft lifecam vx-1000 webcam.
41V9S00SGRL._SL500_AA300_.jpg. Mar, 2012.
http://ecx.images-amazon.com/images/I/
[8] Daniel Stenberg. Library curl logo. http://curl.haxx.se/ds-curlicon.png. Jun, 2003.
[9] Sven Vermeulen. Gentoo handbook. http://www.gentoo.org/doc/en/handbook/index.xml. Sep,
2011.
[10] The Gentoo Documentation Project. The gentoo mirrorlist. http://www.gentoo.org/main/en/
mirrors2.xml. Dec, 2009.
43
Reussner Matthieu
19 Annexes
19.1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Custom settings for Portage
# These s e t t i n g s were s e t by t h e c a t a l y s t b u i l d s c r i p t t h a t a u t o m a t i c a l l y
# built this stage .
# P l e a s e c o n s u l t / u s r / s h a r e / p o r t a g e / c o n f i g /make . c o n f . example f o r a more
# d e t a i l e d example .
CFLAGS=”−O2 −march=i 6 8 6 −p i p e ”
CXXFLAGS=” $ {CFLAGS} ”
# WARNING: Changing your CHOST i s not s o m e t h i n g t h a t s h o u l d be done l i g h t l y .
# P l e a s e c o n s u l t h t t p : / /www. g e n t o o . o r g / doc / en / change−c h o s t . xml b e f o r e c h a n g i n g .
CHOST=” i 6 8 6 −pc−l i n u x −gnu ”
USE=” minimal −X −cups o p e n g l −i p v 6 ”
#GENTOO MIRRORS=”h t t p : / / m i r r o r s . stuhome . n e t / g e n t o o /”
GENTOO MIRRORS=” h t t p : / / g e n t o o . c s . nctu . edu . tw/ g e n t o o / f t p : / / g e n t o o . c s . nctu . edu . tw/
g e n t o o / h t t p : / / m i r r o r s . sohu . com/ g e n t o o / h t t p : / / g e n t o o . a d i t s u . n e t : 8 0 0 0 / ”
VIDEO CARDS=” i n t e l ”
Listing 19.1: Main gentoo configuration file
19.2
1
2
3
4
5
6
7
8
9
10
11
12
13
Network configuration
#
#
#
#
This b l a n k c o n f i g u r a t i o n w i l l a u t o m a t i c a l l y u s e DHCP f o r any n e t . ∗
s c r i p t s i n / e t c / i n i t . d . To c r e a t e a more c o m p l e t e c o n f i g u r a t i o n ,
p l e a s e r e v i e w / u s r / s h a r e / doc / o p e n r c ∗/ n e t . example ∗ and s a v e your c o n f i g u r a t i o n
i n / e t c / c o n f . d/ n e t ( t h i s f i l e : ] ! ) .
c o n f i g e t h 0=” 1 9 2 . 1 6 8 . 1 4 2 . 1 netmask 2 5 5 . 2 5 5 . 2 5 5 . 0 brd 1 9 2 . 1 6 8 . 1 2 4 . 2 5 5 ”
r o u t e s e t h 0=” d e f a u l t v i a 1 9 2 . 1 6 8 . 1 4 2 . 1 ”
c o n f i g e t h 2=” 1 9 2 . 1 6 8 . 1 4 2 . 2 netmask 2 5 5 . 2 5 5 . 2 5 5 . 0 brd 1 9 2 . 1 6 8 . 1 4 2 . 2 5 5 ”
r o u t e s e t h 2=” d e f a u l t v i a 1 9 2 . 1 6 8 . 1 4 2 . 1
2 2 4 . 0 . 0 . 0 / 4 dev e t h 0 ”
Listing 19.2: Network configuration with multicast route
44
Reussner Matthieu
19.3
1
2
3
4
Packages configurations
#r e q u i r e d by =media−l i b s / opencv − 2 . 3 . 1 a−r 1 ( argument )
=media−l i b s / opencv − 2 . 3 . 1 a−r 1 ˜ x86
#r e q u i r e d by net−misc / s p r e a d ( argument )
=net−misc / s p r e a d − 4 . 1 . 0 ˜ x86
Listing 19.3: Per-package ACCEPT KEYWORDS for profiles
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#r e q u i r e d by x11−l i b s / g t k +−2.24.8− r1 , r e q u i r e d by media−l i b s / opencv − 2 . 3 . 1 a−r 1 [ g t k ] ,
r e q u i r e d by opencv ( argument )
=x11−l i b s / c a i r o −1.10.2 − r 1 X
#r e q u i r e d by x11−l i b s / g t k +−2.24.8− r1 , r e q u i r e d by media−l i b s / opencv − 2 . 3 . 1 a−r 1 [ g t k ] ,
r e q u i r e d by opencv ( argument )
=x11−l i b s /gdk−p i x b u f −2.24.0 − r 1 X
media−l i b s / opencv o p e n g l s s e s s e 2 f fm pe g g t k python v 4 l
#r e q u i r e d by media−l i b s /mesa − 7 . 1 1 . 2 , r e q u i r e d by x11−b a s e / xorg−s e r v e r −1.11.2 − r 2 [−
minimal ] , r e q u i r e d by x11−d r i v e r s / x f 8 6 −i n p u t −evdev − 2 . 6 . 0 , r e q u i r e d by x11−b a s e /
xorg−d r i v e r s − 1 . 1 1 [ i n p u t d e v i c e s e v d e v ]
>=dev−l i b s / l i b x m l 2 −2.7.8 − r 4 python
#r e q u i r e d by x11−d r i v e r s / x f 8 6 −v i d e o −i n t e l −2.17.0 − r 3 [ d r i ] , r e q u i r e d by x11−b a s e / xorg
−d r i v e r s − 1 . 1 1 [ v i d e o c a r d s i n t e l ]
=x11−b a s e / xorg−s e r v e r −1.11.2 − r 2 −minimal
#r e q u i r e d by x11−wm/awesome −3.4.9 − r1 , r e q u i r e d by x11−wm/ awesome ( argument )
=x11−l i b s / c a i r o −1.10.2 − r 1 xcb
#r e q u i r e d by x11−wm/awesome −3.4.9 − r1 , r e q u i r e d by x11−wm/ awesome ( argument )
>=media−g f x / imagemagick − 6 . 7 . 5 . 3 png
#r e q u i r e d by x11−wm/awesome −3.4.9 − r1 , r e q u i r e d by x11−wm/ awesome ( argument )
=media−l i b s / i m l i b 2 − 1 . 4 . 4 png
media−v i d e o / mplayer −a52 −c d i o −d i r a c −d t s −dv −dvd −dvdnav −enca −f a a c −f a a d −
network −osdmenu −q u i c k t i m e −r a r − r e a l −r t c −s c h r o e d i n g e r −s p e e x −t h e o r a −
t o o l a m e −tre mor −twolame −v o r b i s −x264 −x s c r e e n s a v e r −xv
media−v i d e o / mplayer −a52 −c d i o −d i r a c −d t s −dv −dvd −dvdnav −enca −f a a c −f a a d −
network −osdmenu −q u i c k t i m e −r a r − r e a l −r t c −s c h r o e d i n g e r −s p e e x −t h e o r a −
t o o l a m e −tre mor −twolame −v o r b i s −x264 −x s c r e e n s a v e r −xv −a s s − l i v e −mp3
media−v i d e o / mplayer v 4 l X
Listing 19.4: Feature selection
19.4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Kernel Configuration
CONFIG X86 32=y
CONFIG X86=y
CONFIG INSTRUCTION DECODER=y
CONFIG OUTPUT FORMAT=” e l f 3 2 −i 3 8 6 ”
CONFIG ARCH DEFCONFIG=” a r c h / x86 / c o n f i g s / i 3 8 6 d e f c o n f i g ”
CONFIG GENERIC CMOS UPDATE=y
CONFIG CLOCKSOURCE WATCHDOG=y
CONFIG GENERIC CLOCKEVENTS=y
CONFIG GENERIC CLOCKEVENTS BROADCAST=y
CONFIG LOCKDEP SUPPORT=y
CONFIG STACKTRACE SUPPORT=y
CONFIG HAVE LATENCYTOP SUPPORT=y
CONFIG MMU=y
CONFIG ZONE DMA=y
CONFIG NEED SG DMA LENGTH=y
CONFIG GENERIC ISA DMA=y
CONFIG GENERIC IOMAP=y
CONFIG GENERIC BUG=y
CONFIG GENERIC HWEIGHT=y
45
Reussner Matthieu
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
CONFIG ARCH MAY HAVE PC FDC=y
CONFIG RWSEM XCHGADD ALGORITHM=y
CONFIG ARCH HAS CPU IDLE WAIT=y
CONFIG GENERIC CALIBRATE DELAY=y
CONFIG ARCH HAS CPU RELAX=y
CONFIG ARCH HAS DEFAULT IDLE=y
CONFIG ARCH HAS CACHE LINE SIZE=y
CONFIG HAVE SETUP PER CPU AREA=y
CONFIG NEED PER CPU EMBED FIRST CHUNK=y
CONFIG NEED PER CPU PAGE FIRST CHUNK=y
CONFIG ARCH HIBERNATION POSSIBLE=y
CONFIG ARCH SUSPEND POSSIBLE=y
CONFIG ARCH POPULATES NODE MAP=y
CONFIG ARCH SUPPORTS OPTIMIZED INLINING=y
CONFIG ARCH SUPPORTS DEBUG PAGEALLOC=y
CONFIG X86 32 SMP=y
CONFIG X86 HT=y
CONFIG X86 32 LAZY GS=y
CONFIG ARCH HWEIGHT CFLAGS=”− f c a l l −saved−e c x − f c a l l −saved−edx ”
CONFIG KTIME SCALAR=y
CONFIG ARCH CPU PROBE RELEASE=y
CONFIG DEFCONFIG LIST=” / l i b / modules /$UNAME RELEASE/ . c o n f i g ”
CONFIG HAVE IRQ WORK=y
CONFIG IRQ WORK=y
CONFIG EXPERIMENTAL=y
CONFIG INIT ENV ARG LIMIT=32
CONFIG CROSS COMPILE=” ”
CONFIG LOCALVERSION=” ”
CONFIG HAVE KERNEL GZIP=y
CONFIG HAVE KERNEL BZIP2=y
CONFIG HAVE KERNEL LZMA=y
CONFIG HAVE KERNEL XZ=y
CONFIG HAVE KERNEL LZO=y
CONFIG KERNEL GZIP=y
CONFIG DEFAULT HOSTNAME=” ( none ) ”
CONFIG SWAP=y
CONFIG SYSVIPC=y
CONFIG SYSVIPC SYSCTL=y
CONFIG POSIX MQUEUE=y
CONFIG POSIX MQUEUE SYSCTL=y
CONFIG BSD PROCESS ACCT=y
CONFIG BSD PROCESS ACCT V3=y
CONFIG TASKSTATS=y
CONFIG TASK DELAY ACCT=y
CONFIG TASK XACCT=y
CONFIG TASK IO ACCOUNTING=y
CONFIG AUDIT=y
CONFIG AUDITSYSCALL=y
CONFIG AUDIT WATCH=y
CONFIG AUDIT TREE=y
CONFIG HAVE GENERIC HARDIRQS=y
CONFIG GENERIC HARDIRQS=y
CONFIG HAVE SPARSE IRQ=y
CONFIG GENERIC IRQ PROBE=y
CONFIG GENERIC IRQ SHOW=y
CONFIG GENERIC PENDING IRQ=y
CONFIG IRQ FORCED THREADING=y
CONFIG SPARSE IRQ=y
CONFIG TREE RCU=y
CONFIG RCU FANOUT=32
CONFIG IKCONFIG=y
CONFIG IKCONFIG PROC=y
CONFIG LOG BUF SHIFT=15
CONFIG HAVE UNSTABLE SCHED CLOCK=y
46
Reussner Matthieu
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
CONFIG CGROUPS=y
CONFIG CPUSETS=y
CONFIG PROC PID CPUSET=y
CONFIG CGROUP CPUACCT=y
CONFIG NAMESPACES=y
CONFIG UTS NS=y
CONFIG IPC NS=y
CONFIG USER NS=y
CONFIG PID NS=y
CONFIG NET NS=y
CONFIG SYSFS DEPRECATED=y
CONFIG RELAY=y
CONFIG BLK DEV INITRD=y
CONFIG INITRAMFS SOURCE=” ”
CONFIG RD GZIP=y
CONFIG RD BZIP2=y
CONFIG RD LZMA=y
CONFIG RD XZ=y
CONFIG RD LZO=y
CONFIG CC OPTIMIZE FOR SIZE=y
CONFIG SYSCTL=y
CONFIG ANON INODES=y
CONFIG UID16=y
CONFIG KALLSYMS=y
CONFIG HOTPLUG=y
CONFIG PRINTK=y
CONFIG BUG=y
CONFIG ELF CORE=y
CONFIG PCSPKR PLATFORM=y
CONFIG HAVE PCSPKR PLATFORM=y
CONFIG BASE FULL=y
CONFIG FUTEX=y
CONFIG EPOLL=y
CONFIG SIGNALFD=y
CONFIG TIMERFD=y
CONFIG EVENTFD=y
CONFIG SHMEM=y
CONFIG AIO=y
CONFIG HAVE PERF EVENTS=y
CONFIG PERF EVENTS=y
CONFIG VM EVENT COUNTERS=y
CONFIG PCI QUIRKS=y
CONFIG COMPAT BRK=y
CONFIG SLAB=y
CONFIG PROFILING=y
CONFIG TRACEPOINTS=y
CONFIG OPROFILE=m
CONFIG HAVE OPROFILE=y
CONFIG KPROBES=y
CONFIG OPTPROBES=y
CONFIG HAVE EFFICIENT UNALIGNED ACCESS=y
CONFIG KRETPROBES=y
CONFIG HAVE IOREMAP PROT=y
CONFIG HAVE KPROBES=y
CONFIG HAVE KRETPROBES=y
CONFIG HAVE OPTPROBES=y
CONFIG HAVE ARCH TRACEHOOK=y
CONFIG HAVE DMA ATTRS=y
CONFIG USE GENERIC SMP HELPERS=y
CONFIG HAVE REGS AND STACK ACCESS API=y
CONFIG HAVE DMA API DEBUG=y
CONFIG HAVE HW BREAKPOINT=y
CONFIG HAVE MIXED BREAKPOINTS REGS=y
CONFIG HAVE USER RETURN NOTIFIER=y
47
Reussner Matthieu
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
CONFIG HAVE PERF EVENTS NMI=y
CONFIG HAVE ARCH JUMP LABEL=y
CONFIG ARCH HAVE NMI SAFE CMPXCHG=y
CONFIG HAVE GENERIC DMA COHERENT=y
CONFIG SLABINFO=y
CONFIG RT MUTEXES=y
CONFIG BASE SMALL=0
CONFIG MODULES=y
CONFIG MODULE UNLOAD=y
CONFIG MODULE FORCE UNLOAD=y
CONFIG MODVERSIONS=y
CONFIG STOP MACHINE=y
CONFIG BLOCK=y
CONFIG LBDAF=y
CONFIG BLK DEV BSG=y
CONFIG BLK DEV BSGLIB=y
CONFIG IOSCHED NOOP=y
CONFIG IOSCHED DEADLINE=y
CONFIG IOSCHED CFQ=y
CONFIG DEFAULT CFQ=y
CONFIG DEFAULT IOSCHED=” c f q ”
CONFIG INLINE SPIN UNLOCK=y
CONFIG INLINE SPIN UNLOCK IRQ=y
CONFIG INLINE READ UNLOCK=y
CONFIG INLINE READ UNLOCK IRQ=y
CONFIG INLINE WRITE UNLOCK=y
CONFIG INLINE WRITE UNLOCK IRQ=y
CONFIG TICK ONESHOT=y
CONFIG HIGH RES TIMERS=y
CONFIG GENERIC CLOCKEVENTS BUILD=y
CONFIG GENERIC CLOCKEVENTS MIN ADJUST=y
CONFIG SMP=y
CONFIG X86 MPPARSE=y
CONFIG X86 EXTENDED PLATFORM=y
CONFIG X86 SUPPORTS MEMORY FAILURE=y
CONFIG SCHED OMIT FRAME POINTER=y
CONFIG NO BOOTMEM=y
CONFIG MATOM=y
CONFIG X86 GENERIC=y
CONFIG X86 INTERNODE CACHE SHIFT=6
CONFIG X86 CMPXCHG=y
CONFIG CMPXCHG LOCAL=y
CONFIG CMPXCHG DOUBLE=y
CONFIG X86 L1 CACHE SHIFT=6
CONFIG X86 XADD=y
CONFIG X86 WP WORKS OK=y
CONFIG X86 INVLPG=y
CONFIG X86 BSWAP=y
CONFIG X86 POPAD OK=y
CONFIG X86 INTEL USERCOPY=y
CONFIG X86 USE PPRO CHECKSUM=y
CONFIG X86 TSC=y
CONFIG X86 CMPXCHG64=y
CONFIG X86 CMOV=y
CONFIG X86 MINIMUM CPU FAMILY=5
CONFIG X86 DEBUGCTLMSR=y
CONFIG CPU SUP INTEL=y
CONFIG CPU SUP CYRIX 32=y
CONFIG CPU SUP AMD=y
CONFIG CPU SUP CENTAUR=y
CONFIG CPU SUP TRANSMETA 32=y
CONFIG CPU SUP UMC 32=y
CONFIG HPET TIMER=y
CONFIG DMI=y
48
Reussner Matthieu
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
CONFIG NR CPUS=8
CONFIG SCHED SMT=y
CONFIG SCHED MC=y
CONFIG PREEMPT NONE=y
CONFIG X86 LOCAL APIC=y
CONFIG X86 IO APIC=y
CONFIG X86 MCE=y
CONFIG X86 MCE INTEL=y
CONFIG X86 MCE THRESHOLD=y
CONFIG X86 THERMAL VECTOR=y
CONFIG VM86=y
CONFIG X86 REBOOTFIXUPS=y
CONFIG MICROCODE=m
CONFIG MICROCODE INTEL=y
CONFIG MICROCODE OLD INTERFACE=y
CONFIG X86 MSR=m
CONFIG X86 CPUID=m
CONFIG HIGHMEM4G=y
CONFIG PAGE OFFSET=0xC0000000
CONFIG HIGHMEM=y
CONFIG ARCH FLATMEM ENABLE=y
CONFIG ARCH SPARSEMEM ENABLE=y
CONFIG ARCH SELECT MEMORY MODEL=y
CONFIG ILLEGAL POINTER VALUE=0
CONFIG SELECT MEMORY MODEL=y
CONFIG FLATMEM MANUAL=y
CONFIG FLATMEM=y
CONFIG FLAT NODE MEM MAP=y
CONFIG SPARSEMEM STATIC=y
CONFIG HAVE MEMBLOCK=y
CONFIG PAGEFLAGS EXTENDED=y
CONFIG SPLIT PTLOCK CPUS=4
CONFIG ZONE DMA FLAG=1
CONFIG BOUNCE=y
CONFIG VIRT TO BUS=y
CONFIG DEFAULT MMAP MIN ADDR=4096
CONFIG ARCH SUPPORTS MEMORY FAILURE=y
CONFIG HIGHPTE=y
CONFIG X86 RESERVE LOW=64
CONFIG MTRR=y
CONFIG MTRR SANITIZER=y
CONFIG MTRR SANITIZER ENABLE DEFAULT=0
CONFIG MTRR SANITIZER SPARE REG NR DEFAULT=1
CONFIG X86 PAT=y
CONFIG ARCH USES PG UNCACHED=y
CONFIG ARCH RANDOM=y
CONFIG SECCOMP=y
CONFIG HZ 100=y
CONFIG HZ=100
CONFIG SCHED HRTICK=y
CONFIG KEXEC=y
CONFIG CRASH DUMP=y
CONFIG PHYSICAL START=0x100000
CONFIG RELOCATABLE=y
CONFIG X86 NEED RELOCS=y
CONFIG PHYSICAL ALIGN=0x100000
CONFIG HOTPLUG CPU=y
CONFIG COMPAT VDSO=y
CONFIG ARCH ENABLE MEMORY HOTPLUG=y
CONFIG CPU FREQ=y
CONFIG CPU FREQ TABLE=m
CONFIG CPU FREQ STAT=m
CONFIG CPU FREQ STAT DETAILS=y
CONFIG CPU FREQ DEFAULT GOV PERFORMANCE=y
49
Reussner Matthieu
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
CONFIG CPU FREQ GOV PERFORMANCE=y
CONFIG CPU FREQ GOV POWERSAVE=m
CONFIG CPU FREQ GOV USERSPACE=m
CONFIG CPU FREQ GOV ONDEMAND=m
CONFIG CPU FREQ GOV CONSERVATIVE=m
CONFIG X86 POWERNOW K6=m
CONFIG X86 POWERNOW K7=m
CONFIG X86 GX SUSPMOD=m
CONFIG X86 SPEEDSTEP CENTRINO=m
CONFIG X86 SPEEDSTEP CENTRINO TABLE=y
CONFIG X86 SPEEDSTEP ICH=m
CONFIG X86 SPEEDSTEP SMI=m
CONFIG X86 P4 CLOCKMOD=m
CONFIG X86 CPUFREQ NFORCE2=m
CONFIG X86 LONGRUN=m
CONFIG X86 E POWERSAVER=m
CONFIG X86 SPEEDSTEP LIB=m
CONFIG CPU IDLE=y
CONFIG CPU IDLE GOV LADDER=y
CONFIG PCI=y
CONFIG PCI GOANY=y
CONFIG PCI BIOS=y
CONFIG PCI DIRECT=y
CONFIG PCI DOMAINS=y
CONFIG ARCH SUPPORTS MSI=y
CONFIG PCI MSI=y
CONFIG HT IRQ=y
CONFIG PCI LABEL=y
CONFIG ISA DMA API=y
CONFIG AMD NB=y
CONFIG PCCARD=m
CONFIG PCMCIA=m
CONFIG PCMCIA LOAD CIS=y
CONFIG CARDBUS=y
CONFIG YENTA=m
CONFIG YENTA O2=y
CONFIG YENTA RICOH=y
CONFIG YENTA TI=y
CONFIG YENTA ENE TUNE=y
CONFIG YENTA TOSHIBA=y
CONFIG PD6729=m
CONFIG I82092=m
CONFIG PCCARD NONSTATIC=y
CONFIG HOTPLUG PCI=m
CONFIG HOTPLUG PCI COMPAQ=m
CONFIG HOTPLUG PCI IBM=m
CONFIG HOTPLUG PCI CPCI=y
CONFIG HOTPLUG PCI CPCI ZT5550=m
CONFIG HOTPLUG PCI CPCI GENERIC=m
CONFIG HOTPLUG PCI SHPC=m
CONFIG BINFMT ELF=y
CONFIG CORE DUMP DEFAULT ELF HEADERS=y
CONFIG HAVE AOUT=y
CONFIG BINFMT AOUT=m
CONFIG BINFMT MISC=m
CONFIG HAVE ATOMIC IOMAP=y
CONFIG HAVE TEXT POKE SMP=y
CONFIG NET=y
CONFIG PACKET=y
CONFIG UNIX=y
CONFIG XFRM=y
CONFIG XFRM USER=m
CONFIG NET KEY=m
CONFIG INET=y
50
Reussner Matthieu
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
CONFIG IP MULTICAST=y
CONFIG IP ADVANCED ROUTER=y
CONFIG IP MULTIPLE TABLES=y
CONFIG IP ROUTE MULTIPATH=y
CONFIG IP PNP=y
CONFIG IP PNP DHCP=y
CONFIG INET LRO=m
CONFIG INET DIAG=y
CONFIG INET TCP DIAG=y
CONFIG TCP CONG ADVANCED=y
CONFIG TCP CONG BIC=m
CONFIG TCP CONG CUBIC=y
CONFIG TCP CONG WESTWOOD=m
CONFIG TCP CONG HTCP=m
CONFIG TCP CONG HSTCP=m
CONFIG TCP CONG HYBLA=m
CONFIG TCP CONG VEGAS=m
CONFIG TCP CONG SCALABLE=m
CONFIG TCP CONG LP=m
CONFIG TCP CONG VENO=m
CONFIG TCP CONG YEAH=m
CONFIG TCP CONG ILLINOIS=m
CONFIG DEFAULT CUBIC=y
CONFIG DEFAULT TCP CONG=” c u b i c ”
CONFIG TCP MD5SIG=y
CONFIG NETWORK SECMARK=y
CONFIG IP SCTP=y
CONFIG SCTP HMAC MD5=y
CONFIG ATM=m
CONFIG ATM CLIP=m
CONFIG STP=m
CONFIG BRIDGE=m
CONFIG BRIDGE IGMP SNOOPING=y
CONFIG LLC=m
CONFIG DNS RESOLVER=y
CONFIG RPS=y
CONFIG RFS ACCEL=y
CONFIG XPS=y
CONFIG NET PKTGEN=m
CONFIG AF RXRPC=m
CONFIG RXKAD=m
CONFIG FIB RULES=y
CONFIG WIRELESS=y
CONFIG LIB80211=y
CONFIG RFKILL=m
CONFIG RFKILL INPUT=y
CONFIG UEVENT HELPER PATH=” / s b i n / h o t p l u g ”
CONFIG STANDALONE=y
CONFIG PREVENT FIRMWARE BUILD=y
CONFIG FW LOADER=y
CONFIG FIRMWARE IN KERNEL=y
CONFIG EXTRA FIRMWARE=” ”
CONFIG CONNECTOR=m
CONFIG BLK DEV=y
CONFIG BLK DEV LOOP=y
CONFIG BLK DEV LOOP MIN COUNT=8
CONFIG BLK DEV RAM=y
CONFIG BLK DEV RAM COUNT=16
CONFIG BLK DEV RAM SIZE=8192
CONFIG HAVE IDE=y
CONFIG SCSI MOD=y
CONFIG RAID ATTRS=m
CONFIG SCSI=y
CONFIG SCSI DMA=y
51
Reussner Matthieu
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
CONFIG SCSI TGT=m
CONFIG SCSI NETLINK=y
CONFIG SCSI PROC FS=y
CONFIG BLK DEV SD=y
CONFIG CHR DEV ST=m
CONFIG CHR DEV OSST=m
CONFIG BLK DEV SR=y
CONFIG BLK DEV SR VENDOR=y
CONFIG CHR DEV SG=m
CONFIG CHR DEV SCH=m
CONFIG SCSI MULTI LUN=y
CONFIG SCSI CONSTANTS=y
CONFIG SCSI LOGGING=y
CONFIG SCSI SCAN ASYNC=y
CONFIG SCSI WAIT SCAN=m
CONFIG SCSI SPI ATTRS=m
CONFIG SCSI FC ATTRS=m
CONFIG SCSI FC TGT ATTRS=y
CONFIG SCSI ISCSI ATTRS=y
CONFIG SCSI SAS ATTRS=m
CONFIG SCSI SAS LIBSAS=m
CONFIG SCSI SAS ATA=y
CONFIG SCSI SAS HOST SMP=y
CONFIG SCSI SRP ATTRS=m
CONFIG SCSI SRP TGT ATTRS=y
CONFIG SCSI LOWLEVEL=y
CONFIG ISCSI TCP=y
CONFIG ISCSI BOOT SYSFS=m
CONFIG BLK DEV 3W XXXX RAID=m
CONFIG SCSI 3W 9XXX=m
CONFIG SCSI ACARD=m
CONFIG SCSI AACRAID=m
CONFIG SCSI AIC7XXX=m
CONFIG AIC7XXX CMDS PER DEVICE=32
CONFIG AIC7XXX RESET DELAY MS=15000
CONFIG AIC7XXX DEBUG MASK=0
CONFIG AIC7XXX REG PRETTY PRINT=y
CONFIG SCSI AIC79XX=m
CONFIG AIC79XX CMDS PER DEVICE=32
CONFIG AIC79XX RESET DELAY MS=15000
CONFIG AIC79XX DEBUG MASK=0
CONFIG SCSI AIC94XX=m
CONFIG SCSI DPT I2O=m
CONFIG SCSI ADVANSYS=m
CONFIG SCSI ARCMSR=m
CONFIG MEGARAID NEWGEN=y
CONFIG MEGARAID MM=m
CONFIG MEGARAID MAILBOX=m
CONFIG MEGARAID LEGACY=m
CONFIG MEGARAID SAS=m
CONFIG SCSI HPTIOP=m
CONFIG SCSI BUSLOGIC=m
CONFIG SCSI DMX3191D=m
CONFIG SCSI EATA=m
CONFIG SCSI EATA TAGGED QUEUE=y
CONFIG SCSI EATA LINKED COMMANDS=y
CONFIG SCSI EATA MAX TAGS=16
CONFIG SCSI FUTURE DOMAIN=m
CONFIG SCSI GDTH=m
CONFIG SCSI IPS=m
CONFIG SCSI INITIO=m
CONFIG SCSI INIA100=m
CONFIG SCSI STEX=m
CONFIG SCSI SYM53C8XX 2=m
52
Reussner Matthieu
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
CONFIG SCSI SYM53C8XX DMA ADDRESSING MODE=1
CONFIG SCSI SYM53C8XX DEFAULT TAGS=16
CONFIG SCSI SYM53C8XX MAX TAGS=64
CONFIG SCSI SYM53C8XX MMIO=y
CONFIG SCSI IPR=m
CONFIG SCSI IPR TRACE=y
CONFIG SCSI IPR DUMP=y
CONFIG SCSI QLOGIC 1280=m
CONFIG SCSI QLA FC=m
CONFIG SCSI QLA ISCSI=m
CONFIG SCSI LPFC=m
CONFIG SCSI DC395x=m
CONFIG SCSI DC390T=m
CONFIG SCSI NSP32=m
CONFIG SCSI SRP=m
CONFIG SCSI LOWLEVEL PCMCIA=y
CONFIG PCMCIA AHA152X=m
CONFIG PCMCIA FDOMAIN=m
CONFIG PCMCIA NINJA SCSI=m
CONFIG PCMCIA QLOGIC=m
CONFIG PCMCIA SYM53C500=m
CONFIG ATA=y
CONFIG ATA SFF=y
CONFIG ATA BMDMA=y
CONFIG ATA PIIX=y
CONFIG PATA MPIIX=y
CONFIG PATA PCMCIA=m
CONFIG ATA GENERIC=y
CONFIG I2O=m
CONFIG I2O LCT NOTIFY ON CHANGES=y
CONFIG I2O EXT ADAPTEC=y
CONFIG I2O CONFIG=m
CONFIG I2O CONFIG OLD IOCTL=y
CONFIG I2O BUS=m
CONFIG I2O BLOCK=m
CONFIG I2O SCSI=m
CONFIG I2O PROC=m
CONFIG NETDEVICES=y
CONFIG NET CORE=y
CONFIG MII=y
CONFIG ETHERNET=y
CONFIG NET VENDOR 3COM=y
CONFIG NET VENDOR INTEL=y
CONFIG E100=m
CONFIG E1000=m
CONFIG E1000E=m
CONFIG IGB=m
CONFIG IGB DCA=y
CONFIG IXGBEVF=m
CONFIG NET VENDOR I825XX=y
CONFIG NET VENDOR REALTEK=y
CONFIG 8139CP=y
CONFIG 8139TOO=y
CONFIG 8139TOO TUNE TWISTER=y
CONFIG 8139TOO 8129=y
CONFIG R8169=y
CONFIG INPUT=y
CONFIG INPUT POLLDEV=m
CONFIG INPUT SPARSEKMAP=m
CONFIG INPUT MOUSEDEV=y
CONFIG INPUT MOUSEDEV PSAUX=y
CONFIG INPUT MOUSEDEV SCREEN X=1366
CONFIG INPUT MOUSEDEV SCREEN Y=768
CONFIG INPUT EVDEV=y
53
Reussner Matthieu
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
CONFIG INPUT KEYBOARD=y
CONFIG KEYBOARD ATKBD=y
CONFIG KEYBOARD LKKBD=m
CONFIG KEYBOARD NEWTON=m
CONFIG KEYBOARD STOWAWAY=m
CONFIG KEYBOARD SUNKBD=m
CONFIG KEYBOARD XTKBD=m
CONFIG INPUT MOUSE=y
CONFIG MOUSE PS2=y
CONFIG MOUSE PS2 ALPS=y
CONFIG MOUSE PS2 LOGIPS2PP=y
CONFIG MOUSE PS2 SYNAPTICS=y
CONFIG MOUSE PS2 LIFEBOOK=y
CONFIG MOUSE PS2 TRACKPOINT=y
CONFIG MOUSE PS2 TOUCHKIT=y
CONFIG MOUSE SERIAL=m
CONFIG MOUSE VSXXXAA=m
CONFIG SERIO=y
CONFIG SERIO I8042=y
CONFIG SERIO SERPORT=m
CONFIG SERIO CT82C710=m
CONFIG SERIO PCIPS2=m
CONFIG SERIO LIBPS2=y
CONFIG SERIO RAW=m
CONFIG VT=y
CONFIG CONSOLE TRANSLATIONS=y
CONFIG VT CONSOLE=y
CONFIG HW CONSOLE=y
CONFIG VT HW CONSOLE BINDING=y
CONFIG UNIX98 PTYS=y
CONFIG DEVKMEM=y
CONFIG SERIAL 8250=y
CONFIG SERIAL 8250 CONSOLE=y
CONFIG FIX EARLYCON MEM=y
CONFIG SERIAL 8250 PCI=y
CONFIG SERIAL 8250 CS=m
CONFIG SERIAL 8250 NR UARTS=4
CONFIG SERIAL 8250 RUNTIME UARTS=4
CONFIG SERIAL 8250 EXTENDED=y
CONFIG SERIAL 8250 MANY PORTS=y
CONFIG SERIAL 8250 SHARE IRQ=y
CONFIG SERIAL 8250 RSA=y
CONFIG SERIAL CORE=y
CONFIG SERIAL CORE CONSOLE=y
CONFIG SERIAL JSM=m
CONFIG IPMI HANDLER=m
CONFIG IPMI PANIC EVENT=y
CONFIG IPMI PANIC STRING=y
CONFIG IPMI DEVICE INTERFACE=m
CONFIG IPMI SI=m
CONFIG IPMI WATCHDOG=m
CONFIG IPMI POWEROFF=m
CONFIG HW RANDOM=y
CONFIG HW RANDOM INTEL=y
CONFIG NVRAM=m
CONFIG GEN RTC=y
CONFIG GEN RTC X=y
CONFIG SYNCLINK CS=m
CONFIG CARDMAN 4000=m
CONFIG CARDMAN 4040=m
CONFIG DEVPORT=y
CONFIG I2C=y
CONFIG I2C BOARDINFO=y
CONFIG I2C COMPAT=y
54
Reussner Matthieu
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
CONFIG I2C CHARDEV=m
CONFIG I2C HELPER AUTO=y
CONFIG I2C ALGOBIT=y
CONFIG I2C ALI1535=m
CONFIG I2C ALI1563=m
CONFIG I2C ALI15X3=m
CONFIG I2C AMD756=m
CONFIG I2C AMD756 S4882=m
CONFIG I2C AMD8111=m
CONFIG I2C I801=m
CONFIG I2C PIIX4=m
CONFIG I2C NFORCE2=m
CONFIG I2C SIS5595=m
CONFIG I2C SIS630=m
CONFIG I2C SIS96X=m
CONFIG I2C VIA=m
CONFIG I2C VIAPRO=m
CONFIG I2C OCORES=m
CONFIG I2C SIMTEC=m
CONFIG SCx200 ACB=m
CONFIG SPI=y
CONFIG SPI MASTER=y
CONFIG SPI BITBANG=m
CONFIG SPI SPIDEV=m
CONFIG SPI TLE62X0=m
CONFIG ARCH WANT OPTIONAL GPIOLIB=y
CONFIG SSB POSSIBLE=y
CONFIG SSB=m
CONFIG SSB SPROM=y
CONFIG SSB PCIHOST POSSIBLE=y
CONFIG SSB PCIHOST=y
CONFIG SSB PCMCIAHOST POSSIBLE=y
CONFIG SSB PCMCIAHOST=y
CONFIG SSB SDIOHOST POSSIBLE=y
CONFIG SSB DRIVER PCICORE POSSIBLE=y
CONFIG SSB DRIVER PCICORE=y
CONFIG BCMA POSSIBLE=y
CONFIG MFD SM501=m
CONFIG MEDIA SUPPORT=y
CONFIG VIDEO DEV=y
CONFIG VIDEO V4L2 COMMON=y
CONFIG VIDEO MEDIA=y
CONFIG MEDIA ATTACH=y
CONFIG MEDIA TUNER=y
CONFIG MEDIA TUNER SIMPLE=y
CONFIG MEDIA TUNER TDA8290=y
CONFIG MEDIA TUNER TDA827X=y
CONFIG MEDIA TUNER TDA18271=y
CONFIG MEDIA TUNER TDA9887=y
CONFIG MEDIA TUNER TEA5761=y
CONFIG MEDIA TUNER TEA5767=y
CONFIG MEDIA TUNER MT20XX=y
CONFIG MEDIA TUNER XC2028=y
CONFIG MEDIA TUNER XC5000=y
CONFIG MEDIA TUNER XC4000=y
CONFIG MEDIA TUNER MC44S803=y
CONFIG VIDEO V4L2=y
CONFIG VIDEOBUF GEN=y
CONFIG VIDEOBUF VMALLOC=y
CONFIG VIDEO TVEEPROM=y
CONFIG VIDEO TUNER=y
CONFIG VIDEOBUF2 CORE=y
CONFIG VIDEOBUF2 MEMOPS=y
CONFIG VIDEOBUF2 VMALLOC=y
55
Reussner Matthieu
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
CONFIG VIDEO CAPTURE DRIVERS=y
CONFIG VIDEO HELPER CHIPS AUTO=y
CONFIG VIDEO MSP3400=y
CONFIG VIDEO CS53L32A=y
CONFIG VIDEO WM8775=y
CONFIG VIDEO SAA711X=y
CONFIG VIDEO TVP5150=y
CONFIG VIDEO CX25840=y
CONFIG VIDEO CX2341X=y
CONFIG VIDEO MT9V011=y
CONFIG V4L USB DRIVERS=y
CONFIG USB VIDEO CLASS=y
CONFIG USB VIDEO CLASS INPUT EVDEV=y
CONFIG USB GSPCA=y
CONFIG USB M5602=y
CONFIG USB STV06XX=y
CONFIG USB GL860=y
CONFIG USB GSPCA BENQ=y
CONFIG USB GSPCA CONEX=y
CONFIG USB GSPCA CPIA1=y
CONFIG USB GSPCA ETOMS=y
CONFIG USB GSPCA FINEPIX=y
CONFIG USB GSPCA JEILINJ=y
CONFIG USB GSPCA KINECT=y
CONFIG USB GSPCA KONICA=y
CONFIG USB GSPCA MARS=y
CONFIG USB GSPCA MR97310A=y
CONFIG USB GSPCA NW80X=y
CONFIG USB GSPCA OV519=y
CONFIG USB GSPCA OV534=y
CONFIG USB GSPCA OV534 9=y
CONFIG USB GSPCA PAC207=y
CONFIG USB GSPCA PAC7302=y
CONFIG USB GSPCA PAC7311=y
CONFIG USB GSPCA SE401=y
CONFIG USB GSPCA SN9C2028=y
CONFIG USB GSPCA SN9C20X=y
CONFIG USB GSPCA SONIXB=y
CONFIG USB GSPCA SONIXJ=y
CONFIG USB GSPCA SPCA500=y
CONFIG USB GSPCA SPCA501=y
CONFIG USB GSPCA SPCA505=y
CONFIG USB GSPCA SPCA506=y
CONFIG USB GSPCA SPCA508=y
CONFIG USB GSPCA SPCA561=y
CONFIG USB GSPCA SPCA1528=y
CONFIG USB GSPCA SQ905=y
CONFIG USB GSPCA SQ905C=y
CONFIG USB GSPCA SQ930X=y
CONFIG USB GSPCA STK014=y
CONFIG USB GSPCA STV0680=y
CONFIG USB GSPCA SUNPLUS=y
CONFIG USB GSPCA T613=y
CONFIG USB GSPCA TOPRO=y
CONFIG USB GSPCA TV8532=y
CONFIG USB GSPCA VC032X=y
CONFIG USB GSPCA VICAM=y
CONFIG USB GSPCA XIRLINK CIT=y
CONFIG USB GSPCA ZC3XX=y
CONFIG VIDEO PVRUSB2=y
CONFIG VIDEO PVRUSB2 SYSFS=y
CONFIG VIDEO PVRUSB2 DEBUGIFC=y
CONFIG VIDEO HDPVR=y
CONFIG VIDEO EM28XX=y
56
Reussner Matthieu
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
CONFIG VIDEO USBVISION=y
CONFIG USB ET61X251=y
CONFIG USB SN9C102=y
CONFIG USB PWC=y
CONFIG USB PWC DEBUG=y
CONFIG USB PWC INPUT EVDEV=y
CONFIG USB ZR364XX=y
CONFIG USB STKWEBCAM=y
CONFIG USB S2255=y
CONFIG AGP=y
CONFIG AGP INTEL=y
CONFIG VGA ARB=y
CONFIG VGA ARB MAX GPUS=16
CONFIG DRM=y
CONFIG DRM KMS HELPER=y
CONFIG DRM I810=y
CONFIG DRM I915=y
CONFIG DRM I915 KMS=y
CONFIG STUB POULSBO=y
CONFIG VIDEO OUTPUT CONTROL=m
CONFIG FB=y
CONFIG FIRMWARE EDID=y
CONFIG FB BOOT VESA SUPPORT=y
CONFIG FB CFB FILLRECT=y
CONFIG FB CFB COPYAREA=y
CONFIG FB CFB IMAGEBLIT=y
CONFIG FB VESA=y
CONFIG BACKLIGHT LCD SUPPORT=y
CONFIG LCD CLASS DEVICE=y
CONFIG LCD LTV350QV=y
CONFIG BACKLIGHT CLASS DEVICE=m
CONFIG BACKLIGHT GENERIC=m
CONFIG BACKLIGHT PROGEAR=m
CONFIG DISPLAY SUPPORT=m
CONFIG VGA CONSOLE=y
CONFIG DUMMY CONSOLE=y
CONFIG FRAMEBUFFER CONSOLE=y
CONFIG FRAMEBUFFER CONSOLE DETECT PRIMARY=y
CONFIG FB CON DECOR=y
CONFIG FONT 8x8=y
CONFIG FONT 8x16=y
CONFIG HID SUPPORT=y
CONFIG HID=y
CONFIG HIDRAW=y
CONFIG USB HID=m
CONFIG HID PID=y
CONFIG USB HIDDEV=y
CONFIG HID A4TECH=m
CONFIG HID APPLE=m
CONFIG HID BELKIN=m
CONFIG HID CHERRY=m
CONFIG HID CHICONY=m
CONFIG HID CYPRESS=m
CONFIG HID EZKEY=m
CONFIG HID KYE=m
CONFIG HID KENSINGTON=m
CONFIG HID LOGITECH=m
CONFIG HID MICROSOFT=m
CONFIG HID MONTEREY=m
CONFIG USB SUPPORT=y
CONFIG USB COMMON=y
CONFIG USB ARCH HAS HCD=y
CONFIG USB ARCH HAS OHCI=y
CONFIG USB ARCH HAS EHCI=y
57
Reussner Matthieu
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
CONFIG USB ARCH HAS XHCI=y
CONFIG USB=y
CONFIG USB ANNOUNCE NEW DEVICES=y
CONFIG USB EHCI HCD=m
CONFIG USB EHCI ROOT HUB TT=y
CONFIG USB EHCI TT NEWSCHED=y
CONFIG USB OHCI HCD=m
CONFIG USB OHCI HCD SSB=y
CONFIG USB OHCI LITTLE ENDIAN=y
CONFIG USB UHCI HCD=y
CONFIG USB STORAGE=m
CONFIG USB STORAGE REALTEK=m
CONFIG MMC=m
CONFIG MMC BLOCK=m
CONFIG MMC BLOCK MINORS=8
CONFIG MMC BLOCK BOUNCE=y
CONFIG SDIO UART=m
CONFIG MMC SDHCI=m
CONFIG DMADEVICES=y
CONFIG INTEL IOATDMA=y
CONFIG DMA ENGINE=y
CONFIG NET DMA=y
CONFIG DCA=y
CONFIG CLKSRC I8253=y
CONFIG CLKEVT I8253=y
CONFIG I8253 LOCK=y
CONFIG CLKBLD I8253=y
CONFIG FIRMWARE MEMMAP=y
CONFIG EXT2 FS=y
CONFIG EXT2 FS XATTR=y
CONFIG EXT2 FS POSIX ACL=y
CONFIG EXT2 FS SECURITY=y
CONFIG EXT3 FS=y
CONFIG EXT3 DEFAULTS TO ORDERED=y
CONFIG EXT3 FS XATTR=y
CONFIG EXT3 FS POSIX ACL=y
CONFIG EXT3 FS SECURITY=y
CONFIG JBD=y
CONFIG FS MBCACHE=y
CONFIG FS POSIX ACL=y
CONFIG FILE LOCKING=y
CONFIG FSNOTIFY=y
CONFIG DNOTIFY=y
CONFIG INOTIFY USER=y
CONFIG GENERIC ACL=y
CONFIG FAT FS=y
CONFIG MSDOS FS=m
CONFIG VFAT FS=y
CONFIG FAT DEFAULT CODEPAGE=437
CONFIG FAT DEFAULT IOCHARSET=” i s o 8 8 5 9 −1”
CONFIG NTFS FS=m
CONFIG PROC FS=y
CONFIG PROC KCORE=y
CONFIG PROC VMCORE=y
CONFIG PROC SYSCTL=y
CONFIG PROC PAGE MONITOR=y
CONFIG SYSFS=y
CONFIG TMPFS=y
CONFIG TMPFS POSIX ACL=y
CONFIG TMPFS XATTR=y
CONFIG CONFIGFS FS=y
CONFIG PARTITION ADVANCED=y
CONFIG MAC PARTITION=y
CONFIG MSDOS PARTITION=y
58
Reussner Matthieu
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
CONFIG BSD DISKLABEL=y
CONFIG MINIX SUBPARTITION=y
CONFIG SOLARIS X86 PARTITION=y
CONFIG UNIXWARE DISKLABEL=y
CONFIG LDM PARTITION=y
CONFIG KARMA PARTITION=y
CONFIG EFI PARTITION=y
CONFIG NLS=y
CONFIG NLS DEFAULT=” i s o 8 8 5 9 −1”
CONFIG NLS CODEPAGE 437=y
CONFIG NLS ISO8859 1=y
CONFIG NLS ISO8859 15=y
CONFIG NLS UTF8=y
CONFIG TRACE IRQFLAGS SUPPORT=y
CONFIG DEFAULT MESSAGE LOGLEVEL=4
CONFIG ENABLE WARN DEPRECATED=y
CONFIG ENABLE MUST CHECK=y
CONFIG FRAME WARN=1024
CONFIG MAGIC SYSRQ=y
CONFIG DEBUG FS=y
CONFIG DEBUG KERNEL=y
CONFIG DEBUG SHIRQ=y
CONFIG SCHED DEBUG=y
CONFIG DEBUG RT MUTEXES=y
CONFIG DEBUG PI LIST=y
CONFIG DEBUG MUTEXES=y
CONFIG STACKTRACE=y
CONFIG DEBUG BUGVERBOSE=y
CONFIG DEBUG MEMORY INIT=y
CONFIG ARCH WANT FRAME POINTERS=y
CONFIG FRAME POINTER=y
CONFIG RCU CPU STALL TIMEOUT=60
CONFIG USER STACKTRACE SUPPORT=y
CONFIG NOP TRACER=y
CONFIG HAVE FUNCTION TRACER=y
CONFIG HAVE FUNCTION GRAPH TRACER=y
CONFIG HAVE FUNCTION GRAPH FP TEST=y
CONFIG HAVE FUNCTION TRACE MCOUNT TEST=y
CONFIG HAVE DYNAMIC FTRACE=y
CONFIG HAVE FTRACE MCOUNT RECORD=y
CONFIG HAVE SYSCALL TRACEPOINTS=y
CONFIG HAVE C RECORDMCOUNT=y
CONFIG RING BUFFER=y
CONFIG EVENT TRACING=y
CONFIG EVENT POWER TRACING DEPRECATED=y
CONFIG CONTEXT SWITCH TRACER=y
CONFIG RING BUFFER ALLOW SWAP=y
CONFIG TRACING=y
CONFIG GENERIC TRACER=y
CONFIG TRACING SUPPORT=y
CONFIG FTRACE=y
CONFIG BRANCH PROFILE NONE=y
CONFIG BLK DEV IO TRACE=y
CONFIG KPROBE EVENT=y
CONFIG HAVE ARCH KGDB=y
CONFIG HAVE ARCH KMEMCHECK=y
CONFIG X86 VERBOSE BOOTUP=y
CONFIG EARLY PRINTK=y
CONFIG DOUBLEFAULT=y
CONFIG HAVE MMIOTRACE SUPPORT=y
CONFIG IO DELAY TYPE 0X80=0
CONFIG IO DELAY TYPE 0XED=1
CONFIG IO DELAY TYPE UDELAY=2
CONFIG IO DELAY TYPE NONE=3
59
Reussner Matthieu
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
CONFIG IO DELAY 0X80=y
CONFIG DEFAULT IO DELAY TYPE=0
CONFIG KEYS=y
CONFIG SECURITYFS=y
CONFIG DEFAULT SECURITY DAC=y
CONFIG DEFAULT SECURITY=” ”
CONFIG ASYNC TX DISABLE PQ VAL DMA=y
CONFIG ASYNC TX DISABLE XOR VAL DMA=y
CONFIG CRYPTO=y
CONFIG CRYPTO ALGAPI=y
CONFIG CRYPTO ALGAPI2=y
CONFIG CRYPTO AEAD=m
CONFIG CRYPTO AEAD2=y
CONFIG CRYPTO BLKCIPHER=m
CONFIG CRYPTO BLKCIPHER2=y
CONFIG CRYPTO HASH=y
CONFIG CRYPTO HASH2=y
CONFIG CRYPTO RNG=m
CONFIG CRYPTO RNG2=y
CONFIG CRYPTO PCOMP2=y
CONFIG CRYPTO MANAGER=y
CONFIG CRYPTO MANAGER2=y
CONFIG CRYPTO MANAGER DISABLE TESTS=y
CONFIG CRYPTO GF128MUL=m
CONFIG CRYPTO NULL=m
CONFIG CRYPTO WORKQUEUE=y
CONFIG CRYPTO CRYPTD=m
CONFIG CRYPTO AUTHENC=m
CONFIG CRYPTO CBC=m
CONFIG CRYPTO ECB=m
CONFIG CRYPTO LRW=m
CONFIG CRYPTO PCBC=m
CONFIG CRYPTO XTS=m
CONFIG CRYPTO HMAC=y
CONFIG CRYPTO XCBC=m
CONFIG CRYPTO CRC32C=y
CONFIG CRYPTO MD4=m
CONFIG CRYPTO MD5=y
CONFIG CRYPTO MICHAEL MIC=m
CONFIG CRYPTO SHA1=y
CONFIG CRYPTO SHA256=m
CONFIG CRYPTO SHA512=m
CONFIG CRYPTO TGR192=m
CONFIG CRYPTO WP512=m
CONFIG CRYPTO AES=m
CONFIG CRYPTO AES 586=m
CONFIG CRYPTO ANUBIS=m
CONFIG CRYPTO ARC4=m
CONFIG CRYPTO BLOWFISH=m
CONFIG CRYPTO BLOWFISH COMMON=m
CONFIG CRYPTO CAMELLIA=m
CONFIG CRYPTO CAST5=m
CONFIG CRYPTO CAST6=m
CONFIG CRYPTO DES=y
CONFIG CRYPTO FCRYPT=m
CONFIG CRYPTO KHAZAD=m
CONFIG CRYPTO SEED=m
CONFIG CRYPTO SERPENT=m
CONFIG CRYPTO TEA=m
CONFIG CRYPTO TWOFISH=m
CONFIG CRYPTO TWOFISH COMMON=m
CONFIG CRYPTO TWOFISH 586=m
CONFIG CRYPTO DEFLATE=m
CONFIG CRYPTO ANSI CPRNG=m
60
Reussner Matthieu
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
CONFIG CRYPTO HW=y
CONFIG HAVE KVM=y
CONFIG BINARY PRINTF=y
CONFIG BITREVERSE=y
CONFIG GENERIC FIND FIRST BIT=y
CONFIG CRC CCITT=m
CONFIG CRC16=y
CONFIG CRC ITU T=y
CONFIG CRC32=y
CONFIG CRC7=m
CONFIG LIBCRC32C=y
CONFIG AUDIT GENERIC=y
CONFIG ZLIB INFLATE=y
CONFIG ZLIB DEFLATE=m
CONFIG LZO DECOMPRESS=y
CONFIG XZ DEC=y
CONFIG XZ DEC X86=y
CONFIG XZ DEC POWERPC=y
CONFIG XZ DEC IA64=y
CONFIG XZ DEC ARM=y
CONFIG XZ DEC ARMTHUMB=y
CONFIG XZ DEC SPARC=y
CONFIG XZ DEC BCJ=y
CONFIG DECOMPRESS GZIP=y
CONFIG DECOMPRESS BZIP2=y
CONFIG DECOMPRESS LZMA=y
CONFIG DECOMPRESS XZ=y
CONFIG DECOMPRESS LZO=y
CONFIG HAS IOMEM=y
CONFIG HAS IOPORT=y
CONFIG HAS DMA=y
CONFIG CHECK SIGNATURE=y
CONFIG CPU RMAP=y
CONFIG NLATTR=y
CONFIG AVERAGE=y
Listing 19.5: Kernel .config
19.5
1
2
3
4
5
6
7
8
9
Persistent net rules
#c a r d 1
# PCI d e v i c e 0 x8086 : 0 x1501 ( e 1 0 0 0 e )
SUBSYSTEM==” n e t ” , ACTION==” add ” , DRIVERS==” ?∗ ” , ATTR{ a d d r e s s}==” 0 0 : 0 b : ab : 2 b : 5 b : 5 4 ” ,
ATTR{ d e v i d}==” 0 x0 ” , ATTR{ t y p e}==” 1 ” , KERNEL==” e t h ∗ ” , NAME=” e t h 0 ”
SUBSYSTEM==” n e t ” , ACTION==” add ” , DRIVERS==” ?∗ ” , ATTR{ a d d r e s s}==” 0 0 : 0 b : ab : 2 b : 5 b : 5 5 ” ,
ATTR{ d e v i d}==” 0 x0 ” , ATTR{ t y p e}==” 1 ” , KERNEL==” e t h ∗ ” , NAME=” e t h 1 ”
# card 2
# PCI d e v i c e 0 x 1 0 e c : 0 x8136 ( r 8 1 6 9 )
SUBSYSTEM==” n e t ” , ACTION==” add ” , DRIVERS==” ?∗ ” , ATTR{ a d d r e s s}==” 0 0 : 5 0 : c2 : c5 : 1 0 : ab ” ,
ATTR{ d e v i d}==” 0 x0 ” , ATTR{ t y p e}==” 1 ” , KERNEL==” e t h ∗ ” , NAME=” e t h 2 ”
Listing 19.6: Persistent configuration for network interface
19.6
Network name resolution
61
Reussner Matthieu
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#
#
#
#
#
#
#
#
/ e t c / h o s t s : L o c a l Host Database
This f i l e d e s c r i b e s a number o f a l i a s e s −to−a d d r e s s mappings f o r t h e f o r
l o c a l hosts that share t h i s f i l e .
I n t h e p r e s e n c e o f t h e domain name s e r v i c e o r NIS , t h i s f i l e may not be
consulted at a l l ; see / etc / host . conf f o r the r e s o l u t i o n order .
1 9 2 . 1 6 8 . 1 4 2 . 1 embedded01
1 9 2 . 1 6 8 . 1 4 2 . 2 embedded02
#. . .
# IPv4 and IPv6 l o c a l h o s t a l i a s e s
127.0.0.1
localhost
::1
localhost
Listing 19.7: file hosts
19.7
1
2
3
4
5
6
Autologin
/ e t c / i n i t . d/ s p r e a d −D s t a r t
/ e t c / i n i t . d/ s s h d −D s t a r t
i f ! f u s e r / dev / t t y 7 &> / dev / n u l l ; then
su − g r a p h i c − l −c ’ e x e c s t a r t x &> ˜ / . x s e s s i o n −e r r o r s ’ &
fi
Listing 19.8: Auto-login service
19.8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Spread toolkit configuration
EventLogFile = / var / l o g / spread . l o g
EventTimeStamp
Spread Segment
224.0.0.1:4803 {
embedded01
192.168.142.1 {
D 192.168.142.1
C 192.168.142.1
}
embedded02
192.168.142.2 {
D 192.168.142.2
C 192.168.142.2
}
}
Listing 19.9: Spread main configuration file
19.9
Record video from Webcam
62
Reussner Matthieu
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
s t e e l i d o @ s t e e l b o o k ˜ $ mencoder t v : / / −t v d r i v e r=v 4 l 2 : width =640: h e i g h t =480: d e v i c e
=/dev / v i d e o 0 −nosound −ovc l a v c −o Downloads / t r a i n i n g . a v i
MEncoder SVN−r33094 − 4 . 5 . 3 (C) 2000 −2011 MPlayer Team
s u c c e s : f o r m a t : 9 data : 0 x0 − 0 x0
F i c h i e r de t y p e TV d e t e c t e .
Driver s e l e c t i o n n e : v4l2
nom : Video 4 Linux 2 i n p u t
a u t e u r : Martin O l s c h e w s k i <o l s c h e w s k i @ z p r . uni−k o e l n . de>
commentaire : f i r s t t r y , more t o come ; −)
v 4 l 2 : your d e v i c e d r i v e r d o e s not s u p p o r t VIDIOC G STD i o c t l , VIDIOC G PARM was
used i n s t e a d .
S e l e c t e d d e v i c e : USB camera
Capabilities :
video capture
read / write
streaming
s u p p o r t e d norms :
inputs : 0 = sonixj ;
C u r r e nt i n p u t : 0
C u r r e nt f o r m a t : unknown ( 0 x4745504a )
t v . c : n o r m f r o m s t r i n g ( p a l ) : p a r a m e t r e de norme bogue .
Ajuste a d e f a u l t .
v 4 l 2 : i o c t l enum norm f a i l e d : I n a p p r o p r i a t e i o c t l f o r d e v i c e
E r r e u r : La norme ne peut pas e t r e a p p l i q u e e !
L ’ e n t r e e s e l e c t i o n n e e n ’ a pas de t u n e r !
v 4 l 2 : i o c t l s e t mute f a i l e d : I n v a l i d argument
v 4 l 2 : i o c t l query c o n t r o l f a i l e d : I n v a l i d argument
[V] f i l e f m t : 9
f o u r c c : 0 x4745504A
t a i l l e : 6 4 0 x480 f p s : 2 5 . 0 0 0
ftime :=0.0400
Ouverture du f i l t r e v i d e o : [ expand osd =1]
Expand : −1 x −1, −1 ; −1, osd : 1 , a s p e c t : 0 . 0 0 0 0 0 0 , round : 1
==========================================================================
Ouverture du d e c o d e u r v i d e o : [ f fm pe g ] FFmpeg ’ s l i b a v c o d e c c o d e c f a m i l y
Codec v i d e o c h o i s i : [ f f m j p e g ] vfm : f fm pe g ( FFmpeg MJPEG)
==========================================================================
F o r c a g e du pre−chargement a u d i o a 0 e t de l a c o r r e c t i o n max d e s p t s a 0
Image s a u t e e !
Pos :
0.0 s
1 f ( 0%)
0 . 9 5 f p s Trem :
0min
0mb
A−V: 0 . 0 0 0
[0:0]
Image s a u t e e !
Pos :
0.0 s
2 f ( 0%) 1 . 2 8 f p s Trem :
0min
0mb A−V: 0 . 0 0 0 [ 0 : 0 ]
N’ a pas pu t r o u v e r e s p a c e c o l o r i m e t r i q u e c o r r e s p o n d a n t − n o u v e l e s s a i a v e c −v f
scale . . .
Ouverture du f i l t r e v i d e o : [ s c a l e ]
L ’ a s p e c t du f i l m e s t i n d e f i n i − pas de pre−dimensionnement a p p l i q u e .
[ s w s c a l e r @ 0 x b 0 f 7 4 0 ] BICUBIC s c a l e r , from yuv422p t o yuv420p u s i n g MMX2
v i d e o c o d e c : l i b a v c o d e c ( 6 4 0 x480 f o u r c c =34504 d46 [FMP4 ] )
E c r i t u r e de l ’ e n t e t e . . .
ODML: Aspect i n f o r m a t i o n not ( y e t ? ) a v a i l a b l e o r u n s p e c i f i e d , not w r i t i n g vprp
header .
E c r i t u r e de l ’ e n t e t e . . .
ODML: Aspect i n f o r m a t i o n not ( y e t ? ) a v a i l a b l e o r u n s p e c i f i e d , not w r i t i n g vprp
header .
Pos :
0.0 s
3 f ( 0%) 1 . 7 9 f p s Trem :
0min
0mb A−V: 0 . 0 0 0 [ 0 : 0 ]
[...]
1 image ( s ) r e p e t e e ( s ) !
Pos :
0.2 s
5 f ( 0%)
2 . 7 3 f p s Trem :
0min
0mb
A−V: 0 . 0 0 0
[0:0]
Abandonne d e s trames v i d e o .
E c r i t u r e de l ’ i n d e x . . .
E c r i t u r e de l ’ e n t e t e . . .
ODML: Aspect i n f o r m a t i o n not ( y e t ? ) a v a i l a b l e o r u n s p e c i f i e d , not w r i t i n g vprp
header .
57
63
Reussner Matthieu
58
59
60
61
Flux v i d e o :
4 0 6 . 9 7 1 k b i t / s ( 5 0 8 7 1 B/ s )
t a i l l e : 1347075 o c t e t s
320 images
v 4 l 2 : i o c t l s e t mute f a i l e d : I n v a l i d argument
v 4 l 2 : 320 f r a m e s s u c c e s s f u l l y p r o c e s s e d , 345 f r a m e s dropped .
steelido@steelbook ˜ $
26.480 secs
Listing 19.10: Webcam recorder
19.10
1
2
3
4
5
6
7
8
9
10
mount Compact flash
#! / u s r / b i n / env bash
mount / dev / sdb3 /mnt/ g e n t o o
mount / dev / sdb1 /mnt/ g e n t o o / boot
mount −t p r o c none /mnt/ g e n t o o / p r o c
mount −o bind / dev /mnt/ g e n t o o / dev
mount −o bind / u s r / p o r t a g e /mnt/ g e n t o o / u s r / p o r t a g e
mount −o bind / v a r /tmp/ /mnt/ g e n t o o / v a r /tmp
c h r o o t /mnt/ g e n t o o / env . sh
umount /mnt/ g e n t o o /{ dev , proc , u s r / p o r t a g e , v a r /tmp , boot , }
Listing 19.11: Mount then chroot inside cf card
19.11
1
2
3
4
5
6
7
8
updating environment settings
#! / b i n / bash
env−update
source / etc / p r o f i l e
e x p o r t TERM=xterm
e x p o r t PS1=” ( c h r o o t ) $PS1 ”
cd
bash
Listing 19.12: updating environment settings on CF card
19.12
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Structure of transmitted data
t y p e d e f s t r u c t myParam { // r e a d param from network
u n s i g n e d c h a r p i c 1 [ ( CV FRAME WIDTH∗CV FRAME HEIGHT) / s i z e o f ( u n s i g n e d c h a r ) ] ;
u n s i g n e d c h a r p i c 2 [ ( CV FRAME WIDTH∗CV FRAME HEIGHT) / s i z e o f ( u n s i g n e d c h a r ) ] ;
i n t LBBx ;
i n t LBBy ;
i n t LBBwidth ;
i n t LBBheight ;
i n t BBx ;
i n t BBy ;
i n t BBwidth ;
i n t BBheight ;
time t timer ;
bool status ;
} myParam ;
Listing 19.13: Structure hosting data
64
Reussner Matthieu
19.13
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Getting around the PESIT internet block
embedded01 $ c a t ˜ / . s s h / c o n f i g
Host m a i l
HostName 1 7 6 . 9 . 1 8 0 . 1 5 4
User t u n n e l
p o r t 443
I d e n t i t y F i l e ˜/. ssh / i d r s a
LocalForward 2525 smtp . g m a i l . com : 4 6 5
embedded01 ˜ $ ssh−keygen
G e n e r a t i n g p u b l i c / p r i v a t e r s a key p a i r .
Enter f i l e i n which t o s a v e t h e key ( / home/USERNAME/ . s s h / i d r s a ) : <e n t e r >
Enter p a s s p h r a s e ( empty f o r no p a s s p h r a s e ) : <e n t e r >
Enter same p a s s p h r a s e a g a i n : <e n t e r >
Your i d e n t i f i c a t i o n has been s a v e d i n /home/USERNAME/ . s s h / i d r s a .
Your p u b l i c key has been s a v e d i n /home/USERNAME/ . s s h / i d r s a r . pub .
The key f i n g e r p r i n t i s :
3 4 : c e : 2 c : c f : 9 4 : e7 : e0 : b5 : 2 b : d7 : 2 8 : be : 7 3 : 9 b : e7 : 5 0 USERNAME@embedded01
The key ’ s randomart image i s :
+−−[ RSA 2048]−−−−+
|
|
|
|
|
o
|
|
= o
|
|
. S o E
|
|
∗ = o
|
|
+ +o
|
|
+ ++o
|
|
. oB++.
|
+−−−−−−−−−−−−−−−−−+
embedded01 $
Listing 19.14: Configuring ssh connection
1
p e r m i t o p e n=” smtp . g m a i l . com : 4 6 5 ” , no−pty , no−X11−f o r w a r d i n g , no−agent−f o r w a r d i n g ssh−
r s a AAAAB3 [ . . . ] USERNAME@embedded01
Listing 19.15: Content of authorizedkeys on vps server
65
Reussner Matthieu
20 Work log
20.1
Week 1
February 20, 2012
Maha Shivaratri is a national holiday in India, in honor of Lord Shiva. No work was done this day
February 21, 2012
• First working day at school. Discovering of the university.
• Talk with Pr A.Srinivas about the orientations of the project
• Registering on Intel website
February 22, 2012
• Writing specifications of the project
February 23, 2012
• Writing specifications of the project
• Talk with pr. A.Srinivas and Nitheesh Kl about the embedded system
February 24, 2012
• OS deployment on the target board
• Configuration of the kernel to boot in less than 15 sec
February 25, 2012
• Test of OpenTLD on the embedded board
66
Reussner Matthieu
20.2
Week 2
February 27, 2012
• Modification of OpenTLD source code to make it working with two webcam
February 28, 2012
• setup of the messaging system
February 29, 2012
• setup of the messaging system
March 01, 2012
• writing the documentation about the OS + spread installation
March 02, 2012
• writing the documentation about the OS + spread installation
20.3
Week 3
March 05, 2012
• writing the part responsible of sending the data
March 06, 2012
• writing the part responsible of sending the data+receiving
March 07, 2012
• Bug-fix
March 08, 2012
• Writing a viewer+sender application
67
Reussner Matthieu
March 09, 2012
• Splitting code into 3 Application (viewer,sender,sensor)
March 10, 2012
• Drawing schema, updating report
20.4
Week 4
March 12, 2012
• Writing Introduction, Summary, updating planning
March 13, 2012
• writing function to send an email
March 14, 2012
• writing function to send an email
March 15, 2012
• updating report, demo, bug-fix, fighting again Fortinet proxy
March 16, 2012
• updating report, demo, bug-fix, fighting again Fortinet proxy
20.5
Week 5,6
March 19, 2012 to March 29, 2012
• No work for the internship was done.
• Writing presentation for the Hackaton
• Helping students to install OpenCV for one of their lesson
March 30, 2012
• Talking with Pr A.Srinivas about some change in the project
68
Reussner Matthieu
20.6
Week 7
April 02, 2012
• Recode movie
• Split movie in frames (15’000)
April 03, 2012
• Cropping of the frames
April 04, 2012
• Cropping of the frames
April 05, 2012
• Cropping of the frames
April 06, 2012
• Cropping of the frames
20.7
Week 8
April 09, 2012 to April 11, 2012
• Days off in Chennai, Mahabalipuram, Kanchipuram,...
April 12, 2012
• Updating the report
April 13, 2012
• Install of the computer who will be use to train the haarcascade
20.8
Week 9
April 16, 2012
• Downloading 2000 pictures without a car from google image index
69
Reussner Matthieu
April 17, 2012
• Generating all the needed samples for the training
April 18, 2012
• Interview for Intel Embedded on the project
• Updating the report
April 19, 2012
• Updating the report
April 20, 2012
• Updating the report
20.9
Week 10
April 23, 2012
• Test of the classifier
April 24, 2012
• Removing some picture of car
April 25, 2012
• Training of the new classifier
April 26 and 27, 2012
• Working on my Pet project for the Hackaton at PESIT
20.10
Week 11
April 30, 2012
• Cleaning the Nokia lab
70
Reussner Matthieu
May 01, 2012
• Day off
• Helping students from the ”Lab”
May 02,03,04, 2012
• Updating the report
• Helping students from the ”Lab”
• Teaching
20.11
Week 12
May 07, 2012
• Writing a proposal to include a better notification system on the project
May 08-09-10, 2012
• Helping students from the nokia lab
May 11, 2012
• No work
20.12
Week 13
May 14-18, 2012
• No work has been done this week, I was ill
20.13
Week 14
May 21-23, 2012
• writing the glue code between the notification system and the detection system
May 24-25, 2012
• Helping students from the lab
71
Reussner Matthieu
20.14
Week 15
May 28-29, 2012
• moving the code to the embedded system
May 30, 2012
• generating the mosaic
May 31, 2012
• streaming the mosaic
June 01, 2012
• displaying the wall (mosaic)
20.15
Week 16
June 04, 2012
• reading documentation about gstreamer+gtk
June 05, 2012
• writing the code for the wall
June 06, 2012
• merge of the different part of the code
June 07, 2012
• bug fix
June 08, 2012
• clean up of code
72
Reussner Matthieu
20.16
Week 17
June 11, 2012
• Changing operating system for the wall
June 12, 2012
• Changing operating system for the wall
• writing a demo for the wall
June 13, 2012
• Reconfiguring the wall
June 14, 2012
• Testing the project
June 15, 2012
• Updating the report
• Testing the project
• Helping students
20.17
Week 18
June 18-20, 2012
• Updating the report
• Writing the presentation
• Packing
73