Date   

[patchtest][PATCH 1/2] README: Update maintainers

 

Signed-off-by: Paul Barker <pbarker@konsulko.com>
---
README | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/README b/README
index b87eeb4..0a429f8 100644
--- a/README
+++ b/README
@@ -40,8 +40,7 @@ Maintenance
-----------

Maintainers:
- Leo Sandoval <leonardo.sandoval.gonzalez@linux.intel.com>
- Paul "bluelightning" Eggleton <paul.eggleton@linux.intel.com>
+ Paul Barker <pbarker@konsulko.com>

Links
-----
--
2.25.0


patchtest licensing

 

Hey folks,

I've started looking through patchtest & patchtest-oe in detail and
spotted that all the scripts, support code and test cases are licensed
under GPLv2. Is that ok given that we plan to copy this into
openembedded-core (probably under meta/lib/oeqa)? Is there any
practical effect of this not being MIT licensed?

Thanks,
Paul


Re: #yocto bootchooser: Cannot get state 'state' #yocto

Hans-Ulrich Schlieben
 

Hi Enrico,

thank you for your help and for telling me about fdtdump. Works great.
I could not find any references to state in the device tree.
There where no references to state and bootchooser in the devicetree.
The only references to barebox are two addresses inside the nand:
gpmi-nand@00112000 {
...
partition@0 {
label = "barebox";
reg = <0x00000000 0x00400000>;
};
partition@1 {
label = "barebox-environment";
reg = <0x00400000 0x00100000>;
};
...
And there is a eeprom entry:
i2c@021a8000 {
...
eeprom@50 {
compatible = "atmel,24c32";
reg = <0x00000050>;
};
Where to look for state in the devicetree?
Anyhow I compiled a zeus image using the old barebox version 2017.12.0 and bootchooser works again with zeus.
Interesting is that ubi fails too like in thud. So it seems as long as ubi fails state could be used or the other way around.

Here the zeus logs:
------------------------------------------------------------------------------------------
barebox 2017.12.0 #1 Wed Jan 15 16:36:29 UTC 2020


Board: Phytec phyCORE-i.MX6 Quad with NAND
detected i.MX6 Quad revision 1.5
i.MX6 unique ID: ee803c540f2359d4
mdio_bus: miibus0: probed
eth0: got preset MAC address: 50:2d:f4:1b:af:b1
nand: ONFI flash detected
nand: NAND device: Manufacturer ID: 0xef, Chip ID: 0xd3 (Winbond W29N08GV), 1024MiB, page size: 2048, OOB size: 64
Bad block table found at page 524224, version 0x01
Bad block table found at page 524160, version 0x01
m25p80 flash@00: n25q128a13 (16384 Kbytes)
imx-usb 2184200.usb: USB EHCI 1.00
imx-esdhc 2190000.usdhc: registered as 2190000.usdhc
da9063 da90620: da9062 with id 62.22.ff.1a detected
state: New state registered 'state'
state: Using bucket 0@0x00000000
netconsole: registered as netconsole-1
phySOM-i.MX6: Using environment in MMC
malloc space: 0x2fefb480 -> 0x4fdf68ff (size 511 MiB)
mmc0: detected SD card version 2.0
mmc0: registered mmc0
envfs: no envfs (magic mismatch) - envfs never written?
running /env/bin/init...

Hit m for menu or any other key to stop autoboot: 0
testing for update
ubi0: scanning is finished
ubi0 error: ubi_read_volume_table: the layout volume was not found
ubi0 error: ubi_attach_mtd_dev: failed to attach mtd0, error -22
failed to attach: Invalid argument
updating kernel
open volume: No such file or directory
updating oftree
open volume: No such file or directory
booting 'bootchooser'
booting 'mmc'
-----------------------------------------------------------------------------------
barebox 2019.01.0 #1 Thu Jan 16 12:17:51 UTC 2020


Board: Phytec phyCORE-i.MX6 Quad with NAND detected i.MX6 Quad revision 1.5 i.MX reset reason POR (SRSR: 0x00000001)
i.MX6 Quad unique ID: ee803c540f2359d4
mdio_bus: miibus0: probed
eth0: got preset MAC address: 50:2d:f4:1b:af:b1
nand: ONFI flash detected
nand: NAND device: Manufacturer ID: 0xef, Chip ID: 0xd3 (Winbond W29N08GV), 1024MiB, page size: 2048, OOB size: 64 Bad block table found at page 524224, version 0x01 Bad block table found at page 524160, version 0x01
m25p80 flash@00: n25q128a13 (16384 Kbytes) imx-usb 2184200.usb@2184200.of: USB EHCI 1.00 imx-esdhc 2190000.usdhc@2190000.of: registered as mmc0
imx-ipuv3 2400000.ipu@2400000.of: IPUv3H probed
imx-ipuv3 2800000.ipu@2800000.of: IPUv3H probed
da9063 da90620: da9062 with id 62.22.ff.1a detected
netconsole: registered as netconsole-1
phySOM-i.MX6: Using environment in MMC
malloc space: 0x2fe7b860 -> 0x4fcf70bf (size 510.5 MiB)
mmc0: detected SD card version 2.0
mmc0: registered mmc0
envfs: no envfs (magic mismatch) - envfs never written?
running /env/bin/init...

Hit m for menu or any other key to stop autoboot: 0
testing for update
ubi0: scanning is finished
ubi0: registering /dev/nand0.root.ubi
ubi0: attached mtd0 (name "nand0.root", size 1019 MiB) to ubi0
ubi0: PEB size: 131072 bytes (128 KiB), LEB size: 126976 bytes
ubi0: min./max. I/O unit sizes: 2048/2048, sub-page size 2048
ubi0: VID header offset: 2048 (aligned 2048), data offset: 4096
ubi0: good PEBs: 8148, bad PEBs: 4, corrupted PEBs: 0
ubi0: user volume: 0, internal volumes: 1, max. volumes count: 128
ubi0: max/mean erase counter: 1/1, WL threshold: 65536, image sequence number: 1694817280
ubi0: available PEBs: 7986, total reserved PEBs: 162, PEBs reserved for bad PEB handling: 156 updating kernel open volume: No such file or directory updating oftree open volume: No such file or directory
bootchooser: Cannot get state 'state'
Nothing bootable found on 'bootchooser'
Nothing bootable found
-----------------------------------------------------------------------------------

-----Original Message-----
From: Enrico Joerns <ejo@pengutronix.de>
Sent: Wednesday, 15 January 2020 15:48
To: Hans-Ulrich Schlieben <hu.schlieben@codewrights.de>
Cc: barebox@lists.infradead.org; yocto@lists.yoctoproject.org; Ahmad Fatoum <a.fatoum@pengutronix.de>
Subject: Re: [yocto] #yocto bootchooser: Cannot get state 'state'

On Wed, 2020-01-15 at 15:36 +0100, Ahmad Fatoum wrote:
Hello Hans-Ulrich,

On 1/15/20 3:25 PM, Hans-Ulrich Schlieben wrote:
Can you copy the device tree snippet you use for defining state?
Is there a problem because ubi works now and garbles the data in the flash?

What does running the state command say?
barebox@Phytec phyCORE-i.MX6 Quad with NAND:/ state registered state
instances:

is empty in zeus, whereas thud returned: (backend: raw, path:
/dev/eeprom0.update-eeprom)
The difference between 'zeus' and 'thud' is mainly the barebox version that you get from the meta-phytec layer.

We had some changes in requirements for the state node alias within the two year, but unsure if that hits you.

Note that you can find the build dtb in your BSP's deploy dir. You could run

fdtdump tmp/deploy/images/<machine>/<name-of-dtb>.dtb

to dump it.


Regards, Enrico

According to the state command output under thud, your state is stored
on the EEPROM, not the NAND. Look for update-eeprom in your device tree.
There should also be an /dev/eeprom0.update-eeprom in barebox.
if not, try executing the drvinfo command and see if the driver has
probed the EEPROM.

Can you also paste the full barebox output from power-on till failure?

Your board should boot normally with upstream barebox, I think.
Can you try and see if v2020.01.0 suffers from the same problem?

Cheers
Ahmad


Thank you and Regards

hu


-----Original Message-----
From: Ahmad Fatoum <a.fatoum@pengutronix.de>
Sent: Wednesday, 15 January 2020 14:40
To: Hans-Ulrich Schlieben <hu.schlieben@codewrights.de>; Enrico
Joerns <ejo@pengutronix.de>; yocto@lists.yoctoproject.org
Cc: barebox@lists.infradead.org
Subject: Re: [yocto] #yocto bootchooser: Cannot get state 'state'

On 1/15/20 2:26 PM, Hans-Ulrich Schlieben wrote:
Hi Enrico,

thank you very much for your help.
I'm using barebox_2019.01.0-phy4-r7.0 now. In thud I used
barebox_2017.12.0 The image is built using my own ims layer which
depends on core-image-minimal LAYERDEPENDS_ims-layer = "core-image-minimal openembedded-layer phytec-layer"
Its using the meta-phytec Layer and a custom layer from phytec named meta-ksp0663.
Forgot to mention that rauc is used too, which moved from 1.1 to now 1.2.
Just changed the LAYERSERIES_COMPAT to "zeus" here to check whether yocto zeus works.

Is there some info what to change in the devicetree and so on when moving to warrior/zeus?
In thud this worked.
Are there any other error messages?
Can you copy the device tree snippet you use for defining state?
What does running the state command say?

(now again, but with CC-list intact)


Thank you
Regards

hu

-----Original Message-----
From: Enrico Joerns <ejo@pengutronix.de>
Sent: Wednesday, 15 January 2020 14:03
To: Hans-Ulrich Schlieben <hu.schlieben@codewrights.de>;
yocto@lists.yoctoproject.org
Cc: barebox@lists.infradead.org
Subject: Re: [yocto] #yocto bootchooser: Cannot get state 'state'

Hi,

this is mainly a barebox-related question, thus I'd suggest asking it on the barebox ML.

[cc-ing barebox mailing list]

On Wed, 2020-01-15 at 04:10 -0800, hu.schlieben@codewrights.de wrote:
Hi,

booting the new yocto zeus system manually by "boot mmc" works
fine but default bootchooser fails with:

bootchooser: Cannot get state 'state'
Nothing bootable found on 'bootchooser'
Nothing bootable found
Looks like the state node is missing in your device tree.
Which version of barebox do you use?
And from which layer / recipe?

Building the "same" image in yocto thud works fine. The boot
variables
are:

* BOOT_system0_.default: 3
* BOOT_system1_.default: 3
* allow_color: 0
* autoboot_timeout: 3
* boot.default: bootchooser
boot.watchdog_timeout: 0
bootchooser.default_attempts: 3
bootchooser.default_priority: 1
bootchooser.disable_on_zero_attempts: 0
bootchooser.reset_attempts: (list: "power-on", "all-zero")
bootchooser.reset_priorities:
bootchooser.retry: 0
* bootchooser.state_prefix: state.bootstate
* bootchooser.system0.boot: mmc
* bootchooser.system0.default_attempts: 3
* bootchooser.system0.default_priority: 20
* bootchooser.system1.boot: mmc1
* bootchooser.system1.default_attempts: 3
* bootchooser.system1.default_priority: 21
* bootchooser.targets: system0 system1
bootm.appendroot: 0
...
Regards, Enrico
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
https://eur04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fl
ists
.infradead.org%2Fmailman%2Flistinfo%2Fbarebox&amp;data=01%7C01%7Ch
u.sc
hlieben%40codewrights.de%7Cb6b1eddf633845b6004308d799c06b3c%7C0974
af9b
352b437cb606e9f242c0c227%7C0&amp;sdata=xYCzF1pdhTQArF5%2BHffieEkHN
mdqX
w%2BVo2EFWg%2FKOHY%3D&amp;reserved=0
--
Pengutronix e.K. | Enrico Jörns |
Embedded Linux Consulting & Support | Team Lead Integration |
Steuerwalder Str. 21 | https://eur04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.pengutronix.de&;data=01%7C01%7Chu.schlieben%40codewrights.de%7C7bea6efe1782401bc43f08d799c9e2c8%7C0974af9b352b437cb606e9f242c0c227%7C0&amp;sdata=rPKoAb3cJyvDjdw7Fh9Z6RH2y1Oa2kagXFob7UJNswk%3D&amp;reserved=0 |
31137 Hildesheim, Germany | Phone: +49-5121-206917-5080 |


Re: #yocto bootchooser: Cannot get state 'state' #yocto

Hans-Ulrich Schlieben
 

Hi Ahmad,

Thanks to your Mail I tested with barebox_2017.12.0-phy6.bb (thud used barebox_2017.12.0-phy4.bb) and this works in zeus too.

According to the state command output under thud, your state is stored on the EEPROM, not the NAND. Look for update-eeprom in your device tree.
There should also be an /dev/eeprom0.update-eeprom in barebox.
That seems right, when working the eeprom is written to on each boot.
But I could not find any references to *eep* inside barebox in any layer.

if not, try executing the drvinfo command and see if the driver has probed the EEPROM.
Can you also paste the full barebox output from power-on till failure?
Here is the zeus from start:
barebox 2019.01.0 #1 Thu Jan 16 12:17:51 UTC 2020


Board: Phytec phyCORE-i.MX6 Quad with NAND detected i.MX6 Quad revision 1.5 i.MX reset reason POR (SRSR: 0x00000001)
i.MX6 Quad unique ID: ee803c540f2359d4
mdio_bus: miibus0: probed
eth0: got preset MAC address: 50:2d:f4:1b:af:b1
nand: ONFI flash detected
nand: NAND device: Manufacturer ID: 0xef, Chip ID: 0xd3 (Winbond W29N08GV), 1024MiB, page size: 2048, OOB size: 64 Bad block table found at page 524224, version 0x01 Bad block table found at page 524160, version 0x01
m25p80 flash@00: n25q128a13 (16384 Kbytes) imx-usb 2184200.usb@2184200.of: USB EHCI 1.00 imx-esdhc 2190000.usdhc@2190000.of: registered as mmc0
imx-ipuv3 2400000.ipu@2400000.of: IPUv3H probed
imx-ipuv3 2800000.ipu@2800000.of: IPUv3H probed
da9063 da90620: da9062 with id 62.22.ff.1a detected
netconsole: registered as netconsole-1
phySOM-i.MX6: Using environment in MMC
malloc space: 0x2fe7b860 -> 0x4fcf70bf (size 510.5 MiB)
mmc0: detected SD card version 2.0
mmc0: registered mmc0
envfs: no envfs (magic mismatch) - envfs never written?
running /env/bin/init...

Hit m for menu or any other key to stop autoboot: 0
testing for update
ubi0: scanning is finished
ubi0: registering /dev/nand0.root.ubi
ubi0: attached mtd0 (name "nand0.root", size 1019 MiB) to ubi0
ubi0: PEB size: 131072 bytes (128 KiB), LEB size: 126976 bytes
ubi0: min./max. I/O unit sizes: 2048/2048, sub-page size 2048
ubi0: VID header offset: 2048 (aligned 2048), data offset: 4096
ubi0: good PEBs: 8148, bad PEBs: 4, corrupted PEBs: 0
ubi0: user volume: 0, internal volumes: 1, max. volumes count: 128
ubi0: max/mean erase counter: 1/1, WL threshold: 65536, image sequence number: 1694817280
ubi0: available PEBs: 7986, total reserved PEBs: 162, PEBs reserved for bad PEB handling: 156 updating kernel open volume: No such file or directory updating oftree open volume: No such file or directory
bootchooser: Cannot get state 'state'
Nothing bootable found on 'bootchooser'
Nothing bootable found

Booting zeus with barebox 2017 it works and looks like that:
barebox 2017.12.0 #1 Wed Jan 15 16:36:29 UTC 2020


Board: Phytec phyCORE-i.MX6 Quad with NAND detected i.MX6 Quad revision 1.5
i.MX6 unique ID: ee803c540f2359d4
mdio_bus: miibus0: probed
eth0: got preset MAC address: 50:2d:f4:1b:af:b1
nand: ONFI flash detected
nand: NAND device: Manufacturer ID: 0xef, Chip ID: 0xd3 (Winbond W29N08GV), 1024MiB, page size: 2048, OOB size: 64 Bad block table found at page 524224, version 0x01 Bad block table found at page 524160, version 0x01
m25p80 flash@00: n25q128a13 (16384 Kbytes) imx-usb 2184200.usb: USB EHCI 1.00 imx-esdhc 2190000.usdhc: registered as 2190000.usdhc
da9063 da90620: da9062 with id 62.22.ff.1a detected
state: New state registered 'state'
state: Using bucket 0@0x00000000
netconsole: registered as netconsole-1
phySOM-i.MX6: Using environment in MMC
malloc space: 0x2fefb480 -> 0x4fdf68ff (size 511 MiB)
mmc0: detected SD card version 2.0
mmc0: registered mmc0
envfs: no envfs (magic mismatch) - envfs never written?
running /env/bin/init...

Hit m for menu or any other key to stop autoboot: 0
testing for update
ubi0: scanning is finished
ubi0 error: ubi_read_volume_table: the layout volume was not found
ubi0 error: ubi_attach_mtd_dev: failed to attach mtd0, error -22 failed to attach: Invalid argument updating kernel open volume: No such file or directory updating oftree open volume: No such file or directory booting 'bootchooser'
booting 'mmc'

So the lines
state: New state registered 'state'
state: Using bucket 0@0x00000000
are missing in barebox 2019.

Your board should boot normally with upstream barebox, I think.
Can you try and see if v2020.01.0 suffers from the same problem?
I do not know yet how to include an upstream package like barebox 2020.01.0. Do I have to rename the old recipe or download the recipe somewhere?

Thank you and Best Regards

hu

-----Original Message-----
From: Ahmad Fatoum <a.fatoum@pengutronix.de>
Sent: Wednesday, 15 January 2020 15:37
To: Hans-Ulrich Schlieben <hu.schlieben@codewrights.de>; Enrico Joerns <ejo@pengutronix.de>; yocto@lists.yoctoproject.org
Cc: barebox@lists.infradead.org
Subject: Re: [yocto] #yocto bootchooser: Cannot get state 'state'

Hello Hans-Ulrich,

On 1/15/20 3:25 PM, Hans-Ulrich Schlieben wrote:
Can you copy the device tree snippet you use for defining state?
Is there a problem because ubi works now and garbles the data in the flash?

What does running the state command say?
barebox@Phytec phyCORE-i.MX6 Quad with NAND:/ state registered state
instances:

is empty in zeus, whereas thud returned: (backend: raw, path:
/dev/eeprom0.update-eeprom)
According to the state command output under thud, your state is stored on the EEPROM, not the NAND. Look for update-eeprom in your device tree.
There should also be an /dev/eeprom0.update-eeprom in barebox.
if not, try executing the drvinfo command and see if the driver has probed the EEPROM.

Can you also paste the full barebox output from power-on till failure?

Your board should boot normally with upstream barebox, I think.
Can you try and see if v2020.01.0 suffers from the same problem?

Cheers
Ahmad


Thank you and Regards

hu


-----Original Message-----
From: Ahmad Fatoum <a.fatoum@pengutronix.de>
Sent: Wednesday, 15 January 2020 14:40
To: Hans-Ulrich Schlieben <hu.schlieben@codewrights.de>; Enrico Joerns
<ejo@pengutronix.de>; yocto@lists.yoctoproject.org
Cc: barebox@lists.infradead.org
Subject: Re: [yocto] #yocto bootchooser: Cannot get state 'state'

On 1/15/20 2:26 PM, Hans-Ulrich Schlieben wrote:
Hi Enrico,

thank you very much for your help.
I'm using barebox_2019.01.0-phy4-r7.0 now. In thud I used
barebox_2017.12.0 The image is built using my own ims layer which
depends on core-image-minimal LAYERDEPENDS_ims-layer = "core-image-minimal openembedded-layer phytec-layer"
Its using the meta-phytec Layer and a custom layer from phytec named meta-ksp0663.
Forgot to mention that rauc is used too, which moved from 1.1 to now 1.2.
Just changed the LAYERSERIES_COMPAT to "zeus" here to check whether yocto zeus works.

Is there some info what to change in the devicetree and so on when moving to warrior/zeus?
In thud this worked.
Are there any other error messages?
Can you copy the device tree snippet you use for defining state?
What does running the state command say?

(now again, but with CC-list intact)


Thank you
Regards

hu

-----Original Message-----
From: Enrico Joerns <ejo@pengutronix.de>
Sent: Wednesday, 15 January 2020 14:03
To: Hans-Ulrich Schlieben <hu.schlieben@codewrights.de>;
yocto@lists.yoctoproject.org
Cc: barebox@lists.infradead.org
Subject: Re: [yocto] #yocto bootchooser: Cannot get state 'state'

Hi,

this is mainly a barebox-related question, thus I'd suggest asking it on the barebox ML.

[cc-ing barebox mailing list]

On Wed, 2020-01-15 at 04:10 -0800, hu.schlieben@codewrights.de wrote:
Hi,

booting the new yocto zeus system manually by "boot mmc" works fine
but default bootchooser fails with:

bootchooser: Cannot get state 'state'
Nothing bootable found on 'bootchooser'
Nothing bootable found
Looks like the state node is missing in your device tree.
Which version of barebox do you use?
And from which layer / recipe?

Building the "same" image in yocto thud works fine. The boot
variables
are:

* BOOT_system0_.default: 3
* BOOT_system1_.default: 3
* allow_color: 0
* autoboot_timeout: 3
* boot.default: bootchooser
boot.watchdog_timeout: 0
bootchooser.default_attempts: 3
bootchooser.default_priority: 1
bootchooser.disable_on_zero_attempts: 0
bootchooser.reset_attempts: (list: "power-on", "all-zero")
bootchooser.reset_priorities:
bootchooser.retry: 0
* bootchooser.state_prefix: state.bootstate
* bootchooser.system0.boot: mmc
* bootchooser.system0.default_attempts: 3
* bootchooser.system0.default_priority: 20
* bootchooser.system1.boot: mmc1
* bootchooser.system1.default_attempts: 3
* bootchooser.system1.default_priority: 21
* bootchooser.targets: system0 system1
bootm.appendroot: 0
...
Regards, Enrico
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
https://eur04.safelinks.protection.outlook.com/?url=http%3A%2F%2Flist
s
.infradead.org%2Fmailman%2Flistinfo%2Fbarebox&amp;data=01%7C01%7Chu.s
c
hlieben%40codewrights.de%7Cb6b1eddf633845b6004308d799c06b3c%7C0974af9
b
352b437cb606e9f242c0c227%7C0&amp;sdata=xYCzF1pdhTQArF5%2BHffieEkHNmdq
X
w%2BVo2EFWg%2FKOHY%3D&amp;reserved=0
--
Pengutronix e.K. | |
Steuerwalder Str. 21 | https://eur04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.pengutronix.de%2F&;data=01%7C01%7Chu.schlieben%40codewrights.de%7C1257571ee267439a5d2408d799c85393%7C0974af9b352b437cb606e9f242c0c227%7C0&amp;sdata=Z5c4T%2B5MOf1cbFRbqkbdCRgDp2lhJZPWzV9gf3sTDp4%3D&amp;reserved=0 |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |


Re: Trouble building mono (when building an image)

Pelle Windestam
 

Just a quick thing for you to try: can you delete /usr/bin/monodis from your host and retry building? (remember to
clean sstate for your package)
It seems like I do not have a /usr/bin/monodis on my host, unfortunately.


#sdk #sdk

Mariusz Madej
 

Hello, I work on Yocto warrior branch. I use debian buster. I built extensible SDK for my image and wanted to install it. Build passes without any problem but at the end of installation process i got following messages:

SDK environment now set up; additionally you may now run devtool to perform development tasks.
Run devtool --help for further details.
(SDKROOT)/sysroots/x86_64-pokysdk-linux/usr/bin/python3: line 5: (SDKROOT)/sysroots/x86_64-pokysdk-linux/usr/bin/python3.7.real: No such file or directory
post-relocate command "(SDKROOT)/sysroots/x86_64-pokysdk-linux/post-relocate-setup.d/meson-setup.py (SDKROOT)" failed with status 127
SDK has been successfully set up and is ready to be used.
Each time you wish to use the SDK in a new shell session, you need to source the environment setup script e.g.

In spite of fact there is information that SDK is successfully set up it does not work and after loading environment devtool command output is:

$ devtool
(SDKROOT)/sysroots/x86_64-pokysdk-linux/usr/bin/python3: line 5: (SDKROOT)/sysroots/x86_64-pokysdk-linux/usr/bin/python3.7.real

To analyze the problem I also run:

$ file (SDKROOT)/sysroots/x86_64-pokysdk-linux/usr/bin/python3.7.real
(SDKROOT)/sysroots/x86_64-pokysdk-linux/usr/bin/python3.7.real: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /opt/smart-recovery/2.7.2/sysroots/x86_64-pokysdk-linux/lib/ld-linux-x86-64.so.2, BuildID[sha1]=bc0bda633e50a52d06a027cc21707a0be0341f64, for GNU/Linux 3.2.0, stripped

The problem is that interpreter file does not exist and this is probably caused by problem which occured at installation process. Is the problem known to anyone?


Re: Trouble building mono (when building an image)

Alexander Kanavin
 

Just a quick thing for you to try: can you delete /usr/bin/monodis from your host and retry building? (remember to clean sstate for your package)

Alex


On Thu, 16 Jan 2020 at 14:10, <pelle.windestam@...> wrote:
I'm trying to include mono in my image. I can successfully build the mono recipe by itself, but when I try to build my image it fails with the following error message:
Error:
 Problem: package test-sw-9.1.1b3-r0.aarch64 requires mono, but none of the providers can be installed
  - conflicting requests
  - nothing provides mono-gac needed by mono-5.12.0.226-r0.aarch64

This is a bit confusing since:
a) I can build mono by itself
b) the mono recipe should provide the mono-gac package

