WelcomeWelcome | FAQFAQ | DownloadsDownloads | WikiWiki

Author Topic: Tiny core on Eden ulv 500MHz cpu  (Read 1345 times)

Offline mocore

  • Hero Member
  • *****
  • Posts: 633
  • ~.~
Re: Tiny core on Eden ulv 500MHz cpu
« Reply #15 on: August 12, 2024, 09:46:50 AM »
I have to completely disable boot from internal drive (to disallow the baseline damn small Linux to boot) to het tiny core booting from usb.
The inconvenience is that this requires to hookup monitor and keyboard which is inconvenient as the computer is in  a crammed utility area.

Any advice is welcome but I can live with it.

begging the question....

what (loader) / how  - exactly dose the the  " damn small Linux" boot ?

fwiw
with this info it might be possible to add an option to *whatever* loader's configuration
which boots from the usb-device/partition-uuid ...
and (if that works) set that ( in the loader cfg) as default and dsl as a fallback ( if usb-part-uuid is not found)

Offline Stefann

  • Jr. Member
  • **
  • Posts: 78
Re: Tiny core on Eden ulv 500MHz cpu
« Reply #16 on: August 12, 2024, 11:12:52 AM »
I have to completely disable boot from internal drive (to disallow the baseline damn small Linux to boot) to het tiny core booting from usb.
The inconvenience is that this requires to hookup monitor and keyboard which is inconvenient as the computer is in  a crammed utility area.

Any advice is welcome but I can live with it.

begging the question....

what (loader) / how  - exactly dose the the  " damn small Linux" boot ?

fwiw
with this info it might be possible to add an option to *whatever* loader's configuration
which boots from the usb-device/partition-uuid ...
and (if that works) set that ( in the loader cfg) as default and dsl as a fallback ( if usb-part-uuid is not found)
DSL boots with syslinux3.70. later versions bring problems.
I don't know whether that supports uuid. t.b.h. I had never heard from uuid until last week.
the tiny core core does not fit on the boot-partition: that partition is just big enough for dsl.
And I sure want to fully setup a new p1 partition. Want a clean start. This time a BIG boot partition that includes the ice folder.

Thanks for the suggestion.


Offline mocore

  • Hero Member
  • *****
  • Posts: 633
  • ~.~
Re: Tiny core on Eden ulv 500MHz cpu
« Reply #17 on: August 12, 2024, 11:42:55 AM »
DSL boots with syslinux3.70. later versions bring problems.

what dose the tiny core usb boot (syslinux/grub/ect) ?

if its also using syslinux
this post might have some relevant perspective
 "Is it possible to use Syslinux to boot another drive?" @ https://bbs.archlinux.org/viewtopic.php?id=224923
in summery
ether chain-load the (syslinux)loader on the usb
or create an entry in the internal 'dsl' syslinux config , to set/select the usb partition and boot the linux/initrd from it  .

the process would be conceptually similar for other loaders , the cfg syntax would differ ..

Offline Stefann

  • Jr. Member
  • **
  • Posts: 78
Re: Tiny core on Eden ulv 500MHz cpu
« Reply #18 on: August 12, 2024, 01:09:39 PM »
DSL boots with syslinux3.70. later versions bring problems.

what dose the tiny core usb boot (syslinux/grub/ect) ?

if its also using syslinux
this post might have some relevant perspective
 "Is it possible to use Syslinux to boot another drive?" @ https://bbs.archlinux.org/viewtopic.php?id=224923
in summery
ether chain-load the (syslinux)loader on the usb
or create an entry in the internal 'dsl' syslinux config , to set/select the usb partition and boot the linux/initrd from it  .

