想下载微软原版Windows 10 20H2企业版,就用官方工具

除了最新发行的Windows 10 20H2版,微软还发行了20H2企业版的可下载ISO版本。企业版主要针对IT专业人员和企业用户。尽管如此,拥有微软帐户的任何人都可以免费下载和安装Windows 10 20H2企业版。

但是,免费版本不会持续很长时间。你可以下载并安装ISO映像,但由于它是评估版,因此只能使用90天。试用期过后,桌面屏幕将变黑,然后将继续提示用户购买企业版的许可版本。计算机也会在每小时后自动重新启动,以鼓励用户购买企业许可证。。

如前所述,企业版旨在管理中型到大型组织的配置,家里只有几台计算机的个人不需要购买企业版,只需选择专业版或家庭版即可。

一、使用媒体创建工具下载Windows 10企业版

你也可以使用Windows10媒体创建工具下载Windows 10企业版ISO,步骤如下:

1.在微软下载网站下载最新的Windows 10媒体创建工具。

2.打开命令提示符,然后转到保存媒体创建工具的文件夹,例如,如果将其下载到默认的“下载”文件夹中,请使用以下命令:

cd C:\Users\Username\Downloads

用当前登录的帐户名替换“Username”。

3.运行以下命令:

MediaCreationTool20H2.exe /Eula Accept /Retail /MediaArch x64 /MediaLangCode en-US /MediaEdition Enterprise

你可以将en-US代码更改为要下载的任何其他语言代码,例如简体中文是zh-cn。

4.如果要求输入产品密钥,请输入企业版安装密钥

NPPR9-FWDCX-D2C8J-H872K-2YT43。

5.在下一个屏幕上选择“为另一台电脑创建安装介质”选项,然后单击下一步。

6.在“选择要使用的介质”窗口上,选择“ISO文件”,然后单击“下一步”。

7.在下一个弹出对话框中,导航到保存ISO的位置,单击“保存”。

然后就会自动开始下载,同时,你可以继续使用计算机,因为它不是在更新电脑,而只是在下载文件。

二、20H2企业版与LTSC 2019企业版之间有何区别?

Windows 10企业版20H2

这个频道是为那些希望在稳定版本中尽快获得所有Windows最新功能的用户设计的。如果你安装了稳定的版本,则所有Windows功能更新只要通过Windows更新就可以安装。

Windows 10企业版LTSC 2019

与常规Windows 10企业版相邻,长期支持渠道(LTSC)意味着此版本的Windows将在更长的时间内获得微软的支持,直至达到其支持终止和生命周期终止。LTSC分支用于那些不需要定期更新的系统。它还适用于没有大量计算资源的老式电脑和服务器。由于LTSC默认情况下不包括许多通用应用程序,因此它减轻了资源消耗,并且功能较少。

如果想检查运行的是哪个版本和分支的Windows 10企业版,可以打开PowerShell并运行以下命令:

get-computerinfo | fl WindowsProductName, OsVersion

结束语

我们不建议普通家庭用户选择企业版,因为他们可能不需要那么多功能,并且需要额外付费。对于日常基本使用,我们建议使用Windows 10家庭版。与专业版相比,它确实缺少一些功能,但是我们已经为你制定了一些策略来安装一些重要的功能,例如BitLocker的替代产品、管理本地用户帐户、安装组策略编辑器、启用沙盒、启用Hyper-V、启用远程桌面和安装Dockers。

如果你认为可能需要这些功能中的大多数,请选择专业版。如果没有,并且你有一台旧电脑,则家庭版可能是你的最佳选择。

android media文件夹新位置

至android 9之后,开机铃音的文件夹位置已经由/system/media以至/product/media

mount -o remount,rw /product

 

然后将需要的铃音放在/product/media的相应目录下

解决adb无法连接手机的问题

在使用custom kernel情况下,使用adb 手机将不显示允许连接的对话框

 

解决方法:将主机上adbkey.pub(存储位置为~/.android/)复制到手机的/data/misc/adb/并改名为adb_keys

cd ~/.android/
adb push adbkey.pub /data/misc/adb/adb_keys

 

 

参考:https://stackoverflow.com/questions/26213954/how-to-solve-adb-device-unauthorized-in-android-adb-host-device

 

  • Get the public key from the client phone (adb host)

    cat /data/.android/adbkey.pub

  • copy the above public key to the target phone’s /data/misc/adb/adb_keys location. (you may need to stop the adb daemon first with stop adbd)

    cat /data/misc/adb/adb_keys

verify both cat outputs match.

try restarting adb daemon on target start adbd or just reboot them.

If you are having problems reading or writing to ADB KEYS in above steps, try setting environment variable ADB_KEYS_PATH with a temporary path (eg: /data/local/tmp). Refer to that link it goes into more details

    "On the host, the user public/private key pair is automatically generated,
    if it does not exist, when the adb daemon starts and is stored in
    $HOME/.android/adb_key(.pub) or in $ANDROID_SDK_HOME on windows. If needed,
    the ADB_KEYS_PATH env variable may be set to a :-separated (; under
    Windows) list of private keys, e.g. company-wide or vendor keys.

    On the device, vendors public keys are installed at build time in
    /adb_keys. User-installed keys are stored in /data/misc/adb/adb_keys"

