TS-7553-V2 MicroSD Backup: Difference between revisions

From embeddedTS Manuals
(Added command when md5summing)
(Cleaned up wording. Moved to use generic IDing of SD card subpage for 4 GB SD cards)
Line 4: Line 4:
|}
|}


These instructions assume you have an SD card with one partition.  Most SD cards ship this way by default.  If the card has had its partition table modified this can be corrected with a tool like 'gparted' or 'fdisk'.
These instructions assume an SD card with one partition.  Most SD cards ship this way by default, but if there are modified partitions, a utility such as 'gparted' or 'fdisk' may be needed to remove the existing partition table and recreate it with a single partition. Note that the partition table must be "MBR" or "msdos", the "GPT" partition table format is not supported by U-Boot.


Plug the SD card into a USB reader and connect it to a linux workstation PC.  Newer distributions include a utility called 'lsblk' which lists all block devices like a USB SD card reader:
{{:Host_ID_SD_Card_Generic_4GB}}
<source lang=bash>
lsblk
</source>
  NAME  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
  sdY      8:0    0  400G  0 disk
  ├─sdY1  8:1    0  398G  0 part /
  ├─sdY2  8:2    0    1K  0 part
  └─sdY5  8:5    0    2G  0 part [SWAP]
  sr0    11:0    1  1024M  0 rom 
  sdX      8:32  1  3.9G  0 disk
  ├─sdX1  8:33  1  7.9M  0 part
  ├─sdX2  8:34  1    2M  0 part
  ├─sdX3  8:35  1    2M  0 part
  └─sdX4  8:36  1  3.8G  0 part 
 
In this case the SD card is 4GB, so sdX is the target device.  Note that on your system, sdX will not be a real device, it could be sda, sdb, mmcblk0, etc.  Technologic Systems is not responsible for any damages cause by using the improper device node for imaging an SD card.
 
After plugging in the device after Linux has booted you can use dmesg to print out the kernel log.  When the USB drive is added it will append to the end of that file.  Try running:
<source lang=bash>dmesg | tail -n 100</source>
 
  scsi 54:0:0:0: Direct-Access    Generic  Storage Device  0.00 PQ: 0 ANSI: 2
  sd 54:0:0:0: Attached scsi generic sg2 type 0
  sd 54:0:0:0: [sdX] 3862528 512-byte logical blocks: (3.97 GB/3.84 GiB)
 
In this case, sdXc is shown as a 3.97GB card.  Note that on your system, sdX will not be a real device, it could be sda, sdb, mmcblk0, etc.  Technologic Systems is not responsible for any damages cause by using the improper device node for imaging an SD card.


The following commands will reformat the first partition of the SD card, and unpack the latest filesystem on there:
The following commands will reformat the first partition of the SD card, and unpack the latest filesystem on there:

Revision as of 16:01, 10 July 2019

MicroSD8GB.png Click to download the latest tarball.

These instructions assume an SD card with one partition. Most SD cards ship this way by default, but if there are modified partitions, a utility such as 'gparted' or 'fdisk' may be needed to remove the existing partition table and recreate it with a single partition. Note that the partition table must be "MBR" or "msdos", the "GPT" partition table format is not supported by U-Boot.

Using other OSs

At this time, we're unable to provide assistance with writing SD cards for our products from non-Linux based operating systems. We acknowledge however, that there are methods to write images and files from a variety of difference operating systems. If a native installation of Linux is unavailable, we recommend using a Virtual Machine. See the Getting Started section for links to common virtualization software and Linux installation.

Using a Linux workstation

An SD card can be written to allow it to be bootable. Download the above file and write this from a Linux workstation using the information below. A USB SD adapter can be used to access the card; or if the workstation supports direct connection of SD cards, that can be used instead. Once inserted in to the workstation, it is necessary to discover which /dev/ device corresponds with the inserted SD card before the image can be written.

Option 1: using 'lsblk'


Newer distributions include a utility called 'lsblk' which allows simple identification of the intended card.

Note: This command may need to be run as the root user:
$ lsblk

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sdY      8:0    0   400G  0 disk 
├─sdY1   8:1    0   398G  0 part /
├─sdY2   8:2    0     1K  0 part 
└─sdY5   8:5    0     2G  0 part [SWAP]
sr0     11:0    1  1024M  0 rom  
sdX      8:32   1   3.9G  0 disk 
├─sdX1   8:33   1   7.9M  0 part 
├─sdX2   8:34   1     2M  0 part 
├─sdX3   8:35   1     2M  0 part 
└─sdX4   8:36   1   3.8G  0 part

In this case the, SD card is 4GB, so sdX is the target device and already contains 4 partitions. Note that sdX is not a real device, it could be sda, sdb, mmcblk0, etc. Technologic Systems is not responsible for any damages cause by using the improper device node for imaging an SD card. The instructions below to write to the device will destroy the partition table and any existing data!

Option 2: Using 'dmesg'


After plugging in the device, the 'dmesg' command can be used to list recent kernel events. When inserting a USB adapter, the last few lines of 'dmesg' output will be similar to the following (note that this command may need to be run as the root user):

$ dmesg
...
scsi 54:0:0:0: Direct-Access     Generic  Storage Device   0.00 PQ: 0 ANSI: 2
sd 54:0:0:0: Attached scsi generic sg2 type 0
sd 54:0:0:0: [sdX] 3862528 512-byte logical blocks: (3.97 GB/3.84 GiB)
...

In this case, sdX is shown as a 3.97GB card with a single partition. Note that sdX is not a real device, it could be sda, sdb, mmcblk0, etc. Technologic Systems is not responsible for any damages cause by using the improper device node for imaging an SD card. The instructions below to write to the device will destroy the partition table and any existing data!

The following commands will reformat the first partition of the SD card, and unpack the latest filesystem on there:

# Verify nothing else has this mounted
sudo umount /dev/sdX1

sudo mkfs.ext3 /dev/sdX1
sudo mkdir /mnt/sd
sudo mount /dev/sdX1 /mnt/sd/
wget ftp://ftp.embeddedarm.com/ts-arm-sbc/ts-7553-V2-linux/distributions/ts7553-V2-latest.tar.bz2

sudo tar -xf ts7553-V2-latest.tar.bz2 -C /mnt/sd
sudo umount /mnt/sd
sync
Note: The ext4 filesystem can be used instead of ext3, but it may require additional options. U-Boot does not support the 64bit addressing added as the default behavior in recent revisions of mkfs.ext4. If using e2fsprogs 1.43 or newer, the options "-O ^64bit,^metadata_csum" must be used with ext4 for proper compatibility. Older versions of e2fsprogs do not need these options passed nor are they needed for ext3.

Once written, the files on disk can be verified to ensure they are the same as the source files in the archive. Reinsert the disk to flush the block cache completely, then run the following commands:

mount /dev/sdX1 /mnt/sd
cd /mnt/sd/
sudo md5sum --quiet -c md5sums.txt
cd -
umount /mnt/sd
sync

The md5sum command will report what differences there are, if any, and return if it passed or failed.