A couple of bug fixes for Orange Pi i96

Looks like people are most active for Orange Pi i96 here, so although I’ve personally given up on the board due to its bugginess, I hope a few things I’ve found along the way may be helpful to others:

  • ALSA restore issues: it seems to be buggy firmware on the XCPU side of things causing something to hang. The code is pretty complex so I never really found out what’s up with it, but I did make a patch on the kernel side that should help prevent invalid params from being sent over to the other side. https://github.com/orangepi-xunlong/OrangePiRDA_kernel/pull/2
  • Buggy UART: copy and pasting tended to hang the console. This was caused by not resetting the overflow flag on UART. https://github.com/orangepi-xunlong/OrangePiRDA_kernel/pull/3
  • Retaining WiFi MAC address: it looks like people have done various hacks of their own to try to get it working, but there is an actual proper way if you’re using RDA’s U-Boot and kernel drivers. Copy and pasted from #3 of aib/opi2g-utils on GitHub:

The reason the MAC address keeps on changing is you’re missing the NVRAM (factorydata) partition. Add in a 2MB factorydata partition to your mtdparts, reflash, and after the system boots, reboot and a randomly generated MAC address will be written into the NVRAM partition (important that you reboot, because the NVRAM is only written in U-Boot), which the WiFi driver can retrieve in subsequent boots. For SD card installations, shrink the rootfs and add a 2MB partition at the end, and make sure to set the GPT partition name to factorydata so U-Boot can find it.

There’s also a prdinfo partition (misc), but it’s not too important.

2 Likes