Install bare metal Linux dual booting with Windows

Installing Fedora is very straight forward, but

  • When clicking some avi suffix video file, I was prompted a GStreamer page, but no link to install missing plugins.

However I learnt

  • One disk must have its own EFI partition. For nowaday notebook usually has an SSD and an HDD, while SSD already has an EFI partition, when we have to install the second OS in HDD, the HDD must allocate an EFI partition too.
  • When we burn OS iso image into U-disk using UltraIso tool, we must select "RAW" mode, not others like "HDD+" mode.

'vboxdrv': Key was rejected by service

sudo dnf update
sudo dnf install mokutil

mkdir /root/signed-modules
cd /root/signed-modules
openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=VirtualBox/"
chmod 600 MOK.priv

mokutil --import MOK.der

#After rebooting system

for modfile in $(dirname $(modinfo -n vboxdrv))/*.ko; do
  echo "Signing $modfile"
  /usr/src/kernels/$(uname -r)/scripts/sign-file sha256 \
                                /root/signed-modules/MOK.priv \
                                /root/signed-modules/MOK.der "$modfile"
done

To play avi, rmvb files and so on,

dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm
dnf install https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
dnf install vlc

Not set default editor to nano in cscope,

cd /etc/profile.d
mv nano-default-editor.sh nano-default-editor.sh0

No sound?

vi /etc/pulse/default.pa
	load-module module-alsa-sink device=dmix
	load-module module-alsa-source device=dsnoop
reboot

This method doesn't go very well, but I know the reason, I had replaced pipewire with pulseaudio while pipewire is the next generation.

Update grub,

grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg

refer to:
https://www.tecmint.com/install-vmware-workstation-in-linux/
https://stackoverflow.com/questions/61248315/sign-virtual-box-modules-vboxdrv-vboxnetflt-vboxnetadp-vboxpci-centos-8
https://www.videolan.org/vlc/download-fedora.html
https://blog.csdn.net/weixin_41446370/article/details/116711350
http://blog.sina.com.cn/s/blog_628ba3e00102xvnk.html
https://blog.csdn.net/wujuncheng1996/article/details/83546929
https://mirror.tuna.tsinghua.edu.cn/help/rpmfusion/

video_tdr_failure nvlddmkm.sys

不一定是显卡烧了。不要用Windows Update安装显卡驱动。

先彻底将显卡驱动卸载干净。右键点击“此电脑” -> “管理” -> “设备管理器” -> “显示适配器” -> 右键点击“NVIDIA GeForce XXX” -> “卸载设备” -> 勾选“尝试删除此设备的驱动程序” -> “卸载”。

再到英伟达官网下载英文版驱动安装:

https://www.nvidia.com/download/index.aspx?lang=en-us

我的配置是1050 Ti, ok, it's already cost me an arm and a leg.
下载的驱动名是
511.23-notebook-win10-win11-64bit-international-dch-whql.exe
安装后至今没出现什么问题。

另外,确定蓝屏原因的方法:

  1. 启动 windbg,菜单file -> symbol file path输入:

    1
    
    SRV*c:\temp*http://msdl.microsoft.com/download/symbols

    然后确定。

  2. windbg菜单file -> open crash dump,选择C:\Windows\MEMORY.DMP后,等待

    1
    
    Use !analyze -v to get detailed debugging information...

    字样出现后,点击“!analyze -v”超链接,可看到nvlddmkm.sys出现,说明是显卡驱动那里崩了。

确定蓝屏DUMP文件路径的方法:

右键点击“此电脑” -> “属性” -> “高级系统设置” -> “高级” -> “启动和故障恢复”中“设置” -> “写入调试信息”……

refer to:
https://social.technet.microsoft.com/Forums/windows/th-TH/f2212753-9cf5-4659-9c55-258329b0ff48/31995324793401323631?forum=vistazhchs

unicode in ctex

在英文Windows中,特别是使用了“用utf8提供全球语言支持”时,系统会把所有保存为GBK的api忽略掉,此时CTex只会识别utf8的文档,而utf16不会被编译识别。

同时在tex文件头部documentclass后要申明本文档为utf8格式。

%!Mode:: "TeX:UTF-8"
\documentclass[UTF8]{article}
\usepackage{CTEX}
\begin{document}
这是一个CTEX的utf-8编码例子,{\kaishu 这里是楷体显示},{\songti 这里是宋体显示},{\heiti 这里是黑体显示},{\fangsong 这里是仿宋显示},{\lishu 这里是隶书显示},{\youyuan 这里是幼圆显示}。
\end{document}

refer to:
冰原狼
https://www.pianshen.com/article/97651577419/

build qt source in vs2022 win11

Don't download qt source in tar.xz format, for in Windows, if we unzip it using 7zip, some deep file paths may be truncated, for example, ECMFindModuleHelpersStub.cmake referred by FindEGL.cmake in qtbase\cmake\3rdparty\extra-cmake-modules\find-modules.

This time I download qt-everywhere-src-6.2.2.zip.

In preparation, as to README.md, ActivePerl must be installed, it sucks, we must have an account of it. However, we can find another perl alternative, Strawberry Perl portable edition.

When we build, qt source root path should be short enough like d:\qt.

bld.bat

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
set curpath=%CD%
set vspath=D:\cext\Program Files\Microsoft Visual Studio\2022\Enterprise
set perlpath=D:\work\open\strawberry-perl-5.32.1.1\perl\bin
set clangpath=D:\work\open\libclang
set installpath=D:\cext\Qt
 
call "%vspath%\VC\Auxiliary\Build\vcvars64.bat"
 
set oldpath=%path%
set path=%path%;%perlpath%
 
if not exist %curpath%\bld @mkdir %curpath%\bld
 
cd %curpath%\bld
 
cmake.exe ^
	-G "Ninja" ^
	-DCMAKE_INSTALL_PREFIX:PATH=%curpath%\bld ^
	-DCMAKE_BUILD_TYPE="Debug" ^
	-DFEATURE_clang="ON" ^
	-DCMAKE_PREFIX_PATH="%clangpath%" ^
	-DCMAKE_MAKE_PROGRAM="%vspath%\COMMON7\IDE\COMMONEXTENSIONS\MICROSOFT\CMAKE\Ninja\ninja.exe" ..
 
cmake --build . --parallel
rem cmake --install . --prefix %installpath%
 
if 0 == 1 (
	rem if we build QtDoc, we must add clang path to system path, otherwise we will get exit code 0xc0000135.
	set path=%path%;%clangpath%\bin
	cmake --build . --target docs
)
 
set path=%oldpath%
cd ..

Modify paths at the beginning of above bld.bat and put the batch file in the qt source root directory, then execute it.

ps1: all in one release of qt is like below url, but we should know all in one is not available since Qt 5.15.
http://download.qt.io/archive/qt/5.9/5.9.2/qt-opensource-linux-x64-5.9.2.run
And we need download online installer for Qt above 5.15 if we don't want to build from scratch:
https://download.qt.io/official_releases/online_installers/

Refer to:
https://ninja-build.org/
https://strawberryperl.com/releases.html
https://github.com/Kitware/CMake/releases/download/v3.22.1/cmake-3.22.1-windows-x86_64.msi

https://download.qt.io/development_releases/prebuilt/libclang/
https://download.qt.io/archive/qt/6.2/6.2.2/single/qt-everywhere-src-6.2.2.zip
https://download.qt.io/official_releases/qtcreator/6.0/6.0.1/qt-creator-opensource-windows-x86_64-6.0.1.exe

https://stackoverflow.com/questions/14807294/how-to-install-cmake-c-compiler-and-cxx-compiler
https://www.cnblogs.com/gearslogy/p/7435202.html

avoid rebuilding all in vs2010 everytime

  1. remove all nonexisted files in vs2010 project tree view by double clicking one by one.
  2. remove readonly attributes of file in explorer project directory recursively.
  3. reset all modify times to recent by

    1
    
    find . | xargs touch {}
  4. reboot system.

open sourced pdf reader

Windows lacks non money smell softwares.

If we encouter warning C4819 when building, change system setting 'Language for non-Unicode programs' to 'US/English' and reboot.

https://www.sumatrapdfreader.org/docs/Contribute-to-SumatraPDF
https://github.com/sumatrapdfreader/sumatrapdf

Tricks,

SumatraPDF.exe -invert-colors

refer to:
https://www.cnblogs.com/Steven-HU/p/14547749.html
https://www.cnblogs.com/chenxi188/p/15585702.html

bad security of vmware guest isolation from host

1. without administrative privilege, only using guest os user password, we can copy any file from guest to host by

#startup win7.vmx first.
vmrun.exe -gu guest_os_user_name -gp guest_os_user_password copyFileFromGuestToHost "E:\vmimg\win7\win7.vmx" c:\windows\system32\notepad.exe e:\notepad.exe

2. example about communication between guest and host using vmware backdoor routines:
https://github.com/vmware/open-vm-tools/blob/master/open-vm-tools/services/plugins/dndcp

refer to:
n0nick