SD-Card (i.MX31)

Aus BECOM Systems Support
Version vom 22. August 2023, 20:35 Uhr von en>Peter (1 Version importiert)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Kernel configuration

You can find all MMC/SD card related options in the kernel configuration at Device Drivers -> MMC/SD Card Support. The following options need to be checked:

  * MMC/SD Card Support
  * MMC Block device driver
     * Use bounce buffer for simple hosts
  * Freescale MXC Multimedia Card Interface support


Using the card

After the device finishes booting, insert an SD Card into the appropriate slot located at the bottom side of the dev board. You should immediately see messages telling you information about the card:

mmcblk0: mmc1:b368 SDC   975360KiB
 mmcblk0: p1

Check if the devnode /dev/mmcblk0 exists:

ls /dev/mmcblk0

We will now partition and format the card. Make sure no important data is stored on the card, since it will be deleted. Run the following commands:

dd if=/dev/zero of=/dev/mmcblk0 bs=1024 count=512     // clear the first 512 kb

fdisk /dev/mmcblk0                                    // run fdisk
   // use "o" to delete existing partitions
   // use "n" to create a new partition
   // use "w" to write the partition table and exit
mkfs.ext2 /dev/mmcblk0p1                              // create an ext2 filesystem

mkdir /mnt/mmc1                                       // create a mountpoint
mount -t ext2 /dev/mmcblk0p1 /mnt/mmc1                // Mount the partition
ls /mnt/mmc1                                          // view the contents (empty except for lost+found)
umount /mnt/mmc1                                      // Unmount mmc before ejecting it


Automount using udev

(Make sure that AutoFS is being compiled as a module (Kernel Configuration -> File Systems -> Kernel Automounter Version 4 Support).)

Create the directory /mnt/mmc1.

mkdir /mnt/mmc1

Create a file named 09-mmc.rules in /etc/udev/rules.d. Paste the following line(s).

KERNEL=="mmcblk0p1", ACTION=="add", RUN+="/etc/udev/scripts/mmc_mount.sh"
KERNEL=="mmcblk0p1", ACTION=="remove", RUN+="/etc/udev/scripts/mmc_umount.sh"

Create a new file named mmc_mount.sh in /etc/udev/scripts and paste the following lines. Make sure it is executable (chmod) by the user who will run it.

#!/bin/sh
mount -t ext2 /dev/mmcblk0p1 /mnt/mmc1

Create a new file named mmc_umount.sh in /etc/udev/scripts and paste the following lines. Make sure it is executable (chmod) by the user who will run it.

#!/bin/sh
umount /mnt/mmc1

Done. Boot your device without the card inserted and on the first insert, it will mount the device automatically. A umount is not really useful, since it will only be run when the card has already been ejected which renders it useless.