Tiny Core Linux

Tiny Core Base => TCB News => Alpha Releases => Topic started by: Juanito on January 05, 2018, 04:20:14 AM

Title: Tiny Core 9.0 Alpha 1 Testing
Post by: Juanito on January 05, 2018, 04:20:14 AM
Team Tiny Core is pleased to announce that Tiny Core 9.0 Alpha1 is available for public testing:

http://repo.tinycorelinux.net/9.x/x86/release_candidates/
http://repo.tinycorelinux.net/9.x/x86_64/release_candidates/

This is an alpha level cut. If you decide to help test, then please test carefully. We don't want anyone to lose data.

Since this is an alpha cut, we ask that only experienced users test. This cut is not for general use. The features in any alpha are not fixed and may change before a public release candidate is available.

Most extensions have been copied over from the 8.x repo

We appreciate testing and feedback.

If you use distribution files note that you need a new vmlinuz and core.gz (or rootfs.gz + modules.gz)

Changelog for 9.0 alpha1:
* kernel updated to 4.14.10
* glibc updated to 2.26
* gcc updated to 7.2.0
* e2fsprogs base libs/apps updated to 1.43.7
* util-linux base libs/apps updated to 2.31

***
The Meltdown vulnerability affecting Intel processors affects this version. As long as you only run code you trust, there is no issue to test.
***
Title: Re: Tiny Core 9.0 Alpha 1 Testing
Post by: gerald_clark on January 06, 2018, 06:41:14 PM
Please add firmware-openfwwf.tcz
Title: Re: Tiny Core 9.0 Alpha 1 Testing
Post by: Juanito on January 06, 2018, 09:20:40 PM
The firmware extensions are being worked on - hopefully coming soon
Title: Re: Tiny Core 9.0 Alpha 1 Testing
Post by: andyj on January 07, 2018, 07:01:46 AM
Open-vm-tools will not compile, complaining about missing xdr* functions. These are supposed to be in libc, or at least they are on my Slackware system where I can dump symbols. Did they move / get broken out into a different library? Also, where can I get a copy of the kernel config file?
Title: Re: Tiny Core 9.0 Alpha 1 Testing
Post by: Rich on January 07, 2018, 07:31:42 AM
Hi andyj
glibc_base-dev.tcz  contains  xdr.h,  maybe that's what you are looking for?
Title: Re: Tiny Core 9.0 Alpha 1 Testing
Post by: andyj on January 07, 2018, 07:44:53 AM
Thanks, but no. I'm using the same build script that works fine for 8.x. It could be an issue with the Linux API headers, as I usually build against a compiled kernel tree. I need to have that for xtables_addons eventually anyway.
Title: Re: Tiny Core 9.0 Alpha 1 Testing
Post by: Rich on January 07, 2018, 07:58:19 AM
Hi andyj
I'm using the same build script that works fine for 8.x.
There is no mention of  xdr  in the TC8 headers:
http://tinycorelinux.net/8.x/x86/tcz/linux-4.8.1_api_headers.tcz.list

Quote
I need to have that for xtables_addons eventually anyway.
That sounds like  xtables-addons-4.8.17-tinycore.tcz  which does not appear in the TC9 repository.
Title: Re: Tiny Core 9.0 Alpha 1 Testing
Post by: andyj on January 07, 2018, 08:07:59 AM
Xtables_addons isn't in the TC9 repository because I haven't built it yet, because I don't have the kernel config file yet.
Title: Re: Tiny Core 9.0 Alpha 1 Testing
Post by: Rich on January 07, 2018, 08:21:03 AM
Hi andyj
Quote
I don't have the kernel config file yet.
Maybe here:
http://tinycorelinux.net/9.x/x86/release/src/kernel/
Title: Re: Tiny Core 9.0 Alpha 1 Testing
Post by: andyj on January 07, 2018, 08:30:32 AM
For some reason I didn't think to look in the released tree.  ::)  Since the 4.14 kernel is LTS, does this mean that we'll have an LTS version of TC too?
Title: Re: Tiny Core 9.0 Alpha 1 Testing
Post by: Rich on January 07, 2018, 08:37:04 AM
Hi andyj
Quote
Since the 4.14 kernel is LTS, does this mean that we'll have an LTS version of TC too?
That's a question for one of the administrators.
Title: Re: Tiny Core 9.0 Alpha 1 Testing
Post by: curaga on January 07, 2018, 11:39:37 AM
No LTS, 9.x will be a normal version.
Title: Re: Tiny Core 9.0 Alpha 1 Testing
Post by: Juanito on January 10, 2018, 11:59:32 PM
intel has released a microcode update for the spectre vunerability dated 2018/01/10 - this should eventually find its way into a bios update for reasonably current hardware.

