Browsed by
Category: Linux

将 vim 作为日常笔记本使用

将 vim 作为日常笔记本使用

本文通过介绍如何使用 Vimwiki, perl graph-easy 以及 git 将 vim 配置为日常的笔记工具。注: 本文内容在于提供一种笔记解决方案,不在于比较各种方法的优劣,如果大家有心仪的推荐方案,欢迎提供探讨

Running Arch Linux with customized kernel in QEMU

Running Arch Linux with customized kernel in QEMU

本文为内核爱好者们介绍一个便利的运行内核的方式,使用 QEMU + virtio 启动一个装载着自定义内核的 Arch Linux。 0x00 构建内核 我们使用 Arch Linux 发行版使用的 .config 作为配置文件, 可以省却很多自己配置 Kernel Options 的繁琐工作。将配置文件放入 kernel source tree 后,使用 make oldconfig 就可以通过一个交互的命令行将最新的内核里的可配置参数补全到我们使用的 Arch Linux 的 .config 文件中。 我们有两种方式获取到 Arch Linux (和其他发行版) 的 .config 文件: 使用 zcat 读取 /proc/config.gz 的内容并且保存为 .config 直接复制 `/usr/lib/modules/$(uname -r)/build/.config 若要使用方法 1 ,内核需要开启 Enable access to .config through /proc/config.gz 这一选项需要我们将 IKCONFIG_PROC 设置为 y (相关依赖 option 项目也需要满足) 配置文件准备好后,我们就可以开始构建内核了,如果你会频繁构建内核,建议使用 ccache 来缓存编译的中间目标文件 “*.o”。ccache 具体配置方法这里不多做介绍,简单说下使用方法,很简单,只需要在 gcc,cc,g++,c++ 的前面加上 ccache 即可,e.g 使用 ccahe 编译内核的构建命令可以这样写: make CC=”ccache gcc” -j8。注意:ccache 不会提升首次编译的速度,它会将这些中间文件缓存起来,在后续的…

Read More Read More

Kernel Bootup Page Table Initialize Process(x86_64)

Kernel Bootup Page Table Initialize Process(x86_64)

This article will provide detailed information about the kernel bootup page table setup. In a brief view, the kernel setup page table in three steps: Setup the 4GB identity mapping Setup 64bit mode page table early_top_pgt Setup 64bit mode page table init_top_pgt The last two steps are both higher mapping: Map the 512MB physical address to virtual address 0xffff80000000 – 0xffff80000000 + 512MB. Next, we will talk about the details. We will use the 4.14 version code to explain the process….

Read More Read More

Kernel Driver btusb Overview

Kernel Driver btusb Overview

Function btusb_probe btusb_probe is use for hot plug-in for bluetooth usb generic controller, here will explain the function in detail. First is an interface check mechanism This special condition is used for supporting apple Macbook 12,8 (2015 early). According to the normal specification, the main interface for USB is 0, and audio (isochronous) is 1, but apple made a change on it, changing the main interface to 2 and audio to 3. The “bInterfaceNumber !=2 ” is for checking hardware…

Read More Read More

Building your own live streaming site using Nginx RTMP & video.js

Building your own live streaming site using Nginx RTMP & video.js

As I said in twitter I will update my blog at least once a week, so now I am writing this week’s blog (Although this article doesn’t contain too much technical detail) I just built my personal live server, for the trail version on bilibili is expired. And I don’t want to send sensitive personal data to that platform, so I decided to build one on my own. Previously I built a live stream service using my raspberry pi, and only…

Read More Read More

i3 + conky 打造实用美观的桌面环境 =w=

i3 + conky 打造实用美观的桌面环境 =w=

看着 #archlinux-cn 的一些小伙伴使用各种 wm (Window Manager),在一段短暂的犹豫之后,窝也开始转向 i3wm 啦 =w= 经过不到两天的配置,总算是达到了窝比较满意的效果 先上一张效果图吧OwO 下面就简单记录一下折腾时遇到的一些问题和过程   所需材料(以Archlinux举例(别的发行版我也没试过(逃 i3wm — 我们要用的就是它 (pacman) conky with lua support — 用来显示状态信息的工具,支持用户自定 lua 脚本(另外不是Condy(逃 (AUR) 卡夫的 conky-i3bar =w= https://github.com/frantic1048/conky-i3bar feh — 用来换壁纸哒 OwO (pacman) GIMP — 这个一会儿就知道干什么用的啦( (pacman) InkScape — 矢量画图工具,用来在 conky 上绘制图形 (pacman) compton — 用来让窗口支持透明的混成器 (pacman) 在安装的时候要注意 AUR 里的 conky-lua 已经不可用了,社区有用户自己修改了 PKGBUILD 并 comment 在了这个包的下面,使用这个 PKGBUILD 即可编译通过,conky 就有 lua support 啦 ~ https://github.com/fcolista/aur/blob/master/conky-lua/PKGBUILD 下载这个 PKGBUILD 文件并 makepkg 即可 配置过程 i3wm i3wm 的 wiki 页面已经给了很详细的介绍 在此仅说明几个常用的配置项 快捷键支持,这个只需要使用…

Read More Read More