how-to Archives - David Yin's Blog https://www.yinfor.com/tag/how-to Tech geek. Life geek. Mon, 24 Jun 2024 18:41:26 +0000 en-US hourly 1 https://wordpress.org/?v=6.7 https://www.yinfor.com/wp-content/uploads/2016/09/cropped-icon-120x120.png how-to Archives - David Yin's Blog https://www.yinfor.com/tag/how-to 32 32 Upgrade the TP-Link Deco X90 Firmware https://www.yinfor.com/2024/06/upgrade-the-tp-link-deco-x90-firmware.html https://www.yinfor.com/2024/06/upgrade-the-tp-link-deco-x90-firmware.html#comments Mon, 24 Jun 2024 18:41:25 +0000 https://www.yinfor.com/?p=9772 I have a pair of TP-Link Deco X90 devices. They are routers, but I am using them as Access Points. I upgrade their firmware yesterday. Here are my procedures. First, double-check the hardware version of them and the country. Mine...

The post Upgrade the TP-Link Deco X90 Firmware appeared first on David Yin's Blog.

]]>
I have a pair of TP-Link Deco X90 devices. They are routers, but I am using them as Access Points. I upgrade their firmware yesterday. Here are my procedures.

First, double-check the hardware version of them and the country.

Mine is the US edition, the hardware version is 1.0

Then, go to the TP-Link US website, support page, and find the Deco X90 V1 firmware. Link

The latest firmware is 1.2.6. Download it and unzip the file. The firmware file is .bin.

Now, go to the Deco X90 web portal. My main X90’s IP address is 192.168.100.201

Sign in and go to the Advanced page, System, Firmware Upgrade.

Choose Device Model X90, Browse the bin firmware file, and click UPGRADE.

It will upload the bin file and upgrade the devices.

It took about a few minutes to complete the upgrade.

The last step is reboot.

Go to the web panel and look at the firmware version.

See, both my X90 are 1.2.6 now.

The new 1.26. firmware has some improvements and bug fixes:

1. Enhanced the security of the device.
2. Optimized the time limit settings of parental control.

The post Upgrade the TP-Link Deco X90 Firmware appeared first on David Yin's Blog.

]]>
https://www.yinfor.com/2024/06/upgrade-the-tp-link-deco-x90-firmware.html/feed/ 1
How to upgrade Minecraft Java server to 1.20.5 or 1.20.6 from 1.20.4 https://www.yinfor.com/2024/05/how-to-upgrade-minecraft-java-server-to-1-20-5-or-1-20-6-from-1-20-4.html https://www.yinfor.com/2024/05/how-to-upgrade-minecraft-java-server-to-1-20-5-or-1-20-6-from-1-20-4.html#respond Fri, 03 May 2024 17:43:17 +0000 https://www.yinfor.com/?p=9723 Hay, if it is a regular upgrade of the Minecraft Java server edition, I won’t write a post here. Because it is quite straightforward. Say a normal upgrade. ssh to the server with Putty. sudo /opt/minecraft/tools/backup.sh sudo service minecraft stop...

The post How to upgrade Minecraft Java server to 1.20.5 or 1.20.6 from 1.20.4 appeared first on David Yin's Blog.

]]>
Hay, if it is a regular upgrade of the Minecraft Java server edition, I won’t write a post here. Because it is quite straightforward.

Say a normal upgrade.

ssh to the server with Putty.

sudo /opt/minecraft/tools/backup.sh

sudo service minecraft stop

wget the latest java Minecraft server file, at Minecraft’s official website, save it as /opt/minecraft/server/server.jar (Rename the old server.jar to server.jar.old)

sudo service minecraft start

Then I can use my TLauncher to access the server from my desktop without problems.

Today, when I finished the procedures above(My current version is 1.20.4 on server.), I could not connect to Minecraft from my desktop. I checked the release notes of 1.20.6, it is a small bug fix upgrade. Then, I checked the 1.20.5 release notes, Wow, it is a big upgrade.  It said 1.20.5 is the first version of Java Edition to require a 64-bit operation and Java 21.

I believe my server is 64-bit. The leftover is Java 21.

I checked the Minecraft service status and the Java version.

