您尚未登录。

#2 Re: 计算机图形/GUI/RTOS/FileSystem/OpenGL/DirectX/SDL2 » 玩伊拉克成色bbb » 2019-06-04 18:51:32

bbb是开源的,别说原理图,PCB图都有,你可以直接拿他的PCB去生产的。

#3 Re: DIY/综合/Arduino/写字机/3D打印机/智能小车/平衡车/四轴飞行/MQTT/物联网 » 捡了个便宜的高级ZYNQ XC7Z010 开发板玩玩 » 2019-06-04 14:50:47

我是无意中咸鱼看到的,小白一枚想学习FPGA,这么便宜的板子就当玩了。30一块,邮费10块,四川居然收12块邮费。。。
到手后,焊UART插针和JTAG插针,没喷锡的焊盘好难焊啊,烙铁开到400度,结果焊半天好不容易焊上了,丑的一逼。

我看有大佬说5V也能启动,结果接下来用USB转TTL的那个5V启动不起来,估计电流不够,虽然我电脑是USB3.0的。换上12V电源。很快就欢唱起来了。

本来想一步一步跟大佬学uboot,kernel,device tree,rootfs,这么来的,但TF卡座还没到。也没有JTAG线。想着学FPGA先忽略这个linux吧,那就能用先。
第一步就是要备份,万一出错了还能还原,根据前面楼层大佬的备份NAND数据和分区的方法,几个NAND分区全备份了。

根据系统启动的信息

9 ofpart partitions found on MTD device pl35x-nand
Creating 9 MTD partitions on "pl35x-nand":
0x000000000000-0x000000300000 : "nand-fsbl-uboot"
0x000000300000-0x000000800000 : "nand-linux"
0x000000800000-0x000000820000 : "nand-device-tree"
0x000000820000-0x000001220000 : "nand-rootfs"
0x000001220000-0x000002220000 : "nand-jffs2"
0x000002220000-0x000002a20000 : "nand-bitstream"
0x000002a20000-0x000006a20000 : "nand-allrootfs"
0x000006a20000-0x000007e00000 : "nand-release"
0x000007e00000-0x000008000000 : "nand-reserve"

一个一个分区的备份吧

zynq-uboot> setenv ipaddr 192.168.5.200
zynq-uboot> setenv serverip 192.168.5.28
zynq-uboot> nand read 0x100000 0x000000 0x300000

NAND read: device 0 offset 0x0, size 0x300000
 3145728 bytes read: OK
zynq-uboot> tftpput 0x100000 0x300000 fsbl-uboot
Gem.e000b000:0 is connected to Gem.e000b000.  Reconnecting to Gem.e000b000
Gem.e000b000 Waiting for PHY auto negotiation to complete... done
Gem.e000b000----100----4047----
Using Gem.e000b000 device
TFTP to server 192.168.5.28; our IP address is 192.168.5.200
Filename 'fsbl-uboot'.
Save address: 0x100000
Save size:    0x300000
Saving: ################################################################
         #################################################################
         #################################################################
         ####################
         2.3 MiB/s
done
Bytes transferred = 3145728 (300000 hex)
zynq-uboot> nand read 0x100000 0x300000 0x500000

NAND read: device 0 offset 0x300000, size 0x500000
 5242880 bytes read: OK
zynq-uboot> tftpput 0x100000 0x500000 linux     
Gem.e000b000:0 is connected to Gem.e000b000.  Reconnecting to Gem.e000b000
Gem.e000b000 Waiting for PHY auto negotiation to complete... done
Gem.e000b000----100----4047----
Using Gem.e000b000 device
TFTP to server 192.168.5.28; our IP address is 192.168.5.200
Filename 'linux'.
Save address: 0x100000
Save size:    0x500000
Saving: ################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################
         2.1 MiB/s
done
Bytes transferred = 5242880 (500000 hex)
zynq-uboot> nand read 0x100000 0x800000 0x20000 

NAND read: device 0 offset 0x800000, size 0x20000
 131072 bytes read: OK
zynq-uboot> tftpput 0x100000 0x20000 devicetree.dtb 
Gem.e000b000:0 is connected to Gem.e000b000.  Reconnecting to Gem.e000b000
Gem.e000b000 Waiting for PHY auto negotiation to complete... done
Gem.e000b000----100----4047----
Using Gem.e000b000 device
TFTP to server 192.168.5.28; our IP address is 192.168.5.200
Filename 'devicetree.dtb'.
Save address: 0x100000
Save size:    0x20000
Saving: ########
         2 MiB/s
done
Bytes transferred = 131072 (20000 hex)

大概是这样把9个分区全部备份好了

第二步就想着有现成的系统,破解下口令,然后把挖矿的程序停了不就可以开搞了吗?

其实linux系统root口令很好破,只要你拿到文件系统了。直接把/etc/passwd 里面root对应的加密密码字段删掉就可以了,再启动输入root就会自动进入系统不会让你输入密码了。

我们备份的额9个分区内容中,密码就在0x000002a20000-0x000006a20000 : "nand-allrootfs" 这个分区里面,具体挂载这个文件系统的方法我参考了
https://www.cnblogs.com/findumars/p/5869608.html
https://blog.csdn.net/long0801/article/details/77368205
两篇文章,挂载好后,直接编辑etc/passwd,修改成下面这样.

root::0:0:root:/home/root:/bin/sh

然后顺便把挖矿的控制程序关掉吧

mv etc/rcS.d/S95cgminer.sh home/root/

注意,操作的时候是在allrootfs的挂载点下操作,不要操作到宿主机的文件了。
然后按照参考的那两篇文章中方法重新打包,我的命令是:

mkfs.jffs2 -r /tmp/aa/ -o allrootfs.new -e 0x20000 --pad=0x4000000 -n -l

/tmp/aa 是我的allrootfs挂载点,allrootfs.new是新生成的分区文件 ,其余参数照做应该没问题。

第三部就是把改好的系统文件烧回nand去。

zynq-uboot> tftpboot 0x100000 allrootfs.new
zynq-uboot> nand erase 0x2a20000 0x4000000
zynq-uboot> nand write 0x100000  0x2a20000 0x4000000

这样写完就可以愉快的重启了。登录的时候直接输入root就进系统了。接下来要玩FPGA就方便了。不过我以后还是想从头编译刷机刷一刷。

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn