Skip to content

Commit

Permalink
Merge pull request #156 from htot/master
Browse files Browse the repository at this point in the history
Kirstone
  • Loading branch information
htot authored Dec 1, 2023
2 parents 0adc44d + 0e6811e commit e223a62
Show file tree
Hide file tree
Showing 104 changed files with 2,920 additions and 3,115 deletions.
7 changes: 4 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,13 +30,14 @@ Currently we have Intel's original (factory) firmware: original and created addi
* **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
* **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
* * **kirkstone** (64 bit) based on Yocto Honister with LTS kernel v6.1.55, PREEMPT_RT kernel v6.1.54-rt15 and testing kernel 6.6.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).
Yocto Morty will build on Ubuntu Artful (17.10) while Kirkstone (the Yocto project LTS version) builds on Ubuntu Jammy (22.10).

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

**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.
**kirkstone** has a 64 bit kernel because we can, but may sometimes be actually slower than the 32bit kernel. **master** has the same as kirkstone, but 32 bits.
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 `honister` 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 `kirkstone` 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
44 changes: 33 additions & 11 deletions docs/_docs/Edison/Hacking/5.0-Creating-a-deb-repository.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ With the patch "package_manager: deb: Add support for signed feeds" applied duri
To enable, to following is added to local.conf during `setup`:
```
PACKAGE_CLASSES += " package_deb sign_package_feed"
PACKAGE_FEED_GPG_NAME = "E78D3359A86650AE"
PACKAGE_FEED_GPG_NAME = "976A9A3F994268DB"
PACKAGE_FEED_GPG_PASSPHRASE_FILE="${top_repo_dir}/utils/key/passphrase"
```
This enables signing the repo with the supplied GPG key (found under `utils/key/`). The key itself is installed during `setup` using:
Expand All @@ -27,19 +27,31 @@ gpg --allow-secret-key-import --passphrase-file passphrase --batch --import meta
## Generating you own GPG key
If you need to provide your own key:
```
gpg --generate-key # note the generated key, f.i. E78D3359A86650AE and passphrase
gpg --generate-key # note the generated key, f.i. 976A9A3F994268DB and passphrase
```
and put your passphrase in the file named `passphrase`.
```
gpg --output meta-intel-edison_pub.gpg --armor --export E78D3359A86650AE
gpg --output meta-intel-edison_secret.gpg --armor --export-secret-key E78D3359A86650AE
gpg --output meta-intel-edison_pub.gpg --armor --export 976A9A3F994268DB
gpg --output meta-intel-edison_secret.gpg --armor --export-secret-key 976A9A3F994268DB
```

If you don't want to create a signed repo remove `sign_package_feed` from `PACKAGE_CLASSES` in your `local.conf` (found under `out/linux64/build/conf`)

## Extending an expired key

