Windows 10 下使用wsl2编译Openwrt

装备环境-准备并安装wsl

  • 启用wsl

    使用powershell或windows组建添加或删除启用wsl(Windows Subsystem Linux)及虚拟机平台(VirtualMachinePlatform)

    powershell:

    dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
    dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

    windows组件:

    在windows组件中勾选wsl及VirtualMachinePlatform即可

    使用wsl2依赖于VirtualMachinePlatform,如使用wsl v1无需启用该组件

  • 安装wsl2并安装linux发行版本

    使用wsl2需要升级wsl内核,下载并安装wsl内核,然后到microsoft商店安装linux发行版本(如ubuntu)。

编译openwrt

  • 迁移wsl发行版本(系统分区空间充足的可忽略)

    获取LxRunOffline对系统中wsl发行版本进行目录迁移。

    1. 查看wsl发行版本

      lxrunoffline l

      Ubuntu

    2. 迁移wsl发行版本目录

      lxrunoffline m -n Ubuntu -d d:\test
    3. 确认转移

      lxrunoffline di -n Ubuntu

      d:\test

  • 启用windows大小写区分特性

    fsutil.exe file setCaseSensitiveInfo d:\test enable

    在启用大小写区分前写入的数据保持原有特性,新写入文件才拥有大小写区分特性

  • 获取openwrt源码开始编译

    将openwrt源码拉取到wsl用户目录,执行编译即可

    $ make menuconfig
    $ make V=s

tomcat 修改web端口及时区

默认web端口

修改conf/server.xml, Connector port

 <Connector port="8088" protocol="HTTP/1.1" 
              connectionTimeout="20000"               
              redirectPort="8443" />

时区

修改bin/catalina.sh,JAVA_OPTS中添加 -Duser.timezone=GMT+08

JAVA_OPTS="$JAVA_OPTS -Duser.timezone=GMT+08 $JSSE_OPTS"

openwrt 无法找到共享库libgcc_s.so.1

出现这个问题是今天在安装某个ipk包,所依赖的libgcc由于系统已存在,所以将其从/lib下移至/root/中,随后发现大部分命令依赖于libgcc导致无法使用。好在export正常工作,将LD_LIBRARY_PATH设置为libgcc所在目录/root,使其他工具正常使用。

export LD_LIBRARY_PATH=/root

 

virt-manager

无法创建虚拟网络:Failed to initialize a valid firewall backend

安装ebtables、dnsmasq,重启libvirtd

##debian
apt install ebtables dnsmasq

##arhch
pacman -S ebtables dnsmasq

 

sony遥控器

一、SONY的机型不需任何设定就能够使用装上电池就能直接遥控电视机不过要测试一下按键相关对应的功能(登入后即可检视图片)

二、输入品牌代码 (留邮箱地址向客服索取)

1)按住SET键3秒直到灯亮起,然后同时按下要设定的组态键(如DVD)
(2)输入品牌代码
如果不想看那密密麻麻的品牌代码表,也可以上官网查询

三、自动搜寻法
(1)打开要遥控的机器电源,将遥控器对准机器
(2)按住SET键3秒直到灯亮起,然后同时按下要设定的组态键(如AMP)
(3)依序键入9、2、2,SET灯会闪3下
(4)按住PLAY键直到机器电源关闭再放开
(5)按下方向键中间的确定键完成设定(试着用这方式搜寻MOD,虽然MOD的遥控讯号灯有亮但是最终并没有关闭电源,所以MOD无法用此方法设定)

四、一对一学习,也是最实用的功能 (一定要使用全新电池, 不要使用充电电池之类的旧电池)
(1)将要学习的遥控器面对面放置约3~8cm

(2)按住SET键3秒直到灯亮起,然后同时按下方向键中间的确定键
(3)依序键入9、8、8,SET灯会闪3下
(4)按下要设定的组态键(如CBL),组态灯会亮起

(5)按下要学习的按键,SET灯会闪1下 (要学习长按的时候请长按) (第5或第6步不行,或异常退出的都是电量不足引起的,请换全新电池)
(6)在要被学习的遥控器按下要学习的键,学习成功SET灯会闪3下,然后组态键的灯会熄灭 (要学习长按的时候请长按)
只要重复(4)~(6)的步骤就可以完成所有按键设定
建议在设定前心里先有个谱想想哪个要对应哪个按键
不然设定时会有点手忙脚乱,按错或过了30秒又要重按一次步骤(1)~(3)

成功地完成MOD遥控器的设定了热血

※如过要设定功能给组态键,只要把步骤(4)、(5)改为按住组态键3秒
Ex:把切换讯源的功能指定给DVD组态键
那遥控器按下DVD时就可以同时切换讯号到DVD

取消单一按键功能记忆:
(其实重新学一次复盖原来设定也可以,取消是让它变成无功能按键)
(1)按住SET键3秒直到灯亮起,然后同时按下方向键中间的确定键
(2)依序键入9、0、4,SET灯会闪3下
(3)按下要取消的组态(如CBL),组态灯会亮起
(4)按下要取消功能的按键,SET灯会闪3下表示取消成功

