Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RaspberryPi4 profile packages are slighly behind upstream recipe #50

Closed
FroggyFlox opened this issue May 8, 2021 · 9 comments · Fixed by #51
Closed

RaspberryPi4 profile packages are slighly behind upstream recipe #50

FroggyFlox opened this issue May 8, 2021 · 9 comments · Fixed by #51

Comments

@FroggyFlox
Copy link
Member

This issue is a follow-up to #49.

In the upstream kiwi recipe, we can see the following changes related to the Leap15.3 profile for Raspberry Pi:

Tue Feb 9 14:34:11 UTC 2021 - Nicolas Patricio Saenz Julienne [email protected]

  • Install 'raspberrypi-eeprom' package on Raspberry Pi image (jsc#SLE-13566)

https://build.opensuse.org/package/view_file/openSUSE:Leap:15.3/kiwi-templates-JeOS/kiwi-templates-JeOS.changes?expand=1

Accordingly, the <packages> specific to the Raspberry Pi profile are:

    <packages type="image" profiles="RaspberryPi">
        <package name="raspberrypi-eeprom" arch="aarch64"/>
        <package name="raspberrypi-firmware" arch="aarch64"/>
        <package name="raspberrypi-firmware-config" arch="aarch64"/>
        <package name="raspberrypi-firmware-dt" arch="aarch64"/>
        <package name="u-boot-rpiarm64" arch="aarch64"/>
        <package name="dracut-kiwi-oem-repart"/>
        <package name="kernel-default"/>
        <!-- For WiFi: -->
        <package name="jeos-firstboot-rpiwifi"/>
        <package name="bcm43xx-firmware"/>
    </packages>

https://build.opensuse.org/package/view_file/openSUSE:Leap:15.3/kiwi-templates-JeOS/JeOS.kiwi?expand=1

In our rockstor.kiwi, we currently have:

<packages type="image" profiles="Leap15.2.RaspberryPi4,Leap15.3.RaspberryPi4">
<package name="raspberrypi-firmware" arch="aarch64"/>
<package name="raspberrypi-firmware-config" arch="aarch64"/>
<package name="raspberrypi-firmware-dt" arch="aarch64"/>
<!-- For WiFi: -->
<package name="bcm43xx-firmware"/>
<package
name="kernel-firmware"/><!-- Fix choice between kernel-firmware and kernel-firmware-all -->
<package name="u-boot-rpiarm64" arch="aarch64"/>
</packages>

I can thus see the following differences:

  1. raspberrypi-eeprom is missing in our current rockstor.kiwi recipe. It should be added.
  2. kernel-firmware is present in our rockstor.kiwi but not in upstream kiwi recipe. @phillxnet , I'm not familiar with the requirement for this package, so I assume you added it for a good reason.
  3. jeos-firstboot-rpiwifi is missing in our current rockstor.kiwi recipe and should probably be added.

Number 1 and 3 should be safe to add... I'm hesitant about removing number 2, though, as it was most likely added for a good reason.

@phillxnet
Copy link
Member

@FroggyFlox Thanks for creating this issue.
Re:

  • raspberrypi-eeprom is missing in our current rockstor.kiwi recipe. It should be added.

Agreed

2. kernel-firmware is present in our rockstor.kiwi but not in upstream kiwi recipe. @phillxnet , I'm not familiar with the requirement for this package, so I assume you added it for a good reason.

This I think belongs in the general section. It improves hardware compatibility re 'special' hardware etc.

3. jeos-firstboot-rpiwifi is missing in our current rockstor.kiwi recipe and should probably be added.

I remember purposefully leaving this one out. It was present in the earlier builds but in the context of Rockstor it does not make sense to setup the Pi4's radio when we are not yet able to configure the same within the Web-UI. I believe I also encountered an issue with it on my early builds so it got dropped as irrelevant and unnecessary complexity. We don't want to return to the days of our CentOS installer where there were many 'options' that were essentially irrelevant or ignored that would only serve to confuse the user when they ended up not being able to access / configure the same when finally reaching the Web-UI.

Number 1 and 3 should be safe to add... I'm hesitant about removing number 2, though, as it was most likely added for a good reason.

I vote for 1 and not 3 and the firmware addition (2) on reflection, and from memory and the comment:

        <package
                name="kernel-firmware"/><!-- Fix choice between kernel-firmware and kernel-firmware-all -->

Is I think the cut down of the actually really large kernel-firmware-all which I remember being, I thought, over the top for our purposes. In which case I agree removing it from the Pi4 section but moving it to the general section as we then maintain it in all profiles and thus enable common required firmware for certain hardware.

So in short I say:

  1. Yes (if it doesn't break Leap 15.2 profile).
  2. Agreed we don't remove but "move" to all profiles in the general packages.
  3. No, do not include jeos-firstboot-rpiwifi as it will only setup wifi which we then can't use/configure anyway.

I think that pretty much covers it from what I can remember.

Does that help with a consensus?

@phillxnet
Copy link
Member

@FroggyFlox Re the firmware package:

Description    : 
    This package contains the firmware for in-kernel drivers that was
    previously included in the kernel. It is shared by all kernels >=
    2.6.27-rc1.

Not part of a JeOS which may not 'see' any real range of hardware but is relevant for us as we are expected to run on real hardware that is far more likely to encounter the type of hardware that requires this package.

@FroggyFlox
Copy link
Member Author

Thanks a lot, @phillxnet , this all makes sense!

I agree with you on all points... regarding number 2, however, note that I do not see it in the general section so it seems we were using it in our RaspberryPi4 profile only.

@phillxnet
Copy link
Member

@FroggyFlox Re

regarding number 2, however, note that I do not see it in the general section so it seems we were using it in our RaspberryPi4 profile only.

Yes, I saw that. And I'm pretty sure that was a mistake on my part going back to the initial development of this config. I think it's best we put it in the general section for all profiles however as we then gain greater hardware compatibility. At least that is my understanding. I just remember reading about it, early on, and thought I'd popped it in the general section. And when you pointed it out I checked that section to see if we had a repeat.

I think it would be nice to include (move) it in the general section as we then have that covered. We are after all expected to run on real hardware unlike the JeOS implementations we are using as our model here. But it will make the install larger but having more hardware support should be worth it. But I don't think we should move to the -all variant as that was really large when I last looked. And as you say we have been managing so far without it at all in the other profiles. I've not checked but it may be a dependency that is fetched anyway. But I like that it's specified with it's alternative 'all' variant anyway as that may lead folks to more easily solve issues with hardware that need the much larger 'all' variant than if this is just a silent dependency.

@phillxnet
Copy link
Member

phillxnet commented May 8, 2021

@FroggyFlox I've just check on the installed size of this package:

zypper info kernel-firmware | grep Installed
Installed Size : 490.3 MiB
Installed      : Yes

That's quite a bit !! We should establish if we are already using this via dependency.

@FroggyFlox
Copy link
Member Author

FroggyFlox commented May 8, 2021

Rather large indeed... I checked earlier in a VM installed using a Rockstor 4.0.6 ISO Leap 15.2/3 and the kernel-firmware package was not installed.

I'll check on real hardware too just in case.

@phillxnet
Copy link
Member

phillxnet commented May 8, 2021

Also I can no longer find reference to the "kernel-firmware-all" package referenced in the comments. Other than the following:
https://software.opensuse.org/package/kernel-firmware-all?search_term=kernel-firmware-all

kernel-firmware-all
Compatibility metapackage for kernel firmware files

This package is a catch-all compatibility metapackage for providing all files that have been provided by kernel-firmware package.

I'm thinking now that the -all is now encompassed by the kernel-firmware package. And that size is about what I wanted to avoid actually. Maybe this is all now legacy and we do as you suggested and simply drop it form the Pi4 and do not move to general as that is a large payload that we have yet to notice the negative effect of doing without.

Maybe we could move it to the general but have it remarked out. How does that sound to you? And given the now dated reference to the -all package we also drop the comment.

@phillxnet
Copy link
Member

Nearly 0.5 GB on installed image has to show it's value, and if we haven't missed it yet!

@FroggyFlox
Copy link
Member Author

Maybe we could move it to the general but have it remarked out. How does that sound to you? And given the now dated reference to the -all package we also drop the comment.

Agreed... I'll try that and try to remember paying attention to the size of the resulting Pi4 files created.

FroggyFlox added a commit to FroggyFlox/rockstor-installer that referenced this issue May 23, 2021
- remove kernel-firmware package
- add raspberrypi-eeprom package
phillxnet added a commit that referenced this issue May 24, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants