Antkillerfarm Hacking V7.0

Fedora, CentOS, DKMS

2018-02-20

Fedora

Fedora作为主要的Linux发行版之一,我虽然用的不多,但实际上这却是我最早接触的Linux发行版。后来换用Ubuntu,很大的原因是因为:这是Google为Android选择的开发平台。

最近因为工作需要重新捡起了Fedora。但公司所用的版本太过古老,还是2009年的Fedora 12。所以想了一下,开始试用最新的Fedora 22(2015.2)。这里是使用过程中的一些操作笔记。

安装

https://getfedora.org/

这是官方的下载地址。这里我用的是Workstation版本。

Fedora 22的默认桌面是GNOME 3.16,这一版的外观借鉴了Mac OS X的一些设计,让人眼前一亮。

安装软件

Fedora 22使用dnf替代yum。因此安装基本gcc开发环境,可用如下命令:

dnf install gcc kernel-devel patch bison flex subversion

如果下载速度较慢的话,可以在/etc/dnf/dnf.conf最后添加:

fastestmirror=true

保存后,执行

$ sudo dnf clean all
$ sudo dnf makecache

此外,和Ubuntu一样,Fedora也有自己的网站可以查询软件包信息:

https://admin.fedoraproject.org/pkgdb/

使用yum

在RHEL中,可以使用yum从网上下载相应的组件,但需要RHN号,所以我现在换用了CentOS。当你需要使用yum的时候,如果yum找不到相应的组件时,可以在组件名之前加lib,或者在之后加-dev或-devel。

共享文件夹

我用的是VirtualBox的虚拟环境,因此除了在VirtualBox中,设置共享文件夹之外,还需对Fedora进行如下操作:

1.添加用户到vboxsf中。

usermod -a -G vboxsf <your user name>

2.重启。(这一步必不可少,否则上面的配置不会生效。)

这样就可以在Fedora中浏览共享文件夹了。

CentOS

关于repo设置

最近在数台PC上部署软件,系统都是CentOS 6。结果发现其中有一台机器无法使用yum安装软件。

解决办法:

1.进入/etc/yum.repos.d中删除CentOS6-Base.repo之外的所有文件。

2.yum clean all

第1步很重要,从事后情况来看,故障是由于某些之前的repo现在已经无法连接所致导致的。

start-stop-daemon

start-stop-daemon是Ubuntu中用的比较多的工具,但是CentOS中并没有。由于start-stop-daemon在ubuntu的dpkg包中,和apt关系比较近,因此直接下载源码,也不是个好办法。

https://packagecloud.io/willgarcia/start-stop-daemon/install

上面的网页提供了一种办法。但是由于网络不好,中间步骤的文件有时需要手动下载才行。

关于epel

1.安装epel源

yum install epel-release

2.修改/etc/yum.repos.d/epel.repo

将mirrorlist中的https修改为http。否则,会报如下错误:

Error: Cannot retrieve metalink for repository: epel

DNF

yum install dnf

这个似乎需要Cent OS 7以上,Cent OS 6反正是不行的。

关于VNC

1.安装

yum install tightvnc-server

这里虽然包名叫做tightvnc-server,但实际上用的是tigervnc-server,因此以后者为包名来安装也是可以的。

2.初次启动,设置密码

vncpasswd

3.配置分辨率、端口

修改/etc/sysconfig/vncservers:

## Single User ##
VNCSERVERS="1:<user name>"
VNCSERVERARGS[1]="-geometry 1280x1024"

默认端口一般是5900~5904。这里的数组下标表明它使用的端口是5901。

4.启动服务

/etc/init.d/vncserver start

参考:

http://www.tecmint.com/install-tightvnc-remote-desktop/

Install TightVNC Server in RHEL/CentOS and Fedora to Access Remote Desktops

DKMS

我们都知道,如果要使用没有集成到内核之中的Linux驱动程序需要手动编译。而Linux模块和内核是有依赖关系的,如果遇到因为发行版更新造成的内核版本的变动,之前编译的模块是无法继续使用的,我们只能手动再编译一遍。

DKMS(Dynamic Kernel Module Support)可以帮我们维护内核外的这些驱动程序,在内核版本变动之后,可以自动重新生成新的模块。

示例:

https://github.com/antkillerfarm/antkillerfarm_crazy/tree/master/linux_driver/dkms

DKMS管理的驱动的安装路径:/var/lib/dkms

2022.7

8年过去了,内核的编译方式略有改动,原来需要两个makefile,现在一个就够了。

Q:ifneq ($(KERNELRELEASE),)会使makefile执行两次,为什么?

