WSL1 ubuntu 20.04 有关sleep系统调用不能正常工作的问题

2023-12-21 15:48

本文主要是介绍WSL1 ubuntu 20.04 有关sleep系统调用不能正常工作的问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

遇到了一个很奇怪的问题,在WIN10的WSL1(ubuntu 20.04)上,sleep、nanosleep系统调用总会立即返回,而且没有任何提示信息。同时shell命令的sleep也不能正常使用,会出现如下错误信息:

$ sleep 1
sleep: cannot read realtime clock: Invalid argument

在另一台机子上测试确实不是代码的问题。后来在网上找到原因:Ubuntu 20.04 and WSL 1.

[WSL1] [glibc] sleep: cannot read realtime clock: Invalid argument #4898

Issue 4989

An example of the WSL team continuing to service WSL 1 for now is a patch for issue 4989 231. Issue 4989 arises from a patch in glibc 2.31 34 that implements a nanosleep() library call in a more UNIX-like manner 23 based on CLOCK_REALTIME. Emulating UNIX system clocks on an NT kernel is tricky. WSL 1 implemented the most popular clock-based system calls, but not all of them, and did not build CLOCK_REALTIME support into nanosleep 5. But because this is such a fundamental change in glibc the WSL team is very graciously implementing support for CLOCK_REALTIME in nanosleep in WSL 1 and will be backporting it in updates to existing builds. This is a challenging task that will take some time. In contrast, other more obscure system clock calls, like the one raised in issue 4973 73, will likely not see implementation in WSL 1.

大意就是说在NT系统上模拟UNIX的 REALTIME比较麻烦,修复这个问题需要不少时间, 目前官方的建议是使用 Ubuntu 18.04版本。

看来是解决不了了,只能弃用了。我就想着用用新版本赶赶潮流,没想到会遇上这种问题🙃。


我还是不能拒绝船新版本的诱惑,经过了几小时的探(搜)索,目前找到了一个比较满意的解决方案:使用WSL2!!
安装方法可以参考官方网站。

大概步骤如下:

  1. 更新到WIN10 2004(操作系统版本号19041)及以上版本。(真是太及时了,2020.05.28 刚刚发布,截止到目前我没有收到更新推送,但是还好可以手动更新);
  2. 依次打开:“控制面板” - “程序和功能” - “启用或关闭Windows功能” - 勾选上 “适用于Linux的Windows子系统” 和 “虚拟机平台” 这两个选项。确认,然后重启。
  3. 以管理员身份打开 Powershell命令行,执行

$ wsl --list --verbose # 查看当前 wsl 状态,可以看到已有的WSL1的名字
$ wsl --set-default-version 2 # 设置默认 WSL 体系结构为 WSL2。这个可有可无,只对以后新安装的 WSL有效。
$ wsl --set-version <WSL1的名字> 2 # 将指定的 WSL1 升级为WSL2。

执行wsl --set-version时可能会提示需要更新WSL2 linux内核,就按它提示的网站下载安装即可。
4. 完成。

WSL2 实现是用的hyper-v虚拟机,对 Liinux 系统调用及硬件的控制几乎完全兼容。试了一下果然没让我失望, sleep 的问题得到完美解决。

换用WSL2后,一个意外地收获是编译速度快了不少,真香😋

2020/06/01 15:42

这篇关于WSL1 ubuntu 20.04 有关sleep系统调用不能正常工作的问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/520572

相关文章

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

基于人工智能的图像分类系统

目录 引言项目背景环境准备 硬件要求软件安装与配置系统设计 系统架构关键技术代码示例 数据预处理模型训练模型预测应用场景结论 1. 引言 图像分类是计算机视觉中的一个重要任务,目标是自动识别图像中的对象类别。通过卷积神经网络(CNN)等深度学习技术,我们可以构建高效的图像分类系统,广泛应用于自动驾驶、医疗影像诊断、监控分析等领域。本文将介绍如何构建一个基于人工智能的图像分类系统,包括环境

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

好题——hdu2522(小数问题:求1/n的第一个循环节)

好喜欢这题,第一次做小数问题,一开始真心没思路,然后参考了网上的一些资料。 知识点***********************************无限不循环小数即无理数,不能写作两整数之比*****************************(一开始没想到,小学没学好) 此题1/n肯定是一个有限循环小数,了解这些后就能做此题了。 按照除法的机制,用一个函数表示出来就可以了,代码如下

hdu1043(八数码问题,广搜 + hash(实现状态压缩) )

利用康拓展开将一个排列映射成一个自然数,然后就变成了普通的广搜题。 #include<iostream>#include<algorithm>#include<string>#include<stack>#include<queue>#include<map>#include<stdio.h>#include<stdlib.h>#include<ctype.h>#inclu

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟&nbsp;开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚&nbsp;第一站:海量资源,应有尽有 走进“智听

如何在页面调用utility bar并传递参数至lwc组件

1.在app的utility item中添加lwc组件: 2.调用utility bar api的方式有两种: 方法一,通过lwc调用: import {LightningElement,api ,wire } from 'lwc';import { publish, MessageContext } from 'lightning/messageService';import Ca

安卓链接正常显示,ios#符被转义%23导致链接访问404

原因分析: url中含有特殊字符 中文未编码 都有可能导致URL转换失败,所以需要对url编码处理  如下: guard let allowUrl = webUrl.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) else {return} 后面发现当url中有#号时,会被误伤转义为%23,导致链接无法访问

购买磨轮平衡机时应该注意什么问题和技巧

在购买磨轮平衡机时,您应该注意以下几个关键点: 平衡精度 平衡精度是衡量平衡机性能的核心指标,直接影响到不平衡量的检测与校准的准确性,从而决定磨轮的振动和噪声水平。高精度的平衡机能显著减少振动和噪声,提高磨削加工的精度。 转速范围 宽广的转速范围意味着平衡机能够处理更多种类的磨轮,适应不同的工作条件和规格要求。 振动监测能力 振动监测能力是评估平衡机性能的重要因素。通过传感器实时监