Clarence's Wicked Mind

Saturday, May 12, 2018

After recent update (20180502) of openSUSE Tumbleweed, my machine failed to boot. A quick check in the dracut emergency shell seems to indicate that somehow the root volume is mounted as /kdump/mnt0 and so cannot be mounted as root again.

Here is a quick fix.

Boot the system with LiveCD or any emergency tool. Mount the Tumbleweed system (here I mounted it under /mnt/temp). Go to the boot directory and find the initrd file. We are going to extract and modify the fstab inside.

Monday, April 16, 2018

The glibc on Tumbleweed was broken since the March 2018 release. Any call to resolve IPv4 will cause core dump. Seems to be hitting an ARM erratum. Details discussion can be found here.

The glibc RPMs released on 2018-04-10 seems resolved the issue. Since DNS won't work on the affected machine, will need to manually specify IP addresses in the hosts file or copy the files to the machine and run zypper to install updates.

Monday, February 12, 2018

Try to run Monero miner with OpenCL on my old Linux rig. The xmr-stak supports the official AMD APP SDK. But since I only have access to the relatively old hardware (AMD Kabini) running Mesa clover, a quick patch is needed to make it works.

Just for reference, on my AMD Kabini 5350, the hash rate on GPU is around 18H/s when running GPU only. Once added CPU mining, the GPU hash rate drops to about 12H/s. And the CPU hash rate is round 28H/s.

This rig definitely not suitable if mining for profit. But OK to support the Monero network.

Sunday, October 1, 2017

Assuming you already have an application deployed to Google App Engine with a custom domain. Now you want to add https with certificates generated from Let's Encrypt. Here are the steps on how to do it.

(2) Generate the certificate. For example, to get a certificate for www.acme.com:sudo ./letsencrypt-auto certonly --manual -d www.acme.com

Answer a few questions and the script will pause. You will then need to upload a validation file to www.acme.com to confirm that you indeed own the domain.

Create a file containing just this data:_Pwd8uL9_Joz0O2HNlbyb5nBnrcqvmGj02gX2PfJYhw.XOAQHxnBJFCW1KHWhsYsaRmc_BaKnwNpuNYbS8o2gdYAnd make it available on your web server at this URL:http://www.acme.com/.well-known/acme-challenge/_Pwd8uL9_Joz0O2HNlbyb5nBnrcqvmGj02gX2PfJYhw-------------------------------------------------------------------------------Press Enter to Continue

(3) Create and upload the file to App Engine. Create the folder .well-know/acme-challenge in your application tree. Then create the specified file and content. In this example, the file name is_Pwd8uL9_Joz0O2HNlbyb5nBnrcqvmGj02gX2PfJYhw

and the content is _Pwd8uL9_Joz0O2HNlbyb5nBnrcqvmGj02gX2PfJYhw.XOAQHxnBJFCW1KHWhsYsaRmc_BaKnwNpuNYbS8o2gdY

In your app.yaml file, include the /.well-know folder as static content:

handler:......- url: /.well-known static_dir: .well-known......

Then deploy your app:gcloud app deploy app.yaml

(4) (Optional) Test the URL with your browser that the validation file is deployed successfully.

(5) Go back to the console where the Let's Encrypt client is paused. Press Enter to continue the execution. If everything worked out, the certificate and private key will be generated.