If I run 'bitbake -e mono | grep PACKAGES' I get the output:
PACKAGES="mono-dbg mono-doc mono-staticdev mono-locale mono-libs mono-dev  mono-config mono-binaries mono-libs-core  mono-libs-2.0 mono-libs-3.5 mono-libs-4.0 mono-libs-4.5  mono-api-4.5.1 mono-api-4.5.2 mono-api-4.6 mono-api-4.6.1 mono-api-4.6.2 mono-api-4.7  mono-libs-compat-2.0 mono-gac mono-configuration-crypto  mono-libs-monodoc mono-xbuild  mono-lldb  mono  mono-profiler "
PACKAGESPLITFUNCS="                 package_do_split_locales                 populate_packages"
PACKAGES_DYNAMIC="^mono-locale-.*"

So it would seem that bitbake agrees that mono provides mono-gac. The recipe for test-sw is a binary package, and depends on mono via:
RDEPENDS_${PN} = " \
  ...
  mono \
"
I am quite new to Yocto, so it could be something very basic that I am missing. I can actually build the image on my regular development machine, but when setting up the build on a second machine I started getting this error. I have verified that the new machine is using the same revisions of all layers, and there is nothing funny in the local.conf on my dev-machine. Any tips on what could be wrong would be most welcome!

I am using the Sumo release of Yocto.