取消一个组态下的所有按键功能记忆:
(1)按住SET键3秒直到灯亮起,然后同时按下方向键中间的确定键
(2)依序键入9、0、5,SET灯会闪3下
(3)按下要取消的组态(如CBL),SET灯会闪3下表示取消成功

所有功能回复出厂默认值
(1)按住SET键3秒直到灯亮起,然后同时按下方向键中间的确定键
(2)依序键入9、0、0
(3)按下方向键中间的确定键,SET灯会闪3下表示设定完成(登入后即可检视图片) PS:连续指令设定方法:
(1)按住SET键3秒直到灯亮起,然后同时按下方相键中间的确定
(2)键入9、8、1,SET灯会闪3下
(3)按一下要设定的SYSTEM CONTROL键(遥控器最下面的1、2、3、4)
(4)输入要设定的连续指令
(5)设定完成后按一下SET键,SET灯会闪3下表示设定完成
取消方式:
(1)重复上列(1)、(2)
(2)按住要取消功能的SYSTEM CONTROL键3秒,SET灯会闪3下表示取消成功

openmediavault php无法运行的问题

根据官方文档的指引下安装openmediavault,一路来到apt安装软件包的步骤,php-fpm无法启动便无法继续后续,如下:


Apr 13 04:42:36 bananapim3 systemd[1]: Starting The PHP 7.3 FastCGI Process Manager...
Apr 13 04:42:36 bananapim3 php-fpm7.3[27202]: [13-Apr-2020 04:42:36] ERROR: unable to bind listening socket for address '/run/php/php7.3-fpm.sock': No such file or directory (2) 阅读更多 openmediavault php无法运行的问题

caja 更改默认终端

caja文件管理器默认配置打开的终端为mate-terminal,当系统未安装mate-terminal时,点击右键在终端中打开则无响应,因为无法调用mate-terminal,解决方法是手动装一个mate-terminal或是将其默认则改为其他当前系统中已有的终端。如果在caja中点击右键未发现有“在终端中打开选项时”,需要安装caja-open-terminal扩展,该扩展在不同linux发行版本中的包名可能不同。

  • $ gsettings set org.mate.applications-terminal exec $TERM
  • 也可以通过caja配置扩展中修改,caja菜单栏-编辑-首选项-扩展,打开终端-配置扩展,将终端应用程序修改为当前系统中已安装的终端。

linux中使用curl通过pfsense captive portal 认证

使用网络ping检测,每次发两个icmp包,如果检查某个公网IP不通时,则执行pfsense portal认证。

#!/bin/sh
while :
do
ping -c 2 baidu.com
[ $? -ne 0 ] && curl -d "auth_user=$user&auth_pass=$password&accept=Continue&zone=whitelist" -v http://192.168.1.1:8002/index.php\?zone=whitelist

sleep 10
done
 nohup portal_auth.sh >/tmp/auth.log 2>&1 &

 

Linux中交叉编译8812au驱动-NanoPi Neo2

构建NanoPi Neo2交叉编译环境

# apt install build-essential

配置编译工具链

Linaro下载gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu.tar.xz ,解压到/opt

# tar xvf gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu.tar.xz -C /opt

将/opt/gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu/bin 添加到PATH中

$ export PATH=$PATH:/opt/gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu/bin

编译内核

阅读更多 Linux中交叉编译8812au驱动-NanoPi Neo2

windows 10 无法访问samba服务器

widnows 10 无法访问某些samba服务器的原因,是因为windows 10默认安全策略不允许访问不安全的samba服务器(如smb 1.0版本),建议停用smb 1.0版本的服务器,详见 禁用SMB1协议

如有必要访问,修改注册表

计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters

将AllowInsecureGuestAuth值修改为1

Plex端口

  • TCP 32400:Plex Media Server
  • UDP 1900: Plex DLNA Server
  • TCP 3005:Plex Companion
  • UDP 5353:network discovery
  • TCP 8324:Roku via Plex Companion
  • UDP 32410, 32412, 32413, 32414:network discovery
  • TCP 32469:Plex DLNA Server

Gammu SMSD

安装gammu配置网卡

apt-get install gammu

查看usb 网卡modem

ls /dev/ttyUSB*

大部分网卡使用的是最后一个,如 ls /dev/ttyUSB*,看刀最大数值为2,则使用ttyUSB2

# ls /dev/ttyUSB*
/dev/ttyUSB0  /dev/ttyUSB1  /dev/ttyUSB2

安装完成运行gammu-config配置,配置文件会保存在~/.gammurc

gammu-config

阅读更多 Gammu SMSD

Linux—性能:获取性能情况

uptimefreetop

原文:Exercise 28. Performance: getting performance stats, uptime, free, top

译者:飞龙

协议:CC BY-NC-SA 4.0

自豪地采用谷歌翻译

