Getting Started with Laird Linux
To get started with the IG60-BL654, you'll need to flash a developer's SD card image to boot the device.
You may also download the board support package source code, and build a custom SD Card image. You can use the prebuilt SDK or create your own custom SDK as needed.
Note that this guide assumes you've fulfilled the development environment requirements specified in the Requirements section.
Downloading a developer's SD card image
Laird Linux releases include a prebuilt SD card image as a starting point for evaluating and integrating a Laird Linux release on a SOM or SOM-based device. For the IG60-BL654, these prebuilt images are found at the IG60 releases page. These releases are named
Flashing a developer's SD card image
Once the image is downloaded. Extract the image. The example below references software version
ig60llsd$ tar -xvf
ig60llsd-laird- 126.96.36.199.tar.bz2 ig60llsd-laird- 188.8.131.52/ ig60llsd-laird- 184.108.40.206/ ig60llsd
ig60llsd-laird- 220.127.116.11/ ig60llsd60sd-host-sbom-20190222 ig60llsd-laird- 18.104.22.168/u-boot-spl.bin ig60llsd-laird- 22.214.171.124/u-boot.itb ig60llsd-laird- 126.96.36.199/rootfs.tar ig60llsd-laird- 188.8.131.52/ ig60llsd60sd-sdk.tar.bz2 ig60llsd-laird- 184.108.40.206/legal-info-20190222.tar.bz2 ig60llsd-laird- 220.127.116.11/kernel.itb ig60llsd-laird- 18.104.22.168/mksdcard.sh ig60llsd-laird- 22.214.171.124/mksdimg.sh
To flash the image to an SD card use the mksdcard.sh script. The mksdcard.sh script takes the target device as an argument and will ask if you'd like to proceed with removing all data on your SD card and flashing a new image. This is shown below.
ig60llsd-laird- 126.96.36.199$ sudo ./mksdcard.sh /dev/sdc [sudo] password for user: ************************************************************************* WARNING: All data on /dev/sdc now will be destroyed! Continue? [y/n] ************************************************************************* [Partitioning /dev/sdc...] 1024+0 records in 1024+0 records out 1048576 bytes (1.0 MB, 1.0 MiB) copied, 0.653846 s, 1.6 MB/s DISK SIZE - 1967128576 bytes Checking that no-one is using this disk right now ... OK Disk /dev/sdc: 1.9 GiB, 1967128576 bytes, 3842048 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes >>> Created a new DOS disklabel with disk identifier 0x59c337f4. Created a new partition 1 of type 'W95 FAT16 (LBA)' and of size 48 MiB. /dev/sdc2: Created a new partition 2 of type 'Linux' and of size 1.8 GiB. /dev/sdc3: New situation: Device Boot Start End Sectors Size Id Type /dev/sdc1 * 2048 100351 98304 48M e W95 FAT16 (LBA) /dev/sdc2 100352 3842047 3741696 1.8G 83 Linux The partition table has been altered. Calling ioctl() to re-read partition table. Syncing disks. [Making filesystems...] [Copying files...] [Done]
You can now insert your SD card into the
Using a prebuilt SDK
Laird Linux releases include a prebuilt SDK to start doing application development. For the IG60-BL654, this prebuilt SDK is called
Downloading the board support package source code
First step, pick which release you want. Odds are you want the most recent of your release.
Next, use repo to initalize and fetch your release. This is a two-step process: first you tell repo which manifest to use and then you tell it to fetch everything.
ig60llsd_ 188.8.131.52_source cd ig60llsd_ 184.108.40.206_source repo init -u firstname.lastname@example.org:LairdCP/ IG60-Laird-Linux-Release-Packages.git
ig60_ 220.127.116.11.xml repo sync
Note: Repo will initialize a .repo directory and then place all files directly in the directory that you are in when you run the
repo command. So we recommend making a subdirectory and working in there.
In order to speed up builds, set up a Buildroot cache to store sources that Buildroot will download. Off your home directory:
Then add it to your build environment:
Building the SD Card developer's image
Once your repo sync is finished, you are ready to build your own SD card image. This can be achieved by the following:
cd wb make
Once your build completes, you will find the output similar to below.
18.104.22.168/wb$ cd buildroot/output/ ig60llsd/images/ ~/git/lrd- 22.214.171.124/wb/buildroot/output/ ig60sd/images$ ls -al ig60llsd-target-sbom-20190222 ig60llsd-host-sbom-20190222 u-boot-spl.bin u-boot.itb rootfs.tar ig60llsd-sdk.tar.bz2 legal-info-20190222.tar.bz2 kernel.itb mksdcard.sh mksdimg.sh
You can see that the SD card image and the mksdcard.sh script are included.
Create a custom SDK
If you'd like to create a custom SDK from your customized source build, while in the target's output directory, issue a
126.96.36.199/wb/buildroot/output/ ig60llsd$ make sdk
Accessing the Terminal
Connect your IG60 to your computer using two USB-to-Serial cables (genuine FTDI chipset will give the best results), connected together by a 9-pin female-to-female null modem adapter (example).
Note that with some serial cables, two threaded nuts adjacent to the serial connector may get in the way of the connection. It may be necessary to remove these threaded nuts to fit the adapter.
SSH can be used over WiFi and/or Ethernet. However,you must know the IP address of the IG60. Or it is possible for some routers to be configured to resolve local hostnames. For this case, the hostname of the IG60 is "summit". The IG60 can be connected to Wi-Fi using the mobile app. By default, the IG60 will request an IP address from a DHCP server.
The username is "root" and the password is "summit".
During development and evaluation, a serial console program is required. The IG60-BL654's serial console is configured for the following serial parameters:
- Baud Rate: 115200
- Data Bits: 8
- Stop Bits: 1
- Parity Bit: No
- Hardware Flow Control: No
- Software Flow Confrol: No
Laird recommends the use of minicom on Linux or PuTTY on Windows. If using the recommended Ubuntu operating system for evaluation or development, you can install minicom as follows:
$ sudo apt install minicom
Once the IG60-BL654 is connected to your Ubuntu computer, you should have a new /dev/ttyUSB device that has enumerated. Assuming this enumeration is /dev/ttyUSB0, the console of the IG60-BL654 can be accessed with minicom via the following command:
$ sudo TERM=linux minicom -o -D /dev/ttyUSB0
If you power cycle the IG60-BL654 via the
RomBOOT U-Boot SPL 2018.01-
(Jan 31 2019 - 12:56:52) Trying to boot from MMC0 reading u-boot.itb U-Boot 2018.01-
60sd (Jan 31 2019 - 12:56:52 -0500) CPU: SAMA5D36 Crystal frequency: 12 MHz CPU clock : 528 MHz ... Hit any key to stop autoboot: 0 reading kernel.itb 4360555 bytes read in 282 ms (14.7 MiB/s) ## Loading kernel from FIT Image at 21000000 ... ... ## Loading loadables from FIT Image at 21000000 ... Trying 'script@1' loadables subimage Verifying Hash Integrity ... sha256+ OK Loading Kernel Image ... OK Loading Device Tree to 27732000, end 2773e0a3 ... OK Starting kernel ... ... Welcome to Laird Linux development build 20190131! [ OK ] Created slice system-serial\x2dgetty.slice. ... [ OK ] Started Hostname Service. Laird Linux development build 20190131 summit login:
Login and Example WiFi Scan
Once you see
summit login:, you are at the end of booting and can login using the user "root" and the password "summit". Once logged in, you can query for a basic WiFi scan list to see available networks using the command below:
# nmcli dev wifi list IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY -- Infra 149 270 Mbit/s 35 ** WPA2 NowYouSeeMe Infra 153 270 Mbit/s 30 * WPA2 wfa19 Infra 149 405 Mbit/s 29 * WPA2 802.1X wfa9ac Infra 149 405 Mbit/s 27 * WPA2 wfa0ac Infra 149 405 Mbit/s 27 * -- wfa18 Infra 149 405 Mbit/s 25 * WPA1 WPA2 802.1X wfa20 Infra 149 405 Mbit/s 25 * WPA1 WPA2 802.1X nps_aes Infra 149 405 Mbit/s 25 * WPA2 802.1X 11w_psk Infra 149 405 Mbit/s 25 * WPA2 11w_dot1x Infra 149 405 Mbit/s 25 * WPA2 wfa21 Infra 149 405 Mbit/s 25 * WPA1 WPA2
Laird Connectivity uses its own customized fork of NetworkManager for networking configuration, including WiFi profile management. For more information on using NetworkManager please see our Laird NetworkManager User Guide.