PINE64

Full Version: Kernel for A64 git
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
(03-24-2016, 01:16 PM)[email protected] 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.

Get 3.10.65-3-pine64-longsleep-2 from https://www.stdin.xyz/downloads/people/l...ges/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)
bash <(curl -s https://raw.githubusercontent.com/longsleep/build-pine64-image/master/simpleimage/platform-scripts/pine64_update_kernel.sh)

If you update U-Boot as well you will get automatic Pine64 model detection, making the image also work with networking on the non-plus Pine64 automatically when you remove the fixed dtb filename from the existing /boot/uEnv.txt.

Image works like a charm on 512mb model.
As for the ethernet functioning:
Iperf3 between Pine+ (server) and Pine (client)
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-30.00  sec   337 MBytes  94.2 Mbits/sec   20             sender
[  4]   0.00-30.00  sec   337 MBytes  94.2 Mbits/sec                  receiver

two boards connected to same gigabit switch.

That's great that it's working!  Just for comparison, also using iperf3, using a windows desktop with GigE and pine64+ I get:

664 Mbit/s with pine64+ as server
371 Mbit/s with pine64+ as client

Thought it was interesting that there was asymmetry.  Perhaps CPU bound?

check out the post:
http://forum.pine64.org/showthread.php?t...09#pid3009
and how multithreading affects it.
cheers
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!
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:
[email protected]:/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:

[email protected]:/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)
(03-30-2016, 06:18 PM)ak_hepcat Wrote: [ -> ]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:
[email protected]:/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:

[email protected]:/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)

correct me if I'm wrong Smile
I think you have a uboot / kernel mismatch. The latest image provided by 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.
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.
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.
(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)
(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.

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)

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?
(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

You have an ethernet cord plugged in? And do you have the 2gb version?

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
Found the issue. Fixed in https://github.com/longsleep/linux-pine6...6021a4484f - 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/l...ges/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)
bash <(curl -s https://raw.githubusercontent.com/longsleep/build-pine64-image/master/simpleimage/platform-scripts/pine64_update_kernel.sh)
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18