Thursday, July 15, 2021

Linux Sucks!

 So I tried to take a screenshot today, but I couldn't find it.  I had previously set a setting that saved my screenshots in a specific place.  It took about an hour for me to figure out where they were going.  

 (I was slightly thwarted because I was hitting Ctrl-PrintScreen - on my last laptop the print screen button required hitting Fn and I got confused.  Ctrl-PrintScreen puts the screenshot into a paste buffer.)

So after finding out where the screenshots were going I tried to set the setting again to get the screenshots to once again save in the correct place.

Things like this shouldn't happen in a modern polished Linux Distribution like Debian; but the popular belief is that there are a lot of volunteer programmers who work on Linux, so mistakes happen, because they aren't professionals.

That's not the case here, these are small people who have the power to help, but are too focused on maintaining their power over their little corner of the operating system and they refuse to communicate effectively or solve a problem that many users are having.

There are a few ways to fix it and make it work again; but users shouldn't be expected to go to great lengths to change a setting...  I may give this more consideration later and see if i can unravel this web of shit; but I have to work in the morning, I need to sleep now.

Relevant pages:

https://askubuntu.com/questions/114429/how-can-i-specify-the-default-save-directory-for-gnome-screenshot
https://bugzilla.gnome.org/show_bug.cgi?id=699642
https://cialu.net/how-to-change-default-gnome-screenshot-savings-folder/
https://help.gnome.org/users/gnome-help/stable/screen-shot-record.html.en
https://unix.stackexchange.com/questions/279985/how-do-i-change-the-location-where-screenshots-are-saved-in-linux-mint-17-cinnam
https://unix.stackexchange.com/questions/279985/how-do-i-change-the-location-where-screenshots-are-saved-in-linux-mint-17-cinnam
https://wiki.debian.org/ScreenShots
https://forum.manjaro.org/t/gnome-change-default-screenshot-location/67834
https://forums.debian.net/viewforum.php?f=6&sid=96b34c5e3e27354cd0582ff268e79c68

So you can install custom scripts in your home directory.  You can disable the six included shortcuts and make new ones pointing to a different screenshot program, you can install a 3rd party "Gnome Shell' extension, or. apparently there is a way to do it with systemd user units???  But you get the idea...

Petty bickering has removed this feature for millions of people.
Linux Sucks!

But at least you can fix it, if Microsoft doesn't want you to take a screenshot you simply won't be able to.

Monday, July 12, 2021

Its Time: Linux is better than Windows.

 I'm struggling to set the time on windows 10.  I'm working on an industrial computer/touchscreen that is not connected to any network.  For security we never connect these machines to the internet.  I need to set the time to within a couple/three seconds.

It appears this can't be done from the GUI.  Is Microsoft using so much code from Linux that a terminal window is becomming required?

Windows is so awful, I just don't understand why anyone would want to use it.  -  It's maybe a bit easier, but it's getting harder to use, and now Microsoft spys on you, and manufacturers can lock the BIOS.....  It's NOT your computer if it has Windows on it.  Why buy a computer that's not really yours?

Sunday, August 16, 2020

Working with computers is getting harder, because of obfuscation.

TLDR:   Fuck you Dell!

I purchased an Inspiron 17 1700 and although I really like many features of it, it's obvious that all the effort went into making a computer that looks good from the outside, but is crap on the inside. 

Right now I'm struggling with WiFi, the M.2 WiFi/Bluetooth card that it comes with is an ok B/G/N card.  But the pace of technology is accelerating, and I need at least AC support if not the latest and greatest AX.  

So, I'm hunting for a replacement WiFi card, and I want to know what cards the M.2 slot supports. Their specification document says "One M.2 slot for WiFi/Bluetooth" . Not helpful.  

From their own documentation there are several different keyings and sizes of M.2 slots that can accept WiFi/Bluetooth cards.  I think even among the differently keyed slots there are likely to be other support issues.  The whole M.2 slot ecosystem is the opposite of straight forward.

 Icing on the cake, is that their feedback system is currently down, so the only way I can shame them is on this blog.   Which no one reads because mostly it's just me ranting about problems.  (Sorry!)

I really want this to be a good day.  I'm going to keep trying.

  :-)

Update: As far as I've figured out an A-keyed or an A+E-keyed M.2 slot will accept A-keyed or A+E-keyed WiFi cards.  E-keyed cards must go only into E-keyed slots.

Still haven't found any detailed technical documents on these slots; but I'm feeling better about this.  I bought a pair of Intel AX200NGW cards, so hopefully they are backward compatible with me A-keyed M.2 slot. 

When I removed the Intel 9260NGW from the motherboard the antenna studs broke off from the WiFi card and got lodged in the antenna wires.  I'm so proud of me I didn't even get upset.  I just carefully pried the debris out of the connectors and moved on.

I'll have to install the original card when I get home.

Monday, June 24, 2019

Bridge to the Shop

It works!

