Tuesday, May 23, 2017

OpenCV 3.2 and libv4l 1.12 on RPi3

libv4l source from http://git.,inuxtv.org/v4l-utils.git does not work well on RPi3.  OpenCV3.2 build will experience error.

Instead, we should get Debian v4l-utils-1.12.5 source package.  OpenCV3.2 will build successively.

One minor item is that after install v4l, the following line shall be added.

sudo ln -s /usr/local/include/libv4l1-videodev.h /usr/include/linux/videodev.h

Friday, May 19, 2017

ROS kinetic, Open CV 3.2.0, chrony on RP3

ROS installation on Raspberry Pi 3.
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install -y python-rosdep python-rosinstall-generator python-wstool python-rosinstall build-essential cmake
sudo rosdep init
rosdep update
mkdir -p ros_catkin_ws
cd ros_catkin_ws/
rosinstall_generator ros_comm --rosdistro kinetic --deps --wet-only --tar > kinetic-ros_comm-wet.rosinstall
wstool init src kinetic-ros_comm-wet.rosinstall

Add chrony
xxxx@DronePi:/home/llin $ sudo apt-get install chrony
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
  libtomcrypt0 libtommath0 timelimit
The following packages will be REMOVED:
  ntp
The following NEW packages will be installed:
  chrony libtomcrypt0 libtommath0 timelimit
0 upgraded, 4 newly installed, 1 to remove and 0 not upgraded.
Need to get 592 kB of archives.
After this operation, 486 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://mirrordirector.raspbian.org/raspbian/ jessie/main libtommath0 armhf 0.42.0-1.1 [40.9 kB]
Get:2 http://mirrordirector.raspbian.org/raspbian/ jessie/main libtomcrypt0 armhf 1.17-6 [301 kB]
Get:3 http://mirrordirector.raspbian.org/raspbian/ jessie/main timelimit armhf 1.8-1 [13.8 kB]
Get:4 http://mirrordirector.raspbian.org/raspbian/ jessie/main chrony armhf 1.30-2+deb8u2 [236 kB]
Fetched 592 kB in 1s (402 kB/s)
(Reading database ... 117074 files and directories currently installed.)
Removing ntp (1:4.2.6.p5+dfsg-7+deb8u2) ...
Processing triggers for man-db (2.7.0.2-5) ...
Selecting previously unselected package libtommath0.
(Reading database ... 117046 files and directories currently installed.)
Preparing to unpack .../libtommath0_0.42.0-1.1_armhf.deb ...
Unpacking libtommath0 (0.42.0-1.1) ...
Selecting previously unselected package libtomcrypt0:armhf.
Preparing to unpack .../libtomcrypt0_1.17-6_armhf.deb ...
Unpacking libtomcrypt0:armhf (1.17-6) ...
Selecting previously unselected package timelimit.
Preparing to unpack .../timelimit_1.8-1_armhf.deb ...
Unpacking timelimit (1.8-1) ...
Selecting previously unselected package chrony.
Preparing to unpack .../chrony_1.30-2+deb8u2_armhf.deb ...
Unpacking chrony (1.30-2+deb8u2) ...
Processing triggers for man-db (2.7.0.2-5) ...
Processing triggers for systemd (215-17+deb8u7) ...
Setting up libtommath0 (0.42.0-1.1) ...
Setting up libtomcrypt0:armhf (1.17-6) ...
Setting up timelimit (1.8-1) ...
Setting up chrony (1.30-2+deb8u2) ...

Creating config file /etc/chrony/chrony.conf with new version
Processing triggers for libc-bin (2.19-18+deb8u9) ...
Processing triggers for systemd (215-17+deb8u7) ...
xxxx@DronePi:/home/llin $  chronyc tracking
Reference ID    : 204.9.54.119 (ntp.your.org)
Stratum         : 2
Ref time (UTC)  : Fri May 19 19:03:14 2017
System time     : 0.000000061 seconds slow of NTP time
Last offset     : +0.000309320 seconds
RMS offset      : 0.000309320 seconds
Frequency       : 3.352 ppm fast
Residual freq   : +30.246 ppm
Skew            : 1000000.000 ppm
Root delay      : 0.022802 seconds
Root dispersion : 42.945648 seconds
Update interval : 2.1 seconds
Leap status     : Normal
xxxx@DronePi:~ $ chronyc sources
210 Number of sources = 4
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^? wanderportips03.w.subnet.     3   8    77   196  +1198us[+1198us] +/-   52ms
^* ntp.your.org                  1   8    37   198   +390us[ +699us] +/-   15ms
^- jtsage.com                    2   8    37   198  +1019us[+1328us] +/-   66ms
^? time-b.timefreq.bldrdoc.g     1   9     2   192    +45ms[  +45ms] +/-   70ms

