site  contact  subhomenews

EasyShare supports Android phone via USB

August 13, 2018 — BarryK

I posted recently about Android utilities being included in future EasyOS and Quirky releases:

EasyShare is now using these utilities and supports file sharing via an Android phone connected by USB cable.

The main GUI now has a checkbox "Android USB", and it is very simple to use. Here is a snapshot:


The only slight difficulty, very slight, is that Developer mode and USB debugging have to be turned-on on the phone. The phone is automatically discovered, and it is just a matter of clicking the "Mount" button. 

I have updated the EasyShare tutorial page:   

Tags: easy, quirky

adb connection to phone over wifi

August 09, 2018 — BarryK

I posted yesterday about using 'adb' and 'adbfs' over usb to browse files on my Android phone:

Briefly mentioned that it could be done over wifi as well. Yes, this site has a nice explanation:

It does require a one-time usb connection to enable the phone to listen on port 5555. With usb-debugging enabled on the phone and usb cable connected to PC, on the PC:

# adb devices
...this will confirm the connection
# adb shell "ip route" dev wlan0  proto kernel  scope link  src
... is the ip-address of the phone.
# adb tcpip 5555
...starts the phone listening on port 5555

Then unplug the usb cable, and on the PC:

# adb connect
# adb shell "ls /sdcard"
...will list folders and files on phone
# adbfs /mnt/phone
...can browse the files
# fusermount -u /mnt/phone

Yeah it works, but not very secure. Port 5555 stays open until the phone is rebooted. adbfs is a simple method, but reckon will restrict to only doing it via usb cable.

Tags: easy, quirky, linux

EasyShare now using fakeidentd

August 07, 2018 — BarryK

I posted about the rewrite of EasyShare a few days ago:

Which appeared in EasyOS 0.9.6 released a couple of days ago.

Then yesterday, examined using fakeidentd server for network discovery:

Puppy Forum member 'step', a longtime contributor on the forum, sent me a pm about another way to query fakeidentd, using 'telnet'. Like this:

# { printf \\n; sleep 1; } | telnet 113

Busybox has a telnet applet, though my current configuration of busybox does not have it.

Very nice, thanks very much for that info. As I have the '' perl script working, staying with that for now. EasyShare is now modified to use fakeidentd, and I have tested, works great.

Running 'easyshare' from a terminal, noticed an error message, although the sshfs connection worked:

do_known_hosts: hostkeys_foreach failed: No such file or directory

It was a one-off message, I discovered because folder /root/.ssh did not exist. Fixed.

Tags: easy, quirky

Kernel 4.14.61 and SeaMonkey 2.49.4

August 07, 2018 — BarryK

I have compiled the Linux kernel, version 4.14.61, on EasyOS 0.9.6 Pyro64. The source, with patches and build scripts, is here:

There is a PET package, that will be used in the next builds of EasyOS and Quirky. There is a SFS file of the source:

I also compiled the latest SeaMonkey, version 2.49.4. The PET is here (45MB):

...this is for EasyOS 0.9.5 and later. Do not try and use it in any other distro, as it is linked against specific libraries, such as 'icu', that likely won't be present, or mis-configured.

Tags: easy, quirky

EasyShare probing computers to obtain hostnames

August 07, 2018 — BarryK

EasyShare has automatic discovery of shared folders and printers on the local network. To achieve this, it has to discover the hostnames of the computers, and in the case of Windows computers, the netbios-name.

EasyShare has two ways of doing this, by probing for SMB servers and then using the 'nbtscan' utility to retrieve the hostname or netbios-name, or by probing a modified dnsmasq server and using the 'nmap' utility to retrieve the hostname.

In the latter case, EasyOS (and Quirky) runs the dnsmasq server in a special configuration such that it will return the hostname upon receiving a query from nmap. A problem is that this is a corruption of how dnsmasq is normally used, so if someone wanted to use dnsmasq in the normal way, they can't.

What I want is a lightweight server that upon receiving a request, will return an arbitrary string. It would be nice if I could write such a server, but I don't know how. Instead, looking for something ready-made...

After googling, I discovered the 'identd' server. Busybox has a very cutdown version, name 'fakeidentd'. On one of the computers, run it, with any arbitrary string:

# fakeidentd HITHERE

fakeidentd listens on port 113, so we need some way to query this port, from another computer on the network. I could not see how to use 'nmap', however, found a perl script:

EasyOS and Quirky have a cut-down perl named "perl_tiny", and with the devx sfs, the full perl. I tried this script first with the devx loaded, so had the full perl, and it required just one more module, Net::Ident. This was easy to install:

# perl -MCPAN -e shell
> install Net::Ident
> quit

...which I made into a PET package. I then tested without the devx, and Net::Ident was missing some dependencies. Those missing deps are now included in perl_tiny.

Now, on another computer on my network, with Net::Ident and ident-user-enum installed, where is the computer running fakeidentd:

# 113
ident-user-enum v1.0 ( )    HITHERE


So, we have a simple mechanism to broadcast the hostname. My intention is to use this instead of dnsmasq. 'perl-net-ident' will be a PET package, in the noarch repo, and '' will be builtin at /usr/sbin in woofQ.

