Hello Waldemar,

> You need to install the kernel headers in your Linux source tree via:
> make INSTALL_HDR_PATH=/home/wbx/linux headers_install

Ahhh, that was exactly what I needed! Thanks, must've completely overlooked 
this the whole time. Setting the kernel header destination to the same used for 
$INSTALL_HDR_PATH/include has uclibc building now!

> Any reason you are not cross-compiling for your board? What distro

Mainly because I haven't built a cross-compiling toolchain with a proper 
sysroot yet. I have to familiarize myself with crosstool-ng for that, in fact I 
will need this for a few projects... But, for now, I have a nice and working 
setup on-device. In fact, it's running Jenkins, Home Assistant and TVHeadend 
just fine. So, if I can, I just throw a compile job in a screen. It's 
definitively the lazier approach, but one that works. :)

> is running on your board?

That is... complicated. So, in the Debian Wiki, they tell you to use a certain 
set of repos, which are "based" off the Sid branch, but actually entail a 
rolling release that spans all the way into Trixie - past Bookworm.
See:

root@riscboi /n/o/uclibc-ng ((v1.0.45))# cat /etc/apt/sources.list
# Original from image:
#deb https://snapshot.debian.org/archive/debian-ports/20221225T084846Z unstable 
main

# Suggested via wiki:
# https://wiki.debian.org/RISC-V#Package_repository
deb https://deb.debian.org/debian sid main contrib non-free non-free-firmware
#deb https://deb.debian.org/debian unreleased main
deb-src https://deb.debian.org/debian sid main

The wiki article plus some digging led me here. And with a bit of u-boot 
configuration, I have a very stable system - even with a quite recent kernel. 
It is still very much a state of "it could break any time", since I actually 
don't exactly know what those repos are really based off of, and the os-release 
doesn't tell me much either.

# cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux trixie/sid"
NAME="Debian GNU/Linux"
VERSION_CODENAME=trixie
ID=debian
HOME_URL="https://www.debian.org/";
SUPPORT_URL="https://www.debian.org/support";
BUG_REPORT_URL="https://bugs.debian.org/";

But... it works - has even booted right back up after a blackout had hit my 
town just fine. I do want to pick up maintainership for armbian though, to get 
this into a more stable state.

> Why you want to use uClibc-ng?

Curiosity for one; but I also want to bootstrap a build environment for 
Alpine's abuild. Since there are many Docker images that rely on alpine:3.19, I 
want to build those... myself. I can't reach anyone at Alpine to figure out 
what the exact reason is for not building a full distribution or at least a 
rootfs that can be used for Docker - so instead of waiting for answers and 
spinning in circles, I will just get my own hands dirty and see how far I can 
get - and then try again, this time with some results and work to showcase that 
I had put into this.

One way to build such an environment is to use a small toolchain that is "as 
independent as possible". So, since uclibc leans very well into being 
statically compiled, and can work nciely with GCC, I thought it'd be a good 
idea to learn how to work with uclibc first before taking the next step into 
automating the builds through my Jenkins instance.

The board has a 1TB NVMe SSD attached - so I have plenty of space and time to 
do my builds, grab the results, put them in a repo or other storage and them 
use that to build Docker images ... hopefuly. That, at least, is the long term 
goal.

As a side-thing, it never hurts to know a little more about libc and the other 
sys internals. :)

Hope that answers everything! Oh, and my build finished just now. Again, thanks 
for the pointer, that was exactly what I needed.

Kind regards,
Ingwie



Waldemar Brodkorb <w...@openadk.org> schrieb am Freitag, 1. März 2024 um 09:08:

> 

> 

> Hi Kevin,
> Kevin Ingwersen wrote,
> 

> > Hello there!
> > 

> > I am having a bit of a "moment" here, trying to build ucLibC on my 
> > VisionFive2. I have configured most of the things I would like the library 
> > to feature, but when I try to actually build it, it can not find my headers 
> > properly.
> > 

> > I have tried /usr, /usr/include and also used find to locate the folders 
> > that it was looking for, but to no avail. It is either linux/errno.h, 
> > asm/errno.h or asm/unistd.h that can not be found.
> > 

> > The kernel is self-built (since the upstream currently lacks two patches 
> > required for full SoC support) off the 6.6.0 branch and headers are 
> > installed to their standard location, including 
> > /usr/src/linux-headers-$(uname -r).
> > 

> > What is the expected structure to be found under .config's KERNEL_HEADERS?
> 

> 

> You need to install the kernel headers in your Linux source tree via:
> make INSTALL_HDR_PATH=/home/wbx/linux headers_install
> 

> And then put /home/wbx/linux/include as kernel header path.
> 

> Any reason you are not cross-compiling for your board? What distro
> is running on your board?
> 

> Why you want to use uClibc-ng?
> 

> best regards
> Waldemar
> _______________________________________________
> devel mailing list -- devel@uclibc-ng.org
> To unsubscribe send an email to devel-le...@uclibc-ng.org

Attachment: publickey - ingwie@birb.it - 0xDF7250D4.asc
Description: application/pgp-keys

Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
devel mailing list -- devel@uclibc-ng.org
To unsubscribe send an email to devel-le...@uclibc-ng.org

Reply via email to