Friday, 2 April 2021

Nanomesher Weather Board tweak

 I've backed a number of Nanomesher's boards onn Kickstarter from the weather prodboard to different audio boards, and they've all been great.  The DAC2 in particular is a fantastic piece of kit.


I was playign with the Weather board and tweaked the script a bit to show the time and date rather than the default Nanomesher PiAirMon.


To do this vi the PiAirMon.py file and comment out the line with the old text and add the new lines:

 

        with canvas(device) as draw:
#            draw.text((1, 1), "Nanomesher Air Mon", font=font1, fill="white")
             now = datetime.datetime.now()
            draw.text((1, 1), now.strftime('%H:%M:%S %a %d %b'), font=font1, fill="white")

This shows in your locale the time, day, date and month.


So mine currently shows


14:37:29 Fri 02 Apr

 

This sits on the desk in front of me to remind me to open the window when the CO2 gets too high, and it's nice having a clock on it.

 

 

Thursday, 13 December 2018

CS:GO on Linux not starting

Valve, for a company that supposedly loves Linux your support is terrible. I got pointed to a community forum for support when logging this with them. To top it off I paid for it a week before they made it free. Grr..

So I could get CS:GO to launch sometimes so it did work but rarely.

After some pretty extreme testing it seems you need to slow it down when launching.

I found sometime just alt tabbing repeatedly was enough but that was hard to replicate.

Ready for the most stupid work around ever?

Are you sitting down for this one?

I run Gentoo Linux so everything is compiled from scratch. You can see where this is going..

I start compiling something.  Mesa is my usual goto.  Once this is compiling it slows down the launch of CSGO enough that it works.

This is just insane. I tried changing versions of libraries, dependencies etc but none of this mattered just making the system loaded while launching works.


Edit:  turns out you can avoid all this by adding the -nojoy option in the command line options.

Sunday, 26 August 2018

Postfix with ECDSA certificate not connecting

I was playing with this a while back and it didn't work and got forgotten about but this time I dug into it further.

There are lots of guides for setting this up such as

https://zhadum.org.uk/2015/07/25/ssl-certificate-agility-with-postfix/

but this did not work for me.  Using

openssl s_client -cipher ECDHE-ECDSA-AES128-SHA -connect localhost:25 -starttls smtp

CONNECTED(00000003)
1995830688:error:14094410:SSL routines:ssl3_read_bytes:sslv3 alert handshake failure:../ssl/record/rec_layer_s3.c:1399:SSL alert number 40
---
no peer certificate available
---
No client certificate CA names sent

failed and said it had no presented no cert.

After looking at my cert file I noticed:

 openssl x509 -text -noout
-----BEGIN CERTIFICATE-----
MIID9zCCA5ygAwIBAgIQJDK88IzKKF3Cva9HhMswejAKBggqhkjOPQQDAjCBkDEL
MAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UE
BxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxNjA0BgNVBAMT

...

        Subject Public Key Info:
            Public Key Algorithm: id-ecPublicKey
                Public-Key: (384 bit)
                pub: 
                    04:24:64:3c:45:da:96:fe:eb:cd:0b:4c:9b:da:4f:
                    db:dd:0d:fa:e9:14:54:67:96:3e:81:3f:55:b8:1d:
                    36:0a:db:c7:a8:be:32:a2:5d:59:4c:dd:c6:11:78:
                    a4:cd:6b:12:c4:0d:76:af:6e:ef:8e:b5:78:4a:ae:
                    94:5a:90:ac:21:04:6a:f1:f2:6e:2e:8d:87:d8:46:
                    a3:54:f3:7e:f0:08:8e:81:3b:1c:0a:1d:ff:b8:a7:
                    fd:db:91:3a:b6:0b:48
                ASN1 OID: secp384r1
                NIST CURVE: P-384



from the postfix page

    smtpd_tls_eecdh_grade = strong | ultra
    # Underlying curves, best not changed:
    # tls_eecdh_strong_curve = prime256v1
    # tls_eecdh_ultra_curve = secp384r1

In my version 3.1 it defaults to strong

postconf -d | grep smtpd_tls_eecdh_grade
smtpd_tls_eecdh_grade = strong

but needs to be set to ultra to support sec384r1 which the cert was issued with. So adding the line

smtpd_tls_eecdh_grade = ultra

to main.cf made the cert work.

None of the other articles I have seen mention this so maybe it's not that common.


Saturday, 17 March 2018

Switch your Raspberry Pi 3 to use a hard drive

I have a Pi 3 that is a DNS, web, email etc server and it's gone through a few SD cards and gets bogged down in high wait % in top sometimes.  It has a USB drive for storage for Storj etc and I was reading how you can boot a Pi 3 with a hard drive to speed things up and hopefully be a bit more reliable than the SD cards have been.

So I found this article

https://thepi.io/how-to-boot-your-raspberry-pi-from-a-usb-mass-storage-device/

Now a bunch of gotchas came up.

Firstly the boot USB option is a OTP setting.  This means once it's set, it for good on your device. Read up on this before doing it!

https://github.com/raspberrypi/documentation/blob/master/hardware/raspberrypi/bootmodes/bootflow.md

 I had a spare drive so I restored a Jessie image to the drive and plugged it in after  setting the option

program_usb_boot_mode=1

and it seem to boot (it's headless) but the drive was accessing, the network was flashing etc. Seems pretty easy.

Ok lets try and migrate the current SD card and drive to a new drive.

So some points to note here.  I tried the SDCard again to get DNS etc back up while I moved data around and it would not boot. Seems you need to remove the line we added earlier

program_usb_boot_mode=1

from /boot/config.txt or the SD card won't boot again. That's a bit annoying.

So I imaged the SDCard and restored this to the drive and tried to boot this and it started but then did not complete booting. OK silly move, need to modify the /etc/fstab on the root partition and the /boot/cmdline to say sda rather than the mmc device that is the SDCard.

Once that was done it booted OK.  We're getting there. Tried to use raspi-config to exapnd the root partition but that doesn't know what the drive is and only works on SDCards.  Doh. Back to the PC and expand with GParted and finish copying the data over and we're in business.

So in short to move you RaPi3 to a harddrive:

Image your SDCard and restore this to the new harddrive. 
Expand the harddrive root partiion with GParted or similar.
Modify the /etc/fstab and /boot/cmdline on the new drive to use sda rather than the mmc device ( I had 3 entries)
On the PI, set the "program_usb_boot_mode=1" option in /boot/config.txt and reboot.
Shut the Pi down and remove the SDCard and plug in the USB drive and it should boot.

Hope that saves some frustration :-)

Saturday, 20 May 2017

A simple video card upgrade... not so much

I wanted to get a new video card and found a deal on a Sapphire RX580 and thought great, going from a RX390 to a RX580 should be easy. Both are AMD, both are just rehashes of an older card so drivers are established.

But no, seems the Sapphire card is cheap for a reason...

So started up in Linux and it booted to the point where it said switching to amdgpufb, then blank screen.  HDMI was UP (the card has two HDMI ports and one goes to an AV system for sound).  It's all working but you can't see anything. crtrl-alt-delete and try again.

Change kernel line options in grub to include nomodeset and it boots and you can see (apart from about 2 minutes of tearing when it tries to start gdm)

Logs look fine looks amdgpu is starting OK and recognising it as an RX480 which it is based on. Doh, wrong firmware.  OK so update from TONGA to POLARIS10 firmware blobs int he kernel. My kernel doesn't use ramdisk it just boots and includes all the firmware for video, wifi etc.  Not the linux way but it works and it's quick.

Boot again, but still blank screen and now firmware loads and the card looks to be running. Hmmm...

Boot into windows and just make sure and the card is fine.

Run make menuconfig on the kernel and check for options but everything is just amdgpu generic not specific to a model.  Found a firmware option related to EDID and checked the docs on this in /usr/src/linux/Documenation/EDID/Howto.txt.  This talks about video starting but cards not reading EDID from the monitor correctly and stopping at a blank screen when start KMS.  OK sounds promising...

Making a EDID file is as simple as running make in that directory to use the default ones.

Copy 1920x1080.bin to /lib/firmware and add that to the kernel blobs and reboot. Still no good.

Google comes to the rescue to find an Arch Linux article (damn these guys document well) which is similar to Gentoo and it mentions you need to turn on this firmware at boot with a kernel option

drm_kms_helper.edid_firmware=1920x108.bin

and sure enough it boots and video stays on.

So if you have a Sapphire RX580 (pulse in my case) and linux and have blank video issues try this. I'm sorry to sapphire if it's a general RX580 thing but I didn't find any other posts etc on this issue so I'm guessing not.

I can post line by line if anyone comes across this and it doesn't make sense to them.




Saturday, 29 April 2017

Gridseed dual mining on minera

This is something that caught my interest a few years ago and has been sitting in the garage churning out tiny fractions of a bitcoin regularly.

Bitcoin spiked back up to $1700 recently and previously it wasn't worth the power to mine but might be now.  I buy my humblebundle.com etc stuff with bitcoin.

My original setup uses a raspberry pi with minera (getminera.com) to have a simple web based front end for 6 gridseed minis.  These are a unit with 5 gridseed chips together.  The gridseed chip can mine SHA256 (bitcoin etc) and scrypt (litecoin, doge etc) and both at the same time.