davidyin@minecraft:/opt/minecraft/server$ sudo service minecraft status
● minecraft.service - Minecraft Server
     Loaded: loaded (/etc/systemd/system/minecraft.service; enabled; vendor preset: enabled)
     Active: inactive (dead) since Fri 2024-05-03 05:08:58 UTC; 4min 52s ago
    Process: 1121 ExecStart=/usr/bin/java -Xmx5102M -Xms1024M -jar server.jar nogui (code=exited, status=1/FAILURE)
    Process: 1150 ExecStop=/opt/minecraft/tools/mcrcon/mcrcon -H 127.0.0.1 -P 25575 -p izpait stop (code=exited, status=1/FAI>
   Main PID: 1121 (code=exited, status=1/FAILURE)

May 03 05:08:58 minecraft systemd[1]: Started Minecraft Server.
May 03 05:08:58 minecraft java[1121]: Error: LinkageError occurred while loading main class net.minecraft.bundler.Main
May 03 05:08:58 minecraft java[1121]:         java.lang.UnsupportedClassVersionError: net/minecraft/bundler/Main has been com>
May 03 05:08:58 minecraft mcrcon[1150]: Connection failed.
May 03 05:08:58 minecraft mcrcon[1150]: Error 111: Connection refused
May 03 05:08:58 minecraft systemd[1]: minecraft.service: Succeeded.

Look, Active: inactive (dead)

davidyin@minecraft:/opt/minecraft/server$ java -version
openjdk version "17.0.10" 2024-01-16
OpenJDK Runtime Environment (build 17.0.10+7-Ubuntu-120.04.1)
OpenJDK 64-Bit Server VM (build 17.0.10+7-Ubuntu-120.04.1, mixed mode, sharing)

The Java is version 17.0.10. So, the problem is the Java version requirement.

Go to Oracle page
https://www.oracle.com/java/technologies/downloads/#java21

At my home folder of the server, I run the following command.

wget https://download.oracle.com/java/21/latest/jdk-21_linux-x64_bin.deb

sudo apt install ./jdk-21_linux-x64_bin.deb


davidyin@minecraft:~$ java -version
java version "21.0.3" 2024-04-16 LTS
Java(TM) SE Runtime Environment (build 21.0.3+7-LTS-152)
Java HotSpot(TM) 64-Bit Server VM (build 21.0.3+7-LTS-152, mixed mode, sharing)

Now, it is the Java 21.0.3.
All I have to do is to restart the Minecraft server service.

davidyin@minecraft:~$ sudo service minecraft restart
davidyin@minecraft:~$ sudo service minecraft status
● minecraft.service - Minecraft Server
     Loaded: loaded (/etc/systemd/system/minecraft.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2024-05-03 05:19:40 UTC; 6s ago
   Main PID: 1521 (java)
      Tasks: 25 (limit: 7006)
     Memory: 417.0M
     CGroup: /system.slice/minecraft.service
             └─1521 /usr/bin/java -Xmx5102M -Xms1024M -jar server.jar nogui

May 03 05:19:40 minecraft java[1521]: Unpacking commons-io/commons-io/2.15.1/commons-io-2.15.1.jar (libraries:commons-io:comm>
May 03 05:19:40 minecraft java[1521]: Unpacking net/java/dev/jna/jna/5.14.0/jna-5.14.0.jar (libraries:net.java.dev.jna:jna:5.>
May 03 05:19:40 minecraft java[1521]: Unpacking net/java/dev/jna/jna-platform/5.14.0/jna-platform-5.14.0.jar (libraries:net.j>
May 03 05:19:40 minecraft java[1521]: Unpacking org/apache/commons/commons-lang3/3.14.0/commons-lang3-3.14.0.jar (libraries:o>
May 03 05:19:40 minecraft java[1521]: Unpacking org/apache/logging/log4j/log4j-api/2.22.1/log4j-api-2.22.1.jar (libraries:org>
May 03 05:19:40 minecraft java[1521]: Unpacking org/apache/logging/log4j/log4j-core/2.22.1/log4j-core-2.22.1.jar (libraries:o>
May 03 05:19:40 minecraft java[1521]: Unpacking org/apache/logging/log4j/log4j-slf4j2-impl/2.22.1/log4j-slf4j2-impl-2.22.1.ja>
May 03 05:19:40 minecraft java[1521]: Unpacking org/lz4/lz4-java/1.8.0/lz4-java-1.8.0.jar (libraries:org.lz4:lz4-java:1.8.0) >
May 03 05:19:40 minecraft java[1521]: Unpacking org/slf4j/slf4j-api/2.0.9/slf4j-api-2.0.9.jar (libraries:org.slf4j:slf4j-api:>
May 03 05:19:40 minecraft java[1521]: Starting net.minecraft.server.Main
lines 1-19/19 (END)

See the screenshot.


 

 

 

 

The post How to upgrade Minecraft Java server to 1.20.5 or 1.20.6 from 1.20.4 appeared first on David Yin's Blog.

]]>
https://www.yinfor.com/2024/05/how-to-upgrade-minecraft-java-server-to-1-20-5-or-1-20-6-from-1-20-4.html/feed/ 0
Fix some APT problems and upgrade the Gitlab CE on the VM https://www.yinfor.com/2024/04/fix-some-apt-problems-and-upgrade-the-gitlab-ce-on-the-vm.html https://www.yinfor.com/2024/04/fix-some-apt-problems-and-upgrade-the-gitlab-ce-on-the-vm.html#respond Mon, 22 Apr 2024 01:07:36 +0000 https://www.yinfor.com/?p=9626 I have an installation of the Gitlab CE version on the virtual machine. It is running on the Host Proxmox VE.  Normally I do the update/upgrade through the Webmin interface. I knew that Gitlab has very active development. They may...

The post Fix some APT problems and upgrade the Gitlab CE on the VM appeared first on David Yin's Blog.

]]>
I have an installation of the Gitlab CE version on the virtual machine. It is running on the Host Proxmox VE.  Normally I do the update/upgrade through the Webmin interface. I knew that Gitlab has very active development. They may publish a new release every week. But, recently, I did not see the Gitlab CE updates when I upgraded the packages of my VM, which is Ubuntu 22.04.

So I SSH to the VM. Run the command sudo apt update

I got the following error message

An error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: https://packages.gitlab.com/gitlab/gitlab-ce/ubuntu focal InRelease: The following signatures were invalid: EXPKEYSIG 3F01618A51312F3F GitLab B.V. (package repository signing key) <packages@gitlab.com>

The error is invalid signatures: EXPKEYSIG 3F01618A51312F3F

My first idea is to delete this invalid signature.

sudo apt-key del 3F01618A51312F3F

Then I run the update again. Of course, another problem came.

davidyin@gitlab:/etc/apt/sources.list.d$ sudo apt update
Ign:1 https://download.webmin.com/download/newkey/repository stable InRelease
Hit:3 https://download.webmin.com/download/newkey/repository stable Release
Hit:4 http://archive.ubuntu.com/ubuntu jammy InRelease
Hit:6 http://archive.ubuntu.com/ubuntu jammy-updates InRelease
Hit:7 http://security.ubuntu.com/ubuntu jammy-security InRelease
Hit:9 http://archive.ubuntu.com/ubuntu jammy-backports InRelease
Hit:8 https://packages.gitlab.com/gitlab/gitlab-ce/ubuntu jammy InRelease
Get:2 https://packages.gitlab.com/gitlab/gitlab-ce/ubuntu focal InRelease [23.3 kB]
Err:2 https://packages.gitlab.com/gitlab/gitlab-ce/ubuntu focal InRelease
  The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 3F01618A51312F3F
Fetched 23.3 kB in 2s (13.8 kB/s)
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
All packages are up to date.
W: An error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: https://packages.gitlab.com/gitlab/gitlab-ce/ubuntu focal InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 3F01618A51312F3F
W: Failed to fetch https://packages.gitlab.com/gitlab/gitlab-ce/ubuntu/dists/focal/InRelease  The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 3F01618A51312F3F
W: Some index files failed to download. They have been ignored, or old ones used instead.

This time the error is public key is not available: NO_PUBKEY 3F01618A51312F3F

What is my next move? Add the public key for it.

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3F01618A51312F3F
Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)).
Executing: /tmp/apt-key-gpghome.StjvcTDgCs/gpg.1.sh --keyserver keyserver.ubuntu.com --recv-keys 3F01618A51312F3F
gpg: key 3F01618A51312F3F: public key "GitLab B.V. (package repository signing key) <packages@gitlab.com>" imported
gpg: Total number processed: 1
gpg:               imported: 1

Run the update, another problem is shown.

davidyin@gitlab:/etc/apt/sources.list.d$ sudo apt update
Ign:1 https://download.webmin.com/download/newkey/repository stable InRelease
Hit:2 https://download.webmin.com/download/newkey/repository stable Release
Hit:5 http://archive.ubuntu.com/ubuntu jammy InRelease
Hit:6 http://security.ubuntu.com/ubuntu jammy-security InRelease
Hit:8 http://archive.ubuntu.com/ubuntu jammy-updates InRelease
Hit:9 http://archive.ubuntu.com/ubuntu jammy-backports InRelease
Hit:4 https://packages.gitlab.com/gitlab/gitlab-ce/ubuntu focal InRelease
Hit:7 https://packages.gitlab.com/gitlab/gitlab-ce/ubuntu jammy InRelease
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
All packages are up to date.
W: https://packages.gitlab.com/gitlab/gitlab-ce/ubuntu/dists/focal/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.

Oh, it is not an error, it is a warning. I can ignore it. But I don’t like it. I have to clean these.

So I save this key into a file located in /etc/apt/tursted.gpg.d/ folder. Then run the update again.

davidyin@gitlab:/etc/apt/sources.list.d$ sudo apt-key export  51312F3F | sudo gpg --dearmour -o /etc/apt/trusted.gpg.d/gitlab-david.gpg
Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)).
davidyin@gitlab:/etc/apt/sources.list.d$ sudo apt update
Ign:2 https://download.webmin.com/download/newkey/repository stable InRelease
Hit:3 http://archive.ubuntu.com/ubuntu jammy InRelease
Hit:4 https://download.webmin.com/download/newkey/repository stable Release
Hit:5 http://archive.ubuntu.com/ubuntu jammy-updates InRelease
Hit:7 http://archive.ubuntu.com/ubuntu jammy-backports InRelease
Hit:8 http://security.ubuntu.com/ubuntu jammy-security InRelease
Hit:1 https://packages.gitlab.com/gitlab/gitlab-ce/ubuntu focal InRelease
Hit:6 https://packages.gitlab.com/gitlab/gitlab-ce/ubuntu jammy InRelease
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
All packages are up to date.

It looks OK. But I found one line, Hit:1 https://packages.gitlab.com/gitlab/gitlab-ce/ubuntu focal InRelease

Ubuntu Facal is Ubuntu 20.04. It is the old one. I don’t need it. So I go to /etc/apt/sources.list.d/, edit gitlab.list file. Commented the line with Facal.

Now I am satisfied.

OK. One another thing about the updated Gitlab. At the beginning, the Gitlab CE is version 16.91

I run the following to add/update the sources.

curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash

Then, I run the sudo apt update and sudo apt upgrade to upgrade the Gitlab CE to the latest version 16.11.0.

PS.

Gitlab Ce Installation Instructions: https://packages.gitlab.com/gitlab/gitlab-ce/install

Gitlab Release lists: https://about.gitlab.com/releases/categories/releases/

Apt-key command manual: https://manpages.ubuntu.com/manpages/noble/en/man8/apt-key.8.html

 

The post Fix some APT problems and upgrade the Gitlab CE on the VM appeared first on David Yin's Blog.

]]>
https://www.yinfor.com/2024/04/fix-some-apt-problems-and-upgrade-the-gitlab-ce-on-the-vm.html/feed/ 0
Why I chose SPC flooring? https://www.yinfor.com/2024/02/why-i-chose-spc-flooring.html https://www.yinfor.com/2024/02/why-i-chose-spc-flooring.html#respond Thu, 08 Feb 2024 20:07:26 +0000 https://www.yinfor.com/?p=9515 Here I like to share my thoughts on SPC Flooring. And Why I chose it. SPC: High durability, water-proof, excellent for high-traffic areas, dent-resistant Laminate: Versatile designs, reacts to heat and cold, requires waterproofing for high-moisture areas The SPC plant...

The post Why I chose SPC flooring? appeared first on David Yin's Blog.

]]>
Here I like to share my thoughts on SPC Flooring. And Why I chose it.

  • SPC: High durability, water-proof, excellent for high-traffic areas, dent-resistant
  • Laminate: Versatile designs, reacts to heat and cold, requires waterproofing for high-moisture areas

The SPC plant looks similar to the Laminate plank. SPC is also called Regid Vinyl plank.

Comparison of Durability and Resistance

SPC flooring is highly durable and resistant thanks to its multiple layers, including an ultraviolet coating, a wear layer, an SPC print layer, a core, and a balanced layer. This construction makes it resistant to dents and UV, ensuring it won’t fade easily. It’s also water-resistant, making it a solid choice for high-traffic areas and rooms with high moisture levels.

On the other hand, laminate flooring, typically made from wood composite, pulp, and paper layers, is sensitive to heat and cold, which can cause changes. However, it’s possible to get waterproof laminate to withstand high-moisture areas.

 

Comparison of Installation and Maintenance

All three types of flooring are relatively easy to install and maintain. SPC and LVT flooring, for instance, use a floating click lock, tongue, and groove system that is DIY-friendly. On the other hand, laminate flooring can be installed professionally for the best results.

In terms of maintenance, all three types of floors are easy to clean and do not require professional cleaning treatments. However, it’s crucial to check your warranty to ensure you use the right materials and methods.

Maybe, for myself, SPC is more easy to cut and install.

Comparison of Cost and Value for Money

Laminate Flooring

The price of cheap and low-quality laminate flooring can be as low as $1 per square foot. However high-end laminate flooring can be up to $5 per square foot or more. Medium-range laminate flooring will normally cost around $3 per square foot.
Even though laminate flooring is cheaper per square foot, here’s the kicker… Laminate flooring is actually more difficult to maintain compared to SPC flooring.

SPC Flooring

Again, depending on the type of SPC flooring you desire, traditional SPC flooring like sheet SPC can cost as low as $0.50 per foot square. On average, medium-ranged SPC flooring is about $2.50 per square foot.
When it comes to top-end SPC floorings like luxury SPC plank (LVP) or luxury SPC tile (LVT), prices can be a lot higher ranging from $5 to $8 per square foot.

The one I bought for my basement is $2.7/sqft (regular price) at Costco.  I got $2.11/sqft with a discount.

Core Material

Both SPC and Laminate flooring consist of 4 layers which are the backing layer, core, printed design layer, and the top with wear layer. The differences are the material used for each layer, especially the core material.

The core material of the SPC plank is the SPC Composite Core.

The core material of Laminate plank is fiberboard, it can be MDF or HDF.

Thickness

The main difference is the thickness of them. SPC is 6mm or 7mm normally. The laminate can be 15mm. Both include a 1.5mm to 2mm foam backer.

Environment

When choosing laminate flooring, you need to think about the harmful odors (formaldehyde) emitted from the core, or MDF, HDF. The standard is CARB2, TSCA, E1 etc.

USA, Canada Standard: CARB Phase 2 Compliant, TSCA Compliant, EPA.org.

Europe Standard: E1 Certificate, Mandatory E1 Standard.

No matter how good the laminate products are, there is still some formaldehyde inside of the cord material.

Laminate floor

 

SPC plank has no this kind of worry.

My Consideration.

It is installed in the basement. I don’t need to worry about the noise.

I have to install it by myself. It should be good for DIY.

It should be waterproof. It can be installed directly over concrete,

There is a bedroom. So it is best formaldehyde-free.

So I decided to buy SPC flooring.

I checked Home Depot, Rona, Costco, etc. Costco has very limited options but has the best price. Especially when it is at a discount.

 

 

The post Why I chose SPC flooring? appeared first on David Yin's Blog.

]]>
https://www.yinfor.com/2024/02/why-i-chose-spc-flooring.html/feed/ 0
Upgrade Mastodon v4.2.3 to v4.2.4 https://www.yinfor.com/2024/01/upgrade-mastodon-v4-2-3-to-v4-2-4.html https://www.yinfor.com/2024/01/upgrade-mastodon-v4-2-3-to-v4-2-4.html#respond Sat, 27 Jan 2024 22:45:23 +0000 https://www.yinfor.com/?p=9449 Today I upgraded my Mastodon server from v4.2.3 to v4.2.4. When I signed in to my account, and went to the Administration, Dashboard, I saw the update notification. So I know I need to update my Mastodon Instance for safe....

The post Upgrade Mastodon v4.2.3 to v4.2.4 appeared first on David Yin's Blog.

]]>
Today I upgraded my Mastodon server from v4.2.3 to v4.2.4.

When I signed in to my account, and went to the Administration, Dashboard, I saw the update notification.

So I know I need to update my Mastodon Instance for safe.
I installed it on my VPS from source, not docker.

So here it is the Release notes. It is not just updating the source code of Mastodon itself, the dependencies also need to be updated. The release note is general. I have to do the following to update it.

mastodon@instance-20230911-1538:~/live$ git fetch --tags
remote: Enumerating objects: 3956, done.
remote: Counting objects: 100% (2647/2647), done.
remote: Compressing objects: 100% (112/112), done.
remote: Total 3956 (delta 2538), reused 2628 (delta 2535), pack-reused 1309
Receiving objects: 100% (3956/3956), 5.34 MiB | 10.70 MiB/s, done.
Resolving deltas: 100% (2908/2908), completed with 848 local objects.
From https://github.com/mastodon/mastodon
* [new branch] feature-color-scheme -&gt; origin/feature-color-scheme
* [new branch] feature-follow-suggestions-carousel -&gt; origin/feature-follow-suggestions-carousel
+ 9227a4eba...cfb90dc73 feature-redirect -&gt; origin/feature-redirect (forced update)
+ 44067ac31...73be7e19e features/severed-relationships -&gt; origin/features/severed-relationships (forced update)
* [new branch] gh-readonly-queue/main/pr-28322-881e8c113c4da503e73a953c8430f71f380cff63 -&gt; origin/gh-readonly-queue/main/pr-28322-881e8c113c4da503e73a953c8430f71f380cff63
* [new branch] gh-readonly-queue/main/pr-28626-1ad908e0c08c236389967d86b4f238f428de9fef -&gt; origin/gh-readonly-queue/main/pr-28626-1ad908e0c08c236389967d86b4f238f428de9fef
+ d7754f710...497399485 i18n/crowdin/translations -&gt; origin/i18n/crowdin/translations (forced update)
a2624ff73..881e8c113 main -&gt; origin/main
* [new branch] renovate/axios-1.x-lockfile -&gt; origin/renovate/axios-1.x-lockfile
+ 6f82ed0f2...71e41e3c8 renovate/babel-monorepo -&gt; origin/renovate/babel-monorepo (forced update)
* [new branch] renovate/formatjs-monorepo -&gt; origin/renovate/formatjs-monorepo
* [new branch] renovate/husky-9.x -&gt; origin/renovate/husky-9.x
* [new branch] renovate/reduxjs-toolkit-2.x-lockfile -&gt; origin/renovate/reduxjs-toolkit-2.x-lockfile
* [new branch] renovate/ruby-3.x -&gt; origin/renovate/ruby-3.x
+ 9ade00bd6...5e62aa802 renovate/stoplight-4.x -&gt; origin/renovate/stoplight-4.x (forced update)
* [new branch] revert/follow-back-mutual -&gt; origin/revert/follow-back-mutual
2e4d43933..fc4e2eca9 stable-4.1 -&gt; origin/stable-4.1
d7875adad..4633bb8ce stable-4.2 -&gt; origin/stable-4.2
* [new tag] v4.1.12 -&gt; v4.1.12
* [new tag] v4.2.4 -&gt; v4.2.4
mastodon@instance-20230911-1538:~/live$ git checkout v4.2.4
Previous HEAD position was 90371a4fc Bump version to v4.2.3
HEAD is now at 4633bb8ce Bump version to v4.2.4
mastodon@instance-20230911-1538:~/live$ cd ..

&nbsp;

&nbsp;