> Thanks to [@lukedais](https://github.com/edison-fw/meta-intel-edison/issues/152#issuecomment-1732816511): You can extend the expiry date by running the following:
```
gpg --edit-key E78D3359A86650AE
key 1
expire
desired extension
```
> You may need to repeat this exact process for the subkey.
## Building the DEB repository

For more information, see the [Yocto Mega Manual](https://www.yoctoproject.org/docs/2.6/mega-manual/mega-manual.html#using-runtime-package-management)
For more information, see the [Yocto Mega Manual](https://docs.yoctoproject.org/4.0.7/singleindex.html#using-runtime-package-management)

First on the server generate the repository files and start a web server:
```
Expand All @@ -50,16 +62,26 @@ python3 -m http.server
```
## Using the DEB repository
First `scp meta-intel-edison_pub.gpg edison:` the public key to Edison.

{% include warning.html content="Installing the key by using `apt-key`apt-key add meta-intel-edison_pub.gpg` is deprecated and
will no longer work, see the DEPRECATION section in apt-key(8) for details. Please use the new method below." %}

On the Edison, install the key, add the server to the `apt` sources, update the `apt` database and upgrade all packages that are newer then the installed versions:
```
apt-key add meta-intel-edison_pub.gpg
gpg --dearmor meta-intel-edison_pub.gpg
mkdir /etc/apt/keyrings
mv meta-intel-edison_pub.gpg.gpg /etc/apt/keyrings/meta-intel-edison.gpg
vi /etc/apt/sources.list.d/meta-intel-edison.sources
vi /etc/apt/sources.list.d/delfion.list
X-Repolib-Name: meta-intel-edison
Enabled: yes
Types: deb
URIs: http://delfion:8000/
Suites: all/ corei7-64/ edison/
Signed-By: /etc/apt/keyrings/meta-intel-edison.gpg
deb http://delfion:8000/all ./
deb http://delfion:8000/corei7-32 ./
deb http://delfion:8000/edison ./
(save and close)
(save and close, i.e. shift-ZZ)
apt-get update
apt-get upgrade
Expand Down
4 changes: 2 additions & 2 deletions docs/_docs/Edison/Introduction/0.1-A-word-of-warning.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@ sidebar: edison
product: Edison
---
## Not breaking things
The Morty, Pyro, Rocko, Sumo, Thud, Warrior, Zeus, Dunfell, Gatesgarth, Hardknott, Honister branches are community supported. There is no warranty of any kind. Currently they build. install and boot. For Morty the separate parts (u-boot, kernel and rootfs) must be installed manually. After Pyro this is optional, you can use flashall or Flash Tool Lite and overwrite your factory image.
The Morty, Pyro, Rocko, Sumo, Thud, Warrior, Zeus, Dunfell, Gatesgarth, Hardknott, Honister and Kirkstone branches are community supported. There is no warranty of any kind. At the time of creation they built, install and boot. However, only Kirkstone is a current Yocto LTS version. For Morty the separate parts (u-boot, kernel and rootfs) must be installed manually. After Pyro this is optional, you can use flashall or Flash Tool Lite and overwrite your factory image.

In the following we assume you want to use the latest (Honister) and will only mention deviations for the older versions when absolutely needed.
In the following we assume you want to use the latest (Kirkstone) and will only mention deviations for the older versions when absolutely needed.

When you install everything manually, the only permanent change is the u-boot update (but you might need to update IFWI as well), and that should not affect your ability to run your factory Edison Image. The kernel will be installed in a partition that is currently unused (the oversized OTA partition) and the rootfs on an external sd card or USB stick.

Expand Down
4 changes: 2 additions & 2 deletions docs/_docs/Edison/Introduction/0.5-Road-map.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,5 +23,5 @@ product: Edison
17. Hardknott (done)
18. Honister (done)
19. ~~Fix MRAA to make GPIO work again~~ Replace MRAA and UPM by libiio, libgpiod and libserialport (done)
20. Kirkstone (LTS minimum until Apr. 2024)
21. Provide libgpiod 2.0+
20. Kirkstone (LTS minimum until Apr. 2026)
21. Provide libgpiod 2.0+ (done)
11 changes: 4 additions & 7 deletions docs/_docs/Edison/Introduction/0.6-News.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,7 @@ sidebar: edison
product: Edison
---
## What's new for this release
1. Linux make 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.
2. Update to Yocto Honister.
3. Build all IIO kernel modules, add libiio, libserialport. Together this forms a complete replacement for MRAA abd UPM.
4. Add documentation for using ACPI to define an IIO sensor ([4.6-libiio](4.6-libiio.html)).
5. Worked around long standing issue in kernel usb: dwc3 module so we can drop our " TODO: driver core: Break infinite loop when deferred probe can't be satisfied" patch.
6. Work around for 32b kernel not booting for kernel 5.13 and higher (disable CONFIG_STACKPROTECTOR)
1. Linux make v6.1.55 LTS the default kernel, upgrade U-Boot to v2023.10
We also provide v6.6.0 (testing) and v6.1.54-rt15 (LTS PREEMPT_RT kernel) for development purposes.
2. Update to Yocto Kirkstone LTS.
3. Override Kirkstone's default to libgpiod v2. Note: this is a backwards incompatible change, see NEWS and README in the sources.
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ This is what we want to accomplish:

The following is intended more to document what's going on in the process then to really do the conversion this way. But if you really want to, you can.

### 1 - 3. Starting point: ext4 Honister image with `btrfs` patches
### 1 - 3. Starting point: ext4 Kirkstone image with `btrfs` patches

If you already had this flashed you can skip directory to step 4.

Expand Down Expand Up @@ -107,9 +107,9 @@ press <ESC> during boot to enter U-Boot
run do_rescue
```

### 4. Boot into ext4 Honister image
### 4. Boot into ext4 Kirkstone image

Rebooting Edison should take you into Honister on mmcblk0p8 (`rootfs`).
Rebooting Edison should take you into Kirkstone on mmcblk0p8 (`rootfs`).

The first time it will run the /sbin/post-install.sh script, let it complete.
It may be that the `update` partition has been fat32 formatted earlier, or maybe it's corrupt. If it's fat formatted and you are connected over `usb` this partition maybe mounted on your host (as a gadget), you might want to unmount it now.
Expand Down
10 changes: 5 additions & 5 deletions docs/_docs/Edison/Setting Up/1.1-Prerequisites-for-building.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,19 +22,19 @@ In case for some reason the partition is lost, post-install.sh will create dummy

The serial_number can be reclaimed from the label on the Intel Edison, but the bluetooth_address needs to be recovered from backup. You might want go to /factory and make a copy of the files there before you proceed.

## Building the Honister branches on Ubuntu Groovy
## Building the Kirkstone branches on Ubuntu Jammy

Yocto Honister will build on Ubuntu Kinetic (22.10).
Yocto Kirkstone will build on Ubuntu Kinetic (23.10).

Install the required build environment:

sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib build-essential chrpath socat cpio python python3 libsdl1.2-dev xterm
sudo apt-get install python-is-python2 p7zip-full btrfs-progs lz4

## Building the Honister branche from an Ubuntu LTS container (Bionic)
## Building the Kirkstone branche from an Ubuntu LTS container (Jammy)
{% include note.html content="These instructions are based on [Linux Containers](https://linuxcontainers.org/lxd/getting-started-cli/) but with additional configuration (`ssh` access) that you will likely need to build Yocto." %}

{% include note.html content="I haven't tested this in a while. If you find Bionic is too old create an issue and let me know which Ubuntu will work." %}
{% include note.html content="I haven't tested this in a while. If you find Jammy is too old create an issue and let me know which Ubuntu will work." %}

Yocto builds almost everything it needs itself. But not everything. So if you upgrade your distribution to a newer version you may find that things are temporarily broken. If you want to prevent that, you might want to build Yocto from a container with LTS (Long Term Support). The nice thing about a container is that it's a lot smaller than a virtual machine and will build stuff a lot faster as it doesn't virtualize the kernel or the file system.

Expand Down Expand Up @@ -62,7 +62,7 @@ Would you like a YAML "lxd init" preseed to be printed? (yes/no) [default=no]:
```
Get and launch your first container (you might want to select a more appropriate name instead of `first`):
```
lxc launch ubuntu:18.04 first
lxc launch ubuntu:22.04 first
ferry@kalamata:~$ lxc list
+-------+---------+---------------------+-----------------------+------------+-----------+
Expand Down
2 changes: 1 addition & 1 deletion docs/_docs/Edison/Setting Up/1.2-Setting-up.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ product: Edison

git checkout master

You can also checkout `dizzy-uptodate`, `dizzy-latest`, `dizzy-rt` or `morty`, `pyro64`, `pyro64-acpi`, `rocko32`, `rocko64-acpi`, `sumo32` and `sumo64-acpi`, `thud`, `warrior`, `zeus`, `dunfell`, `gatesgarth`, `hardknott` (all frozen) or `honister`.
You can also checkout `dizzy-uptodate`, `dizzy-latest`, `dizzy-rt` or `morty`, `pyro64`, `pyro64-acpi`, `rocko32`, `rocko64-acpi`, `sumo32` and `sumo64-acpi`, `thud`, `warrior`, `zeus`, `dunfell`, `gatesgarth`, `hardknott`, `honister` (all frozen) or `kirkstone`.

5- Download all the needed dependencies:

Expand Down
2 changes: 1 addition & 1 deletion docs/_docs/Edison/Setting Up/1.4-i686-or-x86_64.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,4 +45,4 @@ It appears the LSD can kick in for short loops, and after a certain amount of lo
### Enabling x86_64 mode
In `meta-intel-edison/meta-intel-edison-bsp/conf/machine/edison.conf` change `KBUILD_DEFCONFIG="x86_64_defconfig"` and set `DEFAULTTUNE = "core2-64"`.

Alternatively you can checkout `honister` which will build a x86_64 ACPI enabled version.
Alternatively you can checkout `kirkstone` which will build a x86_64 ACPI enabled version.
Loading

0 comments on commit e223a62

Please sign in to comment.