yocto-bsp/README.md

133 lines
3.2 KiB
Markdown

# NetModule OEM Linux
The purpose of this repository is to provide a base or a template for customers to build their own distribution based on the NetModule OEM Linux distribution.
The submodules and source revisions are frozen to match the latest release.
## Initial steps
Before building anything, it is required to get all the submodules. This is done with the following commands:
```
git submodule init
git submodule update
```
### Copy PFE firmware
Please make sure that you copy the PFE firmware with the right version meta-netmodule-bsp/recipes-kernel/pfe/pfe_<version> to meta-netmodule-bsp/recipes-kernel/pfe/pfe/. You need to copy the class and util firmware files. This is necessary because the firmware is currently only available under NDA.
## Selecting hardware target
The hardware target can be selected by sourcing the machine_select script:
```
source machine_select
9 # Selecting ProCV2.2
```
## Building an image
This distribution provides three images:
1. The minimal image
2. The "release" image
3. The development image
### The minimal image
It is a initramfs image which can be loaded from the bootloader. It gives access to basic linux functionalities and allows to flash other images.
It can be built with the following commands:
```
source env.image-minimal
bitbake virtual/netmodule-image
```
### The "release" image
This is the default image providing all functionalities of the system.
It can be build with the following commands:
```
source env.image-ostree
bitbake netmodule-linux-image
```
### The development image
This is the default image extended with development and debugging tools.
It can be build with the following commands:
```
source env.image-ostree
bitbake netmodule-linux-image-dev
```
## Usage
### 1000BaseT1
The PFE driver comes up automatically. However, it does by default rely on autoneg. This doesn't seem to work with the Göpel Media Converter EasyCON. Therefore, a reset is required. Currently pfe0 shares the reset signal with eth0. That's why the following works:
```
brginup.sh enable-pfe
ifconfig eth0 down
ifconfig eth0 up
```
Now the 1000BaseT1 PHY works in default mode.
### Modem
The modem is disabled by default. However, it is possible to enable it with the following command:
```
bringup.sh enable-modem
```
To use adb you have to do the following:
```
echo 0x2c7c >> ~/.android/adb_usb.ini
adb shell
```
### Wifi
Enable the Wifi module (make sure you enable the modem first):
```
bringup.sh enable-wifi
```
### ADCs
Read out the SPI ADCs:
```
bringup.sh read-adc
```
### IMU
To enable the IMU you can call enable-imu.sh:
```
bringup.sh enable-imu.sh
```
To communicate with the imu you can use test-imu.sh:
```
# Read/Write
bringup.sh read-write-imu /dev/spidev1.0 1 2020
# Read
bringup.sh read-write-imu /dev/spidev1.0 1
```
### Secure Element
To enable the secure elelment call enable-secure-element:
```
bringup.sh enable-secure-element
```
There is no helper for the secure element available yet. You can use spidev_test to communicate with it:
```
spidev_test --help
```
### V2X
Enable the V2X and load a firmware (make sure you enable the modem first):
```
bringup.sh enable-v2x <path to fw>
```
### GPIOS
Set gpio:
```
bringup.sh set-gpio <gpio> <value>
```
Get gpio:
```
bringup.sh get-gpio <gpio>
```