These just sat quietly mining scrypt which a site called clevermining.com converts to Bitcoin and adds to your wallet. All very easy.

I could never get them to mine bitcoin or dual mine both and gave up but revisiting it showed it wasn't really that hard with the right mining client. I haven't got the nice front end to work yet.  That's the last step.

To get Bitcoin (SHA256) to work, SSH to your raspberry pi with Minera and you run

screen sudo /var/www/minera/minera-bin/cgminer-dmaxl-zeus --sha256 -o stratum+tcp://us.multipool.us:3332 --user nickbrooker.1 --pass x --gridseed-options freq=800 --widescreen

You can use my details if you want to give me some extra BTC :-)

The cunning part is this software sets up local UDP listeners when running on SHA256 to allow a second copy to connect via UDP to the scrypt side.

 cgminer version 4.3.5-scrypt.2 - Started: [2017-04-29 10:44:40]
----------------------------------------------------------------------------------------------------
 (5s):0.000 (1m):0.000 (5m):0.000 (15m):0.000 (avg):0.000h/s
 A:0  R:0  HW:1  WU:883.5/m | ST: 5  SS: 0  NB: 1  LW: 48  GF: 0  RF: 0
 Connected to us.multipool.us diff 2.05K with stratum as user nickbrooker.1
 Block: 12519e6d...  Diff:522G  Started: [10:44:40]  Best share: 1.69K
----------------------------------------------------------------------------------------------------
 [U]SB management [P]ool management [S]ettings [D]isplay options [Q]uit
 0: GSD 8D8638654955:  800 MHz  SHA256        | 1.331G / 4.684Gh/s WU:130.9/m
 1: GSD 8D8848665055:  800 MHz  SHA256        | 1.322G / 4.684Gh/s WU:98.2/m
 2: GSD 8D8307735055:  800 MHz  SHA256        | 1.346G / 4.684Gh/s WU:98.2/m
 3: GSD 8D8340625055:  800 MHz  SHA256        | 1.376G / 4.684Gh/s WU:163.6/m
 4: GSD 6D8527885750:  800 MHz  SHA256        | 1.317G / 4.684Gh/s WU:261.8/m
 5: GSD 6D7631994853:  800 MHz  SHA256        | 564.5M / 2.342Gh/s WU:130.9/m
----------------------------------------------------------------------------------------------------
 [2017-04-29 10:44:35] Gridseed device found, firmware v01140113, driver v3.8.5.20140210.02, ID 8D8307735055
 [2017-04-29 10:44:35] GSD2: System reseting
 [2017-04-29 10:44:35] GSD2: Set GC3355 core frequency to 800 MHz
 [2017-04-29 10:44:36] GridSeed options: 'freq=800'
 [2017-04-29 10:44:36] Gridseed device found, firmware v01140113, driver v3.8.5.20140210.02, ID 8D8340625055
 [2017-04-29 10:44:36] GSD3: System reseting
 [2017-04-29 10:44:36] GSD3: Set GC3355 core frequency to 800 MHz
 [2017-04-29 10:44:37] GridSeed options: 'freq=800'
 [2017-04-29 10:44:37] Gridseed device found, firmware v01140113, driver v3.8.5.20140210.02, ID 6D8527885750
 [2017-04-29 10:44:37] GSD4: System reseting
 [2017-04-29 10:44:38] GSD4: Set GC3355 core frequency to 800 MHz
 [2017-04-29 10:44:38] GridSeed options: 'freq=800'
 [2017-04-29 10:44:38] Gridseed device found, firmware v01140113, driver v3.8.5.20140210.02, ID 6D7631994853
 [2017-04-29 10:44:38] GSD5: System reseting
 [2017-04-29 10:44:39] GSD5: Set GC3355 core frequency to 800 MHz
 [2017-04-29 10:44:39] Create scrypt proxy on 3350/UDP for GSD0
 [2017-04-29 10:44:39] GridSeed GSD0 opened on usb:1:11
 [2017-04-29 10:44:39] Create scrypt proxy on 3351/UDP for GSD1
 [2017-04-29 10:44:39] GridSeed GSD1 opened on usb:1:9
 [2017-04-29 10:44:39] Create scrypt proxy on 3352/UDP for GSD2
 [2017-04-29 10:44:39] GridSeed GSD2 opened on usb:1:7
 [2017-04-29 10:44:39] Create scrypt proxy on 3353/UDP for GSD3
 [2017-04-29 10:44:39] GridSeed GSD3 opened on usb:1:12
 [2017-04-29 10:44:39] Create scrypt proxy on 3354/UDP for GSD4
 [2017-04-29 10:44:39] GridSeed GSD4 opened on usb:1:10
 [2017-04-29 10:44:39] Create scrypt proxy on 3355/UDP for GSD5
 [2017-04-29 10:44:39] GridSeed GSD5 opened on usb:1:8
 [2017-04-29 10:44:39] Probing for an alive pool
 [2017-04-29 10:44:40] Pool 0 difficulty changed to 2048

 [2017-04-29 10:44:40] Network diff set to 522G


