Ubucon Europe 2019 - Sintra - 10 to 13 of October
The 2019 Ubucon Europe the Conference organized by the European Ubuntu Community, to celebrate Ubuntu and the Ubuntu Community, and share knowledge and experiences will be held in Sintra, Portugal from the 10 to the 13 of October.
The event consists of talks, workshops, live podcasting, meetings, expositions, and most importantly social and cultural events. And the call for papers is still open ([https://manage.ubucon.org/eu2019/cfp](https://manage.ubucon.org/eu2019/cfp)).
You can learn more details about Ubucon Europe on [its website](https://sintra2019.ubucon.org/).
https://redd.it/cj2eyo
@r_linux
The 2019 Ubucon Europe the Conference organized by the European Ubuntu Community, to celebrate Ubuntu and the Ubuntu Community, and share knowledge and experiences will be held in Sintra, Portugal from the 10 to the 13 of October.
The event consists of talks, workshops, live podcasting, meetings, expositions, and most importantly social and cultural events. And the call for papers is still open ([https://manage.ubucon.org/eu2019/cfp](https://manage.ubucon.org/eu2019/cfp)).
You can learn more details about Ubucon Europe on [its website](https://sintra2019.ubucon.org/).
https://redd.it/cj2eyo
@r_linux
manage.ubucon.org
UbuconEU Sintra 2019
Schedule, talks and talk submissions for UbuconEU Sintra 2019
Thoughts on running UBports (Ubuntu Touch) 16.04 on a Nexus 5
https://distrowatch.com/weekly.php?issue=20190729#ubports
https://redd.it/cj3l00
@r_linux
https://distrowatch.com/weekly.php?issue=20190729#ubports
https://redd.it/cj3l00
@r_linux
Distrowatch
DistroWatch.com: Put the fun back into computing. Use Linux, BSD.
News and feature lists of Linux and BSD distributions.
GNU Stow 2.3.0 has been released
https://lists.gnu.org/archive/html/info-stow/2019-06/msg00000.html
https://redd.it/cj4l9x
@r_linux
https://lists.gnu.org/archive/html/info-stow/2019-06/msg00000.html
https://redd.it/cj4l9x
@r_linux
Linux Experiences/Rants or Education/Certifications thread - July 29, 2019
Welcome to r/linux rants and experiences! This megathread is also to hear opinions from anyone just starting out with Linux or those that have used Linux (GNU or otherwise) for a long time.
Let us know what's annoying you, whats making you happy, or something that you want to get out to r/linux but didn't make the cut into a full post of it's own.
For those looking for certifications please use this megathread to ask about how to get certified whether it's for the business world or for your own satisfaction. Be sure to check out r/linuxadmin for more discussion in the SysAdmin world!
_Please keep questions in r/linuxquestions, r/linux4noobs, or the Wednesday automod thread._
https://redd.it/cj66yj
@r_linux
Welcome to r/linux rants and experiences! This megathread is also to hear opinions from anyone just starting out with Linux or those that have used Linux (GNU or otherwise) for a long time.
Let us know what's annoying you, whats making you happy, or something that you want to get out to r/linux but didn't make the cut into a full post of it's own.
For those looking for certifications please use this megathread to ask about how to get certified whether it's for the business world or for your own satisfaction. Be sure to check out r/linuxadmin for more discussion in the SysAdmin world!
_Please keep questions in r/linuxquestions, r/linux4noobs, or the Wednesday automod thread._
https://redd.it/cj66yj
@r_linux
reddit
r/linux - Linux Experiences/Rants or Education/Certifications thread - July 29, 2019
0 votes and 0 comments so far on Reddit
OEM Windows 10 Pro conversion to Linux. Easy?
I have a quick question about whether this solution is possible.
Situation:
Say someone gets Windows installation activated by OEM key. A few days later, it’s asking him to activate Windows 10.
Solution:
I am thinking it is possible for someone stuck with a faulty Windows (with no support) that he could boot up with a linux disk.
​
Or is there a better solution for failures of dodgy Windows OEM keys?
https://redd.it/cj6b61
@r_linux
I have a quick question about whether this solution is possible.
Situation:
Say someone gets Windows installation activated by OEM key. A few days later, it’s asking him to activate Windows 10.
Solution:
I am thinking it is possible for someone stuck with a faulty Windows (with no support) that he could boot up with a linux disk.
​
Or is there a better solution for failures of dodgy Windows OEM keys?
https://redd.it/cj6b61
@r_linux
reddit
r/linux - OEM Windows 10 Pro conversion to Linux. Easy?
0 votes and 1 comment so far on Reddit
LXQT vs. KDE
Just curious if anyone has used both and preferred LXQT for reasons other than using slow hardware. I haven't used LXQT yet, but I've been tempted to try it just for the hell of it. IMO half the magic that makes KDE great is QT (the other half being that the KDE team doesn't remove features like the GNOME team tends to do. Sorry, that's not a jab at GNOME per say, I just dislike the current UI/workflow of GNOME and the constant push towards that workflow and away from a proven desktop experience that's existed since at least the 90s.)
https://redd.it/cj77jx
@r_linux
Just curious if anyone has used both and preferred LXQT for reasons other than using slow hardware. I haven't used LXQT yet, but I've been tempted to try it just for the hell of it. IMO half the magic that makes KDE great is QT (the other half being that the KDE team doesn't remove features like the GNOME team tends to do. Sorry, that's not a jab at GNOME per say, I just dislike the current UI/workflow of GNOME and the constant push towards that workflow and away from a proven desktop experience that's existed since at least the 90s.)
https://redd.it/cj77jx
@r_linux
reddit
r/linux - LXQT vs. KDE
0 votes and 1 comment so far on Reddit
The opensnitch's main dev: yes, i'm not working on it anymore and i'm not responding to issues, because i lost interest and nobody pays me for this ... if this project is so essential (?), the "Linux community" can fork it and send a PR.
https://github.com/evilsocket/opensnitch/issues/259#issuecomment-498604956
https://redd.it/cj81ms
@r_linux
https://github.com/evilsocket/opensnitch/issues/259#issuecomment-498604956
https://redd.it/cj81ms
@r_linux
GitHub
is this project still being maintained? · Issue #259 · evilsocket/opensnitch
no issue replies no activity for 2 months now I'm worried that this project will end or somthing... tho it would be so weird - it has gotten so popular now
Breaking Apple's chains on 2012 MBP
So I've been a Linux user for about 8 years and I came across something quite interesting/bizarre today. When I loaded Ubuntu onto my mid 2012 MacBook pro(Ubuntu because it plays nice with the wireless/MacBook Pro because I got a sweet deal on it) I realized that this device has a lot of untapped potential that isn't found in Mac OS.
~~First off the TN panel is locked to 60hz only unlockable by paid third party software, Ubuntu shows the panel is capable of 119.97hz whether it's actually hitting that I'm unsure however it feels much more responsive.~~
Secondly the DAC is able to produce much louder and clearer sound absolutely stomping on what the native OS allows.
Lastly I found this particularly interesting. In the native OS it claims the Intel 3520m is only capable of 2.9ghz however neofetch in Ubuntu claims it is capable of 3.6ghz.
I have looked all over the web to find if anyone has noticed any of this but the results came up dry. It makes me wonder if there are other apple users who have switched to Linux only to find they have better hardware than what was advertised or if apple is deliberately choking up on aging hardware to make people upgrade. Either way I wanna hear about your experiences with unlocking your devices true potential!
Edit:The refresh rate is due to a bug within Gnome where it falsely labels the refresh rate. The placebo effect is real.
https://redd.it/cj8gg2
@r_linux
So I've been a Linux user for about 8 years and I came across something quite interesting/bizarre today. When I loaded Ubuntu onto my mid 2012 MacBook pro(Ubuntu because it plays nice with the wireless/MacBook Pro because I got a sweet deal on it) I realized that this device has a lot of untapped potential that isn't found in Mac OS.
~~First off the TN panel is locked to 60hz only unlockable by paid third party software, Ubuntu shows the panel is capable of 119.97hz whether it's actually hitting that I'm unsure however it feels much more responsive.~~
Secondly the DAC is able to produce much louder and clearer sound absolutely stomping on what the native OS allows.
Lastly I found this particularly interesting. In the native OS it claims the Intel 3520m is only capable of 2.9ghz however neofetch in Ubuntu claims it is capable of 3.6ghz.
I have looked all over the web to find if anyone has noticed any of this but the results came up dry. It makes me wonder if there are other apple users who have switched to Linux only to find they have better hardware than what was advertised or if apple is deliberately choking up on aging hardware to make people upgrade. Either way I wanna hear about your experiences with unlocking your devices true potential!
Edit:The refresh rate is due to a bug within Gnome where it falsely labels the refresh rate. The placebo effect is real.
https://redd.it/cj8gg2
@r_linux
reddit
r/linux - Breaking Apple's chains on 2012 MBP
0 votes and 7 comments so far on Reddit
GNU sed syntax and sed examples
https://www.codingfailure.com/linux-tutorial/gnu-sed-syntax-and-sed-examples/
https://redd.it/cja5rz
@r_linux
https://www.codingfailure.com/linux-tutorial/gnu-sed-syntax-and-sed-examples/
https://redd.it/cja5rz
@r_linux
Coding failure
GNU sed syntax and sed examples - Coding failure
sed is a stream editor. sed workflow, hold space and pattern space explain, sed syntax,sed debug tool and sed example; sed add/del/replace ...
Hardware advice: 15" Laptop with Thunderbolt 3 for eGPU usage
G'day there!
I'm looking forward to replace my MacBook Pro 15" with something more modern that runs Linux. I already have a Razer Core X Thunderbolt 3 eGPU with an AMD Radeon VII that's connected to a 5k display and I would like to be able to continue using this setup with the Linux laptop attached to it.
It's a very long time since I last had Linux as a desktop operating system, hence I was wondering what laptops are best supported these days? Last time I did use Linux on a laptop it was on an IBM ThinkPad and it ran pretty damn good (apart from WiFi issues back at that time).
I'd appreciate suggestions, especially from people that might be running a similar Thunderbolt 3 setup! Thanks in advance!
https://redd.it/cjax7x
@r_linux
G'day there!
I'm looking forward to replace my MacBook Pro 15" with something more modern that runs Linux. I already have a Razer Core X Thunderbolt 3 eGPU with an AMD Radeon VII that's connected to a 5k display and I would like to be able to continue using this setup with the Linux laptop attached to it.
It's a very long time since I last had Linux as a desktop operating system, hence I was wondering what laptops are best supported these days? Last time I did use Linux on a laptop it was on an IBM ThinkPad and it ran pretty damn good (apart from WiFi issues back at that time).
I'd appreciate suggestions, especially from people that might be running a similar Thunderbolt 3 setup! Thanks in advance!
https://redd.it/cjax7x
@r_linux
reddit
r/linux - Hardware advice: 15" Laptop with Thunderbolt 3 for eGPU usage
0 votes and 1 comment so far on Reddit
Manga reader - app to read local (on your pc) manga
Works with folders and archives.
You add your manga folder and it creates a folder tree where you can double click a folder to load the images inside that folder, can also load images recursively through a context menu action.
Double click the images view/area or the image itself to enter/exit full screen.
[Screenshots on gitlab](https://gitlab.com/g-fb/manga-reader#screenshots)
Repo: [https://gitlab.com/g-fb/manga-reader](https://gitlab.com/g-fb/manga-reader)
Flathub: [https://flathub.org/apps/details/com.georgefb.mangareader](https://flathub.org/apps/details/com.georgefb.mangareader)
https://redd.it/cjbcf9
@r_linux
Works with folders and archives.
You add your manga folder and it creates a folder tree where you can double click a folder to load the images inside that folder, can also load images recursively through a context menu action.
Double click the images view/area or the image itself to enter/exit full screen.
[Screenshots on gitlab](https://gitlab.com/g-fb/manga-reader#screenshots)
Repo: [https://gitlab.com/g-fb/manga-reader](https://gitlab.com/g-fb/manga-reader)
Flathub: [https://flathub.org/apps/details/com.georgefb.mangareader](https://flathub.org/apps/details/com.georgefb.mangareader)
https://redd.it/cjbcf9
@r_linux
GitLab
George Florea Bănuș / Manga Reader
Manga Reader for local files.
linux awk syntax and awk examples
https://www.codingfailure.com/linux-tutorial/awk-command/awk-syntax/
https://redd.it/cjbnbh
@r_linux
https://www.codingfailure.com/linux-tutorial/awk-command/awk-syntax/
https://redd.it/cjbnbh
@r_linux
Coding failure
linux awk syntax and awk examples - Coding failure
awk syntax bash, workflow and examples. -awk print example; -awk -f example; -awk if else if example; -awk batch operation example; -awk split example ...
Librem 5 Smartphone – Final Specs Announced
https://puri.sm/posts/librem-5-smartphone-final-specs-announced/
https://redd.it/cjd6st
@r_linux
https://puri.sm/posts/librem-5-smartphone-final-specs-announced/
https://redd.it/cjd6st
@r_linux
Purism
Librem 5 Smartphone - Final Specs Announced – Purism
Purism makes premium phones, laptops, mini PCs and servers running free software on PureOS. Purism products respect people's privacy and freedom while protecting their security.
Including Custom Executables and Libraries in Your Linux Image with Yocto
# Yocto customization is power
Yocto is incredibly flexible. It enables building an embedded Linux distribution with virtually any combination of packages in the root filesystem (rootfs). This flexibility also makes Yocto quite powerful. Understanding how to include custom files in the rootfs can simplify the process of creating custom Linux images. This blog outlines a collection of recipes that guided me through the sea of misinformation to the process of correctly including a large custom application.
As previously recommended, you can [**install Yocto on your system**](https://dornerworks.com/blog/heres-how-you-can-build-your-own-custom-linux-distro-with-yocto) with at least **8GB of RAM** and **120GB of hard drive space**, then prepare yourself and expand your Yocto knowledge with [**the Mega-Manual**](https://www.yoctoproject.org/docs/2.5/mega-manual/mega-manual.html) and these steps. Once you have Yocto set up, follow these steps to customize your Linux image with your own executables and shared libraries.
### Adding a meta-layer and including a basic executable
Including a basic executable in a custom Yocto image can be done quite easily by following the steps below. All of the steps listed here were tested using Yocto Sumo version running in Centos 7. This example is based on an example that can be found in the [**Yocto Mega-Manual here**](https://wiki.yoctoproject.org/wiki/Building_your_own_recipes_from_first_principles).
1. Add a new meta-layer and configuration files for that meta-layer:
Create the necessary directory structure for your meta-layer.
`$ mkdir -p ~/poky/meta-test/conf`
Add a layer.conf file to configure your meta-layer.
`$ cd ~/poky/meta-test/conf && touch layer.conf`
Edit your layer.conf file to define paths to your recipes, and your layer version.
`$ vi layer.conf`
You should see:
`# We have a conf and classes directory, add to BBPATH`
`BBPATH .= “:${LAYERDIR}”`
`# We have recipes-* directories, add to BBFILES`
`BBFILES += “${LAYERDIR}/recipes-*/*/*.bb \`
`${LAYERDIR}/recipes-*/*/*.bbappend \`
`${LAYERDIR}/recipes-*/*.bb \`
`${LAYERDIR}/recipes-*/*.bbappend ”`
`BBFILE_COLLECTIONS += “test”`
`BBFILE_PATTERN_test = “^${LAYERDIR}/”`
`BBFILE_PRIORITY_test = “1”`
`LAYERVERSION_test = “1”`
2. Create a directory for your recipe, and add a helloworld recipe:
`$ cd ~/poky/meta-test`
`$ mkdir -p recipes-test/helloworld && cd recipes-test/helloworld`
`$ touch helloworld.bb`
Use your newly created recipe to build the helloworld executable:
`$ vi helloworld.bb`
This is an example of a basic recipe. The do\_compile function tells Yocto how to build the executable. The variables CC, CFLAGS, and LDFLAGS are set by Yocto to defaults for the machine that is specified. The do\_install function lays out what directories and files are to be added to the rootfs. The S variable is the location where files are used at build time, and where output binaries will be placed. The SRC\_URI variable is used to define the location of source files before build time.
You should see:
`DESCRIPTION = “Example Hello, World application for Yocto build.”`
`SECTION = “examples”`
`DEPENDS = “”`
`LICENSE = “CLOSED”`
`FILESEXTRAPATHS_prepend := “${THISDIR}/src:”`
`SRC_URI = “file://helloworld.c”`
`S = “${WORKDIR}”`
`do_compile() {`
`${CC} ${CFLAGS} ${LDFLAGS} ${WORKDIR}/helloworld.c -o helloworld`
`}`
`do_install() {`
`# create the /usr/bin folder in the rootfs with default permissions`
`install -d ${D}${bindir}`
`# install the application into the /usr/bin folder with default permissions`
`install ${WORKDIR}/hello ${D}${bindir}`
`}`
3. Add source code for the helloworld recipe to your newly created recipes-test folder:
$ cd \~/poky/meta-test/recipes-test/helloworld
$ mkdir src && cd src
$ touch helloworld.c && vi helloworld.c
\# Include <stdio.h>
int main()
{
printf(“Hello, World!\\n”);
return 0;
};
4. Create a bbappend for the selected image, in order to include the executable in th
# Yocto customization is power
Yocto is incredibly flexible. It enables building an embedded Linux distribution with virtually any combination of packages in the root filesystem (rootfs). This flexibility also makes Yocto quite powerful. Understanding how to include custom files in the rootfs can simplify the process of creating custom Linux images. This blog outlines a collection of recipes that guided me through the sea of misinformation to the process of correctly including a large custom application.
As previously recommended, you can [**install Yocto on your system**](https://dornerworks.com/blog/heres-how-you-can-build-your-own-custom-linux-distro-with-yocto) with at least **8GB of RAM** and **120GB of hard drive space**, then prepare yourself and expand your Yocto knowledge with [**the Mega-Manual**](https://www.yoctoproject.org/docs/2.5/mega-manual/mega-manual.html) and these steps. Once you have Yocto set up, follow these steps to customize your Linux image with your own executables and shared libraries.
### Adding a meta-layer and including a basic executable
Including a basic executable in a custom Yocto image can be done quite easily by following the steps below. All of the steps listed here were tested using Yocto Sumo version running in Centos 7. This example is based on an example that can be found in the [**Yocto Mega-Manual here**](https://wiki.yoctoproject.org/wiki/Building_your_own_recipes_from_first_principles).
1. Add a new meta-layer and configuration files for that meta-layer:
Create the necessary directory structure for your meta-layer.
`$ mkdir -p ~/poky/meta-test/conf`
Add a layer.conf file to configure your meta-layer.
`$ cd ~/poky/meta-test/conf && touch layer.conf`
Edit your layer.conf file to define paths to your recipes, and your layer version.
`$ vi layer.conf`
You should see:
`# We have a conf and classes directory, add to BBPATH`
`BBPATH .= “:${LAYERDIR}”`
`# We have recipes-* directories, add to BBFILES`
`BBFILES += “${LAYERDIR}/recipes-*/*/*.bb \`
`${LAYERDIR}/recipes-*/*/*.bbappend \`
`${LAYERDIR}/recipes-*/*.bb \`
`${LAYERDIR}/recipes-*/*.bbappend ”`
`BBFILE_COLLECTIONS += “test”`
`BBFILE_PATTERN_test = “^${LAYERDIR}/”`
`BBFILE_PRIORITY_test = “1”`
`LAYERVERSION_test = “1”`
2. Create a directory for your recipe, and add a helloworld recipe:
`$ cd ~/poky/meta-test`
`$ mkdir -p recipes-test/helloworld && cd recipes-test/helloworld`
`$ touch helloworld.bb`
Use your newly created recipe to build the helloworld executable:
`$ vi helloworld.bb`
This is an example of a basic recipe. The do\_compile function tells Yocto how to build the executable. The variables CC, CFLAGS, and LDFLAGS are set by Yocto to defaults for the machine that is specified. The do\_install function lays out what directories and files are to be added to the rootfs. The S variable is the location where files are used at build time, and where output binaries will be placed. The SRC\_URI variable is used to define the location of source files before build time.
You should see:
`DESCRIPTION = “Example Hello, World application for Yocto build.”`
`SECTION = “examples”`
`DEPENDS = “”`
`LICENSE = “CLOSED”`
`FILESEXTRAPATHS_prepend := “${THISDIR}/src:”`
`SRC_URI = “file://helloworld.c”`
`S = “${WORKDIR}”`
`do_compile() {`
`${CC} ${CFLAGS} ${LDFLAGS} ${WORKDIR}/helloworld.c -o helloworld`
`}`
`do_install() {`
`# create the /usr/bin folder in the rootfs with default permissions`
`install -d ${D}${bindir}`
`# install the application into the /usr/bin folder with default permissions`
`install ${WORKDIR}/hello ${D}${bindir}`
`}`
3. Add source code for the helloworld recipe to your newly created recipes-test folder:
$ cd \~/poky/meta-test/recipes-test/helloworld
$ mkdir src && cd src
$ touch helloworld.c && vi helloworld.c
\# Include <stdio.h>
int main()
{
printf(“Hello, World!\\n”);
return 0;
};
4. Create a bbappend for the selected image, in order to include the executable in th
DornerWorks
Here's How You Can Build Your Own Custom Linux Distro with Yocto - DornerWorks
Download the latest version of Yocto from the Yocto Project website and get started with these simple instructions.
at image:
`$ cd ~/poky/meta-test && mkdir recipes-images`
`$ cd recipes-images`
`$ touch core-image-minimal.bbappend && vi core-image-minimal.bbappend`
The IMAGE\_INSTALL variable defines which recipes will be used to make up the rootfs of the final image. The helloworld recipe that was created will be appended to the primary list of packages.
You should see:
`IMAGE_INSTALL_append = ” helloworld ”`
5. Add your custom meta-layer to the bblayers.conf file, so that Yocto knows to include it:
`$ cd ~/poky`
Sourcing the oe-init-build-env noscript will setup a new build directory and place default configuration files in the build/conf directory.
`$ source oe-init-build-env build`
The default layer configuration file must be edited to add the newly created meta-layer to the resources for this build.
`$ vi conf/bblayers.conf`
You should see:
`BBLAYERS = ” \`
`…`
`~/poky/meta-test \`
`”`
6. Build the chosen image by executing the bitbake command in the shell from the build directory.
`$ bitbake core-image-minimal`
The helloworld executable will now be included in the rootfs of the image.
### Including a shared header file
There are many instances where you may wish to include a shared header file in the rootfs of an image. If a library is being written that will be utilized by more than one application it can easily be included alongside other standard Linux headers using the following steps.
1. Add the source code for the header file to your meta-layer:
`$ cd ~/poky/meta-test/recipes-test/helloworld/src && touch helloworld.h`
`$ vi helloworld.h`
You should see:
`#Include <stdio.h>`
`int helloworld(void)`
`{`
`printf(“Hello, World!\n”);`
`return 0;`
`}`
2. Edit your recipe to include the header file in the rootfs:
`$ vi ~/poky/meta-test/recipes-test/helloworld/helloworld.bb`
You should see:
`DESCRIPTION = “Example Hello, World application for Yocto build.”`
`SECTION = “examples”`
`DEPENDS = “”`
`LICENSE = “CLOSED”`
`FILESEXTRAPATHS_prepend := “${THISDIR}/src:”`
`SRC_URI = “file://helloworld.c \`
`helloworld.h”`
`S = “${WORKDIR}”`
`do_compile() {`
`${CC} ${CFLAGS} ${LDFLAGS} ${WORKDIR}/helloworld.c -o helloworld`
`}`
`do_install() {`
`# create the /usr/bin folder in the rootfs give it default permissions`
`install -d ${D}${bindir}`
`# add the /usr/include folder to the sysroot for this recipe, to be`
`# added to the final rootfs`
`install -d ${D}${includedir}`
`# install the application into the /usr/bin folder`
`install ${S}/hello ${D}${bindir}`
`# install the header file in /usr/include with default permissions`
`install ${S}hello.h ${D}${includedir}`
`}`
3. The image append must also be edited. Header files are not considered normal packages; Yocto defines them as development packages. We must also include the development version of our recipe.
`$ vi ~/poky/meta-test/recipes-images/core-image-minimal.bbappend“\``
You should see:
`IMAGE_INSTALL_append = ” helloworld \`
`helloworld-dev”`
The header file should now be included in the /usr/include directory with the rest of the Linux headers.
### Include a prebuilt shared library
It is frequently helpful to include prebuilt libraries in the rootfs of an image. These prebuilt libraries take the form of .so files located in /usr/lib, they allow for other applications to easily link against them. The helloworld application that we have been using can be repurposed to be included as a library, using the process laid out in the [**Yocto Project Wiki**](https://wiki.yoctoproject.org/wiki/TipsAndTricks/Packaging_Prebuilt_Libraries).
1. Edit the recipe to include the application as a library instead of an executable. There are a few things to make note of in this recipe.
* Bitbake provides a function to include libraries called “oe\_soinstall.” It has been used here, in favor of the normal install function.
* A QA error will be thrown if you attempt to include a non-versioned library, therefore this library has been built with the version of the recipe attached, as libhelloworld.so.${PV}.
* The PV variabl
`$ cd ~/poky/meta-test && mkdir recipes-images`
`$ cd recipes-images`
`$ touch core-image-minimal.bbappend && vi core-image-minimal.bbappend`
The IMAGE\_INSTALL variable defines which recipes will be used to make up the rootfs of the final image. The helloworld recipe that was created will be appended to the primary list of packages.
You should see:
`IMAGE_INSTALL_append = ” helloworld ”`
5. Add your custom meta-layer to the bblayers.conf file, so that Yocto knows to include it:
`$ cd ~/poky`
Sourcing the oe-init-build-env noscript will setup a new build directory and place default configuration files in the build/conf directory.
`$ source oe-init-build-env build`
The default layer configuration file must be edited to add the newly created meta-layer to the resources for this build.
`$ vi conf/bblayers.conf`
You should see:
`BBLAYERS = ” \`
`…`
`~/poky/meta-test \`
`”`
6. Build the chosen image by executing the bitbake command in the shell from the build directory.
`$ bitbake core-image-minimal`
The helloworld executable will now be included in the rootfs of the image.
### Including a shared header file
There are many instances where you may wish to include a shared header file in the rootfs of an image. If a library is being written that will be utilized by more than one application it can easily be included alongside other standard Linux headers using the following steps.
1. Add the source code for the header file to your meta-layer:
`$ cd ~/poky/meta-test/recipes-test/helloworld/src && touch helloworld.h`
`$ vi helloworld.h`
You should see:
`#Include <stdio.h>`
`int helloworld(void)`
`{`
`printf(“Hello, World!\n”);`
`return 0;`
`}`
2. Edit your recipe to include the header file in the rootfs:
`$ vi ~/poky/meta-test/recipes-test/helloworld/helloworld.bb`
You should see:
`DESCRIPTION = “Example Hello, World application for Yocto build.”`
`SECTION = “examples”`
`DEPENDS = “”`
`LICENSE = “CLOSED”`
`FILESEXTRAPATHS_prepend := “${THISDIR}/src:”`
`SRC_URI = “file://helloworld.c \`
`helloworld.h”`
`S = “${WORKDIR}”`
`do_compile() {`
`${CC} ${CFLAGS} ${LDFLAGS} ${WORKDIR}/helloworld.c -o helloworld`
`}`
`do_install() {`
`# create the /usr/bin folder in the rootfs give it default permissions`
`install -d ${D}${bindir}`
`# add the /usr/include folder to the sysroot for this recipe, to be`
`# added to the final rootfs`
`install -d ${D}${includedir}`
`# install the application into the /usr/bin folder`
`install ${S}/hello ${D}${bindir}`
`# install the header file in /usr/include with default permissions`
`install ${S}hello.h ${D}${includedir}`
`}`
3. The image append must also be edited. Header files are not considered normal packages; Yocto defines them as development packages. We must also include the development version of our recipe.
`$ vi ~/poky/meta-test/recipes-images/core-image-minimal.bbappend“\``
You should see:
`IMAGE_INSTALL_append = ” helloworld \`
`helloworld-dev”`
The header file should now be included in the /usr/include directory with the rest of the Linux headers.
### Include a prebuilt shared library
It is frequently helpful to include prebuilt libraries in the rootfs of an image. These prebuilt libraries take the form of .so files located in /usr/lib, they allow for other applications to easily link against them. The helloworld application that we have been using can be repurposed to be included as a library, using the process laid out in the [**Yocto Project Wiki**](https://wiki.yoctoproject.org/wiki/TipsAndTricks/Packaging_Prebuilt_Libraries).
1. Edit the recipe to include the application as a library instead of an executable. There are a few things to make note of in this recipe.
* Bitbake provides a function to include libraries called “oe\_soinstall.” It has been used here, in favor of the normal install function.
* A QA error will be thrown if you attempt to include a non-versioned library, therefore this library has been built with the version of the recipe attached, as libhelloworld.so.${PV}.
* The PV variabl
e contains the package version. If it is not defined in the recipe, it defaults to 1.0.
* Yocto requires that the ELF tag SONAME must be included in the library when it is built, thus, the flag “-Wl,-soname,libhelloworld.so.${PV}” has been added to the do\_compile step.
`DESCRIPTION = “Example Hello, World application for Yocto build.”`
`SECTION = “examples”`
`DEPENDS = “”`
`LICENSE = “CLOSED”`
`FILESEXTRAPATHS_prepend := “${THISDIR}/src:”`
`SRC_URI = “file://helloworld.c”`
`S = “${WORKDIR}”`
`do_compile() {`
`${CC} ${CFLAGS} ${LDFLAGS} -shared -fPIC -Wl,-soname,libhelloworld.so.${PV} \`
`${WORKDIR}/helloworld.c -o libhelloworld.so.${PV}`
`}`
`do_install() {`
`# add the /usr/lib folder to the sysroot for this recipe, to be`
`# added to the final rootfs`
`install -d ${D}${libdir}`
`# install the prebuilt library in /usr/lib with default permissions`
`oe_soinstall ${S}/libhelloworld.so.${PV} ${D}${libdir}`
`}`
2. Bitbake the recipe. Shared libraries are also considered development packages,so ensure that “helloworld-dev” remains in the IMAGE\_INSTALL variable in your bbappend.
`$ bitbake core-image-minimal`
### Conclusion
The recipe examples here should allow [any user to include custom applications in multiple ways](https://dornerworks.com/blog/including-custom-executables-and-libraries-in-your-linux-image-with-yocto). These instructions will allow you to improve your Yocto recipes by giving you the tools to include custom applications and libraries easily.
https://redd.it/cjcq4v
@r_linux
* Yocto requires that the ELF tag SONAME must be included in the library when it is built, thus, the flag “-Wl,-soname,libhelloworld.so.${PV}” has been added to the do\_compile step.
`DESCRIPTION = “Example Hello, World application for Yocto build.”`
`SECTION = “examples”`
`DEPENDS = “”`
`LICENSE = “CLOSED”`
`FILESEXTRAPATHS_prepend := “${THISDIR}/src:”`
`SRC_URI = “file://helloworld.c”`
`S = “${WORKDIR}”`
`do_compile() {`
`${CC} ${CFLAGS} ${LDFLAGS} -shared -fPIC -Wl,-soname,libhelloworld.so.${PV} \`
`${WORKDIR}/helloworld.c -o libhelloworld.so.${PV}`
`}`
`do_install() {`
`# add the /usr/lib folder to the sysroot for this recipe, to be`
`# added to the final rootfs`
`install -d ${D}${libdir}`
`# install the prebuilt library in /usr/lib with default permissions`
`oe_soinstall ${S}/libhelloworld.so.${PV} ${D}${libdir}`
`}`
2. Bitbake the recipe. Shared libraries are also considered development packages,so ensure that “helloworld-dev” remains in the IMAGE\_INSTALL variable in your bbappend.
`$ bitbake core-image-minimal`
### Conclusion
The recipe examples here should allow [any user to include custom applications in multiple ways](https://dornerworks.com/blog/including-custom-executables-and-libraries-in-your-linux-image-with-yocto). These instructions will allow you to improve your Yocto recipes by giving you the tools to include custom applications and libraries easily.
https://redd.it/cjcq4v
@r_linux
DornerWorks
Including Custom Executables and Libraries in Your Embedded Linux Image with Yocto - DornerWorks
Yocto enables building an embedded Linux distribution with virtually any combination of packages in the root filesystem, and here's how you can customize your own image.
Help Workspaces switcher Manjaro 18 KDE!
Installed fresh Manjaro 18 with KDE on my XPS 13, everything runs very well, except for this: when i try to switch to another workspace through the touchpad, the scrolling looks buggy and i can't switch properly to my new workspace! WTF, How can i solve this?
https://reddit.com/link/cjfe9l/video/topgwlp0dad31/player
https://redd.it/cjfe9l
@r_linux
Installed fresh Manjaro 18 with KDE on my XPS 13, everything runs very well, except for this: when i try to switch to another workspace through the touchpad, the scrolling looks buggy and i can't switch properly to my new workspace! WTF, How can i solve this?
https://reddit.com/link/cjfe9l/video/topgwlp0dad31/player
https://redd.it/cjfe9l
@r_linux
reddit
r/linux - Help Workspaces switcher Manjaro 18 KDE!
0 votes and 0 comments so far on Reddit