It has taken weeks and many many hours.  I have (almost) completely ignored everything else in my life like dishes, pets, family and friends.  The sacrifice has finally yielded success. - To my wife, I'm sorry, and thank you! - To the world I say:   Pbbbtth!    I did it, and I don't care if you think it's stupid or awesome.

I have two Raspberry Pi Model 3 B+'s on my desk, each with an EDUP 600mbps WiFi adapter, power adapter, and sdcard plugged into them.  They are a WiFi network cord.

If I use an ethernet cable to connect one RPi to my internet router, and another ethernet cable to connect the other RPi to a network switch in the garage...

Well it does exactly what you would expect of a long ethernet cable.  The two switches are connected together.  If multiple device are plugged into the switch in the garage, they get ip adresses from the internet router in the house, and connect to the internet. - Simple, functional, adds a few milliseconds to a ping, and a slight bandwidth hit.  ;-)

 Victory!

Ok, so I can ping.  Actual throughput is not great.

Normal 'N' WiFi ~19Mbps bandwidth
My WiFi Wire     ~ 65Kbps bandwidth

That's so bad it makes me laugh....

My WiFi adapters are currently only using one 20Mhz channel, and the Raspberry Pi's don't have a hardware network switch in them.  So bandwidth is, for now, terrible.

More testing is necessary.  Now that I know how to set this up maybe I need to move it to EspressoBin's, or an RPi4 (Just released today!)  :-)

I'll see if I can increase the speed and post a Edu-torial.

UPDATE:
Ha! I found the problem!  MTU on the clients MUST be set to 1446 or less.  -  I didn't realize that fragmenting packets would cause a 3000x slow down.  Once Packet size is enforced to be small enough to prevent fragmentation I get very good speeds of 30Mpbs
Next up increasing radio bandwith from 20mhz to 80mhz.  Dare I go to 160mhz?!?!?  - Only time will tell.  
(There are legal issues here in the US with using 160mhz outside, it interferes with like weather prediction stuff...(?) - Apparently it's possible with some WiFi equipment to use two different 80mhz bands, getting effectively 160mhz; not sure if there are two full 80mhz bands that I can use outdoors legally. - I think if you enable special power regulation and stuff that you can do it.)

Wednesday, May 22, 2019

xz man page

I either nominate xz for the worst man page ever or I gladly make a fool of my self for not understanding man pages.

There is no help on the man page for how to specify an input file with a separate output file name.

The man page goes on and on and on about different compression ratios and how to specify a custom compression profile.

But no mention of "-k" or "-c" or how to use them.

This is the sort of failure that our community needs to acknowledge.  This sort of error creates huge frustration for millions of people who mostly know what they are doing, and can completly stop new people from entering the community.

How do I fix this?  Can I submit a patch somehow to update the man page to make it more usefull?  -  {sigh}

EDIT: Ok, I was wrong.  "-k" and "-c" are mentioned.  I still find that reading this man page provides no understanding of how to use these options.  

This is how you compress a file and keep the origional:
 
xz -c original.file > compressed.file.xz
Hindsight is great eh?  Makes sense now.  -  But the point of a manual is to help the reader gain understanding.  man pages almost always fail at this.  They are good references to things which are already known, but terrible tools to learn from.

Monday, May 20, 2019

Bridge to the Shop

I tried out a 64bit Gentoo image for Raspberry Pi...    This is very Gentoo.  The Rapberry Pi 3B+ has a 64bit processor, but 32 interface to, like, everything.  Basicially no one runs a 64bit OS on the Raspberry Pi, but you could, and if you use Gentoo and you can do something, well why not?!

It ran very fast for a couple of minutes, then it crashed.

I went back to Raspbian, and ran into a problem.  One of my Raspbian images was running an updated kernel, that did not have anything in /lib/modules that matched.  So I was unable to update the WiFi drivers.  I found an article with the correct command to reinstall the Raspbian Kernel:

sudo apt-get install --reinstall raspberrypi-bootloader raspberrypi-kernel

So play time over and annoying problem accomplished I moved on to thinking about how to actually implement the bridge.  I think I'm going to setup two RaspberryPi's to make this bridge.  That will allow it to be more portable, and might make creating a educational guide for others to learn from easier.  (The alternative being to use the RPi access point that I already have as an end point.)

L2TPv3 (Layer 2 Tunneling Protocol Version 3) seems to be the key piece of technology that I need to make this work. :-)  I found NetworkLesons.com that has a very succieient explination of L2TPv3.  While Wikipedia's L2TPv3 entry has some interesting history.

Sunday, May 19, 2019

Mesh Networking

I've started down a long road.   I didn't know how long a road this was until I got on it and started walking.  This road is difficult to travel because it's not clear where the road is actually going and all the signposts have fallen over and there are angry bushes with thorns growing atop them.  :-)

Garage Network Connection - Goal #1


Make a WiFi bridge between my home network and the network in the shop/garage that just works like two network switches plugged into each other.

Status: Mostly failure.  I've learned a lot but don't have anything functional yet.  It's been a while since I worked in earnest on this goal.  I feel like I have a real chance of getting there.

Problems discovered and discussion of solutions:

Layer 3 vs Layer 2

 WiFi is a layer 3 technology, but networks need layer 2 connectivity if your going to have multiple devices on both sides of a connection.  Solution: make a WiFi connection between two devices, and route traffic between the two networks through that connection.  This should work, but I ran into a routing hardware problem

Routing Hardware Problem

My ~13+ year old WiFi router has a configuration page for routing subnets.  But it's a sham, total baloney.  It's not capable of routing subnets.  Solution: Ubiquity Edge Router X - Fixed. Done! Victory!  Except that might not be good enough because of "IOT" crap software and hardware that is out of my control.

The IOT problem.

We use a Chromecast to watch TV, play music, etc.  If you want to cast some content from your cell phone or tablet the way to connect is to use the google home app.  To add a chromecast you click the pretty little blue button.  You have no way of telling the home app to look for a chromecast on a different subnet.  Basicially dumb internet devices really cause headaches when your home network doesn't look "normal".  Could the solution be B.A.T.M.A.N.?  I don't know but that led me straight into my next goal before I had finished this one.  Which is not great.  Maybe I can get back to the original goal now, and then deal with the IOT problem later.

Seamless WiFi and/or Mesh Network - Goal #2

This could fix the IOT problem.  It was always a goal to install multiple WiFi AP's around the house, the shop, the future gazebo, the firepit, the front yard, etc.  It's frustrating trying to listen to internet radio under my earmuffs while mowing the yard because I'm constantly loosing and regaining wifi as I travel back and forth with the mower.  Also when friends come over I want to be able to help them connect to WiFi ONCE, and not frustrate them or me with having to connect over and over to different WiFi networks as we move about.  So I need seamless WiFi.  If I can also get a WiFi mesh going that would limit the number of buried ethernet cables that I have to trench.  Also learning about Mesh networks and the technologies that are being developed for community use would be awesome!  Maybe I can help create a local Mesh Network!

The network switch problem

 Turns out that the SBC's I love so much (single board computers - mostly raspberry Pi's) generally don't have network switch hardware, and their WiFi devices are generally connected via USB.  This is apparently awful for creating mesh network nodes.  This limits a nodes usefulness to connecting to at most 5-7 other neighbors and clients.  The WiFi routers that we buy at the supermarket not only come with questionable proprietary software, but also hardware network switches connected (more or less) directly to WiFi chipsets.  There are two solutions:

Liberate commercial WiFi Router devices, or buy specialty network hardware - then install and configure them with libre/open source software.

Using the proprietary hardware is unacceptable to me at this point.  13 years ago when I bought my DLink DIR-655 spying on customers/consumers was just on the horizon of becoming a thing.  Today we have to fight for privacy against every company and with every chip that we bring into our houses.  I do have my guilty pleasures, there are some privacy battles I choose to loose for convienience or for fun.  I use Goolge almost everything, cause it's so useful; and I have a pair of Vinci Headphones my Dad gave me.  They supposedly listen and learn what I like and use neural network algorithms to choose what music to play... or something... /rant

So, for small number of users and not mesh use the RaspberryPi's should be fine.  For community level mesh networking we will need better hardware, like the Espressobin.  I bought one for testing, I'm sure I'll blog about it eventually.

The seamless problem


I haven't even gotten into this problem yet.  I know it can be done, but the whole mesh thing is a rabbit hole that has been pulling me down in.  I think that a good mesh solution will also solve the multiple WiFi AP transparent hopping problem so I've been looking into it from that perspective.  But because of how difficult that might be, I might back off and try to solve this first.  We'll see.

The Mesh problem


Manufactures have been solving this, or half, solving this with proprietary solutions for a while now.  Also it's been so slow in coming that there is actually a conference in Paris called Batlemesh where different mesh solutions compete.  I've just started to learn about what the diferent problems there are and what each technology is meant to do and how they fit together. 

There might be hope on the horizon in 802.11s.  Unfortunately there are VERY few WiFi chipsets with software drivers/kernel-modules combinations that support 802.11s.  There are a new 'N' class devices out there, but as I said in a previous post I'd really like to upgrade to faster 'AC' wifi.

Tomesh has a very easy to install solution for RapberryPi's - but they do all their user education face to face in Toronto.  They have a great install script, but it asks questions about all this stuff, and there are no links to documentation or ANY explanation as to what each of the modules is for or what it does. - So that's another long road...

LibreMesh looks amazing, but it is lazer focused on liberated WiFi router hardware, which is great, but I'm stuck with Raspberry Pi's right now and the RaspberryPi image they have is broken.

Then there is stuff like blogs and almost how-to's on how to setup WiFi mesh nodes.  This might be useful to read, and maybe I can glean some context and specific tid-bits from these type of articles.  But I'm done wasting my time following How-To's that don't educate more than they instruct.

A lesser solution might be Ad-Hoc networks...  I'm not really sure.  The pi-adoc-mqtt-cluster wiki looks promising.

That's my whole day and a half gone.  Writing this all down is definitely going to help me in the future, who knows maybe it helps someone else too. :-)