the process would be conceptually similar for other loaders , the cfg syntax would differ ..
tiny core also uses syslinux.
My existing DSL backup USB had a very small boot-partition, just enough for DSL image, I did not want to erase that to make place for tiny Core Image because "if something went wrong I sure wanted to have my DSL baseline and backup".
Indeed I got my 1st tiny core loaded by creating a bootable USB stick using the notes I got from DSL. Using the syslinux-3.70 (it's now at version 6). Mind you... basically using a process with tools from 2008...
From there I created multiple "pristine" USB-sticks using the tiny core built-in install tool.
It runs like a charm from USB now.

Yes... One can hobby around... but I'm setting this up with the idea that it will be a reliable base for multiple years. So really want to do this good. Want to use "as much non-modified tools as possible".

So... I'm n ow very well able to boot from USB and setup bootable internal drive... but... bit hindered by the refusal of the computer to obey the bios-boot-sequence. It boots from internal drive even now I set bootsequence to usb first. Internal drive is a CF-card that I can easily eject, but than I cannot write it. So... need to hookup monitor/keyboard. This is very possible, just a bit crammed in the utility room.

but.. now hobbying with un-setting the boot-flag:
- booting from internal drive into DSL
- unset boot-flag from the internal drive I just booted from
- reboot should than go from USB

we'll see....
I'll get it sorted out one way or the other.

Offline mocore

  • Hero Member
  • *****
  • Posts: 633
  • ~.~
Re: Tiny core on Eden ulv 500MHz cpu
« Reply #19 on: August 16, 2024, 07:57:14 PM »
the syslinux "*LOCALBOOT" config option might be of interest
https://git.kernel.org/pub/scm/boot/syslinux/syslinux.git/tree/txt/syslinux.cfg.txt#n292

DSL boots with syslinux3.70. later versions bring problems.
I don't know whether that supports uuid. t.b.h.
I had never heard from uuid until last week.
fwiw just happened to read
f you are going to run Tiny Core from a pendrive, or any removal device, you should be using UUID or LABEL, to properly identify the device.  The installation program for pendrives included with Tiny Core up to v3.6 provides an automatic setup with such features. You will also need a waitusb for slow removal devices to be detected. This is also provided with the install program.

in this case uuid is a command line option passed to the kernel/modules & (i assume ??... [1] ) init scripts
see also proc/cmdline

Quote
The kernel parses parameters from the kernel command line up to “–”; if it doesn’t recognize a parameter and it doesn’t contain a ‘.’, the parameter gets passed to init: parameters with ‘=’ go into init’s environment, others are passed as command line arguments to init. Everything after “–” is passed as an argument to init..

[1] https://www.kernel.org/doc/html/v4.14/admin-guide/kernel-parameters.html
[2] https://raspberrypi.stackexchange.com/questions/113645/what-is-the-difference-between-adding-ro-to-boot-cmdline-txt-vs-etc-fstab#comment220872_128206

Offline Stefann

  • Jr. Member
  • **
  • Posts: 78
Re: Tiny core on Eden ulv 500MHz cpu
« Reply #20 on: August 17, 2024, 03:10:16 AM »
the syslinux "*LOCALBOOT" config option might be of interest
https://git.kernel.org/pub/scm/boot/syslinux/syslinux.git/tree/txt/syslinux.cfg.txt#n292
That is a real cool suggestion!
At the end... I did need to hookup the monitor&keyboard anyway.
At some point during the juggling with CF-cards and USB sticks I lost connection and had to have a HW console.
Suggestion really appreciated and of potential use somewhere in future where I only need to update TinyCore in stead of moving to a full new OS.

The uuid suggestions make sense but that was only a head scratcher due to the old syslinux I had with dsl and I needed to use in the transfer process. I'm now at the fresh tiny core that has that by default fully functional.

Anyway.... It runs now.
On a brand new pristine Tinycore from internal drive (which is a CF card).
TinyCore AND the full home automation application. All is running and controlling my lights, heat pump, solar panels, energy monitor, garden watering, jacuzzi, EV-charger, alarm system.

Real cool, real happy.
« Last Edit: August 17, 2024, 03:16:04 AM by Stefann »

Offline gadget42

  • Hero Member
  • *****
  • Posts: 774
Re: Tiny core on Eden ulv 500MHz cpu
« Reply #21 on: October 19, 2024, 05:49:48 AM »
given this post on another thread:
https://forum.tinycorelinux.net/index.php/topic,27320.msg175835.html#msg175835

@Stefann, would it be possible to get more specifics regarding your setup?

for example, i frequently put together complete documentation for a project that allows(hopefully) someone completely unknown to me to rebuild/reconstruct/recreate the project from a-to-z/start-to-finish(as long as all the hardware/software/peripherals/etc are procurable)?

as a sidenote, i am frequently reviewing these notes while brainstorming new/future possibilities/potential-projects and often wish i could encourage my past-self to do an even-better-job on the note-taking...argh!

surely i am not the only reader who is impressed and intrigued by your successful project and its longevity.

this could even be in the form of an attachment which would make it easy for a forum member to download and enjoy offline.

just a humble request...thanks!
The fluctuation theorem has long been known for a sudden switch of the Hamiltonian of a classical system Z54 . For a quantum system with a Hamiltonian changing from... https://forum.tinycorelinux.net/index.php/topic,25972.msg166580.html#msg166580

Offline Stefann

  • Jr. Member
  • **
  • Posts: 78
Re: Tiny core on Eden ulv 500MHz cpu
« Reply #22 on: October 19, 2024, 08:57:54 AM »
Pfew...
what do you want?
The full history of my damn small linux project?
- I can/could summarise but not in extreme detail. That is a hobby project over 10+ years. And not extremely efficient as that is how I learned linux at the same time.

Or a summary how I got moved to tiny core?
- its kind of described in above posts but not extremely organised

I can write "a bit" but "all" is not possible

Offline gadget42

  • Hero Member
  • *****
  • Posts: 774
Re: Tiny core on Eden ulv 500MHz cpu
« Reply #23 on: October 19, 2024, 11:09:55 AM »
well, you've brought out the big-bang-theory-nerd-geek in me with the following(quotes from above posts):
Quote
The computer is a ULV 500MHz EDEN i386 1W cpu with 1G RAM.
...
Quote
Anyway.... It runs now.
On a brand new pristine Tinycore from internal drive (which is a CF card).
TinyCore AND the full home automation application. All is running and controlling my lights, heat pump, solar panels, energy monitor, garden watering, jacuzzi, EV-charger, alarm system.

Real cool, real happy.

really whatever you'd care to share(would be interesting for sure!)
The fluctuation theorem has long been known for a sudden switch of the Hamiltonian of a classical system Z54 . For a quantum system with a Hamiltonian changing from... https://forum.tinycorelinux.net/index.php/topic,25972.msg166580.html#msg166580

Offline Stefann

  • Jr. Member
  • **
  • Posts: 78
Re: Tiny core on Eden ulv 500MHz cpu
« Reply #24 on: October 20, 2024, 03:03:19 AM »
Ok…. Here you go…

Computer you can find here: https://robosavvy.com/static/RoboSavvyPages/eBox/DMP_EBOX_catalogue_old-2011.pdf
- I have the Xbox 43xx with VIA eden ULV 500MHz processor.
- I have 1G RAM
- And at this moment 8G CF card as “hard disk”
- Processor is 1W, total power consumption is more.
- This computer is no longer available. I bought in its 2008 for about 200euro (approx 200$)

Today I would go for a raspberry PI but that did not exist at that time.

For my home automation I literally did everything :
- roof mounted heatpipe system
- self plumbed the heating
- did all electricity
- made the PCB’s with electronics
- did all the control wiring in house
- and programmed the control program from scratch in C.

These days I would probably have adopted “home assistant” but that did not exist (or at least not generally) at that time.

I started with 2 protocols:
- x10 which is a Powerline protocol for light switches and is controlled via an usb enquiped gateway. The protocol is slow (1..2seconds) and unreliable but allows connection to lights without additional wiring. At that time wireless was still in its infancy.
https://www.uk-automation.co.uk/products/Marmitek-X10-CM15Pro-Computer-Interface-with-Transceiver_revpage-2/

- 1wire protocol that uses a 1 wire serial cable that can connect multiple inputs, outputs and temperature sensors. The endpoints are simple “transistor style” components of about 2euro/$. They are accessed in about 0.2seconds and (as being hard wired) quite reliable. This is controlled by a usb adapter.
https://www.ibuttonshop.nl/ds9490r-usb-1-wire-adapter

====
As an operating system I used Damn Small Linux (DSL) for reason:
- runs in RAM so even on a slow underpowered processor have decent speed
- runs in RAM so minimal amount of write actions that cause the flashdrive to wear and ultimately break down

The sad thing:
- when I installed it in 2008 DSL was maintained. But maintenance stopped at about that time. Sad… no upgrades :(

After all the hardware actions my dream had been to do some high level programming to develop controllers. I have a background in control technology so I was looking forward to explore variants.

How bad….
The usb gateways I was using had opensource sdk’s but these appeared to be very low quality. The 1wire components should be accessible in 0.2 seconds but reality was more like 5 seconds. So… at the end I found myself completely rewriting the usb interface  software to the level of precisely timing the control of the usb endpoints all the way until bit-level. Ouch. But i survived :).
On the positive side: “at work I have much smoother discussion with our software engineers since than”.

Anyway…
- Program is completely written in C, There is a nice modularity:
- drivers/gateways to the components
- control algorithms
- process flow and reporting
- For gui i run an Apache server with php website

I survived at DSL with linux 2.4.31 until this spring.
During that time I once did recompile gcc for reason I did need libusb 1.0 while the included version was only at 0.1. That compile was a bit of nightmare as it took about 5 hours and was constantly running out of RAM. I had to juggle compile options severely to get it succeeding. All the time I was quite worried that i would get stuck.
The backup I had was a bit shaky. I never succeeded to have a “real reliable backup” because dsl uses a lot of mounts and symlinks that I not got to properly backup.

Over time I kept extending the application:
- got curtains integrated via the x10 interface where I soldered the buttons of the remote of the curtains to x10 switches.
- got energy reading with rs232 over usb interface
- got pv panel reading via http interface
- got EV charge station connecting via http interface
- got garden watering implemented with 1wire components
- got alarm integrated by connecting 1wire input to its relay output

And than I hit the hard limit.
1/ Internet moving to “all https”
2/ wishing to include a modern python program that is able to read my EV car diagnostics.
For those I would need a modern Linux.
For about a year I considered options.

Basically:
- either start all over on a raspberry pi running home assistant
- or get all on a modern Linux.

At the end I did choose the latter. I migrated to tiny core 15 which I really really love:
- it includes latest gcc and latest kernel so my board from 2008 is 100% up to date and extendable now.
- it has really small footprint
- runs in ram which makes it fast and does not wear the compact flash harddrive. I literally have only 1 ssd write per day (bulk saving the monitoring data of that day)
- the concept of mounting of compressed applications is amazing. The system remains extremely pristine. Customizations are very much concentrated in .filetool.lst, bootlocal.sh and syslinux.conf files. All files are “real non sym linked files” so can be very easily backed up with a compressed or non compressed copy command.

I had my lesson from the gcc recompile that had me worried whether “I would survive” so I prepared the full migration on a second “development workstation” being a hp510 thin client that I purchased for the whopping price of 10euro/$.
Biggest hurdle was to get a 1st version of tinycore running.
Strangely enough:
- getting a 1st pen drive with windows is well supported from the website.
- but getting a 1st pen drive from Linux is more tricky. Especially if that needs to come from a very old dsl kernel.
At the end I succeeded.

After having tinycore running on my “development workstation hp510” the transfer to the 500MHz board was relatively simple. I first tested the tiny core os by booting from usb.
Than removed the original compact flash and installed tinycore from USB on a fresh compact flash (keeping the original cf card such that I could always go back by simple hardware swap).

—- why not gone for fresh home assistant on raspberry pi?
A full migration would cost about a year of weekends to get all reprogrammed. I don’t want to do that.
The way  I would do this would be to run home assistant on raspberry pi “at the side” for all modern connections and keep the old board for all legacy and simple make a data path between the 2 boards.
However…..
Home assistant needs about 4G of ram. That means it can only run on the bigger (more power consuming) raspberry pi’s. I basically “do not really like that”. I also wonder whether I would be able to run all in ram. If not, it will wear the ssd card. And as this project is clearly not caring about footprint… it’s unclear how that will develop in future.
So…
At some point I may try things… but at this moment I’m happy that I have modernized my low power, full ram running system.

Well… this is about it….
« Last Edit: October 20, 2024, 03:05:57 AM by Stefann »

Offline gadget42

  • Hero Member
  • *****
  • Posts: 774
Re: Tiny core on Eden ulv 500MHz cpu
« Reply #25 on: October 20, 2024, 04:01:22 PM »
that...was...great!

going to give it a second read after a bit.

again, thanks for taking the time to share!
The fluctuation theorem has long been known for a sudden switch of the Hamiltonian of a classical system Z54 . For a quantum system with a Hamiltonian changing from... https://forum.tinycorelinux.net/index.php/topic,25972.msg166580.html#msg166580

Offline Stefann

  • Jr. Member
  • **
  • Posts: 78
Re: Tiny core on Eden ulv 500MHz cpu
« Reply #26 on: October 21, 2024, 02:22:09 AM »
Yes… if you see it like this in 1 story it’s quite a thing.
To put things in perspective, it did grow to this in 16 years.
It started relatively simple and kept growing.

With that said,…
I knew in advance it would be a system that would get expanded over multiple years.
For that reason I really took the time to get the basics right from the start such that I could kee0 expanding without getting stuck.
That’s why you will see me on several threads here to finetune my tiny core install to get very solid. Tiny Core will need to serve me for an other 15 years or so.

As said above, there are some extreme advantages of tiny core:
- it does not matter if I “by accident” remove or overwrite kernel files or drop files in the kernel area. Kernel is brand new with every reboot.
- keeping track of customizations is super easy: they are all in .filetool.lst, bootlocal.lst and extlinux.conf.
- out of the box it does zero writes to harddisk which keeps the compact flash alive. Only hard disks writes are the self triggered writes.
- really small footprint, minimalistic, no included applications I do not need, everything beyond kernel to be specifically added via tce extensions.
- fully running from ram which makes it fast on even very old hardware.
- in fact tiny core is a bit of a luxurious PLC. A plc also brings small, low power, low compute, ram/flash based computing but programming is much more restricted as it lacks a powerfull operating system. Tiny core enables “plc like hardware” to get programmed with latest Linux functions and applications.

An other note,…
At the end… I’m controlling about 20 lights, 8 garden irrigation valves, 4 heat pump setting, 4 EV charge settings, 2 pump settings for heatpipes, 4 settings for jacuzzi. That is about 42 bit of data.
As inputs I have about 16 temperature sensors so there is more data at the input.
But… at the end I’m controlling just 42 bit. 42 bit easily fit in 1 integer.

So… the only thing my home controller has to do is “control 1 integer”.
Even a 500MHz cpu seems overpowered to do that.
Using a raspberry pi 4 or 5 with 4 or 8 GB ram seems totally overkill :).

At some point I think I will explore the raspberry pi but my 1st thought will probably be to see what I can do with the pico or zero.


Offline Leee

  • Full Member
  • ***
  • Posts: 119
Re: Tiny core on Eden ulv 500MHz cpu
« Reply #27 on: October 21, 2024, 07:11:06 PM »
Thanks @Stefann for posting this - It's fascinating even if I never do anything even remotely like it.
core 15.0 x86_64