新闻  |   论坛  |   博客  |   在线研讨会
使用petalinux遇到的一些问题汇总
lolo84 | 2019-07-04 14:11:44    阅读:7065   发布文章



查看支持的gcc 版本;

sudo apt-cache search aarch64



给系统传递参量的范例  , bootargs = "console=ttyS0,115200 root=/dev/mmcblk0p2 rw rootwait";



2. 如果编译过程中出现异常 , 下一次编译的时候最好用 petalinux-build -x mrproper 来清除一下 ;


3. 编译完modules , 需要配置rootfs , 这之后有一个比较重要的步骤 , 就是 petalinux-build -x package 来生成系统编译需要的Kconfig文件 ; 

 

4. makefile 中 常用的三个符号 ,$@--目标文件,$^--所有的依赖文件,$<--第一个依赖文件 


5. 要操作DMA需要添加一个字符型的驱动 , 同时还需要更改设备树源文件 ;修改步骤如下 : https://blog.csdn.net/long_fly/article/details/80482248



amba_pl:amba_pl{


   axidma_chrdev:axidma_chrdev@0{

compatible = "xlnx,axidma-chrdev";

dmas = <&axi_dma_0 0 &axi_dma_0 1> ;

dma-names = "tx_channel","rx_channel" ;

}


...

}


6. 问题描述 , build工程生成的SDK所需要的linux system root路径是哪里?

   官方解答 ,

Run petalinux-build --sdk

Run petalinux-package --sysroot

This will generate sysroots in <plnx_proj>/images/linux/sdk/sysroots



7. petalinux-package --sysroot


8. 添加xilinx_axidma驱动的方法 , 都在这个网页里面了 ;


9. 新建一个petalinux工程  

    petalinux-create --type project --template zynqMP --name dprjdma  新建工程

    petalinux-config --get-hw-description=./zcu102_top_hw_platform_0  获取工程相关的硬件信息

    petalinux-config -c kernel                                        配置内核


petalinux-create -t modules --name mymodule --enable


dtc -I dts -O dtb -o system.dtb ./project-spec/meta-user/recipes-bsp/device-tree/files/system-top.dts //生成设备树的方法


    petalinux-package --boot --fsbl zynq_fsbl.elf --fpga system.bit --boot-device sd --u-boot --force 用命令生成boot.bin

    petalinux-package --boot --fsbl zynqmp_fsbl.elf --fpga system.bit --boot-device sd --u-boot --force --format BIN --pmufw ./pmufw.elf


10. petalinux生成device-tree的标准步骤 

    

petalinux-config --get-hw-description=/home/ds/prj_glb/dprjdma/zcu102_top_hw_platform_0   获取工程相关的硬件信息

petalinux-build -c external-hdf                                                           编译硬件资料

petalinux-build -b device-tree -x do_prepare_recipe_sysroot

petalinux-build -b device-tree                                                              编译设备树  



11. petalinux 支持从工程中打包启动linux需要的文件 , 命令如下


   petalinux-package --prebuilt --help 



12. 在SD卡中启动linux , 

     a. 将BOOT.BIN和image.ub拷贝进SD卡的第一分区

b. 将rootfs.cpio拷贝进SD卡的第二分区,并且使用以下命令解压 sudo pax -rvf rootfs.cpio




13 .当仅仅需要修改根文件系统时,在petalinux工程目录下使用:


#假设app工程名为myapp

 petalinux-build -c rootfs -x do_gen_sysroot

 petalinux-build -c rootfs/myapp

 LANG=C petalinux-build -x package           


 sudo picocom -b 115200 /dev/ttyUSB0 用picocom打开串口;



 sudo tar xvf rootfs.tar.gz -C ./  解压文件系统


 mount -t nfs 192.168.3.178:/NFS /mnt/ -o nolock 挂载文件系统





14. 挂载将服务端的文件夹挂载到开发板的文件目录下 

   步骤 1. 安装 nfs-kernel-server , sudo apt-get install nfs-kernel-server , 一般这一步可以跳过, 安装petalinux的时候应该是安装了的 ;

        2. 编辑 /etc/exports 文件, 增加如下内容

  /home/ds/nfs_server  *(rw,sync) #建立server端的共享目录

  /mnt 192.168.3.150/255.255.255.0 (rw)         #设置可以挂载的客户端IP




3. 重启服务端 

sudo /etc/init.d/nfs-kernel-server restart 并用showmount -a 查看

4. 在客户端linux命令行输入挂载命令

mount -t nfs -o nolock 192.168.3.178:/home/ds/nfs_server /mnt




15 gcc编译带线程的函数需要加  gcc gpio-demo.c -lpthread


























*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客