site  contact  subhomenews

Finally, success with OpenADK

March 06, 2018 — BarryK

I wanted the 'dmsetup' utility compiled statically, for use in initramfs. This is in the LVM2 package. It turned out to be a saga of many many hours...

Unfortunately, both OpenEmbedded and Landley Aboriginal dropped support for uClibc, going over to musl. What is really odd, is the developers on both of these projects gave the same reason, that uClibc is a dead project. That is very odd, as uClibc-ng is very active. Were they ignorant of the existence of uClib-ng? -- incredible if so.

Anyway, musl. have used it many time, just don't like it. uClibc is far more glibc-compatible, and hence far easier to compile source packages.

I did attempt to compile 'dmsetup' in an Alpine Linux x86_64 musl rootfs, but finally used Landley's Aboriginal x86_64 uClibc rootfs, version 1.2.0 -- very old, but it works great. year 2012 in fact.

However, uClibc does not have the fmemopen() function, so I had to compile an older LVM2 that does not require that function -- version 2.02.119. Success, compiled it statically, about 500KB stripped.

OpenADK

I ruminated on what other rootfs's and toolchains there are out there, that will have a recent version of uClibc. One of them is OpenADK, that I have tried a few times over the years, always failed, see these reports:

http://bkhome.org/news/201606/playing-with-cross-compile-toolsets.html

http://bkhome.org/news/201704/openembedded-morty.html

Decided to have another go!

Downloaded the latest snapshot, ran "make menuconfig" and then "make", hit some failures, fixed them, but finally gcc compile failed with "unable to determine size of (long long)".

Scratched my head for sometime over that, but then it occurred to me that my host system might not support "long long". That does not seem to good, but anyway. My host is EasyOS Pyro64, the packages were compiled in OpenEmbedded, targeting embedded systems, and perhaps this is one compromise.

So, went over to Quirky Xerus64 8.5, which is built with Ubuntu 16.04.4 DEBs. This time success:

# make distclean
copy DOTconfig to .config
# make menuconfig
# export FORCE_UNSAFE_CONFIGURE=1
# make
copy /usr/bin/autom4te to openadk/host_x86_64-oe-linux/usr/bin/
# make

...as you can see above, a couple of little tricks were required, the "export FORCE_UNSAFE_CONFIGURE=1", and coreutils wanted a "autom4te" file.

It finished, and built a toolchain. Now I need to study the docs, see how to compile packages, and built a development rootfs.

Tags: linux

Easy network printing with CUPS

January 12, 2018 — BarryK

I have been trying all day to setup printing over a small network, just two PCs running Easy 0.6.6, connected to an ethernet router (and to the Internet via wi-fi wan, to my mobile phone hotspot).

One PC, my "midi-tower", has a Brother HL-2040 laser printer connected via USB port. Local printing works fine. The other PC is my Mele "mini-pc", and I want to be able to print from it.

The problem is, I cannot get the "ipp" protocol to work. I have studied online documentation, and can get the client machine, my mini-pc, to see the remote printer, however when do an actual print, get the dreaded "Filter failed".

As stated, I have messed around all day, trying different things. Then, I found something that "just works", very simple. I would like to acknowledge "paulkerry" for this info:

https://bbs.archlinux.org/viewtopic.php?id=206669

Just a comment: there is a lot of outdated, vague, ambiguous and misleading documentation about CUPS online. For example, one "very official" site explained the format of the ipp protocol as:

ipp://hostname/printers/printername

...without explaining that only "hostname" and "printername" must be substituted, and the text "printers" must be left as-is. There wasn't even an example, nor was it properly explained how to find the printername.

Anyway, I did learn how to specify ipp properly, but got stuck at "Filter failed".

The method described by paulkerry works, so here is a little tutorial to explain how to set it up. Note, I plan to semi-automate this, by extending QuickSamba, which I plan to rename to EasyShare. Anyway, the tut...

1: Firewall

I ran the firewall setup on both client (my mini-pc) and server (my midi-tower) PCs, so that the CUPS port (631) is enabled. In this snapshot, I have also enabled Samba ports, but that isn't necessary for just printing with CUPS:

image

On the server-PC, just setup the local printer as you normally would, but tick some extra boxes...

2: Server PC

