mirror of
https://github.com/LCTT/TranslateProject.git
synced 2025-03-21 02:10:11 +08:00
Merge remote-tracking branch 'LCTT/master'
This commit is contained in:
commit
ce04e7bd3f
@ -0,0 +1,120 @@
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: (wxy)
|
||||
[#]: reviewer: (wxy)
|
||||
[#]: publisher: (wxy)
|
||||
[#]: url: (https://linux.cn/article-12297-1.html)
|
||||
[#]: subject: (Linux Mint 20: Release Date, Features and Everything Important Associated With it)
|
||||
[#]: via: (https://itsfoss.com/linux-mint-20/)
|
||||
[#]: author: (Abhishek Prakash https://itsfoss.com/author/abhishek/)
|
||||
|
||||
Linux Mint 20 发布前一窥
|
||||
======
|
||||
|
||||
[Ubuntu 20.04 LTS 版本发布了][1]。这对 Linux Mint 用户来说也是一个好消息。一个新的 Ubuntu LTS 版本意味着新的 Linux Mint 主要版本也将很快随之出现。
|
||||
|
||||
为什么这么说呢?因为 Linux Mint 是基于 Ubuntu 的长期支持(LTS)版本的。Mint 18 系列是基于 Ubuntu 16.04 LTS,Mint 19 是基于 Ubuntu 18.04 LTS 等等。
|
||||
|
||||
与 Ubuntu 不同,Linux Mint 没有固定的发布时间表。根据以往的趋势,我可以做出一个明智的猜测,[Linux Mint][2] 20 应该会在今年 6 月发布。
|
||||
|
||||
### Linux Mint 20 “Ulyana” 即将推出的新功能
|
||||
|
||||
![][3]
|
||||
|
||||
让我们来看看代号为 Ulyana 的 Linux Mint 20 中提出的一些主要新功能和变化。
|
||||
|
||||
#### 1. 提高 Nemo 文件管理器的性能
|
||||
|
||||
Nemo 文件管理器计划中的性能改进之一是它处理缩略图的方式。你可能还没有意识到,但缩略图的生成需要相当多的系统资源(以及磁盘空间)。试着打开一个有几千张图片的文件夹,你会发现 CPU 的消耗会上升。
|
||||
|
||||
在 Linux Mint 20 中,其目标是优先考虑内容和导航,并尽可能地延迟缩略图的渲染。这意味着在缩略图渲染之前,文件夹的内容会以通用图标显示出来。这不会让人觉得赏心悦目,但你会注意到性能的改善。
|
||||
|
||||
#### 2. 两种焕然一新的颜色变体
|
||||
|
||||
默认情况下,Linux Mint 是绿色/薄荷色的风格。还有一些其它的颜色点缀。Linux Mint 20 新添加了两种可爱的的粉红色和青蓝色。
|
||||
|
||||
以及新的青蓝色风格:
|
||||
|
||||
![Linux Mint Aqua][4]
|
||||
|
||||
这里是新的粉红色风格:
|
||||
|
||||
![Linux Mint Pink][5]
|
||||
|
||||
#### 3. 没有过度偏重于 Snap 包
|
||||
|
||||
Ubuntu 20.04 将 snap 包的优先级放在了通常的 apt 包之前。事实上,如果你在 Ubuntu 20.04 中使用 `apt` 命令安装 Chromium 浏览器时,它会自动安装 snap 版本。
|
||||
|
||||
Linux Mint 团队显然对此不满意,他们确认 Mint 20 将不会安装 snaps 或 snapd。它还将禁止 `apt` 使用 snapd。
|
||||
|
||||
你仍然可以自己手动安装 snap 包。只是不会由 `apt` 来安装它们。
|
||||
|
||||
#### 4. 有了这个新工具,跨网络共享文件变得很简单。
|
||||
|
||||
Linux Mint 20 将提供一个[新的 GUI 工具][6],可以轻松地在本地网络上共享文件,而无需任何额外的配置。
|
||||
|
||||
![New tool for sharing files across the network][7]
|
||||
|
||||
#### 5. 更好地整合了 Electron 应用程序的桌面
|
||||
|
||||
[Electron][8] 是一个开源框架,它允许使用 Web 技术构建跨平台的桌面应用程序。有些人称它为懒惰的方法,因为应用程序运行在 Chromium 浏览器之上。然而,这可以让开发人员轻松地将他们的应用程序提供给 Linux(和 macOS)。[Linux 上的 Slack][9] 就是众多这样的例子之一。
|
||||
|
||||
Linux Mint 20 将对 Electron 应用提供更好的支持,并改进系统托盘和桌面通知的集成。
|
||||
|
||||
#### 6. 改进的支持多显示器的比例缩放功能
|
||||
|
||||
![improved multi-monitor support][10]
|
||||
|
||||
一个提议的改变是在 Linux Mint 20 中加入支持多显示器的比例缩放功能。如果你有一个 HiDPI 和非 HiDPI 显示器的组合,你可以为它们每一个选择不同的分辨率、刷新率和不同的分数缩放。
|
||||
|
||||
在 Mint 20 的登录屏幕,可以让你跨多个显示器拉伸显示背景。
|
||||
|
||||
#### 7. 改进对 Nvidia Optimus 的支持
|
||||
|
||||
在 Mint 20 中,Nvidia prime 小程序会显示 GPU 渲染器。你也可以直接从系统托盘中的菜单中选择切换到哪块卡。
|
||||
|
||||
![Switch between GPUs][12]
|
||||
|
||||
你也可以使用 Nvidia “On-Demand” 模式。在这种模式下,将使用英特尔卡来渲染会话。而如视频播放器或视频编辑器这样的兼容应用程序可以在应用程序菜单中打开时使用 Nvidia GPU。
|
||||
|
||||
![Run an application with NVIDIA GPU][13]
|
||||
|
||||
#### 8. 不再支持 32 位
|
||||
|
||||
虽然 Ubuntu 18.04 在两年前就放弃了 32 位 ISO,但 Linux Mint 19 系列一直提供 32 位 ISO 的下载和安装。
|
||||
|
||||
这种情况在 Linux Mint 20 中有所改变。Linux Mint 20 已经没有 32 位版本了。这是因为 32 位支持从 Ubuntu 20.04 中完全消失了。
|
||||
|
||||
#### 还有什么?
|
||||
|
||||
Cinnamon 4.6 桌面版的发布带来了很多视觉上的变化。
|
||||
|
||||
在 Ubuntu 20.04 中,应该会有一些“引擎盖下”的变化,比如 Linux Kernel 5.4,取消了 Python 2 的支持,加入 [Wireguard VPN][11] 等。
|
||||
|
||||
随着开发的进展,我会在本文中更新更多的功能。敬请期待。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://itsfoss.com/linux-mint-20/
|
||||
|
||||
作者:[Abhishek Prakash][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[wxy](https://github.com/wxy)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://itsfoss.com/author/abhishek/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://itsfoss.com/ubuntu-20-04-release-features/
|
||||
[2]: https://www.linuxmint.com/
|
||||
[3]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2020/04/Linux-Mint-20.png?ssl=1
|
||||
[4]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2020/04/mint-20-aqua.jpg?ssl=1
|
||||
[5]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2020/04/mint-20-pink-1.jpg?ssl=1
|
||||
[6]: https://blog.linuxmint.com/?p=3863
|
||||
[7]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2020/04/mint-20-warpinator-1.png?ssl=1
|
||||
[8]: https://www.electronjs.org/
|
||||
[9]: https://itsfoss.com/slack-use-linux/
|
||||
[10]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2020/04/monitor_display_Linux_mint_20.png?ssl=1
|
||||
[11]: https://itsfoss.com/wireguard/
|
||||
[12]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2020/06/nvidia-prime-applet-linux-mint-20.png?w=386&ssl=1
|
||||
[13]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2020/06/nvidia-on-deman-feature-linux-mint-20.png?w=526&ssl=1
|
@ -1,5 +1,5 @@
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: ( )
|
||||
[#]: translator: (geekpi)
|
||||
[#]: reviewer: ( )
|
||||
[#]: publisher: ( )
|
||||
[#]: url: ( )
|
||||
|
@ -1,100 +0,0 @@
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: ( )
|
||||
[#]: reviewer: ( )
|
||||
[#]: publisher: ( )
|
||||
[#]: url: ( )
|
||||
[#]: subject: (Linux Mint 20: Release Date, Features and Everything Important Associated With it)
|
||||
[#]: via: (https://itsfoss.com/linux-mint-20/)
|
||||
[#]: author: (Abhishek Prakash https://itsfoss.com/author/abhishek/)
|
||||
|
||||
Linux Mint 20: Release Date, Features and Everything Important Associated With it
|
||||
======
|
||||
|
||||
_**A continually updated article that lists all the new features in the upcoming Linux Mint 20 release.**_
|
||||
|
||||
[Ubuntu 20.04 LTS release][1] is just around the corner. This is a good news for Linux Mint users as well. A new Ubuntu LTS release means that a new major Linux Mint release will follow soon.
|
||||
|
||||
Why? Because Linux Mint is based on the long term support (LTS) release of Ubuntu. Mint 18 series was based on Ubuntu 16.04 LTS, Mint 19 was based on Ubuntu 18.04 LTS and Linux Mint is going
|
||||
|
||||
Unlike Ubuntu, [Linux Mint][2] doesn’t have a set release schedule. Keeping the past trends in mind, I can make an intelligent guess that Linux Mint 20 should be releasing in June this year.
|
||||
|
||||
### New Features Coming in Linux Mint 20 “Ulyana”
|
||||
|
||||
![][3]
|
||||
|
||||
Let’s take a look at some of the main proposed new features and changes in Linux Mint 20, code-named Ulyana.
|
||||
|
||||
#### Performance improvement to Nemo file manager
|
||||
|
||||
One of the planned performance improvement in the Nemo file manager is the way it handles the thumbnails. You might not have realized but thumbnail generations takes considerable system resources (and disk space as well). Try opening a folder with a few thousands images and you’ll notice that CPU consumption goes up.
|
||||
|
||||
In Linux Mint 20, the aim is to prioritize content and navigation and to delay thumbnails as much as possible. This means that the content of folders shows up with generic icons before the thumbnails are rendered. It won’t be pleasing to the eyes, but you’ll notice the improvement in performance.
|
||||
|
||||
#### Two refreshed color variants
|
||||
|
||||
By default Linux Mint has a green/mint accent. There are a few more color accents available. Linux Mint 20 refreshes the pink and blue colors in its kitty.
|
||||
|
||||
Here’s the new Aqua accent color:
|
||||
|
||||
![Linux Mint Aqua][4]
|
||||
|
||||
And the new Pink accent color:
|
||||
|
||||
![Linux Mint Pink][5]
|
||||
|
||||
#### Sharing files across network becomes simple with this new tool
|
||||
|
||||
Linux Mint 20 will feature a [new GUI tool][6] for easily sharing files on the local network without any additional configuration.
|
||||
|
||||
![New tool for sharing files across the network][7]
|
||||
|
||||
#### Better desktop integration for Electron apps
|
||||
|
||||
[Electron][8] is an open source framework that allows to build cross-platform desktop applications using web technologies. Some people call it the lazy approach because the application runs on top of Chromium web browser. However, this allows developers to easily make their applications available for Linux (and macOS). [Slack on Linux][9] is one of many such examples.
|
||||
|
||||
Linux Mint 20 will have better support for Electron applications with improved integration of system tray and desktop notifications.
|
||||
|
||||
#### Fractional scaling with improved multi-monitor support
|
||||
|
||||
![][10]
|
||||
|
||||
A proposed change is to include fractional scaling in Linux Mint 20 that too with multi-monitor support. If you have a combination of HiDPI and non-HiDPI monitors, you should be able to select the different resolution, refresh rate and different fractional scaling for each of them.
|
||||
|
||||
#### No more 32 bit
|
||||
|
||||
Though Ubuntu 18.04 dropped 32-bit ISO 2 years ago, Linux Mint 19 series kept on providing 32-bit ISO to download and install.
|
||||
|
||||
This changes in Linux Mint 20. There is no 32-bit version of Linux Mint 20 anymore. This is because 32-bit support completely disappears from Ubuntu 20.04.
|
||||
|
||||
#### What else?
|
||||
|
||||
A lot of visual changes come with the release of Cinnamon 4.6 desktop version.
|
||||
|
||||
There should be a few ‘under the hood’ changes coming from Ubuntu 20.04 such as Linux Kernel 5.4, removal of Python 2 support, inclusion of [Wireguard VPN][11] etc.
|
||||
|
||||
I’ll update this article with more features as the development progresses. Stay tuned!
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://itsfoss.com/linux-mint-20/
|
||||
|
||||
作者:[Abhishek Prakash][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://itsfoss.com/author/abhishek/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://itsfoss.com/ubuntu-20-04-release-features/
|
||||
[2]: https://www.linuxmint.com/
|
||||
[3]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2020/04/Linux-Mint-20.png?ssl=1
|
||||
[4]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2020/04/mint-20-aqua.jpg?ssl=1
|
||||
[5]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2020/04/mint-20-pink-1.jpg?ssl=1
|
||||
[6]: https://blog.linuxmint.com/?p=3863
|
||||
[7]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2020/04/mint-20-warpinator-1.png?ssl=1
|
||||
[8]: https://www.electronjs.org/
|
||||
[9]: https://itsfoss.com/slack-use-linux/
|
||||
[10]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2020/04/monitor_display_Linux_mint_20.png?ssl=1
|
||||
[11]: https://itsfoss.com/wireguard/
|
@ -1,129 +0,0 @@
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: (geekpi)
|
||||
[#]: reviewer: ( )
|
||||
[#]: publisher: ( )
|
||||
[#]: url: ( )
|
||||
[#]: subject: (How to Install Nvidia Drivers on Fedora Linux)
|
||||
[#]: via: (https://itsfoss.com/install-nvidia-drivers-fedora/)
|
||||
[#]: author: (John Paul https://itsfoss.com/author/john/)
|
||||
|
||||
How to Install Nvidia Drivers on Fedora Linux
|
||||
======
|
||||
|
||||
Like most Linux distributions, [Fedora][1] does not come with the proprietary [Nvidia][2] drivers installed by default.
|
||||
|
||||
The default open source [Nouveau driver][3] works in most situations, but you may encounter issues like screen tearing with it.
|
||||
|
||||
![Display issue in Fedora with Nouveau graphics driver][4]
|
||||
|
||||
If you encounter such graphics/video issues, you may want to install the official proprietary Nvidia drivers in Fedora. Let me show you how to do that.
|
||||
|
||||
### Installing Nvidia drivers in Fedora
|
||||
|
||||
I am using [Fedora 32][5] in this tutorial but it should be applicable to other Fedora versions.
|
||||
|
||||
#### Step 1
|
||||
|
||||
Before you do anything else, make sure that your system is up-to-date. You can either use the Software Center or use the following command in the terminal:
|
||||
|
||||
```
|
||||
sudo dnf update
|
||||
```
|
||||
|
||||
#### Step 2
|
||||
|
||||
Since Fedora doesn’t ship the Nvidia driver, you need to add the [RPMFusion repos][6] to your system. You can use the following command in the terminal
|
||||
|
||||
```
|
||||
sudo dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
|
||||
```
|
||||
|
||||
Don’t like terminal? Use GUI method to add RPMFusion repository
|
||||
|
||||
If you are using Firefox, you can also add the RPMFusion repositories from your browser. Go to the [Configuration page][7] and scroll down to the “Graphical Setup via Firefox web browser” section. Click the link for the free and then the nonfree repo. This will download the .rpm file, which will eventually install the repository.
|
||||
|
||||
![RPMFusion Browser Installation][8]
|
||||
|
||||
You can double click on the downloaded RPM file to install it.
|
||||
|
||||
![RPMFusion in the Software Center][9]
|
||||
|
||||
#### Step 3
|
||||
|
||||
Now you need to determine [what graphics card (or chip) you have in your Linux system][10]. Pull up the terminal and enter the following command:
|
||||
|
||||
```
|
||||
lspci -vnn | grep VGA
|
||||
```
|
||||
|
||||
![Video Card Lookup in Fedora][11]
|
||||
|
||||
Next, you need to look up what driver corresponds to that chip. You can find a list of the Nvidia chips [here][12]. You can also use [this tool][13] to search for your device.
|
||||
|
||||
**Note**: Keep in mind that there are only three drivers available to install, even though the Nvidia list shows more. The most recent cards are supported by the Nvidia driver. Old devices are supported by the nvidia-390 and nvidia-340 drivers.
|
||||
|
||||
#### Step 4
|
||||
|
||||
To install the required driver, enter one of the commands into the terminal. The following command is the one I had to use for my card. Update as appropriate for your system.
|
||||
|
||||
```
|
||||
sudo dnf install akmod-nvidia sudo dnf install xorg-x11-drv-nvidia-390xx akmod-nvidia-390xx sudo dnf install xorg-x11-drv-nvidia-340xx akmod-nvidia-340xx
|
||||
```
|
||||
|
||||
![Nvidia terminal installation][14]
|
||||
|
||||
#### Step 5
|
||||
|
||||
To make the changes take effect, reboot your system. It might take longer for your system to reboot because it is injecting the Nvidia driver into the Linux kernel.
|
||||
|
||||
Once you log in to your system after reboot, you should have a better visual performance and no screen tearing.
|
||||
|
||||
![Fedora with Nvidia drivers][15]
|
||||
|
||||
#### Bonus Tip:
|
||||
|
||||
This is an optional step but it is recommended. When you add the RPMFusion repos, you get access to multimedia packages that are not available in the regular repos.
|
||||
|
||||
This command will install packages for applications that use [gstreamer][16]:
|
||||
|
||||
```
|
||||
sudo dnf groupupdate multimedia --setop="install_weak_deps=False" --exclude=PackageKit-gstreamer-plugin
|
||||
```
|
||||
|
||||
This command will install packages needed by sound and video packages:
|
||||
|
||||
```
|
||||
sudo dnf groupupdate sound-and-video
|
||||
```
|
||||
|
||||
Hopefully, you find this tutorial useful in installing Nvidia drivers on Fedora. What other Fedora tutorials would you like to see on It’s FOSS?
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://itsfoss.com/install-nvidia-drivers-fedora/
|
||||
|
||||
作者:[John Paul][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://itsfoss.com/author/john/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://getfedora.org/
|
||||
[2]: https://www.nvidia.com/en-us/
|
||||
[3]: https://en.wikipedia.org/wiki/Nouveau_(software)
|
||||
[4]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2020/05/fedora-nouveau.jpg?resize=800%2C500&ssl=1
|
||||
[5]: https://itsfoss.com/fedora-32/
|
||||
[6]: https://rpmfusion.org/RPM%20Fusion
|
||||
[7]: https://rpmfusion.org/Configuration
|
||||
[8]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2020/05/rpmfusion-gui-install.png?resize=800%2C500&ssl=1
|
||||
[9]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2020/05/rpmfusion-gui-install2.png?resize=800%2C500&ssl=1
|
||||
[10]: https://itsfoss.com/check-graphics-card-linux/
|
||||
[11]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2020/06/video-card-lookup-fedora.png?ssl=1
|
||||
[12]: https://us.download.nvidia.com/XFree86/Linux-x86/367.57/README/supportedchips.html
|
||||
[13]: https://www.nvidia.com/Download/index.aspx?lang=en-us
|
||||
[14]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2020/05/nvidia-cli-install.png?resize=800%2C500&ssl=1
|
||||
[15]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2020/05/fedora-nvidia.jpg?resize=800%2C500&ssl=1
|
||||
[16]: https://en.wikipedia.org/wiki/GStreamer
|
@ -1,5 +1,5 @@
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: ( )
|
||||
[#]: translator: (lxbwolf)
|
||||
[#]: reviewer: ( )
|
||||
[#]: publisher: ( )
|
||||
[#]: url: ( )
|
||||
|
@ -0,0 +1,95 @@
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: ( )
|
||||
[#]: reviewer: ( )
|
||||
[#]: publisher: ( )
|
||||
[#]: url: ( )
|
||||
[#]: subject: (A secure and private open source alternative to Alexa)
|
||||
[#]: via: (https://opensource.com/article/20/6/open-source-voice-assistant)
|
||||
[#]: author: (Steve Ovens https://opensource.com/users/stratusss)
|
||||
|
||||
A secure and private open source alternative to Alexa
|
||||
======
|
||||
Mycroft brings more privacy, security, and freedom into your voice
|
||||
assistant applications.
|
||||
![radio communication signals][1]
|
||||
|
||||
I grew up in rural towns all over Ontario, Canada. We weren't particularly well off, although, as a kid in the middle of nowhere, I wasn't really aware of our socioeconomic status. What I was aware of was this beige box called a computer that sat in my dad's office. Dad worked for the bank, and for his job, it was essential for him to have a computer. So while we never had the latest gaming console, we always had a computer.
|
||||
|
||||
It's probably because of this that I developed a pretty intense relationship with all things computers. Today, I am fortunate to work for Red Hat, but that's another story altogether. Growing up in the '80s and having my teenage years in the mid-90s, I have a vivid awareness of how computers have changed. I remember watching as my dad logged online for the first time on our 9600-baud modem. I remember the first time I was able to download skins for buildings in my favorite game, Sim City 2000.
|
||||
|
||||
I mention all this for a reason: I have watched computers evolve my entire life, from mashing arcane commands into DOS (ironically, some say I still perform the same tasks years later in my role at Red Hat), to GUIs of "fat" applications, to web apps, and mobile. The one commonality that has stood out has been the end user's demand for an ever-simplified interface to interact with technology.
|
||||
|
||||
### From touch to voice
|
||||
|
||||
For several years, the cool thing was to be able to poke at your device's screen and have it react. Touch screens were all the rage. Nowadays, the consumer space is trending towards digital assistants. Some stats say that by 2022, 55% of US households will have a voice assistant. Other sources say that Amazon sells approximately 14 million of these devices _per quarter_, while Google trails behind with around 11 million. If you want a concrete market value, MarketWatch estimates the value of this industry will be $7.8 billion by 2023. This doesn't even take into account the phones that everyone has in their pockets! Whatever metrics you use, one thing is clear: voice assistants are becoming increasingly important.
|
||||
|
||||
So are your only options Google, Amazon, or Apple? _NOPE!_ If they were, I wouldn't be writing this article, where I'll introduce you to [Mycroft][2].
|
||||
|
||||
### Mycroft: An open source voice assistant for developers
|
||||
|
||||
For me, Mycroft's big selling feature is that it is open source. This means that I can get in, tinker around, and contribute to the project. It's largely based in Python, which works out just fine for me.
|
||||
|
||||
Before I go any further, I want to draw your attention to the subheading: "for developers." These are my words, and while I contribute to the project, I do not speak for it. However, I want to emphasize that the project is not at a state where it's ready to gain mass adoption. Mycroft's [official documentation][3] is generally very good, but there are rough edges that are being smoothed out all the time. So, if you are willing to put in some effort, perhaps file some bugs, and take the long view, this project is absolutely worth your time. If you are looking for an off-the-shelf, ready to go project, you may need to come back in a year or so.
|
||||
|
||||
Here are some of the major reasons it makes sense to get involved with the Mycroft project.
|
||||
|
||||
#### Privacy
|
||||
|
||||
As I mentioned, voice assistants are everywhere, and that's only increasing. Although they are often forgotten, they are listening to everything. [Apple][4], [Google][5], and [Amazon][6] have all been found listening to the recordings their voice assistants capture. In [some cases][7], these recordings are even being used in courts of law.
|
||||
|
||||
What if you work out of your home office (even before the world got turned upside down by COVID-19)? How can you protect the privacy of your users and clients, especially when most people don't even realize that the technology meant to make their lives easier is capturing their private conversations?
|
||||
|
||||
Even if you aren't worried about exposing your conversations, are you OK with companies gathering this data for targeted advertising? Mycroft puts privacy at the forefront. Its default speech-to-text (STT) backend is Google's STT service, but you can choose from a wide variety of providers, including Google, IBM's Watson, Mozilla, Kaldi, Microsoft Azure, and more. In addition, Mycroft proxies all STT requests that go through their servers for specific providers (Google being one of them).
|
||||
|
||||
#### Security
|
||||
|
||||
Remember how I said Mycroft is for developers? Since you self-host Mycroft, this means its security is as good as you can make it. You can (and should) implement VLANs, routing rules, firewall rules, and whatever other security that is relevant for your environment.
|
||||
|
||||
Even if your security is not top-notch, the obfuscation you receive from having such a tiny footprint means that, outside of random chance or a targeted attack, your Mycroft instance is relatively safe from the outside world. If it's on your network, you control what and who has access to your voice assistant. That's a good thing.
|
||||
|
||||
#### Did I mention Python?
|
||||
|
||||
I love Python. It's one of the main reasons I was able to get involved so quickly. I use Python extensively in my day-to-day, both for fun and profit. I introduced my wife to Mycroft, and she immediately started adding tasks to _my_ backlog for all the things she wants _her_ voice assistant to be able to do.
|
||||
|
||||
While I was hard at work picking through my backlog, I noticed that one of the Mycroft intent parsers (which I will discuss in my next article) did not handle apostrophes properly. So, in true open source fashion, I forked the code, fixed it up, and created a pull request (PR) against the project. After some small back and forth, my PR was brought up to the project standards and voila! Mycroft now handles apostrophes better. How cool is that?
|
||||
|
||||
A) I was able to fork the code, fix it, and run the fix locally and
|
||||
|
||||
B) have these changes accepted by the project to benefit everyone
|
||||
|
||||
|
||||
|
||||
It's mind-blowing.
|
||||
|
||||
Not only that, but other projects including [KDE Plasma on TV][8] have integrated Mycroft to make their projects more widely appealing. I'd love to hear about more projects that have taken advantage of Mycroft, so please reach out on Twitter or leave a comment below if you know of any.
|
||||
|
||||
### Science non-fiction
|
||||
|
||||
As a kid, I always loved science fiction; I still do, in fact. I wanted to be able to be like Jean-Luc Picard and say, "Computer, Earl Grey. Hot," and have things magically happen. While food replicators are still a long way off, with Mycroft and a little bit of know-how, I can say things like, "Hey, Mycroft, start the tea kettle" or "Hey, Mycroft, add bread to my shopping list," and Mycroft will make it so.
|
||||
|
||||
I'm relatively new to the Mycroft developer community, but we are a small group of tightly knit folks who want to live in a world where there is an open source competitor to the Alexas, Siris, and Googles of the world. Stop by and chat with us on [Mattermost][9].
|
||||
|
||||
Need to keep your schedule straight? Learn how to do it using open source with these free...
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/20/6/open-source-voice-assistant
|
||||
|
||||
作者:[Steve Ovens][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/stratusss
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/sound-radio-noise-communication.png?itok=KMNn9QrZ (radio communication signals)
|
||||
[2]: https://mycroft.ai/
|
||||
[3]: https://mycroft-ai.gitbook.io/docs/
|
||||
[4]: https://www.forbes.com/sites/kateoflahertyuk/2019/07/28/apple-siri-eavesdropping-puts-millions-of-users-at-risk/#3eea76e6a530
|
||||
[5]: https://www.digitalmusicnews.com/2019/07/12/google-employees-google-home/
|
||||
[6]: https://www.cnbc.com/2019/04/11/how-to-stop-amazon-from-listening-to-what-you-say-to-alexa.html
|
||||
[7]: https://www.cnn.com/2017/03/07/tech/amazon-echo-alexa-bentonville-arkansas-murder-case/index.html
|
||||
[8]: https://dot.kde.org/2020/03/26/plasma-tv-presenting-plasma-bigscreen
|
||||
[9]: https://chat.mycroft.ai/
|
@ -0,0 +1,300 @@
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: ( )
|
||||
[#]: reviewer: ( )
|
||||
[#]: publisher: ( )
|
||||
[#]: url: ( )
|
||||
[#]: subject: (Eliminate spam using SSL with an open source certification authority)
|
||||
[#]: via: (https://opensource.com/article/20/6/secure-open-source-antispam)
|
||||
[#]: author: (Victor Lopes https://opensource.com/users/victorlclopes)
|
||||
|
||||
Eliminate spam using SSL with an open source certification authority
|
||||
======
|
||||
Use a Let’s Encrypt certificate with MailCleaner for STARTTLS and SSL.
|
||||
Here's how.
|
||||
![Chat via email][1]
|
||||
|
||||
[MailCleaner][2] is a feature-rich, open source antispam solution. Its virtual appliances (VMs) available for distribution come out-of-the-box with self-signed certificates for both the web interface and the MTA services.
|
||||
|
||||
This requires you to supply your own valid, publicly trusted certificate. Using a Let's Encrypt certificate is a great way to accomplish that because it's free, safe, and automated.
|
||||
|
||||
When requesting a Let's Encrypt certificate, the most important step is the hostname validation. If you don't know about it, consult the [documentation][3].
|
||||
|
||||
### Firewall requirements
|
||||
|
||||
First of all, you need to define which hostnames you will use, including your MX records, and they must point to the IP address you're using to publish your MailCleaner server.
|
||||
|
||||
If you choose to perform the validation using local port 80 on your MailCleaner box, you will have to include a few commands to temporarily stop the Apache service during the certificate request. That's why I recommend using an alternative port, which, in our examples, will be port TCP 8090.
|
||||
|
||||
You have a few options in this scenario:
|
||||
|
||||
**Option 1**: Create rules in your reverse proxy to forward Let's Encrypt validation requests to your MailCleaner server. You have to redirect every request sent to port TCP 80, whose destination hostname is your MailCleaner external FQDN, and the path starts with `/.well-known/acme-challenge/` to port TCP 8090 on your MailCleaner server.
|
||||
|
||||
**Option 2**: Using a NAT rule, for example, redirect the traffic sent to port TCP 80 to port TCP 8090 on your MailCleaner server.
|
||||
|
||||
**Option 3**: Redirect/allow traffic sent to port TCP 80 to the actual port TCP 80 on your MailCleaner server, which is less secure, less flexible, and not recommended.
|
||||
|
||||
Alternatively, you could have the certificate request and the name validation performed somewhere else (like in your firewall) and create a routine for copying the cert files to your MailCleaner box. If you have a [pfSense][4] firewall with the [ACME][5] package, for example, you can try to merge the concepts within this article with this [how-to][6].
|
||||
|
||||
### Installing Certbot
|
||||
|
||||
[Certbot][7] is an open source tool for requesting and managing Let's Encrypt certificates.
|
||||
|
||||
To install Certbot on your MailCleaner server, log in as `root` (in the console or through SSH) and run:
|
||||
|
||||
|
||||
```
|
||||
$ wget <https://dl.eff.org/certbot-auto>
|
||||
$ mv certbot-auto /usr/local/bin/certbot-auto
|
||||
$ chown root /usr/local/bin/certbot-auto
|
||||
$ chmod 0755 /usr/local/bin/certbot-auto
|
||||
```
|
||||
|
||||
### Testing certificate name validation
|
||||
|
||||
If you're using an alternate port, you need to open it in the local firewall on your MailCleaner server:
|
||||
|
||||
|
||||
```
|
||||
`iptables -A INPUT -p tcp -m tcp --dport 8090 -j ACCEPT`
|
||||
```
|
||||
|
||||
Note: MailCleaner keeps local firewall rules in its database and sets the `iptables` config every time the server loads. It's imperative that you add port 8090 to the firewall table inside MailCleaner's MySQL database; otherwise, every renewal process will fail. To learn how to do this, take a look at the section titled "Accessing MailCleaner's MySQL database" in the article _[How to install MailCleaner 2020.01][8]._
|
||||
|
||||
Now, let's try to issue our certificate using Let's Encrypt's staging (testing) server. Please replace the appropriate values with your email address and your MailCleaner server hostname(s).
|
||||
|
||||
**Option 1**: If you are using the alternative port 8090, use this command line:
|
||||
|
||||
|
||||
```
|
||||
$ certbot-auto certonly --standalone --preferred-challenges http \
|
||||
\--http-01-port 8090 --email [myemail@domain.com][9] \--no-eff-email \
|
||||
\--agree-tos --staging -d myhostname.mydomain.com
|
||||
```
|
||||
|
||||
If you have more than one name, just add them with "`-d`" at the end:
|
||||
|
||||
|
||||
```
|
||||
-d mx1.mydomain.com \
|
||||
-d mx2.mydomain.com \
|
||||
-d spam.mydomain.com
|
||||
```
|
||||
|
||||
**Option 2**: If you are using local port 80, use this command line:
|
||||
|
||||
|
||||
```
|
||||
$ certbot-auto certonly --standalone --preferred-challenges http \
|
||||
--email [myemail@domain.com][9] \--no-eff-email --agree-tos --staging \
|
||||
-d myhostname.mydomain.com \
|
||||
\--pre-hook "/usr/mailcleaner/etc/init.d/apache stop" \
|
||||
\--post-hook "/usr/mailcleaner/etc/init.d/apache start"
|
||||
```
|
||||
|
||||
Note: After issuing this command, you will hit a bootstrapping routine identifying missing dependencies, mostly Python packages. Let it install the necessary software.
|
||||
|
||||
If everything went fine, you should see a result like this:
|
||||
|
||||
|
||||
```
|
||||
root#mailcleaner:~#
|
||||
root@mailcleaner:~# certbot-auto certonly \
|
||||
\--standalone --preferred-challenges http \
|
||||
\--http-01-port 8090 --email [victor@domain.com][10] \
|
||||
\--no-eff-email --agree-tos --staging \
|
||||
-d mail.example.com
|
||||
|
||||
Saving debug log to /var/log/letsencrypt/
|
||||
Plugins selected: Authenticator standalone
|
||||
Obtaining a new certificate
|
||||
Performing the following challenges:
|
||||
http-01 challenge for mail.example.com
|
||||
Waiting for verification...
|
||||
Cleaning up challenges
|
||||
|
||||
IMPORTANT NOTES:
|
||||
Your certificate and chain have been saved at:
|
||||
/etc/letsencrypt/live/mail.example.com/fullchain.pem
|
||||
Your key file has been saved at:
|
||||
/etc/letsencrypt/ live/mail.example.com/privkey.pem
|
||||
[...]
|
||||
root@mailcleaner:~#
|
||||
```
|
||||
|
||||
If it didn't go well, keep in mind that most errors with this process are caused by Let's Encrypt servers not being able to reach your server. Check if your firewall configuration is really OK.
|
||||
|
||||
### Request your certificate
|
||||
|
||||
When the certificate issuing process is working correctly with the staging server, go ahead and request your certificate for production (removing the staging parameter):
|
||||
|
||||
|
||||
```
|
||||
`certbot-auto certonly --standalone --preferred-challenges http --http-01-port 8090 --email myemail@domain.com --no-eff-email --agree-tos --force-renewal -d myhostname.mydomain.com`
|
||||
```
|
||||
|
||||
Note: Adapt the command line if you're not using the alternative port 8090. If that's the case, don't forget the pre-hook and post-hook.
|
||||
|
||||
The result screen is pretty similar. You will now have a valid certificate at the following path:
|
||||
|
||||
|
||||
```
|
||||
`/etc/letsencrypt/live/my__hostname_.yourdomain.com_/`[/code] [code]
|
||||
|
||||
root#mailcleaner:~# ls /etc/letsencrypt/live/mail.example.com
|
||||
cert.pem chain.pem fullchain.pem privkey.pem README
|
||||
root@mailcleaner:~#
|
||||
```
|
||||
|
||||
### Automate certificate assignment and renewal
|
||||
|
||||
The last piece of this puzzle is the great script provided by "GRahamJB" in this [MailCleaner forum topic][11]. You can download the script from [here][12].
|
||||
|
||||
Let's save this script in our server. Create the following file:
|
||||
|
||||
|
||||
```
|
||||
`$ nano /usr/local/bin/set-certificates.pl`
|
||||
```
|
||||
|
||||
Then paste the contents of the script and save it (`Ctrl + X`). And give the script permission to run:
|
||||
|
||||
|
||||
```
|
||||
`$ chmod +x /usr/local/bin/set-certificates.pl`
|
||||
```
|
||||
|
||||
Now run the script to assign your certificate to the web interface and the MTA services:
|
||||
|
||||
|
||||
```
|
||||
root@mailcleaner:~# set-certificates.pl --set_web \
|
||||
\--set_mta_in --set_mta_out \
|
||||
\--key /etc/letsencrypt/live/mail.example.com/privkey.pem \
|
||||
\--data /etc/letsencrypt/live/mail.example.com/cert.pem \
|
||||
\--chain /etc/letsencrypt/live/mail.example.com/chain.pem
|
||||
|
||||
Stopping Apache: stopped.
|
||||
Starting Apache: started.
|
||||
Stopping Exim stage 1: stopped.
|
||||
Starting Exim stage 1: started.
|
||||
Stopping Exim stage 4: stopped.
|
||||
Starting Exim stage 4: started.
|
||||
root@mailcleaner:~#
|
||||
```
|
||||
|
||||
Now that we know it works, schedule these commands to run weekly, using cron and Certbot's built-in renewal routine:
|
||||
|
||||
|
||||
```
|
||||
`$ nano /etc/letsencrypt/renewal/yourhostname.yourdomain.com.conf`
|
||||
```
|
||||
|
||||
Check if the options look correct and add the following line at the end (the same set-certificates.pl you just ran, preceded by `renew_hook =`):
|
||||
|
||||
|
||||
```
|
||||
.
|
||||
.
|
||||
# Options used in the renewal process
|
||||
[renewalparams]
|
||||
authenticator = standalone
|
||||
account = 9d670ed7c63c6238f90f042f852fc33e
|
||||
pref_challs = http-01,
|
||||
http01_port = 8090
|
||||
server = <https://acme-v02.api.letsencrypt.org/directory>
|
||||
# Set MailCleaner certs
|
||||
renew_hook = set-certificates.pl --set_web --set_mta_in --set_mta_out --key /etc/letsencrypt/live/myhostname.mydomain.com/privkey.pem --data /etc/letsencrypt/live/myhostname.mydomain.com/cert.pem --chain /etc/letsencrypt/live/myhostname.mydomain.com/chain.pem
|
||||
```
|
||||
|
||||
Note that the "`renew_hook = set-cert…`" command must be one single line. Save the file and run the following command to test it:
|
||||
|
||||
|
||||
```
|
||||
`$ certbot-auto renew --force-renewal`
|
||||
```
|
||||
|
||||
If the renewal succeeds, you'll see a result similar to the one below. Note how our `renew_hook` command was called. The certificate has been updated in MailCleaner and the necessary services restarted.
|
||||
|
||||
|
||||
```
|
||||
root@mailcleaner:~# certbot-auto renew --force-reneval
|
||||
Saving debug log to /var/log/letsencrypt/letsencrypt.log
|
||||
|
||||
Processing /etc/ letsencrypt/renewal/mail.example.com.conf
|
||||
Plugins selected: Authenticator standalone, Installer None
|
||||
Renewing an existing certificate
|
||||
Running deploy-hook command: set-certificates.pl \
|
||||
\--set_web --set_mta_in --set_mta_out \
|
||||
\--key /etc/letsencrypt/live/mail.example.com/privkey.pem \
|
||||
\--data /etc/letsencrypt/live/mail.example.com/cert.pem \
|
||||
\--chain /etc/letsencrypt/live/mail.example.com/chain.pem
|
||||
Output from deploy-hook conmtwand set-certificates.pl:
|
||||
|
||||
Stopping Apache: stopped.
|
||||
Starting Apache: started.
|
||||
Stopping Exim stage 1: stopped.
|
||||
Starting Exim stage 1: started.
|
||||
Stopping Exim stage 4: stopped.
|
||||
Starting Exim stage 4: started.
|
||||
|
||||
new certificate deployed without reload, fullchain is
|
||||
/etc/letsencrypt/live/mail.example.com/fullchain.pem
|
||||
|
||||
Congratulations, all renewals succeeded.
|
||||
The following certs have been renewed:
|
||||
/etc/letsencrypt/live/mail.example.com/fullchain.pem (success)
|
||||
root@mailcleaner:~#
|
||||
```
|
||||
|
||||
Now, let's add that renew command to cron:
|
||||
|
||||
|
||||
```
|
||||
`$ crontab -e`
|
||||
```
|
||||
|
||||
Add the following line and save the file. This will make Certbot run every Sunday at 2:00am:
|
||||
|
||||
|
||||
```
|
||||
`0 2 * * 7 /usr/local/bin/certbot-auto renew`
|
||||
```
|
||||
|
||||
If crontab doesn't open the way you expect, run `select-editor` to choose the editor you like (nano, for example). If you want to check the result, run `crontab -l`.
|
||||
|
||||
By default, Certbot will only renew the certificate if it has less than 30 days left before its expiry date. If the cert is not due to expire, Certbot will not renew it (nor call hooks, of course).
|
||||
|
||||
### Testing results
|
||||
|
||||
If you access MailCleaner's web interface, you'll see that the SSL certificate is valid. And if you run the following command in your server, you can see that the certificate being presented on STARTTLS is the new Let's Encrypt cert you just set:
|
||||
|
||||
|
||||
```
|
||||
`$ openssl s_client -connect localhost:25 -starttls smtp`
|
||||
```
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/20/6/secure-open-source-antispam
|
||||
|
||||
作者:[Victor Lopes][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/victorlclopes
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/email_chat_communication_message.png?itok=LKjiLnQu (Chat via email)
|
||||
[2]: https://www.mailcleaner.org/
|
||||
[3]: https://letsencrypt.org/docs/challenge-types
|
||||
[4]: https://www.pfsense.org/
|
||||
[5]: https://docs.netgate.com/pfsense/en/latest/certificates/acme-package.html
|
||||
[6]: https://medium.com/@victorlclopes/copy-pfsense-acme-certificate-to-another-server-e42c611c47ec
|
||||
[7]: https://certbot.eff.org/
|
||||
[8]: https://medium.com/@victorlclopes/how-to-install-mailcleaner-2020-01-8319c83e11ee
|
||||
[9]: mailto:myemail@domain.com
|
||||
[10]: mailto:victor@domain.com
|
||||
[11]: https://forum.mailcleaner.org/viewtopic.php?f=5&t=3035#p12532
|
||||
[12]: https://gist.github.com/victorlclopes/f5aa081f1a9c76466aaf3f3dc5bd60b7
|
@ -0,0 +1,76 @@
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: ( )
|
||||
[#]: reviewer: ( )
|
||||
[#]: publisher: ( )
|
||||
[#]: url: ( )
|
||||
[#]: subject: (Use this script to find a Raspberry Pi on your network)
|
||||
[#]: via: (https://opensource.com/article/20/6/find-raspberry-pi)
|
||||
[#]: author: (Chris Collins https://opensource.com/users/clcollins)
|
||||
|
||||
Use this script to find a Raspberry Pi on your network
|
||||
======
|
||||
Identify a specific Raspberry Pi in your cluster with a script that
|
||||
triggers an LED to flash.
|
||||
![Raspberries with pi symbol overlay][1]
|
||||
|
||||
We've all been there. "I'm going to get this [Raspberry Pi][2] to try out. They look kinda cool." And then, like tribbles on an Enterprise, suddenly you have [Kubernetes clusters][3] and [NFS servers][4] and [Tor proxies][5]. Maybe even a [hotel booking system][6]!
|
||||
|
||||
Pis cover the desk. They spill out onto the floor. Carrier boards for Raspberry Pi compute modules installed into lunchboxes litter the shelves.
|
||||
|
||||
…or maybe that's just me?
|
||||
|
||||
I'll bet if you have one Raspberry Pi, you've got _at least_ two others, though, and gosh darn it, they all look the same.
|
||||
|
||||
This was the situation I found myself in recently while testing a network filesystem (NFS) server I set up on one of my Raspberry Pis. I needed to plug in a USB hard drive, but … to which one? Ol' Lingonberry Pi was the chosen host, and I was SSH'd into her, but which actual, _physical_ RPi was she? There was no way of knowing…
|
||||
|
||||
Or was there?
|
||||
|
||||
![Raspberry Pis stacked up in cluster cases][7]
|
||||
|
||||
So, so many Raspberry Pis. Which one is Lingonberry? (Chris Collins, [CC BY-SA 4.0][8])
|
||||
|
||||
At a previous job, I sometimes worked on servers in our data centers, and some of them had a neat feature: an ID button on the front of the server that, when pressed, started an LED flashing on the front and back of the server. If I needed to deal with the other side of the server, I could press the ID button, then walk _allllll_ the way around to the other side of the rack, and easily find the right server.
|
||||
|
||||
I needed something like this to find Lingonberry.
|
||||
|
||||
There aren't any buttons on the Pis, but there are LEDs, and after a quick Google search, I learned that [one of them is _controllable_][9]. _Cue maniacal laughter._
|
||||
|
||||
There are three important bits to know. First, the LED path: on Raspberry Pis, at least those running Ubuntu 20.04, the front (and user-controllable) LED is found at `/sys/class/leds/led0`. If you navigate to it, you'll find it is a symlink to a directory that has a number of files in it. The two important files are `trigger` and `brightness`.
|
||||
|
||||
The `trigger` file controls what lights up the LED. If you `cat` that file, you will find a list:
|
||||
|
||||
```
|
||||
none usb-gadget usb-host rc-feedback rfkill-any
|
||||
rfkill-none kbd-scrolllock kbd-numlock kbd-capslock
|
||||
kbd-kanalock kbd-shiftlock kbd-altgrlock kbd-ctrllock
|
||||
kbd-altlock kbd-shiftllock kbd-shiftrlock kbd-ctrlllock
|
||||
kbd-ctrlrlock timer oneshot disk-activity disk-read
|
||||
disk-write ide-disk mtd nand-disk heartbeat backlight
|
||||
gpio cpu cpu0 cpu1 cpu2 cpu3 default-on input panic
|
||||
mmc1 [mmc0] bluetooth-power rfkill0
|
||||
unimac-mdio--19:01:link unimac-mdio--19:01:1Gbps
|
||||
unimac-mdio--19:01:100Mbps unimac-mdio--19:01:10Mbps
|
||||
```
|
||||
|
||||
|
||||
The item in brackets indicates what triggers the LED; in the example above, it's [mmc0]—the disk activity for when the SD card plugged into the Raspberry Pi. The trigger file isn't a normal file, though. Rather than editing it directly, you change the trigger by echoing one of the triggers into the file.
|
||||
|
||||
|
||||
To identify Lingonberry, I needed to temporarily disable the [mmc0] trigger, so I could make the LED work how I wanted it to work. In the script, I disabled all the triggers by echoing "none" into the trigger file:
|
||||
|
||||
[code]
|
||||
|
||||
```
|
||||
# You must be root to do this
|
||||
$ echo none >trigger
|
||||
|
||||
$ cat trigger
|
||||
[none] usb-gadget usb-host rc-feedback rfkill-any rfkill-none kbd-scrolllock kbd-numlock kbd-capslock kbd-kanalock kbd-shiftlock kbd-altgrlock kbd-ctrllock kbd-altlock kbd-shiftllock kbd-shiftrlock kbd-ctrlllock kbd-ctrlrlock timer oneshot disk-activity disk-read disk-write ide-disk mtd nand-disk heartbeat backlight gpio cpu cpu0 cpu1 cpu2 cpu3 default-on input panic mmc1 mmc0 bluetooth-power rfkill0 unimac-mdio--19:01:link unimac-mdio--19:01:1Gbps unimac-mdio--19:01:100Mbps unimac-mdio--19:01:10Mbps
|
||||
```
|
||||
|
||||
|
||||
```
|
||||
In the contents of the trigger file above, you can see [none] is now the selected trigger. Now the LED is off and not flashing.
|
||||
|
||||
|
||||
Next up is the brightness file. You can control whether the LED is on (1) or off (0) by echoing either 0 or 1 into the file. Alternating
|
@ -0,0 +1,129 @@
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: (geekpi)
|
||||
[#]: reviewer: ( )
|
||||
[#]: publisher: ( )
|
||||
[#]: url: ( )
|
||||
[#]: subject: (How to Install Nvidia Drivers on Fedora Linux)
|
||||
[#]: via: (https://itsfoss.com/install-nvidia-drivers-fedora/)
|
||||
[#]: author: (John Paul https://itsfoss.com/author/john/)
|
||||
|
||||
如何在 Fedora Linux 中安装 Nvidia 驱动
|
||||
======
|
||||
|
||||
与大多数 Linux 发行版一样,[Fedora][1] 并未默认安装专有的 [Nvidia][2] 驱动。
|
||||
|
||||
默认的开源 [Nouveau 驱动][3]在大多数情况下都可以使用,但是你可能会遇到屏幕撕裂等问题。
|
||||
|
||||
![Display issue in Fedora with Nouveau graphics driver][4]
|
||||
|
||||
如果遇到此类图形/视频问题,那么可能需要在 Fedora 中安装官方专有的 Nvidia 驱动。让我告诉你如何安装。
|
||||
|
||||
### 在 Fedora 中安装 Nvidia 驱动
|
||||
|
||||
我在本教程中使用 [Fedora 32][5],但它应适用于其他 Fedora 版本。
|
||||
|
||||
#### 步骤 1
|
||||
|
||||
在做其他任何操作之前,请先确保你的系统是最新的。你可以使用软件中心,也可以在终端中使用以下命令:
|
||||
|
||||
```
|
||||
sudo dnf update
|
||||
```
|
||||
|
||||
#### 步骤 2
|
||||
|
||||
由于 Fedora 没有提供 Nvidia 驱动,因此你需要在系统中添加 [RPMFusion 仓库][6]。你可以在终端中使用以下命令:
|
||||
|
||||
```
|
||||
sudo dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
|
||||
```
|
||||
|
||||
不喜欢终端么?那使用 GUI 的方法添加 RPMFusion 仓库。
|
||||
|
||||
如果你使用 Firefox,那么还可以从浏览器添加 RPMFusion 仓库。进入[配置页面][7],然后向下滚动到 “Graphical Setup via Firefox web browser”。单击自由和非自由仓库链接。这将下载 .rpm 文件,并安装仓库。
|
||||
|
||||
![RPMFusion Browser Installation][8]
|
||||
|
||||
你可以双击下载的 RPM 文件进行安装。
|
||||
|
||||
![RPMFusion in the Software Center][9]
|
||||
|
||||
#### 步骤 3
|
||||
|
||||
现在,你需要确定 [Linux 系统中有哪些显卡(或芯片)][10]。打开终端并输入以下命令:
|
||||
|
||||
```
|
||||
lspci -vnn | grep VGA
|
||||
```
|
||||
|
||||
![Video Card Lookup in Fedora][11]
|
||||
|
||||
接下来,你需要查找与该芯片对应的驱动。你可以在[此处][12]找到 Nvidia 芯片的列表。你也可以使用[此工具][13]搜索设备。
|
||||
|
||||
**注意**:请记住,即使 Nvidia 列表显示了更多驱动,但也只有三个驱动可以安装。Nvidia 驱动支持最新的显卡。nvidia-390 和 nvidia-340 驱动支持旧设备。
|
||||
|
||||
#### 步骤 4
|
||||
|
||||
要安装所需的驱动,请在终端中输入以下一个命令。下面的命令是用于显卡的命令。根据你的系统进行更新。
|
||||
|
||||
```
|
||||
sudo dnf install akmod-nvidia sudo dnf install xorg-x11-drv-nvidia-390xx akmod-nvidia-390xx sudo dnf install xorg-x11-drv-nvidia-340xx akmod-nvidia-340xx
|
||||
```
|
||||
|
||||
![Nvidia terminal installation][14]
|
||||
|
||||
#### 步骤 5
|
||||
|
||||
要使更改生效,请重启系统。你的系统重启可能需要更长的时间,因为它将 Nvidia 驱动注入到 Linux 内核中。
|
||||
|
||||
重启并登录系统后,你会看到更好的视觉效果,并且不会出现屏幕撕裂的情况。
|
||||
|
||||
![Fedora with Nvidia drivers][15]
|
||||
|
||||
#### 额外的提示:
|
||||
|
||||
这是可选步骤,但建议这样做。添加 RPMFusion 仓库时,你可以访问常规仓库中不可用的多媒体包。
|
||||
|
||||
此命令将为使用 [gstreamer][16] 的应用安装软件包:
|
||||
|
||||
```
|
||||
sudo dnf groupupdate multimedia --setop="install_weak_deps=False" --exclude=PackageKit-gstreamer-plugin
|
||||
```
|
||||
|
||||
此命令将安装声音和视频软件包所需的包:
|
||||
|
||||
```
|
||||
sudo dnf groupupdate sound-and-video
|
||||
```
|
||||
|
||||
希望本教程对在 Fedora 上安装 Nvidia 驱动很有用。你还想在 It’s FOSS 上看到其他 Fedora 教程吗?
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://itsfoss.com/install-nvidia-drivers-fedora/
|
||||
|
||||
作者:[John Paul][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[geekpi](https://github.com/geekpi)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://itsfoss.com/author/john/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://getfedora.org/
|
||||
[2]: https://www.nvidia.com/en-us/
|
||||
[3]: https://en.wikipedia.org/wiki/Nouveau_(software)
|
||||
[4]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2020/05/fedora-nouveau.jpg?resize=800%2C500&ssl=1
|
||||
[5]: https://itsfoss.com/fedora-32/
|
||||
[6]: https://rpmfusion.org/RPM%20Fusion
|
||||
[7]: https://rpmfusion.org/Configuration
|
||||
[8]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2020/05/rpmfusion-gui-install.png?resize=800%2C500&ssl=1
|
||||
[9]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2020/05/rpmfusion-gui-install2.png?resize=800%2C500&ssl=1
|
||||
[10]: https://itsfoss.com/check-graphics-card-linux/
|
||||
[11]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2020/06/video-card-lookup-fedora.png?ssl=1
|
||||
[12]: https://us.download.nvidia.com/XFree86/Linux-x86/367.57/README/supportedchips.html
|
||||
[13]: https://www.nvidia.com/Download/index.aspx?lang=en-us
|
||||
[14]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2020/05/nvidia-cli-install.png?resize=800%2C500&ssl=1
|
||||
[15]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2020/05/fedora-nvidia.jpg?resize=800%2C500&ssl=1
|
||||
[16]: https://en.wikipedia.org/wiki/GStreamer
|
Loading…
Reference in New Issue
Block a user