In the meantime, after downloading from, for example, arch linux, the microcode update can be loaded like this:
Code: [Select]
$ cat grub.cfg
...
initrd /boot/intel-ucode.img /boot/rootfs64.gz /boot/modules64.gz
...
note that intel-ucode.img must be the first in the list.

If successful, you should see something like this:
Code: [Select]
$ dmesg | grep -i micro
microcode: microcode updated early to revision 0x21, date = 2017-11-20
microcode: sig=0x40651, pf=0x40, revision=0x21
microcode: Microcode Update Driver: v2.2.
Title: Re: Tiny Core 9.0 Alpha 1 Testing
Post by: curaga on January 11, 2018, 01:51:09 AM
The microcode update is for Spectre, not Meltdown. Meltdown cannot be fixed like that.
Title: Re: Tiny Core 9.0 Alpha 1 Testing
Post by: Juanito on January 11, 2018, 04:03:18 AM
oops - corrected above  :-[
Title: Re: Tiny Core 9.0 Alpha 1 Testing
Post by: andyj on January 11, 2018, 05:48:37 AM
Would it be possible for the next alpha build to not to strip glibc? I'm trying to figure out why open-vm-tools builds on 8.2 with glibc 2.24 and not on 9.0 with glibc 2.26. Somewhere along the way libtool says it can't find the xdr* functions that are supposed to be in glibc. I compiled glibc myself but when I grafted it into the rootfs somebody (busybox?) complained about not being able to find libcrypt.
Title: Re: Tiny Core 9.0 Alpha 1 Testing
Post by: Juanito on January 11, 2018, 06:23:31 AM
You can compile glibc, install it somewhere outside of the root filesystem, and make a tarball of it.

Next, boot tc, copy the tarball to / and untar it as root.
Title: Re: Tiny Core 9.0 Alpha 1 Testing
Post by: andyj on January 11, 2018, 08:18:01 AM
I tried that first, but it didn't work like I hoped. How can I get it to boot with the un-stripped libraries?
Title: Re: Tiny Core 9.0 Alpha 1 Testing
Post by: Juanito on January 11, 2018, 08:27:52 AM
Hmm - it works for me...

To boot with unstripped libs you’d need to replace the libs in roots64.gz
Title: Re: Tiny Core 9.0 Alpha 1 Testing
Post by: andyj on January 11, 2018, 12:40:34 PM
I did that. That's how I got the "cant find libcrypt" error. I wouldn't have thought there was another step, but maybe there is something else that needs to be done to the rootfs before putting it back together? I've added plenty of stuff to the rootfs over the years so I am familiar with that process, but I've never swapped out core libraries before.
Title: Re: Tiny Core 9.0 Alpha 1 Testing
Post by: andyj on January 11, 2018, 01:04:52 PM
OK, I had to ldconfig in the new fs first. But now it can't login, complaining it can't set groups. There's another step?
Title: Re: Tiny Core 9.0 Alpha 1 Testing
Post by: andyj on January 11, 2018, 01:53:17 PM
Got it to work, didn't fix the problem making open-vm-tools, so maybe it's a difference in gcc 7.2 behavior. Anyway, I discovered that /lib/udev owner is 755 instead of root. Also, would it be possible to have ldd to give a version string when asked by adding this as the first option:

Code: [Select]
  --version) echo 'ldd (GNU libc) 2.26'
    break
    ;;