解除网页复制限制

 

原文:

https://blog.csdn.net/legendaryhaha/article/details/80226747

https://blog.csdn.net/weixin_43970884/article/details/88384939

1.首先我们要知道,一个网站实现禁止复制粘贴的功能实现一般是采用js实现的。一般通过以下语句进行实现:

var bodyMain = document.getElementById(‘bodyMain’ );

     //实现禁止复制,将返回结果设置为FALSE
     bodyMain.oncopy = function(){
       return false;
    }
     //实现禁止粘贴,将返回结果设置为TRUE
     bodyMain.onpaste = function(){
       return false;
}

 

再知道怎样实现后,我们可以对证下药,比如禁用js。下面以谷歌浏览器为例子:
在谷歌浏览器中打开到自己想要复制内容的那一页,按f12打开开发者工具后,按f1 转到设置界面,
勾选如图所示选项:

哈哈哈,别关闭开发者页面,如果嫌麻烦把它缩小就好,此时在文章中发现,原来的文章可以复制了。

 

2.在你要复制文字的页面,按F12,选择“ Console” 输入:

document.body.innerText

fstab (简体中文)

原文:https://wiki.archlinux.org/index.php/Fstab_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)

 

fstab(5)文件可用于定义磁盘分区,各种其他块设备或远程文件系统应如何装入文件系统。

每个文件系统在一个单独的行中描述。这些定义将在引导时动态地转换为系统挂载单元,并在系统管理器的配置重新加载时转换。在启动需要挂载的服务之前,默认设置会自动fsck和挂载文件系统。例如,systemd会自动确保远程文件系统挂载(如NFSSamba)仅在网络设置完成后启动。因此,在/etc/fstab中指定的本地和远程文件系统挂载应该是开箱即用的。有关详细信息,请参阅 systemd.mount(5) 。

mount命令将使用fstab,如果仅给出其中一个目录或设备,则填充其他参数的值。 这样做时,也将使用fstab中列出的挂载选项。

文件示例

一个简单的 /etc/fstab,使用内核名称标识磁盘:

/etc/fstab
# <file system>        <dir>         <type>    <options>             <dump> <pass>
tmpfs                  /tmp          tmpfs     nodev,nosuid          0      0
/dev/sda1              /             ext4      defaults,noatime      0      1
/dev/sda2              none          swap      defaults              0      0
/dev/sda3              /home         ext4      defaults,noatime      0      2

字段定义

/etc/fstab 文件包含了如下字段,通过空格或 Tab 分隔:

<file system>	<dir>	<type>	<options>	<dump>	<pass>
  • <file systems> – 要挂载的分区或存储设备.
  • <dir> – <file systems>的挂载位置。
  • <type> – 要挂载设备或是分区的文件系统类型,支持许多种不同的文件系统:ext2ext3ext4reiserfsxfsjfssmbfsiso9660vfatntfsswap 及 auto。 设置成auto类型,mount 命令会猜测使用的文件系统类型,对 CDROM 和 DVD 等移动设备是非常有用的。
  • <options> – 挂载时使用的参数,注意有些 参数是特定文件系统才有的。一些比较常用的参数有 (mount(8)):
  • auto – 在启动时或键入了 mount -a 命令时自动挂载。
  • noauto – 只在你的命令下被挂载。
  • exec – 允许执行此分区的二进制文件。
  • noexec – 不允许执行此文件系统上的二进制文件。
  • ro – 以只读模式挂载文件系统。
  • rw – 以读写模式挂载文件系统。
  • user – 允许任意用户挂载此文件系统,若无显示定义,隐含启用 noexecnosuidnodev 参数。
  • users – 允许所有 users 组中的用户挂载文件系统.
  • nouser – 只能被 root 挂载。
  • owner – 允许设备所有者挂载.
  • sync – I/O 同步进行。
  • async – I/O 异步进行。
  • dev – 解析文件系统上的块特殊设备。
  • nodev – 不解析文件系统上的块特殊设备。
  • suid – 允许 suid 操作和设定 sgid 位。这一参数通常用于一些特殊任务,使一般用户运行程序时临时提升权限。
  • nosuid – 禁止 suid 操作和设定 sgid 位。
  • noatime – 不更新文件系统上 inode 访问记录,可以提升性能(参见 atime 参数)。
  • nodiratime – 不更新文件系统上的目录 inode 访问记录,可以提升性能(参见 atime 参数)。
  • relatime – 实时更新 inode access 记录。只有在记录中的访问时间早于当前访问才会被更新。(与 noatime 相似,但不会打断如 mutt 或其它程序探测文件在上次访问后是否被修改的进程。),可以提升性能(参见 atime 参数)。
  • flush – vfat 的选项,更频繁的刷新数据,复制对话框或进度条在全部数据都写入后才消失。
  • defaults – 使用文件系统的默认挂载参数,例如 ext4 的默认参数为:rwsuiddevexecautonouserasync.
  • <dump> dump 工具通过它决定何时作备份. dump 会检查其内容,并用数字来决定是否对这个文件系统进行备份。 允许的数字是 0 和 1 。0 表示忽略, 1 则进行备份。大部分的用户是没有安装 dump 的 ,对他们而言 <dump> 应设为 0。
  • <pass> fsck 读取 <pass> 的数值来决定需要检查的文件系统的检查顺序。允许的数字是0, 1, 和2。 根目录应当获得最高的优先权 1, 其它所有需要被检查的设备设置为 2. 0 表示设备不会被 fsck 所检查。

