The Empire and the Cloud – a weirdly specific nerdy sysadmin fanfic from ChatGPT

By , 2023-05-24 18:13

Initial Prompt

Hi ChatGPT, can you write me the transcript of a call between Darth Vader and Microsoft 365 level 1 tech support, with the Death Star personnel being unable to access their email ever since they blew up Alderaan. The reality is that there was a major datacenter on Alderaan where most of the Empire’s data was stored, as they elected to have it geolocated on a peaceful planet to minimize risk. The level 1 tech however has no idea that this is the case and is just taking Darth Vader through the usual level 1 troubleshooting steps. Have the tech support also verify Darth Vader’s Microsoft 365 Tenant ID, contact details, and personal information, for security purposes, and also ask him if he has an existing ticket number.

Transcript of Call: Darth Vader and Microsoft 365 Level 1 Tech Support

[Phone ringing]

Tech Support: Thank you for calling Microsoft 365 Technical Support. My name is Rajesh. How can I assist you today?

Darth Vader: This is Darth Vader, Dark Lord of the Sith. I demand immediate assistance. My pathetic subordinates are unable to access their emails.

Tech Support: Thank you for reaching out, Lord Vader. I’ll do my best to help you. To begin with, may I have your email address and account details?

Darth Vader: My email address is [email protected]. You should know who I am. I am using the Death Star’s network.

Tech Support: Thank you, Lord Vader. For security purposes, I’ll need to verify some additional information. Can you please provide me with your Microsoft 365 Tenant ID?

Darth Vader: The Tenant ID? This is an unnecessary waste of my time. I have more important matters to attend to than providing you with trivial details.

Tech Support: I understand your frustration, Lord Vader, but the Tenant ID helps us ensure we are accessing the correct account. Please bear with me while we resolve this.

Darth Vader: Very well. The Tenant ID is A2FBB86C-9F44-4E5E-9ECC-2F6192B0C673.

Tech Support: Thank you for providing the Tenant ID, Lord Vader. I apologize, but there were a few characters that I didn’t catch clearly. Allow me to repeat what I heard, and please correct me where necessary. I heard A2F like Alpha 2 Foxtrot, D like Delta, B like Bravo, B like Bravo, 8 6, C like Charlie, 9, F like Foxtrot, 4 4, E like Echo, 5, E like Echo, 9, E like Echo, C like Charlie, C like Charlie, 2 F like Foxtrot, 6 1 9 2, B like Bravo, 0, C like Charlie, 6 7 3. Could you please clarify the characters I misheard?

Darth Vader: No, not D! B! B like Bravo! Also, it’s E like Echo, not C like Charlie. The correct Tenant ID is A2FBB86C-9F44-4E5E-9ECC-2F6192B0C673.

Tech Support: Thank you for clarifying, Lord Vader. I apologize for the errors. The correct Tenant ID is A2FBB86C-9F44-4E5E-9ECC-2F6192B0C673. Now, to confirm your identity, could you please provide me with your registered contact details and any personal information associated with your account?

Darth Vader: Enough of this unnecessary procedure! My registered contact details are 123-987-4560. As for personal information, my date of birth is July 5th, 19BBY. Now, let’s move on.

Tech Support: Thank you for providing the information, Lord Vader. One final question: Do you have an existing ticket number related to this issue?

Darth Vader: Ticket number? This is the first time I’m reporting this problem! I shouldn’t have to deal with such bureaucratic hurdles. Just fix it!

Tech Support: I understand your frustration, Lord Vader, but the ticket number helps us track and escalate the issue effectively. Allow me to provide you with a ticket number for reference. Your ticket number is TK-7324-5169.

Darth Vader: Very well. I shall make a note of it.

Tech Support: Thank you, Lord Vader. Now, before we proceed, may I ask for an alternate email address where we can send you the ticket information and updates?

Darth Vader: Fine. Use the alternate email address [email protected]. Don’t mistake this change in domain for weakness. Now, ensure that your team resolves this promptly.

Tech Support: Thank you for providing the alternate email address, Lord Vader. We will send the ticket information and updates accordingly. Rest assured, we will work diligently to resolve the issue.

Darth Vader: I expect nothing less. Ensure that your team delivers the desired results.

Prompt 2

A few hours pass, the Death Star’s email is still not working, and Vader hasn’t received any email beyond the initial one giving the ticket number. He grows impatient.

Transcript of Call: Darth Vader and Microsoft 365 Level 1 Tech Support

[Phone ringing]

Tech Support: Thank you for calling Microsoft 365 Technical Support. My name is Rajesh. How can I assist you today?

Darth Vader: This is Darth Vader, Dark Lord of the Sith, once again. I called earlier regarding the email issue on the Death Star. I have not received any updates or resolution, and the problem persists. Explain yourself!

Tech Support: I apologize for the inconvenience, Lord Vader. I understand your frustration. Let me check the status of your ticket and provide you with an update.

[Some time passes]

Tech Support: Lord Vader, I apologize for the delay. It seems there was an unforeseen issue in our email notification system, which caused the delay in sending you updates. I assure you our team is actively working to resolve the email problem on the Death Star.

Darth Vader: Unforeseen issue? Incompetence! I will not tolerate further delays. The Death Star’s operations are at risk because of this negligence. Fix it immediately!

Tech Support: I understand your concerns, Lord Vader, and I assure you that we are taking this matter seriously. Our specialized team is investigating the issue with the highest priority. We are committed to restoring the email service as quickly as possible.

Darth Vader: Your assurances mean nothing to me. I demand immediate action! Lives depend on the smooth operation of our communications.

Tech Support: I apologize for the inconvenience and the impact it may have caused. We are doing everything we can to expedite the resolution. I will personally follow up with the team to ensure they are aware of the urgency. Rest assured, we will provide you with updates as soon as we have more information.

Darth Vader: See that you do. I expect to hear from you soon. Do not disappoint me.

Tech Support: Understood, Lord Vader. We will keep you informed. Is there anything else I can assist you with at this time?

Darth Vader: No, that will be all for now. I expect prompt action. This conversation is concluded.

Tech Support: Thank you, Lord Vader. We understand the urgency of the situation. We will work diligently to resolve the issue. May the Force be with you. Goodbye.

[The call ends as Darth Vader hangs up, his impatience evident.]

Prompt 3

Finally, Vader receives an email informing him that his case has been escalated to level 3 support.

Transcript of Email: Darth Vader receives an escalation notification

From: Microsoft 365 Support

To: Darth Vader

Date: [Date]

Subject: Case Escalation Notification: Email Service Issue

Lord Vader,

We hope this email finds you well. We regret the inconvenience caused by the ongoing email service issue on the Death Star. We understand the criticality of this matter, and we assure you that we are taking immediate action to resolve it.

We would like to inform you that your case has been escalated to our Level 3 Support Team. They are our most experienced technicians, equipped with advanced tools and resources to address complex issues.

The Level 3 Support Team is currently conducting an in-depth investigation into the root cause of the problem and working towards a swift resolution. Rest assured, we are dedicating all available resources to restore the email service on the Death Star as soon as possible.

We recognize the impact this issue has on your operations, and we sincerely apologize for any inconvenience caused. We will keep you updated on the progress and provide you with regular status reports until the matter is fully resolved.

If you have any additional concerns or questions, please do not hesitate to reach out to us. We are committed to resolving this matter to your satisfaction.

Thank you for your patience and understanding.

Sincerely,

Microsoft 365 Support Team

Prompt 4

Upon reading this email, Vader writes an impatient reply, only to get an automated response acknowledging receipt and informing him of their SLAs and response times.

Transcript of Email: Darth Vader’s Reply and Automated Response

Email from Darth Vader to Microsoft 365 Support:

To: Microsoft 365 Support
Subject: RE: Case Escalation Notification: Email Service Issue

Your assurances are hollow! I demand immediate resolution of the email service issue on the Death Star. Lives are at stake, and your delays are unacceptable. Do not test my patience further.

-Darth Vader

Automated Response from Microsoft 365 Support:

Thank you for contacting Microsoft 365 Support. Your email has been received.

Please note that our support team is currently experiencing a high volume of inquiries, and we are working diligently to address them all. We understand the urgency of your case and assure you that we are committed to resolving it promptly.

Our service level agreement (SLA) outlines our response times and commitment to resolving support issues. For critical issues, we aim to respond within [response time] and provide regular updates until the issue is resolved.

We appreciate your patience and will continue to keep you informed of any progress.

Thank you for choosing Microsoft 365.

Sincerely,
Microsoft 365 Support Team

Prompt 5

Enraged, Vader decides to call his Microsoft account executive. The Microsoft account exec informs him that the Empire hasn’t purchased Microsoft Premium support and so there’s not much he can do other than take the ticket number and check in with the Level 3 support team. Vader should be on first name terms with the account executive, you can make up their name, gender and whole character..

[Phone ringing]

Microsoft Account Executive (AE): Good day, Lord Vader! This is Rebecca, your Microsoft Account Executive. How may I assist you today?

Darth Vader: Rebecca, I have had enough of the incompetence from your support team! The email service on the Death Star remains disrupted, and the Level 1 and Level 3 support have failed to provide a satisfactory resolution. Explain yourself!

AE: Lord Vader, I understand your frustration, and I apologize for the inconvenience caused. I have been made aware of the situation and have been in touch with the support team regarding your case. Unfortunately, I must inform you that the Empire has not purchased Microsoft Premium support, which would provide a higher level of service.

Darth Vader: Unacceptable! The Empire’s operations cannot be hampered by such technical issues. I demand immediate action to rectify this matter!

AE: Lord Vader, I empathize with your concerns, but without Premium support, our options are limited. However, rest assured that I will personally take note of your case and escalate it to the Level 3 support team. I will check in with them regularly to ensure they are prioritizing your issue.

Darth Vader: See that you do, Rebecca. I expect results. Lives are at stake, and I will not tolerate any further delays or excuses.

AE: I understand the gravity of the situation, Lord Vader, and I assure you that I will do everything within my power to expedite the resolution. May I have your ticket number for reference?

Darth Vader: The ticket number is TK-7324-5169. Ensure that the Level 3 support team understands the urgency of this matter.

AE: Thank you for providing the ticket number, Lord Vader. I will personally follow up on it and keep you informed of any progress made. Rest assured, I am committed to resolving this issue promptly.

Darth Vader: Your diligence will be closely observed, Rebecca. I expect nothing short of a swift resolution.

AE: Understood, Lord Vader. I will keep you updated. If there’s anything else I can assist you with, please don’t hesitate to let me know.

Darth Vader: No, that will be all for now. Ensure immediate action is taken. This conversation is concluded.

AE: Thank you, Lord Vader. I will do my utmost to address this matter. May the Force be with you.

[The call ends as Darth Vader hangs up, his frustration palpable.]

Prompt 6

Finally, Vader gets a call back from the level 3 support agent.

Transcript of Call: Darth Vader and Microsoft 365 Level 3 Support Agent

[Phone ringing]

Level 3 Support Agent (LSA): This is David from Microsoft 365 Level 3 Support. Am I speaking with Lord Vader?

Darth Vader: Yes, this is Darth Vader. Finally, someone who can address the email issue on the Death Star. I demand immediate resolution.

LSA: I understand the urgency, Lord Vader. I have been assigned to your case, and I assure you that I will do everything possible to resolve the issue swiftly. Could you please provide me with the ticket number for reference?

Darth Vader: The ticket number is TK-7324-5169. I expect immediate action.

LSA: Thank you, Lord Vader. I have retrieved your case details. I see that the email service disruption on the Death Star is a matter of great concern. I apologize for the inconvenience caused, and I assure you that I will prioritize this issue.

Darth Vader: Enough with the apologies. I want results. Lives are at stake, and I will not tolerate any further delays.

LSA: Understood, Lord Vader. I assure you that I will work diligently to restore the email service as quickly as possible. Can you please provide me with any specific error messages or additional information regarding the issue?

Darth Vader: There have been no error messages. The email service simply stopped functioning after the destruction of Alderaan. Ensure that your investigation covers all possible causes and resolve the issue immediately.

LSA: I will investigate the matter thoroughly, Lord Vader, and explore all possible causes for the disruption. Our specialized team will be involved as well. Rest assured, we will leave no stone unturned to resolve this issue promptly.

Darth Vader: See that you do, David. The Empire’s operations depend on a functioning communication network. I expect regular updates on the progress.

LSA: I completely understand the importance of a reliable communication network, Lord Vader. I will provide you with regular updates on the progress and any significant developments regarding the resolution. We are committed to resolving this matter to your satisfaction.

Darth Vader: Very well, David. Ensure that your actions reflect the gravity of this situation. I will be closely monitoring your progress.

LSA: I appreciate your vigilance, Lord Vader. I will do everything within my power to address this matter. If there is anything else I can assist you with, please don’t hesitate to let me know.

Darth Vader: No, that will be all for now. Focus on resolving the issue. This conversation is concluded.

LSA: Thank you, Lord Vader. I will keep you updated. May the Force be with you.

[The call ends as both parties hang up, with the LSA prepared to take on the challenge of resolving the email issue on the Death Star.]

Prompt 7

The Level 3 agent discovers that most of the empire.com 365 tenant was hosted on their Azure stable region that was on Alderaan. Alderaan had been a popular hosting location due to its long peaceful existence. Unfortunately, Darth Vader had blasted Alderaan out of existence. Now the Level 3 agent tries to explain this issue to Vader, and Vader is enraged, but mostly with himself, realizing that he destroyed his own communications network along with the planet and millions of lives. (although he is less concerned with the latter)

Transcript of Call: Darth Vader and Microsoft 365 Level 3 Support Agent

[Phone ringing]

Level 3 Support Agent (LSA): Lord Vader, this is David from Microsoft 365 Level 3 Support. I have an important update regarding the email issue on the Death Star.

Darth Vader: Speak, David. I expect a resolution to this matter.

LSA: Lord Vader, during our investigation, we have discovered a critical piece of information. It appears that the majority of the empire.com 365 tenant, including the Azure stable region hosting the data, was geolocated on Alderaan, which was unfortunately destroyed.

Darth Vader: What?! Are you telling me that the communication network was based on Alderaan, and I destroyed it along with millions of lives?

LSA: I regret to inform you, Lord Vader, but it seems that way. The peaceful existence of Alderaan made it an ideal hosting location, and the destruction of the planet has severely impacted the availability of the empire.com 365 services.

Darth Vader: No! This cannot be! I have destroyed my own communications network? This incompetence is unforgivable! Lives lost are of little concern, but the disruption to the Empire’s operations is unacceptable!

LSA: I understand your frustration, Lord Vader. This is indeed a significant setback. We are evaluating alternative solutions to restore the email services, but the impact of Alderaan’s destruction is profound.

Darth Vader: Find a solution, David. I don’t care what it takes. The Empire cannot afford such a vulnerability. I will hold you personally responsible for resolving this matter.

LSA: I assure you, Lord Vader, that we will exhaust all possible avenues to mitigate the impact and restore the email services. We recognize the gravity of the situation, and we are committed to rectifying it as best we can.

Darth Vader: See that you do, David. I will be watching closely. Any further delays or setbacks will not be tolerated. Fix it!

LSA: Understood, Lord Vader. We will work diligently to address this matter. I will keep you informed of our progress and any significant developments. If there’s anything else I can assist you with, please don’t hesitate to let me know.

Darth Vader: No, that will be all for now. Ensure a swift resolution. This conversation is concluded.

LSA: Thank you, Lord Vader. Rest assured, we will do everything in our power to resolve this issue. May the Force be with you.

[The call ends, leaving Darth Vader grappling with the realization of his own actions and the impact they have had on his communications network.]

Prompt 8

In the next call, the account executive contacts Vader on a conference call with the Emperor to inform them that due to the Empire’s violation of Microsoft’s terms of service by destroying Alderaan and the Microsoft datacentres on it, their Microsoft 365 account has been permanently terminated effective immediately, and they have been banned from purchasing any Microsoft services in the future.

Transcript of Call: Darth Vader, Emperor, and Microsoft Account Executive

[Phone ringing]

Microsoft Account Executive (AE): Good day, Lord Vader and Emperor. This is Rebecca, your Microsoft Account Executive. I have an important update to share with you.

Darth Vader: What is the meaning of this, Rebecca? Speak quickly.

Emperor: Indeed, Rebecca. We have little patience for idle chatter. Get to the point.

AE: I regret to inform you that due to the Empire’s violation of Microsoft’s terms of service, specifically the destruction of Alderaan and the Microsoft datacentres located on it, your Microsoft 365 account has been permanently terminated, effective immediately. Furthermore, the Empire has been banned from purchasing any Microsoft services in the future.

Darth Vader: This is an outrage! How dare Microsoft take such action against the Empire?

Emperor: Silence, Lord Vader! Rebecca, explain the consequences of this decision in detail.

AE: I understand your frustration, Lord Vader, but the destruction of Alderaan and the Microsoft datacentres on it is a severe violation of our terms of service and the trust placed in us. As a result, we are enforcing the penalties outlined in our agreement. The termination of your Microsoft 365 account means the loss of access to all associated services, data, and support. The ban on future purchases prohibits the Empire from acquiring any Microsoft services moving forward.

Darth Vader: This is unacceptable! The Empire relies on Microsoft services for its operations. We cannot be left without essential tools and support.

Emperor: Rebecca, is there no way to reverse this decision? The Empire is willing to negotiate and make amends.

AE: I understand your concerns, Emperor, but the decision to terminate the account and impose the ban is final. It was made after careful consideration of the violation and its consequences. However, I am open to discussing any potential avenues for resolution or alternative arrangements. We can explore options during a future discussion.

Darth Vader: This will not go unanswered! The Empire will find alternatives to Microsoft’s services. We will not be hindered by their actions.

Emperor: Enough, Lord Vader! Rebecca, we will consider our options and contact you if negotiations are deemed necessary. This conversation is concluded.

AE: Very well, Emperor. Please feel free to reach out if you have any further questions or if there is anything else I can assist you with in the future. May the Force be with you.

[The call ends, leaving Vader and the Emperor to contemplate the consequences of their actions and the need to seek alternative solutions for their technological needs.]

Prompt 9

In the next scene the Emperor is furious at Vader for destroying their Microsoft contract and Alderaan. He can’t believe now they will have to go with Google Workspace for their email and collaboration suite. And who will support the thousands of on-prem Windows servers now that they’ve been banned from any future Microsoft contracts? It’s not like the Empire could be seen switching to Linux… Those Linux sysadmins are basically Jedi without Force powers.

Scene: The Emperor and Darth Vader discuss the consequences of the termination of their Microsoft contract

[Emperor’s chamber]

Emperor: Lord Vader, I cannot fathom the magnitude of your actions! Destroying our Microsoft contract along with Alderaan. We now find ourselves banished from any future Microsoft contracts! This is an outrage!

Darth Vader: My apologies, my master. I acted in what I believed was the best interest of the Empire. I did not foresee the consequences with Microsoft.

Emperor: Well, the consequences are dire, Vader! Who will support our thousands of on-premises Windows servers now? We can’t simply switch to Linux and risk appearing like a band of rebels!

Darth Vader: The situation is indeed challenging, my master. Linux sysadmins lack the efficiency of the Force, but we must explore alternatives. Google Workspace could provide an email and collaboration suite, albeit not as familiar as Microsoft.

Emperor: Google Workspace? It’s a poor substitute, Vader. But perhaps it will have to do for now. We will not be left without essential tools for our operations.

Darth Vader: I will initiate the necessary discussions with Google to explore the possibilities and ensure a smooth transition. We must act swiftly to maintain our efficiency.

Emperor: Do not fail me again, Lord Vader. I demand results. And remember, we must tread carefully. We can’t afford any more mistakes or disruptions.

Darth Vader: As you command, my master. I will handle the negotiations personally and ensure that the Empire’s technological infrastructure remains operational.

Emperor: See to it, Vader. The fate of the Empire rests on our ability to adapt and overcome these setbacks. May the Dark Side guide us.

[Darth Vader nods and leaves the Emperor’s chamber, his mind focused on finding a solution in the face of the banishment from Microsoft contracts.]

Workaround/solution for Audio crash/hang loud beep after a certain period – rt5650 on HP Chromebook G5

By , 2023-01-09 19:16

Installing Ubuntu 22.04 or Linux Mint on an HP Chromebook G5 EE works fine, except for the audio hanging and producing a loud beep until pulseaudio is restarted. The solution :

On 12/18/22 7:02 AM, Mark Hills wrote:
HP Chromebook (11a, G5 “Setzer”) uses snd_soc_sst_cht_bsw_rt5645 module
and presents a device “rt5650”.

can you share the result of ‘aplay -l’, wondering which platform driver you are using.
Audio works briefly, until after about 30 seconds it’s interrupted by a
square wave or short buffer cycling.

If this is with the SOF driver, there’s a known issue and a known workaround, please add this to /etc/modprobe.d/alsa-base.conf

options snd_sof sof_debug=1
— Read on www.spinics.net/lists/alsa-devel/msg151538.html

PowerShell one-liner: Convert FLAC to MP3 using ffmpeg

By , 2022-08-09 21:07

obviously requires ffmpeg in PATH, I use the Windows binaries from here: https://github.com/BtbN/FFmpeg-Builds/releases

Get-ChildItem -Filter '*.flac' ".\inflacfilesdir\" | ForEach-Object { ffmpeg -i $_.FullName -c:a libmp3lame -q:a 0 -map_metadata 0 ".\outmp3filesdir\$($_.Basename).mp3" }
  • -c:a libmp3lame = use lame encoder
  • -q:a 0 = equivalent to lame V0 VBR
  • -map_metadata 0 = copy metadata tags, including embedded album art
  • inflacfilesdir and outmp3filesdir should be modified to point to corresponding directories. They can also be set to the same value if you want the .mp3 files to be created in the same place as the .flac files.

A little collection of Windows ME (9x) Blue Screens of Death

By , 2021-08-03 22:58

Windows ME BSODs (Exception, System Busy, and WARNING) Captured directly from VMware Workstation today.

I had found in the past that it was a bit hard to find clean, unedited, pixel-perfect copies of the Blue Screens of Death, so when my Windows ME VM crashed today I knew it was time to save these for the future. These are pretty much the same as the ones that would appear in Windows 95 and Windows 98.

First the classic “An exception 0D has occurred” BSOD

Next, System is busy

and last but not least, WARNING system has become unstable

WiFi network data analysis – Downtown Toronto

By , 2021-03-20 23:00

Installed a new Ubiquiti USG at an office downtown today, and noticed that in the 8 hours since the system was first up, it had detected over 800 nearby networks. I decided to analyze the data a bit for fun.

First, the channel. I was surprised to see that over half of all detected APs were on channel 6.

It does make sense that there are far more 2.4GHz APs detected, since it has better signal penetration.

Next up, security standards.

Nearly 90% of APs are using WPA2 of some sort, and just over 10% are open. Less than 1% use WPA.

Now, arguably the most interesting – the AP manufacturer, according to OUI lookup.

Note: some OUIs were not recognized, so the dataset is slightly less than 800 here.

In the manufacturer breakdown we se a lot of the usual brands – Cisco, Aruba and Ubiquiti are in the top. Technicolor, Sagemcom, ASUS, HP, Juniper, Sonicwall are all also common network vendors. But what of the others?

The biggest “unusual” vendor we see is Mitsumi. Mitsumi is generally known as an OEM that manufactures PC peripherals and input devices – mice, keyboards, floppy and optical drives, and quite a few game consoles. It’s not surprising that they would make WiFi radios, but I wouldn’t expect their OUI to be used as an OEM.

Looking a bit further at the data, most of the Mitsumi networks’ SSIDs are in the format “WiFi Hotspot 0000” (where 0000 is a random 4 digits). However, a few of them had names such as “Cruze”, “Volt”, “Equinox” and “Malibu”. So, apparently Mitsumi manufactures the WiFi radio for the GM OnStar car hotspots.

Continuing on with the less-known OUI vendors, we also see Visteon, Continen (Continental), Harman/B (Harman/Becker), and AlpsElec (Alps Electric).

Alps, like Mitsumi, is an OEM known for PC peripherals – particularly keyboards and laptop touchpads. In this case, the SSIDs for the Alps APs are all some variant of “MB Hotspot 000” – so they are Mercedes-Benz car hotspots.

So, unsurprisingly, the other 3 are also car electronics OEMs.

Visteon – spun off from Ford in 2000, they specialize in car infotainment and other electronics systems.
Continental Automotive Systems – The electronics systems branch of German company Continental Tire.
Harman/Becker – a division of Samsung, specialized in car electronics, resulting from the Harman company’s acquisition of Becker, a German car radio manufacturer.

Today’s takeaway: a LOT of cars have WiFi hotspots built-in these days!

Ontario form 4383-80 English form-fillable PDF

By , 2021-03-07 22:05

Got frustrated that this form wasn’t available as a proper PDF form, so made it myself. Intended only as a convenience for those who wish to use it. PDF is not password-protected or signed.

Download a copy of the 4383-80E pdf form (Patient Enrolment and Consent to Release Personal Health Information) below.

Xircom RealPort 56k modem + 10/100 Ethernet drivers

By , 2021-01-27 13:35

Intel used to host these on their website, but took them down in a purge a few years back. So here are the drivers I saved a while back.

XBEM – Ethernet + Modem
XBE – Ethernet only

The 314 ones are from Intel (2000), the others are from Dell and a bit older (1999). All versions in one 7-zip file.

NVIDIA GPU ‘passthrough’ to lxc containers on Proxmox 6 for NVENC in Plex

By , 2020-12-06 19:19

I’ve found multiple guides on how to enable NVIDIA GPU access from lxc containers, however I had to combine the information from multiple sources to get a fully working setup. Here are the steps that worked for me.

  1. Install dkms on your Proxmox host to ensure the nvidia driver can be auto-updated with new kernel versions.
    # apt install dkms
  2. Download the latest nvidia binary driver supported by nvidia-patch.
    Head over to https://github.com/keylase/nvidia-patch and get the latest supported driver version listed there.
  3. Download the nvidia-patch repo
    git clone https://github.com/keylase/nvidia-patch.git
  4. Install the driver from step 1 on the host.
    For example, ./NVIDIA-Linux-x86_64-455.45.01.run
  5. Run the nvidia-patch/patch.sh script on the host.
  6. Install the same driver in each container that needs access to the Nvidia GPU, but without the kernel module.
    ./NVIDIA-Linux-x86_64-455.45.01.run --no-kernel-module
  7. Run the nvidia-patch/patch.sh script on the lxc container.
  8. On the host, create a script to initialize the nvidia-uvm devices. Normally these are created on the fly when a program such as ffmpeg calls upon the GPU, but since we need to pass the device nodes through to the containers, they must exist before the containers are started.

    I saved the following script as /usr/local/bin/nvidia-uvm-init. Make sure to chmod +x !
#!/bin/bash
## Script to initialize nvidia device nodes.
## https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#runfile-verifications

/sbin/modprobe nvidia

if [ "$?" -eq 0 ]; then
  # Count the number of NVIDIA controllers found.
  NVDEVS=`lspci | grep -i NVIDIA`
  N3D=`echo "$NVDEVS" | grep "3D controller" | wc -l`
  NVGA=`echo "$NVDEVS" | grep "VGA compatible controller" | wc -l`

  N=`expr $N3D + $NVGA - 1`
  for i in `seq 0 $N`; do
    mknod -m 666 /dev/nvidia$i c 195 $i
  done

  mknod -m 666 /dev/nvidiactl c 195 255

else
  exit 1
fi

/sbin/modprobe nvidia-uvm

if [ "$?" -eq 0 ]; then
  # Find out the major device number used by the nvidia-uvm driver
  D=`grep nvidia-uvm /proc/devices | awk '{print $1}'`

  mknod -m 666 /dev/nvidia-uvm c $D 0
  mknod -m 666 /dev/nvidia-uvm-tools c $D 0
else
  exit 1
fi

Next, we create the systemd service files to start this script, and the nvidia-persistenced.

# nvidia-uvm-init.service
# loads nvidia-uvm module and creates /dev/nvidia-uvm device nodes

[Unit]
Description=Runs /usr/local/bin/nvidia-uvm-init

[Service]
ExecStart=/usr/local/bin/nvidia-uvm-init

[Install]
WantedBy=multi-user.target
# NVIDIA Persistence Daemon Init Script
#
# Copyright (c) 2013 NVIDIA Corporation
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
# to deal in the Software without restriction, including without limitation
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
# and/or sell copies of the Software, and to permit persons to whom the
# Software is furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
# DEALINGS IN THE SOFTWARE.
#
# This is a sample systemd service file, designed to show how the NVIDIA
# Persistence Daemon can be started.
#

[Unit]
Description=NVIDIA Persistence Daemon
Wants=syslog.target

[Service]
Type=forking
ExecStart=/usr/bin/nvidia-persistenced --user nvidia-persistenced
ExecStopPost=/bin/rm -rf /var/run/nvidia-persistenced

[Install]
WantedBy=multi-user.target

Next, symlink the two service definition files into /etc/systemd/system
cd /etc/systemd/system
# ln -s /usr/local/lib/systemd/system/nvidia-uvm-init.service
# ln -s /usr/local/lib/systemd/system/nvidia-persistenced.service

and load the services
# systemctl daemon-reload
# systemctl start nvidia-uvm-init.service
# systemctl start nvidia-persistenced.service

Now you should see all the nvidia device nodes have been created
# ls -l /dev/nvidia*
crw-rw-rw- 1 root root 195, 0 Dec 6 18:07 /dev/nvidia0
crw-rw-rw- 1 root root 195, 1 Dec 6 18:10 /dev/nvidia1
crw-rw-rw- 1 root root 195, 255 Dec 6 18:07 /dev/nvidiactl
crw-rw-rw- 1 root root 195, 254 Dec 6 18:12 /dev/nvidia-modeset
crw-rw-rw- 1 root root 511, 0 Dec 6 19:00 /dev/nvidia-uvm
crw-rw-rw- 1 root root 511, 0 Dec 6 19:00 /dev/nvidia-uvm-tools


/dev/nvidia-caps:
total 0
cr-------- 1 root root 236, 1 Dec 6 18:07 nvidia-cap1
cr--r--r-- 1 root root 236, 2 Dec 6 18:07 nvidia-cap2

Check the dri devices as well
# ls -l /dev/dri*
total 0
drwxr-xr-x 2 root root 100 Dec 6 17:00 by-path
crw-rw---- 1 root video 226, 0 Dec 6 17:00 card0
crw-rw---- 1 root video 226, 1 Dec 6 17:00 card1
crw-rw---- 1 root render 226, 128 Dec 6 17:00 renderD128

Take note of the first number of each device after the group name. In the listings above I have 195, 511, 236 and 226.

Now we need to edit the lxc container configuration file to pass through the devices. Shut down your container, then edit the config file – example /etc/pve/lxc/117.conf. The relevant lines are below the swap: 8192 line

arch: amd64
cores: 12
features: mount=cifs
hostname: plex
memory: 8192
net0: name=eth0,bridge=vmbr0,firewall=1,gw=192.168.1.1,hwaddr=4A:50:52:00:00:00,ip=192.168.1.122/24,type=veth
onboot: 1
ostype: debian
rootfs: local-lvm:vm-117-disk-0,size=250G,acl=1
startup: order=99
swap: 8192

lxc.cgroup.devices.allow: c 195:* rwm
lxc.cgroup.devices.allow: c 226:* rwm
lxc.cgroup.devices.allow: c 236:* rwm
lxc.cgroup.devices.allow: c 511:* rwm
lxc.mount.entry: /dev/dri dev/dri none bind,optional,create=dir
lxc.mount.entry: /dev/nvidia-caps dev/nvidia-caps none bind,optional,create=dir
lxc.mount.entry: /dev/nvidia0 dev/nvidia0 none bind,optional,create=file
lxc.mount.entry: /dev/nvidiactl dev/nvidiactl none bind,optional,create=file
lxc.mount.entry: /dev/nvidia-uvm dev/nvidia-uvm none bind,optional,create=file
lxc.mount.entry: /dev/nvidia-modeset dev/nvidia-modeset none bind,optional,create=file
lxc.mount.entry: /dev/nvidia-uvm-tools dev/nvidia-uvm-tools none bind,optional,create=file

Now, start your container back up. You should be able to use NVENC features. You can test by using ffmpeg:
$ ffmpeg -i dQw4w9WgXcQ.mp4 -c:v h264_nvenc -c:a copy /tmp/rickroll.mp4

You should now have working GPU transcode in your lxc container!

If you get the following error, recheck and make sure you have set the correct numeric values for lxc.cgroup.devices.allow and restart your container.

[h264_nvenc @ 0x559f2a536b40] Cannot init CUDA
Error initializing output stream 0:0 -- Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width
or height
Conversion failed!

Another way to tell the values are incorrect is having blank (———) permission lines for the nvidia device nodes. You will get this inside any containers that are started before the nvidia devices are initialized by the nvidia-uvm-init script on the host.

$ ls -l /dev/nvidia*
---------- 1 root root        0 Dec  6 18:04 /dev/nvidia0
crw-rw-rw- 1 root root 195, 255 Dec  6 19:02 /dev/nvidiactl
---------- 1 root root        0 Dec  6 18:04 /dev/nvidia-modeset
crw-rw-rw- 1 root root 511,   0 Dec  6 19:02 /dev/nvidia-uvm
crw-rw-rw- 1 root root 511,   1 Dec  6 19:02 /dev/nvidia-uvm-tools

Sometimes, after the host has been up for a long time, the /dev/nvidia-uvm or other device nodes may disappear. In this case, simply run the nvidia-uvm-init script, perhaps schedule it to run as a cron job.

Install OpenSSH Server on Windows 10

By , 2020-07-14 23:52

In an Administrator PowerShell session:

# Install the OpenSSH Server
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
# Set service to Automatic startup
Set-Service -Name sshd -StartupType 'Automatic'
# Start service
Start-Service sshd
# Confirm the Firewall rule is configured. It should be created automatically by setup. 
Get-NetFirewallRule -Name *ssh*

Force amdgpu instead of radeon driver on Ubuntu 19.04 (Pop!_OS 19.04)

By , 2019-04-29 09:55

Update: Even after doing all this the system still locks up randomly when using the amdgpu driver.

I’m running dual AMD FirePro W2100 driving 3 monitors in my workstation. Since installing the cards I’ve been suffering random freezes/graphical lockups that seemed to be related to 3D. They occurred typically during an animation in gnome-shell, or when using Firefox or Chrome with hardware acceleration. Most times, I was able to recover by logging in to the machine via ssh and sending killall -HUP to the appropriate process (usually gnome-shell). Every time this happened, syslog would be full of GPU faults:

[ 2482.763707] radeon 0000:02:00.0: GPU fault detected: 146 0x0468100c
[ 2482.763708] radeon 0000:02:00.0:   VM_CONTEXT1_PROTECTION_FAULT_ADDR   0x0011173E
[ 2482.763709] radeon 0000:02:00.0:   VM_CONTEXT1_PROTECTION_FAULT_STATUS 0x0805000C
[ 2482.763710] VM fault (0x0c, vmid 4) at page 1120062, read from CB (80)
[ 2482.763713] radeon 0000:02:00.0: GPU fault detected: 146 0x0408500c
[ 2482.763714] radeon 0000:02:00.0:   VM_CONTEXT1_PROTECTION_FAULT_ADDR   0x00111744
[ 2482.763715] radeon 0000:02:00.0:   VM_CONTEXT1_PROTECTION_FAULT_STATUS 0x0805000C
[ 2482.763717] VM fault (0x0c, vmid 4) at page 1120068, read from CB (80)

I tried updating my kernel (going from Ubuntu 18.04 to 18.10 and even reinstalling with Pop!_OS 18.10 than 19.04) and updating graphics drivers using the oibaf ppa, to no avail. Finally found what seems to be the solution on HackerNews (thanks danieldk) – force the use of the newer amdgpu driver rather than the older radeon driver. The W2100 is a first-generation GCN chip and so is supported by both drivers, and radeon is chosen as the default. To force amdgpu, you need to pass the kernel flags

amdgpu.si_support=1 radeon.si_support=0 amdgpu.cik_support=1 radeon.ciksupport=0

In Ubuntu, add these to GRUB_CMDLINE_LINUX_DEFAULT in /etc/default/grub, then run update_grub. Pop!_OS doesn’t use grub, so you need to add each flag using kernelstub -a amdgpu.si_support=1 and repeating for each of the 4.

So far, my system seems stable since this change. I will update this post if anything changes.

Custom theme by me. Based on Panorama by Themocracy