cat /proc/kallsyms grep fib4 rule default
cat /proc/kallsyms grep fib4 rule default
1、下载源文件
http://ftp.gnu.org/pub/gnu/ncurses/
Tags · mirror/ncurses (github.com)
Ncurses project files : Ncurses (launchpad.net)
2、加压并配置
./configure --prefix=/usr/aarch64-linux-gnu --host=aarch64-linux CC=aarch64-linux-gnu-gcc --without-cxx --without-cxx-binding --without-ada --without-manpages --enable-overwrite --without-debug --without-tests --with-shared --without-tests --without-progs
3、编译并安装
make&&make install
make cfg all tgt=rom ARCH=mips CROSS_COMPILE=mipsel-linux- DEBUG=-g
第一部分:ARCH=mips CROSS_COMPILE=mipsel-linux- DEBUG=-g
ARCH=mips 设置了平台是mips平台
CROSS_COMPILE=mipsel-linux- 设置交叉编译器前缀,在编译时会替换成mipsel-linux-,之所以设置环境变量,一个是方便在这儿不用输入绝对路径,当找不到交叉编译器的时候,需要输入交叉编译器的绝对路径
DEBUG=-g 设置调试信息
第二部分:make cfg all tgt=rom
make cfg 是配置
make all
make tgt=rom 在Makefile.inc里可以看到,是生成的二进制文件
1、原因