这个练习很简单。首先,我们需要什么样的性能数据?

  • CPU 使用情况:
    • 它的负载如何?
    • 哪些进程正在使用它?
  • 内存使用情况:
    • 使用了多少内存?
    • 多少内存是空闲的?
    • 多少内存用于缓存?
    • 哪些进程消耗了它?
  • 磁盘使用情况:
    • 执行多少输入/输出操作?
    • 由哪个进程?
  • 网络使用情况:
    • 传输了多少数据?
    • 由哪个进程?
  • 进程情况:
    • 有多少进程?
    • 他们在做什么 工作,还是等待什么?
    • 如果在等待什么,它是什么呢?CPU,磁盘,网络?

为了获取这些情况,我们可以使用以下工具: 阅读更多 Linux—性能:获取性能情况

Sony NW-A45

支援的格式

音樂

MP3(.mp3)

32 kbps – 320 kbps(支援變動位元速率(VBR))/ 32 kHz,44.1 kHz,48 kHz

WMA(.wma)

32 kbps – 192 kbps(支援變動位元速率(VBR))/ 44.1 kHz

FLAC(.flac)

16位元,24位元/ 8 kHz – 192 kHz

WAV(.wav)

16位元,24位元,32位元(浮動小數點/整數)/ 8 kHz – 192 kHz

AAC(.mp4,.m4a,.3gp)

16 kbps – 320 kbps / 8 kHz – 48 kHz

HE-AAC(.mp4,.m4a,.3gp)

32 kbps – 144 kbps / 8 kHz – 48 kHz

Apple Lossless(.mp4、.m4a)

16位元,24位元/ 8 kHz – 192 kHz

AIFF(.aif, .aiff, .afc, .aifc)

16位元,24位元,32位元(浮動小數點/整數)/ 8 kHz – 192 kHz

DSD(.dsf, .dff)

1位元/ 2.8224 MHz, 5.6448 MHz, 11.2896 MHz

*輸出轉換為線性PCM的音訊。

APE ( .ape)

8位元,16位元,24位元/ 8 kHz – 192 kHz(快速,一般,高)

MQA ( .mqa.flac)

支援

注意

  • 取樣頻率也許無法對應所有編碼器。
  • 有著作權保護的檔案不能播放。
  • 視取樣頻率而定,會包含非標準位元率或不保證能用的位元率。
  • 無法播放4 GB(APE則是2 GB)或更大的檔案。
  • 本產品會將超過CD品質(44.1 kHz/16位元量化)與DAT品質(48 kHz/16位元量化)的音源當成高解析度音訊。
    高解析度音訊來源會顯示“HR”符號。

阅读更多 Sony NW-A45

在debian中安装resilio sync

一、添加官方提供给基于debian系的源,创建一个新文件(如/etc/apt/source.list.d/resilio-sync.list),或是直接写进去/etc/apt/source.list:

echo "deb http://linux-packages.resilio.com/resilio-sync/deb resilio-sync non-free" | 
sudo tee /etc/apt/sources.list.d/resilio-sync.list

然后添加公钥:

wget -qO - https://linux-packages.resilio.com/resilio-sync/key.asc | apt-key add -

curl -LO http://linux-packages.resilio.com/resilio-sync/key.asc && apt-key add ./key.asc

阅读更多 在debian中安装resilio sync

linux中查找文件中相同文本

前几天有朋友问到我这问题,说是要对比两个文件中的数据,找出内容一样的。

看了一番,还是在linux下用fgrep最为简单:

fgrep -xf a.txt b.txt 

这样就可以了,若要把内容保存至新文件中:

fgrep -xf a.txt b.txt > c.txt

另grep用可以做到,用法:

grep -F -x -f a.txt b.txt

 

 

qedit.h (windows directshow dev)

vs编译时找不到qedit.h、streams.h, 安装windows sdk v6.1,在工程属性中编辑include目录,将windows sdk include和Samples\Multimedia\DirectShow\BaseClasses加入其中, 在include <qedit.h>前添加:

	#pragma include_alias( "dxtrans.h", "qedit.h" )
	#define __IDxtCompositor_INTERFACE_DEFINED__
	#define __IDxtAlphaSetter_INTERFACE_DEFINED__
	#define __IDxtJpeg_INTERFACE_DEFINED__
	#define __IDxtKey_INTERFACE_DEFINED__
	#pragma include_alias( "dxtrans.h", "qedit.h" )
	#define __IDxtCompositor_INTERFACE_DEFINED__
	#define __IDxtAlphaSetter_INTERFACE_DEFINED__
	#define __IDxtJpeg_INTERFACE_DEFINED__
	#define __IDxtKey_INTERFACE_DEFINED__

PyQt5 Anaconda3 Eric6开发环境

首先下载anaconda3并安装,如果在此之前安装了其他python解析器,先将他们卸载。

Downloads

anaconda安装完之后,打开Anaconda Prompt,安装qscintilla(eric6需求):

pip install qscintilla

 

中间如出现权限问题而无法安装qscintilla,检查一下是否有其他python进程在运行,终止所有python进程后重试。

在安装完anaconda和qscintilla之后,就可以开始eric6了,打开解压后的eric6目录中install.py开始安装eric6 ide。

https://eric-ide.python-projects.org/eric-download.html

eric6中打开qtdesigner文件是提示无法找到qtdesigner的问题, 打开anaconda promot,安装pyqt5-tools:

pip install pyqt5-tools