06 2019 档案
摘要:答:通过生成的System.map可以查看到,主要关注__initcall_<module_entry_function>_init<level>,如: __initcall_sunxi_sram_driver_init6,模块的入口函数为sunxi_sram_driver,级别为6
阅读全文
摘要:1. 配置该模块为[M] 2. 编译 make modules SUBDIRS=./drivers/rtc (5.3的内核为make modules M=./drivers/rtc) 3. 安装 make modules_install SUBDIRS=./drivers/rtc (5.3的内核为m
阅读全文
摘要:答: 在~/.vimrc中写入以下内容即可: au BufWritePost *.c,*.cpp,*.h silent! !ctags -R & 参考资料: 一键打造vim ide
阅读全文
摘要:答: sudo apt-get install strace -y
阅读全文
摘要:答: 使用信号量,wait队列,completion,调用schedule,用GFP_KERNEL指定的内存分配malloc,get,free,page等都会引起睡眠 思考: Q: 为什么会引起睡眠呢? A: 为了获取一些资源,这些资源当时不可得,因此进程进入睡眠,本质上就是进入不可被调度的状态,不
阅读全文
摘要:答: 添加过程如下: 1. 在当前项目的源码下执行一下命令来添加子模块 git submodule add <other_repository_url> <dir_name> such as: git submodule add https://github.com/vim/vim.git vim
阅读全文
摘要:答: 1. 配置邮箱 git config --global user.email "jello_smith@163.com" 2. 配置用户名 git config --global user.name "jello_smith"
阅读全文
摘要:答: 需要安装python开发库(如果不安装这个库,那么在配置时执行./configure --enable-pythoninterp=yes将不会生效,以至于vi的python特性并没有被开启) 如在centos下的安装方法为: yum install -y python-devel 注意: 这个
阅读全文
摘要:答: 用来唤醒休眠后的系统
阅读全文
摘要:答: git pull <remote_repository_url> <branch_name> 例如: git clone https://github.com/lede-project/source.git lede-17.01
阅读全文
摘要:答: ./scripts/checkpatch.pl *.patch
阅读全文
摘要:答: 如获取pwm子系统的维护者邮箱: ./scripts/get_maintainer.pl drivers/pwm
阅读全文
摘要:答: sed -i "s/<old_string>/<new_string>/g" `grep "<old_string>" -l <dir_or_wildcard_filename> 例如: sed -i "s/jello/hello/g" `grep "jello" -l *.c
阅读全文
摘要:答: git cherry-pick <another-branch's commit-id>
阅读全文
摘要:答: 需要首先指定两个环境变量CROSS_COMPILE和ARCH 如交叉编译arm64的程序: export CROSS_COMPILE="aarch64-linux-gnu-";export ARCH="arm64"
阅读全文
摘要:答: sudo apt-get install mercurial
阅读全文
摘要:答:源码编译安装最新的vim 以redhat为例: 1. 移除旧的vi,vim sudo yum remove vi vim -y 2. 安装ncurses库 sudo yum install ncurses-devel 3. 获取源码 git clone https://github.com/vi
阅读全文
摘要:答: 向~/.bashrc中添加如下内容: alias vi=vim
阅读全文
摘要:答: 在$前加转义符\ 如: \$
阅读全文
摘要:1. 安装epel-release yum install epel-release 2. 安装webstatic-release rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm 3. 此时就可以安装任意软件了 yu
阅读全文
摘要:答: cat /etc/redhat-release
阅读全文
摘要:答: 启动容器时传入-w <work_dir>参数即可,如: docker run -it -w <work_dir> <container_image_name> <command> 示例: docker run -it -w /home/jello centos /bin/bash 参数解析:
阅读全文
摘要:答:在启动容器时使用-v指定宿主机目录和要映射到的容器内部目录,语法如下: docker run -it -v <host_dir>:<container_dir> <container_image_name> <command> 示例: docker run -it -v /home/jello:
阅读全文
摘要:docker commit <container_id> <container_image_name>
阅读全文
摘要:1. 通过docker ps命令先找到容器id,示例如下,123456789012就是我们要找的 jello@~$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 123456789012 jello "/bin/bas
阅读全文
摘要:1. 先找出ip对应的域名 dig +short -x <your ip> 2. 如果第1步没有输出,那么需要将hostname与ip绑定,如:hostname为jello,那么是往/etc/hosts中写入一下内容 <ip> jello
阅读全文
摘要:答: 通过在/etc/hosts中添加条目,如下: <ip_address> <domain_name> 如: 11.11.11.11 www.baidu.com
阅读全文
摘要:关键是配置smtpserver,请参考此处
阅读全文
摘要:答: 参考此处
阅读全文
摘要:答: 配置~/.gitconfig中的smtpserver 需往~/.gitconfig中添加如下内容: [sendemail] smtpserver = <stmp_server_name>
阅读全文
摘要:答: git send-email <patch-name> --to <username>@<example>.com --cc <username>@<example>.com 示例如下: $git format-patch --cover-letter -M origin/master -o
阅读全文
摘要:答: sudo apt-get install git-email -y
阅读全文
摘要:答: sudo add-apt-repository -r <source_url> 如: sudo add-apt-repository -r ppa:linaro-maintainers/toolchain
阅读全文
摘要:答: sudo apt-get install device-tree-compiler -y
阅读全文
摘要:答: sudo apt-get install u-boot-tools -y
阅读全文
摘要:答: 使用选项-print-file-name=<lib_name> 如列出libstdc++.so.6的库路径:aarch64-linux-gnu-gcc -print-file-name=libstdc++.so.6
阅读全文
摘要:1. 协议栈名称 neardal 2. 源码 https://github.com/connectivity/neardal.git 3. 由谁维护? intel 4. 基于neardal的nfc协议栈 linux_libnfc-nci https://github.com/NXPNFCLinux/
阅读全文
摘要:答: 全称为Software Configuration Management,即为软件配置管理
阅读全文
摘要:注意:使用的内核源码版本为5.1.3 1. subsys_initcall长什么样子? 它其实是个宏定义,定义如下: #define subsys_initcall(fn) __define_initcall(fn, 4) (注意,这是使用在内置模块中的) 或 #define subsys_init
阅读全文
摘要:分析用的内核版本为5.1.3 1.MFD全称 Multi-function Device,多功能设备 2. 为何会出现MFD子系统 由于出现了一类具有多种功能的外围设备或cpu内部集成的硬件模块 3. 有哪些多功能设备呢? 3.1 PMIC,电源管理芯片 da9063: 调节器,led控制器,看门狗
阅读全文
摘要:注意: 分析用的linux内核版本为5.1.3 1. RTC子系统 2. Remote Processor子系统 3. Remote Processor Message子系统 4. SCSI子系统 5. SCSI Target子系统 6. Security子系统 7. SOC-CAMERA V4L2
阅读全文
摘要:一. 背景 从向日葵官网下载了linux版向日葵远程控制端软件,解压后直接执行Sunlloginremote发现以下错误: jello@jello:~/sunlogin_remote_linux$ ./SunloginRemote This application failed to start b
阅读全文
摘要:1. 开启防火墙 sudo ufw enable 2. 关闭某个端口,如80端口 sudo ufw deny 80 3. 查询当前防火墙状态 sudo ufw status
阅读全文
摘要:答: 在Ubuntu下可以使用以下命令添加: sudo usermod -a -G <group_name> <user_name> 注意: 如何生效呢? 需要重新登陆系统方可生效
阅读全文
摘要:1. 在已经部署了镜像的机器上获取镜像 1.1 获取镜像名 docker images 1.2 打包选中对应的镜像 docker save <image_name> -o <image_name>.tar 2. 在将要使用的机器上部署需要的镜像 2.1 加载镜像 docker load -i <im
阅读全文
摘要:答: zcat /proc/config.gz 当然有个前提条件,需要打开内核的以下两个选项(CONFIG_IKCONFIG和CONFIG_IKCONFIG_PROC): General setup > <*> Kernel .config support [ * ] Enable access t
阅读全文
摘要:答: make <vendor>/<device_name>.dtb 如: make freescale/fsl-1043a-rdb.dtb
阅读全文
摘要:1. 先找到描述这三个命令的相关信息 在内核目录下使用make help命令可以获取相关信息,信息如下: Cleaning targets: clean - Remove most generated files but keep the config and enough build suppor
阅读全文
摘要:1. 在一颗树的根下每个PCI(e)设备被它的请求id(AKA RID)独一无二的标识,一个请求ID由三部分组成,总线号,设备号和功能号,如: Bits [15:8] 是总线号 Bits [7:3]是设备号 Bits [2:0]是功能号 剩下的bit都填充0 2. IOMMU可以通过从请求ID附带的
阅读全文
摘要:答: 如普通的mmu,将虚拟内存地址转换为物理地址,不同的是,iommu是将设备访问的虚拟地址转换为物理地址
阅读全文