site  contact  history  index

Report on Bluetooth audio goodies from eBay

January 22, 2020 — BarryK

This post to see some Bluetooth audio goodies purchased from eBay:

The Bluetooth USB dongles did not work with Linux. So, I hunted on eBay and found one that claims to work with Linux, AU$8.99, also labelled "CSR 4.0":


...and it does "work" with EasyOS. However, pairing was hit-and-miss. Very oddly, it did pair with my Audiosonic Bluetooth speaker, but would not pair with my Bluetooth mouse, nor keyboard. So, it is one of those cheap Chinese clone chips, pretending to be a "CSR" chip.

Having purchased three USB Bluetooth dongles, with only one partially working, have given up.

The earbuds that I purchased, see top link, do work, however mono only! Same when paired with my Android phone, only mono. That is disappointing. It was cheap, AU$7.59, but gee, to lack stereo is pathetic.

So, took another punt. Purchased this, AU$9.75:


...yes, have got stereo! (tested on my Android phone only so far). Warning, you need a magnifying glass for the user manual!

Looking at the feedback on those earbuds, someone claimed the voice messages where in Chinese, but mine is English -- when it paired, got "connected" spoken in English. Pleased with this purchase, and those little spurs are nice, hold the buds in the ears, should be useful when jogging (not that I do any jogging). 

Tags: easy

French langpack updated

January 22, 2020 — BarryK

I recently wrote a tutorial how anyone can translate EasyOS to their language:

The French (fr) translation was created and is maintained by JJ Moulinier ('esmourguit' in the Puppy Forum) and yesterday he sent me an update. A language translation maintainer does not have to create an entirely new PET, it is fine to just send me a PET or tarball containing whatever files have been updated, and I will add them to the PET.

In this case, the PET was '', and after adding the updated translation files, it is now ''. I have not yet uploaded it to, however, it will be used in the next French build of EasyOS -- likely to be version 2.2.5. 

Tags: easy

Audio hw profiling supports USB cards

January 21, 2020 — BarryK

I posted about audio hardware-profiling:

Today one of the USB audio "cards" arrived, purchased from eBay. It works great, and hardware-profiling has been extended to include USB devices. Here is how the hardware-profile is computed in /usr/sbin/mscw:

 #200113 hardware-profile... 200115 improve...
AUDIO_IDS="$(lspci -d ::0403 -n | cut -f 1,3 -d ' ' | tr ' ' '|')" #ex: 00:1b.0|8086:1c20
CARD_PATH="$(readlink /sys/class/sound/card${card})"
#...ex: ../../devices/pci0000:00/0000:00:1b.0/sound/card0
echo "$CARD_PATH" > /tmp/10alsa-CARD_PATH
#200121 detect usb audio device...
USB_SUBPATH="$(grep -o '/usb[0-9]/[0-9.:-]*/[0-9.:-]*/' /tmp/10alsa-CARD_PATH)" #ex: /usb3/3-2/3-2:1.0/
#...ex: ../../devices/pci0000:00/0000:00:1c.1/0000:03:00.0/usb3/3-2/3-2:1.0/sound/card1
if [ -e /sys/bus/usb/devices${USB_SUBPATH}modalias ];then
aID="$(cut -c 6-14 /sys/bus/usb/devices${USB_SUBPATH}modalias)" #ex: 8086p0808
for aAID in $AUDIO_IDS
aPTH=":${aAID/|*/}/sound" #ex: :00:1b.0/sound
aID="${aAID/*|/}" #ex: 8086:1c20
if grep -q "${aPTH}" /tmp/10alsa-CARD_PATH;then
echo "#SND_HW_PROFILE='${SND_HW_PROFILE}'" >> /etc/asound.conf
cp -a -f /etc/asound.conf /etc/asound.conf.${SND_HW_PROFILE}

An example profile for a USB card is "1+usb+8086:0808".  Also, /etc/init.d/10alsa has been edited. 

Tags: easy

ddcprobe removed from XorgWizard

January 21, 2020 — BarryK

I have posted about removing ddcprobe:

It has now been removed from XorgWizard, scripts /usr/sbin/xorgwizard-cli and xorgwizard-automatic. 

Tags: easy

IFS versus live-axle 4wd

January 19, 2020 — BarryK

Having owned a Suzuki 4wd a very long time ago, with live-axle front suspension and mediocre handling on the road, I have an interest as to why the on-road driving experience was less than optimal. I posted about these early experiences:

...I must add though, I really don't know much about the mechanics of vehicle suspension and steering. Just some fairly superficial reading here and there, so possibly some details in that post are not completely accurate.

Wanting to understand a bit more, I found this great comparison between live-axle front suspension, which the Suzuki has, and Independent Front Suspension (IFS) that just about every 4wd has these days:


In fact, what 4wd's are still made with live-axle, apart from the Suzuki Jimny? A search found this (2017):


With the recent demise of the GU Patrol and Land Rover Defender, the only four vehicles left on the [Australian] market with live axles front and rear are the 70 Series Land Cruiser, Jeep Wrangler, Mercedes-Benz G-Class and the tiny Suzuki Jimny

Another point raised by the above link is monocoque construction versus separate chassis. The Jimny has a separate chassis. 

Tags: nomad

Utility to report resolutions supported by monitor

January 19, 2020 — BarryK

