Linux系统--从零开始构建rootfs
镜像构建前期准备
Ubuntu 根文件系统下载
下载地址
当前实在arm芯片上跑,下载的为arm64版本
模拟器安装
12sudo apt-get install qemu-user-static
创建文件夹
12345mkdir temp// 20.04sudo tar -xpf ubuntu-base-20.04.5-base-arm64.tar.gz -C temp// 18.04sudo tar -xpf ubuntu-base-18.04.5-base-arm64.tar.gz -C temp
准备网络:
12sudo cp -b /etc/resolv.conf temp/etc/resolv.conf
准备 qemu:
12sudo cp /usr/bin/qemu-aarch64-static temp/usr/bin/
创建文件的启动.bashrc等文件
12sudo cp -R /etc/skel /mnt/etc/
进入根文件系统进行操作:
123456sudo chroot temp#脚本自动挂载sudo bash ch-mount.sh -m ...
Linux内核--内核编译
内核编译确保当前在sdk目录下
指定平台编译芯片平台会提供SDK,SDK中会自带kernel源码
rk平台:部分编译内核指令,在sdk主目录下执行
12./build.sh kernel
1、kernel 增加驱动代码
在drivers/对应目录下创建对应目录,以触摸屏为例/drivers/input/touchscreen/xxx
修改当前目录Makefile,使用obj 增加驱动代码目录12obj-$(CONFIG_TOUCHSCREEN_xxx) += touchscreen/xxx
修改上面Makefile 所处目录下kconfig文件,使其配置能被kernel 读取
12345678910// 如果增加驱动目录没有子kconfig 具体语法参考下面地址config TOUCHSCREEN_XXXX bool "XXXX" depends on I2C default n help Say Y here if you have XXXX touch panel. If unsure, say N. // ...
Linux系统--用户添加与变更
此文可用于移植友商系统,针对它们rootfs进行修改,以下是以firefly ubuntu系统为例
用户名操作
更改用户名
1、修改当前默认登录用户,按用户定
12345678910sudo gedit /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf// 可能需要修改登录密码sudo gedit /etc/pam.d/gdm-password 打开文件// 主机/etc/hosts// 旋转屏幕/etc/default/xrandr
2、更改目录下用户名
123修改用户名$ usermod -l 新用户 旧用户
当前可能登录该用户
12sudo pkill -u 旧用户名
3、修改家目录
1$ sudo usermod -d /home/新用户名 -m 新用户名
4、修改组名
1$ groupmod -n 新用户名 旧用户名
5、修改uid
1$ sudo usermod -u 1000 新用户名
6、重启
增加新用户
1、增加新用户指令
12345// 增加一个用户 xxxuseradd -m xxx// 设置 xxx ...
Linux--wordpress搭建
安装nginx123456789sudo apt-get install nginx# 增加开机启动systemctl start nginxsystemctl enable nginx# 查看启动状态systemctl status nginx.service浏览器查看http://服务器IP地址
安装mysql1234567891011121314151617181920sudo apt-get install mysql-server# 增加开机启动systemctl start mysqlsystemctl enable mysqlsudo systemctl status mysql.servicesudo mysql_secure_installation# 选择密码难度等级# 不能设置密码 配置密码 sudo mysqlALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by 'HNcs123456';密码:HNcs123456 ...
Linux--Cmake使用语法
CMake的基本语法12cmake [options] <path-to-source>
其中,path-to-source是要编译的源代码路径。CMake的选项包括:
12345678-D<var>=<value>:定义变量。-G <generator>:指定生成器。-B <build-dir>:指定生成的构建文件目录。-S <source-dir>:指定源代码目录。
定义变量可以使用-D选项定义变量,例如:
12cmake -DVAR_NAME=VAR_VALUE <path-to-source>
也可以在CMakeLists.txt文件中使用set命令定义变量,例如:
12set(VAR_NAME VAR_VALUE)
指定生成器CMake支持多种生成器,例如Unix Makefiles、Ninja、Visual Studio等。可以使用-G选项指定生成器,例如:
12cmake -G "Unix Makefiles" <path-to-source>
指 ...
Linux命令--常用指令
Linux 常用命令系统相关指令12345678910uname -a 查看内核cpu等信息head -n 1 /etc/issue 查看操作系统版本cat /proc/cpuinfo 查看cpu信息hostname 计算机名lsusb 列出usb设备lsmod 加载内核模块env 查看环境变量scp filename root@192.168.1.1:path 把本地文件放到 root(用户名)局域网ip下的 path下scp remote@www.abc.com:/usr/local/sin.sh /home/administrator 把远程服务器(局域网IP)文件放到本地目录(绝对路径)注意点:需要输入password,配置ssh
资源相关指 ...
Git--gitLab本地搭建
本地搭建gitLab服务器
清华源下载gitlab-ce安装包
网络地址
12345678# 信任gitlab公钥,否则无法下载curl https://packages.gitlab.com/gpg.key 2> /dev/null | sudo apt-key add - &>/dev/null# 在/etc/apt/sources.list.d/gitlab-ce.list(没有则创建)增加deb https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ubuntu focal mainsudo apt-get updatesudo apt-get install gitlab-ce
失败请先安装
12345# sudo apt-get install curl # 其他之后用到的依赖sudo apt-get install openssh-server ca-certificates postfix
配置gitlab
12sudo vim /etc/gitlab/gitlab.rb
修改以下内容(初始为注释状态 ...
Git--基础指令
git 常用指令必知指令
git clone <网址>从远程仓库克隆项目到本地
git add <文件>增加文件索引
git commit -m “描述” 同步到本地仓库
git commit --amend撤销上次提交文件
git push -u origin master推送更改到远程 master 分支
git pull <远程主机> <分支>取回远程分支 (在合并之前如果修改必须先commit)
初始化仓库git init在本地初始化一个 Git 仓库,用于版本控制。会在当前目录下创建 .git 目录,包含所有版本控制信息。
git init --bare初始化一个裸仓库,不包含工作区,只存储 Git 的版本控制信息。常用于远程仓库的创建。
删除远程分支:
git push origin :<分支>推送一个空分支到远程,删除远程分支。
git push origin --delete <分支>删除远程指定分支。
分支操作:git checkout -b dev创建一个dev分支
git checkout ...