Linux与系统运维

Armbian/build脚本分析

1. 脚本目录检测和代码健壮性保证 1.1 程序报错退出脚本 #set -o pipefail # trace ERR through pipes - will be enabled "soon" #set -o nounset ## set -u : exit the script if you try to use an uninitialised variable - one day will be enabled set -e set -o errtrace # trace ERR through - enabled set -o errexit ## set -e : exit the script if any statement returns a non-true return value - enabled # Important, go read http://mywiki.wooledge.org/BashFAQ/105 NOW! 1.2. ./compile.sh脚本目录检测 SRC="$(dirname "$(realpath "${BASH_SOURCE[0]}")")" cd "${SRC}" || exit # check for whitespace in ${SRC} and exit for safety reasons grep -q "[[:space:]]" <<< "${SRC}" && { echo "\"${SRC}\" contains whitespace. Not supported. Aborting." >&2 exit 1 } 2. single.sh 文件加载(位于./lib) 2.1 检查bash版本是否高于5.x # The Armbian functions require Bash 5.x. if [[ "${BASH_VERSINFO:-0}" -lt 5 ]]; then echo "Armbian build scripts require Bash 5.x. Go get it..." >&2 if [[ "${OSTYPE}" == "darwin"* ]]; then echo "Armbian build scripts require brew to be installed and working on macOS. (old Bash version)" >&2 echo "Please install brew, *restart your terminal*." >&2 echo "Then run 'brew install bash coreutils git', *restart your terminal* and then try again." >&2 exit 51 fi exit 50 fi 2.2 macOS系统检查 是否以root运行脚本 Homebrew 包管理器已安装并正常工作 通过 Homebrew 的 coreutils 安装的 realpath 命令是否可用 更新 PATH 环境变量以包含由 Homebrew 安装的 GNU coreutils 二进制文件。 确保 ${SRC} 变量(应指向构建脚本的源目录)位于用户的主目录中。这对于 macOS 上的 Docker 兼容性很重要。 ...

Linux与系统运维

甲骨文防火墙设置

前言 甲骨文啊,你真狗!甲骨文除了与其他云厂商一样有防火墙面板,额外在系统镜像上也默认配置了防火墙,这直接导致开机更换ssh端口从而机器失联。。。 面板防火墙设置 不多说,与其他云厂商没有多大区别 系统镜像关闭防火墙 开放所有端口(Ubuntu、Debian) iptables -P INPUT ACCEPT iptables -P FORWARD ACCEPT iptables -P OUTPUT ACCEPT iptables -F 关闭防火墙 apt-get purge netfilter-persistent && reboot 参考文章 Oracle开放全部端口并关闭防火墙 - 清~幽殇 (isedu.top)

嵌入式与硬件

NanoPC-T4开发记录

前言 咸鱼200块淘了块RK3399的T4开发板(裸板),4GRAM,16GBemmc,比起树莓派,价格算很香的了 制作外壳 因为没有外壳,官方的外壳售价一言难尽,并且没有预留GPIO的空间,尝试自己画亚克力外壳。先是用了3DMAX,可惜商家需要dwg格式(即需要autoCAD),简单学习就能上手,需要学习rec,dli等命令的使用。同时经过测量需要M3的六角铜柱,以及M3螺丝,螺母,具体规格可以参考Raspberry-Pi/NanoPC-T4 at master · laningya/Raspberry-Pi (github.com) ...

编程与计算机基础

CSAPP学习笔记

深入理解计算机系统(C语言、数据结构、微嵌、编译原理、数电、模电) 第一章:计算机系统漫游 编译系统 hello.c->hello.i gcc -E hello.c -o hello.i hello.i->hello.s gcc -S hello.i -o hello.s hello.s->hello.o gcc -c hello.s -o hello.o hello.o->hello gcc hello.o -o hello 第二章:信息的表示和处理 //数据在不同架构处理器下的表示 #include <stdio.h> typedef unsigned char * byte_pointer; void show_bytes(byte_pointer start, size_t led) { size_t i; for (i = 0 ;i < led; i++) { printf("%.2x",start[i]); } printf("\n"); } void show_int(int x) { show_bytes((byte_pointer)&x,sizeof(int)); } void show_float(float x) { show_bytes((byte_pointer)&x,sizeof(float)); } void show_pointer(void *x) { show_bytes((byte_pointer)&x,sizeof(void *)); } int main() { int i =12345; show_int(i); return 0; } 整数、浮点数在计算机内部的表示与运算 第三章:程序的机器级表示 while、do-while、for性能分析 三种都是通过条件测试和跳转指令实现的。 switch、if-else性能分析 switch通过一个跳转表实现,所以只需要执行一次跳转,而if-else需要多次跳转指令,代码效率相对低。 ...

嵌入式与硬件

OpenStick折腾日记

项目起因 最近网上火起了用淘宝8.8购买随身WIFI,其处理器为msm8916,这是一款4核ARMV8架构的64位处理器,酷安 社区有大佬通过逆向工程为其编译了Debian、OpenWRT镜像,本次安装的是Debian11的镜像。 ...

嵌入式与硬件

华迪实习

6月24日 PC与嵌入式计算机 参考微处理器与嵌入式系统设计课程内容。介绍计算机的体系结构、组成等。 开发环境及配置 介绍了在VMware中安装Ubuntu20.04LTS的方法 介绍通过运维三大神器之一sed来实现CLI换源操作,对sudo apt update命令作用做了分析介绍 安装openssh服务端,通过xshell、secureCRT、CMD、powershell等工具来实现对linux的访问,此处也介绍了systemctl命令的常用用法status、enabled、start等 介绍cd ls mkdir rm 等文件操作命令及参数 介绍文件权限管理命令chmod以及文件类型判断、文件权限修改等 介绍环境变量的概念,以及影响环境变量的多个配置文件,有系统级和用户级配置文件 介绍tar的归档打包与解包 ...

网络与远程访问

多平台挂载Webdav

webdav有什么用? 在日常工作应用中,我们常常有下面的需求场景:在公司没有完成的工作,可能需要在家继续办公,而我们需要同步在公司的工作进度,最朴素的解决方法就是用U盘进行拷贝,但如果你有webdav等文件传输工具,我们可以完全省去这个繁琐的过程。webdav通过挂载云盘服务到本地,在不同设备都开启webdav,即可实现资源共享;webdav是基于http的文本传输协议,这意味着如果你能接入互联网,就能实现文本共享;同时webdav可以跨平台挂载在本地使用,这意味着你不需要考虑从Linux到Windows对于中文编码方式而出现乱码不同的尴尬;同时,例如阿里云盘、群晖NAS、Google云盘等都提供了webdav服务,这意味着你可以像使用本地硬盘一样访问你的云盘资源。 ...

Linux与系统运维

local

pip换源 配置文件地址: ~/.config/pip/pip.conf 文件内容: [global] index-url = https://pypi.tuna.tsinghua.edu.cn/simple 命令行操作: pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple 附清华大学开源镜像站pypi帮助: https://mirrors.tuna.tsinghua.edu.cn/help/pypi/ .vimrc Github项目地址: https://github.com/amix/vimrc git clone --depth=1 https://github.com/amix/vimrc.git ~/.vim_runtime sh ~/.vim_runtime/install_awesome_vimrc.sh ~/.vim_runtime/vimrcs/extended.vim中 可以禁用主题和背景色,搭配终端配置透明终端 ...