Jump to content

Epson Moverio BT-200 (epson-embt2ws): Difference between revisions

From postmarketOS Wiki
Andi (talk | contribs)
m fix a copy and paste error
Knuxify (talk | contribs)
add manufacturer to codename
 
(6 intermediate revisions by one other user not shown)
Line 2: Line 2:
| manufacturer = Epson <!-- e.g. HTC -->
| manufacturer = Epson <!-- e.g. HTC -->
| name = Moverio BT-200
| name = Moverio BT-200
| codename = embt2ws <!-- e.g. htc-bravo -->
| codename = epson-embt2ws <!-- e.g. htc-bravo -->
| image = File:embt2ws.jpg
| image = File:embt2ws.jpg
| imagecaption = CHANGE_ME
| imagecaption = CHANGE_ME
Line 17: Line 17:
| type = Glasses
| type = Glasses
<!-- the following status_* questions should be answered with Y for yes, P for partial, N for no, - for N/A or unavailable, or left blank for untested or unknown -->
<!-- the following status_* questions should be answered with Y for yes, P for partial, N for no, - for N/A or unavailable, or left blank for untested or unknown -->
| status_usbnet = <!-- USB networking does work? then put Y here and delete this comment -->
| status_usbnet = Y
| status_emmc = Y
| status_flashing = <!-- Flashing with "pmbootstrap flasher" works? Put Y here. It works the same for everything coming below. -->
| status_flashing = <!-- Flashing with "pmbootstrap flasher" works? Put Y here. It works the same for everything coming below. -->
| status_touch = <!-- Touch screen is working? You can also answer these questions with P for partially. -->
| status_touch = - <!-- Touch screen is working? You can also answer these questions with P for partially. -->
| status_screen = <!-- The display is working? -->
| status_screen = <!-- The display is working? -->
| status_wifi = <!-- Wireless network works? -->
| status_wifi = Y <!-- Wireless network works? -->
| status_xwayland = <!-- Showing X11 applications in a Wayland compositor (Weston, KWin, ...) works? -->
| status_xwayland = <!-- Showing X11 applications in a Wayland compositor (Weston, KWin, ...) works? -->
| status_fde = <!-- When installing with full disk encryption, can you type in the password with the on screen keyboard? -->
| status_fde = <!-- When installing with full disk encryption, can you type in the password with the on screen keyboard? -->
| status_mainline = <!-- Instead of a Linux kernel fork, it is possible to run mainline. -->
| status_mainline = Y
| status_battery = <!-- Charging the battery with charging-sdl is possible -->
| status_battery = N<!-- Charging the battery with charging-sdl is possible -->
| status_3d = <!-- Hardware accelerated 3D graphics (e.g. with freedreno) -->
| status_3d = <!-- Hardware accelerated 3D graphics (e.g. with freedreno) -->
| status_audio = <!-- Using the device's speakers/headphone jack works -->
| status_audio = Y<!-- Using the device's speakers/headphone jack works -->
| status_bluetooth = <!-- It's possible to pair and use other devices via the bluetooth protocol -->
| status_bluetooth = P <!-- It's possible to pair and use other devices via the bluetooth protocol -->
| status_camera = <!-- Taking photos and videos works. -->
| status_camera = N<!-- Taking photos and videos works. -->
| status_gps = <!-- The Global Positioning System sensor works.  -->
| status_gps = P <!-- The Global Positioning System sensor works.  -->
| status_mobiledata = <!-- Connecting to the Internet via cellular network. -->
| status_mobiledata = - <!-- Connecting to the Internet via cellular network. -->
| status_sms = <!-- Sending and receiving short messages works as intended. -->
| status_sms = -<!-- Sending and receiving short messages works as intended. -->
| status_calls = <!-- Talking to other people over the cellular network. -->
| status_calls = -<!-- Talking to other people over the cellular network. -->
| status = pmOS device package needs to be created <!-- Text displayed in the "not booting" table on the Devices page , e.g "kernel compiles, doesn't boot" -->
| status = <!-- Text displayed in the "not booting" table on the Devices page , e.g "kernel compiles, doesn't boot" -->
| status_otg = <!-- USB-OTG adapters work, e.g. to connect an USB flash drive to the device -->
| status_otg = <!-- USB-OTG adapters work, e.g. to connect an USB flash drive to the device -->
| status_nfc = <!-- Near-Field Communication (NFC) works -->
| status_nfc = -<!-- Near-Field Communication (NFC) works -->
| status_usba = <!-- Full-sized USB-A port works (Usually applicable to SBCs and laptops) -->
| status_usba = -<!-- Full-sized USB-A port works (Usually applicable to SBCs and laptops) -->
| status_hdmidp = <!-- Video and audio output with HDMI or DisplayPort works -->
| status_hdmidp = -<!-- Video and audio output with HDMI or DisplayPort works -->
| status_keyboard = <!-- Keyboard works (Mark "-" if device doesn't have a keyboard) -->
| status_keyboard = <!-- Keyboard works (Mark "-" if device doesn't have a keyboard) -->
| status_touchpad = <!-- Touchpad works (Usually applicable to laptops) -->
| status_touchpad = <!-- Touchpad works (Usually applicable to laptops) -->
| status_irtx = <!-- Infrared (IR) port works -->
| status_irtx = -<!-- Infrared (IR) port works -->
| status_trustzone = <!-- TrustZone works -->
| status_trustzone = <!-- TrustZone works -->
| status_accel = <!-- The sensor that measures proper acceleration works -->
| status_accel = Y
| status_magnet = <!-- Magnetometer works -->
| status_magnet = Y
| status_light = <!-- Ambient light sensor works -->
| status_light = <!-- Ambient light sensor works -->
| status_proximity = <!-- Proximity sensor works -->
| status_proximity = <!-- Proximity sensor works -->
| status_hall = <!-- Hall effect sensor works -->
| status_hall = <!-- Hall effect sensor works -->
| status_barometer = <!-- Barometer works -->
| status_barometer = -<!-- Barometer works -->
| status_powersensor = <!-- Power sensor works -->
| status_powersensor = <!-- Power sensor works -->
| status_fossbootloader = <!-- Device has a free and open source bootloader -->
| status_fossbootloader = <!-- Device has a free and open source bootloader -->
| booting = no <!-- The device is booting at all, can be yes/no *IMPORTANT* -->
| booting = yes <!-- The device is booting at all, can be yes/no *IMPORTANT* -->


<!-- you can also use these lines if you need to:
<!-- you can also use these lines if you need to:
Line 88: Line 89:
mw.l 0x4A326A00 0x4A326A0C
mw.l 0x4A326A00 0x4A326A0C
</pre>
</pre>
and then warm-reboot (e.g. reset button or reset command in newer u-boots).
If you want to reorder the boot order temporarily, you can do that from the original system if
it is rooted, use setup-bootchoice from https://github.com/akemnade/bt200tools.


eMMC boot can be skipped using a 470 Ohm resistor from eMMC DAT 0 to GND on powerup. So that
eMMC boot can be skipped using a 470 Ohm resistor from eMMC DAT 0 to GND on powerup. So that
Line 102: Line 107:
and loads U-Boot from sector 512 as a raw headerless binary on the same device as Xloader also was loaded from. CONFIG_SYS_TEXT_BASE of such a u-boot has te be set to 0x80e80000. Size limit is 0x60000 bytes.
and loads U-Boot from sector 512 as a raw headerless binary on the same device as Xloader also was loaded from. CONFIG_SYS_TEXT_BASE of such a u-boot has te be set to 0x80e80000. Size limit is 0x60000 bytes.


Factory U-Boot tries to load a sdboot.scr from the first partition (which must bet FAT) of the uSD card which is executed if some requirements are met, if not, normal boot from eMMC is done. Fastboot can be activated via commandline.
Factory U-Boot tries to load a sdboot.scr from the first partition (which must bet FAT) of the uSD card which is executed if the md5sum of the first line is 92b12a37d1913ac41d2956120a475aca, if not, normal boot from eMMC is done. Fastboot can be activated via commandline.


== How to enter flash mode ==
== How to enter flash mode ==


== Installation ==
== Installation ==
System can be installed on uSD card. To be able to boot that you need to either
System can be installed on uSD card. To be able to boot that you need to either:
* zero the xloader and u-boot area of the eMMC (after doing a backup)
* zero the xloader and u-boot area of the eMMC (after doing a backup)
* hack the integrated u-boot bootcmd to ignore check_code test results to boot the sdboot.scr
* hack the integrated u-boot bootcmd to ignore check_code test results to boot the sdboot.scr (e.g. via usb mass storage mode via ums command): there is some <pre> checkcode; if test $? -eq 1</pre> in the builtin u-boot env, replace that by e.g. <pre> checkcode; if test 33 -eq 1</pre>
* use one of the methods to temporarily change boot order
* use one of the methods to temporarily change boot order
* use u-boot commandline to manually load stuff (which can also be a modern u-boot)
* use u-boot commandline to manually load stuff (which can also be a modern u-boot, see [https://github.com/akemnade/u-boot/wiki/Epson-BT-200-status u-boot wiki])
<!-- add more sections below as necessary, e.g. WiFi, photos, ... -->
<!-- add more sections below as necessary, e.g. WiFi, photos, ... -->



Latest revision as of 06:43, 8 June 2024

Epson Moverio BT-200
CHANGE_ME
CHANGE_ME
Manufacturer Epson
Name Moverio BT-200
Codename epson-embt2ws
Released 2014
Type glasses
Hardware
Chipset TI OMAP 4460
CPU 2x1.2 GHz Cortex A9
GPU PowerVR SGX540
Display 960x540 see through glasses
Storage 8GB eMMC + uSD slot
Memory 1024 MB
Architecture armv7
Software
Original software Android
Original version 4.04 (Kernel 3.0.21, U-Boot 1.1.4)
postmarketOS
Category testing
Pre-built images no
Mainline yes
Features
Flashing
No data
USB Networking
Works
Internal storage
Works
SD card
No data
Battery
Broken
Screen
No data
Keyboard
No data
Touchpad
No data
Multimedia
3D Acceleration
No data
Audio
Works
Camera
Broken
Camera Flash
No data
Connectivity
WiFi
Works
Bluetooth
Partial
GPS
Partial
Miscellaneous
FDE
No data
USB OTG
No data
Sensors
Accelerometer
Works
Magnetometer
Works
Ambient Light
No data
Proximity
No data
Hall Effect
No data
Haptics
No data
Power Sensor
No data

Contributors

  • Andi

Users owning this device

How to influence/change boot order

Boot order is eMMC, USB, UART, uSD. That can be overwritten by software until the next cold boot: Commands in U-Boot, similar could be done via /dev/mem

mw.l 0x4A326A0C 0xCF00AA01
mw.l 0x4A326A10 0xC
mw.w 0x4A326A14 0x0
mw.w 0x4A326A16 0x43
mw.w 0x4A326A18 0x45
mw.w 0x4A326A1A 0x05
mw.w 0x4A326A1C 0x0
mw.w 0x4A326A1E 0x0
mw.l 0x4A326A00 0x4A326A0C

and then warm-reboot (e.g. reset button or reset command in newer u-boots).

If you want to reorder the boot order temporarily, you can do that from the original system if it is rooted, use setup-bootchoice from https://github.com/akemnade/bt200tools.

eMMC boot can be skipped using a 470 Ohm resistor from eMMC DAT 0 to GND on powerup. So that would be a recovery if loader on eMMC is broken.

Accessing serial console in original system

JP1 (soldering jumper on the back side = gpio-138) needs to be shorted to enable serial console on factory kernel/u-boot. (4 2.54mm pitched holes). Voltage level is 1.8V

Boot process of the original system

Xloader is located at sector 256 and loads U-Boot from sector 512 as a raw headerless binary on the same device as Xloader also was loaded from. CONFIG_SYS_TEXT_BASE of such a u-boot has te be set to 0x80e80000. Size limit is 0x60000 bytes.

Factory U-Boot tries to load a sdboot.scr from the first partition (which must bet FAT) of the uSD card which is executed if the md5sum of the first line is 92b12a37d1913ac41d2956120a475aca, if not, normal boot from eMMC is done. Fastboot can be activated via commandline.

How to enter flash mode

Installation

System can be installed on uSD card. To be able to boot that you need to either:

  • zero the xloader and u-boot area of the eMMC (after doing a backup)
  • hack the integrated u-boot bootcmd to ignore check_code test results to boot the sdboot.scr (e.g. via usb mass storage mode via ums command): there is some
     checkcode; if test $? -eq 1
    in the builtin u-boot env, replace that by e.g.
     checkcode; if test 33 -eq 1
  • use one of the methods to temporarily change boot order
  • use u-boot commandline to manually load stuff (which can also be a modern u-boot, see u-boot wiki)

See also

  • Factory kernel
  • [1] branch epson-6.1, mainling attempts (look also at the corresponding wiki)
  • [2] branch v2022.10-epson u-boot mainling attempts (look also at the corresponding wiki)