怎么在linux应用程序里读写dtb分区,以更新dtb?
#define CONFIG_BOOTCOMMAND "sf probe 0; " \
"sf read 0x41800000 0x100000 0x10000; " \
"sf read 0x41000000 0x110000 0x400000; " \
"bootz 0x41000000 - 0x41800000"
#define CONFIG_BOOTARGS "console=ttyS0,115200 earlyprintk panic=5 rootwait " \
"mtdparts=spi32766.0:1M(uboot)ro,64k(dtb)ro,4M(kernel)ro,-(rootfs) root=31:03 rw rootfstype=jffs2"
这里dtb分区时设置的只读的,应用层还有办法对其进行写操作不?现在手头没办法测试,要等明天上班了。麻烦知道的告知一声。这个问题不得到答案,老挂念着。
离线
64k(dtb)ro
==>
64k(dtb)
额。不是这个意思。是更新dtb部分固件,不是改源码或者改配置。在线升级固件。
离线
没办法了, 你的 u-boot, dtb, kernel 全是 readonly,
除非你做一个固件, 从 TF 卡启动, 然后执行脚本刷 FLASH
直接从底层呢?写个flash读写驱动,然后指定地址写数据能绕过这个只读不?理论上应该是可以的吧。
还有这个mount -o remount,rw重挂载读写能改变读写权限不?
最近编辑记录 BMN李 (2019-01-20 18:21:55)
离线
我认为这种情况不能编程 flash, 除非你试一下更底层的 spi 指令, 有一个spi 用户层接口看你有没有打开,从那里突破
不知道。这些没动过,用的主线zero-4.13.y。
离线
BMN李 说:晕哥 说:我认为这种情况不能编程 flash, 除非你试一下更底层的 spi 指令, 有一个spi 用户层接口看你有没有打开,从那里突破
不知道。这些没动过,用的主线zero-4.13.y。
要打开这个才行 CONFIG_SPI_SPIDEV=y
估计你也没打开,
只能从 TF 卡上面想办法了, 或者 USB用 sunxi-fel 刷机
CONFIG_SPI_SPIDEV=m编译成模块加进去是可以的嘛?
离线
BMN李 说:晕哥 说:要打开这个才行 CONFIG_SPI_SPIDEV=y
估计你也没打开,
只能从 TF 卡上面想办法了, 或者 USB用 sunxi-fel 刷机
CONFIG_SPI_SPIDEV=m编译成模块加进去是可以的嘛?
应该是可以的吧, 试一试, 期待你在应用层更新flash
额额。加载了spidev.ko模块,但是没在/dev/下生成设备。
离线
真的是很烦 说:这个需求比较奇怪, 能讲讲是出于什么样的需求吗?
应该是发出去的机器(特别是外国)需要升级, 但是又不能拆机, 又没有技术人员上门支持那种。
这种情况,最好是留 TF 卡座, 全志SOC支持优先从 TF 卡启动。
嗯。就是远程在线升级。寄来寄去、上门什么的麻烦。
离线