Prepare necessary packages
root@DronePi:/home/llin# apt-get install build-essential cmake pkg-config
root@DronePi:/home/llin# apt-get install libavcodec-dev libavformat-dev libswscale-dev
root@DronePi:/home/llin# apt-get install libgtk2.0-dev
root@DronePi:/home/llin# apt-get install libatlas-base-dev gfortran
root@DronePi:/home/llin# apt purge python2.7-minimal
root@DronePi:/home/llin# pip3 install numpy

Build opencv 3.2.0
wget -O opencv-3.2.0.zip https://github.com/opencv/opencv/archive/3.2.0.zip
unzip opencv-3.2.0.zip
cd opencv-3.2.0/
mkdir build
cd build/
cmake -D PYTHON_EXECUTABLE=/usr/bin/python3 -D PYTHON_LIBRARY=/usr/lib/arm-linux-gnueabihf/libpythyon3.4m.so.1 -D PYTHON_INCLUDE_DIRS=/usr/include/python3.4m ..
make -j4
sudo make install


Sunday, May 14, 2017

check ip access to apache server

awk '{print $1}' /var/log/apache2/access.log | sort -f | uniq -i

Wednesday, May 3, 2017

A joint "hard drive" out of /dev/sda and /dev/sdb

xxxx@ubuntu14builder:~$ df -k
Filesystem                             1K-blocks    Used Available Use% Mounted on
/dev/mapper/UbntSR--vCAC--Tmp--vg-root  14048320 3788560   9523096  29% /
none                                           4       0         4   0% /sys/fs/cgroup
udev                                     3042888       4   3042884   1% /dev
tmpfs                                     610808    3056    607752   1% /run
none                                        5120       0      5120   0% /run/lock
none                                     3054024       0   3054024   0% /run/shm
none                                      102400       0    102400   0% /run/user
/dev/sdb1                               86566264 3968240  78194056   5% /work
/dev/sda1                                 240972   69013    159518  31% /boot
xxxx@ubuntu14builder:~$ sudo fdisk /dev/sdb
[sudo] password for llin:

Command (m for help): p

Disk /dev/sdb: 90.2 GB, 90194313216 bytes
128 heads, 42 sectors/track, 32768 cylinders, total 176160768 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x139cfac9

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048   176160767    88079360   83  Linux

Command (m for help): d
Selected partition 1

Command (m for help): p

Disk /dev/sdb: 90.2 GB, 90194313216 bytes
128 heads, 42 sectors/track, 32768 cylinders, total 176160768 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x139cfac9

   Device Boot      Start         End      Blocks   Id  System

Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
Partition number (1-4, default 1):
Using default value 1
First sector (2048-176160767, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-176160767, default 176160767):
Using default value 176160767