A:第一次读取makefile时,因为ifneq的存在,先执行了make -C $(KDIR) M=$(PWD

-C $(KDIR):指明跳转到内核源码目录下读取那里的Makefile

M=$(PWD):表明返回到当前目录继续读入、执行当前的Makefile

从内核Makefile返回时,KERNELRELEASE已被定义,kbuild也被启动,make将继续读取else的内容。

参考:

https://blog.csdn.net/fouweng/article/details/53435602

DKMS简介

https://codeleading.com/article/93045146650/

Makefile中($(KERNELRELEASE),)执行分析

Ubuntu使用技巧+

打印机

一般使用sane做为扫描仪后端:

sudo apt-get install sane sane-utils xsane

Virtual MIDI Piano Keyboard

VMPK是一款MIDI生成工具软件,也就是俗称的“虚拟电子琴”软件。但它本身只生成MIDI输出,需要配合使用MIDI后处理软件,才能发声。常见的MIDI后处理软件有Qsynth、TiMidity。

电源方案

2023.5

最近,儿子乱动我的笔记本电脑,惹出了事端。

具体现象:

开机风扇狂转,软件一测,转速达到5600转,几乎满速。

最开始怀疑,是否是摇松了CPU,导致风扇接触出了问题。但是软件看温度也就70左右,远没有到警戒线(这个一般在90度左右,100+会导致CPU直接关机保护)

最后一查才知道,系统有个叫做电源方案的东西,无论Win,还是Linux都有。

如果选择性能优先,那CPU自然怎么快,怎么来。

如果选择平衡或者节能的话,CPU会自己降频,避免关机保护,或者如本例中的快速升温——在点击应用瞬间,温度从40+飙升到75+。

一般来说,只要峰值温度控制得当,积热其实并不是啥问题。CPU不可能随时都是满负荷,稍微歇一下,积热就散走了。

无线网卡

2023.8

最近,无限网卡突然失灵,上网一查才发现,华硕这几代笔记本由于布局问题,固态硬盘的热量会烧坏附近的网卡芯片。

幸好手里还有一个闲置的USB无线网卡。但是插上网卡,驱动不识别。

经查,该型号网卡的驱动早已集成进内核主线,但是默认并未打开。

解决方法:

sudo modprobe mt7601u

当然这个还是不方便,需要每次手动打开。

https://qastack.cn/unix/71064/systemd-automate-modprobe-command-at-boot-time

systemd:在启动时自动执行modprobe命令

Ubuntu字体相关

最近gitk中文显示不正常,明明系统的字体是很多的,但可以设置的却甚少。后来发现这里能够设置的并非系统字体,而只是X11字体。

列出字体:

xlsfonts

找到系统字体文件夹,生成fonts.dir文件:

sudo mkfontscale -o fonts.dir .

加载fonts.dir文件:

xset +fp /usr/share/fonts/X11/misc

文泉驿字体是最知名的中文免费字体:

sudo apt install ttf-wqy-microhei ttf-wqy-zenhei

X Desktop Group

设置XDG_CACHE_HOME可以将cache文件移动到较快的介质如SSD中,从而加速运行。或者移动到较大的分区,以腾出系统空间。

https://www.cnblogs.com/zqb-all/p/10666474.html

Linux实用命令之xdg-open

https://blog.csdn.net/u014025444/article/details/94029895

linux的XDG基本目录规范

便签软件

主要有两类便签软件:

1.支持超链接的便签。典型的有Gnote和Tomboy,这两个软件都有内容检索的功能。

2.桌面随意贴。典型的有Indicator Stickynotes和Knotes。后者有内容检索的功能,而前者没有。

xournalpp

xournalpp是一个手写笔记软件。

官网:

https://xournalpp.github.io/

安装:

sudo snap install xournalpp

Excalidraw

Excalidraw是一个在线的手写笔记软件。

官网:

https://excalidraw.com/

Wine

https://www.ubuntukylin.com/news/1682-cn.html

这是优麒麟社区提供的Wine版本,基本涵盖了腾讯系主要的几款通信软件


删除软件快捷方式:

1.首先将~/.local/share/applications/下和~/.local/share/applications/wine/Programs/下相关文件或目录删除掉。

2.然后再删除~/.config/menus/applications-merged/里面相关的文件。


腾讯会议目前已经有了官方的Linux版本。

检测到窗口系统采用wayland协议 腾讯会议暂不兼容 程序即将退出:

sudo vim /etc/gdm3/custom.conf
#WaylandEnable=false #uncomment this line
sudo service gdm3 restart

Linux学习心得+

https://zhuanlan.zhihu.com/p/583413166

Linux I/O 神器之 io_uring

http://www.cppblog.com/elva/archive/2008/09/10/61544.html

关于SIGPIPE导致的程序退出

https://www.zhihu.com/question/475730584

为什么linux在x86上不需要设备树,在aarch64上需要设备树?

https://zhuanlan.zhihu.com/p/641619701

发现谁用kill -9关闭程序就开除!

https://zhuanlan.zhihu.com/p/659658036

Linux6.1中为什么用Radix树替换位图(bitmap)来管理进程pid

https://zhuanlan.zhihu.com/p/662590546

深入理解Linux内核进程的创建、调度和终止

https://zhuanlan.zhihu.com/p/662681938

为什么linux不是实时操作系统?

https://zhuanlan.zhihu.com/p/669604193

Kernel怎么跳转到Android:linux与安卓的交界

Fork me on GitHub