初期啟動硬件資源,主要有如下內容。
https://github.com/rycus86/docker-arm64v8-debian-qemu
https://blog.csdn.net/liumiaocn/article/details/109305857
docker 開發環境
https://www.cnblogs.com/qa-freeroad/p/13941445.html
確保 qemu 可以啟動,通過該命令允許宿主機啟動 armv7 虛擬機。
docker run --rm --privileged multiarch/qemu-user-static --reset --persistent yes
開發環境
建議用 debian 或 armv7-alpine 、 openwrt 相關的進行底層軟件開發。
最基礎的庫有 libc.so / libstdc++.so 兩類,大多基於 musl 版本。
通過 ldd 可以查該庫的依賴,通常可在 /lib /usr/lib 中追蹤依賴庫,會提示告知。
通過 nm -D 可以打出擁有的函數符號。
軟件源
apk 用 sed -i 's/mirror.xtom.com.hk/mirrors.aliyun.com/g' /etc/apk/repositories
okpg 百度即可。
編譯 so 項目
編譯缺少頭文件可以 apk add linux-headers 模塊。
現在庫已經不直接提供 ./configXXX 而是采用 aclocal & autoconf & autoheader & automake 生成配置后進行 make 。
ssh 通常有 dropbear 和 openssh
常需要建立 mkdir 目錄后生成 dropbearkey -t rsa -f /etc/dropbear/dropbear_rsa_host_key 其他密鑰同理。
文件共享
現在個人用 docker -v 掛載宿主機目錄,原生可以用 qemu中使用 9p virtio, 支持 host 和 guest 中共享目錄。
參考 sudo docker run --name armv7 -i -t -v /home/juwan:/data:rw forumi0721alpinearmhf/alpine-armhf-glibc
sudo docker run --name ubuntu_v83x -i -t -v ~/:/user_dir --hostname sipeed
網絡共享
docker 默認公開網絡,不需要額外 -p 映射端口。
快樂玩耍吧
python3 開發備忘
內存分析 memory_profiler
python3 -m memory_profiler bin/rpyc_classic.py --host 0.0.0.0 -q
需要的 history 如下
42 apk add gcc
44 apk add g++
47 apk add python3-dev
49 apk add linux-headers
50 pip install memory_profiler -i https://pypi.tuna.tsinghua.edu.cn/simple
如下懶人用法。
import sys, memory_profiler
@memory_profiler.profile(precision=4,stream=sys.stdout)
RPyC ikernel
期間寫的 ipython 內核,比 ipykernel 內核占用更更更少。
swap 掛載文件用法
https://blog.csdn.net/zhangxiaoyang0/article/details/82501209
armv7 v831 的 micropython 倉庫直接編譯
- scp /usr/lib/libffi.so.7 root@192.168.0.171:/usr/lib/
- scp /lib/ld-musl-armhf.so.1 root@192.168.0.171:/lib
主要為 ffi 64 位類型和 time64 結構。
