Firefly开源社区

标题: Rockchip官方純linux,kernel4.4.0 [打印本页]

作者: glchild514    时间: 2016-8-31 11:45
标题: Rockchip官方純linux,kernel4.4.0
http://rockchip.wikidot.com/
Rockchip官方純linux,kernel4.4.0

比現在firefly的kernel 3.10.0還新很多
而且firefly算是android轉過來的linux

高手可以研究看看嗎??

來分享給大家

作者: solosen    时间: 2016-8-31 20:57
这个好。。。。收下。。
作者: csersoft    时间: 2016-8-31 22:28
不知与firefly RK3288板子兼容性可好?有人吃螃蟹吗~
作者: glchild514    时间: 2016-9-1 14:03
http://rockchip.wikidot.com/linux-user-guide

按照說明把u-boot , kernel 都編譯出來了

可是
emmc boot
sd boot
通通失敗 , 都無法讓firefly 進入u-boot
不理解阿??? 高手在哪

Booting from emmc
Writing to the board with USB
For USB to work you must get your board into ROM boot mode, either by erasing
your MMC or holding the recovery button when you boot the board.

rk3288(upgrade_tool)
To create a suitable image and write it to the board:
tools/mkimage -n rk3288 -T rksd -d spl/u-boot-spl-dtb.bin u-boot-dtb.bin(normal)
tools/mkimage -n rk3288 -T rksd -d spl/u-boot-spl-nodtb.bin u-boot-dtb.bin(firefly)
sudo upgrade_tool db  ../rkbin/rk32/rk3288_boot.bin
sudo upgrade_tool wl 64 u-boot-dtb.bin ------------fail
sudo upgrade_tool wl 256 u-boot.img ---------------fail
sudo upgrade_tool rd

Booting from sdcard
Flash uboot
To write an image that boots from an SD card (assumed to be /dev/sdb)
(u-boot-spl-nodtb.bin for firefly)

tools/mkimage -n rk3288 -T rksd -d spl/u-boot-spl-dtb.bin out&&
sudo dd if=out of=/dev/sdb seek=64&&sudo dd if=u-boot-dtb.img of=/dev/sdb seek=256
Format sdcard
Enter into the uboot and issue the following command:
(otg should be connected, maskrom should be pressed)

gpt write mmc 0 $partitions
ums 0 mmc 0
作者: sunlh    时间: 2016-9-1 15:56
这流程和现在的 firefly 硬体对得上吗?:o
作者: solosen    时间: 2016-9-1 23:24
glchild514 发表于 2016-9-1 14:03
http://rockchip.wikidot.com/linux-user-guide

按照說明把u-boot , kernel 都編譯出來了

发现在linux擦不了flash,用windows下的androidtool先擦后在操作都可以烧进了。但启动不起来。提示:
U-Boot SPL 2016.09-rc1 (Sep 01 2016 - 20:26:22)
Trying to boot from MMC1
spl: mmc init failed with error: -95
SPL: failed to boot from all boot devices
### ERROR ### Please RESET the board ###

还在摸索中。。。。
作者: glchild514    时间: 2016-9-2 11:39
我是sd boot

卡在讀不到zImage , 可是我真的有放到裡面


U-Boot SPL 2016.09-rc1-g5405817-dirty (Sep 01 2016 - 15:46:15)
Trying to boot from MMC1


U-Boot 2016.09-rc1-g5405817-dirty (Sep 01 2016 - 15:46:15 +0800)

Model: Firefly-RK3288
DRAM:  2 GiB
MMC:   dwmmc@ff0c0000: 0, dwmmc@ff0f0000: 1
*** Warning - bad CRC, using default environment

stdio_add_devices: Video device failed (ret=-19)
In:    serial
Out:   serial
Err:   serial
Net:   Net Initialization Skipped
No ethernet found.
Hit any key to stop autoboot:  0
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0:6...
Found /extlinux/extlinux.conf
Retrieving file: /extlinux/extlinux.conf
reading /extlinux/extlinux.conf
169 bytes read in 7 ms (23.4 KiB/s)
1:      kernel-4.4
Retrieving file: /zImage
reading /zImage
**Unable to read file /zImage
for failure retrieving kernel
SCRIPT FAILED: continuing...
** First descriptor is NOT a primary desc on 1:1 **
switch to partitions #0, OK
mmc1(part 0) is current device
** No partition table - mmc 1 **
=>
作者: solosen    时间: 2016-9-4 11:45
原来在虚拟机下面操作总是不行,现找了个硬盘装单系统ubuntu操作后。TF卡启动正常了。还差rootfs.
U-Boot 2016.09-rc1 (Sep 04 2016 - 11:01:46 +0800)