文件系统标识

在 /etc/fstab配置文件中你可以以三种不同的方法表示文件系统:内核名称、UUID 或者 label。使用 UUID 或是 label 的好处在于它们与磁盘顺序无关。如果你在 BIOS 中改变了你的存储设备顺序,或是重新拔插了存储设备,或是因为一些 BIOS 可能会随机地改变存储设备的顺序,那么用 UUID 或是 label 来表示将更有效。参见 持久化块设备名称 。

要显示分区的基本信息请运行:

$ lsblk -f
NAME   FSTYPE LABEL      UUID                                 MOUNTPOINT
sda                                                         
├─sda1 ext4   Arch_Linux 978e3e81-8048-4ae1-8a06-aa727458e8ff /
├─sda2 ntfs   Windows    6C1093E61093B594                     
└─sda3 ext4   Storage    f838b24e-3a66-4d02-86f4-a2e73e454336 /media/Storage
sdb                                                           
├─sdb1 ntfs   Games      9E68F00568EFD9D3                     
└─sdb2 ext4   Backup     14d50a6c-e083-42f2-b9c4-bc8bae38d274 /media/Backup
sdc                                                           
└─sdc1 vfat   Camera     47FA-4071                            /media/Camera

内核名称

你可以使用 fdisk -l 来获得内核名称,前缀是 dev.

标签

注意: 使用这一方法,每一个标签必须是唯一的.

添加标签的工具和方法位于 这里。要显示所有设备的标签,可以使用 lsblk -f 命令。在 /etc/fstab 中使用 LABEL= 作为设备名的开头 :

/etc/fstab
# <file system>        <dir>         <type>    <options>             <dump> <pass>

tmpfs                  /tmp          tmpfs     nodev,nosuid   0      0
 
LABEL=Arch_Linux       /             ext4      defaults,noatime      0      1
LABEL=Arch_Swap        none          swap      defaults              0      0

UUID

所有分区和设备都有唯一的 UUID。它们由文件系统生成工具 (mkfs.*) 在创建文件系统时生成。

lsblk -f 命令将显示所有设备的 UUID 值。/etc/fstab 中使用 UUID= 前缀:

/etc/fstab
# <file system>                           <dir>         <type>    <options>             <dump> <pass>

tmpfs                                     /tmp          tmpfs     nodev,nosuid          0      0
 
UUID=24f28fc6-717e-4bcd-a5f7-32b959024e26 /     ext4              defaults,noatime      0      1
UUID=03ec5dd3-45c0-4f95-a363-61ff321a09ff /home ext4              defaults,noatime      0      2
UUID=4209c845-f495-4c43-8a03-5363dd433153 none  swap              defaults              0      0

提示和技巧

自动挂载

  • 如果 /home 分区较大,可以让不依赖 /home 分区的服务先启动。把下面的参数添加到 /etc/fstab 文件中 /home 项目的参数部分即可:
noauto,x-systemd.automount

这样 /home 分区只有需要访问时才会被挂载。内核会缓存所有的文件操作,直到 /home 分区准备完成。

注意: 这样做会使 /home 的文件系统类型被识别为 autofs,造成 mlocate 查询时忽略该目录。实际加速效果因配置而异,所以请自己权衡是否需要。
  • 挂载远程文件系统也是同理。如果你仅想在需要的时候才挂载,也可以添加 noauto,x-systemd.automount 参数。另外,可以设置 x-systemd.device-timeout=# 参数,设置超时时间,以防止网络资源不能访问的时候浪费时间。
  • 如果你的加密文件系统需要密钥,则需要添加 noauto 参数到 /etc/crypttab 文件中的对应位置。systemd 开机的时候就不会打开这个加密设备,会一直等待到设备被访问时再使用密钥文件挂载。比如在使用加密RAID设备的时候可以节省一定的时间,因为 systemd 不必等到设备可用后才能访问。例如:
/etc/crypttab
data /dev/md0 /root/key noauto

交换分区 UUID

如果交换分区没有 UUID,可以手动加入。如果使用 lsblk -f 命令没有列出交换分区的 UUID 就说明发生了这种情况。下面是为交换分区指定 UUID 的步骤:

确定交换分区:

# swapon -s

禁用交换分区:

# swapoff /dev/sda7

用新 UUID 重新创建交换分区:

# mkswap -U random /dev/sda7

激活交换分区:

# swapon /dev/sda7

路径名有空格

如果挂载的路径中有空格,可以使用 “\040” 转义字符来表示空格(以三位八进制数来进行表示)

/etc/fstab
UUID=47FA-4071     /home/username/Camera\040Pictures   vfat  defaults,noatime      0  2
/dev/sda7          /media/100\040GB\040(Storage)       ext4  defaults,noatime,user  0  0

外部设备

外部设备在插入时挂载,在未插入时忽略。这需要 nofail 选项,可以在启动时若设备不存在直接忽略它而不报错.

/etc/fstab
 /dev/sdg1    /media/backup    jfs    defaults,nofail    0  2

atime 参数

使用 noatimenodiratime 或 relatime 可以提升 ext2, ext3 及 ext4 格式磁盘的性能。 Linux 在默认情况下使用atime选项,每次在磁盘上读取(或写入)数据时都会产生一个记录。这是为服务器设计的,在桌面使用中意义不大。默认的 atime 选项最大的问题在于即使从页面缓存读取文件(从内存而不是磁盘读取),也会产生磁盘写操作!

使用 noatime 选项阻止了读文件时的写操作。大部分应用程序都能很好工作。只有少数程序如 Mutt 需要这些信息。Mutt 的用户应该使用 relatime 选项。使用 relatime 选项后,只有文件被修改时才会产生文件访问时间写操作。nodiratime 选项仅对目录禁用了文件访问时间。relatime 是比较好的折衷,Mutt 等程序还能工作,但是仍然能够通过减少访问时间更新提升系统性能。

注意: noatime 已经包含了 nodiratime。不需要同时指定。

tmpfs

tmpfs 是一个临时文件系统,驻留于你的交换分区或是内存中(取决于你的使用情况)。使用它可以提高文件访问速度,并能保证重启时会自动清除这些文件。

经常使用 tmpfs 的目录有 /tmp/var/lock and /var/run. 不要将之使用于 /var/tmp, 因为这一目录中的临时文件在重启过程中需要被保留。使用 tmpfs /run 目录,/var/run 和 /var/lock 是为了兼容老版本建立的链接。默认 /etc/fstab中的的/tmp也是 tmpfs.

默认情况下, tmpfs 分区被设置为你总的内存的一半,当然你可以自由设定这一值。注意实际中内存和交换分区的使用情况取决于你的使用情况,而 tmpfs 分区在其真正使用前是不会占用存储空间的。

要将 /tmp 放到 tmpfs,将下行加入 /etc/fstab

/etc/fstab
.....
tmpfs /tmp      tmpfs nodev,nosuid                 0 0
.....

可以指定大小,但不要修改 mode 选项,以保证文件具有正确的访问权限(1777)。在上例中 /tmp 将最多使用一半内存,要指定最大空间,使用 size 挂载选项:

/etc/fstab
.....
tmpfs /tmp      tmpfs nodev,nosuid,size=2G          0 0
.....

这里有一个更高级的例子,展示如何为用户添加 tmpfs 挂载。这对于网站、mysql 临时文件, ~/.vim/, 和其他情况很有用。尝试并获得理想的挂载选项来完成目标是很重要的。目标是尽量采用安全的策略来防止滥用。限制大小,同时指定 uid 和 gid 加上 mode 是非常安全的。更多信息[断开的链接:无效的部分].

/etc/fstab
tmpfs /www/cache tmpfs rw,size=1G,nr_inodes=5k,noexec,nodev,nosuid,uid=648,gid=648,mode=1700 0 0

参阅 mount 命令 man 手册以获得更多的内容。

重启后方能生效。注意不要直接执行 mount -a 命令,因为可能造成无法访问当前目录中的文件(比如你应该保证 lockfiles 的正常存在)。然而,如果它们都是空的,那么就可以直接执行 mount -a 而不必重启电脑。

应用更改后,可以通过 findmnt 检查是否生效:

$ findmnt --target /tmp
TARGET SOURCE FSTYPE OPTIONS
/tmp   tmpfs  tmpfs  rw,nosuid,nodev,relatime

使用

一般需要大量读写操作的程序在使用 tmpfs 时都会提升性能。有些程序把共享内存放到 tmpfs 上时性能会大幅提升,例如将 Firefox Profile 文件夹放到内存后,Firefox 性能大幅提升。

Note: tmpfs 目录(/tmp) 挂载时需要去掉 noexec 参数,否则有些编译程序无法执行,此外,tmpfs 的默认大小是内存的一半,可能会产生空间不够的问题。

下面命令可以让makepkg在tmpfs目录进行编辑,也可以在在/etc/makepkg.conf中进行设置:

$ BUILDDIR=/tmp/makepkg makepkg

普通用户读写 FAT32

为了取得对 FAT32 分区的写权限,你必须修改/etc/fstab文件。

/etc/fstab
/dev/sdxY    /mnt/some_folder  vfat   user,rw,umask=000              0  0

