[VIM]plug coc.nvim
在coc.nvim更新到0.0.82之后,shortcut映射方式改变。
.vimrc配置如下:
function! CheckBackSpace() abort let col = col('.') - 1 return !col || getline('.')[col - 1] =~ '\s'endfunctioninoremap <silent><expr> <TAB> \ coc#pum#visible() ? coc#pum#next(1): \ CheckBackSpace() ? "\<Tab>" : \ coc#refresh()inoremap <expr><S-TAB> coc#pum#visible() ? coc#pum#prev(1) : "\<C-h>"" below is for using ENTER for completio ...
如何将sd卡或者emmc镜像导出
SD卡插入sd卡后,会在/dev下看到sdX的文件,我这里是sdb:
❯ ls /dev/sdb*/dev/sdb /dev/sdb1 /dev/sdb2
从这个信息可以知道镜像至少分区为了boot和rootfs分区.
使用dd命令导出:
❯ sudo dd if=/dev/sdb of=sd.img bs=4M status=progress[sudo] troy 的密码: 63753420800字节(64 GB,59 GiB)已复制,652 s,97.8 MB/s 记录了15218+1 的读入记录了15218+1 的写出63831015424字节(64 GB,59 GiB)已复制,653.304 s,97.7 MB/s
导出后需要缩减分区
EMMC对于EMMC操作复杂一些,需要修改uboot,打开CONFIG_CMD_USB_MASS_STORAGE的配置项。
进入fel模式将uboot下载进入内存并运行:
❯ sudo sunxi-fel uboot ./u-boot-sunxi-with-spl.bin
在uboot自动启动内核前打断,并且输入如下命令:
=> ...
[rootfs]制作Ubuntu根文件系统
Requirements
An x86_64 machine with Ubuntu or another Linux distribution installed.
debootstrap tool.
Internet connection.
Basic knowledge of using the terminal.
Steps to Create Ubuntu 20.04 Rootfs for ARMhf
1. Install Required Tools
First, ensure that debootstrap and qemu-user-static are installed. qemu-user-static allows you to run ARM binaries on your x86_64 machine.
sudo apt updatesudo apt install debootstrap qemu-user-static
2. Create a Directory for the Rootfs
Create a directory where t ...
[全志A33-Vstar]Kernel
本文章基于该uboot启动:传送门
Envcpu: allwinner a33board: vstarhost: ubuntu 22.04
需要安装交叉编译工具链:
❯ sudo apt install gcc-arm-none-eabi
mainline首先下载主线kernel的源码:
❯ git clone [email protected]:torvalds/linux.git
配置文件的话,在arch/arm/configs目录下只有一个sunxi_defconfig是我们能够使用的,那么就使用这个配置文件作为基准。
设备树就选择sinlinx的,与vstar开发板相近。
与uboot套路类似,先拷贝一份配置文件和设备树作为vstar开发板的:
❯ cp arch/arm/configs/sunxi_defconfig arch/arm/configs/a33_vstar_defconfig❯ cp arch/arm/boot/dts/allwinner/sun8i-a33-sinlinx-sina33.dts arch/arm/boot/dts/allwinner/sun8i- ...
sd与mmc刷写指南
EnvHost: Ubuntu 22.04
GParted 1.3.1
SD卡首先插入sd卡,打开GParted工具,没有可以下载一个:
❯ sudo apt install gpart
选择sd卡设备,我这里是sdb,因机器而异。
选择菜单栏的设备->创建分区表,选择msdos分区表。
创建完成之后,新建两个分区。
一个fat16的,用于放内核镜像和dtb文件以及uboot保存的env文件。
一个ext4用来存放根文件系统。
完成之后点击绿色小对勾,让更改生效。
之后便可以在/dev下看到对应的分区:
❯ ls /dev/sdb*/dev/sdb /dev/sdb1 /dev/sdb2
下载uboot镜像:
❯ sudo dd if=u-boot-sunxi-with-spl.bin of=/dev/sdb bs=1024 seek=8
存放内核镜像和设备树:
❯ sudo mount /dev/sdb1 /mnt❯ sudo cp arch/arm/boot/zImage /mnt❯ sudo cp arch/arm/boot/dts/allwinner/s ...
Linux分区恢复
在删除U盘分区的时候,忘了插U盘,直接把Ubuntu的efi分区删掉了。
直接原地红温…
不过还好删除的是分区不是数据,还有的救…
注意这时候千万不要重启系统!!!
查看分区挂载:
❯ lsblkNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS...nvme0n1 259:0 0 953.9G 0 disk └─nvme0n1p2 259:2 0 953.4G 0 part /
已经看不见p1了,但是!
执行如下命令安装众神之父testdisk:
❯ sudo apt install testdisk
这个工具非常好用,可以自定义检测分区表,并且检测丢失的分区:
❯ sudo testdisk /dev/nvme0n1
进入如下界面, 这里是选择磁盘,我只有一个盘,所以就直接按enter了:
选择磁盘后需要选择你的磁盘分区表类型,Intel是自动选择,按道理应该是GPT分区,但是不太自信,所以选择了Intel进入:
这里显示检测到了GPT分区,直接按Enter进入:
在如下界面中直接选中Analys ...
[全志A33-Vstar]Uboot
Envcpu: allwinner a33board: vstarhost: ubuntu 22.04
需要安装交叉编译工具链:
❯ sudo apt install gcc-arm-linux-gnueabihf
FEL模式通过FEL模式可以启动uboot或将内核镜像等文件下载到内存,是个很方便的功能。
若要使用fel系列的工具,需要先安装:
❯ sudo apt-get install sunxi-tools
vstar开发板进入fel的方式有两种:
按住power键不松手,随后按reset,等待1s后放开power键
按住vol + 键不松手,随后按reset,连续短按5-10次power键后有一个灯闪烁一下,此时松开vol+键即可进入。
fel烧写uboot命令:
❯ sudo sunxi-fel uboot ./u-boot-sunxi-with-spl.bin
uboot-sunxi仓库试错该章节并没有成功,所以如果想学习可以看看,只是想移植uboot就可以跳到下一个章节
要移植uboot首先想到的肯定是全志的uboot仓库,先拉下来代码:
❯ git clone ...
Ubuntu使用命令行修改分辨率
$ xrandrScreen 0: minimum 320 x 200, current 1920 x 1080, maximum 3840 x 2160HDMI-1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 477mm x 268mm 1920x1080 60.00*+ 1680x1050 60.00 1280x1024 60.00 ...eDP-1 connected (normal left inverted right x axis y axis) 1366x768 60.00*+ 1280x720 60.00 1024x768 60.00 ...$ xrandr --output HDMI-1 --mode 1920x1080
docker上传至hub
将已有容器提交为镜像如果你当前有的是一个正在运行的Docker容器,而不是镜像,你可以将这个容器保存为镜像,然后再上传到 Docker Hub。
可以使用docker commit命令,将当前容器保存为一个新的 Docker 镜像:
❯ docker commit <container-id> <new-image-name>
如果你的容器 ID 是 abc123,并且你想把它保存为名为 my-app-image 的镜像:
❯ docker commit abc123 my-app-image
如果你需要附加信息,可以使用-m选项添加你要提交的信息
使用docker images可以查看生成的镜像。
标记镜像现在已经有了一个镜像,即便没有,是容器的话,经过上一步骤也应该有了镜像,现在需要给镜像打标签标记版本:
❯ docker tag <new-image-name> <hub-username>/<repository-name>:<tag>
推送镜像现在可以将标记的镜像推送到docker hub了:
❯ ...
使用pxelinux启动内核
EnvBoard: BPI-F3 based on k1 of SpaceMit
Note: 本文默认已经在主机待建成功tftp服务
Content设置IP在主机上查询ip:
❯ ifconfigenx00e099a751b1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.230.28 netmask 255.255.255.0 broadcast 192.168.230.255 inet6 fe80::7d95:76be:c484:17b6 prefixlen 64 scopeid 0x20<link> ether 00:e0:99:a7:51:b1 txqueuelen 1000 (以太网) RX packets 223389 bytes 75866217 (75.8 MB) RX errors 0 dropped 94 overruns 0 frame 0 TX pa ...