Skip to content

Commit

Permalink
Merge pull request #151 from htot/master
Browse files Browse the repository at this point in the history
Honister

These patches update to Yocto Honister., make Linux 5.15.81 LTS the default kernel, upgrade U-Boot to v2022.10 We also provide v6.0.0 (testing) and v5.15.79-rt54 (LTS PREEMPT_RT kernel) for development purposes.

In addition it builds all IIO kernel modules, adds libiio, libserialport. Together this forms a complete replacement for MRAA abd UPM.

Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
  • Loading branch information
htot authored Dec 15, 2022
2 parents c603629 + 77b69fd commit 0adc44d
Show file tree
Hide file tree
Showing 128 changed files with 3,810 additions and 2,147 deletions.
7 changes: 4 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,14 +28,15 @@ Currently we have Intel's original (factory) firmware: original and created addi
* **zeus** (64 bit) based on Yocto Warrior with kernel 5.6.
* **dunfell** (64 bit) based on Yocto Dunfell with kernel 5.11.
* **gatesgarth** (64 bit) based on Yocto Gatesgarth with LTS kernel 5.10, PREEMPT_RT kernel 5.10 and current kernel 5.14
* * **hardknott** (64 bit) based on Yocto Hardknott with LTS kernel 5.15.25, PREEMPT_RT kernel 5.15.25-rt33 and testing kernel 5.16.0
* **hardknott** (64 bit) based on Yocto Hardknott with LTS kernel 5.15.25, PREEMPT_RT kernel 5.15.25-rt33 and testing kernel 5.16.0
* **honister** (64 bit) based on Yocto Honister with LTS kernel 5.15.81, PREEMPT_RT kernel 5.15.79-rt54 and testing kernel 6.0.0

See https://wiki.yoctoproject.org/wiki/Releases on Yocto releases and support status.

# What to choose

Yocto Morty will build on Ubuntu Artful (17.10) while Dunfell (the Yocto project LTS version) builds on Ubuntu Groovy (20.10).

Generally **sumo32** will give best results if you rely on MRAA and UPM. In all other cases, use the latest, **hardknott**.
Generally **sumo32** will give best results if you rely on MRAA and UPM. In all other cases, use the latest, **honister**.

**gatesgarth** has a 64 bit kernel because we can, but may be actually slower than the 32bit kernel. **master** has the same as gatesgarth, but 32 bits.
**honister** has a 64 bit kernel because we can, but may sometimes be actually slower than the 32bit kernel. **master** has the same as honister, but 32 bits.
31 changes: 20 additions & 11 deletions docs/_data/edison.yml
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ folders:
jurl: /0.5-Road-map.html
ref: 0.5-Road-map
pdf: true

- title: News
jurl: /0.6-News.html
ref: 0.6-News
Expand Down Expand Up @@ -109,7 +109,7 @@ folders:
jurl: /2.2-Building-and-installing-the-kernel.html
ref: 2.2-Building-and-installing-the-kernel
pdf: true

- title: Building and flashing U-Boot
jurl: /2.3-Building-and-flashing-U-boot.html
ref: 2.3-Building-and-flashing-U-boot
Expand All @@ -129,20 +129,25 @@ folders:
jurl: /2.6-Building-Debian.html
ref: 2.6-Building-Debian
pdf: true

- title: Installing Ubuntu
jurl: /2.7-Install_Ubuntu.html
ref: 2.7-Install_Ubuntu
pdf: true

- title: SDK
pdf: true
jurl: /minitoc_theme_build.html

folderitems:
- title: Building and installing the SDK
jurl: /3-Building-the-SDK.html
ref: 3-Building-the-SDK
jurl: /3.0-Building-the-SDK.html
ref: 3.0-Building-the-SDK
pdf: true

- title: Remote development
jurl: /3.1-Remote-develop.html
ref: 3.1-Remote-develop
pdf: true

- title: Current state
Expand Down Expand Up @@ -170,25 +175,29 @@ folders:
jurl: /4.5-mraa-upm.html
ref: 4.5-mraa-upm
pdf: true
- title: LibIIO
jurl: /4.6-libiio.html
ref: 4.6-libiio
pdf: true
- title: Making contact the first time
jurl: /4.6-contact.html
ref: 4.6-contact
jurl: /4.7-contact.html
ref: 4.7-contact
pdf: true

- title: Hacking
pdf: true
jurl: /minitoc_theme_build.html

folderitems:
- title: Creating a deb repository
- title: Creating a deb repository
jurl: /5.0-Creating-a-deb-repository.html
ref: 5.0-Creating-a-deb-repository
pdf: true
- title: Bitbake tricks
- title: Bitbake tricks
jurl: /5.1-Bitbake-tricks
ref: 5.1-Bitbake-tricks
pdf: true
- title: Creating documentation
- title: Creating documentation
jurl: /5.2-Documentation.html
ref: 5.2-Documentation
pdf: true
Expand Down
2 changes: 1 addition & 1 deletion docs/_docs/Edison/Building/2.6-Building-Debian.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ product: Edison
{:toc}