mastodon@instance-20230911-1538:~$ git -C "$(rbenv root)"/plugins/ruby-build pull
remote: Enumerating objects: 153, done.
remote: Counting objects: 100% (153/153), done.
remote: Compressing objects: 100% (72/72), done.
remote: Total 153 (delta 78), reused 148 (delta 77), pack-reused 0
Receiving objects: 100% (153/153), 78.95 KiB | 908.00 KiB/s, done.
Resolving deltas: 100% (78/78), completed with 4 local objects.
From https://github.com/rbenv/ruby-build
d312f5a..e1b36a3 master -&gt; origin/master
* [new tag] v20240119 -&gt; v20240119
* [new tag] v20231211 -&gt; v20231211
* [new tag] v20231225 -&gt; v20231225
* [new tag] v20240116 -&gt; v20240116
Updating d312f5a..e1b36a3
Fast-forward
.github/workflows/ci.yml | 2 +-
README.md | 2 +-
bin/ruby-build | 108 +++++++-------
script/update-cruby | 2 +-
share/man/man1/ruby-build.1 | 4 +-
share/ruby-build/2.0.0-dev | 2 +-
share/ruby-build/2.0.0-p0 | 2 +-
share/ruby-build/2.0.0-p195 | 2 +-
share/ruby-build/2.0.0-p247 | 2 +-
share/ruby-build/2.0.0-p353 | 2 +-
share/ruby-build/2.0.0-p451 | 2 +-
share/ruby-build/2.0.0-p481 | 2 +-
share/ruby-build/2.0.0-p576 | 2 +-
share/ruby-build/2.0.0-p594 | 2 +-
share/ruby-build/2.0.0-p598 | 2 +-
share/ruby-build/2.0.0-p643 | 2 +-
share/ruby-build/2.0.0-p645 | 2 +-
share/ruby-build/2.0.0-p647 | 2 +-
share/ruby-build/2.0.0-p648 | 2 +-
share/ruby-build/2.0.0-preview1 | 2 +-
share/ruby-build/2.0.0-preview2 | 2 +-
share/ruby-build/2.0.0-rc1 | 2 +-
share/ruby-build/2.0.0-rc2 | 2 +-
share/ruby-build/2.1.0 | 2 +-
share/ruby-build/2.1.0-dev | 2 +-
share/ruby-build/2.1.0-preview1 | 2 +-
share/ruby-build/2.1.0-preview2 | 2 +-
share/ruby-build/2.1.0-rc1 | 2 +-
share/ruby-build/2.1.1 | 2 +-
share/ruby-build/2.1.10 | 2 +-
share/ruby-build/2.1.2 | 2 +-
share/ruby-build/2.1.3 | 2 +-
share/ruby-build/2.1.4 | 2 +-
share/ruby-build/2.1.5 | 2 +-
share/ruby-build/2.1.6 | 2 +-
share/ruby-build/2.1.7 | 2 +-
share/ruby-build/2.1.8 | 2 +-
share/ruby-build/2.1.9 | 2 +-
share/ruby-build/2.2.0 | 2 +-
share/ruby-build/2.2.0-dev | 2 +-
share/ruby-build/2.2.0-preview1 | 2 +-
share/ruby-build/2.2.0-preview2 | 2 +-
share/ruby-build/2.2.0-rc1 | 2 +-
share/ruby-build/2.2.1 | 2 +-
share/ruby-build/2.2.10 | 2 +-
share/ruby-build/2.2.2 | 2 +-
share/ruby-build/2.2.3 | 2 +-
share/ruby-build/2.2.4 | 2 +-
share/ruby-build/2.2.5 | 2 +-
share/ruby-build/2.2.6 | 2 +-
share/ruby-build/2.2.7 | 2 +-
share/ruby-build/2.2.8 | 2 +-
share/ruby-build/2.2.9 | 2 +-
share/ruby-build/2.3.0 | 2 +-
share/ruby-build/2.3.0-dev | 2 +-
share/ruby-build/2.3.0-preview1 | 2 +-
share/ruby-build/2.3.0-preview2 | 2 +-
share/ruby-build/2.3.1 | 2 +-
share/ruby-build/2.3.2 | 2 +-
share/ruby-build/2.3.3 | 2 +-
share/ruby-build/2.3.4 | 2 +-
share/ruby-build/2.3.5 | 2 +-
share/ruby-build/2.3.6 | 2 +-
share/ruby-build/2.3.7 | 2 +-
share/ruby-build/2.3.8 | 2 +-
share/ruby-build/2.4.0 | 2 +-
share/ruby-build/2.4.0-dev | 2 +-
share/ruby-build/2.4.0-preview1 | 2 +-
share/ruby-build/2.4.0-preview2 | 2 +-
share/ruby-build/2.4.0-preview3 | 2 +-
share/ruby-build/2.4.0-rc1 | 2 +-
share/ruby-build/2.4.1 | 2 +-
share/ruby-build/2.4.10 | 2 +-
share/ruby-build/2.4.2 | 2 +-
share/ruby-build/2.4.3 | 2 +-
share/ruby-build/2.4.4 | 2 +-
share/ruby-build/2.4.5 | 2 +-
share/ruby-build/2.4.6 | 2 +-
share/ruby-build/2.4.7 | 2 +-
share/ruby-build/2.4.8 | 2 +-
share/ruby-build/2.4.9 | 2 +-
share/ruby-build/2.5.0 | 2 +-
share/ruby-build/2.5.0-dev | 2 +-
share/ruby-build/2.5.0-preview1 | 2 +-
share/ruby-build/2.5.0-rc1 | 2 +-
share/ruby-build/2.5.1 | 2 +-
share/ruby-build/2.5.2 | 2 +-
share/ruby-build/2.5.3 | 2 +-
share/ruby-build/2.5.4 | 2 +-
share/ruby-build/2.5.5 | 2 +-
share/ruby-build/2.5.6 | 2 +-
share/ruby-build/2.5.7 | 2 +-
share/ruby-build/2.5.8 | 2 +-
share/ruby-build/2.5.9 | 2 +-
share/ruby-build/2.6.0 | 2 +-
share/ruby-build/2.6.0-dev | 2 +-
share/ruby-build/2.6.0-preview1 | 2 +-
share/ruby-build/2.6.0-preview2 | 2 +-
share/ruby-build/2.6.0-preview3 | 2 +-
share/ruby-build/2.6.0-rc1 | 2 +-
share/ruby-build/2.6.0-rc2 | 2 +-
share/ruby-build/2.6.1 | 2 +-
share/ruby-build/2.6.10 | 2 +-
share/ruby-build/2.6.2 | 2 +-
share/ruby-build/2.6.3 | 2 +-
share/ruby-build/2.6.4 | 2 +-
share/ruby-build/2.6.5 | 2 +-
share/ruby-build/2.6.6 | 2 +-
share/ruby-build/2.6.7 | 2 +-
share/ruby-build/2.6.8 | 2 +-
share/ruby-build/2.6.9 | 2 +-
share/ruby-build/2.7.0 | 2 +-
share/ruby-build/2.7.0-dev | 2 +-
share/ruby-build/2.7.0-preview1 | 2 +-
share/ruby-build/2.7.0-preview2 | 2 +-
share/ruby-build/2.7.0-preview3 | 2 +-
share/ruby-build/2.7.0-rc1 | 2 +-
share/ruby-build/2.7.0-rc2 | 2 +-
share/ruby-build/2.7.1 | 2 +-
share/ruby-build/2.7.2 | 2 +-
share/ruby-build/2.7.3 | 2 +-
share/ruby-build/2.7.4 | 2 +-
share/ruby-build/2.7.5 | 2 +-
share/ruby-build/2.7.6 | 2 +-
share/ruby-build/2.7.7 | 2 +-
share/ruby-build/2.7.8 | 2 +-
share/ruby-build/3.0.0 | 2 +-
share/ruby-build/3.0.0-dev | 2 +-
share/ruby-build/3.0.0-preview1 | 2 +-
share/ruby-build/3.0.0-preview2 | 2 +-
share/ruby-build/3.0.0-rc1 | 2 +-
share/ruby-build/3.0.1 | 2 +-
share/ruby-build/3.0.2 | 2 +-
share/ruby-build/3.0.3 | 2 +-
share/ruby-build/3.0.4 | 2 +-
share/ruby-build/3.0.5 | 2 +-
share/ruby-build/3.0.6 | 2 +-
share/ruby-build/3.1.0 | 2 +-
share/ruby-build/3.1.0-dev | 2 +-
share/ruby-build/3.1.0-preview1 | 2 +-
share/ruby-build/3.1.1 | 2 +-
share/ruby-build/3.1.2 | 2 +-
share/ruby-build/3.1.3 | 2 +-
share/ruby-build/3.1.4 | 2 +-
share/ruby-build/3.2.0 | 2 +-
share/ruby-build/3.2.0-dev | 2 +-
share/ruby-build/3.2.0-preview1 | 2 +-
share/ruby-build/3.2.0-preview2 | 2 +-
share/ruby-build/3.2.0-preview3 | 2 +-
share/ruby-build/3.2.0-rc1 | 2 +-
share/ruby-build/3.2.1 | 2 +-
share/ruby-build/3.2.2 | 2 +-
share/ruby-build/3.2.3 | 2 +
share/ruby-build/3.3.0 | 2 +
share/ruby-build/3.3.0-dev | 2 +-
share/ruby-build/3.3.0-preview1 | 2 +-
share/ruby-build/3.3.0-preview2 | 2 +-
share/ruby-build/3.3.0-preview3 | 2 +-
share/ruby-build/3.3.0-rc1 | 2 +
share/ruby-build/3.4-dev | 2 +
share/ruby-build/ruby-dev | 2 +
share/ruby-build/truffleruby+graalvm-23.1.2 | 19 +++
share/ruby-build/truffleruby-23.1.2 | 19 +++
test/build.bats | 223 ++++++++++++++++++++--------
test/compiler.bats | 4 +-
test/fixtures/definitions/needs-yaml | 2 +-
test/fixtures/definitions/vanilla-ruby | 1 -
test/fixtures/ruby-2.0.0.tar.gz | Bin 222 -&gt; 0 bytes
test/fixtures/ruby-3.2.0.tar.gz | Bin 0 -&gt; 246 bytes
169 files changed, 417 insertions(+), 281 deletions(-)
create mode 100644 share/ruby-build/3.2.3
create mode 100644 share/ruby-build/3.3.0
create mode 100644 share/ruby-build/3.3.0-rc1
create mode 100644 share/ruby-build/3.4-dev
create mode 100644 share/ruby-build/ruby-dev
create mode 100644 share/ruby-build/truffleruby+graalvm-23.1.2
create mode 100644 share/ruby-build/truffleruby-23.1.2
delete mode 100644 test/fixtures/definitions/vanilla-ruby
delete mode 100644 test/fixtures/ruby-2.0.0.tar.gz
create mode 100644 test/fixtures/ruby-3.2.0.tar.gz
mastodon@instance-20230911-1538:~$ cd live
mastodon@instance-20230911-1538:~/live$ RUBY_CONFIGURE_OPTS=--with-jemalloc rbenv install
==&gt; Downloading ruby-3.2.3.tar.gz...
-&gt; curl -q -fL -o ruby-3.2.3.tar.gz https://cache.ruby-lang.org/pub/ruby/3.2/ruby-3.2.3.tar.gz
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 19.6M 100 19.6M 0 0 12.8M 0 0:00:01 0:00:01 --:--:-- 12.8M
==&gt; Installing ruby-3.2.3...
-&gt; ./configure "--prefix=$HOME/.rbenv/versions/3.2.3" --enable-shared --with-ext=openssl,psych,+ --with-jemalloc
-&gt; make -j 4
-&gt; make install
==&gt; Installed ruby-3.2.3 to /home/mastodon/.rbenv/versions/3.2.3
mastodon@instance-20230911-1538:~/live$ bundle install
Fetching gem metadata from https://rubygems.org/.........
Using rake 13.0.6
Using erubi 1.12.0
Using concurrent-ruby 1.2.2
Using minitest 5.19.0
Using builder 3.2.4
Using racc 1.7.1
Using crass 1.0.6
Using rack 2.2.8
Using websocket-extensions 0.1.5
Using date 3.3.3
Using marcel 1.0.2
Using mini_mime 1.1.5
Fetching nio4r 2.7.0
Using timeout 0.4.0
Using aes_key_wrap 1.1.0
Using public_suffix 5.0.3
Using encryptor 3.0.0
Using jsonapi-renderer 0.2.2
Using attr_required 1.0.1
Using aws-eventstream 1.2.0
Using aws-partitions 1.809.0
Using awrence 1.2.1
Using android_key_attestation 0.3.0
Using jmespath 1.6.2
Using faraday-em_http 1.0.0
Using faraday-em_synchrony 1.0.0
Using faraday-excon 1.1.0
Using faraday-httpclient 1.0.1
Using faraday-net_http 1.0.1
Using multipart-post 2.3.0
Using faraday-net_http_persistent 1.2.0
Using faraday-patron 1.0.0
Using ruby2_keywords 0.0.5
Using faraday-retry 1.0.3
Using faraday-rack 1.0.0
Using connection_pool 2.4.1
Using bcp47_spec 0.2.1
Using bcrypt 3.1.18
Using bindata 2.4.15
Using browser 5.3.1
Using msgpack 1.7.1
Using bundler 2.4.13
Using redis 4.8.1
Using blurhash 0.1.7
Using cbor 0.5.9.6
Using charlock_holmes 0.7.7
Using multi_json 1.15.0
Using chunky_png 1.4.0
Using elasticsearch-dsl 0.1.10
Using cocoon 1.2.15
Using openssl 3.1.0
Using climate_control 0.2.0
Using color_diff 0.1
Using orm_adapter 0.5.0
Using thor 1.2.2
Using method_source 1.0.0
Using unf_ext 0.0.8.2
Using zeitwerk 2.6.11
Using dotenv 2.8.1
Using rotp 6.2.2
Using excon 0.100.0
Using fastimage 2.2.7
Using ffi 1.15.5
Using formatador 0.3.0
Using fast_blank 1.0.1
Using ipaddress 0.8.3
Using raabro 1.4.0
Using mime-types-data 3.2023.0808
Using temple 0.10.2
Using ed25519 1.3.0
Using json 2.6.3
Using hashie 5.0.0
Using hiredis 0.6.3
Using htmlentities 4.3.4
Using http-form_data 2.3.0
Using hkdf 0.3.0
Using http_accept_language 2.1.1
Using tilt 2.2.0
Using idn-ruby 0.1.5
Using httpclient 2.8.3
Using rainbow 3.1.1
Using json-canonicalization 1.0.0
Using link_header 0.0.8
Using kaminari-core 1.2.2
Using jwt 2.7.1
Using net-ldap 0.18.0
Using uri 0.12.2
Using statsd-ruby 1.5.0
Using ox 2.14.17
Using rexml 3.2.6
Using oj 3.16.1
Using parslet 2.0.0
Using pg 1.5.4
Using posix-spawn 0.3.15
Using tty-color 0.6.0
Using private_address_check 0.5.0
Using redcarpet 3.6.0
Using rqrcode_core 1.2.0
Using ruby-progressbar 1.13.0
Using semantic_range 3.0.0
Using rubyzip 2.3.2
Using tty-cursor 0.7.1
Using xorcist 1.1.3
Using tty-screen 0.8.1
Using wisper 2.0.1
Using nokogiri 1.15.4 (aarch64-linux)
Using rack-test 2.1.0
Using i18n 1.14.1
Using tzinfo 2.0.6
Using warden 1.2.9
Using request_store 1.5.1
Using rack-cors 2.0.1
Using rack-attack 6.7.0
Using rack-protection 3.0.5
Using rack-proxy 0.7.6
Using net-protocol 0.2.1
Using websocket-driver 0.7.6
Using sprockets 3.7.2
Using addressable 2.8.5
Using attr_encrypted 4.0.0
Using aws-sigv4 1.6.0
Using bootsnap 1.16.0
Using net-http-persistent 4.0.2
Using mario-redis-lock 1.2.1
Using brpoplpush-redis_script 0.1.3
Using redis-namespace 1.11.0
Using redlock 1.3.2
Using faraday-multipart 1.0.4
Using openssl-signature_algorithm 1.3.0
Using elasticsearch-api 7.13.3
Using terrapin 0.6.0
Using sidekiq 6.5.10
Using unf 0.1.4
Using ffi-compiler 1.0.1
Using mime-types 3.5.1
Using haml 6.1.2
Using httplog 1.6.2
Using rdf 3.3.1
Using webpush 0.3.8 from https://github.com/ClearlyClaire/webpush.git (at f14a4d5@f14a4d5)
Using safety_net_attestation 0.4.0
Fetching net-http 0.3.2
Using hcaptcha 7.1.0
Using pastel 0.8.0
Using rqrcode 2.2.0
Using loofah 2.21.3
Using sanitize 6.0.2
Using ruby-saml 1.15.0
Using tty-reader 0.9.0
Using activesupport 7.0.8
Using et-orbi 1.2.7
Using tzinfo-data 1.2023.3
Using net-imap 0.3.7
Using omniauth 2.1.1
Using net-smtp 0.3.3
Using css_parser 1.14.0
Using aws-sdk-core 3.181.0
Using net-pop 0.1.2
Using faraday 1.10.3
Using stoplight 3.0.2
Using cose 1.3.0
Using tpm-key_attestation 0.12.0
Using sidekiq-bulk 0.2.0
Using sidekiq-unique-jobs 7.1.29
Using twitter-text 3.1.0
Using domain_name 0.5.20190701
Using llhttp-ffi 0.4.0
Using fog-core 2.1.0
Using rdf-normalize 0.6.1
Using rails-html-sanitizer 1.6.0
Using tty-prompt 0.23.1
Using json-ld 3.3.1
Using rails-dom-testing 2.1.1
Using globalid 1.1.0
Using activemodel 7.0.8
Using json-jwt 1.15.3
Using nsa 0.2.8 from https://github.com/jhawthorn/nsa.git (at e020fcc@e020fcc)
Using case_transform 0.2
Using swd 1.3.0
Using webfinger 1.2.0
Using pundit 2.3.0
Using simple-navigation 4.4.0
Using omniauth-cas 2.0.0 from https://github.com/stanhu/omniauth-cas.git (at 4211e6d@4211e6d)
Using fugit 1.8.1
Using omniauth-saml 2.1.0
Using premailer 1.21.0
Using aws-sdk-kms 1.71.0
Using faraday_middleware 1.2.0
Using mail 2.8.1
Installing net-http 0.3.2
Using elasticsearch-transport 7.13.3
Using webauthn 3.0.0
Using http-cookie 1.0.5
Using fog-json 1.2.0
Using json-ld-preloaded 3.2.2
Using actionview 7.0.8
Installing nio4r 2.7.0 with native extensions
Using activerecord 7.0.8
Using kt-paperclip 7.2.1
Using rack-oauth2 1.21.3
Using activejob 7.0.8
Using validate_url 1.0.15
Using rufus-scheduler 3.9.1
Using aws-sdk-s3 1.133.0
Using azure-storage-common 2.0.4
Using validate_email 0.1.6
Using elasticsearch 7.13.3
Using http 5.1.1
Using fog-openstack 0.3.10
Using actionpack 7.0.8
Using kaminari-actionview 1.2.2
Using discard 1.2.1
Using kaminari-activerecord 1.2.2
Using pghero 3.3.4
Using strong_migrations 0.8.0
Using azure-storage-blob 2.0.3
Using sidekiq-scheduler 5.0.3
Using openid_connect 1.4.2
Using chewy 7.3.4
Using activestorage 7.0.8
Using actionmailer 7.0.8
Using railties 7.0.8
Using active_model_serializers 0.10.13
Using omniauth-rails_csrf_protection 1.0.1
Using simple_form 5.2.0
Using sprockets-rails 3.4.2
Using kaminari 1.2.2
Using md-paperclip-azure 2.2.0
Using omniauth_openid_connect 0.6.1
Using actionmailbox 7.0.8
Using actiontext 7.0.8
Using premailer-rails 1.12.0
Using responders 3.1.0
Using doorkeeper 5.6.6
Using dotenv-rails 2.8.1
Using haml-rails 2.1.0
Using lograge 0.13.0
Using rails-i18n 7.0.7
Using scenic 1.7.0
Using webpacker 5.4.4
Using devise 4.9.2
Using devise-two-factor 4.1.0
Using actioncable 7.0.8
Fetching puma 6.4.2
Using rails 7.0.8
Using rails-settings-cached 0.6.6 from https://github.com/mastodon/rails-settings-cached.git (at v0.6.6-aliases-true@86328ef)
Installing puma 6.4.2 with native extensions
Bundle complete! 130 Gemfile dependencies, 243 gems now installed.
Gems in the groups 'development' and 'test' were not installed.
Bundled gems are installed into `./vendor/bundle`
mastodon@instance-20230911-1538:~/live$ yarn install --frozen-lockfile
yarn install v1.22.21
[1/6] Validating package.json...
[2/6] Resolving packages...
success Already up-to-date.
$ husky install
husky - Git hooks installed
Done in 0.85s.
mastodon@instance-20230911-1538:~/live$ RAILS_ENV=production bundle exec rails assets:precompile
Compiling...
Compiled all packs in /home/mastodon/live/public/packs
Browserslist: caniuse-lite is outdated. Please run:
npx update-browserslist-db@latest
Why you should do it regularly: https://github.com/browserslist/update-db#readme
`isModuleDeclaration` has been deprecated, please migrate to `isImportOrExportDeclaration`
at isModuleDeclaration (/home/mastodon/live/node_modules/babel-plugin-lodash/node_modules/@babel/types/lib/validators/generated/index.js:2740:35)
at PluginPass.Program (/home/mastodon/live/node_modules/babel-plugin-lodash/lib/index.js:102:44)

