最早使用firefly的开发板,但是模块内存容量小,就在咸鱼上买了一个没有技术支持,没有图纸的模块,模块SDRAM 4G,EMMC 32G,有hdmi,网络接口,安装了andriod系统。

rk3399性能很强,支持4k视频,一堆usb、iic、千兆网络、pcie…除了散热要求外,其他都不错。

第一个帖子,先把我失败的第一步过程分享,说不定有人能走下去。

arm服务器能安装esxi吗 arm服务器安装安卓_linux

最初,想直接把firefly-rk3399的linux移植过了使用就可以,但这条路没有走通,不知道那里出问题。大概是emmc驱动问题。就差最后一步放弃了,有知道问题的可以告诉我。

采用方法:
   1、分离dtb文件。
   采用AndroidTool_Release_v2.71 读出recorver.img,boot.img.
   分离的second再解开,更换里面的rk-kernel.dtb
 ../../kernel/scripts/resource_tool --verbose --unpack --image=second
   采用解包工具解出dtb文件,rk-kernel.dtb.
   ../kernel/scripts/unpack_bootimg --boot_img recovery.img
   生成的文件在out目录下面。
2、反编译dtb文件
dtc -I dtb -O dts -o file.dts rk-kernel.dtb
3、修改dts,并编译成为dtb文件        
修改的主要删除有关,andriod的部分,如fireware,启动chosen等。
dtc -I dts -O dtb -o rk-kernel.dtb  file.dts 
4、重新打包
     把修改的dtb文件,覆盖原dtb文件
     cp ../rk-kernel.dtb  out/rk-kernel.dtb
     生成second文件
 "打包 second文件"

…/…/kernel/scripts/resource_tool --verbose --pack --image=second out/logo.bmp out/rk-kernel.dtb

继续把second 打包为img文件。

“打包新的recovery.img”

…/…/kernel/scripts/mkbootimg --kernel kernel --ramdisk ramdisk --second second -o recovery.img

同样方法更换boot.img

复位后就可以运行了。

运行的结果:

arm服务器能安装esxi吗 arm服务器安装安卓_arm开发_02

问题是只要增加emmc的arason驱动,就会卡死,删除emmc firefly的操作系统就可以起来,但是rootfs用不了。也就是不行。大家看看,linux起来了。可是文件系统不行。

[    9.311381] using random host ethernet address
[    9.314457] Mass Storage Function, version: 2009/09/11
[    9.314918] LUN: removable file: (no medium)
[    9.334636] read descriptors
[    9.334907] read strings
Ui upgrade
recovery filesystem table
=========================
  0 (null) /tmp ramdisk (null) (null) (null)
  1 /dev/root / ext2 rw,noauto 0 1
  2 proc /proc proc defaults 0 0
  3 devpts /dev/pts devpts defaults,gid=5,mode=620 0 0
  4 tmpfs /dev/shm tmpfs mode=0777 0 0
  5 tmpfs /tmp tmpfs mode=1777 0 0
  6 tmpfs /run tmpfs mode=0755,nosuid,nodev 0 0
  7 sysfs /sys sysfs defaults 0 0
  8 debug /sys/kernel/debug debugfs defaults 0 0
  9 pstore /sys/fs/pstore pstore defaults 0 0
  10 /dev/block/by-name/misc /misc emmc defaults 0 0
  11 /dev/block/by-name/oem /oem ext2 defaults 0 2
  12 /dev/block/by-name/userdata /userdata ext4 defaults 0 2

buf = /dev/block/by-name/misc
 ### get mount_ponit = /dev/block/by-name/misc ###
stat /dev/block/by-name/misc try 1: No such file or directory
Starting input-event-daemon: input-event-daemon: Start parsing /etc/input-event-daemon.conf...
input-event-daemon: Adding device: /dev/input/event0...
input-event-daemon: Adding device: /dev/input/event1...
input-event-daemon: Adding device: /dev/input/event2...
input-event-daemon: Start listening on 3 devices...
done
/etc/init.d/rcS: line 28: alsactl: not found
[root@buildroot:/]# stat /dev/block/by-name/misc try 2: No such file or directory
stat /dev/block/by-name/misc try 3: No such file or directory
stat /dev/block/by-name/misc try 4: No such file or directory
stat /dev/block/by-name/misc try 5: No such file or directory
stat /dev/block/by-name/misc try 6: No such file or directory
stat /dev/block/by-name/misc try 7: No such file or directory
[   16.851305] random: nonblocking pool is initialized
stat /dev/block/by-name/misc try 8: No such file or directory
stat /dev/block/by-name/misc try 9: No such file or directory
stat /dev/block/by-name/misc try 10: No such file or directory
stat /dev/block/by-name/misc try 4: No such file or director
y
-/bin/sh: stat: not found
[root@buildroot:/]# failed to stat /dev/block/by-name/misc
emmc_point is
sd_point is (null)
sd_point_2 is (null)
Recovery start....................
read cmdline
>>> Boot from non-SDcard
buf = /dev/block/by-name/misc
 ### get mount_ponit = /dev/block/by-name/misc ###
devices is not MTD.
stat /dev/block/by-name/misc try 1: No such file or directory
stat /dev/block/by-name/misc try 2: No such file or directory
stat /dev/block/by-name/misc try 3: No such file or directory
stat /dev/block/by-name/misc try 4: No such file or directory
stat /dev/block/by-name/misc try 5: No such file or directory
stat /dev/block/by-name/misc try 6: No such file or directory
stat /dev/block/by-name/misc try 7: No such file or directory
stat /dev/block/by-name/misc try 8: No such file or directory
stat /dev/block/by-name/misc try 9: No such file or directory
stat /dev/block/by-name/misc try 10: No such file or directory

有人告诉我是因为没有更换uboot里面的dtb导致的,我没有试,以后可以尝试一下。

中间解决的几个关键问题:
1、要猜测uart接口在那里,我用示波器把几个接口测试一下,很快解决问题。
2、由于烧写错误,导致uboot被清除,系统变砖头。通过查找emmc flash器件,最后我很幸运发现了,一个tp点(测试点),居然真的是emmc的进入maskroom的点,把它接地问题解决。非常幸运,一般如果不知道,那个是进入maskroom的点,模块就废了。

成功的过程后面帖子发!!!