“users”标签的意思是任何用户(甚至非 root 用户)都可以挂载或卸载分区 ‘/dev/sdX’。“rw”标签则分配读写的使用权。但我不知道“umask”标签的意义(umask 是权限掩码命令 umask=000 指任何人没有特权,且权限为777,即所有人都可以读、写、执行)。我曾试图在“man mount”中查询,但是没有什么结果。

比如你的 FAT32 分区在 ‘/dev/sda9’,你想将其挂载到 ‘/mnt/fat32’,那么你需要输入并运行

/etc/fstab
/dev/sda9    /mnt/fat32        vfat   user,rw,umask=111,dmask=000    0  0

Ubuntu HDMI输出声音

Ubuntu无法通过HDMI输出声音且设置中输出设备无HDMI的解决办法

https://blog.csdn.net/ZehShin/article/details/105859388

30/10/2020 Update

It seems like the problem is fixed in Ubuntu 20.04. If there still exits the problem, this method works anyway.

问题背景

Ubuntu系统经常出现没有声音的情况,大部分问题都可以在目前的中文网络上找到相对应的文章并进行解决。其中HDMI无法输出声音的问题,通常都可以通过:在“Settings-Sounds”切换输出设备、安装pavucontrol切换配置文件、运行alsamixer取消mute,这几个方法进行解决。

但是,笔者17年购入了目前所使用的Thinkpad P51(i7+M1200,联想官方声称该机型通过了ubuntu认证)并安装了Ubuntu 16.04,就遇到了通过HDMI接口外接显示器(或电视)后,无法通过显示器(或电视)端的声音设备输出声音的问题,且在尝试上述的三种解决方法时都无法找到切换为HDMI的选项,HDMI的声音输出选项仿佛在电脑中消失了。系统更新为18.04后该问题依然存在。

该问题长期悬而未决,终于近日(3年后的昨天)让笔者在Nvidia的开发者社区和freedesktop上找到了解决方法,记录在此供将来重装系统参考。

问题描述

事实上,这个问题14年就在freedesktop上被报告🔗,报告者用的是一台Dell XPS 15(GT 540M显卡),在Windows下正常使用,在Ubuntu下无法识别HDMI声音设备。1

17年9月再次出现在Nvidia的开发者社区🔗,这次报告者用的一块GTX1080显卡。同样是无法通过HDMI输出声音。2

可以通过下列三种方式来共同查看该问题的特征。

查看声卡

命令:

aplay -l

 

输出:

