Embedded Linux
  • Cover
  • Summary
  • About This Training
    • Objectives
    • Skills
    • Prerequisites
    • Requirements
  • Once Upon A Time ...
  • Embedded Linux
  • Build Systems
    • Yocto Board Support Package
      • Yocto
      • Compilation
        • Make
        • Bitbake
        • Script
      • Building Blocks
      • SDK
      • Extra Packages
      • Kernel
        • Patch
        • Building
        • Headers
      • Modules
        • Cross Compilation
        • Native
      • Filesystem
      • Flashing
    • Distributions
      • CentOS
      • Google Brillo
      • Jubilinux
      • Kali
      • Ostro
      • Ubilinux
      • Debian
  • Boot Loaders
    • U-Boot
  • Initialization
    • Upgrade
    • Boot Up
    • Dual Boot
    • Root Directory
    • Display Message
    • Modules
    • Filesystem
    • Memory
    • Backup
    • Recovery
    • Reboot
    • Processes
  • User Space
    • Virtual Network Computing
    • Text Editors
    • Services
    • Logs
    • Package Management Systems
      • Open Package Management
      • Python Package Index
      • Nicely Package Make
      • Advanced Packaging Tool
      • Manual
      • Conda
    • Libraries
      • Mraa
      • Upm
      • OpenCv
      • Temboo
      • Libiio
    • Frameworks
      • Cylon JS
      • Johnny Five
      • ROS
      • Gobot
      • Pixhawk
      • Artoo
      • Bower
      • Zetta
      • Miscellaneous
  • Subsystems
    • X File Systems
    • Pin Muxing
    • Virtual File System
    • Memory
    • Input
    • General Purpose Input Output
    • Serial
    • Bluetooth
      • Advanced Audio Distribution Profile
        • Bluez
        • Gstreamer
        • Alsa
      • Human Interface Device Game Controller
      • Serial Port Protocol
      • Arduino
    • WiFi
    • Audio
    • Camera
    • Block
    • Universal Serial Bus
      • Human Interface Device Mini Keyboard
      • Python USB
    • Inter Integrated Circuit
    • Inter Process Communication
    • Peripheral Component Interconnect
    • Clock
    • Modems
    • Networking
    • Power
    • Thermal
    • Graphics
    • LED
    • LIDAR
    • Printer
    • Serial Peripheral Interface
  • Application Development
    • C
    • C++
    • Cross Compile
    • Containers
    • Python
    • NodeJS
    • Cloud9
    • Data
    • Drone Code
    • Speech
      • Python
    • Radio Frequency
    • Bots
    • Artificial Intelligence
      • WitAi
      • MycroftAi
    • Games
    • Vision
      • Bar Codes
      • Google Cloud Vision API
    • Messaging
    • Entertainment
    • Home Assistants
    • Dashboards
    • IRC
    • Location
    • Facial Recognition
    • Software Defined Radio
    • REST
    • Notes
    • Security
    • HAM Radio
    • Automotive
    • Digital Signage
    • Photography
  • Debug
  • Wrap-Up
    • Online Training
    • Challenge
    • Tbd
  • SandBox
Powered by GitBook
On this page
  • Kernel Integration
  • Kernel Display Message Card Insertion
  • Kernel Display Message Default
  • Applications / Libraries
  • Setup
  • Programs
  • Usage Models
  1. Subsystems

Block

PreviousCameraNextUniversal Serial Bus

Last updated 7 years ago

Block devices are hardware devices distinguished by the random (that is, not necessarily sequential) access of fixed-size chunks of data, called blocks. The most common block device is a hard disk, but many other block devices exist, such as floppy drives, CD-ROM drives, and flash memory. Notice how these are all devices on which you mount a filesystemfilesystems are the lingua franca of block devices.

Kernel Integration

Kernel Display Message Card Insertion

    root@edison:~# dmesg
    ...
    [ 4430.481280] mmc1: new high speed SDHC card at address 1234
    [ 4430.482221] mmcblk1: mmc1:1234 SA04G 3.63 GiB 
    [ 4430.485107]  mmcblk1: p1

Kernel Display Message Default

    root@edison:~# dmesg | grep mmc
    [    0.190762] SDIO bus = 1, name = bcm43xx_clk_vmmc, ref_clock = 26000000, addr =0x401
    [    0.741385] emmc_ipanic: init success
    [    1.013752] mmc0: no vqmmc regulator found
    [    1.108914] mmc0: BKOPS_EN bit is not set00
    [    1.417542] mmc0: new HS200 MMC card at address 0001
    [    1.418397] mmcblk0: mmc0:0001 H4G1d\x04 3.64 GiB 
    [    1.418943] mmcblk0boot0: mmc0:0001 H4G1d\x04 partition 1 4.00 MiB
    [    1.419442] mmcblk0boot1: mmc0:0001 H4G1d\x04 partition 2 4.00 MiB
    [    1.419935] mmcblk0rpmb: mmc0:0001 H4G1d\x04 partition 3 4.00 MiB
        [    1.426000]  mmcblk0: p1 p2 p3 p4 p5 p6 p7 p8 p9 p10
    [    1.434287]  mmcblk0boot1: unknown partition table
    [    1.437970]  mmcblk0boot0: unknown partition table
    [    1.438383] mmc0: SDHCI controller on PCI [0000:00:01.0] using ADMA
    [    1.454185] emmc_ipanic: panic partition found, label:panic, device:mmcblk0p6
    [    1.557291] emmc_ipanic: emmc_panic_notify_add: Data available in panic partition
    [    1.557341] emmc_ipanic: emmc_panic_notify_add: proc entry created: emmc_ipanic_header
    [    1.557362] emmc_ipanic: emmc_panic_notify_add: log file 0(1024, 52340)
    [    1.557390] emmc_ipanic: emmc_panic_notify_add: proc entry created: emmc_ipanic_console
    [    1.557407] emmc_ipanic: emmc_panic_notify_add: log file 1(4286578688, 0)
    [    1.557420] emmc_ipanic: emmc_panic_notify_add: empty log file 1
    [    1.557436] emmc_ipanic: emmc_panic_notify_add: log file 2(4286578688, 0)
    [    1.557449] emmc_ipanic: emmc_panic_notify_add: empty log file 2
    [    1.584823] mmc1: no vqmmc regulator found
    [    1.585258] mmc1: SDHCI controller on PCI [0000:00:01.2] using ADMA
    [    1.586232] mmc2: no vqmmc regulator found
    [    1.586668] mmc2: SDHCI controller on PCI [0000:00:01.3] using ADMA
    [    1.746719] EXT4-fs (mmcblk0p8): INFO: recovery required on readonly     filesystem
    [    1.746745] EXT4-fs (mmcblk0p8): write access will be enabled during recovery
    [    1.819782] mmc1: error -84 whilst initialising SD card
    [    1.831504] EXT4-fs (mmcblk0p8): recovery complete
    [    1.834101] EXT4-fs (mmcblk0p8): mounted filesystem with ordered data mode. Opts: (null)
    [    1.897473] mmc1: new high speed SDHC card at address 1234
    [    1.898207] mmcblk1: mmc1:1234 SA08G 7.21 GiB 
    [    1.899941]  mmcblk1: p1 p2
    [    2.226457] mmc2: queuing unknown CIS tuple 0x91 (3 bytes)
    [    2.226495] mmc2: new ultra high speed DDR50 SDIO card at address 0001
    [    4.543403] bcmsdh_sdmmc: bcmsdh_sdmmc_probe Enter
    [    4.543666] bcmsdh_sdmmc: bcmsdh_sdmmc_probe Enter
    [    4.567337] bcmsdh_sdmmc: bcmsdh_sdmmc_probe Enter
    [    5.453381] EXT4-fs (mmcblk0p8): re-mounted. Opts: (null)
    [    5.965905]  lun0: LUN: file: /dev/mmcblk0p9
    [    8.512646] FAT-fs (mmcblk0p7): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
    [    8.557697] EXT4-fs (mmcblk0p10): mounted filesystem with ordered data mode. Opts: (null)

Applications / Libraries

Setup

Opkg

    root@edison:~# opkg update
    root@edison:~# opkg install e2fsprogs dosfstools

Apt-Get

    root@edison:~# apt-get update
    root@edison:~# apt-get install e2fsprogs dosfstools xfsprogs

Programs

Mount

    root@edison:~# mount
    /dev/mmcblk0p8 on / type ext4 (rw,nodev,noatime,discard,noauto_da_alloc,data=ordered)
    ...
    /dev/mmcblk0p7 on /boot type vfat (rw,nosuid,nodev,noatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortna)    
    /dev/mmcblk1p1 on /media/sdcard type ext3 (rw,relatime,errors=continue,user_xattr,acl,barrier=1,data=writeback)

Usage Models

SD Cards, Mount

    root@edison:~# mount
    /dev/mmcblk0p7 on /boot type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,err)
    /dev/mmcblk0p10 on /home type ext4 (rw,relatime,data=ordered)
    /dev/mmcblk1p1 on /media/sdcard type vfat (rw,relatime,uid=65534,fmask=0000,dmask=0000,allow_utime=0022,codepage=437,ioch)
    root@edison:~# mkfs.ext4 /dev/mmcblk1
    mke2fs 1.42.9 (28-Dec-2013)
    /dev/mmcblk1 is apparently in use by the system; will not make a filesystem here!
    root@edison:~# umount
    root@edison:~# umount /media/sdcard/
    root@edison:~# mkfs.ext4 /dev/mmcblk1
    mke2fs 1.42.9 (28-Dec-2013)
    Discarding device blocks: done                            
    Filesystem label=
    OS type: Linux
    Block size=4096 (log=2)
    ...
    Creating journal (16384 blocks): done
    Writing superblocks and filesystem accounting information: done 
    root@edison:~# mkfs.ext4 -t ext4 /dev/mmcblk1

SD Cards, Manual Mount

    root@edison:~# mkdir localdirectory
    root@edison:~# mount -t ext4 /dev/mmcblk1 localdirectory
    root@edison:~# mount | grep mmcblk1
    ...
    /dev/mmcblk1 on /root/localdirectory type ext4 (rw,relatime,data=ordered)
    root@edison:~# cd localdirectory/
    root@edison:~/localdirectory# ls
    lost+found
    root@edison:~/localdirectory#

SD Cards, Umount

    root@edison:~# umount localdirectory
    root@edison:~# umount /dev/mmcblk1

SD Cards, Automatic Mount

    root@edison:~# vi /etc/fstab
    /dev/mmcblk1  /path/to/localdirectory

Tmpfs

    root@edison:~# cd /tmp
    root@edison:~# mkdir temptmpfs
    root@edison:~# mount -o size=16G -t tmpfs none temptmpfs/
    root@edison:~# cd temptmpfs/
    root@edison:~# ls
    root@edison:~# cd ..
    root@edison:~# mount
    ...
    none on /root/temptmpfs type tmpfs (rw,relatime,size=16777216k)
    root@edison:~# umount /root/temptmpfs

tmpfs is a common name for a temporary file storage facility on many Unix-like operating systems. It is intended to appear as a mounted file system, but stored in volatile memory instead of a persistent storage device.

Makelinux
Differences between flash devices and block drives
Creating a ram disk on Linux
Free Electrons Block Drivers
Wikipedia