我在kernel\drivers\video\rockchip\rk_fb.c中修改的代码,重新编译烧录以后,log显示修改没有生效。
然后我重新编译了uboot,把uboot.img和RK3128MiniLoaderAll_V2.25.bin也重新烧录了,但是kernel的修改还是没有生效,请教到底是什么原因?如何解决?谢谢!
例如,我在rk32_mipi_dsi_probe()函数的倒数第二句,dev_info(&pdev->dev, “rk mipi_dsi probe success!, flower\n”);增加了flower的字样,但是运行的时候,日志里还是显示rk mipi_dsi probe success!,没有我增加的东西
启动日志.zip (35 KB)
把带内核的boot.img给替换掉,建议重新编译不要加ota参数
leung先森 发表于 2017-7-3 16:19
把带内核的boot.img给替换掉,建议重新编译不要加ota参数
重新编译什么不要加ota参数?
我没有加ota参数
我都是按照你们网页上的指示来做的
cd SDK/u-boot
make rk3128_defconfig
make
编译内核是:
make fireprime_defconfig
make -j8 rk3128-fireprime.img
flowerking 发表于 2017-7-3 16:28
重新编译什么不要加ota参数?
我没有加ota参数
我都是按照你们网页上的指示来做的
你编译了内核那部分,没有编译上层
本帖最后由 flowerking 于 2017-7-4 09:43 编辑
leung先森 发表于 2017-7-3 16:36
你编译了内核那部分,没有编译上层
现在编译和下载没问题了,但是初始化的过程中,mali400 GPU没有起来,感觉根本就没有去初始化GPU,所以我的MiPi凭一直没有亮起来,下面是log,请帮忙分析一下是什么原因?
[ 24.518290] ======== PULL WL_REG_ON LOW! ========
[ 24.518304] [WLAN_RFKILL]: rockchip_wifi_power: 0
[ 24.521934] Cam_Powerdowm
[ 24.536837] init: /dev/hw_random not found
[ 24.536961] keychord: using input dev 20050030.pwm for fevent
[ 24.536983] keychord: using input dev rk29-keypad for fevent
[ 24.549375] init: /dev/hw_random not found
[ 24.551603] fs_mgr: Running /sbin/resize2fs on /dev/block/platform/1021c000.rksdmmc/by-name/system
[ 24.556285] resize2fs: resize2fs 1.42.9 (28-Dec-2013)resize2fs: /sbin/resize2fs: Bad magic number in super-block while trying to open /dev/block/platform/1021c000.rksdmmc/by-name/systemresize2fs: Couldn’t find valid filesystem superblock.resize2fs: resize2fs terminated by exit(1)
[ 24.559632] EXT4-fs (mmcblk0p12): VFS: Can’t find ext4 filesystem
[ 24.559849] fs_mgr: __mount(source=/dev/block/platform/1021c000.rksdmmc/by-name/system,target=/system,type=ext4)=-1
[ 24.560609] fs_mgr: Failed to mount an un-encryptable or wiped partition on/dev/block/platform/1021c000.rksdmmc/by-name/system at /system options: noauto_da_alloc error: Invalid argument
[ 24.575427] EXT4-fs (mmcblk0p8): recovery complete
[ 24.576033] EXT4-fs (mmcblk0p8): mounted filesystem with ordered data mode. Opts: noauto_da_alloc,discard
[ 24.576206] fs_mgr: __mount(source=/dev/block/platform/1021c000.rksdmmc/by-name/cache,target=/cache,type=ext4)=0
[ 24.581269] EXT4-fs (mmcblk0p10): recovery complete
[ 24.581303] EXT4-fs (mmcblk0p10): mounted filesystem with ordered data mode. Opts: noauto_da_alloc,discard
[ 24.581448] fs_mgr: __mount(source=/dev/block/platform/1021c000.rksdmmc/by-name/metadata,target=/metadata,type=ext4)=0
[ 24.590835] ret: 0
[ 24.591740] EXT4-fs (mmcblk0p9): recovery complete
[ 24.592131] EXT4-fs (mmcblk0p9): mounted filesystem with ordered data mode. Opts: noauto_da_alloc,discard
[ 24.592297] fs_mgr: __mount(source=/dev/block/platform/1021c000.rksdmmc/by-name/userdata,target=/data,type=ext4)=0
[ 24.592384] init: fs_mgr_mount_all returned an error
[ 24.592772] init: fs_mgr_mount_all returned unexpected error 255
[ 24.595255] Unable to find swap-space signature
[ 24.595361] fs_mgr: swapon failed for /dev/block/zram0
[ 24.604775] Cannot change disksize for initialized device
[ 24.606463] Unable to find swap-space signature
[ 24.606572] fs_mgr: swapon failed for /dev/block/zram0
[ 24.620348] [WLAN_RFKILL]: wifi shut off power.
[ 24.620364] soc-camera-pdrv gc0329_front_5: Probing gc0329_front_5
[ 24.620392] [WLAN_RFKILL]: rockchip_wifi_ref_voltage: 0
[ 24.620407] [WLAN_RFKILL]: rockchip_wifi_ref_voltage: wifi io reference voltage control is disabled.
[ 24.620524] dhd_module_init: Exit err=0
[ 24.642856] EXT4-fs (mmcblk0p9): Unrecognized mount option “background_gc=on” or missing value
[ 24.650105] init: cannot find ‘/system/bin/logd’, disabling ‘logd’
[ 24.650819] init: cannot find ‘/system/bin/lmkd’, disabling ‘lmkd’
[ 24.650886] init: cannot find ‘/system/bin/servicemanager’, disabling ‘servicemanager’
[ 24.650947] init: cannot find ‘/system/bin/vold’, disabling ‘vold’
[ 24.650996] init: cannot find ‘/system/bin/surfaceflinger’, disabling ‘surfaceflinger’
[ 24.657365] init: property ‘ro.serialno’ doesn’t exist while expanding ‘${ro.serialno}’
[ 24.657406] init: cannot expand ‘${ro.serialno}’ while writing to ‘/sys/class/android_usb/android0/iSerial’
[ 24.657707] init: property ‘ro.product.manufacturer’ doesn’t exist while expanding ‘${ro.product.manufacturer}’
[ 24.657742] init: cannot expand ‘${ro.product.manufacturer}’ while [u[ 24.65893[[[ 24.662499] bat_cap: oldcap path is /[[ [ 24.666382] init: cannot find '/system[[ [ 24.672725] read descriptors
[ 24.672758] read strings
[ 24.672[ 24.689287] ret: 0
[ 24.816163] rk818-battery rk818-battery: changed: dsoc=0, rsoc=0
[ 24.827403] rk818-battery rk818-battery: set charge to digital termination mode
[ 24.836796] Cam_Powerdowm
[ 24.837335] min_w = 640,min_h = 480 ,max_real_w = 640,max_real_h = 480,max_w = 640,max_h =480
[ 24.857455] gc0329_front_5(rk_cam_sensor:169): write reg(0xfc, val:0x16) failed, try to write again!
[ 24.858413] gc0329_front_5(rk_cam_sensor:169): write reg(0xfc, val:0x16) failed, try to write again!
[ 24.859362] gc0329_front_5(rk_cam_sensor:169): write reg(0xfc, val:0x16) failed, try to write again!
[ 24.887236] gc0329_front_5(rk_cam_sensor:335): read reg(0x0 val:0x0) failed, try to read again!
[ 24.887261] gc0329(917): gc0329 read chip id high byte failed
[ 24.887261]
[ 24.887278] gc0329(924): error: gc0329 mismatched pid = 0x0
[ 24.887278]
[ 24.887295] gc0329_front_5(rk_cam_sensor:718): error: mismatched pid = 0x0
[ 24.887295]
[ 24.994242] Cam_Powerdowm
[ 25.063138] ret: 0
[ 25.092657] soc-camera-pdrv gc2035_back_6: Probing gc2035_back_6
[ 25.181207] ret: 0
[ 25.328793] Cam_Powerdowm
[ 25.328809] rk_cam_io(1128):SENSOR_PWRSEQ_PWRDN failed
[ 25.328879] soc-camera-pdrv gc2035_back_6: Cannot get I2C adapter #2. No driver?
[ 25.437015] Cam_Powerdowm
[ 25.437031] rk_cam_io(1128):SENSOR_PWRSEQ_PWRDN failed
[ 25.437043] rk_cam_io(1117):SENSOR_PWRSEQ_HWRST failed
[ 25.505919] ret: 0
[ 25.535452] soc-camera-pdrv gc0308_front_7: Probing gc0308_front_7
[ 25.623993] ret: 0
[ 25.647086] binder: 128:128 transaction failed 29189, size 0-0
[ 25.771594] Cam_Powerdowm
[ 25.771672] soc-camera-pdrv gc0308_front_7: Cannot get I2C adapter #2. No driver?
[ 25.879829] Cam_Powerdowm
[ 25.948714] ret: 0
[ 26.631225] binder: 128:128 transaction failed 29189, size 0-0
[ 27.615367] binder: 128:128 transaction failed 29189, size 0-0
[ 28.599508] binder: 128:128 transaction failed 29189, size 0-0
[ 29.583644] binder: 128:128 transaction failed 29189, size 0-0
[ 30.567789] binder: 128:128 transaction failed 29189, size 0-0
[ 31.551941] binder: 128:128 transaction failed 29189, size 0-0
[ 32.536091] binder: 128:128 transaction failed 29189, size 0-0
[ 33.520244] binder: 128:128 transaction failed 29189, size 0-0
[ 34.504397] binder: 128:128 transaction failed 29189, size 0-0
flowerking 发表于 2017-7-4 09:11
现在编译和下载没问题了,但是初始化的过程中,mali400 GPU没有起来,感觉根本就没有去初始化GPU,所以我 …
你这个系统都没跑起来,上层似乎有缺失,或者配合内核配置的上层初始化失败了。
建议回退到官方提交然后重新编译,排查自己添加的修改
本帖最后由 flowerking 于 2017-7-4 10:08 编辑
leung先森 发表于 2017-7-4 09:53
你这个系统都没跑起来,上层似乎有缺失,或者配合内核配置的上层初始化失败了。
建议回退到官方提交然后 …
我昨天退回到官方的最新版本,然后只修改了两个文件,新增加了一个文件,就是为了接入MiPi屏,其他的什么都没改动。烧录以后就这样了。我新建了一个目录,然后把fireprime_android5.1_git_20170624.7z(这个是你们官网的最新代码)解压在此目录,然后git reset --hard,然后修改了fireprime_defconfig和rk3128-fireprime.dts,增加了一个自己的Mipi初始化文件lcd-wk-mipi.dtsi,其他什么都没修改,然后先编译u-boot,再编译kernel,最后编译android,都是按照你们的官网指示来做的,最后烧录了全部的固件,结果就这样了
fireprime_defconfig的修改是在最后增加了
CONFIG_LCD_MIPI=y
CONFIG_MIPI_DSI=y
CONFIG_RK32_MIPI_DSI=y
修改的rk3128-fireprime.dts和lcd-wk-mipi.dtsi见附件
dts.zip (6.27 KB)
flowerking 发表于 2017-7-4 10:02
我昨天退回到官方的最新版本,然后只修改了两个文件,新增加了一个文件,就是为了接入MiPi屏,其他的什么 …
先烧官方的固件,然后单独修改内核,烧写内核resource这2个
背光要确认使能是否提高了,mipi供电。
fb不能关闭,否则即使使能上拉了也不会有显示
本帖最后由 flowerking 于 2017-7-4 10:49 编辑
leung先森 发表于 2017-7-4 10:20
先烧官方的固件,然后单独修改内核,烧写内核resource这2个
背光要确认使能是否提高了,mipi供电。
fb …
我按照你所说的,下载了你们的最新固件:FirePrime_Android5.1_201704051109.img,然后用开发工具升级了,然后系统没有出现错误了。这时候我在ubuntu下新建了目录,把fireprime_android5.1_git_20170624.7z解压到此目录,然后git reset --hard,完了以后,我把我的那三个文件拷贝到对应的目录里面,然后make fireprime_defconfig,make -j8 rk3128-fireprime.img,编译成功以后,我只烧录kernel.img和resource.img,烧录成功重启以后就又复现了昨天的问题,所有的修改无效,感觉是kernel.img没有烧录一样?请问怎样才能让kernel.img生效?
[ 0.853534] rk_battery_charger_detect_cb , battery_charger_detect 1
[ 0.867229] fb disp policy is box
[ 0.867340] rk-fb rockchip-fb: rk fb ion client create success!
[ 0.867367] rk-fb rockchip-fb: rockchip framebuffer driver probe
[ 0.867858] rk-screen rk_screen.9: rockchip screen probe success
[ 0.868426] rk31xx-lvds 20038000.lvds: screen is not lvds/rgb!
[ 0.868470] rk31xx-lvds: probe of 20038000.lvds failed with error -22
[ 0.869527] rk312x-lcdc lcdc0: can’t find power_ctr node for lcdc0
[ 0.869556] rk_fb_trsm_ops_get:un supported transmitter:6!
[ 0.870128] graphics fb0: rockchip framebuffer registerd:fb0
[ 0.870923] graphics fb1: rockchip framebuffer registerd:fb1
[ 0.871335] graphics fb2: rockchip framebuffer registerd:fb2
[ 0.871954] rk312x-lcdc lcdc0: set lcdc0 dclk failed
[ 0.871989] rk312x-lcdc lcdc0: lcdc0: dclk:74250000>>fps:60
[ 0.872017] rk312x-lcdc lcdc0: wakeup from standby!
[ 0.889890] alloc_buffer:ion_phy_addr=0x10000000
看日志,系统还是去检测lvds,但实际上我已经修改.dts文件屏蔽了lvds设备,要求检测mipi
leung先森 发表于 2017-7-4 10:20
先烧官方的固件,然后单独修改内核,烧写内核resource这2个
背光要确认使能是否提高了,mipi供电。
fb …
感觉现在进入了一个死循环里面一样了。请指示一下到底要怎么做才能弄好?谢谢
flowerking 发表于 2017-7-4 10:46
我按照你所说的,下载了你们的最新固件:FirePrime_Android5.1_201704051109.img,然后用开发工具升级了 …
单独烧写一个boot.img
leung先森 发表于 2017-7-4 11:34
单独烧写一个boot.img
这个boot.img是需要编译android才能生成的吧?我试试
楼主威武,强烈支持……
leung先森 发表于 2017-7-4 11:34
单独烧写一个boot.img
单独烧写一个boot.img一不行。我的操作过程如下:
1、低格
2、擦除flash
3、烧录你们官网提供的固件
4、烧录我自己编译的boot.img,
烧录成功重启以后,也没有去probe mipi设备,还是检测的lvds设备,而且还有下列错误:
[ 5.917192] rk818-battery rk818-battery: changed: dsoc=0, rsoc=0
n_t 6.: 64u0]nan fond any:tadata wyed sobkeng [ l6.4lt7m7] ry /data/propertybernno:op
a_turon’, upe ${namta:insuldd /st: /sing o precroed sg tax or s /difytty prosucty evo.proruct.ress
fin 6any688datinihenusiokidepforateT!s
co ‘t4569d ] intz: us wg deloecatg synpox foulspeci# Sng ping rrty ery (eri 12o’,on e $ Jame}1 1ste5:4ad
pcmderte=vro.seri496o’ dcksn’t_jxigt wnsle ettandi0,115$ro eariapri’ [ 11
tyF in591/in in mt Wartsink2 Seanice 00n02le n0xds a00ELinar domern de00ned;00leas00fix!0([bo 6.0x0091] 00@d d000rip0(ms
),0 6008401@0xrea060trires
[ce) 6.00008000@cd_000lup0(ks_oel)
x00006000@0x00014000(boot),0x00010000@0x0001A000(recovery),0x00020000@0x0002A000(backup),0x00040000@0x0004A000(cache),0x001FE000@0x0008A000(userdata),0x00008000@0x00288000(metadata),0x00002000@0x00290000(kpanic),0x00200000@0x00292000(system),0x00020000@0x00492000(radical_update),-@0x004B2000(user) storagemedia=emmc uboot_logo=0x02000000@0x9dc00000 loader.timestamp=2015-12-28_14:53:17 androidboot.mode=emmc
bootmode = emmc
recovery filesystem table
0 /mnt/internal_sd vfat /dev/block/platform/1021c000.rksdmmc/by-name/user 0
1 /mnt/external_sd vfat /dev/block/mmcblk1p1 0
2 /system ext4 /dev/block/platform/1021c000.rksdmmc/by-name/system 0
3 /cache ext4 /dev/block/platform/1021c000.rksdmmc/by-name/cache 0
4 /metadata ext4 /dev/block/platform/1021c000.rksdmmc/by-name/metadata 0
5 /data ext4 /dev/block/platform/1021c000.rksdmmc/by-name/userdata 0
6 /cust ext4 /dev/block/platform/1021c000.rksdmmc/by-name/cust 0
7 /custom ext4 /dev/block/platform/1021c000.rksdmmc/by-name/custom 0
8 /radical_update ext4 /dev/block/platform/1021c000.rksdmmc/by-name/radical_update 0
9 /misc emmc /dev/block/platform/1021c000.rksdmmc/by-name/misc 0
10 /uboot emmc /dev/block/platform/1021c000.rksdmmc/by-name/uboot 0
11 /charge emmc /dev/block/platform/1021c000.rksdmmc/by-name/charge 0
12 /resource emmc /dev/block/platform/1021c000.rksdmmc/by-name/resource 0
13 /parameter emmc /dev/block/platform/1021c000.rksdmmc/by-name/parameter 0
14 /boot emmc /dev/block/platform/1021c000.rksdmmc/by-name/boot 0
15 /recovery emmc /dev/block/platform/1021c000.rksdmmc/by-name/recovery 0
16 /backup emmc /dev/block/platform/1021c000.rksdmmc/by-name/backup 0
17 /tmp ramdisk ramdisk 0
I/ [File] : bootable/recovery/recovery.cpp; [Line] : 1408; [Func] : SetSdcardRootPath; InternalSD_ROOT: /mnt/internal_sd
I/ [File] : bootable/recovery/recovery.cpp; [Line] : 1410; [Func] : SetSdcardRootPath; ExternalSD_ROOT: /mnt/external_sd
failed to create /cache dir,err=File exists!
[ 6.705179] EXT4-fs (mmcblk0p9): mounted filesyD/ [Fwith orbootabdata mover Optso
y.cpp; [Line] : 2265; [Func] : main; to dump args befor get_args() :
1 argument(s) :
/sbin/recovery
D/ [File] : bootable/recovery/recovery.cpp; [Line] : 604; [Func] : get_args; to dump ‘boot’ :
command : boot-recovery
status :
recovery : recovery
–wipe_all
stage :
I/ [File] : bootable/recovery/recovery.cpp; [Line] : 610; [Func] : get_args; Boot command: boot-recovery
I/ [File] : bootable/recovery/recovery.cpp; [Line] : 628; [Func] : get_args; Got arguments from boot message
D/ [File] : bootable/recovery/recovery.cpp; [Line] : 2282; [Func] : main; to dump args after get_args() :
2 argument(s) :
recovery
–wipe_all
locale is [(null)]
stage is
reason is [(null)]
can’t open /dev/tty0: No such file or directory
fb0 reports (possibly inaccurate):
vi.bits_per_pixel = 16
vi.red.offset = 11 .length = 5
vi.green.offset = 5 .length = 6
vi.blue.offset = 0 .length = 5
fi.line_length = 2560
framebuffer: 0 (1280 x 720) double_buffer 1
[ loa808867]con_i2x-lcdcng, w0: blank meight
975 channels 3
found frames = 7
load png icon_error, width 254 height 257 channels 3
load png progress_empty, width 252 height 7 channels 3
load png progress_fill, width 252 height 7 channels 3
load png stage_empty, width 50 height 50 channels 1
[ 6.901R2covrr818ybattery 0 8ight 50 channels 1
‘09:51:47’, on ‘Apr 5 2017’.ble/[ 6.y/reco] ry.cppbattery] k82379;ttery: : mainrgReco digitysttermina, buimo e
failed to create /mnt/external_sd dir,err=File exists!
W/ [File] : bootable/recovery/roots.cpp; [Line] : 145; [Func] : ensure_path_mounted; trying mount /dev/block/mmcblk1p1 to ntfs
W/ [File] : bootable/recovery/roots.cpp; [Line] : 161; [Func] : ensure_path_mounted; trying mount /dev/block/mmcblk1 to ntfs
E:failed to mount /mnt/external_sd (No such device)
E/ [File] : bootable/recovery/roots.cpp; [Line] : 167; [Func] : ensure_path_mounted; failed to mount /mnt/external_sd (No such device)
delay 2sec
请问到底要怎么搞才好?
leung先森 发表于 2017-7-4 11:34
单独烧写一个boot.img
或者这么说,最新的代码,我什么改动都不做,如果要全部重新编译,然后全部重新烧录,包括loader、uboot、kernel、resource、misc、boot、recovery、system、userdata,parameter,而且烧录以后能够成功跑起来,要怎么做?有没有详细的操作步骤?或者你们有没有尝试最新的代码是否能够全部重新编译以后跑起来没有问题?我不知道parameter的文件在哪里生成,data.img也不知道在哪里生成?
leung先森 发表于 2017-7-4 11:34
单独烧写一个boot.img
我重新把你们的最新源代码解压到一个新的目录,然后什么都没修改,做完git reset --hard以后,
1、cd u-boot目录,make clean,make rk3128_defconfig,然后make
2、进入kernel目录,make clean,make fireprime_defconfig,然后make -j8 rk3128-fireprime.img
3、烧录生成的RK3128MiniLoaderAll_V2.25.bin、uboot.img、kernel.img和resource.img
4、烧录完以后,系统能正常起来。
5、修改kernel/drivers/video/rockchip/transmitter/rk31xx_lvds.c第313行,增加函数名的打印,dev_err(&pdev->dev, “%s: screen is not lvds/rgb!\n”, func);
6、修改kernel/drivers/video/rockchip/transmitter/rk32_lvds.c第157行,同样增加函数名的打印,dev_err(&pdev->dev, “%s: screen is not lvds/rgb!\n”, func);
7、再编译kernel
8、同时烧录生成的4个文件,RK3128MiniLoaderAll_V2.25.bin、uboot.img、kernel.img和resource.img
系统起来以后,发现我在kernel的修改没有生效,日志里还是打印:[ 0.868548] rk31xx-lvds 20038000.lvds: screen is not lvds/rgb!,并没有新增加的函数名
我搜索了全部的代码,有这个打印的地方就我修改的两个文件
这说明修改的东西没有生效
请问到底要怎么操作才能使得kernel的修改生效啊?
flowerking 发表于 2017-7-4 14:31
或者这么说,最新的代码,我什么改动都不做,如果要全部重新编译,然后全部重新烧录,包括loader、uboot …
只需要你编译出来的东西,你打印的东西不显示可能是你要打印的代码没用到。
调mipi屏按照wiki DSI去调就好了,里面的reset,pwr适当试一下。一般不需要改动代码
mipi给的指令也在dtsi里面完成,你可以参考其他lcd-* mipi配置。
leung先森 发表于 2017-7-4 16:13
只需要你编译出来的东西,你打印的东西不显示可能是你要打印的代码没用到。
调mipi屏按照wiki DSI去调就 …
我在根目录下搜索了全部的目录,有screen is not lvds打印的地方只有我说的这两个文件
然后我两个文件都修改了
烧录以后跑起来确实没有效果
leung先森 发表于 2017-7-4 16:13
只需要你编译出来的东西,你打印的东西不显示可能是你要打印的代码没用到。
调mipi屏按照wiki DSI去调就 …
我现在要先解决修改kernel以后怎么生效的问题才能进一步解决MiPi的接入问题的修改。你说的按照Wiki DSI的说明修改MiPi接入的问题我都已经做完了,而且确实不需要修改源代码,我只修改了rk3128-fireprime.dts、fireprime_defconfig、新增加了我自己的初始化代码文件lcd-wk-mipi.dtsi,目前的关键是,这些新的修改编译好以后烧录没有起作用
自己编译一个不带kernel的boot.img