Tiny Core Linux

Tiny Core Base => TCB News => Alpha Releases => Topic started by: roberts on September 05, 2011, 09:02:07 AM

Title: Tiny Core v4.0 Alpha 3
Post by: roberts on September 05, 2011, 09:02:07 AM
Tiny Core 4.0 Alpha3 is available for public testing.
http://distro.ibiblio.org/pub/linux/distributions/tinycorelinux/4.x/x86/alpha/

Change log:

alpha1:
* Updated kernel to 3.0.3
* Updated udev to 173
* Updated glibc to eglibc-2.13
* Updated e2fsprogs base libs to 1.41.14
* Updated gcc base libs to 4.6.1
* Updated util-linux base libs to 2.19.1
* Updated all the custom core utilities to use the new repository area:
   http://distro.ibiblio.org/tinycorelinux/4.x/x86/tcz/

alpha2:
* New loadcpufreq to handle module loading.
* Updated eglibc for 486/586 support.
* Updated busybox 1.19 with latest patches and fix for chpasswd segfault.
* Updated ondemand for console based extensions via Freedesktop Exec=cliorx prgname
* Adjusted .xsession to handle X startup failure.
* Adjusted .setbackground colors for wallpaper handling.

alpha3:
* Replaced ldd and ldconf with original versions not dependent on bash.
* Restored ssb module to base.
* Updated AppBrowser Search and Keyword as described below.
* Updated ab Search and Keyword.
* Updated search.sh internal script support for new search method shared by AppBrowser & ab
* New keyword.sh internal script support for new keyword method shared by AppBrowser & ab

Notes:
The Search method for both AppBrowser and ab is now a local info.lst seach.
To use enter the starting few characters of the desired extension, e.g., abi for abiword, or oper for opera

Both AppBrowser and ab now offer Keyword searching.
Examples: enter browser to display browsers, enter game to list games.

Attn: microcore users will need new Xprogs.tcz from 4.x repository.
Title: Re: Tiny Core v4.0 Alpha 3
Post by: vinnie on September 05, 2011, 10:53:13 AM

Notes:
Both AppBrowser and ab now offer Keyword searching.
Examples: enter browser to display browsers, enter game to list games.

finally! but these keywords are stored where?
Title: Re: Tiny Core v4.0 Alpha 3
Post by: roberts on September 05, 2011, 12:22:39 PM
On our servers. words.db is generated from the extension's Description: field.
Title: Re: Tiny Core v4.0 Alpha 3
Post by: vinnie on September 05, 2011, 03:05:10 PM
Ok, I think a package maker should be able to watch all the keywords listed in words.db to get an idea of the keyword when he use for a package.
A clickable list of words appbrowers may be valid?
Title: Re: Tiny Core v4.0 Alpha 3
Post by: roberts on September 06, 2011, 09:18:56 AM
words,db is not a set of predefined words rather the actual words from the extension's Description field. While it is true that garbage in results in garbage out. It should not be difficult for extension makers to use the new keyword search infrastructure that I have provided. Let's not make a mountain.
Title: Re: Tiny Core v4.0 Alpha 3
Post by: vinnie on September 06, 2011, 12:06:05 PM
It was only the prospect of a similar situation:
text_editor
editor_text
doc_edit
code_editor
...
all for the same tipology of software
Title: Re: Tiny Core v4.0 Alpha 3
Post by: Lee on September 07, 2011, 01:01:03 AM
Its mainly when I'm fooling around with alphas and betas and testing out a new release or when I'm trying to debug an installation that has gone astray (most of which are the case right now), that I wish for this.  If we already laid this question to rest, please remind me,  but since we're heading into 4.x I though I'd bring it up.

I've got lines in my menu.lst including the following boot codes:

For tc 3.8.3:
Code: [Select]
... tce=LABEL=pnyfob0 ...

For tc 3.8.4:
Code: [Select]
... tce=sdb1/tce3.8.4

For tc 4.0A3:
Code: [Select]
... tce=sdb1/tce40A3 ...

I can't use the LABEL clause for tc 3.8.4 or tc 4.0A3 because I want to specify a directory other than just plain "tce".  However "pnyfob0", a USB flash drive, gets different device IDs on different hosts so I'm forever having to adjust the "sdb1" part to reflect the actual device.

Any chance we could revisit the tce boot code so something like the following would work?
Code: [Select]
... tce=LABEL=pnyfob0:/tce4.0A3 ...

