termux 安装 proot linux 系统
初始配置下载1https://github.com/termux/termux-app/
换源 & 更新1234sed -i 's@^\(deb.*stable main\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/termux-packages-24 stable main@' $PREFIX/etc/apt/sources.listsed -i 's@^\(deb.*games stable\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/game-packages-24 games stable@' $PREFIX/etc/apt/sources.list.d/game.listsed -i 's@^\(deb.*science stable\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/science-packages-24 ...
新唐ma35d1rs485无法正常使用解决方法
解决在我们配置好设备树之后,直接使用cat, echo去对rs485设备进行读写是无效的,因为485还需要一根rts线来控制是读还是写。我们可以在打开rs485后加入以下代码:
1234567891011struct serial_rs485 rs485conf;// Getif (ioctl(ctx->s, TIOCGRS485, &rs485conf) < 0) return -1;// Setrs485conf.flags |= SER_RS485_ENABLED;rs485conf.flags |= SER_RS485_RTS_ON_SEND;if (ioctl(ctx->s, TIOCSRS485, &rs485conf) < 0) return -1;
注意这里的SER_RS485_RTS_ON_SEND一定要加,不然rts会与实际需要的电平相反
libmodbus交叉编译
配置交叉编译环境自行百度
下载源码1wget https://github.com/stephane/libmodbus/releases/download/v3.1.10/libmodbus-3.1.10.tar.gz
编译12mkdir build-obj./configure --host=${CROSS_COMPILE} --prefix=$(pwd)/build-obj --enable-shared --enable-static
build-obj这里存放着libmodbus源码交叉编译后的头文件和库文件等,用户根据实际需要导入到自己的ARM板即可。
SpaceVim玩法记录
更新与安装在安装 SpaceVim 之前,需要确保电脑上已经安装了 Git 和 cURL。这两个工具用来下载插件和字体。 其次,需要安装 Vim 或者 Neovim,同时启用 +python3 的支持后使用体验会更好。
neovim123456sudo apt-get install software-properties-commonsudo apt-add-repository ppa:neovim-ppa/stablesudo apt-get updatesudo apt-get install neovimcd ~/.SpaceVim/bundle/vimproc.vim/make
字体乱码123git clone https://github.com/powerline/fontscd fonts./install.sh
windows1https://spacevim.org/cn/install.cmd
linux1curl -sLf https://spacevim.org/install.sh | bash -s -- --install vim
使用 neovim ...
新唐 ma35d1 移植 debian rootfs
rootfs配置构建环境12sudo apt install qemu-user-static -ysudo apt install debootstrap -y
下载 debian rootfs1sudo debootstrap --foreign --verbose --arch=arm64 buster rootfs http://mirrors.huaweicloud.com/debian/
修改 rootfs进入 rootfs 修改
12345678910cd rootfssudo mount --bind /dev dev/sudo mount --bind /sys sys/sudo mount --bind /proc proc/sudo mount --bind /dev/pts dev/pts/cd ..sudo cp /usr/bin/qemu-aarch64-static rootfs/usr/bin/sudo chmod +x rootfs/usr/bin/qemu-aarch64-staticsudo LC_ALL=C LANGUAGE=C LANG=C ...
vmware ubuntu22.04 网卡丢失
修复网络功能修改 /etc/NetworkManager/NetworkManager.conf 的 managed=false 改为 managed=true
1234sudo service NetworkManager stopsudo rm /var/lib/NetworkManager/NetworkManager.statesudo vim /etc/NetworkManager/NetworkManager.conf sudo service NetworkManager start
新唐 ma35d1 atf 编译
准备uboot.bin 编译文件请看 新唐 ma35d1 uboot 编译tee-header_v2.bin 和 tee-pager_v2.bin 编译文件请看 新唐 ma35d1 op-tee 编译
atf复制需要的文件将 uboot.bin, tee-header_v2.bin, tee-pager_v2.bin 复制到 fiptool_images 文件夹
123mkdir atf/fiptool_imagescp uboot/uboot.bin atf/fiptool_imagescp op-tee/out/arm-plat-nuvoton/core/tee-header_v2.bin op-tee/out/arm-plat-nuvoton/core/tee-pager_v2.bin atf/fiptool_images
编译 atf在编译之前清楚掉旧文件
1make realclean
如果不需要 BL32(OP-TEE),设置一下选项
12CROSS_COMPILE=aarch64-linux-gnu- make PLAT=ma35d1 \NEED_BL31=yes bl3 ...
新唐 ma35d1 op-tee 编译
准备请看友善 som-rk3399 uboot 移植配置安装 toolchain
op-teeop-tee 源码下载1git clone git@github.com:OpenNuvoton/MA35D1_optee_os-v3.9.0.git
编译 op-tee编译命令
1make CROSS_COMPILE_core=aarch64-linux-gnu- CROSS_COMPILE64=aarch64-linux-gnu CFG_ARM64_core=y CFG_TEE_BENCHMARK=n CFG_TEE_CORE_LOG_LEVEL=1 CROSS_COMPILE_ta_arm64=aarch64-linux-gnu- PLATFORM=nuvoton-MA35D1
出现错误,这个错误是缺少 python 包导致的
1234567Traceback (most recent call last): File "/home/mo/develop/ma35d1/sdk/op-tee/MA35D1_optee_os-v3.9.0/scripts/pem_to_pub_c ...
新唐 ma35d1 uboot 编译
准备请看友善 som-rk3399 uboot 移植
ubootuboot 源码下载这里选择新唐官方提供的版本
1git clone https://github.com/OpenNuvoton/MA35D1_u-boot-v2020.07
编译 uboot使用 uboot 配置文件
12make distclean -j12 ARCH=arm CROSS_COMPILE=aarch64-linux-gnu-make ma35d1_sdcard1_defconfig -j12 ARCH=arm CROSS_COMPILE=aarch64-linux-gnu-
编译 uboot 命令
1make -j12 ARCH=arm CROSS_COMPILE=aarch64-linux-gnu-
友善som-rk3399linux内核移植
准备toolchain请看友善 som-rk3399 uboot 移植
linux kernelkernel 下载1git clone https://github.com/rockchip-linux/kernel.git
编译 kernel123make distclean ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu-make rockchip_linux_defconfig ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu-make -j12 ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu-
编译 Rockchip RKIMG format image1make rk3399-evb-ind-lpddr4-linux.img
编译完成输出以下文件
1234kernel/├── boot.img├── kernel.img└── resource.img
安装发行版的引导/内核我们在 U-Boot 中使用 distro 启动,因此我们需要为 U-Boot 制 ...