Thanks,
Pelle







[yocto-kernel-tools][PATCH] tools: Provide merge_config.py alternative to merge_config.sh

Nikolay Merinov
 

The merge_config.py script is fully compatible by command line options with
merge_config.sh script and provide better performance and solve several issues
that present in the merge_config.sh script.

Improvements comparing with merge_config.sh:

1. Preformance was greatly improved:

let start=0 end=100
for file in `seq 10`; do
for n in `seq $start $end`; do
echo "CONFIG_X$n=$file" >> $file.cfg
done
let start+=100 end+=100
done

time merge_config.sh -m *.cfg # Takes 15.3 seconds
time merge_config.py -m *.cfg # Takes 0.03 seconds

2. merge_config.sh produce false positive warnings when config name used
as config value:

$ echo 'CONFIG_NAME="CONFIG_OTHER"' > 1.cfg
$ echo 'CONFIG_OTHER="value"' > 2.cfg
$ merge_config.sh -m 1.cfg 2.cfg
...
Value of CONFIG_OTHER is redefined by fragment 2.cfg:
Previous value: CONFIG_NAME="CONFIG_OTHER"
New value: CONFIG_OTHER="value"
...

3. merge_config.sh can incorrectly process commentary as a configuration value:

$ echo "CONFIG_NAME=value" > 1.cfg
$ echo "# CONFIG_NAME was defined in 1.cfg" > 2.cfg
$ merge_config.sh -m 1.cfg 2.cfg
...
Value of CONFIG_NAME is redefined by fragment 2.cfg:
Previous value: CONFIG_NAME=value
New value: # CONFIG_NAME was defined in 1.cfg
...
$ cat .config
# CONFIG_NAME was defined in 1.cfg

