美文网首页
DE0-Nano-SoC Kit 升级u-boot、内核、根文件

DE0-Nano-SoC Kit 升级u-boot、内核、根文件

作者: 望江樵夫 | 来源:发表于2021-04-02 16:02 被阅读0次

以下内容主要来源: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”设备树路径写入失败,手动添加该内容后系统正常启动;


image.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分支

可用分支
更改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

相关文章

网友评论

      本文标题:DE0-Nano-SoC Kit 升级u-boot、内核、根文件

      本文链接:https://www.haomeiwen.com/subject/drkqkltx.html