查看“常见问题”的源代码
←
常见问题
跳转到导航
跳转到搜索
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
== 烧录固件时,/dev/ttyUSB0没有权限。 == 在很多时候,在Linux下需要使用USB串口调试烧录固件,如果不是使用root用户,极有可能遇到权限问题。 比较野蛮的方法是使用chmod 修改权限(缺点是USB重新插拔后将失效),代码如下:<syntaxhighlight lang="bash" line="1"> sudo chmod 777 /dev/ttyUSB0 </syntaxhighlight>第二种方法为查看/dev/ttyUSB0的所属用户组(通过ls -al /dev/ttyUSB0查看,ubuntu22.04下为dialout),将当前用户添加至该用户组,重新登陆生效。代码如下:<syntaxhighlight lang="bash" line="1"> #在ubuntu 22.04下测试通过。添加一次,始终有效 sudo adduser `id -nu` dialout </syntaxhighlight> == Windows与Linux双系统切换时时间改变。 == 主要是Windows与Linux对待硬件时钟的方式不一样。将Windows改为UTC时间,注册表如下:<syntaxhighlight lang="registry" line="1"> Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation] "RealTimeIsUniversal"=dword:00000001 </syntaxhighlight> == Windows11硬件兼容性设置 == 众所周知,Windows11对硬件有了较多要求,如TPM,为了在相对老旧(性能尚可但不符合Windows11官方安装程序要求)的平台上安装Windows11,注册表如下:<syntaxhighlight lang="registry" line="1"> Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\Setup\LabConfig] "BypassTPMCheck"=dword:00000001 "BypassSecureBootCheck"=dword:00000001 "BypassRAMCheck"=dword:00000001 "BypassStorageCheck"=dword:00000001 "BypassCPUCheck"=dword:00000001 </syntaxhighlight> == Linux(如ubuntu)下设置代理。 == 在编译[[openwrt]]或者[[buildroot]]时,需要下载大量的源代码,此过程及其容易因为网速问题而失败(如只有几KB的网速)。 如果设置代理到国外(如硅谷),则能极大提高编译成功率。 openwrt/buildroot通常采用wget/curl作为下载工具。 下列为通过环境变量设置代理的方式(视情况不止wget或curl支持)。 {| class="wikitable" |+Wget支持的环境变量 !变量名称 !说明 !备注 |- |http_proxy |http代理 | |- |https_proxy |https代理 | |- |ftp_proxy |ftp代理 | |- |no_proxy |不代理的地址 |多个地址采用逗号分割,支持域名。如.cn表示中国的域名不使用代理 |} {| class="wikitable" |+curl支持的环境变量 !变量名称 !说明 !备注 |- |http_proxy |http代理 |唯一为小写的环境变量 |- |HTTPS_PROXY |https代理 | |- |[url-protocol]_PROXY |其它协议代理 |[url-protocol]为协议,如HTTPS则为https代理。 |- |ALL_PROXY |默认代理 |如某个协议未设置代理,则使用此值 |- |NO_PROXY |不代理的地址 |多个地址采用逗号分割,支持域名。如.cn表示中国的域名不使用代理 |} == 在Linux终端中使用与文件后缀关联的程序打开文件 == 在Windows的cmd窗口中,可使用文件名直接打开非可执行文件。而在Linux的终端中却没有此功能(Linux不靠文件后缀名判断文件类型)。 * 要在Linux的终端中要通过文件后缀名使用相应程序打开文件,可使用<code>mimeopen</code>命令,具体用法可使用<code>man mimeopen</code>命令查看帮助。 * 在桌面环境中,针对桌面应用可使用xdg-utils包的<code>xdg-open</code>工具, == 在Linux中不使用docker exec 进入容器 == 使用docker exec可方便进入容器, 但也有其缺点,即不能使用容器外的工具。有时需要排查网络,但容器中又无相关工具,便可以使用nsenter命令。<syntaxhighlight lang="bash" line="1"> #在使用nsenter命令前,需要获取目标容器中进程的pid,可通过ps -ef查看,下面使用pid代指目标容器的pid。 #进入容器(基本等于docker exec) nsenter -a -t pid 程序名及参数 #只使用容器网络 nsenter -n -t pid 程序名及参数 </syntaxhighlight> == 在WSL2中启动systemd == 通常为了使用docker,需要启动systemd,但systemd作为系统管理程序必须在pid为1时启动,因此可以使用unshare命令启动一个新的namespace绕过pid检测。 可使用以下命令启动systemd(在ubuntu 22.04中测试通过)。<syntaxhighlight lang="bash" line="1"> #启用systemd,只能启动一次(电脑重启或者wsl2闪退需要重新执行) sudo setsid unshare --fork -p --mount-proc /lib/systemd/systemd </syntaxhighlight>当systemd启动成功后,即可拉取镜像,测试镜像了。如需自启动可尝试修改/etc/profile或者添加脚本到/etc/profile.d/目录。 注意:此方法主要解决了启动systemd的问题,由于使用了namespace,需要使用nsenter进入namespace才能使用systemctl等命令。<syntaxhighlight lang="bash" line="1"> #使用nsenter需要获取systemd的进程pid,请使用ps -ef获取相关pid sudo nsenter -p -t pid 命令 </syntaxhighlight> == WSL1中libQt5Core.so.5无效 == 直接使用strip移除.note.ABI-tag即可.<syntaxhighlight lang="bash" line="1"> sudo strip -R .note.ABI-tag /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 </syntaxhighlight> == TCP/UDP 端口分配 == INNA端口分配:https://www.iana.org/assignments/service-names-port-numbers == 使用代理访问github.com == 由于网络原因,有时访问github.com时断时续且速度极慢,可通过代理访问github.com加快速度。 此处不展开描述代理服务的搭建,在进行下面的操作时需要有效的http/https代理服务器,否则操作完成后可能无法正常访问github.com。 === HTTP/HTTPS代理 === HTTP/HTTPS代理均可使用git配置完成,如下:<syntaxhighlight lang="bash" line="1"> git config --global http.proxy http://代理服务器:端口 git config --global https.proxy http://代理服务器:端口 </syntaxhighlight> === SSH代理 === SSH代理与HTTP/HTTPS代理不同,并非修改git配置而是修改ssh配置,利用ProxyCommand执行一个程序用于转发通信使用。 一般情况下,ssh全局配置的路径为/etc/ssh/ssh_config。 ==== MSYS2/Cygwin环境 ==== ssh_config配置新增配置如下:<syntaxhighlight lang="text" line="1"> Host github.com Port 22 ProxyCommand /usr/bin/connect.exe -H 代理服务器:端口 %h %p </syntaxhighlight>其中,connect命令需要手动下载并放入/usr/bin目录中。 [[文件:Connect.zip|居中]] connect源代码:https://github.com/gotoh/ssh-connect.git ==== Linux环境 ==== ssh_config配置新增配置如下:<syntaxhighlight lang="text" line="1"> Host github.com Port 22 ProxyCommand /usr/bin/nc -X connect -x 代理服务器:端口 %h %p </syntaxhighlight>通过nc(netcat)命令转发数据。 == 不使用root用户操作docker == 通常情况下,使用sudo直接操作docker,但sudo会切换到root用户,当使用virtualenv解决docker-compose的兼容问题时比较麻烦。 如果将当前用户加入docker用户组(在安装docker时创建)即可实现不使用sudo进行docker操作。<syntaxhighlight lang="bash" line="1"> #在ubuntu 24.04下测试通过。添加一次,重新登陆用户有效。 sudo adduser `id -nu` docker </syntaxhighlight>
返回
常见问题
。
导航菜单
个人工具
登录
命名空间
页面
讨论
大陆简体
查看
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
工具
链入页面
相关更改
特殊页面
页面信息