User Tools

Site Tools


orangepi_800

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
orangepi_800 [2024/01/24 13:05] austinorangepi_800 [2024/09/22 22:08] (current) – external edit 127.0.0.1
Line 61: Line 61:
  
   * now portage should work   * now portage should work
 +  * update ca's
 +
 +<code>
 +emerge --ask app-misc/ca-certificates
 +</code>
  
 === wifi setup === === wifi setup ===
Line 104: Line 109:
 passwd foobar passwd foobar
 </code> </code>
- + 
 +===== connecting UART ===== 
 + 
 +To enable serial console in gentoo edit inittab: 
 +<code> 
 +f0:12345:respawn:/sbin/agetty 1500000 ttyS2 vt100 
 +</code> 
 + 
 +{{:screenshot_2024-01-24_at_8.08.17 am.png?400|pi800 uart connection}} 
 + 
 +^DTECH UART Cable^^ 
 +|White|RXD| 
 +|Green|TXD| 
 +|Black|GND| 
 +|Red|VCC +5V| 
 + 
 + 
 +<code> 
 +su - 
 +screen /dev/ttyUSB0 1500000 
 +</code> 
 + 
 +===== Kernel... ===== 
 + 
 +Existing kernel doesn't have required settings for GPU!!! Really this is the kernel from vendor supplied image.  It's really old, 5.10 so working an updated kernel. 
 +<code> 
 +# CONFIG_DRM_PANFROST is not set 
 +</code> 
 + 
 +The reason it is not set is the code is broken. 
 +[[https://github.com/orangepi-xunlong/linux-orangepi/tree/orange-pi-5.10-rk3399/arch/arm64/boot/dts/rockchip|Source]] 
 +<code> 
 +drivers/gpu/drm/panfrost/panfrost_mmu.c:359:10: error: 'const struct iommu_flush_ops' has no member named 'tlb_flush_leave'; did you mean'tlb_flush_all'? 
 +</code> 
 +Looking at  a newer kernel that line doesn't exist so I removed it.  
 +<code> 
 +static const struct iommu_flush_ops mmu_tlb_ops = { 
 + .tlb_flush_all = mmu_tlb_inv_context_s1, 
 + .tlb_flush_walk = mmu_tlb_flush_walk, 
 +}; 
 +</code> 
 +It compiles now, but I wonder if I should remove this function as well(I guess I'll do some testing and decide): 
 +<code> 
 +static void mmu_tlb_flush_leaf(unsigned long iova, size_t size, size_t granule, 
 +        void *cookie) 
 +
 + mmu_tlb_sync_context(cookie); 
 +
 +</code> 
 +The module compiles and loads but isn't really functional now. 
 + 
 +The orangepi ubuntu based image uses this [[https://github.com/orangepi-xunlong/linux-orangepi/tree/orange-pi-5.18|kernel(5.18)]].  Its slightly newer.  I couldn't get it to work with module compression(enabled with XZ compression in the image).  It threw an error whenever trying to load a module.  Which is really weird as I initially just copied the kernel and modules from the image and it works fine with their image.  Something must prevent this from working with the openrc-stage3 from Gentoo but I didn't dig real deep into this.  After recompiling without module compression it works other than rfkill.ko appears to hang when loading on boot (required by sprdwl_ng) but eventually completes loading and works fine so I've switched to this kernel for the time being. 
 + 
 +Found more recent [[https://github.com/zhangn1985/linux-stable|source(6.8-rc2)]]. It compiles and I get video output but it hangs on first daemon load.  This is going to require some more work. 
 +===== references ===== 
 + 
 +[[https://github.com/orangepi-xunlong/orangepi-build/tree/next|Linux Source]] 
 + 
 +{{ :methods_of_writing_images_on_opi800.pdf |Orange Pi800 sad excuse for a manual}} 
 + 
 +[[https://opensource.rock-chips.com/wiki_Boot_option|Rockchip Wiki - Booting]] 
 + 
 +[[https://wiki.gentoo.org/wiki/User:PeterL/Rockpro64|Gentoo Doc for Rockpro64(same soc)]] 
 + 
 +[[https://github.com/ARM-software/arm-trusted-firmware|Arm Trusted Firmware]] 
 + 
  
  
  
orangepi_800.1706101555.txt.gz · Last modified: 2024/09/22 22:08 (external edit)