You need to have the cupsd daemon running and point the web browser at http://localhost:631. In Puppy/Quirky/Easy, you do this by running the "CUPS Printer Wizard":

image

A window will popup asking if you want to add a new printer, and you click "Yes", then you will get the CUPS web interface:

image

...click on "Adding Printers and Classes", then the next window:

images

...click each of those, 1, 2, 3 and 4. Do not miss "Change Settings". Probably "Allow remote administration" is optional, but I enabled it, as I was then able to bring up the CUPS web interface of the server-PC on my client-PC. Next window...

image
...well, anyone who has setup a local printer will be familiar with this. Continuing, as per usual, except an important checkbox to tick...

image
...the first two boxes are pre-filled. It is not essential, but useful, to fill "Location". And, you must tick "Share This Printer".

In the next window, you choose a driver...

image

And set some printer options...

image

That's it, the server-PC is setup. Before setting up the client, you will need to know the IP-address of the server. A few ways of doing that. Open a terminal and type "ifconfig", and you will see it -- in my case it is "192.168.0.3":

image

In Puppy/Easy/Quirky, there is no need to edit the /etc/cups/cupsd.conf main configuration file, as it is pre-configured OK. Note, for this tutorial, I am running pristine EasyOS Pyro64 version 0.6.6.

Now for the client-PC...

3: Client PC

Over on my Mele mini-pc, setup is easy-peasy. I created file /etc/cups/client.conf...

image

...with content just one line, "ServerName <ip address of server>"

Finally, restart the cupsd daemon...

image

...and run "lpstat -t" to verify that the remote printer is found.

That's it, nothing more to do. If you ran an application and choose "Print...", the remote printer will be offered, in my case, my Brother HL-2040.

Also, the CUPS web interface of the server can be accessed from the client, by going to "http://192.168.0.3:631" in the client web browser.

As stated, I have thoughts how this setup can be semi-automated, including automatic creation and update (if the ip-address changes) of /etc/cups/client.conf. Stay tuned.

Tags: linux, easy, quirky

Fatdog64 720-final released

December 21, 2017 — BarryK

Fatdog is a fork of Puppy Linux, and I have always found it exciting to watch its progression. Reason, there are often very clever innovations. The developers are 'kirk' and 'jamesbond', and more recently 'fatdog', 'sfr', 'step' and others.

Fatdog forked from Puppy Linux many years go, using the Unleashed build system, before Puppy went over to the Woof build system. Here is a Puppy family-tree:

http://puppylinux.com/family-tree.html

...it doesn't actually show dates, but Fatdog forked from Puppy 4.0, I forget how many years ago that was. The developers took Unleashed off in a new direction, and more recently they are able to build the packages of Fatdog from source, see forum post:

http://www.murga-linux.com/puppy/viewtopic.php?t=109961

Correction:
They did use Woof, before branching entirely to their own build system, with complete compile-from-source, see timeline:

http://distro.ibiblio.org/fatdog/web/history.html

Development is still happening very intensely, and version 720 of Fatdog64 has just been released, see announcement on the Puppy Forum:

http://murga-linux.com/puppy/viewtopic.php?t=112372

image

Here is the Fatdog homepage:

http://distro.ibiblio.org/fatdog/web/

I will also download it, to examine some of the things listed in the release notes -- with our puplets, we cross-pollinate, and I will likely find some new ideas for Easy and Quirky.

Tags: linux

Puppy Linux Xenialpup 7.5 released

December 07, 2017 — BarryK

At last, another official Puppy Linux release! My goodness, if you look at Distrowatch, the last official release announcement was 01micko's Slacko 6.3 in November 2015:

https://distrowatch.com/table.php?distribution=puppy

It gave the impression that nothing was happening on the Puppy-front, however, a visit to the Puppy Forum shows, as always, feverish activity. Lots of people developing and testing, and many custom releases. However, no one put their hand up for their release to be the next official pup. Until now.

Philip Broughton, '666philb' on the forum, has coordinated this pup, and we were getting feedback that this should be the next official pup. So, Philip decided to go for it.

Here is the announcement:

http://blog.puppylinux.com/?viewDetailed=00047

Release notes:

32-bit: http://distro.ibiblio.org/puppylinux/puppy-xenial/32/release-xenialpup-7.5.htm

64-bit: http://distro.ibiblio.org/puppylinux/puppy-xenial/64/release-xenialpup64-7.5.htm

Join discussion in the Puppy Forum here:

32-bit: http://murga-linux.com/puppy/viewtopic.php?t=106479

64-bit: http://murga-linux.com/puppy/viewtopic.php?t=107331

Great news. This pup is of course, built with woof-CE.

Tags: linux

Kernel 4.13.9 compiled in Pyro64

October 24, 2017 — BarryK

In Quirky Pyro64 to be more precise.

The build scripts and patches are uploaded here:

http://distro.ibiblio.org/easyos/source/kernel/4.13.9/

I hit a very strange bug. When the build script ran "make menuconfig", the terminal crashed. No error messages, it just aborted. I recompiled ncurses, the terminal still crashed.

Very odd. The urxvt terminal emulator is working fine, using it everyday in Pyro64. I googled of course, found the same crash reported a few times, but no definite fix.

So, changed the script to run "make gconfig", the GTK config, and that worked fine.

Tags: linux

First tutorial on booting Linux on a PC

September 26, 2017 — BarryK

I am planning two or three tutorials, and this is the first:

http://bkhome.org/linux/prepare-your-computer-for-booting-linux.html

Although Easy Linux is mentioned a few times in the tutorial, it can be applied to other Linuxes.

This tutorial is an expansion on an earlier one I wrote on UEFI-booting.

My intention is that the next tutorial will be based on the existing page on frugal installation, but enhanced with explanation about boot managers/loaders.

Tags: linux

New blog for Easy OS

August 22, 2017 — BarryK
I have posted recently about archiving this blog, as I am moving to a new host.

As it is a fresh start, I evaluated about a dozen CMSs (Content Management Systems) and blogs. Some of them are very nice, but I was always unsatisfied with the speed (lack of) and server overhead.

The problem is, I am comparing with this blog, which is a small perl script, derived from PPLOG. It rates 95/100 on the google site speed test. Many CMS/blog systems rated quite high, up to 87, some were woeful, down around 50-60.

Then I thought some more about what I really want. Most of my sites are static web pages. The only dynamic part is the blog.

Hence, I moved on to evaluating static site generators. Apparently, there are over 450 of them. I waded through a couple of dozen of those, before finding Bashblog.

Very simple, and creates a somewhat rudimentary, yet capable blog. The Bashblog website:
https://github.com/cfenollosa/bashblog

The author seems to have designed it to run 'bb.sh' on the remote site. I did that, but there are limitations, so I set it up to run locally, and I wrote a one-line rsync command to sync with the remote site.

This is the result:
http://easyos.info/news/

The text is a bit small, I need to play around with the css file.

It is also supposed to have Disqus commenting, I don't know why that isn't working.

There is absolutely no server overhead in this. Posts are created in markdown and posted as html. They are just static html pages, already archived. Brilliant!

I plan to post a howto sometime, on how I have setup Bashblog, and mods.

Since these blogs have no server overhead, I will probably have at least one more, a personal blog.

Bashblog uses 'Markdown.pl' from here:
https://daringfireball.net/projects/markdown/

Tags: linux

Descendents of PPLOG

August 20, 2017 — BarryK
This blog that you are looking at now, is a special version of 'pe_pplog', that was created when my blog was under attack. That was back in 2013/2014.

Puppy forum member 'efiabruni' is the developer of pe_pplog, and here is where she has kept my special version:
https://github.com/efiabruni/pe_pplog/tree/comment_registration

Efia has her blog running here:
http://tine.pagekite.me/pe_pplog.pl

A couple of days ago, I downloaded her latest version from github, but found that posts failed. The hint as to why is a bugfix reported in her last post, which appears to have repcussions -- I suspect the latest change has not been actually tested.

Yesterday, I sent an email to Efia, no reply yet. I did have a go at fixing it myself, but having zero knowledge of perl doesn't help.

So, are there any other descendents of PPLOG. There was sc0ttman's JSPPLOG, but I found his website is gone.

However, 01micko has created 'sjpplog_ng':
https://github.com/01micko/sjpplog_ng

You can see this blog in action here:
http://blog.puppylinux.com/

Here is a forum thread on pe_pplog, back in 2013:
http://murga-linux.com/puppy/viewtopic.php?t=86326

Tags: linux