**** List of PLAYBACK Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: ALC298 Analog [ALC298 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 7: HDMI 1 [HDMI 1]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 8: HDMI 2 [HDMI 2]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 9: HDMI 3 [HDMI 3]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 10: HDMI 4 [HDMI 4]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

 

只有PCH [HDA Intel PCH]一种,找不到NVidia相关信息。

查看音频相关的pci设备

命令:

lspci | grep -i audio

 

输出:

00:1f.3 Audio device: Intel Corporation CM238 HD Audio Controller (rev 31)

 

同样找不到NVIDIA相关信息。

直接硬件访问再次查看音频相关的pci设备

命令:

sudo lspci -H1| grep -i audio

 

输出:

00:1f.3 Audio device: Intel Corporation CM238 HD Audio Controller (rev 31)
01:00.1 Audio device: NVIDIA Corporation Device 0fbc (rev a1)

 

这次有了NVIDIA相关信息了,说明并没有硬件问题。

解决方法

经笔者个人测试,方法一、二欠佳,可只看方法三。

方法一:重新扫描声卡

在freedesktop的帖子🔗中,报告者自己尝试了去解决这个问题。经过他的检查,发现重新扫描后可以检测到声卡。1

  • Start the system, and stop the display manager (lightdm/gdm)
  • Load the nouveau module
  • Remove the Nvidia card from the PCI bus (echo 1 > /sys/bus/pci/devices/0000:01:00.0/remove)
  • Rescan the PCI bus (echo “1” > /sys/bus/pci/rescan)

这个方法比较繁琐,不适合笔者这样的小白,而且并不能一劳永逸。

方法二:编写重扫脚本

Nvidia的开发者社区中帖子的2楼🔗提供了一个重扫脚本2

setpci -s 01:00.0 0x488.l=0x2000000:0x2000000
rmmod nvidia-drm nvidia-modeset nvidia
echo 1 > /sys/bus/pci/devices/0000:01:00.0/remove
echo 1 > /sys/bus/pci/devices/0000:00:01.0/rescan
modprobe nvidia-drm
xinit -- -retro

 

略简单,但仍然不够自动化,且电脑每次开机或从睡眠、待机中恢复时仍需要重新运行。

方法三:安装控制模块

在freedesktop的帖子的36楼🔗,一位叫Maik Freudenberg的大神将参考了这个解决思路写成了一个模块,并发布在了GitHub上,项目名为nvhda🔗。这个模块以C编写,使用方法在README.md中写的很明确了。3

笔者使用的是Ubuntu 18.04,使用过程如下。

安装模块

命令:

git clone git://github.com/hhfeuer/nvhda.git
cd nvhda
make
sudo make install

 

加载模块

命令:

sudo modprobe nvhda

 

打开HDMI声卡

命令:

sudo tee /proc/acpi/nvhda <<<ON

 

这时,如果再运行此前的aplay -llspci | grep -i audio应该都可以看到NVIDIA的相关信息了。在Settings-Sounds中也可以看到以HDMI为声音输出的选项了。

配置模块自动加载及声卡自动开启

此时声音已经可以通过HDMI设备输出,但每次重启后或从睡眠、待机中恢复,都需要重新加载模块、打开声卡。如想开机自启动或从睡眠、待机中恢复时仍然保持的话,仍需一些其他步骤:

自动加载模块

将模块名称nvhda贴入/etc/modules文件即可。
命令:

sudo gedit /etc/modules

 

贴入内容:

nvhda

 

自动开启声卡

大神已经也已在scripts中提供了自动开启的相关脚本,只需要将相关脚本复制进/etc/systemd/system并设置其启动就可以了。

命令:

sudo cp /scripts/nvhda-start.service /etc/systemd/system
sudo systemctl enable nvhda-start
sudo cp /scripts/nvhda-resume.service /etc/systemd/system
sudo systemctl enable nvhda-resume

 

查看声卡状态

命令:

cat /proc/acpi/nvhda

 

ON为开启,OFF为关闭

关闭HDMI声卡

如果需要关闭HDMI声卡,则命令为:

sudo tee /proc/acpi/nvhda <<<OFF
  • 1

问题原因

Nvidia的开发者社区中帖子的2楼🔗提到,这是因为一些笔记本在启动时禁用了 GPU的PCI音频设备。2

For some reason, a lot of recent laptops are set up to boot with the GPU’s PCI audio function disabled. I haven’t done much investigation, but you can turn on the audio function and make the kernel see it by setting the appropriate PCI configuration bit and then telling the kernel to rescan the PCI bus on the PCI bridge the GPU is connected to.
Unfortunately, the kernel won’t see the audio function unless you remove the graphics function first, which temporarily breaks the console. Because of that, it works best if you write a script to do it so you don’t have to SSH into the system or try to type the commands into the console blind. Obviously, you have to stop the X server first so that you can unload the NVIDIA drivers.

 

通过两个或多个输出/设备播放声音

https://qastack.cn/ubuntu/78174/play-sound-through-two-or-more-outputs-devices

有了paprefs你有机会获得一个虚拟的输出设备,使同时输出到所有连接声卡/设备:

sudo apt install paprefs 

然后在终端运行中paprefs,选择“同步输出”选项卡,然后选中“添加虚拟输出以在所有本地声卡上同时输出”。

纸浆

可以从Pulseaudio声音首选项菜单的“输出”选项卡中选择另外创建的用于同时输出的音频输出设备:

在此处输入图片说明

在此示例中,它显示为HDMI设备,但是一旦您的蓝牙设备被识别,它也将可用于同时输出。

更改可能需要重新启动Pulseaudio才能通过注销并重新登录到会话或pulseaudio -k在终端中运行来生效。

 

在Kubuntu 18.04中,paprefs不需要Plasma 5.12 ,因为已经存在类似的设置:

在此处输入图片说明

重新启动后,应该会提供一个新的输出选项,称为“同步输出”。

在此处输入图片说明

或在pavucontrol

在此处输入图片说明


在等离子5.13.5的18.10中,“同步输出”选项已被删除,因此aprefs是必需的。

 

为了补充Takkat的出色回答,我发现为新设备提供的默认名称过长,并且扭曲了“声音设置”对话框。为了简化该名称,我不得不另外执行以下命令:

gconftool --set --type string /system/pulseaudio/modules/combine/args0 sink_properties=device.description=Combined

组合设备的声音设置

 

由于需要用HDMI外接音频设备,故想要改变电脑输出,本人用的为Ubuntu14.04,开始在网上搜寻怎么更改,查到需在声音设置里面更改音频输出为HDMI,可当我打开声音设置,嗯?怎么我的这么简单,我以为是我安装的问题,又看了其他同学的电脑包括Ubuntu16.04的,也是这个样子,没有什么HDMI输出的选项(有知道为什么的求告知),于是放弃了,然后找到了另外一个特别简单实用的方法。

 

Ubuntu 安装 Sound Switcher Indicator

https://blog.csdn.net/qq_30460905/article/details/79031699?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.add_param_isCf&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.add_param_isCf

通过命令行安装Sound Switcher Indicator,这 是一款选择 Ubuntu 声音输入/输出的面板应用小程序。可以实现耳机、扬声器和 HDMI 音效输出之间切换,无需进入系统设置>声音来改变多种音效装置之间切换。打开终端输入下面几行命令即可,安装完重启电脑,就会在界面右上角发现一个天线的标志,那就OK了!

 

sudo apt-add-repository ppa:yktooo/ppa
sudo apt-get update
sudo apt-get install indicator-sound-switcher

界面如下,可随时切换 

Chrome下如何复制禁止复制网页上的文字

原文:https://blog.csdn.net/facecrazy/article/details/46791443

上网或工作的时候,看到一些文章大家可能想复制或是收藏起来,但是当你要复制的时候却发现,根本复制不了,被网站做复制限制了,右键也给禁了。这可怎么办呢?正所谓,万物皆可破,在这里给大家介绍一个简单的方法,因为本人用的是Chrome浏览器,所以在此介绍下Chrome下如何复制的方法。

1,在你要复制文字的页面,按F12,选择“ Console” 输入:

document.body.innerText

然后按回车

2,红色矩形框中的文字就是你所获得的文字了。然后你就可以任意复制你需要的文字了。

关于代码:document.body.innerText   //获取并输出body>…/body>之间的文本

使用 CloudFlare Worker 部署jsproxy实现在线代理

https://github.com/yangmyc/jsproxy/tree/master/cf-worker

 

使用 CloudFlare Worker 免费部署

简介

CloudFlare Worker 是 CloudFlare 的边缘计算服务。开发者可通过 JavaScript 对 CDN 进行编程,从而能灵活处理 HTTP 请求。这使得很多任务可在 CDN 上完成,无需自己的服务器参与。

部署

首页:https://workers.cloudflare.com

注册,登陆,Start building,取一个子域名,Create a Worker

复制 index.js 到左侧代码框,Save and deploy。如果正常,右侧应显示首页。

收藏地址框中的 https://xxxx.子域名.workers.dev,以后可直接访问。

计费

后退到 overview 页面可参看使用情况。免费版每天有 10 万次免费请求,对于个人通常足够。

如果不够用,可注册多个 Worker,在 conf.js 中配置多线路负载均衡。或者升级到 $5 的高级版本,每月可用 1000 万次请求(超出部分 $0.5/百万次请求)。

添加Router

选定一个子域名,将创建的项目覆盖的子域名上,需要全域覆盖

若子域名为x.yy.com

则需要在Router中设定覆盖范围为

x.yy.com/*

否则会报错

 

BypassESU v7 AIO

原文:https://forums.mydigitallife.net/threads/bypass-windows-7-extended-security-updates-eligibility.80606/

 

BypassESU v7 AIO

* A project to install Extended Security Updates for Windows 7 and Server 2008 R2

* It consist of three parts:

– patch WU engine to allow receiving ESU updates

– suppress ESU eligibility check for OS updates (including .NET 3.5.1)

– bypass ESU validation for .NET 4 updates (4.5.2 up to 4.8) // See Notice below

## Important Notes:

* Make sure that “Windows Management Instrumentation (winmgmt)” service is not disabled

* For Live OS installation, it is recommended to install KB4538483 after WU ESU Patcher, or else a restart will be required

* After using WU patcher, if you still not offered ESU updates, try to:

> restart, then check WU

> stop wuauserv service, delete the folder “C:\Windows\SoftwareDistribution”, restart, then check WU

* You can also acquire and download the updates manually from Microsoft Update Catalog
https://www.catalog.update.microsoft.com

to track the updates KB numbers, either check the official Update History page
https://support.microsoft.com/en-us/help/4009469

or follow this MDL thread
https://forums.mydigitallife.net/threads/19461/

* ESU updates for each month will require (at least) the latest extended SSU from previous month(s)

e.g.
April 2020 updates require March SSU at least
May 2020 updates require April SSU at least
June 2020 updates require May SSU at least
July 2020 updates will require May SSU or June SSU (if any)
and so on…

* Unless you integrate the ESU Suppressor, ESU updates are not supported offline (you cannot integrate them), they must be installed online on live system.

* Extract the 7z pack contents to a folder with simple path, example C:\files\BypassESU

* Temporarily turn off Antivirus protection (if any), or exclude the extracted folder

## Prerequisite Updates

the following updates must be installed and ready before using BypassESU:

– KB4490628: Servicing Stack Update, March 2019

Code:
x86
http://download.windowsupdate.com/c/msdownload/update/software/secu/2019/03/windows6.1-kb4490628-x86_3cdb3df55b9cd7ef7fcb24fc4e237ea287ad0992.msu
x64
http://download.windowsupdate.com/c/msdownload/update/software/secu/2019/03/windows6.1-kb4490628-x64_d3de52d6987f7c8bdc2c015dca69eac96047c76e.msu

– KB4474419: SHA-2 code signing support update, September 2019

Code:
x86
http://download.windowsupdate.com/c/msdownload/update/software/secu/2019/09/windows6.1-kb4474419-v3-x86_0f687d50402790f340087c576886501b3223bec6.msu
x64
http://download.windowsupdate.com/c/msdownload/update/software/secu/2019/09/windows6.1-kb4474419-v3-x64_b5614c6cea5cb4e198717789633dca16308ef79c.msu

– Latest Extended Servicing Stack Update, KB4555449 (May 2020) or later

Code:
x86
http://download.windowsupdate.com/c/msdownload/update/software/secu/2020/04/windows6.1-kb4555449-x86_36683b4af68408ed268246ee3e89772665572471.msu
x64
http://download.windowsupdate.com/c/msdownload/update/software/secu/2020/04/windows6.1-kb4555449-x64_92202202c3dee2f713f67adf6622851b998c6780.msu

– KB4538483: ESU Licensing Preparation Package (only required to get updates via WU)

Code:
x86
http://download.windowsupdate.com/d/msdownload/update/software/secu/2020/05/windows6.1-kb4538483-x86_f77ee698928fb42232b70b01f53a4c5f68553323.msu
x64
http://download.windowsupdate.com/d/msdownload/update/software/secu/2020/05/windows6.1-kb4538483-x64_3e861ae5fe3f6b3c9d185decbd96a436ca0c5035.msu

– Updated Windows Update Client, at least KB3138612

Code:
x86
http://download.windowsupdate.com/d/msdownload/update/software/updt/2016/02/windows6.1-kb3138612-x86_6e90531daffc13bc4e92ecea890e501e807c621f.msu
x64
http://download.windowsupdate.com/d/msdownload/update/software/updt/2016/02/windows6.1-kb3138612-x64_f7b1de8ea7cf8faf57b0138c4068d2e899e2b266.msu

if you installed any Monthly Quality Rollup, or July 2016 update rollup KB3172605, both already have updated WUC

if you installed January 2020 Security Only update KB4534314, or the fix update KB4539602, both already have updated WUC

How to Use – Live OS Installation

*Make sure to install the prerequisite updates (reboot if required)

* right-click on LiveOS-Setup.cmd and “Run as administrator”

* from the menu, press the corresponding number for the desired option:

[1] Full Installation {ESU Suppressor + WU ESU Patcher + .NET 4 ESU Bypass}
most recommended option

[2] Install ESU Suppressor
mainly for security-only updates users, whom don’t need the Monthly Rollup through WU

[3] Install WU ESU Patcher
this only allow to offer ESU updates via WU

[7] Install .NET 4 ESU Bypass
this allow to install NDP4 ESU updates (manually or via WU)

* Remarks

– LiveOS-Setup.cmd will remove BypassESU-v4 if detected, and override KB4528069-Lite if present

– You get option [1] only if all Suppressor/Patcher/.NET Bypass are not installed

– ESU Suppressor cannot be uninstalled after installing ESU updates, and option [5] is not shown in that case

– Warning: unless you have another bypass installed, ESU updates installation will fail if you used option [3] alone

How to Use – Offline Image/Wim Integration

* Wim-Integration.cmd support two target types to integrate BypassESU:

Code:
[1] Direct WIM file (not mounted), either install.wim or boot.wim

[2] Already Mounted image directory, or offline image deployed on another partition/drive/vhd

** Direct WIM file integration **

– place install.wim or boot.wim (one of them, not both) next to Wim-Integration.cmd, then run the script as administrator

– alternatively, run the script as administrator, and when prompted, enter the full path for the wim file

– choose the desired option from the menu (similar to live setup)

– Notes about this method:

it will integrate KB4528069-Lite, and it does not need the prerequisite updates

it will also integrate the Suppressor for winre.wim, if it exists inside install.wim

it does not provide options to remove the Suppressor/Patcher/.NET Bypass, for that, mount the wim image then use second method

==

** Mounted directory / offline image integration **

– manually mount the image of install.wim or boot.wim
no need for this step if the image is already deployed on another partition/drive/vhd, example Z:\

– Make sure to integrate the prerequisite updates

– right-click on Wim-Integration.cmd and “Run as administrator”

– enter the correct path for mounted directory or offline image drive letter

– choose the desired option from the menu (similar to live setup)

– afterwards, continue to integrate other updates, including ESU updates

– manually unmount install.wim/boot.wim image and commit changes

## Download

Credits

– IMI Kurwica
– mspaintmsi (superUser)
– @Enthousiast (testing)

– Notice: Regarding .NET 4 ESU Bypass

it has incompatibility issue and may cause msiexec.exe or other Windows Installer (MSI) programs to stop working
therefore, it’s recommended to install it only when new .NET 4 updates are available, then remove it after installing the updates

if it fails to install .NET 4 updates, temporary disable Antivirus protection, or try the revised separate bypass

– Tutorial: Using BypassESU AIO + ESU Updates Overview
https://forums.mydigitallife.net/posts/1578167/

– Troubleshoot Q&A:
https://forums.mydigitallife.net/posts/1583751/

– Note for KabeLake/Ryzen CPUs with wufuc patcher:
https://forums.mydigitallife.net/posts/1583875/

– dotNetFx4 ESU Bypass to install .NET 4.x ESU updates
https://forums.mydigitallife.net/posts/1596946/

– KUC W7 UpdateChecker now support ESU
https://forums.mydigitallife.net/posts/1583368/

– W7ESUI: Standalone Installer for ESU updates without bypass
https://forums.mydigitallife.net/posts/1584892/