Kernel for A64 git - Printable Version +- PINE64 (https://forum.pine64.org) +-- Forum: PINE A64(+) (https://forum.pine64.org/forumdisplay.php?fid=4) +--- Forum: Linux on Pine A64(+) (https://forum.pine64.org/forumdisplay.php?fid=6) +--- Thread: Kernel for A64 git (/showthread.php?tid=293) |
RE: Kernel for A64 git - janjwerner - 03-24-2016 (03-24-2016, 01:16 PM)falk.ben@gmail.com Wrote:(03-23-2016, 12:51 PM)janjwerner Wrote:(03-19-2016, 03:32 PM)longsleep Wrote: I pushed another Kernel build to support the smallest 512MB Pine64 model (with another device tree). Some other minor build changes have landed as well, see the first post for details. check out the post: http://forum.pine64.org/showthread.php?tid=18&pid=3009#pid3009 and how multithreading affects it. cheers RE: Kernel for A64 git - keiothic - 03-30-2016 Hi, sorry if I'm crashing thread with unrelated topic, but with a linux OS on Pine64, does that mean wi-fi/BT USB dongle will work? It's taking forever for the wi-fi/BT daughter board to be released and the store opening date is unknown at this point. Thanks! RE: Kernel for A64 git - ak_hepcat - 03-30-2016 New member! I've tried to read up before posting my question. I just received my new Pine64, installed the base system and kernel (thanks longsleep!) and booted just fine. Video was wonky, but that's apparently known. I saw an updated kernel available, as well as the updated uboot, so using the method above I went ahead and installed them. Well, i didn't get far, because I couldn't boot anymore. After hooking up a serial console (hooray for my BusPirate 4.0!) I saw that uboot wasn't able to boot the new kernel. I was able to boot the old kernel manually, and set out to find out why. Here's the old kernel that boots just fine: root@p64:/boot# od -xa old/kernel.img |head 0000000 4e41 5244 494f 2144 30c0 00c9 0000 4108 A N D R O I D ! @ 0 I nul nul nul bs A 0000020 0000 0000 0000 4100 0000 0000 0000 40f0 nul nul nul nul nul nul nul A nul nul nul nul nul nul p @ 0000040 0100 4000 0800 0000 0000 0000 0000 0000 nul soh nul @ nul bs nul nul nul nul nul nul nul nul nul nul 0000060 6950 656e 3436 0000 0000 0000 0000 0000 P i n e 6 4 nul nul nul nul nul nul nul nul nul nul 0000100 0000 0000 0000 0000 0000 0000 0000 0000 nul nul nul nul nul nul nul nul nul nul nul nul nul nul nul nul And the newly installed kernel: root@p64:/boot# od -xa pine64/Image |head 0000000 0010 1400 0000 0000 0000 0008 0000 0000 dle nul nul dc4 nul nul nul nul nul nul bs nul nul nul nul nul 0000020 0000 0000 0000 0000 0000 0000 0000 0000 nul nul nul nul nul nul nul nul nul nul nul nul nul nul nul nul * 0000060 0000 0000 0000 0000 5241 644d 0000 0000 nul nul nul nul nul nul nul nul A R M d nul nul nul nul 0000100 0015 d280 03f5 2a00 0012 9400 0094 9400 nak nul nul R u etx nul * dc2 nul nul dc4 dc4 nul nul dc4 0000120 0050 9400 0016 d538 03e0 aa16 0121 9400 So, the magic at the beginning of the file is different. Too different apparently for uboot? here's what my environment looks like, using the new kernel: sunxi#setenv kernel_filename pine64/Image sunxi#printenv baudrate=115200 boot_kernel=boota ${kernel_addr} bootargs=console=tty0 console=ttyS0,115200n8 no_console_suspend earlycon=uart,mmio32,0x01c28000 root=/dev/mmcblk0p2 rw rootwait bootcmd=run mmcbootcmd bootdelay=3 bootenv_filename=uEnv.txt bootscript=run load_dtb load_kernel set_cmdline boot_kernel console=tty0 console=ttyS0,115200n8 no_console_suspend fdt_addr=45000000 fdt_filename=pine64/sun50i-a64-pine64-plus.dtb fdtaddr=45000000 filesize=c94000 import_bootenv=env import -t ${load_addr} ${filesize} initrd_filename=initrd.img kernel_addr=4107f800 kernel_filename=pine64/Image load_addr=41000000 load_bootenv=fatload mmc 0:1 ${load_addr} ${bootenv_filename} load_dtb=fatload mmc 0:1 ${fdt_addr} ${fdt_filename}; fdt addr ${fdt_addr}; fdt resize load_kernel=fatload mmc 0:1 ${kernel_addr} ${kernel_filename} mmcbootcmd=if run load_bootenv; then echo Loading boot environment ...; run import_bootenv; fi; run bootscript pine64_model=pine64-plus root=/dev/mmcblk0p2 set_cmdline=setenv bootargs console=${console} earlycon=uart,mmio32,0x01c28000 root=${root} rw rootwait sunxi_serial=0410519008044810020b and here's the boot with 3.10.65-3-pine64-longsleep-2 sunxi#run bootscript [mmc]: Has init [ 119.367]---drivers/mmc/mmc.c 2733 mmc_init reading pine64/sun50i-a64-pine64-plus.dtb 69174 bytes read in 18 ms (3.7 MiB/s) [mmc]: Has init [ 119.430]---drivers/mmc/mmc.c 2733 mmc_init reading pine64/Image 11302096 bytes read in 556 ms (19.4 MiB/s) 1 boota: bad boot image magic, maybe not a boot.img? is this a *me* issue that I can correct with some uEnv tweaking, or something different? *** edit there's 2059 bytes of 'header' at the beginning of the old kernel image that's not on the new Image. transplanting this header creates a file that is recognized, but doesn't work (presumably it doesn't have the right offsets, or some other data) RE: Kernel for A64 git - janjwerner - 03-30-2016 (03-30-2016, 06:18 PM)ak_hepcat Wrote: New member! I've tried to read up before posting my question. @longsleep correct me if I'm wrong I think you have a uboot / kernel mismatch. The latest image provided by @longsleep should boot using booti and kernel does not require the Android magic header. For the previous message in the thread - the Linux image supports the WiFi part of that adapter, I am not sure about the bluetooth. RE: Kernel for A64 git - patrickhwood - 03-31-2016 If your boot script is using boota in boot_kernel; boota expects an android image with the ANDROID! magic header, so looks like you're either using an incompatible uboot or perhaps boot_kernel should be reset by uEnv.txt but isn't. RE: Kernel for A64 git - longsleep - 03-31-2016 Maybe you have saved the environment uboot.env with the old settings. Remove that file. If thats not it, you u-boot update did not work and you should try again. RE: Kernel for A64 git - ak_hepcat - 03-31-2016 (03-31-2016, 10:42 AM)longsleep Wrote: Maybe you have saved the environment uboot.env with the old settings. Remove that file. If thats not it, you u-boot update did not work and you should try again. Ah! I removed the uboot.env, forced a u-boot update, made sure my uEnv configs were correct and reboot. this time, the new -3 kernel booted. until it died: * Starting Mount network filesystems[ OK ] * Starting Failsafe Boot Delay[ OK ] * Stopping Mount network filesystems[ OK ] * Starting configure network device[ OK ] * Starting Bridge file events into upstart[ OK ] * Starting Bridge socket events into upstart[ OK ] * Stopping cold plug devices[ OK ] [ 15.967213] [VFE_ERR]Error registering v4l2 subdevice No such device! [ 15.974631] [VFE_ERR]vfe sensor register check error at input_num = 0 * Stopping log initial device c[ 15.981968] [VFE_ERR]Error registering v4l2 subdevice No such device! reation[ OK ] [ 15.981971] [VFE_ERR]vfe sensor register check error at input_num = 1 * Starting configure network device security[ OK ] * Starting save udev log and update rules[ OK ] * Stopping save udev log and update rules[ OK ] [ 20.669360] Unable to handle kernel paging request at virtual address ffffffbf76510840 [ 20.678185] pgd = ffffffc076752000 [ 20.681962] [ffffffbf76510840] *pgd=0000000000000000 [ 20.691412] Internal error: Oops: 96000145 [#1] PREEMPT SMP [ 20.701470] Modules linked in: vfe_v4l2 videobuf2_dma_contig videobuf2_memops 8723bs videobuf2_core vfe_io ss cedar_ve mali(O) cfg80211 [ 20.719067] CPU: 0 PID: 0 Comm: swapper/0 Tainted: G O 3.10.65-3-pine64-longsleep #2 [ 20.732764] task: ffffffc000a00910 ti: ffffffc0009f4000 task.ti: ffffffc0009f4000 [ 20.745343] PC is at __dma_inv_range+0x20/0x50 [ 20.754606] LR is at __swiotlb_unmap_page+0x50/0x7c [ 20.764345] pc : [<ffffffc000095c80>] lr : [<ffffffc000094e00>] pstate: 00000145 [ 20.776991] sp : ffffffc0009f7b90 [ 20.785143] x29: ffffffc0009f7b90 x28: ffffffc000b4a000 [ 20.795510] x27: 0000000000000001 x26: ffffffc0777f58a8 [ 20.805853] x25: ffffffc0777f5800 x24: 0000000000000040 [ 20.816207] x23: 0000000000000000 x22: ffffffc077503010 [ 20.826540] x21: 0000000000000002 x20: 00000000000007ff [ 20.836913] x19: ffffffffb7510042 x18: 0000007f7fbe33e0 [ 20.847260] x17: 0000007f80ead280 x16: ffffffc0001032b4 [ 20.857618] x15: 001d9f7eb0986bd2 x14: ffffffc076c39740 [ 20.867942] x13: ffffffc07566ca00 x12: ffffffc000751000 [ 20.878241] x11: 0000000000000005 x10: 0000000000000007 [ 20.888518] x9 : 000000000000000e x8 : 000000000000000c [ 20.898732] x7 : ffffffc000094db0 x6 : ffffffc077503010 [ 20.908952] x5 : 00000000d6d6a3e8 x4 : 0000000000000000 [ 20.919185] x3 : 000000000000003f x2 : 0000000000000040 [ 20.929403] x1 : ffffffbf76510840 x0 : ffffffbf76510042 Guess i'm getting closer! (too bad it's in a different building - i'll have to wait until this afternoon to physically powercycle) RE: Kernel for A64 git - DaveKram - 04-01-2016 (03-31-2016, 11:58 AM)ak_hepcat Wrote:(03-31-2016, 10:42 AM)longsleep Wrote: Maybe you have saved the environment uboot.env with the old settings. Remove that file. If thats not it, you u-boot update did not work and you should try again. That looks very much like the ethernet issue that we are talking about over here: http://forum.pine64.org/showthread.php?tid=376&page=6 You have an ethernet cord plugged in? And do you have the 2gb version? RE: Kernel for A64 git - ak_hepcat - 04-01-2016 (04-01-2016, 07:21 AM)DaveKram Wrote: That looks very much like the ethernet issue that we are talking about over here: http://forum.pine64.org/showthread.php?tid=376&page=6 Ah, son-of-a-! yeah, i do have the 64+ 2GB, and did have ethernet plugged in. I'll head over there and see if I can help out a little RE: Kernel for A64 git - longsleep - 04-03-2016 Found the issue. Fixed in https://github.com/longsleep/linux-pine64/commit/c249f7aaa51270950fa560fa7cc4f26021a4484f - will release a new Kernel build today. I pushed a new Kernel build, fixing the Ethernet crash for 2GB Pine64+ models. Get 3.10.65-4-pine64-longsleep-16 from https://www.stdin.xyz/downloads/people/longsleep/pine64-images/linux/ Update like this (as root) on any of my images: Code: bash <(curl -s https://raw.githubusercontent.com/longsleep/build-pine64-image/master/simpleimage/platform-scripts/pine64_update_uboot.sh) |