November 2019

Virtualbox里安装Arch虚拟机注意事项

1.如果是要启用EFI固件模式,需要在系统设置里勾选Enable EFI (special OSes only),如下图

 

2. 如果需选择NVMe控制器,应在存储设置的界面里先添加NVMe controller,之后再新建磁盘。

 

3. 按照如上方式安装的系统如果不经特殊设置,无法直接启动,安装好Arch后,可以作如下设置

具体原因见Arch Wiki: https://wiki.archlinux.org/index.php/VirtualBox#Installation_steps_for_Arch_Linux_guests

 

4. 启用EFI模式和不启用这两种情况下,安装引导的方式不尽相同。

对于EFI模式,命令如下:

而对于非EFi模式,即BIOS+MBR方式,安装命令为:

如果引导安装命令和分区方式没有对应,系统将无法启动。

 

5. 为什么作者那么闲,在Vmware里装完又在Virtualbox里装…

emm…

Vmware里实在卡,不知道什么原因。

 

6. 安装Guest addtion tools注意事项

Arch官方Wiki谈到Vitualbox官方Guest addtion tools映像不适用于Arch,作者试过后发现是可以的,反而Arch建议的vm-open-tool好像没有正常工作,其中有个小插曲,旧版Guest addtion tools,貌似是6.0.10一直装都失败,后来作者去下载了最新6.0.14版本安装后顺利完成。另VMSVGA无法调整分辨率,也无法全屏,换成VboxVGA后顺利工作。如果读者也遇到同样的问题,不妨换成VboxVGA尝试一下。…

Continue reading...

Vmware虚拟机安装Arch Linux系统

注:本篇文章并不是事无巨细的安装教程,省略了很多步骤,只讲一些注意事项。

一. 注意事项

 

图中的设置可以按标号找到,这里的固件类型选择将直接影响后面Arch安装引导的差异,如果选择BIOS之后硬盘分区不应该分出EFI分区,安装引导的命令为

如果选择UEFI,则之后硬盘需要有一个引导分区EFI分区,引导安装命令为:

如果固件类型和引导安装命令以及分区方式没有严格按照以上描述进行,系统将无法正常启动!

 

二. 分区

根据一中选择的固件类型操作分区,二者的差异如下:

UEFI: 必须包含 EFI分区 + 根分区   <途中需要输入g创建gpt表>

BIOS: 单个根分区即可   <途中需要输入o创建DOS 系统标签>

 

三. 准备安装

可以参照这篇文章的步骤,写得确实很好

以官方Wiki的方式安装ArchLinux

因为命令太多,有些用得又少,作者平时修复系统还需要经常上去参考一些命令。

 

或者可以使用作者写的脚本进行安装,脚本下载方式为:

安装命令为:

/dev/nvme0n1: 这是硬盘设备名字,每个人的不一定一样,有些可能为 /dev/sda,按各自情况填写即可

username: 在安装系统时创建的用户,必须小写

Hostname: 主机名,大小写不要求

efi/bios: 前面选择的固件类型,填写efi或者bios

nvme/sdx: 硬盘是nvme的还是形如sda, sdb等的,fdisk -l输出如果带nvme,则填nvme,否则填sdx,这格式的差别是由我们创建虚拟机时候的相关设置决定的。

 

脚本会根据输入参数安装系统、引导到指定磁盘,并创建用户,安装Gnome桌面,由Xorg提供服务,桌面登录管理器为gdm,普通用户和root用户的初始密码均设置称4个空格键

 

另:作者测试自己脚本的时候不可能会遇到所有的问题,所以有一定概率脚本在其他机器上无法成功安装甚至损坏系统,丢失数据等,由此造成的一切损失作者概不负责,读者有权决定不选择使用此脚本安装,如果选择了,自行承担脚本可能造成的一切损失。

 …

Continue reading...

在Vmware虚拟机中安装的Arch Linux里安装Vmware-tools

这标题起的有点拗口…

 

一. 安装 open-vm-tools

Arch wiki上有提到官方的Vmware-tools不适用于arch系统,打了补丁可以使用,但是太麻烦了,我们优先选择这个简单的方式。

 

二. 安装其他依赖

作者装好后,屏幕还是无法全屏(官方wiki提到的是分辨率,一样的意思),就是少了一些依赖,这里一并安装防止此问题。

 

三. 相关设置

1.虚拟机设置:View -> Autosize -> Autofit Guest , 此项应该被勾选

 

2.编辑/etc/mkinitcpio.conf,找到MODULES,添加以下括号里的容

之后回到终端执行:

 

3.自启动设置

 

4.重启

 

 

