tag 标签: 固件

相关帖子
相关博文
  • 2025-4-25 12:21
    0 个评论
    本文介绍Linux开发板文件系统打包及镜像制作的方法,演示Linux文件系统打包及镜像制作,适用于想将配置好的系统环境打包成镜像批量烧录。 触觉智能RK3562开发板 演示,搭载4核A53处理器,主频高达2.0GHz;内置独立1Tops算力NPU,可应用于物联网网关、平板电脑、智能家居、教育电子、工业显示与控制等行业。 工具获取 本文所介绍的方法需要使用到Linux环境下的一些工具。工具可联系触觉智能客服或留言获取。下载Ubuntu PC环境后,需要解包后使用,解包方法如下: $ tar -vxf ido- pack -tools.tar -C ./ 解包后的文件内容如下: 工具包脚本默认芯片信息是rk3562,如果使用其他芯片,则需要修改芯片信息,对应路径ido-pack-tools/mkupdate.sh。 文件系统打包及文件系统镜像制作 从开发板中打包出文件系统 先在开发板中插入U盘或TF卡,然后通过mount命令查看文件系统分区节点,如下所示: root@ido:/# mount /dev/mmcblk2p8 on / type ext4 (rw,relatime) devtmpfs on /dev type devtmpfs (rw,relatime,size=996844k,nr_inodes=249211,mode=755) sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime) proc on /proc type proc (rw,nosuid,nodev,noexec,relatime) securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime) tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,size=1008396k,nr_inodes=252099) devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000) tmpfs on /run type tmpfs (rw,nosuid,nodev,size=201680k,nr_inodes=252099,mode=755) tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k,nr_inodes=252099) tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,size=1008396k,nr_inodes=252099,mode=755) cgroup2 on /sys/fs/cgroup/unified type cgroup2 (rw,nosuid,nodev,noexec,relatime,nsdelegate) cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,name=systemd) pstore on /sys/fs/pstore type pstore (rw,relatime) cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpu,cpuacct) cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset) cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices) cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer) debugfs on /sys/kernel/debug type debugfs (rw,relatime) tracefs on /sys/kernel/tracing type tracefs (rw,nosuid,nodev,noexec,relatime) configfs on /sys/kernel/config type configfs (rw,nosuid,nodev,noexec,relatime) fusectl on /sys/fs/fuse/connections type fusectl (rw,nosuid,nodev,noexec,relatime) adb on /dev/usb-ffs/adb type functionfs (rw,relatime) tmpfs on /run/user/0 type tmpfs (rw,nosuid,nodev,relatime,size=201676k,nr_inodes=252099,mode=700) tmpfs on /run/user/1001 type tmpfs (rw,nosuid,nodev,relatime,size=201676k,nr_inodes=252099,mode=700,uid=1001,gid=1001) gvfsd-fuse on /run/user/1001/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,relatime,user_id=1001,group_id=1001) /dev/mmcblk2p7 on /media/ido/oem type ext4 (rw,nosuid,nodev,relatime,uhelper=udisks2) /dev/mmcblk2p6 on /media/ido/userdata type ext4 (rw,nosuid,nodev,relatime,uhelper=udisks2) /dev/sda1 on /media/ido/U type vfat (rw,nosuid,nodev,relatime,uid=1001,gid=1001,fmask=0022,dmask=0022,codepage=936,iocharset=utf8,shortname=mixed,showexec,utf8,flush,errors=remount-ro,uhelper=udisks2) 由上面命令第2和29行可以看到 /dev/mmcblk2p8 on/type ext4 (rw,relatime),/dev/mmcblk2p8 挂载到根目录,/dev/mmcblk2p8就是我们需要的节点。U盘挂载目录为/media/ido/U。 # 挂载根文件目录 $ sudo mount /dev/mmcblk2p8 /mnt # 进入挂载文件夹 $ cd /mnt $ rm var/lib/misc/firstrun $ sudo tar -czf /media/ido/U/ido-rootfs.tar.gz ./* $ sync 注意:打包使用tar命令需要用sudo权限。 压缩包解压 将打包出的压缩包,解压至Ubuntu PC端环境,命令如下: $ mkdir -p your/target/path/ $ sudo tar -xzf ido-rootfs.tar.gz -C your/target/path/ 文件系统镜像制作 查看文件系统大小,如下所示: $ sudo du -sh your/target/path/ 制作镜像需要的脚本文件mk-rootfs-image.sh,文件位于工具包的pack-tools/roofs_mk/目录。根据系统大小修改 mk-rootfs-image.sh 脚本第25行的参数,默认镜像大小设置为4096MB。 dd if=/dev/zero of=${ROOTFSIMAGE} bs=1M count=0 seek=4096 注意:一般脚本中设置的镜像大小需要大于 du 返回值。 $ sudo cd pack-tools/roofs_mk/ $ sudo ./mk-rootfs-image.sh ../../your/target/path/ 脚本正常运行退出后,可在目录得到rootfs.img的文件系统镜像。 制作整包固件update.img 前面文章得到了rootfs.img散包固件,接下来我们制作update.img整包固件。 此处分两种情况: 1. 只修改文件系统,只需将原本烧录的update.img镜像解包后,替换新制作的rootfs.img。 2. 如果除了文件系统外还有其他修改,则可以修改sdk源码编译脚本,编译的时候使用自定义的文件系统。 只修改文件系统的情况 将需要解包的完整镜像文件拷贝到工具包 pack-tools 目录下,此处以完整镜像 IDO-EVB3562-V1B_MIPI-800x1280_Ubuntu20_QT5_240719.img为例。 执行解包脚本,将update镜像按照分区拆分出分区镜像。 $ ./unpack.sh IDO-EVB3562-V1B_MIPI-800x1280_Ubuntu20_QT5_240719.img 执行结果如下: 分区文件解包存放到./output/目录。 将文章第2节中打包好的文件系统镜像复制替换到./output/rootfs.img,文件名称必须为rootfs.img。 最后执行./mkupdate.sh脚本将分区镜像合并为一个完整的镜像update.img。 脚本运行成功后,将会产生新的整包文件./output/update.img。 除了文件系统外还有其他修改的情况 不同SDK修改的地方不一致,在sdk中新建自定义目录myrootfs,把rootfs.img放入其中(myrootfs和build.sh同级目录)。 mkdir myrootfs #将rootfs.img放入myrootfs中 ls myrootfs/rootfs.img 情况一:直接修改build.sh,使其编译时使用我们的rootfs.img打包。在build.sh的function build_rootfs()函数中,添加24-27行代码。 function build_rootfs (){ check_config RK_ROOTFS_IMG || return 0 RK_ROOTFS_DIR=.rootfs ROOTFS_IMG= ${RK_ROOTFS_IMG##*/} rm -rf $RK_ROOTFS_IMG $RK_ROOTFS_DIR mkdir -p ${RK_ROOTFS_IMG%/*} $RK_ROOTFS_DIR case " $1 " in yocto) build_yocto ln -rsf yocto/build/latest/rootfs.img \ $RK_ROOTFS_DIR /rootfs.ext4 ;; debian) build_debian ln -rsf debian/linaro-rootfs.img \ $RK_ROOTFS_DIR /rootfs.ext4 ;; distro) build_distro for f in $( ls distro/output/images/rootfs.*); do ln -rsf $f $RK_ROOTFS_DIR / done ;; myrootfs) ln -rsf myrootfs/rootfs.img \ $RK_ROOTFS_DIR /rootfs.ext4 ;; *) build_buildroot for f in $( ls buildroot/output/ $RK_CFG_BUILDROOT /images/rootfs.*); do ln -rsf $f $RK_ROOTFS_DIR / done ;; esac 在执行build.sh lunch后,执行以下命令: export RK_ROOTFS_SYSTEM=myrootfs 最后执行build.sh即可生成包含了rootfs.img的update.img整包固件。 ./build.sh rockdev/update.img即为我们所需的完整固件。 情况二:如果build.sh脚本中没有function build_rootfs()函数,则修改 ./device/rockchip/common/scripts/mk-rootfs.sh,添加以下8-12行与35行代码: ....省略部分代码........ build_ubuntu20 () { ln -rsf " $PWD /ubuntu/rootfs-ubuntu20.04-desktop.img" $ROOTFS_DIR /rootfs.ext4 finish_build build_ubuntu20 $@ } build_myrootfs () { ln -rsf " $PWD /myrootfs/rootfs.img" $ROOTFS_DIR /rootfs.ext4 finish_build build_myrootfs $@ } ....省略部分代码........ build_hook () { check_config RK_ROOTFS_TYPE || return 0 if ; then ROOTFS= ${RK_ROOTFS_SYSTEM:-buildroot} else ROOTFS= $1 fi ROOTFS_IMG=rootfs. ${RK_ROOTFS_TYPE} ROOTFS_DIR= " $RK_OUTDIR /rootfs" echo "==========================================" echo " Start building rootfs( $ROOTFS )" echo "==========================================" rm -rf " $ROOTFS_DIR " mkdir -p " $ROOTFS_DIR " case " $ROOTFS " in yocto) build_yocto " $ROOTFS_DIR " ;; debian) build_debian " $ROOTFS_DIR " ;; buildroot) build_buildroot " $ROOTFS_DIR " ;; ubuntu) build_ubuntu20 " $ROOTFS_DIR " ;; myrootfs)build_myrootfs " $ROOTFS_DIR " ;; *) usage ;; esac 修改 ./device/rockchip/common/configs/Config.in.rootfs,添加以下7、20、21行代码: config RK_ROOTFS_SYSTEM string default "buildroot" if RK_ROOTFS_SYSTEM_BUILDROOT default "debian" if RK_ROOTFS_SYSTEM_DEBIAN default "yocto" if RK_ROOTFS_SYSTEM_YOCTO default "ubuntu" if RK_ROOTFS_SYSTEM_UBUNTU default "myrootfs" if RK_ROOTFS_SYSTEM_MYROOTFS choice prompt "default rootfs system" help Default rootfs system. config RK_ROOTFS_SYSTEM_BUILDROOT bool "buildroot" depends on RK_BUILDROOT_BASE_CFG != "" config RK_ROOTFS_SYSTEM_DEBIAN bool "debian" depends on RK_DEBIAN_VERSION != "" config RK_ROOTFS_SYSTEM_UBUNTU bool "ubuntu" config RK_ROOTFS_SYSTEM_MYROOTFS bool "myrootfs" 在执行build.sh lunch命令后,执行以下命令: export RK_ROOTFS_SYSTEM=myrootfs 最后执行build.sh命令,即可生成包含了rootfs.img的update.img整包固件。 ./build.sh rockdev/update.img即为我们所需的完整固件。 产品简介 触觉智能RK3562开发板 (型号EVB3562),基于瑞芯微新一代SoC RK3562/RK3562J设计,可用于轻量级人工智能应用。EVB3562开发板配备了PCIe2.1/USB3.0 OTG/千兆网口等各类型接口,支持4G/5G通信、多摄像头及多种视频接口,可应用于物联网网关、平板电脑、智能家居、教育电子、工业显示、工业控制等行业领域。 搭载瑞芯微新一代RK3562/RK3562J芯片; 1TOPS算力NPU,支持INT8/INT16/FP16 等数据类型运算; 支持4K@30FPS与1080P@60FPS视频解码; 13M ISP,支持HDR与多路摄像头视频采集; 单路MIPI-DSI,最高2048x1080@60fps ; 单通道LVDS,最高1366x768@60fps ; 三路独立的以太网口,其中两路千兆网口, 一路百兆网口(2025新款开发板则为USB OTG+双网口); 支持5G/4G/WiFi/蓝牙无线通信; 支持Android,Linux操作系统;
  • 热度 16
    2014-1-24 16:23
    844 次阅读|
    0 个评论
    来源: 中关村在线 作者:中关村在线   本周三,苹果发言人Trudy Muller对外表示,iOS 7系统即将迎来全新的固件更新,将修复偶尔会造成的屏幕崩溃BUG。   据悉,这个BUG类似于“蓝屏”,导致很多iOS 7用户反映在非越狱状态下,开机时会出现白苹果或黑苹果的现象,为用户的正常使用带来了诸多不便。    iOS 7新固件即将发布 解决屏幕崩溃BUG   苹果iOS 7系统的这个BUG引起了用户的强烈不满,在苹果的官方支持论坛上有很多关于该屏幕崩溃BUG的抱怨,一篇名为“运行iOS 7系统的iPhone 5随机关机”的帖子浏览量更是超过了89000,回帖数也达到了249条。这也引起了苹果官方的重视。   苹果iOS 7系统是2013年9月正式推出的,扁平化的革新设计让苹果用户从最初的不接受到最终的爱不释手。但随之而来的问题也让iOS 7用户十分崩溃,App闪退、设备自动重启、非越狱机器开机白苹果等等。虽然苹果从去年9月至今发布了4版系统更新固件,却依然存在一些尚未解决的问题。   但愿即将迎来的固件更新,能将BUG们一一清除。  
  • 热度 12
    2013-11-29 14:09
    2989 次阅读|
    2 个评论
        先将俺在21ic论坛发过的帖子转过来安个家! 最近看到有关PCI9054板卡开不了机,找不到硬件设备的帖子,之前我也做过两块FPGA+PCI9054的板卡,现将自己那阵子遇到这个问题捣鼓了挺长时间的心得分享下。 一、安装PLX官方工具PLXMON在线烧写工具; 二、默认安装在C盘的话,在目录C:\Plx\PlxSdk\Windows\Driver下有官方的PCI9054驱动,烧写固件进EEPROM时要用到,加载官方驱动才可以使用PLXMON软件烧写固件。 三、将板卡插入电脑,在开机前先将TEST引脚用10K电阻上拉至3.3V,空白的93LC56芯片的DI/DO引脚用3.9K电阻下拉至地,这样PCI9054芯片处于高阻态,可以顺利进入系统,进入windows系统后,将TEST引脚下拉,扫描新添加硬件,可以找到PCI设备,安装C:\Plx\PlxSdk\Windows\Driver下的官方驱动,即可烧写固件。 四、打开PLXMON软件,出现下图界面,装好官方驱动后,EEPROM图标会变成黑色,说明可以识别到了该芯片,可以烧写固件。 五、点开EEPROM那个图标,因为我没有板卡,所以是灰色,插入板卡并装载官方驱动,它才会变黑色。打开后会出现如下界面: 六、如果是新的EEPROM,上图中所有值都是FFFFFFFF,点击右下角load File,选择固件程序文件,为.eep格式,如pci9054.eep是我之前用的固件,都是我自己配置的映射大小和空间。 七、选择好固件文件后,上图中的值就会变成如上图所示,选择write,烧写进EEPROM,因为是空白的EEPROM,可能会有警告,忽略,选择继续仍然烧写,提示烧写成功后,关机。 八、将EEPROM芯片93LC56的DO/DI引脚跳线至3.9K上拉,TEST保持正常模式下拉,开机。
  • 热度 14
    2013-11-13 13:58
    1080 次阅读|
    0 个评论
    来源: 中关村在线   终于传来了Windows Phone8.1的消息。一名为Nawzil的人称意外发现了Windows Phone8.10.1xxxx.x的更新固件,据传Windows Phone8.1(Windows Phone Blue)有可能会在2014年第一季度发布。 今年6月份,外媒曾经曝光过Windows Phone8.10.12076.0版本更新固件,而此次曝光的最新版本已经到达了8.10.12236.0,这似乎意味着这段时间微软正在为Windows Phone8.1做着不断的研发。 WP8.1固件曝光(图片引自cnbeta)   WP8.1固件曝光(图片引自cnbeta)   据称Windows Phoen8.1将会是一次革命性的更新,将会带来全新的通知中心、应用清单排列以及研发代号为“Cortana”的智能语音应用(应该类似于苹果的Siri和谷歌的Google Now)等等,当然也许并不仅此而已。看来,新版Windows Phone8.1还是非常值得期待的。
  • 热度 19
    2012-6-1 14:03
    948 次阅读|
    0 个评论
    如果你拥有一台任天堂3DS,你现在应该有新的V2.0.0-2X固件的更新。万众期待的更新包括许多不可或缺的功能,其中最重要的是网上商店的3DS。你可能没有听说过的固件更新后,3DS V2.1.0-3X公正。如果没有,我们不怪你,没有大量的讨论。如果有,那么你可能有一些顾虑它又一次挡住了你的卡。我们可以放心地报告说,它不会阻止任何东西。 V2.0.0-2的所有卡将V2.1.0-3的工作只是罚款。 显然,这个最新的更新只是一个修补程序来解决冻结显示在客户购买了那场比赛岭赛车。现在,东西是安全的,只保留一只眼睛上有新的更新,并确保您的信用卡将在更新前。 R4 3DS R4 Karte R4i Karte R4i Gold
相关资源