# Debian
Currently Debian will only build correct for x86_64 builds. That means it will only build correctly if you checkout `hardknott` and not `master`. The reason is the `debian_1_create.sh` script misses to pick up all needed kernel modules.
Currently Debian will only build correct for x86_64 builds. That means it will only build correctly if you checkout `honister` and not `master`. The reason is the `debian_1_create.sh` script misses to pick up all needed kernel modules.

{% include warning.html content="This image is not intended to be used for IOT but rather to use Edison board as a small server (Jenkins, Gerrit, web server, ...). It should be easier to install these packages on Debian rather than on Yocto image. If you want to use Edison for IOT, stick to Yocto image!" %}

Expand Down
5 changes: 4 additions & 1 deletion docs/_docs/Edison/Building/2.7-Install_Ubuntu.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ product: Edison
---
Instead of having `make` build a Debian image, here are the instructions to manually modify a Ubuntu Base image to make it bootable on Intel Edison.

Also here is a pre-built ubuntu image for you now! check [ubuntu-22.04-minimal](https://github.com/initdc/rootfs-tools/releases/tag/22.04)

### Step 1
Download Gatesgarth64 image (https://github.com/edison-fw/meta-intel-edison/releases/download/Gatesgarth64/edison-image-91c85a58.7z).<br>
Use `flashall.sh` to flash it on the Edison.
Expand Down Expand Up @@ -58,7 +60,8 @@ Install some necessary packages:<br>
<br>`apt install -y language-pack-en-base`
<br>`apt install -y dialog apt-utils`
<br>`unset DEBIAN_FRONTEND`
<br>`apt install -y kmod wpasupplicant rfkill ifupdown iputils-ping dnsutils wireless-tools bash-completion vim htop wget curl tree openssh-server systemd systemd-sysv sudo net-tools nano`
<!-- sorting by https://build.moz.one -->
<br>`apt install -y bash-completion curl dnsutils htop ifupdown iputils-ping kmod nano net-tools network-manager openssh-server rfkill sudo systemd systemd-sysv tree vim wget wireless-tools wpasupplicant`

### Step 12
Create an user, and set password:
Expand Down
21 changes: 15 additions & 6 deletions docs/_docs/Edison/Current State/4.5-mraa-upm.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,21 @@ product: Edison
{:toc}

MRAA and UPM are libraries that simplify the development of applications that interface with sensors.
Documentation can be found [here](http://upm.mraa.io/Documentation/docindex.html).
Documentation can be found [here](https://iotdk.intel.com/docs/master/mraa/).

{% include warning.html content="Since Honister we have removed MRAA en UPM from the image. The reason is that since the
project moved to the Eclipse Foundation development has slowed down. The latest release 2.2.0 was dated 2020-10-21 although
some commits have been made since then. For a long while nodejs support has been broken. Another reason is that parts of MRAA (in particular gpio) are not functional on Intel Edison since we are using ACPI tables. A substantial rework of intel_edison_fab_c.c would be required and no active participant
in our community is willing to take that up. Nevertheless MRAA and UPM are provided by Yocto and can be installed manually
or added to the image at any time." %}

{% include note.html content="As a modern replacement we have enabled building iio modules in the kernel and installing `libgpiod`, `libiio` and `libserialport`" %}

The following sections are deprecated and kept for historical reason only. You may want to jump to [LibIIO](4.6-libiio) now.


## MRAA
MRAA 1.9 is installed with support for C/C++ and additional packages are built to support python3 and nodejs.
MRAA 2.2.0 is available in Yocto Honister with support for C/C++ and additional packages are built to support python3 and nodejs.

{% include note.html content="These additional packages are not installed by default. You can find these under `out/linux64/build/tmp/work/<arch>-poky-linux/mraa/1.9.0-gitAUTOINC+nnnn-r0/deploy-debs/<arch>/` for manual installation. " type="primary" %}

Expand All @@ -28,16 +39,14 @@ Alternatively, add these packages to edison-image.bb for automatic installation
### HSU
High speed uart (HSU) works.
### I2C
I2C should be working but I haven't tested that yet with real hardware using MRAA.
I2C works see example [below](4.5-mraa-upm.html#example-using-upm-and-mraa-on-the-tsl2561).
### GPIO
Settings GPIO's works with the non-ACPI image only.

{% include note.html content="For the ACPI enabled image MRAA functions related to pin configuration will fail due to pin numbering being replaced by pin naming. MRAA needs to be updated for the ACPI enabled platform. Currently for the ACPI enabled image we recommend to use `libgpiod`" %}

Selecting a pinmux on vanilla linux is supposed to be done by devicetree or ACPI, which has been disabled that in mraa for Linux kernels > 4.0. Currently we have I2C, SPI and HSU selectable configurations available in the form of ACPI tables. For the non-ACPI image, I2C and HSU pinmuxes are preset in the platform code in the kernel.

## UPM
UPM 1.6 is installed with support for C/C++ and additional packages are built to support python3 and nodejs.
UPM 2.0 is available in Yocto Honister with support for C/C++ and additional packages are built to support python3 and nodejs.

{% include note.html content="These additional packages are not installed by default. You can find these under `out/linux64/build/tmp/work/<arch>-poky-linux/upm/1.6.0-gitAUTOINC+cc7fec9ae0-r0/deploy-debs/<arch>/` for manual installation. " %}

Expand Down
Loading

0 comments on commit 0adc44d

Please sign in to comment.