Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
software:linux:yocto:start [2023-05-03 15:57] fabian.ditarantosoftware:linux:yocto:start [2023-06-15 11:08] (aktuell) Urs Graf
Zeile 3: Zeile 3:
 [[https://www.yoctoproject.org/ | yocto]] and [[https://www.openembedded.org/wiki/Main_Page | OpenEmbedded]] provide the tools necessary to create small customised linux distributions aimed at embedded systems. [[https://www.yoctoproject.org/ | yocto]] and [[https://www.openembedded.org/wiki/Main_Page | OpenEmbedded]] provide the tools necessary to create small customised linux distributions aimed at embedded systems.
  
-===== meta-ost ===== 
  
-[[.:meta-ost | meta-ost ]] is the layer containing recipes required for various OST projects.+===== Introduction to Yocto/OpenEmbedded ====
  
 +Learn about Yocto and bitbake which uses recipes structured in various layers to  build custom images, see [[introduction|Introduction to Yocto/OpenEmbedded]].
  
-===== Image Download =====+Read about [[layer|Layers]] and [[recipes|Recipes]] therein.  
 + 
 +Use [[devtool]] to add, modify and test new recipes.
  
-[[ ..:images/start ]] 
  
 ===== Getting Started ===== ===== Getting Started =====
Zeile 16: Zeile 17:
 For setting up the build environment, see [[setup|Setup and Building]]. For setting up the build environment, see [[setup|Setup and Building]].
  
-Check out [[ .:getting_started_cpp | Getting Started with Yocto and C/C++]] to get started developing C/C++ application using [[ software:cmake:start | cmake ]] and yocto.+[[ .:getting_started_cpp | Getting Started with Yocto and C/C++]] demonstrates how the build environment is setup, a x86-64 image is built and run on Qemu. Then a C++ application is added to this image.
  
-===== Workflow ======+There are essentially four ways to build on/for a yocto image:
  
-Learn about how to layers should be structuredabout how our CI/CD pipeline works and about how you could commit to the project in [[ .:workflow Structure / Workflow]].+  * Creating a recipe for the application and adding it to the imagesee [[ .:getting_started_cpp | Getting Started with Yocto and C/C++]]. This method includes a full build of the image. 
 +  * Crosscompile with a cross development SDK, see [[ .:sdk | SDK]]. 
 +  * Use the extensible SDK. With this, you use the regular yocto workflow without the need of building a complete image first, see [[ .:sdks | SDK's]]. 
 +  * Include the toolchain in the image and build natively (not recommended), see [[ .:sdks SDK's]].
  
  
-===== Introduction to Yocto/OpenEmbedded ====+===== Our Layers =====
  
-Learn about Yocto and bitbake which uses recipes structured in various layers to  build custom images, see [[introduction|Introduction to Yocto/OpenEmbedded]].+  * [[.:meta-ost | meta-ost ]] is the layer containing recipes required for various OST projects. 
 +  [[.:meta-ost-ethercat meta-ost-ethercat ]] is the layer containing recipes for EtherCAT support.
  
-Read about [[layer|Layers]] and [[recipes|Recipes]] therein.  
  
-Use [[devtool]] to add, modify and test new recipes.+===== Image Download ===== 
 +Prebuilt images for our supported platforms together with SDK and extended SDK are available at [[ ..:images/start |Linux Images]].
  
  
-===== ROS =====+===== Workflow ======
  
-[[ ros ]]+Learn about how our layers are structured, about how our CI/CD pipeline works and about how you could commit to the project in [[ .:workflow | Structure / Workflow]].
  
-===== SDK's ===== 
  
-There are essentially three ways to build on/for a yocto image: +===== ROS ===== 
- +Work is under way to include [[ ros ROS ]] in our builds.
-  * include the toolchain in the image and build natively (not recommended) +
-  * SDK +
-  * extensible SDK +
- +
-See [[ .:sdks | SDK's]] +
- +
-===== User interface / General settings ===== +
- +
-To work with different custom Yocto builds we are providing may need documentation, especially for new users. +
- +
-==== Networking ==== +
- +
-For networking, our Yocto images are currently (status: March 2023) using [[https://wiki.archlinux.org/title/Systemd-networkd|systemd-networkd]] which can be quite cumbersome for users without experienceThe following tutorials are covering the most important basic network settings. +
- +
-=== DHCP / Static IP addresses ===+
  
-In order to enable DHCP or set a static IP address please refer to the //systemd-networkd// documentation linked above. In case you have configured the IP address being provided as a static IP address by the DHCP server via the system's MAC address and the system does not get the according IP address from the DHCP server, it may be caused by the way some Linux distributions are announcing themselves on the network (uid vs. mac address), which can be resolved as described [[https://superuser.com/questions/1338510/wrong-ip-address-from-dhcp-client-on-ubuntu-18-04|here]]: 
  
-<code> 
-[DHCP] 
-ClientIdentifier=mac 
-</code> 
  
-=== WiFi === 
-Setting up a WiFi connection on a specific WiFi network interface (''wlan0''-interface on the following example) can be done as shown on the following BeagleBoneBlue Yocto image example: 
-\\ \\ 
-Edit the following file: 
-<cli>nano /etc/wpa_supplicant.conf</cli> 
-Outcomment the existing and paste the following new content as follows: 
-<code> 
-#ctrl_interface=/var/run/wpa_supplicant 
-#ctrl_interface_group=0 
-#update_config=1 
-# 
-network={ 
-        key_mgmt=WPA-PSK 
-        ssid="<myWiFiSSID>" 
-        psk="<myWiFiPassword>" 
-} 
-</code> 
-Save the file and exit the editor. 
-\\ 
-\\ 
-Now edit the following file... 
-<cli>nano /etc/systemd/network/30-wlan0.network</cli> 
-...and add the following content: 
-<code> 
-[Unit] 
-Description=Start udhcpc DHCP client 
-After=wpa_supplicant.service 
-Wants=wpa_supplicant.service 
-  
-[Service] 
-Type=oneshot 
-ExecStart=/sbin/udhcpc -i wlan0 
-TimeoutSec=30 
-Restart=on-failure 
-  
-[Install] 
-WantedBy=network.target 
-</code> 
-Save the file and quit the editor. 
-\\ 
-\\ 
-Now rename the following file so it will not be used by the system anymore: 
-<cli>mv /etc/network/interfaces /etc/network/interfaces.bak</cli> 
-Finally reboot the system: 
-<cli>reboot</cli> 
-WiFi should work now.