This would make a few glibc version detection tricks in configure happier.
Title: Re: Tiny Core 9.0 Alpha 1 Testing
Post by: Juanito on January 11, 2018, 11:59:49 PM
Maybe it would be better to take the version from /lib/libc.so.6 so that the ldd script would not need to be changed every glibc update?

Code: [Select]
$ /lib/libc.so.6
GNU C Library (GNU libc) stable release version 2.26, by Roland McGrath et al.
...
Title: Re: Tiny Core 9.0 Alpha 1 Testing
Post by: Juanito on January 12, 2018, 03:55:47 AM
Got it to work, didn't fix the problem making open-vm-tools, so maybe it's a difference in gcc 7.2 behavior.

rpc has been obsolete in glibc for a while now - using open-vm-tools-stable-10.2.0 with:
Code: [Select]
LIBS="-ltirpc" CC="gcc -flto -fuse-linker-plugin -mtune=generic -Os -pipe" CXX="g++-flto -fuse-linker-plugin -mtune=generic -Os -pipe" ./configure --prefix=/usr/local --disable-static --localstatedir=/var --sysconfdir=/etc --without-kernel-modules --disable-glibc-check --without-pam --without-xerces --without-dnet
..seems to work?

Edit:
Code: [Select]
$ nm -D /lib/libnsl-2.26.so | grep -i xdrmem_create
                 U xdrmem_create
$ nm -D /usr/local/lib/libtirpc.so.3.0.0 | grep -i xdrmem_create
0000000000012e04 T xdrmem_create

..with LIBS="-lnsl" it fails with:
Code: [Select]
/tmp/ccFyMhli.ltrans0.ltrans.o: In function `XdrUtil_Deserialize':
<artificial>:(.text+0xf52): undefined reference to `xdrmem_create'
Title: Re: Tiny Core 9.0 Alpha 1 Testing
Post by: andyj on January 12, 2018, 07:09:21 AM
Tried that already. The problem is that the configure scripts I've come across expect the version to be at the end:

Code: [Select]
ldd (GNU libc) 2.26
which gives 2.26, versus

Code: [Select]
GNU C Library (GNU libc) stable release version 2.26, by Roland McGrath et al.
which gives "al." when then breaks the math. Besides, it's how the full ldd GNU script does it so it seems they change it for every glibc update. How about this instead? A little long but it does the job:

Code: [Select]
  --version) echo "ldd (GNU libc)" $(ls /lib/libc-*.so | sed -e 's/^.*-//' -e 's/\.so//')
        break
        ;;

I believe having dnet allows the guest to know if the host's network is disconnected, which might be desirable in some cases. Using TI-RPC it does compile, so I'm going to go with that for now, and add it as a dependency.
Title: Re: Tiny Core 9.0 Alpha 1 Testing
Post by: Juanito on January 15, 2018, 03:20:35 AM
OK - could you submit the change as a patch please?
Title: Re: Tiny Core 9.0 Alpha 1 Testing
Post by: andyj on January 15, 2018, 08:21:32 AM
Here we go.

Thanks
Title: Re: Tiny Core 9.0 Alpha 1 Testing
Post by: uli on January 17, 2018, 11:52:53 PM
Excellent piece of work.

Almost easily brought up on Hyper-V Gen2 (x64).

EXCEPT  scsi_transport_fc.ko is missing. Therefore it is not possible to start from .iso right away.

Those who are using Tc x64 on Hyper-V would probably go for Gen2 machines, therefore it would make a lot of sense to add the missing lib to the x64 version, given that all Hyper-V drivers are already there.