I am phasing out the use of 'ddcprobe'. This is a CLI utility that reports various information about the video card and the monitor. XorgWizard uses it to obtain resolutions and refresh-frequencies supported by the monitor.

ddcprobe has various problems. One, it may hang -- this was reported as early as 2012 in the Puppy Forum. Another issue is that it simply doesn't work -- on some hardware, it has to be run a second time to correctly read the EDID information of the monitor. With some hardware, it simply returns nothing.

Earlier news about phasing out ddcprobe:

An alternative is the duo get-edid and parse-edid, however, get-edid may not find any monitor resolution information. My Acer Aspire1 laptop purchased in 2019 is in that category.

Another alternative is "xrandr -q", but this only works when X is running.

However, there is no need to try and read the monitor EDID, as ddcprobe and get-edid do, as the Linux kernel has already done it, and the information is to be found in /sys/class/drm. So, I decided to write a little utility that pokes around in /sys/class/drm and reports on resolutions and frequencies supported by the video card and the monitor.

This utility will be called by the XorgWizard. It is /usr/sbin/get-monitor-resolutions and here it is:

#(c) Copyright Barry Kauler 2020, licence GPL v3 (usr/share/doc/legal).
#200119 to be called by xorgwizard and anything else that wants to know what
# resolutions and frequencies are offered by the monitor. this is intended to
# replace 'ddcprobe' and get-edid|parse-edid'
#i think this will have the native resolution of monitor: /tmp/xorgwizard-get-mon-resolution-native
#all supported resolutions here: /tmp/xorgwizard-get-mon-resolutions

echo -n '' > /tmp/xorgwizard-get-mon-res
[ ! -d /sys/class/drm ] && exit 1

for aCARD in /sys/class/drm/card*
if grep '^connected' ${aCARD}/status >/dev/null 2>&1;then
CARDname="${aCARD##*/}" #ex: card0-HDMI-A-2
if [ -e ${aCARD}/edid ];then
MON_INFO="$(cat ${aCARD}/edid | parse-edid 2>/dev/null)"
[ ! "MON_INFO" ] && exit 2

MODELINES="$(echo "$MON_INFO" | tr '\t' ' ' | tr -s ' ' | grep '^ Modeline ' | cut -f 3- -d '"' | grep -v 'interlace' | cut -f 2-10 -d ' ' | grep '^[0-9]')"

echo -n '' > /tmp/xorgwizard-get-mon-res0
if [ "$MODELINES" ];then
while read aML
[ ! "$aML" ] && continue
#ex: 148.500 1920 2448 2492 2640 1080 1084 1089 1125
xVFREQ="$(dc ${DCLK} 1000000 mul ${HTOTAL} div ${VTOTAL} div p)"
VFREQ="$(printf "%.0f\n" "$xVFREQ")" #round up or down to an integer.
echo "${XRES} ${YRES} ${VFREQ}" >> /tmp/xorgwizard-get-mon-res0
done <<_EOF1
$(echo "$MODELINES")

NATIVE_RES="$(sort -u -n /tmp/xorgwizard-get-mon-res0 | tail -n 1)"
echo -n "$NATIVE_RES" > /tmp/xorgwizard-get-mon-resolution-native

#my acer aspire1, purchased 2019, does not return any modeline info. fallback...
if [ -e ${aCARD}/modes ];then
HASINFOflg="$(cat ${aCARD}/modes)"
if [ "$HASINFOflg" ];then
for aXY in `cat ${aCARD}/modes`
[ ! "$aXY" ] && continue
if ! grep "^${aXY/x/ }" /tmp/xorgwizard-get-mon-res0 >/dev/null;then
echo "${aXY/x/ } 60" >> /tmp/xorgwizard-get-mon-res0

[ ! -s /tmp/xorgwizard-get-mon-res0 ] && exit 3

sort -u -n /tmp/xorgwizard-get-mon-res0 > /tmp/xorgwizard-get-mon-resolutions
rm -f /tmp/xorgwizard-get-mon-res0
exit 0

This utility could be used in Puppy Linux. It does use the 'parse-edid' utility (see bold text above), which is part of the 'read-edid' package. Also, recent puppies have a different 'dc' utility (see bold text above) -- Easy and Puppy use 'dc' from Busybox, however, recent versions of Busybox have changed the commandline requirements for dc, so my script will be broken. 

You can run "dc --help" to see if it accepts the commandline syntax as I have used it, or not. 

Tags: easy

Fixes for Multiple Sound Card Wizard

January 18, 2020 — BarryK

I have fixed lots of bugs in MSCW. Have also added a help button, with some basic information.

Tags: easy

Expanding .rar and .xz files fixed

January 18, 2020 — BarryK

In Easy Buster, the 2.x series, if click on a .rar file, nothing happens. It is supposed to open in Xarchive and the contents be shown in a window, with the offer to extract any or all files.

The reason for this non-functionality is that /usr/bin/unrar utility does not exist, only /usr/bin/unrar-nonfree. I have created a symlink, so it now works.

A bug that has been in Easy and before that Quirky, is click on a .xz file, a single file, not a tarball, does nothing. It is supposed to bring up a window asking if want to expand the file. The oversight was in /etc/xdg/, which has the wrong content, it should be:

#! /bin/sh
exec pupzip "$1"

Tags: easy