2、解决方法
意思是新的glibc库已经不支持sys_siglist[],使用strsignal()。
重点方括号变成了圆括号,就是由数组变成了函数。
1、下载并解压
https://github.com/mongodb/mongo-c-driver/releases/download/1.23.4/mongo-c-driver-1.23.4.tar.gz
编译环境:Ubuntu 20.04
2、环境配置
sudo apt-get install cmake libssl-dev libsasl2-dev
tar xzf mongo-c-driver-1.23.4.tar.gz
cd mongo-c-driver-1.23.4
mkdir cmake-build
cd cmake-build
cmake -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DCMAKE_C_COMPILER=/usr/bin/aarch64-linux-gnu-gcc -DCMAKE_CXX_COMPILER=/usr/bin/aarch64-linux-gnu-g++ -DOPENSSL_INCLUDE_DIR=/usr/aarch64-linux-gnu/include/openssl/ -DCMAKE_PREFIX_PATH=/usr/lib/aarch64-linux-gnu/ -DCMAKE_INSTALL_PREFIX:PATH=/usr/aarch64-linux-gnu ..
CMAKE_INSTALL_PREFIX:安装目录
OPENSSL_INCLUDE_DIR:openssl目录
CMAKE_PREFIX_PATH:指定查找目录
CMAKE_CXX_COMPILER:C++编译器目录
CMAKE_C_COMPILER:C编译器目录
3、编译安装
cmake --build .
sudo cmake --build . --target install
4、修改配置文件
vim ./src/libmongoc/CMakeLists.txt
target_link_libraries (${test}
PRIVATE
$<$<C_COMPILER_ID:MSVC>:DbgHelp.dll>
$<$<PLATFORM_ID:Windows>:shlwapi>
$<$<BOOL:${use_shared}>:mongoc_shared>
$<$<NOT:$<BOOL:${use_shared}>>:mongoc_static>
${LIBRARIES}
${RESOLV_LIBRARIES} -lrt
)
target_link_libraries (mongoc_shared PRIVATE ${LIBRARIES} PUBLIC ${BSON_LIBRARIES} -lrt)
1、下载解压源码
https://github.com/openssl/openssl/releases/download/openssl-3.1.0/openssl-3.1.0.tar.gz
2、编译配置
./Configure --prefix=/usr/lib/aarch64-linux-gnu/ --host=aarch64-linux CC=aarch64-linux-gnu-gcc --openssldir=/usr/lib/aarch64-linux-gnu/ '-Wl,-rpath,$(LIBRPATH)'
./config no-asm shared no-async --prefix=$(pwd)/install --cross-compile-prefix=aarch64-linux-gnu-
3、编译安装
make
make install
4、arm平台错误
aarch64-linux-gnu-gcc: error: unrecognized command line option '-m64'
打开Makefile,去掉-m64
CNF_CFLAGS=-pthread -m64
CNF_CXXFLAGS=-std=c++11 -pthread -m64
编译平台:Ubuntu20.04 x86 amd64
目标平台:Ubuntu20.04 arm arrch64
1、软件库下载
wget https://github.com/sctp/lksctp-tools/archive/refs/tags/lksctp-tools-1.0.18.zip
解压进入目录
2、配置编译环境
sudo apt install automake
sudo apt install libtool
./bootstrap
./configure --prefix=/usr/lib/aarch64-linux-gnu/ --host=aarch64-linux CC=aarch64-linux-gnu-gcc
3、编译安装
make
make install
1、查看内存页大小
root@Linux:~# getconf PAGESIZE
4096
2、查看DMA分配关系
root@Linux:~# cat /proc/buddyinfo
Node 0, zone DMA 4 5 0 5 1 3 4 4 6 7 461
Node 0, zone Normal 456 1982 1205 478 151 49 31 18 10 5 6732
3、计算DMA内存占用大小
每一行代表当前的内存区中连续1、2、4、8、16、32、64、128、256、512、1024个可使用空闲页的数量,当前系统默认的页大小为4K,所以分别对应的大小为1x4k、2x4k、4x4k、8x4k、16x4k、32x4k、64x4k、128x4k、256x4k=1M、512x4k=2M、1024x4k=4M,由此可以计算出:
DMA大小为:
3x4M+1x2M+1x1M+…=16M
DMA32大小为:
539x4M+22M+21M+…=2G
Normal大小为:
7043x4M+9x2M+6x1M+…=27G
1、错误提示:
“mkimage” command not found – U-Boot images will not be built
2、解决方式
sudo apt-get install uboot-mkimage
sudo apt-get install u-boot-tools
/*****************************************************************************
* linux fdisk tf卡分区操作解析说明
* 说明:
* 本文主要是解析linux fdisk命令的使用,是一个朋友留下的自动化脚本。
*
* 2015-9-16 晴 深圳 南山平山村 曾剑锋
****************************************************************************/
#! /bin/sh
# 卸载接下来需要分区的设备
umount /dev/mmcblk1boot0
umount /dev/mmcblk1boot1
umount /dev/mmcblk1p1
umount /dev/mmcblk1p2
sync # 同步上面的操作
sleep # 等待1秒
fdisk /dev/mmcblk1 << EOF # 开始分区
d # 删除操作
# 删除分区1
d # 删除操作
# 删除分区2,其实只剩下2,这里会出现menu
m # 显示操作menu,相当于帮助
m # 显示操作menu,相当于帮助
n # 创建新分区,相当于new
p # 创建primary分区
# 创建primary分区1
# First sector (-, default ):
+50M # Last sector, +sectors or +size{K,M,G} (-, default ): +50M, Partition of type Linux and of size MiB is set
a # toggle a bootable flag, 选择启动分区
# 选择分区1作为启动分区
t # change a partition's system id, 改变分区类型
c # c W95 FAT32 (LBA),选择FAT32格式
n # 创建新分区,相当于new
p # 创建primary分区
# 创建primary分区2
# First sector (-, default ):
# Last sector, +sectors or +size{K,M,G} (-, default ): Using default value , Partition of type Linux and of size 3.7 GiB is set
p # 查看创建结果
w # 保存退出
EOF
sync # 同步以上操作
sleep
umount /dev/mmcblk1p1 # 卸载创建的分区
umount /dev/mmcblk1p2 # 卸载创建的分区
sync # 同步以上操作
sleep
mkdosfs -F /dev/mmcblk1p1 # 以FAT32格式化mmcblk1p1分区
sync
sleep
mkfs.ext3 /dev/mmcblk1p2 # 以ext3格式化mmcblk1p2分区
sync
sleep
echo "finish make tf card" # 输出提示信息