Title: Re: Tiny Core v4.0 Alpha 3
Post by: maro on September 07, 2011, 01:14:02 AM
Lee, I'm pretty sure that I've tested this a while ago (albeit with UUID instead of LABEL) and IIRC it was working just fine.

One thing I noticed is that you where using 'tce=sdb1/tce40A3' for the working boot code and 'tce=LABEL=pnyfob0:/tce4.0A3' (which includes a colon and a dot which I would have not expected to see) for your "target" one.

Is that a simple typo in your posting or actually copied from the config file (which would make the latter then probably wrong)?
Title: Re: Tiny Core v4.0 Alpha 3
Post by: Lee on September 07, 2011, 02:19:22 AM
It was a typo.  I was just putting that out as "for instance" because I didn't remember the issue having been resolved.  It has been a long time since I tried anything like this.  I'll try
Code: [Select]
tce=LABEL=pnyfob0/tce40A3
(no dot and no colon) next time I reboot.

Edit  2011-09-07 05:35:
Wow!  Do I ever feel sheepish!  I can't believe I either knew about that and forgot it, or I missed it entirely, but there it is - works exactly as I had hoped.

Thank you, maro, for pointing it out to me and Thank -you-, roberts, for implementing it.  Have I mentioned lately, "Thank you to the whole Tiny Core team and the community for making TC what it is"?  TC just keeps getting better and better.   :)

Title: Re: Tiny Core v4.0 Alpha 3
Post by: curaga on September 09, 2011, 12:14:55 AM
There was a small mixup with the 64-bit modules. Look forward to the next release.
Title: Re: Tiny Core v4.0 Alpha 3
Post by: bmarkus on September 09, 2011, 12:31:38 AM
Any idea how to avoid the 10-15% size increase of 4.0 built extensions compared to 3.x build? In most cases no need for GCC 4.61. Adding GCC from 3.x to 4.0 repo would help. BTW, 4.0 repo contains GCC 3.3.6 also.
Title: Re: Tiny Core v4.0 Alpha 3
Post by: curaga on September 09, 2011, 12:52:02 AM
Why not ask the gcc folks on what changed with -Os from 4.4 to 4.6? If there's a reproducible test case, some small package etc, they should listen.
Title: Re: Tiny Core v4.0 Alpha 3
Post by: bmarkus on September 09, 2011, 01:54:09 AM
Why not ask the gcc folks on what changed with -Os from 4.4 to 4.6? If there's a reproducible test case, some small package etc, they should listen.