So disconnect from screen  (Ctrl A, Ctrl D) and start

screen sudo /var/www/minera/minera-bin/cgminer-dmaxl-zeus --scrypt  -o stratum+tcp://us.multipool.us:3334 -u nickbrooker.1 -p x --widescreen

It will check local host and connect to the ports automatically.

cgminer version 4.3.5-scrypt.2 - Started: [2017-04-29 10:24:30]
----------------------------------------------------------------------------------------------------
 (5s):883.0K (1m):106.3K (5m):21.89K (15m):7.333K (avg):1.489Mh/s
 A:512  R:0  HW:0  WU:15.3/m | ST: 3  SS: 0  NB: 1  LW: 26  GF: 0  RF: 0
 Connected to us.multipool.us diff 512 with stratum as user nickbrooker.1
 Block: 8dd69347...  Diff:146K  Started: [10:24:30]  Best share: 710
----------------------------------------------------------------------------------------------------
 [U]SB management [P]ool management [S]ettings [D]isplay options [Q]uit
 0: GSD 8D8638654955:  800 MHz  DUAL / SCRYPT | 136.8K / 260.8Kh/s WU:0.0/m
 1: GSD 8D8848665055:  800 MHz  DUAL / SCRYPT | 136.8K / 260.9Kh/s WU:0.0/m 
 2: GSD 8D8307735055:  800 MHz  DUAL / SCRYPT | 145.1K / 272.6Kh/s WU:15.3/m
 3: GSD 8D8340625055:  800 MHz  DUAL / SCRYPT | 136.9K / 260.9Kh/s WU: 0.0/m
 4: GSD 6D8527885750:  800 MHz  DUAL / SCRYPT | 136.9K / 261.1Kh/s WU: 0.0/m
 5: GSD 6D7631994853:  800 MHz  DUAL / SCRYPT | 136.8K / 260.8Kh/s WU: 0.0/m
----------------------------------------------------------------------------------------------------
 [2017-04-29 10:24:27] Started cgminer 4.3.5-scrypt.2
 [2017-04-29 10:24:27] Found scrypt proxy on 3350/UDP
 [2017-04-29 10:24:27] Found scrypt proxy on 3351/UDP
 [2017-04-29 10:24:27] Found scrypt proxy on 3352/UDP
 [2017-04-29 10:24:27] Found scrypt proxy on 3353/UDP
 [2017-04-29 10:24:27] Found scrypt proxy on 3354/UDP
 [2017-04-29 10:24:27] Found scrypt proxy on 3355/UDP
 [2017-04-29 10:24:28] Gridseed GSD0 opened on 3350/UDP
 [2017-04-29 10:24:28] Gridseed GSD1 opened on 3351/UDP
 [2017-04-29 10:24:28] Gridseed GSD2 opened on 3352/UDP
 [2017-04-29 10:24:28] Gridseed GSD3 opened on 3353/UDP
 [2017-04-29 10:24:28] Gridseed GSD4 opened on 3354/UDP
 [2017-04-29 10:24:28] Gridseed GSD5 opened on 3355/UDP
 [2017-04-29 10:24:28] Probing for an alive pool


So now they are happily mining away on both scrypt and SHA256.  You're never really going to make money on this unless you are exceedingly lucky and mine solo and solve a bunch of blocks. It just a fun thing to do.

Update:  seems one thing to be careful of is power supplies. I have 6 of these gridseed minis and they draw 6 watts in scrypt and I read 30 watts in SHA256 but it may be more.  I have a 12V 30A power supply that just expired and was a bit toastie.

Tuesday, 4 April 2017

Windows 8.1 over Windows 7

This one may save someone some time. One of the kid's computers was on windows 7 and I thought it might be nice to try going to 8 as they've put the countdown on windows 7.

I tried the DVD from within Windows 7 and booting the DVD. Booting from the DVD won't let you update and from within Windows it failed after it got to 100%.

I had recently installed an SSD and disabled superfetch and Windows search services. After trying a few other things I re-enabled these and it worked.

Librewolf shows “some of LibreWolf’s security features may offer less protection on your current operating system”

I'm test driving Ubuntu after using Gentoo for years and found Librewolf gave me this warning banner. “some of LibreWolf’s security feat...