M1 Mac Can't Open Print Queue

OpenInRosetta.png

This post hopefully won't be useful for very long, as I assume this bug will quickly be fixed. But if you have one of the shiny new M1 Macs running Big Sur, as of version 11.0.1 you may not be able to open the print queue for any of your configured printers. I don't know how widespread it is, but there is at least one other person reporting the issue in addition to myself.

The fix is fairly easy. In Finder, go to the "Go" menu and hold down the Option key. You will see an entry for "Library" appear in the list. Select Library and a finder window will pop open. Scroll down to the Printers folder and open it. Hit Command-I (or right click and Get Info) on each printer and check the "Open using Rosetta" box and your print queues should open as expected.

I have this issue on both a Brother and HP printer. I didn't install 3rd party drivers for either of them. I just let macOS discover them and print using the built-in functionality and they both print fine. I expect this will be fixed soon but hopefully this may help someone googling in the meantime.

EDIT: 12/15/2020 macOS 11.1 was released and the issue still persists on my M1 MacBook Air.

EDIT: 02/02/2020 macOS 11.2 looks like it resolved the issue for me. I can't believe it persisted as long as it did.

EDIT: 03/18/2021 Based on the ongoing comments this issue seems to be a bit hit-or-miss. Some people are still seeing in in even newer releases of macOS and others are not. People are also reporting the fix doesn't work at all.

Dell Venue 10 Pro 5055 Screen Rotation in Gnome

I recently fished a Dell Venue 10 Pro out of a pile of old computers at work that were heading to recycling. It's a pretty underwhelming computer but I thought it might be fun to tinker with a linux tablet in anticipation of the PineTab being released sometime next year.

I threw Fedora 31 on it as a first attempt, partly because I like Fedora and mostly because I had a USB drive with the installer already handy. I realize this might not be the best distro for this underpowered tablet but I just wanted to check it out. It installed fine with one exception, the screen is rotated 90 degrees clockwise in gnome. It worked fine under LXDE though. I poked around looking for a simple screen rotation setting in gnome but didn't find anything. Google kept pointing me down the road of iio-sensor-proxy and something about an ACCEL_MOUNT_MATRIX which I sort of glossed over because it seemed overly complex for a simple screen rotation. Surely there is just a simple "rotate 90 degrees" setting somewhere, right?

Eventually I gave up on a simple solution and started to read through the accelerometer matrix stuff. It turns out it's not that complicated. There is a file containing information about how the accelerometer in any given device is mounted so the OS knows which readings on each axis, x, y, and z correspond to the physical world. This is recorded in a matrix of three rows and three columns. It's been 30 years since I learned linear algebra and everything I once knew about matrix math is long forgotten so I couldn't really figure out how the matrix itself works, I just got my settings through trial and error. You can read the details of the matrix documented in the kernel but it didn't really help me much.

If you look at the sensor file it contains instructions for adding your own custom entry. Essentially you just need to figure out your device modalias:

cat /sys/`udevadm info -q path -n /dev/iio:device0`/../modalias

For the Dell Venue it returned acpi:INVN6500: Then you can get your device DMI string:

cat /sys/class/dmi/id/modalias

which returns:

dmi:bvnDellInc.:bvrA07:bd12/30/2015:svnDellInc.:pnVenue10Pro5055:pvrA07:rvnDellInc.:rn0T2H9X:rvrA00:cvnDellInc.:ct8:cvrNotSpecified:

Then create the file /etc/udev/hwdb.d/61-sensor-local.hwdb with the contents below. NOTE: Whitepace matters, you need to start the ACCEL_MOUNT_MATRIX line with a blank space

sensor:modalias:acpi:INVN6500*:dmi:*xvnDell*:pnVenue10Pro5055*   ACCEL_MOUNT_MATRIX=0, -1, 0;1, 0, 0;0, 0, 1

You can see I simplified the DMI string above with asterisks rather than specify every detail. On your own system it probably doesn't matter, in fact you can skip the full DMI string entirely and just do something very simple like this:

sensor:modalias:acpi:INVN6500*:dmi*

This will match anything using the INVN6500 sensor which is fine because your machine only has one sensor, but I tried to format my string to match the style of other strings in the main systemd sensor file because I wanted to also submit a pull request to include this in the official project.

Now you just need to update your hardware database:

sudo systemd-hwdb update