For sure there are test cases (all extensions maintained by me :) ) Will make a try
Title: Re: Tiny Core v4.0 Alpha 3
Post by: Jason W on September 09, 2011, 04:24:28 AM
Here is link noticing a change in the behavior of gcc 4.6, perhaps building gcc with "--enable-frame-pointer" can restore the smaller size binaries generated by the previous gcc.  May be worth a try, if I am reading that page right.  (EDIT:I don't see -fomit-frame-pointer along with -Os causing a larger binary size with the TC 3.x I have available to test with remotely, so may not be the cause.)

http://www.mail-archive.com/coreboot@coreboot.org/msg30467.html (http://www.mail-archive.com/coreboot@coreboot.org/msg30467.html)
Title: Re: Tiny Core v4.0 Alpha 3
Post by: robc on September 10, 2011, 12:13:20 AM
Here is link noticing a change in the behavior of gcc 4.6, perhaps building gcc with "--enable-frame-pointer" can restore the smaller size binaries generated by the previous gcc.  May be worth a try, if I am reading that page right.  (EDIT:I don't see -fomit-frame-pointer along with -Os causing a larger binary size with the TC 3.x I have available to test with remotely, so may not be the cause.)

http://www.mail-archive.com/coreboot@coreboot.org/msg30467.html (http://www.mail-archive.com/coreboot@coreboot.org/msg30467.html)
I ran some quick builds of ccache to look at the different optimizations.  The build tests failed without the -fno-omit-frame-pointer switch.  The builds finished and produced the binary but the binary failed at runtime with the testsuites.  I would recommend adding the --enable-frame-pointer into gcc to prevent any runtime problems.

Here is a table of optimizations ran:
optimizationbinary size
-Os74.9k
-O175.6k
-O272.2k
-O389.0k
-Ofast85.9k
I find it interesting that the -O2 gives the smallest binary size, though it is over 33% larger then in 3.x.

Also, compiletc depends on linux-3.0.1_api-headers, is this correct? I thought the kernel was 3.0.3.
Title: Re: Tiny Core v4.0 Alpha 3
Post by: hjkl on September 10, 2011, 03:09:42 AM
Hi,

I have a USB CompactFlash card reader.  When I use it with a 64MB CompactFlash card on TC3 and DSL, I get a message like this:


usb 2-2: new full speed USB device using uhci_hcd and address 2
scsi1 : usb-storage 2-2:1.0
scsi 1:0:0:0: Direct-Access     Generic  STORAGE DEVICE   0.01 PQ: 0 ANSI: 0
sd 1:0:0:0: Attached scsi generic sg1 type 0
sd 1:0:0:0: [sdb] 125185 512-byte logical blocks: (64.0 MB/61.1 MiB)
sd 1:0:0:0: [sdb] Test WP failed, assume Write Enabled
sd 1:0:0:0: [sdb] Assuming drive cache: write through
sd 1:0:0:0: [sdb] Test WP failed, assume Write Enabled
sd 1:0:0:0: [sdb] Assuming drive cache: write through
 sdb: sdb1
sd 1:0:0:0: [sdb] Test WP failed, assume Write Enabled
sd 1:0:0:0: [sdb] Assuming drive cache: write through
sd 1:0:0:0: [sdb] Attached SCSI removable disk


My memory card looks like this:

tc@box[~]$ fdisk -l /dev/sdb

Disk /dev/sdb: 64 MB, 64094720 bytes
2 heads, 62 sectors/track, 1009 cylinders
Units = cylinders of 124 * 512 = 63488 bytes

   Device Boot      Start         End      Blocks  Id System
/dev/sdb1   *           1        1009       62527  83 Linux


TC3:
Linux box 2.6.33.3-tinycore #2012 SMP Wed May 12 17:05:42 EEST 2010 i686 GNU/Linux


DSL:
Linux box 2.4.31 #1 SMP Sat Jul 12 16:12:42 EDT 2008 i686 GNU/Linux


But, when I connect the same device to Alpha3, I get a message like this:


usb 2-2: new full speed USB device number 2 using uhci_hcd
scsi3 : usb-storage 2-2:1.0
scsi 3:0:0:0: Direct-Access     Generic  STORAGE DEVICE   0.01 PQ: 0 ANSI: 0
sd 3:0:0:0: Attached scsi generic sg2 type 0
sd 3:0:0:0: [sdc] 125185 512-byte logical blocks: (64.0 MB/61.1 MiB)
sd 3:0:0:0: [sdc] Test WP failed, assume Write Enabled
sd 3:0:0:0: [sdc] Cache data unavailable
sd 3:0:0:0: [sdc] Assuming drive cache: write through
sd 3:0:0:0: [sdc] Test WP failed, assume Write Enabled
sd 3:0:0:0: [sdc] Cache data unavailable
sd 3:0:0:0: [sdc] Assuming drive cache: write through
 sdc: sdc1
sd 3:0:0:0: [sdc] Test WP failed, assume Write Enabled
sd 3:0:0:0: [sdc] Cache data unavailable
sd 3:0:0:0: [sdc] Assuming drive cache: write through
sd 3:0:0:0: [sdc] Attached SCSI removable disk
sd 3:0:0:0: [sdc] Unhandled sense code
sd 3:0:0:0: [sdc]  Result: hostbyte=0x10 driverbyte=0x08
sd 3:0:0:0: [sdc]  Sense Key : 0x3 [current]
sd 3:0:0:0: [sdc]  ASC=0x14 ASCQ=0x0
sd 3:0:0:0: [sdc] CDB: cdb[0]=0x28: 28 00 00 01 e9 00 00 00 01 00
end_request: critical target error, dev sdc, sector 125184
Buffer I/O error on device sdc, logical block 125184


Is this a kernel problem?  By the way, my memory card is fine.

Thank you.
Title: Re: Tiny Core v4.0 Alpha 3
Post by: Juanito on September 10, 2011, 08:35:41 AM
Also, compiletc depends on linux-3.0.1_api-headers, is this correct? I thought the kernel was 3.0.3.

The toolchain was built with the linux-3.0.1 api headers - I don't believe (I may be wrong) that changing to the 3.0.3 kernel requires re-building the toolchain.
Title: Re: Tiny Core v4.0 Alpha 3
Post by: yoshi314 on September 10, 2011, 08:54:02 AM
Also, compiletc depends on linux-3.0.1_api-headers, is this correct? I thought the kernel was 3.0.3.

The toolchain was built with the linux-3.0.1 api headers - I don't believe (I may be wrong) that changing to the 3.0.3 kernel requires re-building the toolchain.
only thing that is really influenced by kernel headers is (e)glibc feature set during build time.

also minor releases are just security updates, as 3.0.x series is.

also, i cannot install sdl. the sdl.tcz file starts downloading but i eventually get 404 error. where should i report this ?
Title: Re: Tiny Core v4.0 Alpha 3
Post by: Rich on September 10, 2011, 12:01:42 PM
Hi hjkl
Try the following boot code:

usb-storage.quirks=VID:PID:cw

Where  VID  is the vendor ID and  PID  is the product ID for the storage device.

You can get the  VID:PID  by running  lsusb  which is found in  usb-utils.tcz

If that does not fix it you can try:

usb-storage.quirks=VID:PID:bcw
Title: Re: Tiny Core v4.0 Alpha 3
Post by: hjkl on September 10, 2011, 10:54:44 PM
Hi Rich,

Thank you for the information.  The boot code you suggested fixed the problem.
Now, my extlinux.conf looks like this:

Code: [Select]
label tc
   kernel /tc4/vmlinuz
   append vga=791 usb-storage.quirks=05e3:0700:cw initrd=/tc4/tinycore.gz

The error message I got changed from:
Code: [Select]
sd 3:0:0:0: [sdc] 125185 512-byte logical blocks: (64.0 MB/61.1 MiB)
.
.
end_request: critical target error, dev sdc, sector 125184
Buffer I/O error on device sdc, logical block 125184

to:
Code: [Select]
sd 3:0:0:0: [sdc] Adjusting the sector count from its reported value: 125185
sd 3:0:0:0: [sdc] 125184 512-byte logical blocks: (64.0 MB/61.1 MiB)

Thank you.
Title: Re: Tiny Core v4.0 Alpha 3
Post by: curaga on September 10, 2011, 11:02:23 PM
hjkl, please open a bug against the kernel's usb system with these details. It's a regression from the previous kernel.
Title: Re: Tiny Core v4.0 Alpha 3
Post by: Juanito on September 10, 2011, 11:34:46 PM
I ran some quick builds of ccache to look at the different optimizations.  The build tests failed without the -fno-omit-frame-pointer switch.  The builds finished and produced the binary but the binary failed at runtime with the testsuites.  I would recommend adding the --enable-frame-pointer into gcc to prevent any runtime problems.

Looking at http://gcc.gnu.org/onlinedocs/gcc-4.6.1/gcc/Optimize-Options.html#Optimize-Options: (http://gcc.gnu.org/onlinedocs/gcc-4.6.1/gcc/Optimize-Options.html#Optimize-Options:)
Quote
-O also turns on -fomit-frame-pointer on machines where doing so does not interfere with debugging

Quote
Starting with GCC version 4.6, the default setting (when not optimizing for size) for 32-bit Linux x86 and 32-bit Darwin x86 targets has been changed to -fomit-frame-pointer. The default can be reverted to -fno-omit-frame-pointer by configuring GCC with the --enable-frame-pointer configure option.

Given:
Quote
-fomit-frame-pointer
Don't keep the frame pointer in a register for functions that don't need one. This avoids the instructions to save, set up and restore frame pointers; it also makes an extra register available in many functions. It also makes debugging impossible on some machines.

..it is somehow hard to see why including "instructions to save, set up and restore frame pointers" makes the size of compiled binaries smaller.

I'll look at this some more in the next couple of days.
Title: Re: Tiny Core v4.0 Alpha 3
Post by: hjkl on September 11, 2011, 01:07:54 AM
hjkl, please open a bug against the kernel's usb system with these details. It's a regression from the previous kernel.

Hi curaga,
I got your suggestion.  But, I'm afraid I don't know where to go from here in order to report "a bug against the kernel's usb system."  I realize that I have to learn a lot more.  :(
Title: Re: Tiny Core v4.0 Alpha 3
Post by: curaga on September 11, 2011, 02:32:04 AM
Hi curaga,
I got your suggestion.  But, I'm afraid I don't know where to go from here in order to report "a bug against the kernel's usb system."  I realize that I have to learn a lot more.  :(

It would be bugzilla.kernel.org, but kernel.org is down right now after the server was rooted.