4. merge_config.py able to find re-definition inside of the same file:

$ echo "CONFIG_NAME=1" > 1.cfg
$ echo "CONFIG_NAME=2" >> 1.cfg
$ merge_config.py -m 1.cfg
...
Value of CONFIG_NAME is redefined by fragment 1.cfg:
Previous value: CONFIG_NAME=1
New value: CONFIG_NAME=2
...

Signed-off-by: Nikolai Merinov <n.merinov@inango-systems.com>
Signed-off-by: Oleksandr Hnatiuk <o.hnatiuk@inango-systems.com>
---
Makefile | 2 +-
tools/merge_config.py | 166 ++++++++++++++++++++++++++++++++++++++++++
2 files changed, 167 insertions(+), 1 deletion(-)
create mode 100755 tools/merge_config.py

diff --git a/Makefile b/Makefile
index eb3daac..df2fca7 100644
--- a/Makefile
+++ b/Makefile
@@ -2,7 +2,7 @@ kern_tools_LIST = kgit kgit-meta \
kconf_check \
get_defconfig scc \
merge_config.sh spp kgit-s2q \
- symbol_why.py
+ symbol_why.py merge_config.py

cmds := $(wildcard tools/scc-cmds/*)
libs := Kconfiglib/kconfiglib.py
diff --git a/tools/merge_config.py b/tools/merge_config.py
new file mode 100755
index 0000000..50e32eb
--- /dev/null
+++ b/tools/merge_config.py
@@ -0,0 +1,166 @@
+#!/usr/bin/env python3
+# SPDX-License-Identifier: GPL-2.0-only
+
+"""
+merge_config.py - Takes a list of config fragment values, and merges
+them one by one. Provides warnings on overridden values, and specified
+values that did not make it to the resulting .config file (due to missed
+dependencies or config symbol removal).
+"""
+
+# Portions reused from merge_config.sh:
+# http://git.yoctoproject.org/cgit/cgit.cgi/yocto-kernel-tools/tree/tools/merge_config.sh
+#
+# Copyright (c) 2009-2010 Wind River Systems, Inc.
+# Copyright 2011 Linaro
+# Copyright (c) 2020 Inango Systems Ltd.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2 as
+# published by the Free Software Foundation.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+# See the GNU General Public License for more details.
+
+import sys
+import re
+import os
+import subprocess
+from collections import OrderedDict
+import argparse
+
+CONFIG_REGEX = r'^((# (?=.* is not set))?(CONFIG_[a-zA-Z0-9_]*)(=.*| is not set))$'
+
+def parse_arguments():
+ """Parse argv and return extracted options and list of the config files for merging"""
+ parser = argparse.ArgumentParser()
+ parser.add_argument('configs', metavar='CONFIG', type=str, nargs='+',
+ help='path to the config fragment')
+ parser.add_argument('-m', dest='run_make', action='store_false',
+ help='only merge the fragments, do not execute the make command')
+ parser.add_argument('-n', dest='alltarget', action='store_const',
+ default='alldefconfig', const='allnoconfig',
+ help='use allnoconfig instead of alldefconfig')
+ parser.add_argument('-r', dest='warn_redundant', action='store_true',
+ help='list redundant entries when merging fragments')
+ parser.add_argument('-O', dest='output_dir', metavar='DIR', type=str,
+ action='store', default='.',
+ help='dir to put generated output files. '
+ 'Consider setting $KCONFIG_CONFIG instead.')
+
+ args = parser.parse_args()
+
+ if not os.path.isdir(args.output_dir):
+ print("output directory {} does not exist".format(args.output_dir), file=sys.stderr)
+ else:
+ args.output_dir = args.output_dir.rstrip('/')
+
+ return args
+
+def merge_config(config_dict, file_name, warn_redundant=False):
+ """Add all configuration options from file_name to the config_dict dictionary.
+ This function warns about all configuration in config_dict that was redefined.
+ Optionally it warns about redifinition to the same value if warn_redundant is True"""
+ matches = re.findall(CONFIG_REGEX, open(file_name, "r").read(), re.MULTILINE)
+ for match in matches:
+ config_option = match[2]
+ new_value = match[0]
+ previous_value = config_dict.get(config_option)
+ if previous_value != None:
+ if previous_value != new_value:
+ print("Value of {} is redefined by fragment {}:".format(config_option, file_name))
+ print("Previous value: {}".format(previous_value))
+ print("New value: {}".format(new_value))
+ print()
+ elif warn_redundant:
+ print("Value of {} is redundant by fragment {}:".format(config_option, file_name))
+ del config_dict[config_option]
+ config_dict[config_option] = new_value
+
+def compare_configs(passed_config, resulting_config):
+ """Compare two dictionaries with config values and print warnings if
+ resulting_config changed any values presented in passed_config.
+
+ This function assumes that resulting_config is a result of processing of the
+ passed_config by make defconfig command."""
+ for config_option, requested_value in passed_config.items():
+ actual_value = resulting_config.get(config_option)
+ if actual_value is None:
+ print("Value requested for {} not in final .config".format(config_option))
+ print("Requested value: {}".format(requested_value))
+ print("There is no value for this config in .config")
+ print("")
+ elif requested_value != actual_value:
+ print("Value requested for {} not in final .config".format(config_option))
+ print("Requested value: {}".format(requested_value))
+ print("Actual value: {}".format(actual_value))
+ print("")
+
+def dump_config(dictionary, file_name):
+ """Write data stored in the dictionary to the file_name."""
+ out_file = open(file_name, "w")
+ for val in dictionary.values():
+ out_file.write("{}\n".format(val))
+ out_file.close()
+
+def exit_if_not_exists(file_name):
+ """Exit if the file_name do not point to an existed file."""
+ if not os.path.isfile(file_name):
+ print("The file '{}' does not exist. Exit.".format(file_name), file=sys.stderr)
+ sys.exit(1)
+
+def main():
+ """Main function of this module."""
+ args = parse_arguments()
+
+ kconfig_config = os.getenv("KCONFIG_CONFIG")
+ if kconfig_config is None:
+ if args.output_dir != ".":
+ kconfig_config = os.path.realpath("{}/.config".format(args.output_dir))
+ else:
+ kconfig_config = ".config"
+ os.putenv("KCONFIG_CONFIG", kconfig_config)
+
+ final_config = OrderedDict()
+
+ base_config = args.configs[0]
+ merge_list = args.configs[1:]
+
+ exit_if_not_exists(base_config)
+ print("Using {} as base".format(base_config))
+ merge_config(final_config, base_config, args.warn_redundant)
+
+ # Merge files, printing warnings on overridden values
+ for merge_file in merge_list:
+ exit_if_not_exists(merge_file)
+ print("Merging {}".format(merge_file))
+ merge_config(final_config, merge_file)
+
+ dump_config(final_config, kconfig_config)
+
+ if not args.run_make:
+ print("#\n# merged configuration written to {} (needs make)\n#".format(kconfig_config))
+ sys.exit()
+
+ # If we have an output dir, setup the O= argument, otherwise leave
+ # it blank, since O=. will create an unnecessary ./source softlink
+ output_arg = ""
+ if args.output_dir != ".":
+ output_arg = "O={}".format(args.output_dir)
+
+
+ # Use the merged file as the starting point for:
+ # alldefconfig: Fills in any missing symbols with Kconfig default
+ # allnoconfig: Fills in any missing symbols with # CONFIG_* is not set
+ subprocess.run("make {} {}".format(output_arg, args.alltarget), shell=True)
+
+
+ # Check all specified config values took (might have missed-dependency issues)
+ kconfig_values = OrderedDict()
+ merge_config(kconfig_values, kconfig_config)
+
+ compare_configs(final_config, kconfig_values)
+
+main()
--
2.17.1


Trouble building mono (when building an image)

Pelle Windestam
 

I'm trying to include mono in my image. I can successfully build the mono recipe by itself, but when I try to build my image it fails with the following error message:
Error:
 Problem: package test-sw-9.1.1b3-r0.aarch64 requires mono, but none of the providers can be installed
  - conflicting requests
  - nothing provides mono-gac needed by mono-5.12.0.226-r0.aarch64

This is a bit confusing since:
a) I can build mono by itself
b) the mono recipe should provide the mono-gac package

If I run 'bitbake -e mono | grep PACKAGES' I get the output:
PACKAGES="mono-dbg mono-doc mono-staticdev mono-locale mono-libs mono-dev  mono-config mono-binaries mono-libs-core  mono-libs-2.0 mono-libs-3.5 mono-libs-4.0 mono-libs-4.5  mono-api-4.5.1 mono-api-4.5.2 mono-api-4.6 mono-api-4.6.1 mono-api-4.6.2 mono-api-4.7  mono-libs-compat-2.0 mono-gac mono-configuration-crypto  mono-libs-monodoc mono-xbuild  mono-lldb  mono  mono-profiler "
PACKAGESPLITFUNCS="                 package_do_split_locales                 populate_packages"
PACKAGES_DYNAMIC="^mono-locale-.*"

So it would seem that bitbake agrees that mono provides mono-gac. The recipe for test-sw is a binary package, and depends on mono via:
RDEPENDS_${PN} = " \
  ...
  mono \
"
I am quite new to Yocto, so it could be something very basic that I am missing. I can actually build the image on my regular development machine, but when setting up the build on a second machine I started getting this error. I have verified that the new machine is using the same revisions of all layers, and there is nothing funny in the local.conf on my dev-machine. Any tips on what could be wrong would be most welcome!

I am using the Sumo release of Yocto.

Thanks,
Pelle






Re: Building multipartition images

morgan.hill@...
 

Using wic you can exclude one directory from the partition and
install
it into another partition. Example I've used some time ago:
https://github.com/3mdeb/meta-rte/blob/master/wic/sunxi-mmc-spl.wks#L4
Thanks, it looks like the rootfs-dir and exclude-path option is exactly
what I need.


Re: Building multipartition images

Maciej Pijanowski
 


On 16.01.2020 11:41, morgan.hill@... wrote:
Hello all,

I would link to have a read only / partition and a writeable /etc
partition. The pain point I'm running into is populating /etc from the
rootfs. The quick solution is to script the creation of disk images
from the rootfs, outside the bitbake tool chain, however this seems non
ideal.

I understand that there is the possibility to create partitions using
wks files. The pain point with wks is that the if one specifies rootfs
as the source of both / and /etc partitions both will be populated with
the completed rootfs. The ideal scenario would be that the partitions
are created and mounted then the rootfs is copied on top and the fstab
is installed (as in the installation of other GNU/Linux distributions).

If anyone has solved or knows how to solve this problem neatly in an
image recipe for example some tips would be much appreciated.
Using wic you can exclude one directory from the partition and install
it into another partition. Example I've used some time ago:
https://github.com/3mdeb/meta-rte/blob/master/wic/sunxi-mmc-spl.wks#L4

Morgan Hill



    
-- 
Maciej Pijanowski
Embedded Systems Engineer
GPG: F1401D2E1CCB19EF
https://3mdeb.com | @3mdeb_com


Building multipartition images

morgan.hill@...
 

Hello all,

I would link to have a read only / partition and a writeable /etc
partition. The pain point I'm running into is populating /etc from the
rootfs. The quick solution is to script the creation of disk images
from the rootfs, outside the bitbake tool chain, however this seems non
ideal.

I understand that there is the possibility to create partitions using
wks files. The pain point with wks is that the if one specifies rootfs
as the source of both / and /etc partitions both will be populated with
the completed rootfs. The ideal scenario would be that the partitions
are created and mounted then the rootfs is copied on top and the fstab
is installed (as in the installation of other GNU/Linux distributions).

If anyone has solved or knows how to solve this problem neatly in an
image recipe for example some tips would be much appreciated.

Morgan Hill


WiFi network failure after updating thud to zeus

JH
 

Hi,

I was using thud version to build image to run on imx6, it was working
perfectly except I was told a bug in connman version 3.15, I need to
build connman version 3.17. I could hot use thud to build connman
3.17, so I upgraded Yocto to zeus.

After installing new image built from zeus, now I have a very weird
WiFi network problem, it could not get IP address from WiFi router
DHCP initially, after a while, the WiFi got an IP address
169.254.203.142 which is not my WiFi router subnet 192.168.0.x, it
could not connect to the Internet either.

My first suspicion was the new updated connman version 3.17, but when
replaced connman 3.17 to connman 3.15 in an old version system which
image was built from thud, it was no problem at all. Apparently
something got wrong in the image built from zeus. Has anyone aware of
that issue?

Thank you.

Kind regards,

- jh


Re: Root login not working with Warrior

Paul Eggleton
 

On Thursday, 16 January 2020 10:14:42 PM NZDT Paul Eggleton wrote:
Hi Teemu

On Tuesday, 14 January 2020 4:37:29 AM NZDT Teemu K. wrote:
I have Yocto image that was originally made with Thud - version of
Yocto. It was working fine and I was able to login as root via serial
console.

Then I updated Yocto to Warrior and now for some reason when I try to
login as root via serial console it says 'login incorrect' when I
enter 'root' as a user and press enter. It doesn't even ask any
passwords before saying that. I tried enabling debug-tweaks and still
the same. Can't login as a root.

I have another user that I can login just fine and with sudo I can
also use root access. I just can't login as root.

I looked through /etc/passwd and /etc/shadow and they looked okay. Has
something changed in Warrior regarding this? I tried googling, but
didn't find anything.
Is there an /etc/securetty file and if so what does it contain?
Or perhaps more reasonably, does it contain the name of the device you are
attempting to log in via?

Cheers
Paul


--

Paul Eggleton
Intel System Software Products


Re: Root login not working with Warrior

Paul Eggleton
 

Hi Teemu

On Tuesday, 14 January 2020 4:37:29 AM NZDT Teemu K. wrote:
I have Yocto image that was originally made with Thud - version of
Yocto. It was working fine and I was able to login as root via serial
console.

Then I updated Yocto to Warrior and now for some reason when I try to
login as root via serial console it says 'login incorrect' when I
enter 'root' as a user and press enter. It doesn't even ask any
passwords before saying that. I tried enabling debug-tweaks and still
the same. Can't login as a root.

I have another user that I can login just fine and with sudo I can
also use root access. I just can't login as root.

I looked through /etc/passwd and /etc/shadow and they looked okay. Has
something changed in Warrior regarding this? I tried googling, but
didn't find anything.
Is there an /etc/securetty file and if so what does it contain?

Cheers
Paul

--

Paul Eggleton
Intel System Software Products


[meta-gplv2][PATCH] bison: fix builds with gettext 0.20.x

Changqing Li
 

From: Changqing Li <changqing.li@windriver.com>

Fix configure error like:
error: possibly undefined macro: gl_AC_HEADER_STDINT_H

Signed-off-by: Changqing Li <changqing.li@windriver.com>
---
recipes-devtools/bison/bison/bison-2.3_m4.patch | 121 ++++++++++++------------
1 file changed, 61 insertions(+), 60 deletions(-)

diff --git a/recipes-devtools/bison/bison/bison-2.3_m4.patch b/recipes-devtools/bison/bison/bison-2.3_m4.patch
index 348ce1d..626bc42 100644
--- a/recipes-devtools/bison/bison/bison-2.3_m4.patch
+++ b/recipes-devtools/bison/bison/bison-2.3_m4.patch
@@ -76,34 +76,35 @@ Upstream-Status: Pending
+])
--- /dev/null
+++ bison-1.875/m4/uintmax_t.m4
-@@ -0,0 +1,29 @@
-+# uintmax_t.m4 serial 6 (gettext-0.11)
-+dnl Copyright (C) 1997-2002 Free Software Foundation, Inc.
-+dnl This file is free software, distributed under the terms of the GNU
-+dnl General Public License. As a special exception to the GNU General
-+dnl Public License, this file may be distributed as part of a program
-+dnl that contains a configuration script generated by Autoconf, under
-+dnl the same distribution terms as the rest of that program.
+@@ -0,0 +1,30 @@
++# uintmax_t.m4 serial 12 (gettext-0.20.1)
++dnl Copyright (C) 1997-2004, 2007-2019 Free Software Foundation, Inc.
++dnl This file is free software; the Free Software Foundation
++dnl gives unlimited permission to copy and/or distribute it,
++dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Paul Eggert.
+
-+AC_PREREQ(2.13)
++AC_PREREQ([2.13])
+
-+# Define uintmax_t to `unsigned long' or `unsigned long long'
-+# if <inttypes.h> does not exist.
++# Define uintmax_t to 'unsigned long' or 'unsigned long long'
++# if it is not already defined in <stdint.h> or <inttypes.h>.
+
-+AC_DEFUN([jm_AC_TYPE_UINTMAX_T],
++AC_DEFUN([gl_AC_TYPE_UINTMAX_T],
+[
-+ AC_REQUIRE([jm_AC_HEADER_INTTYPES_H])
-+ AC_REQUIRE([jm_AC_HEADER_STDINT_H])
-+ if test $jm_ac_cv_header_inttypes_h = no && test $jm_ac_cv_header_stdint_h = no; then
-+ AC_REQUIRE([jm_AC_TYPE_UNSIGNED_LONG_LONG])
-+ test $ac_cv_type_unsigned_long_long = yes \
++ AC_REQUIRE([gl_AC_HEADER_INTTYPES_H])
++ AC_REQUIRE([gl_AC_HEADER_STDINT_H])
++ if test $gl_cv_header_inttypes_h = no && test $gl_cv_header_stdint_h = no; then
++ AC_REQUIRE([AC_TYPE_UNSIGNED_LONG_LONG_INT])
++ test $ac_cv_type_unsigned_long_long_int = yes \
+ && ac_type='unsigned long long' \
+ || ac_type='unsigned long'
-+ AC_DEFINE_UNQUOTED(uintmax_t, $ac_type,
-+ [Define to unsigned long or unsigned long long
-+ if <inttypes.h> and <stdint.h> don't define.])
++ AC_DEFINE_UNQUOTED([uintmax_t], [$ac_type],
++ [Define to unsigned long or unsigned long long
++ if <stdint.h> and <inttypes.h> don't define.])
++ else
++ AC_DEFINE([HAVE_UINTMAX_T], [1],
++ [Define if you have the 'uintmax_t' type in <stdint.h> or <inttypes.h>.])
+ fi
+])
--- /dev/null
@@ -143,64 +144,64 @@ Upstream-Status: Pending
+)
--- /dev/null
+++ bison-1.875/m4/stdint_h.m4
-@@ -0,0 +1,28 @@
-+# stdint_h.m4 serial 2 (gettext-0.11.4)
-+dnl Copyright (C) 1997-2002 Free Software Foundation, Inc.
-+dnl This file is free software, distributed under the terms of the GNU
-+dnl General Public License. As a special exception to the GNU General
-+dnl Public License, this file may be distributed as part of a program
-+dnl that contains a configuration script generated by Autoconf, under
-+dnl the same distribution terms as the rest of that program.
+@@ -0,0 +1,27 @@
++# stdint_h.m4 serial 9 (gettext-0.20.1)
++dnl Copyright (C) 1997-2004, 2006, 2008-2019 Free Software Foundation, Inc.
++dnl This file is free software; the Free Software Foundation
++dnl gives unlimited permission to copy and/or distribute it,
++dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Paul Eggert.
+
+# Define HAVE_STDINT_H_WITH_UINTMAX if <stdint.h> exists,
+# doesn't clash with <sys/types.h>, and declares uintmax_t.
+
-+AC_DEFUN([jm_AC_HEADER_STDINT_H],
++AC_DEFUN([gl_AC_HEADER_STDINT_H],
+[
-+ AC_CACHE_CHECK([for stdint.h], jm_ac_cv_header_stdint_h,
-+ [AC_TRY_COMPILE(
-+ [#include <sys/types.h>
-+#include <stdint.h>],
-+ [uintmax_t i = (uintmax_t) -1;],
-+ jm_ac_cv_header_stdint_h=yes,
-+ jm_ac_cv_header_stdint_h=no)])
-+ if test $jm_ac_cv_header_stdint_h = yes; then
-+ AC_DEFINE_UNQUOTED(HAVE_STDINT_H_WITH_UINTMAX, 1,
-+[Define if <stdint.h> exists, doesn't clash with <sys/types.h>,
-+ and declares uintmax_t. ])
++ AC_CACHE_CHECK([for stdint.h], [gl_cv_header_stdint_h],
++ [AC_COMPILE_IFELSE(
++ [AC_LANG_PROGRAM(
++ [[#include <sys/types.h>
++ #include <stdint.h>]],
++ [[uintmax_t i = (uintmax_t) -1; return !i;]])],
++ [gl_cv_header_stdint_h=yes],
++ [gl_cv_header_stdint_h=no])])
++ if test $gl_cv_header_stdint_h = yes; then
++ AC_DEFINE_UNQUOTED([HAVE_STDINT_H_WITH_UINTMAX], [1],
++ [Define if <stdint.h> exists, doesn't clash with <sys/types.h>,
++ and declares uintmax_t. ])
+ fi
+])
--- /dev/null
+++ bison-1.875/m4/inttypes_h.m4
-@@ -0,0 +1,28 @@
-+# inttypes_h.m4 serial 4 (gettext-0.11.4)
-+dnl Copyright (C) 1997-2002 Free Software Foundation, Inc.
-+dnl This file is free software, distributed under the terms of the GNU
-+dnl General Public License. As a special exception to the GNU General
-+dnl Public License, this file may be distributed as part of a program
-+dnl that contains a configuration script generated by Autoconf, under
-+dnl the same distribution terms as the rest of that program.
+@@ -0,0 +1,29 @@
++# inttypes_h.m4 serial 10 (gettext-0.20.1)
++dnl Copyright (C) 1997-2004, 2006, 2008-2019 Free Software Foundation, Inc.
++dnl This file is free software; the Free Software Foundation
++dnl gives unlimited permission to copy and/or distribute it,
++dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Paul Eggert.
+
+# Define HAVE_INTTYPES_H_WITH_UINTMAX if <inttypes.h> exists,
+# doesn't clash with <sys/types.h>, and declares uintmax_t.
+
-+AC_DEFUN([jm_AC_HEADER_INTTYPES_H],
++AC_DEFUN([gl_AC_HEADER_INTTYPES_H],
+[
-+ AC_CACHE_CHECK([for inttypes.h], jm_ac_cv_header_inttypes_h,
-+ [AC_TRY_COMPILE(
-+ [#include <sys/types.h>
-+#include <inttypes.h>],
-+ [uintmax_t i = (uintmax_t) -1;],
-+ jm_ac_cv_header_inttypes_h=yes,
-+ jm_ac_cv_header_inttypes_h=no)])
-+ if test $jm_ac_cv_header_inttypes_h = yes; then
-+ AC_DEFINE_UNQUOTED(HAVE_INTTYPES_H_WITH_UINTMAX, 1,
-+[Define if <inttypes.h> exists, doesn't clash with <sys/types.h>,
-+ and declares uintmax_t. ])
++ AC_CACHE_CHECK([for inttypes.h], [gl_cv_header_inttypes_h],
++ [AC_COMPILE_IFELSE(
++ [AC_LANG_PROGRAM(
++ [[
++#include <sys/types.h>
++#include <inttypes.h>
++ ]],
++ [[uintmax_t i = (uintmax_t) -1; return !i;]])],
++ [gl_cv_header_inttypes_h=yes],
++ [gl_cv_header_inttypes_h=no])])
++ if test $gl_cv_header_inttypes_h = yes; then
++ AC_DEFINE_UNQUOTED([HAVE_INTTYPES_H_WITH_UINTMAX], [1],
++ [Define if <inttypes.h> exists, doesn't clash with <sys/types.h>,
++ and declares uintmax_t. ])
+ fi
+])
--- /dev/null
--
2.7.4


Re: How to dynamically set PKGV? #yocto #python

Denys Dmytriyenko
 

On Wed, Jan 15, 2020 at 12:38:19PM -0800, Bill.Kulp@azuresummit.com wrote:
I have a recipe that builds an application from the master branch of a local
git repository.  AUTOREV is working, so the recipe automatically rebuilds
whenever the repository is updated.  The source code has its own version
number.  I'm wondering if it is possible to grab that version number during
the do_compile step, and set the package version based on that?

As a first step, I tried to change the value of PKGV from a bitbake task.

PKGV = "BadBad"
python do_foo () {
d.setVar( "PKGV" , "GoodGood" )
print ( "PKGV set to " + d.getVar( "PKGV" ))
}
addtask foo after do_compile before do_package

However, this did not work - the resulting RPM packages are named
"my_package-BadBad-r0.noarch.rpm".  Can anyone suggest a fix, or a different
method?

Thanks!


How to dynamically set PKGV? #yocto #python

Bill.Kulp@...
 

I have a recipe that builds an application from the master branch of a local git repository.  AUTOREV is working, so the recipe automatically rebuilds whenever the repository is updated.  The source code has its own version number.  I'm wondering if it is possible to grab that version number during the do_compile step, and set the package version based on that?

As a first step, I tried to change the value of PKGV from a bitbake task.

PKGV="BadBad"
python do_foo () {
    d.setVar("PKGV""GoodGood")
    print("PKGV set to " + d.getVar("PKGV"))
}
addtask foo after do_compile before do_package

However, this did not work - the resulting RPM packages are named "my_package-BadBad-r0.noarch.rpm".  Can anyone suggest a fix, or a different method?


Thanks!


Re: [psplash][PATCH 1/3] Support --with-font configure option to use other font headers

Andrei Gherzan
 

Hi,

On Tue, Dec 17, 2019 at 10:22 AM <andrei@...> wrote:
From: David Steinberg <david@...>

Signed-off-by: David Steinberg <david@...>

Small ping for this patch set.
 
---
 Makefile.am  | 4 ++--
 configure.ac | 6 ++++++
 psplash.c    | 6 +++---
 3 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/Makefile.am b/Makefile.am
index a14152a..3721a6e 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,11 +1,11 @@
 bin_PROGRAMS=psplash psplash-write

-AM_CFLAGS = $(GCC_FLAGS) -D_GNU_SOURCE
+AM_CFLAGS = $(GCC_FLAGS) -D_GNU_SOURCE -DFONT_HEADER=\"$(FONT_NAME)-font.h\" -DFONT_DEF=$(FONT_NAME)_font

 psplash_SOURCES = psplash.c psplash.h psplash-fb.c psplash-fb.h \
                   psplash-console.c psplash-console.h           \
                  psplash-colors.h psplash-config.h             \
-                 psplash-poky-img.h psplash-bar-img.h radeon-font.h
+                 psplash-poky-img.h psplash-bar-img.h $(FONT_NAME)-font.h

 psplash_write_SOURCES = psplash-write.c psplash.h

diff --git a/configure.ac b/configure.ac
index 1c4d919..9e78ac0 100644
--- a/configure.ac
+++ b/configure.ac
@@ -14,6 +14,12 @@ fi

 AC_SUBST(GCC_FLAGS)

+AC_ARG_WITH([font],
+    AS_HELP_STRING([--with-font], [Set font to use (default is 'radeon')]),
+    [FONT_NAME=$withval],
+    [FONT_NAME=radeon])
+AC_SUBST([FONT_NAME])
+
 AC_OUTPUT([
 Makefile
 ])
diff --git a/psplash.c b/psplash.c
index 992e199..f6442f1 100644
--- a/psplash.c
+++ b/psplash.c
@@ -23,7 +23,7 @@
 #include "psplash-colors.h"
 #include "psplash-poky-img.h"
 #include "psplash-bar-img.h"
-#include "radeon-font.h"
+#include FONT_HEADER

 #define SPLIT_LINE_POS(fb)                                  \
        (  (fb)->height                                     \
@@ -45,7 +45,7 @@ psplash_draw_msg (PSplashFB *fb, const char *msg)
 {
   int w, h;

-  psplash_fb_text_size (&w, &h, &radeon_font, msg);
+  psplash_fb_text_size (&w, &h, &FONT_DEF, msg);

   DBG("displaying '%s' %ix%i\n", msg, w, h);

@@ -62,7 +62,7 @@ psplash_draw_msg (PSplashFB *fb, const char *msg)
                        (fb->width-w)/2,
                        SPLIT_LINE_POS(fb) - h,
                        PSPLASH_TEXT_COLOR,
-                       &radeon_font,
+                       &FONT_DEF,
                        msg);
 }

--
2.17.1


--
Andrei Gherzan


Re: Root login not working with Warrior

Randy MacLeod
 

On 1/13/20 10:37 AM, Teemu K. wrote:
Hi,
I have Yocto image that was originally made with Thud - version of
Yocto. It was working fine and I was able to login as root via serial
console.
Then I updated Yocto to Warrior and now for some reason when I try to
login as root via serial console it says 'login incorrect' when I
enter 'root' as a user and press enter. It doesn't even ask any
passwords before saying that. I tried enabling debug-tweaks and still
the same. Can't login as a root.
I have another user that I can login just fine and with sudo I can
also use root access. I just can't login as root.
I looked through /etc/passwd and /etc/shadow and they looked okay. Has
something changed in Warrior regarding this? I tried googling, but
didn't find anything.
Hi Teemu,

I'm not sure what's wrong but you can always add strace to your image,
login as a user and run:
$ sudo strace -f -o /tmp/trace-[root|user].log -p <pidof login>
where the pid you specify is either the login process or agetty. I'd
have to try it to figure out what process to trace.

If you do that and then login as 1) root and then 2) as a user, you can
compare the strace logs and usually figure out what the difference is.
The logs will be verbose and do require some expertise to understand
but that should help. ltrace is also sometimes helpful.

Good luck,
../Randy

-Teemu K.

--
# Randy MacLeod
# Wind River Linux

5821 - 5840 of 53814