Command (m for help): t
Selected partition 1
Hex code (type L to list codes): L

 0  Empty           24  NEC DOS         81  Minix / old Lin bf  Solaris
 1  FAT12           27  Hidden NTFS Win 82  Linux swap / So c1  DRDOS/sec (FAT-
 2  XENIX root      39  Plan 9          83  Linux           c4  DRDOS/sec (FAT-
 3  XENIX usr       3c  PartitionMagic  84  OS/2 hidden C:  c6  DRDOS/sec (FAT-
 4  FAT16 <32M      40  Venix 80286     85  Linux extended  c7  Syrinx
 5  Extended        41  PPC PReP Boot   86  NTFS volume set da  Non-FS data
 6  FAT16           42  SFS             87  NTFS volume set db  CP/M / CTOS / .
 7  HPFS/NTFS/exFAT 4d  QNX4.x          88  Linux plaintext de  Dell Utility
 8  AIX             4e  QNX4.x 2nd part 8e  Linux LVM       df  BootIt
 9  AIX bootable    4f  QNX4.x 3rd part 93  Amoeba          e1  DOS access
 a  OS/2 Boot Manag 50  OnTrack DM      94  Amoeba BBT      e3  DOS R/O
 b  W95 FAT32       51  OnTrack DM6 Aux 9f  BSD/OS          e4  SpeedStor
 c  W95 FAT32 (LBA) 52  CP/M            a0  IBM Thinkpad hi eb  BeOS fs
 e  W95 FAT16 (LBA) 53  OnTrack DM6 Aux a5  FreeBSD         ee  GPT
 f  W95 Ext'd (LBA) 54  OnTrackDM6      a6  OpenBSD         ef  EFI (FAT-12/16/
10  OPUS            55  EZ-Drive        a7  NeXTSTEP        f0  Linux/PA-RISC b
11  Hidden FAT12    56  Golden Bow      a8  Darwin UFS      f1  SpeedStor
12  Compaq diagnost 5c  Priam Edisk     a9  NetBSD          f4  SpeedStor
14  Hidden FAT16 <3 61  SpeedStor       ab  Darwin boot     f2  DOS secondary
16  Hidden FAT16    63  GNU HURD or Sys af  HFS / HFS+      fb  VMware VMFS
17  Hidden HPFS/NTF 64  Novell Netware  b7  BSDI fs         fc  VMware VMKCORE
18  AST SmartSleep  65  Novell Netware  b8  BSDI swap       fd  Linux raid auto
1b  Hidden W95 FAT3 70  DiskSecure Mult bb  Boot Wizard hid fe  LANstep
1c  Hidden W95 FAT3 75  PC/IX           be  Solaris boot    ff  BBT
1e  Hidden W95 FAT1 80  Old Minix
Hex code (type L to list codes): 8e
Changed system type of partition 1 to 8e (Linux LVM)

Command (m for help): p

Disk /dev/sdb: 90.2 GB, 90194313216 bytes
128 heads, 42 sectors/track, 32768 cylinders, total 176160768 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x139cfac9

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048   176160767    88079360   8e  Linux LVM

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
xxxx@ubuntu14builder:~$ sync
xxxx@ubuntu14builder:~$ sudo reboot

xxxx@ubuntu14builder:~$ sudo umount /dev/sdb1
xxxx@ubuntu14builder:~$ sudo pvcreate /dev/sdb1
  Physical volume "/dev/sdb1" successfully created
xxxx@ubuntu14builder:~$ sudo vgdisplay
  --- Volume group ---
  VG Name               UbntSR-vCAC-Tmp-vg
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  3
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               15.76 GiB
  PE Size               4.00 MiB
  Total PE              4034
  Alloc PE / Size       4028 / 15.73 GiB
  Free  PE / Size       6 / 24.00 MiB
  VG UUID               7uOLwS-kD45-Cg8v-7nsb-StQb-p48u-kYNisY

xxxx@ubuntu14builder:~$ sudo vgextend UbntSR-vCAC-Tmp-vg /dev/sdb1
  Volume group "UbntSR-vCAC-Tmp-vg" successfully extended
xxxx@ubuntu14builder:~$ sudo lvdisplay
  --- Logical volume ---
  LV Path                /dev/UbntSR-vCAC-Tmp-vg/root
  LV Name                root
  VG Name                UbntSR-vCAC-Tmp-vg
  LV UUID                tJCLnm-fAWE-1s2D-B1ob-iCCz-uUQf-2YbMUd
  LV Write Access        read/write
  LV Creation host, time UbntSR-vCAC-Tmp, 2015-11-16 13:45:15 -0500
  LV Status              available
  # open                 1
  LV Size                13.74 GiB
  Current LE             3517
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:0

  --- Logical volume ---
  LV Path                /dev/UbntSR-vCAC-Tmp-vg/swap_1
  LV Name                swap_1
  VG Name                UbntSR-vCAC-Tmp-vg
  LV UUID                lZKMQk-offb-usYx-JP2M-frcj-ti9t-7zVS3w
  LV Write Access        read/write
  LV Creation host, time UbntSR-vCAC-Tmp, 2015-11-16 13:45:15 -0500
  LV Status              available
  # open                 2
  LV Size                2.00 GiB
  Current LE             511
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:1

xxxx@ubuntu14builder:~$ sudo lvextend -L +83G /dev/UbntSR-vCAC-Tmp-vg/root
  Extending logical volume root to 96.74 GiB
  Logical volume root successfully resized
xxxx@ubuntu14builder:~$ sudo resize2fs /dev/UbntSR-vCAC-Tmp-vg/root
resize2fs 1.42.9 (4-Feb-2014)
Filesystem at /dev/UbntSR-vCAC-Tmp-vg/root is mounted on /; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 7
The filesystem on /dev/UbntSR-vCAC-Tmp-vg/root is now 25359360 blocks long.
xxxx@ubuntu14builder:~$ df -k
Filesystem                             1K-blocks    Used Available Use% Mounted on
/dev/mapper/UbntSR--vCAC--Tmp--vg-root  99714544 3806124  91691064   4% /
none                                           4       0         4   0% /sys/fs/cgroup
udev                                     3042888       4   3042884   1% /dev
tmpfs                                     610808    3056    607752   1% /run
none                                        5120       0      5120   0% /run/lock
none                                     3054024       0   3054024   0% /run/shm
none                                      102400       0    102400   0% /run/user
/dev/sda1                                 240972   69013    159518  31% /boot