If you get an error, you probably ignored the note above about whitespace. If you didn't get an error you can validate your setting worked by running the commands below. Or you can just reboot and see what happens.

sudo udevadm trigger
sudo udevadm info -export-db | grep ACCEL

I submitted a pull request to add the Dell Venue 10 Pro 5055 info to systemd so at some point in the future this will "just work" but If you are following this guide and have a different device for which you are trying to figure out the matrix, I can tell you what I figured out in my trial and error. The default matrix is the "identity matrix" which means the hardware and sensor are perfectly aligned by default. The identity matrix is:

1 0 0
0 1 0
0 0 1

The following matrix gave me the correct default orientation when docked to the keyboard but it would not rotate at all.

0 1 0
0 1 0
0 0 1

So, I think you should not have two ones in the same row or column which makes sense because I believe they represent which sensor is pointing up in a given orientation. This next matrix worked for two orientations but was flipped 180 degrees for the other two:

0 1 0
1 0 0
0 0 1

So finally flipping the first one to a negative one corrected the 180 degree issue:

0 -1 0
1 0 0
0 0 1

And so that is ultimately the value I used for the "ACCEL_MOUNT_MATRIX=0, -1, 0;1, 0, 0;0, 0, 1" setting.

UPDATE: My pull request was accepted to systemd. As minor as it is, I'm weirdly excited that my first real pull request was accepted to a project as important as systemd.

Linux Professional Institute

LPIC-1-Medium.png

I haven't really bothered with certifications for most of my career but I've been listening to the Linux Unplugged Podcast lately which lead me to checking out some of the training at Linux Academy. There seems to be a lot of interesting training content there, so I decided that if I'm going to take the courses that I should actually get the certs to go along with them. So I started at the beginning with just the entry-level LPIC-1 Linux Administrator certification. It's not much but it was easy to knock out right away before moving on to the interesting things.

30 Days Later

NaNo-2018-Winner-Badge.png

What do you know? 30 days later and, apparently, I wrote a book. I did parts of it on my Tandy 102, which was fun, but most of it I wrote using Scrivener and moving back and forth between my MacBook Air, iMac, and iPad. Scrivener can sync your work via dropbox so you can work from multiple machines as long as you are careful with your sync habits. I even wrote 900 words or so using Scrivener on my iPhone, just to see what it was like. It's a pretty cool app, great for organizing your book and keeping track of your word counts and goals. It was also easy to import the text from my T102 into the overall manuscript.

And we're off!

Last year I participated in National November Writing Month. I didn't really have a plan going into it but it was pretty fun. I only got around 10,000 words done. Once I hit a few roadbumps I found it hard to get back into it, partially because I wasn't really into my chosen subject matter, and mostly because it's hard to commit to writing 1,666 words each and every day for a month.

This year I'm back at it with, hopefully, a more engaging plot idea and I hope to see it through until the end.

RC2018/04

I submitted an entry for the 2018 spring Retro Challenge which I alluded to in an earlier post. I've been neglecting posting my progress because I shot a bunch of video that I've "been meaning to edit" but I'm not sure how realistic that is, so here at least is a brief post that I am actually working on it and making progress (on the easy parts anyway).

RC2018/04 Pocket Computers!

RC2018/04 Pocket Computers!

My entry submission was kinda all over the place but vaguely unified around TRS-80 Pocket Computers. Apparently there is some controversy over whether these devices qualify as computers or are mearly programmable calculators. For the record, I fall very much in the computer camp.

I still have my childhood PC-3 which is the only original bit of technology from my youth that I kept until today. When I recently tried to fire it up I made a stupid mistake with the batteries (which I will detail in a later post) and thought it was dead. Before I had a chance to investigate, I stumbled on a really great eBay deal for a PC-3A with another cassette/printer interface, and a PC-4 for very cheap. On an impulse I bought it and only after it arrived did I realize my original PC-3 was mostly working after all. But both PC-3s had issues and both of the printer/cassette interfaces were basically dead. Naturally, the PC-4, which I initially had no interest in, and was just sorta a free bonus in my eBay purchase, was fully functional and worked great. As I played around with it a little, I came to appreciate it a lot more than I did as a kid but I realized that if I were to put any serious effort into programming it, I had no way to save any programs I wrote.

