找到ubuntu2004.exe 一般在program files下windowsapps的一个目录里,然后进入命令行,输入ubuntu2004.exe config –default -user root
以后bash进入后,会是默认root用户,就可以直接passwd user改用户的密码
记得改完后再把默认登录用户改回来
sshd使用isa key远程登录
将ssh生成的key放入操作机的.ssh目录,并将信息放入.ssh配置的IdentityFile
在目标电脑上,把key pub放入目标设备该用户的.ssh目录,并执行:
cat id_rsa.pub >> authorized_keys
将该文件权限设置为600,.ssh目录权限设置为700
重启ssh服务:
service sshd restart
设置ubuntu为NAT网关
因为调试板卡需要,需要将一台能够上网的ubuntu电脑设为NAT网关使板卡能够上网更新包,设置过程如下:
首先安装工具:
sudo apt install iptables-persistent
添加规则
sudo iptables -t nat -A POSTROUTING -o eth0(外网网卡) -j MASQUERADE
保存
sudo netfilter-persistent save
然后可以查看规则是否启用
sudo iptalbes -t nat -L -v -n
看有没有SNAT或者MASQUERADE
然后启用ip转发
sysctl net.ipv4.ip_forward
sysctl -w net.ipv4.ip_forward=1
最后检查一下路由表,确认所有网络包都从外网口出。
设置转发规则
#准许内部到任何为止
sudo iptables -A FORWARD -i eth1(输入网卡) -o eth0(输出网卡) -j ACCEPT
#准许建立的连接到网络内部
sudo iptables -A FORWARD -i eth0(输入网卡) -o eth1(输出网卡) -m state –state RELATED,ESTABLISHED -j ACCEPT
21.从已经丢到只剩.git的目录中恢复文件
朋友的电脑出了意外,本地存的代码文件夹都只剩下了.git目录,其他文件全都不见了。.git目录下只有objects目录,git操作不认为这是一个git管理的文件夹。
没关系,让我们死马当活马医一下。
首先重建一下目录
在命令行进入.git 目录,创建一个HEAD文件
echo “ref:refs/heads/master” >.git/HEAD
创建文件夹:
mkdir -p .git/refs/heads
然后配置一下:
git config –file .git/config user.name “bobo”
git config –file .git/config user.email “xxxxx@xxx.com“
git fsck –full
输出的大致是:
notice: HEAD points to an unborn branch (master)
Checking object directories: 100% (256/256), done.
notice: No default references
xxxxx commit e245c3b8db9d65c62924f7aa10a4b8f3b369d4cb
复制一下最后那串e245c3b8db9d65c62924f7aa10a4b8f3b369d4cb,这个是hash。当你重建了git之后,原有的提交就成了悬空提交,但是仍然能够用hash访问
git checkout e245c3b8db9d65c62924f7aa10a4b8f3b369d4cb
好了,看看当前目录吧
补充,在过程中可能出现多个提交多个hash串的情况,需要挨个试试
内核编译需要准备的环境.md
确定下载内核需要执行如下指令:
先用lsb_release -a
apt search linux-source
sudo apt install linux-source
然后去/usr/src下找到文件,可以拷贝到home里自己目录下,解压缩。
如果想用现有配置,以前都是在proc下有个config.gz,现在一般是在boot目录下有个config
cp /boot/config-$(uname -r) ./.config
然后安装相关包:
sudo apt install libncurses5-dev libelf-dev dwarves
什么?连gcc都没有?
告辞!
用linux做一个网络损伤测试仪器
公司最近网络设备越来越多了,很多实验室环境都很好用,到现实环境就会出问题。考虑用linux做一个网桥,通过TC规则设置网络损伤、增加时延最好是随机时延,并引入一定量的丢包。
以下暂时还没试用,先记录一下:
linux tc 随机时延
在Linux中使用tc命令可以设置网络流量的控制规则。要为特定的数据包添加随机时延,可以通过修改qdisc(queue discipline)来实现。
下面是一个示例命令,将所有进入eth0接口的IPv4数据包的传输速度限制为1Mbps并且添加5ms到20ms之间的随机时延:
sudo tc qdisc add dev eth0 root handle 1: htb default 10
sudo tc class add dev eth0 parent 1: classid 1:1 htb rate 1mbit burst 1k
sudo tc class add dev eth0 parent 1:1 classid 1:10 htb rate 1mbit burst 1k
sudo tc filter add dev eth0 protocol ip parent 1: prio 1 u32 match ip src <源IP地址> flowid 1:10
sudo tc qdisc add dev eth0 parent 1:10 handle 10: netem delay random 5ms 20ms
其中,<源IP地址>需要替换成实际的源IP地址。这些命令会创建一个根类(root)、两个子类(class)和一个过滤器(filter),然后应用netem模块来引入随机时延。
linux作为网络损伤仪使用:
https://cloud.tencent.com/developer/article/2301767
为5G模块改名字
上了新的5G模块,发现lsusb只能识别pid和vid,没有名字,太难看了。
打开/usr/share/misc/usb.ids,搜索pid 2c7c,果然没有
增加2c7c 添加公司名称,增加0900,添加模块名称,保存。
不用重启,直接lsusb,顺利显示当前设备名称。
为一块交换机板卡打通音频驱动
隔壁组做了一块板子,从某交换机环境改的,加了一个usb音频设备,申请我支援打通这个设备。连上去一看,设备已经识别为TI 2903,但是dev/snd下面只有个timer。编译内核一看,版本很老,没有alsa?打开了OSS选项,重新编译之后,出现了control设备和PCM设备,这是最原始的波形接口。
apt-get install alsa-base alsa-utils pulseaudio
然后重启alsa
alsa force-reload
提示:
Unloading ALSA sound driver modules:.
Loading ALSA sound driver modules: (none to reload).
看来还是需要alsa驱动的,回头去内核里找。
原来alsa在内核里叫Device Drivers -> Sound card support -> Advanced Linux Sound Architecture。把所有的模块都启动了。
使用aplay xxx.wav 测试,正常输出音频。
mint系统下搜狗拼音出错调试
搜狗拼音
因为工作需要,新装了一个linux系统,选了mint 20.01,安装完之后,安装了vscode和搜狗拼音,搜狗拼音切换后,能够看到图标栏改变,但是没有输入框。全角标点可以输出,无法输入中文。
干掉输入法管理程序后手动启动
1 | killall fcitx |
发现报错libQtxxx no version information available.看来是Qt库状态不对,导致输入法界面切不出来。
重新安装qt无效。
仔细看看,原来搜狗自己带了一个qt库,放在/opt/sougoupingyin/files/lib/qt5/lib下面。从系统目录/usr/lib/x86_64-linux-gnu/拷贝所有qt库到这个目录下,重新启动输入法,顺利输入中文。