以下内容主要来源:DE0-Nano-SoC套件-ARM上的Linux-eewiki
这是有关基于Terasic的Intel Cyclone V SE 5CSEMA4U23C6N的DE0-Nano-SoC套件/ Atlas-SoC套件的页面。
可用性
板子:Digi-Key的
DE0-Nano-SoC套件
上述移植流程完全可用,其他类似开发套件均可在 Linux on ARM找到相应的操作流程。
问题1:u-boot编译失败,主要是windows下用git获取的文件拷贝到linux下文件编码改变所致,直接在linux环境下git获取可正常编译;
问题2:烧写到SD卡后系统出现找不到内核错误,查询结果是“Setup extlinux.config”设备树路径写入失败,手动添加该内容后系统正常启动;
![](https://img.haomeiwen.com/i12537273/4206f3a7da5c92fa.png)
静态IP配置:
进入netplan目录:
cd /etc/netplan/
创建并编辑配置文件:
vi 01-network-manager-all.yaml
文件内容如下:
network:
ethernets:
eth0:
dhcp4: false
addresses: [192.168.9.100/24]
optional: true
gateway4: 192.168.9.1
version: 2
内核编译RT-Linux
源码库:altera-opensource/linux-socfpga
找到可用的rt分支
![](https://img.haomeiwen.com/i12537273/c7680f65ac14e0bb.png)
更改SOCFPGA-KERNEL-DEV中的脚本文件:
1、更改version.sh脚本第38行为
KERNEL_TAG=${KERNEL_REL}.126
2、更改patch.sh脚本第101行为
git_tag="socfpga-4.14.126-ltsi-rt"
移植gdbserver
主要参考
根据DE0工具链更改后的一键编译脚本如下:
##
#!/bin/sh
BASE=`pwd`
BUILD_HOST=arm-none-linux-gnueabihf
OUTPUT=${BASE}/install/
make_dirs() {
cd ${BASE}
mkdir compressed install source -p
sudo ls
}
tget () { #try wget
filename=`basename $1`
echo "Downloading [${filename}]..."
if [ ! -f ${filename} ];then
wget $1
fi
echo "[OK] Downloaded [${filename}] "
}
download_package () {
cd ${BASE}/compressed
#下载包
tget http://ftp.gnu.org/gnu/gdb/gdb-9.2.tar.xz
}
tar_package () {
cd ${BASE}/compressed
ls * > /tmp/list.txt
for TAR in `cat /tmp/list.txt`
do
tar -xf $TAR -C ../source
done
rm -rf /tmp/list.txt
}
make_gdb_host () {
cd ${BASE}/source/gdb*
./configure --target=${BUILD_HOST} --program-prefix=arm-none-linux-gnueabihf- CC=arm-none-linux-gnueabihf-gcc --prefix=${OUTPUT}/gdb_host
make && make install
}
make_gdb_target () {
cd ${BASE}/source/gdb*/gdb/gdbserver
./configure --host=${BUILD_HOST} --program-prefix=arm-none-linux-gnueabihf- CC=arm-none-linux-gnueabihf-gcc --prefix=${OUTPUT}/gdbserver
make && make install
}
#去除多余的符号信息,以缩小文件尺寸
strip_gdbserver(){
cd ${OUTPUT}/gdbserver/bin
arm-none-linux-gnueabihf-strip arm-none-linux-gnueabihf-gdbserver -o gdbserver
}
make_dirs
download_package
tar_package
# arm gdb 分为2个部分
make_gdb_host
make_gdb_target
strip_gdbserver
exit $?
交叉编译生成的gdbserver文件比较大,这里的arm-none-linux-gnueabihf-gdbserver有5.9M,我们可以使用strip 命令来去除多余的符号信息,以缩小文件尺寸
arm-none-linux-gnueabihf-strip arm-none-linux-gnueabihf-gdbserver -o gdbserver
将编译生成的 gdbserver 复制到目标板/usr/sbin上,修改执行权限即可正常使用
修改执行权限:
cd /usr/sbin
sudo chmod 777 gdbserver
网友评论