-
Notifications
You must be signed in to change notification settings - Fork 2
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
add compilation.yml to enable CI #7
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This seems interesting. I’m not very familiar with the Git Hub compilation workflow service. Is it something in the Actions menu, having downloadable IRX modules in a tar file? Would you be able to explain, in the commit message, how people can use this and where the downloads will be found?
Note: I’ll be travelling for about a week in the beginning of April, so replies may be a bit slow.
jobs: | ||
build: | ||
runs-on: ubuntu-latest | ||
container: tobix/mipsr5900el-toolchain:latest |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So we’d have a dependency on @TobiX repo, then.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, this is why I didnt made this pr earlier, caus eit is based on 3rd party docker container that can be removed in any moment.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As about describing in Readme where files can be found, @frno7 do you mean just point to the the github official documentation? This is GitHub basic features I dont think that such features should be covered by repo.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@AKuHAK, a couple of sentences about why and where (a URL) one might find the produced IRX files would be good, in the README.md
especially. Maybe we ought to have a build pass/fail badge there too? :-)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@AKuHAK, are you proposing frno7/linux#69 as a replacement for this pull request?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@AKuHAK, are you proposing frno7/linux#69 as a replacement for this pull request?
Not a replacement but more an addition. CI (Continuous Integration) is meant to be involved in each repository as a part of repository's internal check and as an easy way for generating precompiled binaries. This PR can be revisited when the necessary preparations will be made (as described in that PR).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@frno7 frno7/linux#69 is only the next step after you create one more repository for holding the main Docker image
@bignaux, additionally, in a separate effort, I think we should attempt to fix whatever problem there is with GCC 11.2.0. |
@frno7 : As i wrote you friday in a mail, i'm not able to boot properly your kernel right now. I figure than address entry point was not the issue, and use wLaunchelf instead of incompatible kernelloader (but i can't pass kernel cmdline). I was disagree with @AKuHAK on the fact "3rd party docker container" would be an issue, the completion of the CI task is optional, and to have reference binaries is very useful for people like me that can't trust his own binaries for now. I use it here https://github.com/bignaux/meta-playstation2/blob/main/recipes-kernel/iopmod/iopmod-bin.bb as a temporary workaround, and we can see later to fix the issue with newest toolchain. |
@frno7 If you wish, you can create an empty repository named |
@AKuHAK Be aware that GitHub Packages (of which the container registry is a part if I understood it correctly) has a limit of 500MB per user (and 1GB transfer) and the Toolchain image is already ~450MB in size |
@TobiX thanks for this limitation, Gentoo is really heavy distribution, I personally prefer Alpine for CI |
@TobiX Do you have the script for compiling everything inside your Docker container? |
Me too, but that image is literally just https://github.com/frno7/linux/wiki/Building-an-R5900-cross-compiler-using-Gentoo-Linux in script-form - that's the whole reason it's using Gentoo. And no, I don't have any script for compiling anything inside that container: I just used it as a dev/experimenting environment. |
I’ll be able to revisit this in a couple of weeks, mid-April I’m guessing, once I’m back from travelling. |
Cannot compile busybox: @frno7 do you have any thoughts? The log is here. |
@AKuHAK, what does |
I'd rewrite this using gcc-mipsel-linux-gnu ubuntu package instead of container. @AKuHAK seems to work on same stuff so i donno if i don't lose my time right now. |
The action itself will not change much, only the container link will change. Even if we will use the ubuntu package it is still better to grab a Docker container somewhere. |
Please be aware that binaries created by a "normal" |
Indeed, the R5900 has its short loop erratum, which, by default, isn’t handled by GAS nor GCC for non- That said, this repo is unaffected by the R5900 erratum, since it’s about the input/output processor (IOP) which is a MIPS R3000A, or in later PlayStation 2 models a PowerPC 405GP emulating a MIPS R3000A. Hence Line 17 in 4f0dc8c
There’s issue #1 about the Finally, as previously noted I’m travelling at the moment so replies take a bit more time for me. :-) |
@AKuHAK, continuing on frno7/linux#28 (comment), your comment here in #7 (comment) saying
seems suggest that the indicated or empty is a likely problem. Are you sure you have a good directory set up for for INITRAMFS? |
Yes, I am sure. |
initramfs_data.cpio.zip |
this error means that the ramdisk isn't properly extracted, not that this ramdisk is improper itself |
A quick glance, listing its content with I suppose you have these configured (among probably a few others):
Indeed, it could be worth checking whether your
Sure, but not yet as I don’t have my kit set up due to travelling. |
@AKuHAK, maybe your total kernel size is too large? There are hard limits on this, not apparently obvious. My Of course, the decompressed kernel must also fit within memory, and so on. We should mention these size limits on the wiki. Incidentally, you may want to check whether wLaunchELF loads the whole ELF properly, if file size is an issue. Compared with your (2.67 MB) Busbox, I’ve disabled these applications:
My (1.47 MB) Busybox has a few that yours doesn’t have. :-) That’d be these (most of which I think really are unnecessary):
|
Do you have a guide on how to change busybox configuration on Gentoo? Currently, I am using the command USE="prefix-guest static" emerge-mipsr5900el-unknown-linux-gnu -v sys-apps/busybox I found out that I can use savedconfig, but didn't realize how. |
As I recall I built my R5900 Busybox manually, about 7 years ago, without involving its Gentoo package. My MIPS tools were much more primitive back then. I think your modern approach is much nicer. :-)
Marvellous. Busybox has a |
Stupid question, slightly off-topic: Maybe create a new GitHub-organization for all Linux-on-PS2 releated repositories and move everything there? Unfortunately, https://github.com/ps2linux is already taken... |
@TobiX, when I started out I was hoping to merge as much code as possible with preexisting organisations, such GNU for Binutils and GCC, QEMU, the Linux kernel, and perhaps, eventually, also Gentoo (their experimental download section does have MIPS, as opposed to most other significant Linux distributions, believe it or not), so that everything would be available from the usual channels without additional patches. Maybe @bignaux will make an effort with Yocto as mentioned in frno7/linux#34 (comment). As mentioned in #7 (comment) the somewhat recent Of course, this doesn’t preclude setting up a PS2/Linux organisation at Git Hub, but it may explain where at least my focus is. :-) Issue #1 remains a significant hurdle, for sure. I need to cut down the initial patch submission from 120 patches to less than half, most probably. I’ve also come to the conclusion that it must become an n32 ABI kernel, rather than the current o32 ABI kernel. The reason being the 128-bit multimedia registers of the R5900, which will have grave technical problems with an o32 ABI kernel. |
@TobiX : i plan to create an org when i'll have a working Yocto setup. About ABI, you can look at https://github.com/bignaux/meta-playstation2/blob/main/conf/machine/tune-r5900.inc is the file to enable new ABI (n32/o32, perhaps 64bits and so) and you just have to config the right DEFAULTTUNE to rebuild with the new ABI setting. |
ca1a75c
to
27e2d87
Compare
With #9 (comment), I suppose this issue is resolved as well? |
A first step for CI. Since iopmod modules are incompatible with latest gcc i use (11.2.0), it allows me to use the old toolchain for this stuff.