mastodon@instance-20230911-1538:~/live$ exit
logout
davidyin@instance-20230911-1538:~$ sudo systemctl restart mastodon-sidekiq
davidyin@instance-20230911-1538:~$ sudo systemctl reload mastodon-web
davidyin@instance-20230911-1538:~$ sudo systemctl restart mastodon-streaming

After the above process, I refreshed the Dashboard page.

The Mastodon version is 4.2.4. But the Ruby is still 3.2.2p53. So I reboot the VPS.

Reload the Dashboard. It is right.

The post Upgrade Mastodon v4.2.3 to v4.2.4 appeared first on David Yin's Blog.

]]>
https://www.yinfor.com/2024/01/upgrade-mastodon-v4-2-3-to-v4-2-4.html/feed/ 0
Fix my LG SmartTV remote control https://www.yinfor.com/2024/01/fix-my-lg-smarttv-remote-control.html https://www.yinfor.com/2024/01/fix-my-lg-smarttv-remote-control.html#respond Sat, 20 Jan 2024 05:04:27 +0000 https://www.yinfor.com/?p=9401 Today I would like to record how I fixed my TV control. The TV was bought three years ago. LG NanoCell 55-inch Smart TV. The control has a name: Magic Remote Control.   If you want to buy a replacement...

The post Fix my LG SmartTV remote control appeared first on David Yin's Blog.

]]>
Today I would like to record how I fixed my TV control. The TV was bought three years ago. LG NanoCell 55-inch Smart TV.

The control has a name: Magic Remote Control.

 

If you want to buy a replacement from the official LG store, go to the Amazon link here. The price is $50.86.

I find a video of how to disassemble it.

When I opened it, one part fell out. It is the wheel.

The support of the wheel is broken. So the wheel is stuck and there is no way to rotate it.

I need to fix it with something I can easily access. I looked at my storage. Found an Allen key. A very small Allen Key.

First step, I used a metal file to make the hexagonal even smaller to fit in.

Second step, I use the cutting tool to cut it to the length I need.

Third step, I drilled a hole in the center of the wheel. The part I made in the second step can pass through.

In the fourth step, I mixed the AB glue and put the parts together, added glue, and make sure the position was OK.

 

It is not too good, because I don’t have the right tools.

When I install the wheel into the remote control, it is a perfect match.

 

You can see the glue in the middle of the part.

At the last step, I put everything together. Install the battery. It works as a new remote control.

I learned this method from YouTube. Some videos use a toothpick instead of an Allen key which I am using. I believe the wood or bamboo toothpick is too soft. It may not last long enough.

You can see the timestep of my pictures. I used the fixed remote control for almost three weeks. No one will feel any difference between the old one and the new original LG Magic Remote Control.

 

The post Fix my LG SmartTV remote control appeared first on David Yin's Blog.

]]>
https://www.yinfor.com/2024/01/fix-my-lg-smarttv-remote-control.html/feed/ 0
Fix the Xbox by upgrading the HDD to SSD https://www.yinfor.com/2023/06/fix-the-xbox-by-upgrading-the-hdd-to-ssd.html https://www.yinfor.com/2023/06/fix-the-xbox-by-upgrading-the-hdd-to-ssd.html#respond Fri, 23 Jun 2023 23:14:31 +0000 https://www.yinfor.com/?p=9050 My Xbox One S game console is over five years. Since last winter, I sometimes get stuck when I play the game. The Xbox One S replaced the Xbox 360 which was 6 years old. So I am thinking about...

The post Fix the Xbox by upgrading the HDD to SSD appeared first on David Yin's Blog.

]]>
My Xbox One S game console is over five years. Since last winter, I sometimes get stuck when I play the game. The Xbox One S replaced the Xbox 360 which was 6 years old. So I am thinking about upgrading to a new generation game console. Maybe Xbox Series X or Xbox Series S. I prefer X because I have a bunch of game discs. If I choose the diskless game console, I will lose access to these old games. After the completed research and consulting. I make a decision to give the Xbox One S a last try. It is to get a new SSD to replace the old HDD and see if it fixes the problem.

The error code of the problem most of the time is 0X80831002. I did at least three times of hard resets last year.

So, here is my new SSD. It is CA$53.00 plus tax on Amazon.ca. Silicon Power 1TB SSD 3D NAND A58 Performance Boost SATA III 2.5″ 7mm SU001TBSS3A58A25C. The original HDD in the Xbox One S is 1TB, so I choose the same storage size.

Silicon Power 1TB SSD 3D NAND A58
Silicon Power 1TB SSD 3D NAND A58
Silicon Power 1TB SSD 3D NAND A58 Description
Silicon Power 1TB SSD 3D NAND A58 Description

How to upgrade the Xbox One S HDD to SSD?

The first step is the Xbox One S disassembly.

There are a lot of videos that teach you how to do it. I watched two videos. I also bought a set of tools when I order the SSD.

Repair Tool Kit in a box
Repair Tool Kit in a box (Look, it is on the bottom of Xbox.)
Two main tools I used
Two main tools I used

The iFixit guide is very detailed. You can follow it too. I just put some pictures during my work.

Six screws on the bottom of Xbox One S
Six screws on the bottom of the Xbox One S
Xbox One S HDD
Remove Xbox One S HDD
New SSD installed
Install the new SSD into Xbox One S

Then I put everything back.

The next step is to install the OS.

  • I have a 64GB USB disk. Format it in NTFS format.
  • Download the offline system update package from the Microsoft Xbox official support site. I chose OSU1. (if you failed to do it, try OSU2 or OSU3)
  • OSU1.zip file is 6.35GB. Unzip it.
  • Copy the $SystemUpdate folder into the USB disk.
  • Turn on the Xbox One S console, the Troubleshoot screen will be popped up automatically because the SSD is blank.
  • Plug the USB disk into a USB port on my Xbox Console. The Offline system update option on the Xbox Screen becomes active.
  • Use the D-pad and A buttons on my controller to select Offline system update.
Troubleshoot Screen
Xbox Troubleshoot Options
Xbox One S Offline Update
Xbox One S Offline Update

It took about 10 minutes to complete the update or installation. Then the console will restart and return to the Home screen.

Now, it looks like a brand-new system.

After the upgrade, I set up my account and install the games. Played for more than ten hours, and it is no more problems.

Conclusion.

I believe the problem with the Xbox One S came from the HDD failure.

The power-up time is almost the same as before. But the game loading time of Forza Horizon 3 is reduced from 1min 25 sec to 30 seconds.

It is not just fix the Xbox problem,  it also improves the performance of my gaming experience.

 

 

 

The post Fix the Xbox by upgrading the HDD to SSD appeared first on David Yin's Blog.

]]>
https://www.yinfor.com/2023/06/fix-the-xbox-by-upgrading-the-hdd-to-ssd.html/feed/ 0
How to upgrade Emby server on my NAS? https://www.yinfor.com/2023/05/how-to-upgrade-emby-server-on-my-nas.html https://www.yinfor.com/2023/05/how-to-upgrade-emby-server-on-my-nas.html#respond Fri, 26 May 2023 00:07:15 +0000 https://www.yinfor.com/?p=8929 If you saw my previous post about my NAS which is powered by Ubuntu 22.04LTS, you should know that I have an Emby server running on the NAS system. It is time to upgrade it to the latest version, or...

The post How to upgrade Emby server on my NAS? appeared first on David Yin's Blog.

]]>
If you saw my previous post about my NAS which is powered by Ubuntu 22.04LTS, you should know that I have an Emby server running on the NAS system. It is time to upgrade it to the latest version, or v4.7.12.0.

Today, I sign in to the Emby server and look at the Dashboard. It said there is a new version available.

The latest version is at https://github.com/MediaBrowser/Emby.Releases/releases

For me, I download the deb amd64 edition installation package.

So, sign in the NAS in the terminal window through PUTTY.

Run the following command to upgrade Emby.

cd ~
cd ~
wget https://github.com/MediaBrowser/Emby.Releases/releases/download/4.7.12.0/emby-server-deb_4.7.12.0_amd64.deb
sudo systemctl stop emby-server
sudo dpkg -i emby-server-deb_4.7.12.0_amd64.deb
sudo systemctl start emby-server

Wait for the Emby server to load in a few minutes.

Emby Server Dashboard

There is a piece of very bad news for Emby server Security advisory 2023-5-25. Someone’s Emby is hacked through an open public Internet connection.

Starting Mid-May 2023, a hacker managed to infiltrate user-hosted instances of Emby Server which were accessible via public internet and had an insecure configuration for administrative user accounts. Combined with the “Proxy Header Vulnerability”, which was recently fixed in the beta channel, this allowed an attacker to gain administrative access on such systems. Eventually, this allowed the attackers to install a custom plugin of their own, which establishes a backdoor in the running process of Emby Server.

After careful analysis and evaluation of possible strategies for mitigation, the Emby team was able to push out an update to Emby Server instances which is able to detect the plugin in question and prevents it from being loaded. Due to the severity and the nature of this situation and in an abundance of caution we are preventing affected servers to start up again after the detection, even with the plug-in being locked out, as all data and user accounts need to be considered as compromised. As the given situation requires direct action and assessment by the administrator, we determined that shutting down the server and preventing further startup up is the most suitable action as it disables the plug-in, possibly prevents the situation from getting worse and at the same time draws the attention of the administrator onto the subject.

Analysis of the plug-in has revealed that it is forwarding the login credentials including the password for every successful login to an external server under control of the hackers.

I am always suggesting that any services running inside of your house, or a homelab, should not allow access from the public Internet. If you really need to access the service from outside of your LAN, just open the port for this service and limit the IP which can access it. Of course, the username and password is a must.

The post How to upgrade Emby server on my NAS? appeared first on David Yin's Blog.

]]>
https://www.yinfor.com/2023/05/how-to-upgrade-emby-server-on-my-nas.html/feed/ 0
How to Disable IPv6 on Ubuntu 22.04 terminal https://www.yinfor.com/2023/01/how-to-disable-ipv6-on-ubuntu-22-04-terminal.html https://www.yinfor.com/2023/01/how-to-disable-ipv6-on-ubuntu-22-04-terminal.html#respond Mon, 16 Jan 2023 07:42:53 +0000 https://www.yinfor.com/?p=8541 I have the NAS. Transmission is running on it. I like setting port rules on my router to make the BT service visible from the public network. This post is about how to disable IPv6 on Ubuntu. You can also...

The post How to Disable IPv6 on Ubuntu 22.04 terminal appeared first on David Yin's Blog.

]]>
I have the NAS. Transmission is running on it. I like setting port rules on my router to make the BT service visible from the public network. This post is about how to disable IPv6 on Ubuntu. You can also treat it as a guide to enable IPv6.

The problem is IPv6 is not working on it. So I just disabled IPv6 on Ubuntu Linux.

First I sign in to the server through putty.

Run command ip address

IPv6 address

The 2001:270…. is the IPv6 address of this server.

Edit /etc/sysctl.conf file.

Add the following to the end of the file.

Terminal window, sysctl.conf

net.ipv6.conf.all.disable_ipv6=1
net.ipv6.conf.default.disable_ipv6=1
net.ipv6.conf.lo.disable_ipv6=1

Then run the command to make it effective.

sudo sysctl -p

At the last, I check the IP address.

IPv4 only now

There is no more IPv6 ip address.

On the Transmission Web Control Panel, I test the port.

Test the port. It is Open.

Done.

Reference of IPv6 on Ubuntu

There are different types of IPv6 addresses: Unicast, Anycast, and Multicast.

  • Unicast addresses are well-known addresses. A packet sent to a unicast address arrives exactly at the interface belonging to the address.
  • Anycast addresses are syntactically indistinguishable from unicast addresses but they address a group of interfaces. The packet destined for an anycast address will arrive at the nearest (in router metric) interface. Anycast addresses may only be used by routers.
  • Multicast addresses identify a group of interfaces. A packet destined for a multicast address will arrive at all interfaces belonging to the multicast group.

 

The full form is represented as 8 hexquad parcels of 16 bits each written in lower case hexadecimal, separated by colons (:). For example 2001:0db8:382b:23c1:aa49:4592:4efe:9982.

Often an address will have long substrings of all zeros; the longest and first run of all zero hexquads is abbreviated as a double colon (“::”). Since :: is variable length, it can only be used once per address. Leading “0”s are also omitted, up to three per hexquad. For example, fe80::1 is the canonical form of fe80:0000:0000:0000:0000:0000:0000:0001 and 2001:db8:b:23c1:49:4592:efe:9982 is the canonical form of 2001:0db8:000b:23c1:0049:4592:0efe:9982.

A third form is to write the last 32 bits in the well known dotted decimal IPv4 style. For example 2002::10.0.0.1 corresponds to the (hexadecimal) long representation 2002:0000:0000:0000:0000:0000:0a00:0001 with canonical form 2002::a00:1.

By now the reader should be able to understand the following:

# ip addr
2: ens18: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 86:75:6e:36:db:5a brd ff:ff:ff:ff:ff:ff
inet 192.168.100.188/24 brd 192.168.100.255 scope global dynamic ens18
valid_lft 4188sec preferred_lft 4188sec
inet6 2001:470:4aa0:0:8475:6eff:fe36:db5a/64 scope global dynamic mngtmpaddr noprefixroute
valid_lft 86282sec preferred_lft 14282sec
inet6 fe80::8475:6eff:fe36:db5a/64 scope link
valid_lft forever preferred_lft forever

 

fe80::8475:6eff:fe36:db5a of interface ens18 is an autoconfigured link-local address. It is generated as an IEEE EUI-64 style identifier from the device’s hardware IEEE EUI-48(MAC) address as part of the autoconfiguration.

2001:470:4aa0:0:8475:6eff:fe36:db5a is the IPv6 address get from server.

vi IPv6 – Ubuntu Wiki

The post How to Disable IPv6 on Ubuntu 22.04 terminal appeared first on David Yin's Blog.

]]>
https://www.yinfor.com/2023/01/how-to-disable-ipv6-on-ubuntu-22-04-terminal.html/feed/ 0
Replace the other hinge of Canon imageClass MF4450 https://www.yinfor.com/2023/01/replace-the-other-hinge-of-canon-imageclass-mf4450.html https://www.yinfor.com/2023/01/replace-the-other-hinge-of-canon-imageclass-mf4450.html#respond Tue, 03 Jan 2023 00:00:15 +0000 https://www.yinfor.com/?p=8492 When finished my basement renovation, I moved all the furniture and stuff.  I found the imageClass MF4450 had the problem of closing up again. This time, it is on the other side. You can find it on the right side....

The post Replace the other hinge of Canon imageClass MF4450 appeared first on David Yin's Blog.

]]>
When finished my basement renovation, I moved all the furniture and stuff.  I found the imageClass MF4450 had the problem of closing up again. This time, it is on the other side.

Canon printer right side broken hinge

You can find it on the right side. The last time I post something about this printer, it is how to fix the left side hinge.

Everything is the same as the left side fixing, but I still want to keep a record to remember how I open the case.

To remove the cover or case, the screw on the back should be taken down first.

the screw on the back

Yes, just this one.

The next step is to pull the side panel.

remove side cover

I highlighted the place to pull and remove the cover.

OK. here is all. for Canon imageClass MF4450 multifunction printer.

Please check the previous post about how to replace the hinge of the Canon imageClass MF4450 printer.

Until now, the hinges on both sides are replaced.

The post Replace the other hinge of Canon imageClass MF4450 appeared first on David Yin's Blog.

]]>
https://www.yinfor.com/2023/01/replace-the-other-hinge-of-canon-imageclass-mf4450.html/feed/ 0
Emby Server on my NAS and how to upgrade it https://www.yinfor.com/2022/09/emby-server-on-my-nas-and-how-to-upgrade-it.html https://www.yinfor.com/2022/09/emby-server-on-my-nas-and-how-to-upgrade-it.html#respond Wed, 14 Sep 2022 23:52:37 +0000 https://www.yinfor.com/?p=8361 Emby server is installed on my NAS. You know, my NAS is about 6 years old and is powered by a U-NAS server system. Right now it is version 4.0.6. There are not many things running on it. I used...

The post Emby Server on my NAS and how to upgrade it appeared first on David Yin's Blog.

]]>
Emby server is installed on my NAS. You know, my NAS is about 6 years old and is powered by a U-NAS server system. Right now it is version 4.0.6.

There are not many things running on it. I used it mainly for file sharing, BT, and backup. Additionally, I am running an EMBY server on it.

Emby is just a personal media server platform. You need a server to install it and also have your own media file. Emby does not provide any media files.

It also supports live TV if you have the Live TV tuner.

Here is an example screenshot of the Windows 11 Emby App.

Emby App
Emby App

Now I am going to show you how to upgrade the Emby in this NAS.

First, you should know the NAS is built on the Debian system.

Second, the Emby server is already installed. The current version is v4.6.7.

Now it is time to do the upgrade.

 

 

wget https://github.com/MediaBrowser/Emby.Releases/releases/download/4.7.6.0/emby-server-deb_4.7.6.0_amd64.deb
sudo systemctl stop emby-server
sudo dpkg -i emby-server-deb_4.7.6.0_amd64.deb
sudo systemctl start emby-server

After the upgrade, I sign in to the browser control panel. Dashboard page.

It is quite simple.  I still need to do a few restarts to make everything updated. Especially for the plugins.

 

What’s New for the Emby 4.7.6

  • Support shift to multi-select
  • Right to Left languages
  • Improve filter menu indicator
  • Add Select None to multi-select lists
  • Fix regressions related to image extraction
  • Improve the use of internet metadata with recordings
  • Improve photo loading performance
  • Include activity log database file when vacuuming databases
  • Mark all video versions as played when toggling played
  • Change wording of transcoding reasons to be more user friendly
  • Fix sort by sort title being case sensitive in some views
  • Fixes for file names with years at beginning
  • Improve dsd/dsf playback over Dlna

 

