<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.asteroidos.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Casept</id>
	<title>AsteroidOS - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.asteroidos.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Casept"/>
	<link rel="alternate" type="text/html" href="https://wiki.asteroidos.org/index.php/Special:Contributions/Casept"/>
	<updated>2026-05-30T17:54:52Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.8</generator>
	<entry>
		<id>https://wiki.asteroidos.org/index.php?title=Emulator&amp;diff=734</id>
		<title>Emulator</title>
		<link rel="alternate" type="text/html" href="https://wiki.asteroidos.org/index.php?title=Emulator&amp;diff=734"/>
		<updated>2026-02-01T19:55:54Z</updated>

		<summary type="html">&lt;p&gt;Casept: Reflect qemux86 -&amp;gt; emulator rename&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Developers]]&lt;br /&gt;
If you don&#039;t have a supported smartwatch or if you want to develop an app without having to touch your device you can try AsteroidOS in an emulator.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; The emulator has some known issues under x11 sessions. Make sure that you run it in a wayland session. You can check your session type with &amp;lt;code&amp;gt;echo $XDG_SESSION_TYPE&amp;lt;/code&amp;gt;.&lt;br /&gt;
== Get a qemux86 build of AsteroidOS ==&lt;br /&gt;
&lt;br /&gt;
Nightly builds of AsteroidOS for QEMU can be found [https://release.asteroidos.org/nightlies/emulator/ here]. You will need to download a [https://release.asteroidos.org/nightlies/emulator/asteroid-image-emulator.rootfs.ext4 prebuilt rootfs] and [https://release.asteroidos.org/nightlies/emulator/bzImage-emulator.bin kernel].&lt;br /&gt;
&lt;br /&gt;
If you want more control over your asteroid image, you can also [[Building AsteroidOS|build AsteroidOS]] yourself using the &amp;quot;emulator&amp;quot; machine codename (the resulting rootfs and kernel will then be located in your &amp;lt;code&amp;gt;build/tmp/deploy/images/emulator/&amp;lt;/code&amp;gt; directory).&lt;br /&gt;
&lt;br /&gt;
== Get an appropriate version of QEMU ==&lt;br /&gt;
The AsteroidOS emulator image requires a paravirtualized GPU only offered by QEMU when built with support for Virgil3D. Recent distributions (such as Fedora 27 and later) offer QEMU packages built with Virgil and can be used directly to run AsteroidOS.&lt;br /&gt;
&lt;br /&gt;
Unfortunately, most Linux distributions (such as Debian) still do not provide QEMU packages with support for this setup. Moreover, OpenEmbedded currently offers no clean way to build a host QEMU binary with Virgil due to various constraints. You then need to compile QEMU yourself.&lt;br /&gt;
&lt;br /&gt;
== Run AsteroidOS ==&lt;br /&gt;
Once you have a correct version of QEMU, a rootfs and a kernel, you can start AsteroidOS in an emulator using:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qemu-system-x86_64 -enable-kvm -kernel bzImage-emulator.bin \&lt;br /&gt;
    -device virtio-vga-gl \&lt;br /&gt;
    -net nic -net user,hostfwd=tcp::2222-:22 \&lt;br /&gt;
    -drive format=raw,file=&amp;quot;asteroid-image-emulator.rootfs.ext4&amp;quot; \&lt;br /&gt;
    -m 512 \&lt;br /&gt;
    -display sdl,gl=on \&lt;br /&gt;
    -cpu qemu64,+ssse3,+sse4.1,+sse4.2 \&lt;br /&gt;
    -usb -device usb-tablet \&lt;br /&gt;
    --append &amp;quot;verbose root=/dev/sda rw mem=512M video=800x800&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The previous command sets up a port forwarding so that you can connect to the emulator using SSH with the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ssh -p 2222 ceres@localhost&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that versions of the image prior to 11 August 2024 did not have &amp;quot;rootfs&amp;quot; as part of the file name, so the effect is that that portion of the line would be &amp;lt;code&amp;gt;file=&amp;quot;asteroid-image-qemux86.ext4&amp;quot;&amp;lt;/code&amp;gt;instead.&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
Here are some common problems and their solutions.&lt;br /&gt;
&lt;br /&gt;
* Unable to accurately select buttons or items&lt;br /&gt;
*: Versions of the emulator image prior to 11 August 2024 did not include the &amp;lt;code&amp;gt;ceres&amp;lt;/code&amp;gt; user in the &amp;lt;code&amp;gt;input&amp;lt;/code&amp;gt; group, causing the emulator to ignore mouse input.  To fix that, log in to the watch remotely as root (or use the serial console) and issue the command &amp;lt;code&amp;gt;usermod -a -G input ceres&amp;lt;/code&amp;gt; and then &amp;lt;code&amp;gt;systemctl restart user@1000&amp;lt;/code&amp;gt;.  This should make it possible for the mouse input to be received.&lt;br /&gt;
*: Even with the fix applied, sometimes a click does not seem to select the right thing.  Most typically, a click registers as an item above where the user actually clicked.  The way around this is to resize the qemu window to be taller.  When this is done, even though the display is not square, clicks on screen are closer to where the user actually clicks.  It may also be helpful to show the mouse cursor.  This can be done by altering the display line to &amp;lt;code&amp;gt;-display gtk,gl=on,show-cursor=on&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* Errors with -virtio-vga&lt;br /&gt;
*: Newer versions of QEMU use &amp;lt;code&amp;gt;-device virtio-vga-gl&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;-device virtio-vga,virgl=on&amp;lt;/code&amp;gt;, so if you get an error message complaining about &amp;lt;code&amp;gt;virtio-vga-gl&amp;lt;/code&amp;gt;, you have an earlier version of QEMU. You can either use &amp;lt;code&amp;gt;-device virtio-vga,virgl=on&amp;lt;/code&amp;gt; instead or upgrade to a newer version of QEMU.&lt;br /&gt;
&lt;br /&gt;
* Video corruption using NVIDIA drivers&lt;br /&gt;
*: There have been reported problems on machines using proprietary NVIDIA drivers. One symptom is a black screen instead of the AsteroidOS screen which may or may not also show messages like these:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
gl_version 46 - core profile enabled&lt;br /&gt;
GLSL feature level 460&lt;br /&gt;
failed to complete framebuffer 0x8cd7 asteroid-launch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*: Other symptoms include video artifacts (smearing, double screens) and crashing, usually with a message &amp;lt;code&amp;gt;Segmentation fault (core dumped)&amp;lt;/code&amp;gt;. If you&#039;re experiencing these and are using a proprietary NVIDIA driver, either updating the driver or using &amp;lt;code&amp;gt;gtk&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;sdl&amp;lt;/code&amp;gt; may work better. An example command line:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qemu-system-i386 -enable-kvm -kernel bzImage-emulator.bin \&lt;br /&gt;
  -device virtio-vga-gl \&lt;br /&gt;
  -net nic -net user,hostfwd=tcp::2222-:22 \&lt;br /&gt;
  -drive file=asteroid-image-emulator.ext4,format=raw \&lt;br /&gt;
  -m 512 \&lt;br /&gt;
  -display gtk,gl=on \&lt;br /&gt;
  -cpu qemu64,+ssse3,+sse4.1,+sse4.2 \&lt;br /&gt;
  -usb -device usb-tablet -device usb-mouse \&lt;br /&gt;
  --append &amp;quot;verbose root=/dev/sda rw mem=512M video=800x800&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Watch seems to lock up after a few seconds&lt;br /&gt;
*: It&#039;s possible that the display is no longer updating but that the watch is actually still running. To make sure that the emulator continues to update the screen you can enter [[Useful Commands#Screen|demo mode]] to keep the screen on. If you have followed this guide and the watch is listening on port 2222, this command will turn on demo mode.&lt;br /&gt;
: &amp;lt;code&amp;gt; ssh -t -p2222 root@localhost mcetool -D on &amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Casept</name></author>
	</entry>
	<entry>
		<id>https://wiki.asteroidos.org/index.php?title=Porting_Status&amp;diff=451</id>
		<title>Porting Status</title>
		<link rel="alternate" type="text/html" href="https://wiki.asteroidos.org/index.php?title=Porting_Status&amp;diff=451"/>
		<updated>2024-06-27T10:57:05Z</updated>

		<summary type="html">&lt;p&gt;Casept: Gear 2 port&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page aims at gathering info about the currently supported platforms and porting efforts.&lt;br /&gt;
&lt;br /&gt;
== WearOS Smartwatches ==&lt;br /&gt;
&lt;br /&gt;
The WearOS smartwatches are the most widespread and easy to support. The source code of their kernels is usually easily available and the drivers can be supported with [https://github.com/libhybris/libhybris libhybris]. Those watches are the current priority of AsteroidOS.&lt;br /&gt;
&lt;br /&gt;
=== Supported watches ===&lt;br /&gt;
{{#cargo_query:&lt;br /&gt;
tables=Watches&lt;br /&gt;
|fields=CONCAT(&amp;quot;[[&amp;quot;,_pageName,&amp;quot;|&amp;quot;,Model,&amp;quot;]]&amp;quot;)=Model,Name,Stars&lt;br /&gt;
|order by=Watches.Stars DESC&lt;br /&gt;
|format=table&lt;br /&gt;
|limit=9999&lt;br /&gt;
|where=Watches.Status = &amp;quot;supported&amp;quot;&lt;br /&gt;
|more results text=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Experimental watches ===&lt;br /&gt;
{{#cargo_query:&lt;br /&gt;
tables=Watches&lt;br /&gt;
|fields=CONCAT(&amp;quot;[[&amp;quot;,_pageName,&amp;quot;|&amp;quot;,Model,&amp;quot;]]&amp;quot;)=Model,Name,Stars&lt;br /&gt;
|order by=Watches.Stars DESC&lt;br /&gt;
|format=table&lt;br /&gt;
|limit=9999&lt;br /&gt;
|where=Watches.Status = &amp;quot;experimental&amp;quot;&lt;br /&gt;
|more results text=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Failed WearOS ports ===&lt;br /&gt;
These ports have been attempted, but have not been successful.&lt;br /&gt;
* Moto 360 3rd gen (&amp;lt;code&amp;gt;mola&amp;lt;/code&amp;gt;)&lt;br /&gt;
*: This port has failed because the kernel does not ship DTS, so it is not possible to build a full boot image. A port may be possible if a WearOS update package is found.&lt;br /&gt;
* Fossil Sport family (&amp;lt;code&amp;gt;darter&amp;lt;/code&amp;gt;)&lt;br /&gt;
*: this port has failed because attempts at unlocking the bootloader have failed. Fastboot behaves as if the bootloader unlock has succeeded, but the bootloader does not end up being unlocked.&lt;br /&gt;
* Misfit Vapor/Fossil Q Control (&amp;lt;code&amp;gt;mullet&amp;lt;/code&amp;gt;)&lt;br /&gt;
*: this port has failed because the watch does not seem to boot an asteroid boot image, even if the bootloader is unlocked. It is not clear why this happens.&lt;br /&gt;
&lt;br /&gt;
=== Impossible ports due to unmet hardware dependencies ===&lt;br /&gt;
&lt;br /&gt;
* Fitbit watches &amp;amp; smartbands&lt;br /&gt;
* Honor Magic Watch 2&lt;br /&gt;
* Huawei Watch GT Series&lt;br /&gt;
* OPPO Watch Free&lt;br /&gt;
* PineTime&lt;br /&gt;
* Umidigi Uwatch GT&lt;br /&gt;
&lt;br /&gt;
== Tizen Smartwatches ==&lt;br /&gt;
&lt;br /&gt;
The Samsung Gear S2, S2 Classic and S3 might be supported by AsteroidOS in the future but they will require more work than the other watches. Someone already got interested in the S2 port but gave up because he couldn’t find the kernel’s defconfig.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A port for the Gear 2 based on a mainline kernel is currently in progress.&lt;br /&gt;
&lt;br /&gt;
== Other watches ==&lt;br /&gt;
&lt;br /&gt;
There are many Android (non-Wear) smartwatches available for a lower price. (e.g: the Omate *, Sony SW, Intex iRist, zWatch etc…) It might be more difficult to get access to the kernels or android tree of those devices but libhybris could also make running AsteroidOS on top of them possible. This is typically the case of the MTK6580 watches.&lt;br /&gt;
&lt;br /&gt;
Other low-end smartwatches using cheap Mediatek SoCs aren’t able to run a Linux kernel and can’t be supported by AsteroidOS.&lt;/div&gt;</summary>
		<author><name>Casept</name></author>
	</entry>
	<entry>
		<id>https://wiki.asteroidos.org/index.php?title=Rinato&amp;diff=449</id>
		<title>Rinato</title>
		<link rel="alternate" type="text/html" href="https://wiki.asteroidos.org/index.php?title=Rinato&amp;diff=449"/>
		<updated>2024-06-13T17:07:05Z</updated>

		<summary type="html">&lt;p&gt;Casept: Update port state&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Galaxy Gear 2 ==&lt;br /&gt;
[[File:Rinato.webp|alt=Picture of the watch with a blank screen|left|thumb]]&lt;br /&gt;
The Gear 2 is a Tizen-based smartwatch released in 2014. See [https://www.gsmarena.com/samsung_gear_2-7717.php gsmarena] for detailed specs. There are two variants of this watch - Gear 2 (SM-R380) and Gear 2 Neo (SM-R381), which are identical save for a camera that&#039;s only present on the Gear 2. The codename for this watch is &amp;quot;rinato&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
As the vendor kernel is very old (3.4) and there&#039;s no existing abstraction for the Tizen HAL, a mainline Linux port for this watch is being attempted instead.&lt;br /&gt;
&lt;br /&gt;
Downstream sources available at https://github.com/casept/linux-exynos3250-common/tree/rinato, as Samsung no longer hosts them.&lt;br /&gt;
&lt;br /&gt;
===Hardware docs and kernel support===&lt;br /&gt;
&lt;br /&gt;
These are maintained on the [https://wiki.postmarketos.org/wiki/Samsung_Gear_2_(samsung-rinato) postmarketOS wiki page for this device].&lt;br /&gt;
&lt;br /&gt;
===Current port state===&lt;br /&gt;
&lt;br /&gt;
This watch is being worked on [https://github.com/casept/meta-smartwatch/tree/rinato here].&lt;br /&gt;
&lt;br /&gt;
Currently (June 2024) the watch boots and the launcher starts, but rendering is extremely sluggish. This is suspected to be caused by lacking support for non-Android hardware acceleration in Asteroid&#039;s version of lipstick, and is currently being investigated.&lt;/div&gt;</summary>
		<author><name>Casept</name></author>
	</entry>
	<entry>
		<id>https://wiki.asteroidos.org/index.php?title=Rinato&amp;diff=447</id>
		<title>Rinato</title>
		<link rel="alternate" type="text/html" href="https://wiki.asteroidos.org/index.php?title=Rinato&amp;diff=447"/>
		<updated>2024-06-08T22:59:33Z</updated>

		<summary type="html">&lt;p&gt;Casept: Created page with &amp;quot;== Galaxy Gear 2 ==  The Gear 2 is a Tizen-based smartwatch released in 2014. See [https://www.gsmarena.com/samsung_gear_2-7717.php gsmarena] for detailed specs. There are two variants of this watch - Gear 2 (SM-R380) and Gear 2 Neo (SM-R381), which are identical save for a camera that&amp;#039;s only present on the Gear 2. The codename for this watch is &amp;quot;rinato&amp;quot;.  As the vendor kernel is very old (3.4) and there&amp;#039;s no existing abstraction for the Tizen HAL, a mainline Linux port...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Galaxy Gear 2 ==&lt;br /&gt;
&lt;br /&gt;
The Gear 2 is a Tizen-based smartwatch released in 2014. See [https://www.gsmarena.com/samsung_gear_2-7717.php gsmarena] for detailed specs. There are two variants of this watch - Gear 2 (SM-R380) and Gear 2 Neo (SM-R381), which are identical save for a camera that&#039;s only present on the Gear 2. The codename for this watch is &amp;quot;rinato&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
As the vendor kernel is very old (3.4) and there&#039;s no existing abstraction for the Tizen HAL, a mainline Linux port for this watch is being attempted instead.&lt;br /&gt;
&lt;br /&gt;
Downstream sources available at https://github.com/casept/linux-exynos3250-common/tree/rinato, as Samsung no longer hosts them.&lt;br /&gt;
&lt;br /&gt;
=== Hardware docs and kernel support ===&lt;br /&gt;
&lt;br /&gt;
These are maintained on the [https://wiki.postmarketos.org/wiki/Samsung_Gear_2_(samsung-rinato) postmarketOS wiki page for this device].&lt;br /&gt;
&lt;br /&gt;
=== Current port state ===&lt;br /&gt;
&lt;br /&gt;
This watch is being worked on [https://github.com/casept/meta-smartwatch/tree/rinato here].&lt;br /&gt;
&lt;br /&gt;
Currently (June 2024) the watch boots and the launcher starts, but due to a possible bug in the kernel side of the graphics stack trying to launch any app results in a lockup and the kernel emitting a warning.&lt;/div&gt;</summary>
		<author><name>Casept</name></author>
	</entry>
	<entry>
		<id>https://wiki.asteroidos.org/index.php?title=File:Rinato.webp&amp;diff=448</id>
		<title>File:Rinato.webp</title>
		<link rel="alternate" type="text/html" href="https://wiki.asteroidos.org/index.php?title=File:Rinato.webp&amp;diff=448"/>
		<updated>2024-06-08T22:55:46Z</updated>

		<summary type="html">&lt;p&gt;Casept: An image of the watch (silver non-neo variant)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
An image of the watch (silver non-neo variant)&lt;/div&gt;</summary>
		<author><name>Casept</name></author>
	</entry>
	<entry>
		<id>https://wiki.asteroidos.org/index.php?title=WC1&amp;diff=414</id>
		<title>WC1</title>
		<link rel="alternate" type="text/html" href="https://wiki.asteroidos.org/index.php?title=WC1&amp;diff=414"/>
		<updated>2023-12-21T16:18:15Z</updated>

		<summary type="html">&lt;p&gt;Casept: Note port state&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Galaxy Gear S2 Classic ==&lt;br /&gt;
&lt;br /&gt;
The Gear S2 classic is a Tizen-based smartwatch released in 2015. See [https://www.gsmarena.com/samsung_gear_s2_classic-7677.php gsmarena] for detailed specs. The codename used in Tizen and Recovery seems to be &amp;quot;WC1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
As the vendor kernel is very old (3.4) and there&#039;s no existing abstraction for the Tizen HAL, a mainline Linux port for this watch is being attempted instead.&lt;br /&gt;
&lt;br /&gt;
Downstream sources available at https://github.com/casept/samsung-wc1-sources, as Samsung no longer hosts them.&lt;br /&gt;
&lt;br /&gt;
=== Hardware docs ===&lt;br /&gt;
&lt;br /&gt;
==== Recovery mode and flashing ====&lt;br /&gt;
&lt;br /&gt;
Like other Samsung watches, the Gear S2 classic can either be flashed wirelessly via the NetOdin protocol, or using the regular Odin protocol by opening it up and soldering a USB cable to some internal pads. See e.g. [https://xdaforums.com/t/gear-s2-wireless-download-mode-error.3745724/ this XDA thread] for the pinout.&lt;br /&gt;
&lt;br /&gt;
Note that flashing the BOOT partition with a bad kernel will result in a broken recovery and inability to use wireless download mode, so make sure you have USB connected before working on the watch.&lt;br /&gt;
&lt;br /&gt;
==== List of peripherals and their kernel driver state ====&lt;br /&gt;
&lt;br /&gt;
Most of the hardware in this watch seems to have drivers in the mainline kernel, especially the SoC and most of the regulators.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Samsung Gear S2 Classic&lt;br /&gt;
|-&lt;br /&gt;
! Chip !! Function !! Driver state in mainline Linux !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Exynos 3250 || SoC || Supported || DTS for dev boards based on it exist&lt;br /&gt;
|-&lt;br /&gt;
| WM1831 || Microphone DAC || Supported&lt;br /&gt;
|-&lt;br /&gt;
| BCM4343W || WLAN and BT || Unsupported || Infineon still maintains this chip. There&#039;s a patch for recent kernels (5.15) available on [https://community.infineon.com/t5/Wi-Fi-Bluetooth-for-Linux/Cypress-Linux-WiFi-Driver-Release-FMAC-2023-09-01/td-p/492862 Infineon&#039;s support site]. A quite complete datasheet exists [https://www.infineon.com/dgdl/Infineon-CYW4334WKUBGT-DataSheet-v11_00-EN.pdf?fileId=8ac78c8c7d0d8da4017d0ee1f02f680f here].&lt;br /&gt;
|-&lt;br /&gt;
| SENN5DDPS2 || NFC || Possibly supported || There exists a kernel driver for 5th generation Samsung NFC chips, whether this chip is part of it is unknown.&lt;br /&gt;
|-&lt;br /&gt;
| BCM53950 || Wireless charge controller || Unsupported || No public datasheet, Samsung code seems readable enough and quite short (~1500LoC)&lt;br /&gt;
|-&lt;br /&gt;
| ISA1000A || vibrator motor controller || Unsupported || No datasheet, but probably only requires SoC PWM+GPIO, Samsung driver ca. 500LoC (&#039;&#039;drivers/motor/isa1000a_vibrator.c&#039;&#039;)&lt;br /&gt;
|-&lt;br /&gt;
| Unknown IC || hall effect sensor, crown || Unsupported || Connected via I2C, Samsung driver at &#039;&#039;drivers/input/misc/sec_rotary.c&#039;&#039;, ~1300LoC&lt;br /&gt;
|-&lt;br /&gt;
| CYTMA525 || touchscreen controller || Supported&lt;br /&gt;
|- &lt;br /&gt;
| MAX77836 || MUIC || Supported || downstream kernel judges jig modes based on resistor connected to this via USB&lt;br /&gt;
|-&lt;br /&gt;
| ATSAMG55G19A || sensor hub || unknown || possibly supported via &amp;quot;Samsung sensor hub&amp;quot; driver. Sensor chips are connected to this and not the SoC directly.&lt;br /&gt;
|-&lt;br /&gt;
| Unknown (marked &amp;quot;OCTA&amp;quot;) || LCD controller || unknown || unknown&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Debugging and Jigs ====&lt;br /&gt;
&lt;br /&gt;
The device exposes a UART via the USB pads if ID is connected to GND with a 619k resistor. D+ goes to TX on the TTL adapter and D- goes to RX. VCC does not need to be connected. [https://web.archive.org/web/20231221120727/https://xdaforums.com/t/guide-usb-uart-on-galaxy-s-devices-2012-09-25.1901376/ This works identically to other Samsung smartphones].&lt;br /&gt;
&lt;br /&gt;
Connecting to the device via UART yields the following output on startup:&amp;lt;syntaxhighlight line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
= 0x00&lt;br /&gt;
PMIC_STATUS1    = 0x27&lt;br /&gt;
PMIC_STATUS2    = 0x11&lt;br /&gt;
PMIC_OFFSRC     = 0x00&lt;br /&gt;
PMIC_PWRON      = 0x08&lt;br /&gt;
PMIC_IRQ1       = 0xc3&lt;br /&gt;
PMIC_IRQ2       = 0x11&lt;br /&gt;
PMIC_IRQ3       = 0x00&lt;br /&gt;
PMIC_RTC_OFFSRC = 0x00&lt;br /&gt;
PMIC_RTC_SMPL   = 0x23&lt;br /&gt;
pwm-0: stop, tcon = 0x510000&lt;br /&gt;
pwm-0: prescaler = 1, divider = 3&lt;br /&gt;
pwm-0: src clk = 50000000, prescaler = 1, div = 8&lt;br /&gt;
pwm-0: freq = 3125000, request freq = 25344&lt;br /&gt;
pwm-0: tcnt = 0x7b, tcmp = 0x79&lt;br /&gt;
s5p_check_reboot_mode: INFORM3 = 0 ... skip&lt;br /&gt;
board_ps_hold_control: state (1)&lt;br /&gt;
s5p_reboot_menu_is_7sec_reset&lt;br /&gt;
debug_level: 0x00004f4c (20300)&lt;br /&gt;
   pwron-ap: 0x00010000 (hard reset)&lt;br /&gt;
 pwron-pmic: 0x00000008 (mrst)&lt;br /&gt;
s5p_reboot_menu_is_7sec_reset: 7sec reset at low debug level&lt;br /&gt;
cmu_div:65535, div:1, src_clk:0, pixel_clk:15552000&lt;br /&gt;
reset_lcd by s6e36w1x01&lt;br /&gt;
s5p_dsim_display_config: COMMAND MODE&lt;br /&gt;
display id: 40, 20, 15&lt;br /&gt;
s5p_reboot_menu_is_7sec_reset: timeout&lt;br /&gt;
target reboot with swreset as workaround&lt;br /&gt;
s5p_restart_handler (&#039;N&#039;:normal)&lt;br /&gt;
&lt;br /&gt;
OMUIC rev = MAX14577(117)&lt;br /&gt;
MON: 0x65(4)&lt;br /&gt;
MON[0] = (4)[0x37, 0xe8]&lt;br /&gt;
MON[1] = (5)[0x39, 0xe8]&lt;br /&gt;
MON[2] = (6)[0x3a, 0xc0]&lt;br /&gt;
MON[3] = (7)[0x0c, 0x14]&lt;br /&gt;
MON[4] = (0)[0x36, 0xe8]&lt;br /&gt;
MON[5] = (1)[0x32, 0xfc]&lt;br /&gt;
MON[6] = (2)[0x18, 0x20]&lt;br /&gt;
MON[7] = (3)[0x0a, 0x00]&lt;br /&gt;
cardtype: 0x00000007&lt;br /&gt;
buswidth: 0x00&lt;br /&gt;
hstiming: 0x00&lt;br /&gt;
SB_MMC_HS_52MHZ_1_8V_3V_IO&lt;br /&gt;
mmc-&amp;gt;card_caps: 0x00000f11&lt;br /&gt;
mmc-&amp;gt;host_caps: 0x00000f11&lt;br /&gt;
!!!Enter 8 Bit DDR mode.!!!&lt;br /&gt;
[mmc] capacity = 7634944&lt;br /&gt;
&lt;br /&gt;
MODEL_NAME:{{SM-R732}}&lt;br /&gt;
eMMC_SERIAL_NUMBER:{{150100464A32354441008825557FC261}}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Current port state ===&lt;br /&gt;
&lt;br /&gt;
Porting currently on hold due to lifting pins from the board, resulting in a bricked watch which can no longer be recovered via USB.&lt;/div&gt;</summary>
		<author><name>Casept</name></author>
	</entry>
	<entry>
		<id>https://wiki.asteroidos.org/index.php?title=WC1&amp;diff=409</id>
		<title>WC1</title>
		<link rel="alternate" type="text/html" href="https://wiki.asteroidos.org/index.php?title=WC1&amp;diff=409"/>
		<updated>2023-12-19T12:33:07Z</updated>

		<summary type="html">&lt;p&gt;Casept: Add a bunch of hardware and flashing info&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Galaxy Gear S2 Classic ==&lt;br /&gt;
&lt;br /&gt;
The Gear S2 classic is a Tizen-based smartwatch released in 2015. See [https://www.gsmarena.com/samsung_gear_s2_classic-7677.php gsmarena] for detailed specs. The codename used in Tizen and Recovery seems to be &amp;quot;WC1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
As the vendor kernel is very old (3.4) and there&#039;s no existing abstraction for the Tizen HAL, a mainline Linux port for this watch is being attempted instead.&lt;br /&gt;
&lt;br /&gt;
Downstream sources available at https://github.com/casept/samsung-wc1-sources, as Samsung no longer hosts them.&lt;br /&gt;
&lt;br /&gt;
=== Hardware docs ===&lt;br /&gt;
&lt;br /&gt;
==== Recovery mode and flashing ====&lt;br /&gt;
&lt;br /&gt;
Like other Samsung watches, the Gear S2 classic can either be flashed wirelessly via the NetOdin protocol, or using the regular Odin protocol by opening it up and soldering a USB cable to some internal pads. See e.g. [https://xdaforums.com/t/gear-s2-wireless-download-mode-error.3745724/ this XDA thread] for the pinout.&lt;br /&gt;
&lt;br /&gt;
Note that flashing the BOOT partition with a bad kernel will result in a broken recovery and inability to use wireless download mode, so make sure you have USB connected before working on the watch.&lt;br /&gt;
&lt;br /&gt;
==== List of peripherals and their kernel driver state ====&lt;br /&gt;
&lt;br /&gt;
Most of the hardware in this watch seems to have drivers in the mainline kernel, especially the SoC and most of the regulators.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Samsung Gear S2 Classic&lt;br /&gt;
|-&lt;br /&gt;
! Chip !! Function !! Driver state in mainline Linux !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Exynos 3250 || SoC || Supported || DTS for dev boards based on it exist&lt;br /&gt;
|-&lt;br /&gt;
| WM1831 || Microphone DAC || Supported&lt;br /&gt;
|-&lt;br /&gt;
| BCM4343W || WLAN and BT || Unsupported || Infineon still maintains this chip. There&#039;s a patch for recent kernels (5.15) available on [https://community.infineon.com/t5/Wi-Fi-Bluetooth-for-Linux/Cypress-Linux-WiFi-Driver-Release-FMAC-2023-09-01/td-p/492862 Infineon&#039;s support site]. A quite complete datasheet exists [https://www.infineon.com/dgdl/Infineon-CYW4334WKUBGT-DataSheet-v11_00-EN.pdf?fileId=8ac78c8c7d0d8da4017d0ee1f02f680f here].&lt;br /&gt;
|-&lt;br /&gt;
| SENN5DDPS2 || NFC || Possibly supported || There exists a kernel driver for 5th generation Samsung NFC chips, whether this chip is part of it is unknown.&lt;br /&gt;
|-&lt;br /&gt;
| BCM53950 || Wireless charge controller || Unsupported || No public datasheet, Samsung code seems readable enough and quite short (~1500LoC)&lt;br /&gt;
|-&lt;br /&gt;
| ISA1000A || vibrator motor controller || Unsupported || No datasheet, but probably only requires SoC PWM+GPIO, Samsung driver ca. 500LoC (&#039;&#039;drivers/motor/isa1000a_vibrator.c&#039;&#039;)&lt;br /&gt;
|-&lt;br /&gt;
| Unknown IC || hall effect sensor, crown || Unsupported || Connected via I2C, Samsung driver at &#039;&#039;drivers/input/misc/sec_rotary.c&#039;&#039;, ~1300LoC&lt;br /&gt;
|-&lt;br /&gt;
| CYTMA525 || touchscreen controller || Supported&lt;br /&gt;
|- &lt;br /&gt;
| MAX77836 || MUIC || Supported || downstream kernel judges jig modes based on resistor connected to this via USB&lt;br /&gt;
|-&lt;br /&gt;
| ATSAMG55G19A || sensor hub || unknown || possibly supported via &amp;quot;Samsung sensor hub&amp;quot; driver. Sensor chips are connected to this and not the SoC directly.&lt;br /&gt;
|-&lt;br /&gt;
| Unknown (marked &amp;quot;OCTA&amp;quot;) || LCD controller || unknown || unknown&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Debugging and Jigs ====&lt;br /&gt;
&lt;br /&gt;
Judging by downstream kernel sources a Samsung UART Jig with a 619K resistor might work. This is currently untested.&lt;/div&gt;</summary>
		<author><name>Casept</name></author>
	</entry>
</feed>