E100 Boot Files and Kernel Modules¶
- E100 Boot Files and Kernel Modules
READ THIS FIRST¶
The boot files and kernel modules listed on this wiki page should generally be considered experimental, and are not officially supported by the Ettus Research team.
Ettus Research makes full filesystem images available, with boot files, that we have tested and certified.
You can find those here:
Ettus E1xx Files Directory
... and instructions on how to use them here:
Create SD Card Images
The files listed here may be newer than the files included in the most recent image, and may have improvements and new features. Since they have not been tested or used by the Ettus Research team, however, we cannot support them.
USE THESE FILES AT YOUR OWN RISK. If you choose to use these files and have issues, we will more than likely refer you to our official SD card images.
If you do elect to use these unsupported files, then thanks for beta-testing for us! =)
There are two partitions on the E100 micro SD card, FAT and rootfs. The FAT partition contains essential boot information while the root file system, rootfs, contains remaining files (driver modules, application libraries, home directories, etc.). For details on the root file system, see Images. The boot partition consists of the following files with links to images for use with the master UHD branch.
- MLO: The stage 1 boot loader that configures external memory and loads the second stage boot loader.
- U-Boot: The stage 2 boot loader that loads the Linux kernel.
- uImage: The Linux kernel (You also need the matching modules tarball from below)
Updating Boot Files¶
The boot files can be updated from the device itself, or by removing the micro SD card and using another Linux host with a card reader. The procedures for either method are nearly identical.
Mounting on a separate host¶
Insert the SD card into a card reader. On most Linux distributions, the two partitions should mount automatically as "FAT" and "rootfs". If not, the partitions need to be mounted manually.
$ ls /media/ FAT rootfs
Mounting on the device itself¶
Create the mount point and edit fstab with your favourite text editor.
# mkdir /media/FAT # vim /etc/fstab
Add '/dev/mmcblk0p1' boot partition to fstab.
rootfs / auto defaults 1 1 proc /proc proc defaults 0 0 devpts /dev/pts devpts mode=0620,gid=5 0 0 usbfs /proc/bus/usb usbfs defaults 0 0 tmpfs /var/volatile tmpfs defaults 0 0 tmpfs /dev/shm tmpfs mode=0777 0 0 tmpfs /media/ram tmpfs defaults 0 0 /dev/mmcblk0p1 /media/FAT auto defaults,sync 0 0
Now mount the boot partition.
# mount /media/FAT
Copying the boot files¶
Install the MLO. Always copy a new MLO over the old one since it is required to be in a specific location. If not performed properly, the partition will need to be restored from a backup or reformatted.
$ cd /media/FAT $ cp <download location>/MLO MLO
Install the U-Boot image and Linux kernel
$ cp <download location>/u-boot.bin-for-3.0 u-boot.bin $ cp <download location>/uImage-3.0-pm-r0d-usrp-e1xx.bin uImage
Unmount the partitions. If a card reader was used, the SD card can now be removed and inserted in the device.
$ umount /media/FAT $ umount /media/rootfs
The device can now be powered on or rebooted.
Linux Kernel Modules¶
The kernel modules include device drivers not compiled into the kernel or required during the boot process. The driver for the E100 interface to the FPGA is included as a kernel modules. In most cases, the kernel modules will be included with root file system image, but the modules can also be added or updated independently to an existing file system. Kernel modules for the master UHD branch are provided.
- Linux kernel modules
Updating kernel modules¶
Kernel modules can be installed from the running device or by using another host with a card reader. Kernel modules must reside in the following directory.
The specific kernel module for the E100 will be in the following location.
From the device¶
The modules tarball must be unpacked in the top level directory.
# cd / # tar xvfz /path/to/downloaded/modules-3.0-pm-r0d-usrp-e1xx.tgz
Force all changes to disk and reboot.
# sync # reboot
Generate module dependencies and reboot again.
# depmod -a # reboot
Checking versions of installed files¶
After updating, verify the version of updated files using the Version checking instructions.