Window 11 cannot install Asian Keyboard
It happened to me that when I attempt to install Chinese/Japan/Korean input method to my windows 11 box, it fails on installing the “Basic Typing” after attempted to download for about 30 seconds with error
“Sorry, we’re having trouble installing this feature. You can try again later. Error code 0x0”.
And all other components like Handwriting, Text-to-speech, Speech recognition also fail. And the installed Asian keyboard does not work showing the feature is not ready.
I tried the tricks in this: [https://answers.microsoft.com/en-us/windows/forum/all/windows-11-unable-to-download-language-packs/b78b04da-2c75-45d8-a828-f553441b220f] but none of them works.
The workaround I found is to download
26100.1.240331-1435.ge_release_amd64fre_CLIENT_LOF_PACKAGES_OEM.iso
from https://files.rg-adguard.net/file/025cfc5d-f5fa-7d00-246e-76c04a40e210
and extract the corresponding language pack .cab files like
Microsoft-Windows-Client-Language-Pack_x64_zh-cn.cab
Microsoft-Windows-LanguageFeatures-Basic-zh-cn-Package~31bf3856ad364e35~amd64~~.cab
Microsoft-Windows-LanguageFeatures-Handwriting-zh-cn-Package~31bf3856ad364e35~amd64~~.cab
Microsoft-Windows-LanguageFeatures-Speech-zh-cn-Package~31bf3856ad364e35~amd64~~.cab
Microsoft-Windows-LanguageFeatures-TextToSpeech-zh-cn-Package~31bf3856ad364e35~amd64~~.cab
and install them one by one in PowerShell with Admin privilege like:
Add-WindowsPackage -Online -PackagePath “.\Microsoft-Windows-LanguageFeatures-Basic-zh-cn-Package~31bf3856ad364e35~amd64~~.cab”
After all of these, the “Basic typing” is still not available but the input method works.
When dnf/yum update stuck on cleaning up…
Sometimes when you are doing dnf/yum update, the progress may stop on the last step – cleaning up packages for hours, if you have a super large data drive. This may be caused by an installing script falsely attempts to scan through multi-million files on your data drive that is not mounted in a regular location. If this is the case, you can do the following:
Open another terminal, use “top” to find out which process is keeping working, like texlua etc will show up on top.
Then you can do “lsof | grep <process_name> to find out which drive this process is scanning through.
When you find it, for example, if it is “/data/home”, you can do “umount -l <volume_name>”, (here it is “umount -l /data/home”), wait 10 seconds, then “mount /data/home” to remount it. Then the process that scanning the drive will think there is no more files, and quit it.
This will allow the dnf/yum finish without any error.
Restart docker failed on docker0 network interface
Sometimes when you attempt to restart docker.service, it fails on cannot restart docker0 network interface.
In this case, you can simple do
ifdown docker0
Then you can start docker.service again.
Replacing linux system drive over EFI boot while expanding partitions
If only to replace a system drive, doing a dd of old drive to new drive will work.
However, in most of cases the driving force of replacing drives is that the drive size is not big enough to host increasing size of system files.
In this case, only doing dd will screw you up in the same partition sizes.
There is a workaround, that you can do dd of the boot sector as well as the first partition, then use gparted to expand the first partition to the desired size. Then create a second partition, using dd to sync the second, then expand it to desired size, then the third, until it is done.
In this process, the new partitions of the second and beyond will carry a different UUID, which will prevent you from booting into the new drive properly.
You can either boot into a live CD/USB drive to change the UUIDs to the same with your old drive, or edit the /etc/fstab and /boot/grub2/grub.cfg to replace the corresonding UUID of each mount.
This method is tested working.
Stop tcsh log in script from interrupting scp
If you are using tcsh shell, and your login script has screen output like an echo line, scp will be interrupted.
To prevent this, knowing that for an interactive ssh session, it will open a tty, but embedded session like scp will not generate a tty.
Thus this can be distinguished by checking if the variable $SSH_TTY is defined. For example, you can put this in your ~/.cshrc
if ($?SSH_TTY) then
(do your login environment settings here)
else
set sh = /bin/bash
set cmdline = “tr '\0\n' '\n\1' </proc/$$/cmdline
“
if ($#cmdline > 2) then
exec $sh -c ‘exec “$0” -c “$(printf %s “$1” | tr “\1” “\n”)”‘ $sh $cmdline[3]:q
endif
endif
This, will launch a log in script free session for embedded sessions like scp.
rsync no mounts and ssh no profile
rsync -ax
ssh -t user@host –noprofile
E-Prime 3 presentation can only run on CPU 0
E-Prime 3 got a new issue with recent Windows 10 update. The presentation nearly always stuck at the end of the first item. Diagnose showed that only when E-Prime/E-Run was running on CPU 0, it can finish properly. To enforce this, a shortcut is created for each E-Run file with the target as
C:\Windows\System32\cmd.exe /c start “” /Normal /Affinity 0x1 “C:\Program Files (x86)\PST\E-Prime 3.0\Program\E-Run.exe” “C:\Location of\Your E-Run file.ebs3”
This forces the E-Run to run only on CPU 0.
Another issue: E-Prime 3 can only drive monitors up to 1920×1200 resolution. When your monitor’s native resolution is higher than this, you will have to set your monitor’s resolution lower than this to make E-Prime presentations run. However, if you set the screen resolution too low, some monitors struggle on amplifying the small resolution video signal back to its native resolution. This sometimes cause the screen flickering. To prevent this, the best way is to set the screen resolution as well as the E-Prime display resolution to exactly 1/2 or close to the top resolution E-Prime allows.
Mellanox MSN2100 Switch fan tolerance
My Mellanox MSN2100 switch constantly has the “system status” LED on red since purchase.
By looking into its system status:
show system-health detail
System status summary
System status LED red
Services:
Status: OK
Hardware:
Status: Not OK
Reasons: Failed to get speed tolerance for fan4
Failed to get speed tolerance for fan3
Failed to get speed tolerance for fan2
Failed to get speed tolerance for fan1
System services and devices monitor list
Name Status Type
——————— ——– ———-
sonic OK System
rsyslog OK Process
root-overlay OK Filesystem
var-log OK Filesystem
routeCheck OK Program
dualtorNeighborCheck OK Program
diskCheck OK Program
container_checker OK Program
vnetRouteCheck OK Program
memory_check OK Program
container_memory_snmp OK Program
container_memory_gnmi OK Program
container_eventd OK Program
database:redis OK Process
syncd:syncd OK Process
bgp:zebra OK Process
bgp:staticd OK Process
bgp:bgpd OK Process
bgp:fpmsyncd OK Process
bgp:bgpcfgd OK Process
teamd:teammgrd OK Process
teamd:teamsyncd OK Process
teamd:tlm_teamd OK Process
swss:orchagent OK Process
swss:portsyncd OK Process
swss:neighsyncd OK Process
swss:fdbsyncd OK Process
swss:vlanmgrd OK Process
swss:intfmgrd OK Process
swss:portmgrd OK Process
swss:buffermgrd OK Process
swss:vrfmgrd OK Process
swss:nbrmgrd OK Process
swss:vxlanmgrd OK Process
swss:coppmgrd OK Process
swss:tunnelmgrd OK Process
eventd:eventd OK Process
snmp:snmpd OK Process
snmp:snmp-subagent OK Process
lldp:lldpd OK Process
lldp:lldp-syncd OK Process
lldp:lldpmgrd OK Process
gnmi:gnmi-native OK Process
fan1 Not OK Fan
fan2 Not OK Fan
fan3 Not OK Fan
fan4 Not OK Fan
ASIC OK ASIC
PSU 1 OK PSU
PSU 2 OK PSU
System services and devices ignore list
Name Status Type
————— ——– ——
psu.voltage Ignored Device
psu.temperature Ignored Device
It shows that it cannot obtain fan tolerance data from the database.
Researching the system files, it is found in file /usr/local/lib/python3.9/dist-packages/sonic_platform/fan.py, the fan tolerance is hard set to 50%. And this is not passed to /usr/local/lib/python3.9/dist-packages/health_checker/hardware_checker.py via function data_dict.get(‘speed_tolerance’, None)
There is a simple fix of this: comment out the line #105 of the hardware_checker.py , replace it a hard setting
speed_tolerance = 50
And the system status LED turns green.
Using SONiC to run MSN2100 switch
The Mellanox/NVidia MSN2100 switch came with a bare ONIE system and is not Plug and Play. NVidia service can not provide setting up assistance without a ONYX//Cumulus/SONiC entitlement. I installed the community version of SONiC from sonic.software for sonic-mellanox.bin.
After the installation, the switch is automatically configured with all 16 ports as routers with a preset IP from 10.0.0.0 to 10.0.0.30. This rendered the switch useless since no two ports can talk with each other.
The following steps resolved the issue and made it a normal dummy switch:
Once log in the management interface:
Step 1: sudo bash # to bring a root interface;
Step 2: config vlan add 100 # This create a vlan;
Step 3: config interface ip remove Ethernet0 10.0.0.0 # do this to all 16 interfaces to remove their router status;
Step 4: config vlan member add 100 -u Ethernet0 # do this to all 16 interfaces to group all ports to a vlan;
Step 5: config clock timezone America/New_York # set time zone of the switch;
Step 6: config clock YYYY-MM-DD HH:MM:SS # set time;
Step 7: cp /etc/sonic/config_db.json ~/ # make a backup of the initial configuration;
Step 8: config save -y # save current configuration;
Step 9: reboot
Then you will get a working switch.
Certainly, do not forget to reset the management password and management port (eth0) ip.
Enjoy.
6020095 · 2^6972593 – 1 is prime
It has 2098967 decimal digits. See
record page here.