Difference between revisions of "Ouya (ouya-ouya)"
m (Fix grammar) |
(Refactor to remove Development Notes section) |
||
Line 45: | Line 45: | ||
* rendeko | * rendeko | ||
+ | |||
+ | == Kernel == | ||
+ | We avoid flashing directly to the device as [https://www.reddit.com/r/ouya/comments/5i02u4/ouya_dead_apx_mode/dcvlyts/ a corrupted kernel would irreversibly brick the Ouya due to the locked bootloader.] We use a tool called [https://forum.xda-developers.com/showthread.php?t=2692836 Ouya BootMenu] [https://github.com/milaq/ouya_bootmenu (source)] that allows us to run the postmarketOS kernel through a kexec method. This implements an extra failsafe to prevent bricking and in theory allows dualbooting and kernel development. | ||
== Ethernet == | == Ethernet == | ||
− | |||
A random MAC address is generated by the kernel at each boot. This is because the smsc9500 Ethernet device does not have a valid mac address stored in EEPROM. To set a consistent MAC address, create the file <code>/etc/udev/rules.d/99-mac-address.rules</code> with the following udev rule. | A random MAC address is generated by the kernel at each boot. This is because the smsc9500 Ethernet device does not have a valid mac address stored in EEPROM. To set a consistent MAC address, create the file <code>/etc/udev/rules.d/99-mac-address.rules</code> with the following udev rule. | ||
Line 54: | Line 56: | ||
</source> | </source> | ||
− | + | == Radio == | |
− | |||
− | |||
* The Ouya uses a BCM4330 radio chip for wifi and bluetooth. The downstream and mainline kernel use the same wifi firmware. The firmware shipped with the device is the only known firmware to work with the Ouya. The BCM4330 firmware in <code>linux-firmware</code> does not work. | * The Ouya uses a BCM4330 radio chip for wifi and bluetooth. The downstream and mainline kernel use the same wifi firmware. The firmware shipped with the device is the only known firmware to work with the Ouya. The BCM4330 firmware in <code>linux-firmware</code> does not work. | ||
* Two later releases (the completely white special edition and completely black 2nd generation) [https://www.s-config.com/cyanogen-mod-and-the-ouya/ allegedly use a BCM4334 chipset.] This needs to be implemented and tested at a future date. | * Two later releases (the completely white special edition and completely black 2nd generation) [https://www.s-config.com/cyanogen-mod-and-the-ouya/ allegedly use a BCM4334 chipset.] This needs to be implemented and tested at a future date. | ||
− | + | == Display Resolution == | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
On the mainline kernel, display resolutions above 1280x720 are glitchy. The GPU is dependent on memory bandwidth but EMC scaling is not implemented in mainline. The Ouya bootloader sets the memory to 400 Mhz. Higher display resolutions work a bit better when the memory is set to 800Mhz but it is still glitchy. | On the mainline kernel, display resolutions above 1280x720 are glitchy. The GPU is dependent on memory bandwidth but EMC scaling is not implemented in mainline. The Ouya bootloader sets the memory to 400 Mhz. Higher display resolutions work a bit better when the memory is set to 800Mhz but it is still glitchy. | ||
− | + | == Other Notes == | |
* Splash screen doesn't appear | * Splash screen doesn't appear | ||
* Hildon doesn't work? | * Hildon doesn't work? | ||
* USB booting needs to be tested | * USB booting needs to be tested | ||
+ | |||
== Installation == | == Installation == |
Revision as of 21:59, 19 April 2019
USB Networking |
Works |
---|---|
Flashing |
Partial |
Touchscreen |
Unavailable |
Display |
Unavailable |
WiFi |
Works |
Xwayland |
Works |
FDE |
Partial |
Mainline |
Partial |
Battery |
Unavailable |
3D Acceleration | |
Accelerometer |
Unavailable |
Audio | |
Bluetooth |
Works |
Camera |
Unavailable |
GPS |
Unavailable |
Mobile data |
Unavailable |
SMS |
Unavailable |
Calls |
Unavailable |
USB OTG | |
Contents
Contributors
- rendeko
- ryang2678 (Decatf)
- ollieparanoid
Maintainer(s)
- rendeko
Kernel
We avoid flashing directly to the device as a corrupted kernel would irreversibly brick the Ouya due to the locked bootloader. We use a tool called Ouya BootMenu (source) that allows us to run the postmarketOS kernel through a kexec method. This implements an extra failsafe to prevent bricking and in theory allows dualbooting and kernel development.
Ethernet
A random MAC address is generated by the kernel at each boot. This is because the smsc9500 Ethernet device does not have a valid mac address stored in EEPROM. To set a consistent MAC address, create the file /etc/udev/rules.d/99-mac-address.rules
with the following udev rule.
ACTION=="add", SUBSYSTEM=="net", KERNEL=="eth0", RUN+="/sbin/ip link set dev %k address f6:23:f0:42:98:cf"
Radio
- The Ouya uses a BCM4330 radio chip for wifi and bluetooth. The downstream and mainline kernel use the same wifi firmware. The firmware shipped with the device is the only known firmware to work with the Ouya. The BCM4330 firmware in
linux-firmware
does not work.
- Two later releases (the completely white special edition and completely black 2nd generation) allegedly use a BCM4334 chipset. This needs to be implemented and tested at a future date.
Display Resolution
On the mainline kernel, display resolutions above 1280x720 are glitchy. The GPU is dependent on memory bandwidth but EMC scaling is not implemented in mainline. The Ouya bootloader sets the memory to 400 Mhz. Higher display resolutions work a bit better when the memory is set to 800Mhz but it is still glitchy.
Other Notes
- Splash screen doesn't appear
- Hildon doesn't work?
- USB booting needs to be tested
Installation
How to enter flash mode
1. Connect Ouya to PC
2. Use adb reboot recovery
to enter recovery (or adb reboot bootloader
to enter bootloader for fastboot commands)
pmbootstrap
1. Flash CWM and Ouya BootMenu.
2. Turn on Ouya, then press the power button many times until it scrolls to Bootloader, and then wait until the boot menu disappears.
3. Run the following using pmbootstrap:
$ pmbootstrap init
$ pmbootstrap install --no-fde
$ pmbootstrap export
$ pmbootstrap flasher flash_rootfs
4. Reboot Ouya, then press the power button many times until it scrolls to Recovery, and then wait until CWM appears.
6. Using CWM menu options, mount /data partition.
7. Copy postmarketOS boot.img to /sdcard as altboot.img:
$ adb push /tmp/postmarketOS-export/boot.img-ouya-ouya /sdcard/altboot.img
8. Reboot Ouya, then press the power button many times until it scrolls to Alternate Boot, and then wait until postmarketOS appears.
Using data partition as rootfs
It is much more usable to flash rootfs to the data partition which is around 5.7GB in size.
Flashing to the data partition
Specify the partition to flash rootfs to with the --partition
argument:
$ pmbootstrap flasher flash_rootfs --partition userdata
Copy postmarketOS boot.img
to /system
:
$ adb push /tmp/postmarketOS-export/boot.img-ouya-ouya /system/boot.img
Updating the kernel
When the apk
package manager updates the kernel package (e.g. linux-ouya-ouya
or linux-ouya-ouya-mainline
) then the boot.img
will be regenerated with the new kernel. Run the following commands on device to install the updated boot.img
:
$ mkdir /system
$ mount /dev/mmcblk1p3 /system
$ cp /boot/boot.img-ouya-ouya /system/boot.img
Links
- Ouya BootMenu (source)
- CWM
- CyanogenMod documentation blog
- pmaports!269 Add mainline based kernel for Ouya