参考:https://wiki.archlinux.org/index.php/VMware/Installing_Arch_as_a_gues

Continue reading...

Arch Linux pacman -Syu 超时错误可能原因分析

今天突然遇到这个问题,平时用地好好的mirrorlist突然就不可用的感觉,复制了错误报告信息网上搜索,受到用ping检查网络联通性的启发,虽然作者网络可以用,但确实慢了很多,推测是DNS出了问题,遂打开Gnome的设置(setting),修改了有线网络的DNS选项内容,断网重连后问题解决。

找到网络,有线连接的设置,进去后打开IPv4和IPv6的选项,关闭DNS后面的Automatic,在文本框里填入适当的DNS服务器的IP地址 (这个可以从网上搜索国内哪些DNS比较好用)

最后关闭重连网络即可…

Continue reading...

Gnome-keyring密码更改后Chrome无法保存并自动填充网页密码

gnome keyring甚是扰人,设置了一个空密码或者是直接禁用都出现了问题,禁用导致Chrome无法启动,设置空密码导致Chrome提示保存的密码均没有实际被保存到,后来在网上看到了解决办法,这里纯当做个记录,防止后续再次遇到忘了解决办法。

解决办法:关闭登录的谷歌账号,并勾选以下选项,之后重新登录就可以了。

Continue reading...

Python the difference between re.match and re.findall

1.Usage

 

2. Difference

match will only return one value which is first matched in string, and the type of return value is <class ‘re.Match’>

findall will return all matched options in string , and the type of reutrn value is <class ‘list’>…

Continue reading...

Linux 开发51单片机的方案

一. 安装编译软件

编译需要使用SDCC,此时编译出来的是hex文件,如果需要转成bin格式,需要用到hex2bin

貌似还要一个驱动?

这几个安装好即可。

 

二. 安装IDE

如果需要使用IDE,可以选择MCU 8051,注意这个IDE用的头文件不是Keil那般,应为

对端口的定义也不是用sbit,而是形如:

也就是端口可以直接拿来用,如P0_1, P0_2……

 

三. 配置烧录软件环境

以上搞定好后需要一个下载或者说烧录软件,以前用过stcflash,stcgal,但是问题很多,经常下载不了,读者有兴趣可以尝试,也许对于你来说就是可行的。

这里我找到了另一个办法,用stc-isp,即Windows下的软件,在此之前需要为Linux安装一个wine环境,但这里不赘述wine的安装和配置。

之后在终端里试着运行

大概率会报错,告知我们缺失哪些dll文件,可以在终端运行

通过上面的命令可以补全缺失的dll文件,作者这边挂了代理才安装成功,有点坑,如果你安装失败的话,试着从网上直接下载安装。

 

四. 将串口设备映射到stc-isp需要使用的COM口上

经过以上步骤stc-isp应该可以成功运行起来,但是其下载使用的串口名是COMx,Linux对应的设备文件是形如/dev/ttyUSB0,所以我们需要做一个简单的映射.

执行上方命令打开注册表,展开 HKEY_LOCAL_MACHINE\Software\Wine\Port , 然后右键Port,New一个String Value, 名字为COMx, Value值为Linux串口设备文件。

终端执行 wineserver -k 关闭wine,再启动stc-isp

按上图步骤分别完成芯片型号选择,COM口选择(COM口是前面设置的字符串名称,记得对应),再打开hex文件,波特率不要调太高,容易下载失败,之后点击Download Program,对单片机进行冷启动(关上电,再通电),就可以下载成功了。

 

五. 创建入口图标

1.  sudo vim  /usr/share/applications/STCISP.desktop

复制以下内容到文件中并保存退出

2. 安装入口图标

3. 刷新入口图标缓存

 

经过如上处理,点击图标就可以直接运行下载程序了(Gnome是按Super键搜索入口图标)

 

SDCC Makefile参考

 …

Continue reading...

Swap File

文章截取自: https://wiki.archlinux.org/index.php/Swap#Manually

懒得每次都要去搜索。

Swap file

As an alternative to creating an entire partition, a swap file offers the ability to vary its size on-the-fly, and is more easily removed altogether. This may be especially desirable if disk space is at a premium (e.g. a modestly-sized SSD).

Warning: Btrfs supports swap file with limitations since Linux kernel version 5.0. See Btrfs#Swap file for more information.

Manually

Swap file creation

For copy-on-write file systems like Btrfs, first create a zero length file, set the  No_COW attribute on it with chattr, and make sure compression is disabled:

See Btrfs#Swap file for more information.

Use  fallocate to create a swap file the size of your choosing (M = Mebibytes, G = Gibibytes). For example, creating a 512 MiB swap file:

Note: fallocate may cause problems with some file systems such as F2FS.[1] As an alternative, using dd is more reliable, but slower:

Set the right permissions (a world-readable swap file is a huge local vulnerability):

After creating the correctly sized file, format it to swap:

Activate the swap file:

Finally, edit the fstab configuration to add an entry for the swap file:

For additional information, see fstab#Usage.

Note: The swap file must be specified by its location on the file system not by its UUID or LABEL.

Remove swap file

To remove a swap file, it must be turned off first and then can be removed:

Finally remove the relevant entry …

Continue reading...

Linux 下 Virtulbox 中 Win10 vdi格式虚拟机迁移至 Vmware 过程遇到的问题及解决办法

1.终端执行以下命令转换vdi格式文件为vmdk格式:

 

2.按正常步骤到Vmware中新建虚拟机,最后添加已有磁盘到该虚拟机中,网上有很多相关文章,这里不赘述。

 

3.启动Win10虚拟机,之后一般都要安装 Vmware Tool , 相当于一个增强功能包,这里有一个需要注意的,如果直接安装,很大可能在中途发生蓝屏并导致Win10无法正常启动

一开始我以为是有些工具包不兼容之类的,去除好几个后仍然出现同样的情况,但是在失败过程中好像看到过转瞬即逝的一个画面,显示有vbox。

当时推测是Virtulbox遗留的程序影响所致,便尝试用安全模式启动进系统,定位到Virtulbox工具的安装目录C:\Program Files\oracle\ 然后手动卸载,重启后再安装Vmware Tool,果然就成功了,说明问题真的在这里!

 

Virtulbox是真的慢啊,本来感觉不是特别明显,后来用了一个对硬件要求很高的软件,延迟太大受不了了,迁移到Vmware后速度提升了相当多。

 

End。…

Continue reading...

Altium Designer 使用笔记

画板一般步骤:

1.先画原理图,从库里面寻找,如果没有,需要自己画原理图和对应的PCB封装,所谓PCB封装,是指包含了元器件尺寸、引脚等相关信息,对应于 Print Circute Board 印刷电路板上印制出可焊接该元器件所需的焊盘和空间的概念图。

注意原理图引脚标号和PCB封装的引脚标号要一一对应。

2.原理图画好后,将未用到的引脚加上NO ERC检查标志(小叉号)

3.展开工程菜单,选择Compile Document,然后展开查看菜单->Workspace Panels -> System -> Messages, 有错误先拍错,如果没有继续往下。

4.打开PcbDoc文件,选择 设计(Design)->Import Changes From PCB…

然后依次点击左下角的  生效更改 -> 执行更改 -> 完成

5. 调整PCB布局,并在Keep-out layer层限定板子大小范围

6. 设计 -> 板子形状 选一个操作,将禁止布线层之外的空间裁剪

7. 展开 设计 -> 规则 进行相关规则设计,主要包括GND,VCC,一般网络线的线宽以及他们的优先级,拓扑排序,布线间距,以及Manufacturing相关配置(主要是顶层丝印层的相关间距,焊盘尺寸等限制取消),防止DRC检查报错。设置完后记得应用

8. 自动布线 -> 全部 -> Default 2 Layer Board -> Route All 可以锁定已有布线。等待布线完成,记得查看Message有无出错。

9. 取消布线在 工具->取消布线->全部

10. 适当手工调整布线。

11. 工具 -> 补泪滴

12. 放置 -> 多边形铺铜 (进行铺铜层和链接到的网络选择,将铜铺到所有相同的网络中,双层板,底层和顶层都要)

13. 有需要包地的(如信号线,晶振等),放置 -> 多边形填充挖空 或者对于网络: 编辑 -> 选中 -> 网络 , 工具 -> outline selected Objects,  编辑 -> 选中 -> select connected copper, 然后删除包围导线周围的铜皮。

14.工程 -> Compile PCB Project…, 查看Messages是否有错误发生并纠错

15.报告->板子信息->报告->选择最后一个Routing Information->报告 从生成信息中查看是否有漏连的网络布线。

16.  工具 -> 设计规则检查 -> 左下角运行DRC查看规则检查和Warnings

17. 四周放置焊盘,之后在工具->多边形->repour all进行自动重新铺铜

18. 圆角处理

19. 制造输出,将1,2输出

Gerber文件中layers table 里选中Used on,只输出用到了的图层, NC Drill Files里直接输出即可。

 

最后工程目录下会多一个含Output的文件夹,打包发给制造厂商即可。

另文章并不是一步一步操作过程中写下的,仅凭记忆+后期回去软件稍微展开菜单看了下,可能有错漏的地方,只做基本参考。…

Continue reading...