Read or Write
Sequencial or Random Access
Testing SD Cards with Linux
Test performance of a variety of microSD cards on Raspberry Pi – sequential and random read/write #7
Benchmarking
IOzone Filesystem Benchmark
$ journalctl -k $ sudo blkid
Read or Write
Sequencial or Random Access
Testing SD Cards with Linux
Test performance of a variety of microSD cards on Raspberry Pi – sequential and random read/write #7
Benchmarking
IOzone Filesystem Benchmark
$ journalctl -k $ sudo blkid
The Ethoscope Platform
github.com/gilestrolab/ethoscope, a platform from monitoring animal behaviour in real time from a raspberry pi
Welcome to ethoscope’s documentation!
MagPi – Ethoscope
[ 424.424019] usb 4-2.3: new full-speed USB device number 6 using uhci_hcd [ 424.529658] usb 4-2.3: not running at top speed; connect to a high speed hub [ 424.563659] usb 4-2.3: New USB device found, idVendor=090c, idProduct=1000 [ 424.563663] usb 4-2.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 424.563666] usb 4-2.3: Product: USB Flash Drive [ 424.563668] usb 4-2.3: Manufacturer: USB 2.0 [ 424.563671] usb 4-2.3: SerialNumber: AA00000000006062 [ 424.656450] usb-storage 4-2.3:1.0: USB Mass Storage device detected [ 424.656526] scsi host8: usb-storage 4-2.3:1.0 [ 424.656603] usbcore: registered new interface driver usb-storage [ 424.676605] usbcore: registered new interface driver uas [ 425.811695] scsi 8:0:0:0: Direct-Access USB 2.0 USB Flash Drive 1100 PQ: 0 ANSI: 4 [ 425.812320] sd 8:0:0:0: Attached scsi generic sg3 type 0 [ 425.816685] sd 8:0:0:0: [sdc] 7987200 512-byte logical blocks: (4.09 GB/3.81 GiB) [ 425.819683] sd 8:0:0:0: [sdc] Write Protect is off [ 425.819688] sd 8:0:0:0: [sdc] Mode Sense: 43 00 00 00 [ 425.822677] sd 8:0:0:0: [sdc] No Caching mode page found [ 425.822682] sd 8:0:0:0: [sdc] Assuming drive cache: write through [ 425.846689] sdc: sdc1 [ 425.863678] sd 8:0:0:0: [sdc] Attached SCSI removable disk [ 435.540775] sd 8:0:0:0: [sdc] tag#0 FAILED Result: hostbyte=DID_ERROR driverbyte=DRIVER_OK [ 435.540782] sd 8:0:0:0: [sdc] tag#0 CDB: Read(10) 28 00 00 00 10 70 00 00 c6 00 [ 435.540786] blk_update_request: I/O error, dev sdc, sector 4208 [ 435.542751] usb 4-2.3: USB disconnect, device number 6 [ 435.548036] scsi 8:0:0:0: rejecting I/O to offline device [ 435.548042] scsi 8:0:0:0: [sdc] killing request [ 435.548045] scsi 8:0:0:0: rejecting I/O to offline device [ 435.548047] scsi 8:0:0:0: [sdc] killing request [ 435.548155] scsi 8:0:0:0: [sdc] FAILED Result: hostbyte=DID_NO_CONNECT driverbyte=DRIVER_OK [ 435.548158] scsi 8:0:0:0: [sdc] CDB: Read(10) 28 00 00 00 10 71 00 00 c5 00 [ 435.548162] blk_update_request: I/O error, dev sdc, sector 4209 [ 435.548225] scsi 8:0:0:0: [sdc] FAILED Result: hostbyte=DID_NO_CONNECT driverbyte=DRIVER_OK [ 435.548227] scsi 8:0:0:0: [sdc] CDB: Read(10) 28 00 00 00 10 70 00 00 01 00 [ 435.548228] blk_update_request: I/O error, dev sdc, sector 4208 [ 435.550362] FAT-fs (sdc1): FAT read failed (blocknr 2160) [ 435.553364] FAT-fs (sdc1): FAT read failed (blocknr 822) [ 435.572113] FAT-fs (sdc1): unable to read boot sector to mark fs as dirty [ 503.592050] usb usb4-port2: disabled by hub (EMI?), re-enabling...
[ 105.996015] usb 4-2.4: new low-speed USB device number 10 using uhci_hcd [ 106.080012] usb 4-2.4: device descriptor read/64, error -71 [ 106.268013] usb 4-2.4: device descriptor read/64, error -71 [ 106.444013] usb 4-2.4: new low-speed USB device number 11 using uhci_hcd [ 106.528013] usb 4-2.4: device descriptor read/64, error -71 [ 106.716014] usb 4-2.4: device descriptor read/64, error -71 [ 106.892014] usb 4-2.4: new low-speed USB device number 12 using uhci_hcd [ 107.300012] usb 4-2.4: device not accepting address 12, error -71 [ 107.372015] usb 4-2.4: new low-speed USB device number 13 using uhci_hcd [ 107.780031] usb 4-2.4: device not accepting address 13, error -71 [ 107.781130] usb 4-2-port4: unable to enumerate USB device
Summary of most frequently asked questions at ELC, April 25, 2016
What is Linaro? Linaro is a collaborative engineering organization focused on improving the ARM ecosystem. Our members fund the engineering activities, such as Linux kernel development, toolchain optimization, and validation. The main goal being that we can build the foundational pieces of software together, so that every System on Chip (SoC) vendor can leverage which reduces fragmentation and time to market.
Why is Linaro building hardware? Linaro is purely a software company. Linaro is not building hardware, our members are.
What is 96Boards? 96Boards is an initiative inside of Linaro, which defines various hardware specifications for members/non-members to build a board from. Currently, there are two specifications, CE, and EE. The CE specification targets the embedded, IoT, and mobile markets, whereas the EE specification is targeted towards enterprise use cases. To find out more, click here to go to the 96boards website.
How are 96Boards different than the Raspberry Pi? 96Boards hardware specification defines various standardized form factors, unlike the raspberry pi. The raspberry pi uses only broadcom SoC’s and the form factor changes from board to board. With 96Boards, you get choice, the choice of various different SoC’s at different price points.
Raspberry Pi is cheaper, how can the 96Boards compete? Raspberry Pi is indeed cheaper, and you get what you pay for. Linaro being a software company focused on ARM, can provide a much more mature software stack than the community based raspberry pi. For example, a 64bit kernel is supported on all of the 96Boards hardware which is currently available, this is not the case with raspberry pi.
Huawei HiKey960, Release date around 01.05.2017
github.com/96boards-hikey
HiKey960 Development Board User Manual
DragonBoard 410c, Release date around 01.07.2015
PoE + Ethernet Mezzanine
DUAL MIPI Adapter Mezzanine – AiStarVision
PoE + Ethernet Mezzanine
MIPI Adapter Mezzanine – AiStarVision
PoE + Ethernet Mezzanine
Camera Hardware, CPU -> VCHI -> GPU, shared RAM, MMAL
raspistill, capturing still photographs with the camera moduleraspivid, capturing video with the camera moduleVideo4Linux (V4L) => V4L2 für Version 2
Video for Windows (VfW) (alt) => Windows 3.1 (1992)
Windows Driver Model (WDM) (alt)
Windows Driver Frameworks (WDF, formerly Windows Driver Foundation) (ab Windows 2000 bis Windows 10)
DirectShow (war Teil von DirectX, ist nun Bestandteil der Windows-Plattform)
Development: Video4Linux APIs => Video4Linux2 V4L2
How to use V4L2 Cameras on the Raspberry Pi 3 with an Upstream Kernel
Definition of “downstream” and “upstream”
Linux media interface Linux video capture interface
$ sudo apt-get install fswebcam [...] The following NEW packages will be installed: fontconfig-config fonts-dejavu-core fswebcam libfontconfig1 libgd3 libjbig0 libtiff5 libwebp6 libxpm4 [...] $ fswebcam [<options>] <filename> $ fswebcam -r 640x480 # Auflösung festlegen -d /dev/video0 # Welches Device wird benutzt -v # Verbose -> Ausführliche Ausgabe /tmp/test.jpg # Ausgabe-Datei
$ sudo apt-get install motion [...] The following NEW packages will be installed: ffmpeg libaacs0 libass5 libasyncns0 libavc1394-0 libavcodec57 libavdevice57 libavfilter6 libavformat57 libavresample3 libavutil55 libbdplus0 libbluray1 libbs2b0 libcaca0 libcairo2 libcdio-cdda1 libcdio-paranoia1 libcdio13 libchromaprint1 libdc1394-22 libdrm-amdgpu1 libdrm-freedreno1 libdrm-nouveau2 libdrm-radeon1 libebur128-1 libegl1-mesa libfftw3-double3 libflac8 libflite1 libfribidi0 libgbm1 libgl1-mesa-dri libgl1-mesa-glx libglapi-mesa libgme0 libgraphite2-3 libgsm1 libharfbuzz0b libice6 libiec61883-0 libjack-jackd2-0 libllvm3.9 libmariadbclient18 libmp3lame0 libmpg123-0 libogg0 libopenal-data libopenal1 libopencv-core2.4v5 libopencv-imgproc2.4v5 libopenjp2-7 libopenmpt0 libopus0 libpgm-5.2-0 libpixman-1-0 libpostproc54 libpq5 libpulse0 libraw1394-11 librubberband2 libsdl2-2.0-0 libsensors4 libshine3 libsm6 libsnappy1v5 libsndfile1 libsndio6.1 libsodium18 libsoxr0 libspeex1 libssh-gcrypt-4 libswresample2 libswscale4 libtheora0 libtwolame0 libtxc-dxtn-s2tc libva-drm1 libva-x11-1 libva1 libvdpau-va-gl1 libvdpau1 libvorbis0a libvorbisenc2 libvorbisfile3 libvpx4 libwavpack1 libwayland-client0 libwayland-cursor0 libwayland-egl1-mesa libwayland-server0 libwebpmux2 libx11-xcb1 libx264-148 libx265-95 libxcb-dri2-0 libxcb-dri3-0 libxcb-glx0 libxcb-present0 libxcb-render0 libxcb-shape0 libxcb-shm0 libxcb-sync1 libxcb-xfixes0 libxcursor1 libxdamage1 libxfixes3 libxi6 libxinerama1 libxkbcommon0 libxrandr2 libxrender1 libxshmfence1 libxss1 libxtst6 libxv1 libxvidcore4 libxxf86vm1 libzmq5 libzvbi-common libzvbi0 mesa-va-drivers mesa-vdpau-drivers motion mysql-common va-driver-all vdpau-driver-all x11-common [...] Setting up motion (4.0-1) ... Adding group `motion' (GID 113) ... Done. Warning: The home dir /var/lib/motion you specified already exists. Adding system user `motion' (UID 109) ... Adding new user `motion' (UID 109) with group `motion' ... The home directory `/var/lib/motion' already exists. Not copying from `/etc/skel'. adduser: Warning: The home directory `/var/lib/motion' does not belong to the user you are currently creating. Adding user `motion' to group `video' ... Adding user motion to group video Done. $ sudo vi /etc/default/motion start_motion_daemon=no => yes $ sudo mkdir /srv/motion $ sudo chown motion:motion /srv/motion
documentation > configuration > config-txt
=
$ ls -la /boot total 21059 drwxr-xr-x 3 root root 2560 Jan 1 1970 . drwxr-xr-x 21 root root 4096 Nov 29 02:37 .. -rwxr-xr-x 1 root root 15830 Oct 30 10:36 bcm2708-rpi-0-w.dtb -rwxr-xr-x 1 root root 15367 Oct 30 10:36 bcm2708-rpi-b.dtb -rwxr-xr-x 1 root root 15626 Oct 30 10:36 bcm2708-rpi-b-plus.dtb -rwxr-xr-x 1 root root 15086 Oct 30 10:36 bcm2708-rpi-cm.dtb -rwxr-xr-x 1 root root 16693 Oct 30 10:36 bcm2709-rpi-2-b.dtb -rwxr-xr-x 1 root root 17794 Oct 30 10:36 bcm2710-rpi-3-b.dtb -rwxr-xr-x 1 root root 16550 Oct 30 10:36 bcm2710-rpi-cm3.dtb -rwxr-xr-x 1 root root 50248 Aug 11 17:03 bootcode.bin -rwxr-xr-x 1 root root 142 Jan 1 1980 cmdline.txt -rwxr-xr-x 1 root root 1627 Feb 1 17:00 config.txt -rwxr-xr-x 1 root root 18693 Aug 21 2015 COPYING.linux -rwxr-xr-x 1 root root 2578 Oct 30 10:36 fixup_cd.dat -rwxr-xr-x 1 root root 6551 Oct 30 10:36 fixup.dat -rwxr-xr-x 1 root root 9694 Oct 30 10:36 fixup_db.dat -rwxr-xr-x 1 root root 9694 Oct 30 10:36 fixup_x.dat -rwxr-xr-x 1 root root 145 Nov 29 02:37 issue.txt -rwxr-xr-x 1 root root 4579632 Oct 30 10:36 kernel7.img -rwxr-xr-x 1 root root 4379152 Oct 30 10:36 kernel.img -rwxr-xr-x 1 root root 1494 Nov 18 2015 LICENCE.broadcom -rwxr-xr-x 1 root root 18974 Nov 29 02:37 LICENSE.oracle drwxr-xr-x 2 root root 10240 Nov 29 01:21 overlays -rwxr-xr-x 1 root root 667460 Oct 30 10:36 start_cd.elf -rwxr-xr-x 1 root root 4956676 Oct 30 10:36 start_db.elf -rwxr-xr-x 1 root root 2820196 Oct 30 10:36 start.elf -rwxr-xr-x 1 root root 3904228 Oct 30 10:36 start_x.elf
enable_uart=1start_x=1start_x=1 should be specified when using the camera module.
gpu_mem=128GPU memory in megabytes. This sets the memory split between the CPU and GPU; the CPU gets the remaining memory. Minimum value is 16; maximum value is 192, 448, or 944, depending on whether you are using a 256M, 512MB, or 1024MB Pi.
Memory options in config.txt
force_turbo=1disable dynamic clocking (and force overclocking) with force_turbo=1
Overclocking options in config.txt