a64 io 中断初始化失败
如下pc0,gpio64 设置中断触发边沿失败。
对比,pb0 gpio32,这里没有edge 属性。
对比3.21.2.1. PB Configure Register 0 (Default Value: 0x77777777) 和3.21.2.10. PC Configure Register 0 (Default Value: 0x77777777) 这里pc0 确实不支持中断。
如下pc0,gpio64 设置中断触发边沿失败。
对比,pb0 gpio32,这里没有edge 属性。
对比3.21.2.1. PB Configure Register 0 (Default Value: 0x77777777) 和3.21.2.10. PC Configure Register 0 (Default Value: 0x77777777) 这里pc0 确实不支持中断。
在x64( pc /ubuntu 18.10 )跨平台编译arm64 的debian rootfs完整镜像,通常地,更新rootfs都是直接放在目标机上面,制作更新好rootfs后再拷贝回编译机。
对于目标机平台,通常拷贝rootfs需要非运行时环境,所以例如在emmc的rootfs需要通过sd卡系统启动去执行拷贝操作。
同时拷贝/压缩还需要关心文件的uid、gid、用户名、组名、执行权限。稍不注意,功亏一篑。
这里通过介绍qemu虚拟跨平台制作、更新rootfs。
如我们知道,debootstrap用以通过源制作debian/ubuntu 的基础rootfs。通常来说其分为下载(--foreign)和安装配置(--second-stage)两个阶段。对于跨平台的第一阶段下载只需要通过--arch置顶平台下载对应deb包,但是对于包安装则需chroot后在编译机上面虚拟目标机的deboosttap 执行安装。
如上讨论,这里我们在x64 平台下载arm64(aarch64)平台rootfs并且尝试通过chroot实现初始用户、包安装重等操作。
安装依赖包;
下载归档keyring
通过源下载rootfs
deiban jessie 如上下载安装可能会因为包缺失提示下载失败,这里搜索寻找替换了老的软件源。
chroot 是linux 用以切换rootfs的一个应用,跨平台操作通过需要切换的rootfs ...
初次安装;
http 代理
详细介绍 images、container、service、stack概念和层次关系,梳理docker基本操作。
dockerfile 语法参考。
Compose file version 3 reference
service 描述文件 compose file语法参考。
docker ps 命令
docker container 操作命令
https://docs.docker.com/engine/reference/commandline/container/
有些疑问,先前错误的理解了image和container的关系,以为container是运行时(running time)的image,其实原文描述的意思是可运行的(runable)。然后可运行的container的再区分正在运行和为未运行的。
那么还有一个问题,docker image和container各自在磁盘的哪里?是否可以备份和删除。
Before a command is executed, its input and output may be redirected using a special notation interpreted by the shell. Redirection allows commands' file handles to be duplicated, opened, closed, made to refer to different files, and can change the files the command reads from and writes to. Redirection may also be used to modify file handles in the current shell execution environment. The following redirection operators may precede or appear anywhere within a simple command or may follow a command. Redirections are processed in the order they appear, from left to right.
Each red...
对于Shell命令我们要区分bash 内置(bash built in )和GNU 开源软件包以及三方软件包。对于所有命令我们都可以尝试whereis 确定可执行文件、源码、和手册路径。
同时可以可以通过which确定当前环境变量下的命令位置
对于命令我们可以尝试通过 man 啃手册,当然也可也通过 -h或者--help 快速确定命令选项。不习惯在console 阅读文档,需要做一些笔记的命令。可以尝试其pdf文档。
还是区分bash 内置命令(bahs built in)和GNU软件包,以及三方软件包。
bash 内置命令(bahs built in)
GNU软件包
当然也有其他shell命令的归档文档http://tldp.org/LDP/abs/html/part4.html
http://linuxtools-rst.readthedocs.io/zh_CN/latest/base/01_use_man.html
QUOTING
特殊转移字符;
Special Prameters
描述$*、$@、$#……等特殊变量;
Parameter Variables
描述${#a}变量操作的表达式;
bash 登录会使用/etc/profile和~/.bashrc,视情况将如下的值保存在对应文件,使之生效。
man 高亮
支持中文
root 账户登录警告
PS1
设置 terminal tab 标题
标签 :GAC-350 htpdate
GAC-350 放弃ntpdate采用htpdate,通过/etc/default/htpdate配置为deamon模式,并且尝试从多个门户网站同步时间。但是测试反馈从开机无网络到网络恢复的时候同步时间未及时恢复,需要等待一段时间。
初步怀疑第一次未正常获取到时间后,默认轮询周期过大,导致未及时同步,在man htpdate找到轮询周期的描述,从这里看这里默认的轮询周期在30分钟至32小时。
https://salsa.debian.org/debian/htpdate
仔细走读了代码,发现这里的最小时间和最大时间有很多规则,理顺完整原理后再详细介绍这里的规则。
而对于轮询时间和异常处理,如下规则:
多个服务器,某一个服务器获取时间失败,休眠,时间设置最小时间除以/服务器数量;
成功获取时间(任一服务器),如果存在误差,立即同步,休眠30分钟(固定时间)最小延时值设置为最小时间;
多个服务器获取时间均失败,最小时间睡眠;
获取成功,但是不存在时间误差;睡眠时间*2,直到最大时间;
综上,如果未通过-m 或者 -M 默认最小轮询时间为30(DEFAU...
systemd 是linux操作系统的系统和服务管理器,作为boot启动后的第一个进程(PID=1),systemd扮演初始化系统,以及启动和维护用户空间服务。
为了兼容SysV,如果systemd初始化被调用并且进程id不是1,它将执行telinit,并且将同步参数到该应用,所以在正常系统登录状态下的init和telinit是等同的。更多信息通过man telinit 了解。
当作为系统实例启动,systemd通过system.conf 解析配置文件,如果作为用户进程启动,从user.conf解析配置文件,更多信息通过systemd-system.conf 了解。
系统同时存在sysV init脚本使能和systemd service,那么到底是生谁效的?
如果同时存在systemd 单元文件和sysVinit脚本,亦或者upstart配置文件,理论上systemd>sysv init>upstart.
如下路径的unit 关系,哪些unit是使能的?
参考 man systemctl ->COMMANDS->Unit File Commands-> enable NAME...
在/lib/systemd/system 保存了所有unit file,其中部分.service 文件包含[install] 部分,当调用...
如上强制logrotate ,执行以下步骤。
重命名当前日志
压缩文件
默认的文件已经不在了。
已经从 http://log4c.sourceforge.net/ 下载源码,成功编译,现在需要讲动态库确定位置。然后讲对应的.h文件拷贝到工程。
deb
source