Model: Firefly-RK3288
DRAM:  2 GiB
MMC:   dwmmc@ff0c0000: 0, dwmmc@ff0f0000: 1
*** Warning - bad CRC, using default environment

stdio_add_devices: Video device failed (ret=-19)
In:    serial
Out:   serial
Err:   serial
Net:   Net Initialization Skipped
No ethernet found.
Hit any key to stop autoboot:  0
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0:1...
Found /extlinux/extlinux.conf
Retrieving file: /extlinux/extlinux.conf
reading /extlinux/extlinux.conf
165 bytes read in 5 ms (32.2 KiB/s)
1:    kernel-4.4
Retrieving file: /zImage
reading /zImage
6397072 bytes read in 460 ms (13.3 MiB/s)
append: earlyprintk console=ttyS2,115200n8 rw root=/dev/mmcblk0p7 rootfstype=ext4 init=/sbin/init
Retrieving file: /rk3288-fennec.dtb
reading /rk3288-fennec.dtb
36951 bytes read in 8 ms (4.4 MiB/s)
## Flattened Device Tree blob at 01f00000
   Booting using the fdt blob at 0x1f00000
   Loading Device Tree to 1fff3000, end 1ffff056 ... OK

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x500
[    0.000000] Initializing cgroup subsys cpuset
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Initializing cgroup subsys cpuacct
[    0.000000] Linux version 4.4.16 (sen@ubuntu64) (gcc version 5.4.0 20160609 (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.1) ) #1 SMP Sun Sep 4 11:08:50 CST 2016
[    0.000000] CPU: ARMv7 Processor [410fc0d1] revision 1 (ARMv7), cr=10c5387d
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache


作者: glchild514    时间: 2016-9-5 10:59
你真的可以讀到zImage耶

虛擬機器不行是什麼意思 , 我真的是虛擬機器

可是我zImage真的有放到 /dev/sdb6

你的步驟是什麼
可不可以說一下
作者: solosen    时间: 2016-9-5 12:59
本帖最后由 solosen 于 2016-9-5 13:02 编辑
glchild514 发表于 2016-9-5 10:59
你真的可以讀到zImage耶

虛擬機器不行是什麼意思 , 我真的是虛擬機器

之前是在win10下跑的虚拟机32位ubuntu,发现在uboot下用otg挂TF卡到ubuntu,怎样都挂不了。/dev下没有相关设备。在非虚拟机下没这问题 。    另外你要看看zImage是放在TF卡第一分区,具体是不是sdb6要看清楚了。昨天折腾了一下rootfs,但内核挂载不上。但uboot下用指令可以挂载。也能正常读到里面文件。。
作者: glchild514    时间: 2016-9-5 13:57
為什麼是第1各分區  說明裡面明明就是第6分區阿 .......

Format sdcard
Enter into the uboot and issue the following command:
(otg should be connected, maskrom should be pressed)

gpt write mmc 0 $partitions
ums 0 mmc 0

Now the board will act as an USB-drive.
In host:
sudo mkfs.fat /dev/sdb6
sudo mkfs.ext4 /dev/sdb7
Flash kernel and rootfs
Copy zimage and dts file to dev/sdb6

cp arch/arm/boot/zImage /media/chen/9F35-9565/
cp arch/arm/boot/dts/rk3288-fennec.dtb /media/chen/9F35-9565/rk3288-fennec.dtb
Add extlinux/extlinux.conf to dev/sdb6

label kernel-4.4
    kernel /zImage
    fdt /rk3288-fennec.dtb
    append  earlyprintk console=ttyS2,115200n8 rw root=/dev/mmcblk0p7 rootfstype=ext4 init=/sbin/init
作者: glchild514    时间: 2016-9-5 19:15
sd boot我也成功了 雖然還是一頭霧水

另外我想問eMMC boot我一直卡在前面

tools/mkimage -n rk3288 -T rksd -d spl/u-boot-spl-nodtb.bin u-boot-dtb.bin(firefly)
進入MaskRom mode
sudo upgrade_tool db  ../rkbin/rk32/rk3288_boot.bin
應該會進入Loader mode才能燒後面的
我卻沒辦法
sudo upgrade_tool wl 64 u-boot-dtb.bin
sudo upgrade_tool wl 256 u-boot.img
sudo upgrade_tool rd

我燒完rk3288_boot.bin後
卻還是一直在Maskrom mode都不會到Loader mode

好奇怪喔 , 為什麼???
作者: solosen    时间: 2016-9-5 23:44
glchild514 发表于 2016-9-5 19:15
sd boot我也成功了 雖然還是一頭霧水

另外我想問eMMC boot我一直卡在前面

sdb6??因为执行完前面操作后我的卡只有sdc1,sdc2。所以是猜的。而且有次忘改指令,都是以sdb操作。把我一个硬盘引导整没了,得重装。
执行完sudo upgrade_tool db  ../rkbin/rk32/rk3288_boot.bin 提示Download boot ok成功后应该自动进入loader模式的。如果不行,那就得自己找找看了。我按Users Guide操作,emmc还是启动不了。sdcard启动不了文件系统。。
作者: glchild514    时间: 2016-9-6 09:02
奇怪了
你的板子是firefly嗎
還是你貼出來的fennec
編譯參數是不同的喔

還有你的分區錯了 你應該要看到sdx1~sdx7 才是對的
sdx6是zImage , dtb
sdx7是rootfs

我已經把官方的u-boot zImage Debian 都啟動了

但是VGA沒畫面 , 不知道怎麼弄

Welcome to Debian GNU/Linux 8 (jessie)!

[  OK  ] Listening on Syslog Socket.
[  OK  ] Created slice System Slice.
[  OK  ] Created slice system-getty.slice.
[  OK  ] Created slice system-serial\x2dgetty.slice.
[  OK  ] Reached target Swap.
[  OK  ] Started Forward Password Requests to Wall Directory Watch.
[  OK  ] Listening on udev Kernel Socket.
[  OK  ] Reached target Remote File Systems (Pre).
[  OK  ] Reached target Remote File Systems.
[  OK  ] Reached target Encrypted Volumes.

...............

root@linaro-alip:~#
root@linaro-alip:~# xrandr
Can't open display
作者: lichundong    时间: 2016-9-6 12:54
谢谢分享!!!!

作者: solosen    时间: 2016-9-6 13:53
glchild514 发表于 2016-9-6 09:02
奇怪了
你的板子是firefly嗎
還是你貼出來的fennec

呵呵,原来是这里的问题呀。忽略了这个。。。另外你从emmc启动可以了么,分享一下哦。
作者: glchild514    时间: 2016-9-6 14:50
eMMC boot我一直卡在前面進行不下去 , 不知道為什麼

tools/mkimage -n rk3288 -T rksd -d spl/u-boot-spl-nodtb.bin u-boot-dtb.bin(firefly)
進入MaskRom mode
sudo upgrade_tool db  ../rkbin/rk32/rk3288_boot.bin
應該會進入Loader mode才能燒後面的
我卻沒辦法
sudo upgrade_tool wl 64 u-boot-dtb.bin
sudo upgrade_tool wl 256 u-boot.img
sudo upgrade_tool rd

我燒完rk3288_boot.bin後
卻還是一直在Maskrom mode都不會到Loader mode

好奇怪喔 , 為什麼???
作者: solosen    时间: 2016-9-6 20:39
glchild514 发表于 2016-9-6 14:50
eMMC boot我一直卡在前面進行不下去 , 不知道為什麼

tools/mkimage -n rk3288 -T rksd -d spl/u-boot-sp ...

贴出我的操作:
sen@ubuntu64:/home/rk-linux/u-boot-release-20160816$ tools/mkimage -n rk3288 -T rksd -d spl/u-boot-spl-nodtb.bin u-boot-dtb.bin
sen@ubuntu64:/home/rk-linux/u-boot-release-20160816$ sudo upgrade_tool db  ../rkbin/rk32/rk3288_boot.bin
Download boot ok.
sen@ubuntu64:/home/rk-linux/u-boot-release-20160816$ sudo upgrade_tool wl 64 u-boot-dtb.bin
Write LBA from file (100%)
sen@ubuntu64:/home/rk-linux/u-boot-release-20160816$ sudo upgrade_tool wl 256 u-boot.img
Write LBA from file (100%)
sen@ubuntu64:/home/rk-linux/u-boot-release-20160816$ sudo upgrade_tool rd
Reset Device OK.
sen@ubuntu64:/home/rk-linux/u-boot-release-20160816$

你看看rk3288_boot.bin 路径是否正确,烧写是否真的成功了。烧写成功ttys2 调试口有信息滚动的。

DDR Version 1.00 20141007
In
Channel a: DDR3 200MHz
Bus Width=32 Col=10 Bank=8 Row=15 CS=1 Die Bus-Width=16 Size=1024MB
Channel b: DDR3 200MHz
Bus Width=32 Col=10 Bank=8 Row=15 CS=1 Die Bus-Width=16 Size=1024MB
Memory OK
Memory OK
OUT
serial_init 0
ChipType = 8
SDC_BusRequest:  CMD=8 DATA BUSY  1615
SDC_BusRequest:  CMD=8 DATA BUSY  1615
SDC_BusRequest:  CMD=8 DATA BUSY  1615
SdmmcInit=0 400
...FlashInit enter...
FtlMallocOffset = 8040 8000
FtlMallocOffset = 10040 8000
FtlMallocOffset = 11040 1000
FtlMallocOffset = 19040 8000
FtlMallocOffset = 1a040 1000
1:200 0 7f7f05 22
...NandcInit enter...
0:1200 0 7f7f05 22
gNandcVer = 6
SDC_BusRequest:  CMD=8  SDC_RESP_TIMEOUT 1784
  SDC_BusRequest:  CMD=8  SDC_RESP_TIMEOUT 1784
  SDC_BusRequest:  CMD=8  SDC_RESP_TIMEOUT 1784
  SDC_BusRequest:  CMD=5  SDC_RESP_TIMEOUT 1784
  SDC_BusRequest:  CMD=5  SDC_RESP_TIMEOUT 1784
  SDC_BusRequest:  CMD=5  SDC_RESP_TIMEOUT 1784
  SDC_BusRequest:  CMD=55  SDC_RESP_TIMEOUT 1784
  SDC_BusRequest:  CMD=55  SDC_RESP_TIMEOUT 1784
  SDC_BusRequest:  CMD=55  SDC_RESP_TIMEOUT 1784
mmc Ext_csd, ret=0 ,
Ext[226]=20, bootSize=2000,
                 Ext[215]=1, Ext[214]=d1, Ext[213]=f0, Ext[212]=0,cap =1d1f000
SdmmcInit=2 0
BootCapSize=2000
UserCapSize=1d1f000
FwPartOffset=2000 , 0
UsbHook 668126
powerOn 668298

U-Boot SPL 2016.09-rc1 (Sep 04 2016 - 11:01:46)
Trying to boot from MMC1
Card did not respond to voltage select!
spl: mmc init failed with error: -95
SPL: failed to boot from all boot devices
### ERROR ### Please RESET the board #

我反复操作还是这样。。没折了。
作者: glchild514    时间: 2016-9-8 09:59
你patch有打上去嗎https://patchwork.ozlabs.org/patch/663753/

Downloads the Uboot source
(unmerged patch : add partitions info)
https://patchwork.ozlabs.org/patch/663753/

git clone https://github.com/rockchip-linux/u-boot -b release-20160816
作者: 101    时间: 2016-10-12 20:26
本帖最后由 101 于 2016-10-12 20:29 编辑

额。。居然这里还有人。。
有问题可以在github上提问哦。这样可以方便大家找到

不能emmc boot是因为这个patch不被接收,
https://patchwork.ozlabs.org/patch/657573/
我之所以也没apply到rockchip-linux是因为这样导致sdcard boot不好用。。。大部分人都不会去短clk的,而是直接擦除emmc

vga那个是没有驱动啦。。这是firefly板级细节的东西,我们也没support,用hdmi就好了

至于只能放到第一个分区大概是因为不是用gpt write partitions写的吧
uboot标准的distro boot会找第一个分区,或者设置了boot flag的分区,你自己用gdisk分的区的话可能没设置这个flag



作者: 101    时间: 2016-10-12 20:31
{:4_166:}没有精力去维护那么多板子啦,最好大家练手写好driver直接传到upstream,cherry-pick的功夫还是有的

作者: 紫夜有毒    时间: 2016-10-14 21:00
release-4.4 branch使用rockchip_linux_defconfig 卡在了midgard/mali_kbase_jd.c   楼主是在config里面加上了CONFIG_DMA_SHARED_BUFFER=y啊,求解答
作者: 紫夜有毒    时间: 2016-10-17 15:47
启动倒是成功了,可是没法进入loader模式了啊,我尼玛感觉要变砖了




欢迎光临 Firefly开源社区 (https://dev.t-firefly.com/) Powered by Discuz! X3.1