Of course, this discovery mechanism will apply to computers running EasyOS and Quirky only. For other computers, they must be running the SMB server ('smbd' daemon in the case of Samba). EasyShare probes for both.

Tags: easy, quirky

EasyOS version 0.9.6 released

August 06, 2018 — BarryK

Version 0.9.5 has changes to Easy Containers, however that work work has been on hold, as I "jumped tracks" to work on EasyShare, super-easy network file and printer sharing. EasyShare has been re-written, bugs fixed, improvements, and is the main feature of EasyOS 0.9.6.

Between 0.9.5 and 0.9.6, various bugs have been fixed. Just today, at the 12th hour before releasing 0.9.6, fixed a bug in the Xorg Wizard.

One curious thing, Xorg is now defaulting to using the 'modesetting' driver for Intel video hardware. You need to run the Xorg Wizard to explicitly choose the Intel driver.

Some issues regarding 0.9.5 posted to the Puppy Forum, have not yet been resolved, as my attention has been on EasyShare. Will get onto them soon.

There is a new app in 0.9.6, Vovchik's Gxlat language translator, that I posted about recently (look in the Document category in the menu):


The download is an image file to be written to a USB-stick. There are many utilities for doing that. If you need some instruction, read this:

If you wish to read-up on what EasyOS is all about, look here:

Read about 0.9.5 here:

Discussion on EasyOS is happening at this thread of the Puppy Forum, for 0.9.5 start reading from here:

Have fun!

Tags: easy

EasyShare file and printer sharing re-written

August 05, 2018 — BarryK

I wrote EasyShare in February 2018, however, it is now re-written to be even easier. There has been internal restructuring to make it more flexible, however, from the user's point of view, the most noticeable improvement is the firewall configuration is now completely automated.

I have partly updated the tutorial:

This new EasyShare will be in the upcoming EasyOS version 0.9.6.

Tags: easy, quirky

Smallest and simplest Samba client

July 31, 2018 — BarryK

This is something that I have wanted to figure out for a very long time. What is the smallest and simplest setup if I only want a samba client on a PC, not a server?

I am currently rewriting EasyShare, my easy network file and printer sharing GUI app. This is able to use sshfs or samba, but is actually designed such that samba is required. But, is it really, and if so, what files can it be reduced down to for a client-only system? Strangely, this question is not really answered anywhere on the Internet.

My EasyOS and Quirky will not function as a samba server, however, will have a sshfs server, and cups server, so can serve files and printers. However, other computers on the network may have smb or samba servers, and my PC must be able to connect to them.

basically, EasyShare uses the 'arp-scan' utility to discover the ip-addresses on the network, then 'mpscan' to find server ports. For samba/smb servers, 'nbtscan' is used to obtain the netbios-name/hostname, and for computers that serve sshfs, the 'nmap' utility is used to obtain hostname.

The sticking point is how to discover smb shares on the remote computer. Up to now, I used 'smbclient', which brings with it most of the shared libraries of the samba package.

There are some alternatives to automatically discover shares. A "share" is a name that samba assigns to a particular shared folder or printer.

I discovered that VLC multimedia player uses libdsm for samba discovery, though I couldn't see how it can discover shares. Also, libdsm only supports smbv1, which is too old. Windows 10 has dropped support for smbv1 by default, though apparently it can be enabled. However, smbv1 is considered to be a security risk.

Windows 10 does by default support smbv2 and smbv3. Ah, there is a library, 'libsmb2', with example utilities, that supports smbv2 -- however, whatever I tried to do with the utilities, they always crashed.

I did read that 'nmap' can discover smb shares, but I don't know how.

So, I am back on 'smbclient', meaning that the samba package is required. But, what else from the samba package is required? What about those 'smbd' and 'nmbd' daemons?

I was reminded about those daemons a few days ago, when one of the EasyOS testers thought that they might be responsible for his usb-stick (with easyOS on it, from which he booted) running hot after an overnight backup. This reminded me that sometime ago I noticed that the samba daemons were cpu hogs. Up to now, I have always automatically assumed that they are needed, but what for?

Note, there are lots of posts on the Internet about smbd being a cpu hog, just google "smbd is a cpu hog".

I successfully connected to a Windows 10 machine, from a pc running EasyOS and only the 'smbclient' utility -- absolutely nothing else from the samba package.

Furthermore, I studied the compile options, and created the smallest possible 'smbclient' utility. The smbv2 protocol is sufficient, so I compiled samba 3.6.25 -- 4.x is not required. I will document this exactly soon, when I put it into oe-qky-src, my fork of OpenEmbedded.

There are three packages needed, 'nbtscan', which has the 'nbtscan' utility, 'cifs-utils', which has the 'mount.cifs' utility, and the 'smbclient' utility from samba. All of this can be seen in action in script /usr/local/EasyShare/easyshare, in the next release of EasyOS and Quirky.

I have create a PET,, which is 1.87MB, compared with the 10.5MB samba PET package I was using before.

For the record, here are some links:

It is still on the cards that I might find a light-weight share discovery utility to replace smbclient! 

Tags: easy, quirky, linux