Now there is a beta version for Emby 4.8.x. A lot of new features and improvement is on the horizon. I am looking forward to seeing it released. See below:

  • Update to ffmpeg 5.1
  • Add new table view option
  • Add more fields for selection in poster views
  • Add new theme options
  • Various database performance improvements
  • Support keyword-based recordings
  • Update Intel Media Driver
  • Minor database performance improvements
  • Include activity log database file when vacuuming databases
  • Rework scanning of extras, allowing more flexible usage of video extras
  • Resolve issue of multi-part and multi-version not being able to be used together
  • Improve the use of internet metadata with recordings
  • Support shift to multi-select
  • Change wording of transcoding reasons to be more user friendly
  • Improve filter menu indicator
  • Add Select None to multi-select lists
  • Fix sort by sort title being case sensitive in some views
  • Fixes for multi-part and multi-version videos being used together
  • Fixes for movies having file names starting with years
  • Initial RTL support in web interface
  • Fix Intro Detection scheduled task not being visible
  • Fix a/v sync regressions with live tv and recordings
  • Improve photo loading performance
  • Fixes for downloads automatically redownloading
  • Remember subtitle selections even when user option is set to None
  • Improve support for musicbrainz illegal character replacement
  • Fix graphic subtitle position when burning in subtitles with transcoding
  • Fix unnecessary ffmpeg dependency on Windows Media Foundation
  • Sanitize new playlist and collection names
  • Add intro detection library options
  • Fix sporadic cases of errors when reordering live tv channels
  • Improve automatic channel mapping with xml tv
  • Support sort by composer

 

 

 

Find the server files in the tags page of the Github repositions.

The post Emby Server on my NAS and how to upgrade it appeared first on David Yin's Blog.

]]>
https://www.yinfor.com/2022/09/emby-server-on-my-nas-and-how-to-upgrade-it.html/feed/ 0
Fix the broken Xbox One Controller https://www.yinfor.com/2022/09/fix-the-broken-xbox-one-controller.html https://www.yinfor.com/2022/09/fix-the-broken-xbox-one-controller.html#respond Fri, 09 Sep 2022 21:00:15 +0000 https://www.yinfor.com/?p=8337 My Xbox one is almost five years old. The controller joystick has problems. The rubber is broken and peeled off. I tried to get a rubber cover, but it is not working. It is very loose. Until now, I bought...

The post Fix the broken Xbox One Controller appeared first on David Yin's Blog.

]]>
My Xbox one is almost five years old. The controller joystick has problems.

The rubber is broken and peeled off. I tried to get a rubber cover, but it is not working. It is very loose.

Broken xbox joystick rubber

Until now, I bought Xbox One Controller Joystick Replacement. It cost me US$9.99 with a whole bunch of tools, six thumbsticks, and Analog Thumb Sticks Parts.

xbox joysticks
xbox joysticks

 

Have a look at the joystick replacement.

new xbox joystick
new xbox joystick

I believe it is the best way to fix the broken rubber Xbox Controller. Much better than getting a new one for more than $60.

How to Replace the Joystick?

Step 1, I follow the ifixit guide to remove the cover plate to expose the screws.

Remove xbox controller cover plate
Remove xbox controller cover plate

Step 2, Remove all 5 screws.

Xbox one controller screwdriver

The screwdriver in this picture is in the package.

Be noticed that one screw is inside of the batter container, under the label.

Step 3, Lift the front cover off of the controller.

lift the front cover

Step 4, Pull the joysticks off the controller, and put a new one on it.

Xbox one controller new and old joysticks
Xbox one controller new and old joysticks

 

Step 5, put everything back.

 

For Reference.

 

I hope you can also save your old broken Xbox one Controller with this post and save your money.

 

The post Fix the broken Xbox One Controller appeared first on David Yin's Blog.

]]>
https://www.yinfor.com/2022/09/fix-the-broken-xbox-one-controller.html/feed/ 0
Can not start Win32diskimager on Windows 10 https://www.yinfor.com/2021/09/can-not-start-win32diskimager-on-windows-10.html https://www.yinfor.com/2021/09/can-not-start-win32diskimager-on-windows-10.html#comments Tue, 28 Sep 2021 21:19:31 +0000 https://www.yinfor.com/?p=7818 Update: It is also solve the problem on Windows 11. I am trying to burn an ISO file into a USB disk for installation. Most of the time, I am using Win32DiskImager to do the job. But today, I can...

The post Can not start Win32diskimager on Windows 10 appeared first on David Yin's Blog.

]]>
Update: It is also solve the problem on Windows 11.

I am trying to burn an ISO file into a USB disk for installation. Most of the time, I am using Win32DiskImager to do the job.

But today, I can not start the Win32diskimager program. I uninstalled it and downloaded a fresh copy from Sourceforge and installed it. Still not working.

I have used it before and it is OK to launch.

So, I did research and found someone who has the same problem as me.

I downloaded Win32DiskImager from SourceForge, as was recommended in some Linux installation instruction (coming from Windows). The installer runs successfully and the program is installed into C:\Program Files (x86) as expected. When launching the program Windows prompts me to accept that this program can make changes, I accept and nothing happens. No service or process launches in Task Manger.

vi kltft

The answer is quite simple.

It turns out that mounted drives can cause issues with Win32DiskImager. In my case Google Drive had mounted itself on the file system. Quitting Google Drive unmounted the drive it had mounted and then Win32DiskImager launched without issue! I also had a Linux ISO mounted (I believe Windows did this automatically after download, which seems odd) and had unmounted that as well before re-launching Win32DiskImager.

So I did the same way, right-click the Google Drive icon at the taskbar, and click quit to stop Google Drive temporarily.

Then, I run Win32DiskImager, it works.

The post Can not start Win32diskimager on Windows 10 appeared first on David Yin's Blog.

]]>
https://www.yinfor.com/2021/09/can-not-start-win32diskimager-on-windows-10.html/feed/ 14
How to replace the hinge of Canon imageClass MF4450 https://www.yinfor.com/2021/04/how-to-replace-the-hinger-of-canon-imageclass-mf4450.html https://www.yinfor.com/2021/04/how-to-replace-the-hinger-of-canon-imageclass-mf4450.html#comments Mon, 12 Apr 2021 05:54:06 +0000 https://www.yinfor.com/?p=7705 It is a promised post for a long time. My Canon imageClass MF4450 multifunction printer. I ordered the parts in January and received them in February. I said I will make a post to show you how to replace the...

The post How to replace the hinge of Canon imageClass MF4450 appeared first on David Yin's Blog.

]]>
It is a promised post for a long time. My Canon imageClass MF4450 multifunction printer. I ordered the parts in January and received them in February. I said I will make a post to show you how to replace the broken hinge.

Let me put the pictures below which recorded the most important steps.

The parts received in a plastic bag.

I received it in February. It is in a box. Unbox it, just a bag as above. Two, or a pair of fingers inside.

Hingers on the desk.It is a clean look of them. I took the picture with bright light.

Broken hinger on the left side.The broken hinger is on the left side of the printer. It is a little bit popped up.

The good hinger on the right side.This is the good hinge on the right side of my printer.

Full view when the cover is open.When I open the cover of the printer, the left side is different from the right side.

Close look of these cords and connectors.I removed the left side panel. The IC board looks like the above.  I keep this picture for the record of how the wires and connectors connect to the board. After that, I will disconnect these wires before removing the cover.

Printer without the cover.

After removing the cover, the hinges are accessible.

How the cover looks likeI put the cover on the floor. Nothing special. I will install it back when I replace the hinge.

The broken hinge.The left hinge is broken. So it is easy to remove the broken part. You can see the spring.

The rest part of the broken hinge.The rest part of the broken hinge is still on the printer. I took it down with my screw driver.

Broken hinge vs Good hinge.See, the broken hinge vs the new hinge side by side. The spring should be inside the white plastic body.

Then I install the new hinge with the reverse order of dismount.

Actually, I watched the youtube video when I doing this job. It helps me a lot.

update: 2023.1.2

The video is removed from YouTube.  https://www.youtube.com/watch?v=w7rBZhnS63w

Here is something I posted about it.

The post How to replace the hinge of Canon imageClass MF4450 appeared first on David Yin's Blog.

]]>
https://www.yinfor.com/2021/04/how-to-replace-the-hinger-of-canon-imageclass-mf4450.html/feed/ 2
How to check the SMB version https://www.yinfor.com/2020/10/how-to-check-the-smb-version.html https://www.yinfor.com/2020/10/how-to-check-the-smb-version.html#respond Sat, 24 Oct 2020 07:12:26 +0000 https://www.yinfor.com/?p=7508 I have NAS in my home network. It provides some shared folders. I mapped the drive with this kind of shared folders. It depends on the SMB service to connecting them. Wikipedia has a page for SMB or Server Message...

The post How to check the SMB version appeared first on David Yin's Blog.

]]>
I have NAS in my home network. It provides some shared folders. I mapped the drive with this kind of shared folders.

It depends on the SMB service to connecting them.

Wikipedia has a page for SMB or Server Message Block.

The SMB protocol was designed to allow computers to read and write files to a remote host over a local area network (LAN). The directories on the remote hosts made available via SMB are called “shares.”

It is simple. Most of the computers are Windows 10 at my house. Except the NAS is Debian based. And other servers are Ubuntu-based.

SMB has three main versions, SMB1, SMB2, and SMB3.  Both the server and client PC share the same version of the SMB. Then they will decide which one to use.

SMB3 will be used only when server and PC are both support it.

Here I just to to make the note of how to check the SMB version in the share connection.

Run Windows 10 PowerShell with Administrator account. Enter the command Get-SmbConnection

The dialect is the version I received. It said the connection is SMB3.0.

 

Make sure it is SMB3.0. It is much faster than SMB1 or SMB2. And also it is more secure.

The post How to check the SMB version appeared first on David Yin's Blog.

]]>
https://www.yinfor.com/2020/10/how-to-check-the-smb-version.html/feed/ 0