论坛的大神大多数热衷于用SoC自己打板子,做正向开发,我个人倒是更喜欢“捡垃圾”,在某宝或者闲鱼上蹲一些拆机或者工厂流出的成品板。好处是这些板子大多很白菜,价格比自己打板制作的成本还低,也省了不少事;坏处是成品板IO引出少,使用不灵活,而且必须逆向出一些配置才好进一步利用。前几天我就买到几张A20的板子,便宜是真的便宜,坑也是真的坑,它的存储只有一个8M的SPI flash,因此rootfs被精简得不成样子,提取script.bin的过程也遇到了很大困难:因为进入FEL后还处在boot0状态下,无法从FEL提取;u-boot的bootdelay是0,无法进入U-boot;bootloader分区不在分区表上没法挂载;很多工具也缺失。最后Linux-sunxi的Wiki上所有的方法都试遍了也没能提取出FEX来。
本着尽量不要放弃的精神,我自己摸索出了一个dump出FEX的部分section的办法:
首先进入/sys/kernel/debug目录:
cd /sys/kernel/debug
ls一下,走运的话debugfs已经被挂载了。如果和我一样不走运,ls出来会是空的。
root@android:/sys/kernel/debug # ls
root@android:/sys/kernel/debug #
这时候要先挂载debugfs:
mount -t debugfs none /sys/kernel/debug
再cd、ls一次,就能看到debugfs的内容了。
root@android:/sys/kernel/debug # ls
asoc
bdi
binder
gpio
hid
ion
memblock
mmc0
regmap
regulator
shrinker
suspend_stats
sys_config
usb
wakeup_sources
再进入cd sys_config目录:
cd sys_config
下面有一个dump_mainkey文件。echo想要知道的section名称进去,对应的FEX配置就会打印到内核缓冲上。以product section为例:
root@android:/sys/kernel/debug/sys_config # echo product > dump_mainkey
[ 1560.039481] script_dump_mainkey: dump product
[ 1560.044360] =========================================================
[ 1560.051672] name: product
[ 1560.055522] sub_key: name type value
[ 1560.061579] version string "100"
[ 1560.067666] machine string "evb-v10"
[ 1560.074133] =========================================================
常用的section名称在linux-sunxi的FEX guide Wiki/ 页面上有。这个页面上的名称很可能是不全的,同时一些section在一些平台上也可能没有。利用dump出来的信息编辑你自己的FEX,就可以开始制作适用于你的设备的img了。
最近编辑记录 SdtElectronics (2020-09-19 16:36:41)
离线
佩服楼主的研究精神
离线
关注,请继续,不要停
离线
我手上有十几块全志A20的板子 ZK-A201AD200全志A20.pdf
可以提供给你两块 把折腾的过程记录下来就可以了 冒昧了
离线
我手上有十几块全志A20的板子 ZK-A201AD200全志A20.pdf
可以提供给你两块 把折腾的过程记录下来就可以了 冒昧了
谢谢你的好意,但我近期较忙没空弄这些了,过段时间再说吧
离线
我手上有十几块全志A20的板子 ZK-A201AD200全志A20.pdf
可以提供给你两块 把折腾的过程记录下来就可以了 冒昧了
楼主,有链接吗? 买一块来研究学习一下
离线