Manufacturing:X2 Ubuntu Configuration for MicroSD programming

From Idrive
Jump to navigation Jump to search

Programming of Micro SD cards for X2 using Ubuntu Linux

MicroSD programming

Setup programming stations for MicroSD programming

Basic Install

Install VMplayer

Use latest current version (V15). Link is old

https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_player/7_0

Launch VMware
Check use VMware Player in free non-comercial mode (enter an email address)

Create Ubuntu Virtual Machine

Use latest current version. Link is old

Download the latest Ubuntu version Ubuntu 18.04 with LTS(long term support) can be downloaded from the link below:

http://www.ubuntu.com/download/desktop

Open VMware player and click on "Create a new virtual machine" to open the "New virtual machine wizard"

Browse for the .iso image of Ubuntu and click next:
Full Name: ubuntu
User name: ubuntu
password: none (the word, not blank)
Click Next
Use default Virtual Machine name: Ubuntu 64-bit
Click Next
Maximum disk size (30GB recommended)
Select Split virtual disk into multiple files

after that the Ubuntu Linux install will start.

Click Next
Click Finish

System Configuration Update for new scripts Oct 31 2018

Login

After installation has finished start the virtual machine by double clicking on Ubuntu 64-Bit

Log into the system ubuntu/none

Open a Terminal (search for it and pin to the desktop)

Setup

Install scripts

The latest scripts are in the downloads section of AC (Idrive Manufacturing >SDcard Deployment Scripts (Mark 103118)

Three shell scripts are required (idrive_card_deployer.sh, idrive_setup_sdcard.sh, check_if_card_read_only.sh) and they should be placed in /usr/local/bin

copy the 3 scripts to /usr/local/bin and make the executable (use sudo because the location is system protected)

sudo cp idrive_card_deployer.sh /usr/local/bin (password)
sudo cp idrive_setup_sdcard.sh /usr/local/bin (password)
sudo cp check_if_card_read_only.sh /usr/local/bin (password)
cd /usr/local/bin
sudo chmod 775 idrive_card_deployer.sh
sudo chmod 775 idrive_setup_sdcard.sh
sudo chmod 775 check_if_card_read_only.sh


Setup Desktop Icon

Copy the idrive.ico (Icon file) to /usr/local/bin

sudo cp idrive.ico /usr/local/bin (password)


Copy the MicroSD_OS_Deployment.desktop file to (Desktop Icon) to /home/ubuntu/Desktop

cp MicroSD_OS_Deployment.desktop /home/ubuntu/Desktop (sudo not needed)

Stage the frimware, filesystem and settings.db files

OLD (up to FW 25.4)

Copy firmware image to the /home/ubuntu/Documents/SD_home directory (Example Ltib-x2-032116.tar.gz)

::cp Ltib-x2-032116.tar.gz /home/ubuntu/Documents/SD_home

New (FW 30.4 and up (Hard Float))

Copy firmware archive to the /home/ubuntu/Documents/SD_home directory (firmware-x2.tar.gz)

Copy filesystem archive to the /home/ubuntu/Documents/SD_home directory (rootfs.tar.gz)

Copy SETTINGS_DB to the /home/ubuntu/Documents/SD_home directory (settings.db)


Enable comand permissions with SUDO

Add entries to SUDO so that the scripts have permission to run the individual commands


sudo visudo (editor for sudo so you can disable the password requirements to run mkfs.ext4, tar, umount, sfdisk ) add the following lines:
%ubuntu ALL=(ALL:ALL) NOPASSWD: /bin/tar
%ubuntu ALL=(ALL:ALL) NOPASSWD: /bin/umount
%ubuntu ALL=(ALL:ALL) NOPASSWD: /bin/kill
%ubuntu ALL=(ALL:ALL) NOPASSWD:/sbin/mkfs.ext4
%ubuntu ALL=(ALL:ALL) NOPASSWD:/sbin/sfdisk
%ubuntu ALL=(ALL:ALL) NOPASSWD:/usr/local/bin/idrive_card_deployer.sh
%ubuntu ALL=(ALL:ALL) NOPASSWD:/usr/local/bin/idrive_setup_sdcard.sh
%ubuntu ALL=(ALL:ALL) NOPASSWD:/usr/local/bin/check_if_card_read_only.sh


Run the script

The first time the scripts are run the check for system updates. This may make the first run much longer that the following runs.

The only script you execute is idrive_card_deployer.sh . this can be done from the command line or by clicking on the X2_MicroSD_010417 icon on the desktop.

Script Variables

idrive_card_deployer.sh can be edited and set the following default variables:

  • DEPLOY_DEVICES=”” #default devices, for example “sdb sdc sdd sde”
  • FILESYSTEM_ARCHIVE=”” #default path to filesystem archive (/home/ubuntu/Documents/SD_home/roofs.tar.gz)
  • FIRMWARE_ARCHIVE=”” #default path to firmware archive (/home/ubuntu/Documents/SD_home/firmware-x2.tar.gz)
  • SETTINGS_DB=”” #default path to settings DB (/home/ubuntu/Documents/SD_home/settings.db)
  • DEPLOY_MODE=”” #formatting mode, “verify” = full or “simple” = quick



The script can be executed with (or without) parameters, you can pass: devices, OS image path, formatting mode.


Also by executing the script without parameter and no default device configured, a list of all device will be displayed so you can easy find the “target”. If you set only the DEPLOY_MODE and FILESYSTEM_ARCHIVE you can run the script “./idrive_card_deployer.sh sdc”, it’s easier when you create one card and not know all the time how the Linux OS attaches the device (see attached pics).

Results

Written to a log file in /home/ubuntu/Documents/SD_home/logs

Success output

<--------------------------------------------------------------------------------------> CARD(s) STATUS:

card [sdb] : [DONE] ALL DONE

<-------------- DONE [1/1] (when all is done, this script will auto-exit) -------------->


Failure output

<--------------------------------------------------------------------------------------> CARD(s) STATUS:

card [sdb] : [ERROR][CARDISBAD/READONLY] see log [/home/ubuntu/Documents/SD_home/logs//sdb-deploylog-Mon-Jan--9-11:44:57-PST-2017.log] for details

<-------------- DONE [1/1] (when all is done, this script will auto-exit) -------------->



Install Updates : System>Details>Overview

Add suppport for Exfat filesystem (64GB cards)

sudo add-apt-repository -y ppa:relan/exfat
sudo apt-get update -qq
sudo apt-get install exfat-utils


Double click the X2 MicroSD Programming Icon

Still waiting for cards… 1min50sec for 1 card

Wait for the "Cards are done!" message.

Partitioning SD Cards in Linux

  1. dmesg (display kernel messages after SD card is plugged in order to find your device path - probably /dev/sdc )
  1. sudo fdisk /dev/sdc

Command(m for help): p (print the partition table)

Command(m for help): n (add a new partition)

Select (default p): p

Partition number (1-4, default 1): 1

First sector (….): [ENTER]

Last sector, +sectors or +size{K,M,G} (….): [ENTER]

Command(m for help): p (print the partition table...just check)

Command(m for help): w (write table to disk and exit)

This is all, now you can go and hit “Eject” to disconnect the device

Helpful Utilities

apt-get install mc (Midnight Commander)

sudo su - -c mc