So my RetroChallenge was this:

  • Refurb each PC-3 to fix minor issues.
  • Refurb each PC-3 cassette/printer to make them functional at all
  • Come up with a way to load/save files to th PC-4. Ideally loading and saving directly to a Raspberry Pi without needing to involve a cassette at all.

The first two parts were easy and are pretty much done (I actually cheated and refurbed one of the pocket computers so I could submit an entry to /r/retrobattlestations 4K Week Contest in late March. A more detailed write-up is coming. The 3rd part is mostly crazy-town. I don't really know what I'm doing but I'm going to try to do it anyway. I don't have a lot of hope for this but I'm going to see what I can do. This is the true "challenge" in my RetroChallenge.

TRS-80 Micro Color Computer MC-10

Growing up, I never had any interest in the TRS-80 MC-10. It was underpowered and had a terrible little keyboard compared to its bigger brother the CoCo. I would poke around on one now and then at Radio Shack but it never really had much interest to me. But since I've been lurking in lots of retrocomputing corners of the internet lately, I keep seeing them pop up and people are still doing interesting things with them. So when I saw a super cheap one on Craigslist, with the 16K RAM pack, cassette cable, and video cable included, I couldn't resist. Unfortunately, what wasn't included was the power supply.

MC-10 Rectifier

MC-10 Rectifier

Normally a missing power supply would be no big deal. I've already got a few universal power adapters that I've been using for my Model 102, CCR-82, and PC-3 Printer. But the MC-10 is a weird little machine. It actually requires an 8V AC adapter, not DC. I did some googling and found posting in a forum that said DC would work fine, but the RS-232 port wouldn't work. I couldn't find anything to substantiate this claim but I did eventually look at the service manual and it does look like the circuitry should handle DC voltage just fine. It basically runs the AC through a recitifier to convert it to DC anyway. The service manual states that "a small amount of negative voltage is required to the RS-232 output op-amp" which you can see in the lower part of the circuit diagram above. "Vee" represents the negative voltage. In the full schematic, unless I'm missing something, the only place Vee is used is indeed an op-amp that makes up part of the RS-232 port. So in theory, as long as I don't use the RS-232 port, it should work okay on DC. . So I decided to give it try and, sure enough it boots up fine.

It works!

It works!

I do still plan to get the correct AC power supply at some point. My local Guitar Center has one that should work but that's considerably more than I paid for the MC-10 itself. A lot of people suggest the Atari 400/800 power supply is a good replacement so I may go with that, or I might try my luck on ebay but for now it's good enough to mess around with. It is also in pretty rough shape (this picture actually looks better than it does in person) so I think I'll take it apart and give it a good cleaning and try to retrobrite the case, which seems to be all the rage with the kids today.

Tigers '84

When I was a kid I had BASIC program that drew the Detroit Tigers logo on my TRS-80 Color Computer 2. Having recently aquired a CoCo2 once again, and with baseball starting back up, I was thinking about this program. I honestly couldn't quite remember if I made it myself or got it from a magazine. I used to take saran wrap and put it over a picture. I would then use a grease pencil to trace the picture and transfer the saran wrap to my computer screen to painstakingly recreate the picture using BASIC DRAW commands. But my memory of the Tigers logo was that it was probably too detailed for me to have done myself so I set about hunting through Rainbow Magazine archives and believe it or not I found it.

Here it is in all its 8-bit glory.

Model 102 Serial Terminal

Six years ago when I started this blog I was eagerly awaiting the release of the Raspberry Pi as well as the birth of my daughter. In fact they both arrived around the same time so I didn't have as much time to experiment with it as I would've liked. One of the things I never got around to doing was getting a serial console connection between my Pi and my Tandy Model 102. I ordered cheap little MAX232 kit and soldered it together but ran into some kind of trouble at the time. I don't remember what the issue was, and I don't think I even spent any time troubleshooting it, it just fell on the backburner until I finally dug it out again today.

In the intervening years this project has been done by plenty of others so I'm not going to bother detailing the steps, but I'm happy to have gotten it done nevertheless. I was really just looking for something to mess with while I wait for April so I can start on my RC2018/04 RetroChallenge entry. Watch for an upcoming blog post about my RetroChallenge project where I will detail exactly how much more I have bitten off more than I can chew. In the mean time, now that I have a working proof of concept here, my next step is to get it set up on my Raspberry Pi Zero W and put it into some type of compact case so I can have a convenient little box that runs TCPser to get some of my retro computers onto the internet.

IMG_0220.jpg