This repository has been archived by the owner. It is now read-only.

New requirement for supported devices: must be able to flash the system and boot from that? #12

Closed
ollieparanoid opened this Issue Nov 10, 2017 · 15 comments

Comments

Projects
None yet
5 participants
@ollieparanoid
Member

ollieparanoid commented Nov 10, 2017

@PureTryOut wrote in the chat:

so, the HTC Desire is in the list of "Supported devices", however, it doesn't even install. it only boots with ./pmbootstrap.py flasher boot. Can I propose a new requirement to be "supported" with "must be able to flash to the system and boot from that"?
this Reddit commented pointed out "supported" expects him to be able to install it on his device, which makes sense to me

Opinions?

@drebrez

This comment has been minimized.

Show comment
Hide comment
@drebrez

drebrez Nov 10, 2017

Member

The wiki page for the HTC Desire was outdated, flashing the kernel works now (thanks to the initramfs-extra that reduced the size).

In my opinion, a supported device requires these:

  • flash kernel
  • possibility to flash system (fastboot, recovery, netcat, sdcard)
  • usb network
  • alpine/pmos booted successfully

I think display/touchscreen should not be a requirement, since there is the possibility to choose None as user interface in the config.

Member

drebrez commented Nov 10, 2017

The wiki page for the HTC Desire was outdated, flashing the kernel works now (thanks to the initramfs-extra that reduced the size).

In my opinion, a supported device requires these:

  • flash kernel
  • possibility to flash system (fastboot, recovery, netcat, sdcard)
  • usb network
  • alpine/pmos booted successfully

I think display/touchscreen should not be a requirement, since there is the possibility to choose None as user interface in the config.

@craftyguy

This comment has been minimized.

Show comment
Hide comment
@craftyguy

craftyguy Nov 11, 2017

Member

That's a very android-specific definition :)

For example, the N900 would not be 'supported' since there is no system partition to flash on the device (or flashing the maemo partition is not tested and not recommended)

Member

craftyguy commented Nov 11, 2017

That's a very android-specific definition :)

For example, the N900 would not be 'supported' since there is no system partition to flash on the device (or flashing the maemo partition is not tested and not recommended)

@PureTryOut

This comment has been minimized.

Show comment
Hide comment
@PureTryOut

PureTryOut Nov 11, 2017

I assume there is still some way to properly install pmOS on the device though right? Or have you all been running on SD cards so far?

PureTryOut commented Nov 11, 2017

I assume there is still some way to properly install pmOS on the device though right? Or have you all been running on SD cards so far?

@MartijnBraam

This comment has been minimized.

Show comment
Hide comment
@MartijnBraam

MartijnBraam Nov 11, 2017

Member

I think the requirement should be that it can boot pmos without having it connected to another machine, it doesn't matter what the storage is it runs on. On android that means you have to be able to flash the kernel to the boot partition and then have the rootfs on the sd card or one of the internal partitions. For the n900 it means that the current solution of booting fully from sd is fine since uboot can do that.

Member

MartijnBraam commented Nov 11, 2017

I think the requirement should be that it can boot pmos without having it connected to another machine, it doesn't matter what the storage is it runs on. On android that means you have to be able to flash the kernel to the boot partition and then have the rootfs on the sd card or one of the internal partitions. For the n900 it means that the current solution of booting fully from sd is fine since uboot can do that.

@ollieparanoid

This comment has been minimized.

Show comment
Hide comment
@ollieparanoid

ollieparanoid Nov 11, 2017

Member

I assume there is still some way to properly install pmOS on the device though right? Or have you all been running on SD cards so far?

It is possible in theory (e.g. by using 0xffff for the N900), but this is not implemented yet.

The samsung-i9100 (and basically most of the or all Heimdall devices?) can also only flash the kernel and initramfs to the device, the system needs to come from the sd card for a straight forward install. Here it would also be possible to streamline the netcat postmarketOS/pmbootstrap#456 installation, but that is not done yet.

Member

ollieparanoid commented Nov 11, 2017

I assume there is still some way to properly install pmOS on the device though right? Or have you all been running on SD cards so far?

It is possible in theory (e.g. by using 0xffff for the N900), but this is not implemented yet.

The samsung-i9100 (and basically most of the or all Heimdall devices?) can also only flash the kernel and initramfs to the device, the system needs to come from the sd card for a straight forward install. Here it would also be possible to streamline the netcat postmarketOS/pmbootstrap#456 installation, but that is not done yet.

@PureTryOut

This comment has been minimized.

Show comment
Hide comment
@PureTryOut

PureTryOut Nov 11, 2017

In that case I'd go with @MartijnBraam proposal, it has to be able to boot without it being connected to another machine.

PureTryOut commented Nov 11, 2017

In that case I'd go with @MartijnBraam proposal, it has to be able to boot without it being connected to another machine.

@craftyguy

This comment has been minimized.

Show comment
Hide comment
@craftyguy

craftyguy Nov 11, 2017

Member

How about @MartijnBraam's proposal AND fde (which implies a working display and input), or are those things already implied in his proposal of booting without being connected to another device?

Member

craftyguy commented Nov 11, 2017

How about @MartijnBraam's proposal AND fde (which implies a working display and input), or are those things already implied in his proposal of booting without being connected to another device?

@ollieparanoid

This comment has been minimized.

Show comment
Hide comment
@ollieparanoid

ollieparanoid Nov 11, 2017

Member

I guess with FDE you mean osk-sdl mostly. How much of that needs to be working for @craftyguy's proposal? Because lg-mako has "only" a visual bug, but you can use it to unlock the phone. And the i9100 hangs when typing in the password, so it is still usable, but you have to be more careful when typing the password in and check with your eyes if it accepted the letter or not.

Member

ollieparanoid commented Nov 11, 2017

I guess with FDE you mean osk-sdl mostly. How much of that needs to be working for @craftyguy's proposal? Because lg-mako has "only" a visual bug, but you can use it to unlock the phone. And the i9100 hangs when typing in the password, so it is still usable, but you have to be more careful when typing the password in and check with your eyes if it accepted the letter or not.

@craftyguy

This comment has been minimized.

Show comment
Hide comment
@craftyguy

craftyguy Nov 11, 2017

Member

Good point.. feature-based definitions are problematic for the reason you alluded to, I doubt we have done enough testing to say every device that claims to support something (like display) has a working display 100% of the time.

Here's another idea: what if 'supported' is defined by whether there is someone willing/able to contribute, maintain, and improve pmos on the thing? From my experiences in the professional world, that's exactly what support means, that if something breaks there is someone who is available to help. It says nothing about how unbreakable or stable the thing is to begin with. For pmos, that part is clearly communicated in the issues list on github (search device in title) and in the wiki on the devices table. We would just augment the table with a list of people who are committed to improving the device and helping others use it.

Another idea: we could drop the badge "supported device" and maintain the 'devices' table on the wiki of what works. If would be pretty obvious which devices are just starting out vs some of the more better working devices. If development on a device is stalled for some reason, it'll be reflected in the table as features that are not working yet, and the list would be unchanging for that device.

How do projects like LineageOS handle this, where they obviously have dozens of devices they release builds for? Back when I used it (Cyanogenmod), I remember selecting devices based on the number of active maintainers the device had.

I'm not entirely sold on any of my ideas, just trying to brainstorm a bit on other ways we could approach this!

Member

craftyguy commented Nov 11, 2017

Good point.. feature-based definitions are problematic for the reason you alluded to, I doubt we have done enough testing to say every device that claims to support something (like display) has a working display 100% of the time.

Here's another idea: what if 'supported' is defined by whether there is someone willing/able to contribute, maintain, and improve pmos on the thing? From my experiences in the professional world, that's exactly what support means, that if something breaks there is someone who is available to help. It says nothing about how unbreakable or stable the thing is to begin with. For pmos, that part is clearly communicated in the issues list on github (search device in title) and in the wiki on the devices table. We would just augment the table with a list of people who are committed to improving the device and helping others use it.

Another idea: we could drop the badge "supported device" and maintain the 'devices' table on the wiki of what works. If would be pretty obvious which devices are just starting out vs some of the more better working devices. If development on a device is stalled for some reason, it'll be reflected in the table as features that are not working yet, and the list would be unchanging for that device.

How do projects like LineageOS handle this, where they obviously have dozens of devices they release builds for? Back when I used it (Cyanogenmod), I remember selecting devices based on the number of active maintainers the device had.

I'm not entirely sold on any of my ideas, just trying to brainstorm a bit on other ways we could approach this!

@PureTryOut

This comment has been minimized.

Show comment
Hide comment
@PureTryOut

PureTryOut Nov 11, 2017

Maybe throwing out the term "supported" entirely would be good indeed. Like @craftyguy said, the device table should tell the user what is and what is not supported. A device doesn't even really need an active contributor for it, if most important stuff is supported already, to still be usable.

PureTryOut commented Nov 11, 2017

Maybe throwing out the term "supported" entirely would be good indeed. Like @craftyguy said, the device table should tell the user what is and what is not supported. A device doesn't even really need an active contributor for it, if most important stuff is supported already, to still be usable.

@ollieparanoid

This comment has been minimized.

Show comment
Hide comment
@ollieparanoid

ollieparanoid Nov 11, 2017

Member

Thanks for all the helpful brainstorming everyone!

@PureTryOut: I like your last idea the most so far. But I think it makes sense to divide devices that are not working at all, but still have useful research (i.e. the blackberry or ipod), from those where something is working.

Here's my suggestion based on that:

  • Rename the page from "Supported devices" to "Devices" (and leave a redirect behind)
  • Remove the "Officially supported" headline
  • Rename the "Work in progress" table to "Out-of-tree"
  • Allow all devices, that are booting (it must be clear, that pmOS is booted either via network or on the screen), to be merged into master (right now we also require networking to be functional)

What I like about this is, that it's simple and we don't need to shift devices around all the time when the maintainer changes, or when we decide that suddenly telephony is required for a supported device.

EDIT: changed to "out-of-tree" instead of "not booting".

Opinions?

Member

ollieparanoid commented Nov 11, 2017

Thanks for all the helpful brainstorming everyone!

@PureTryOut: I like your last idea the most so far. But I think it makes sense to divide devices that are not working at all, but still have useful research (i.e. the blackberry or ipod), from those where something is working.

Here's my suggestion based on that:

  • Rename the page from "Supported devices" to "Devices" (and leave a redirect behind)
  • Remove the "Officially supported" headline
  • Rename the "Work in progress" table to "Out-of-tree"
  • Allow all devices, that are booting (it must be clear, that pmOS is booted either via network or on the screen), to be merged into master (right now we also require networking to be functional)

What I like about this is, that it's simple and we don't need to shift devices around all the time when the maintainer changes, or when we decide that suddenly telephony is required for a supported device.

EDIT: changed to "out-of-tree" instead of "not booting".

Opinions?

@ollieparanoid

This comment has been minimized.

Show comment
Hide comment
@ollieparanoid

ollieparanoid Nov 16, 2017

Member

I've changed my opinion. Now I think "booting" and "not booting" is better, because "in tree" and "out of tree" might confuse people (we mean the pmbootstrap code tree, not the one from the kernel).

So if no one speaks out against this, I'll change the wiki page accordingly the next few days.

Member

ollieparanoid commented Nov 16, 2017

I've changed my opinion. Now I think "booting" and "not booting" is better, because "in tree" and "out of tree" might confuse people (we mean the pmbootstrap code tree, not the one from the kernel).

So if no one speaks out against this, I'll change the wiki page accordingly the next few days.

@drebrez

This comment has been minimized.

Show comment
Hide comment
@drebrez

drebrez Nov 17, 2017

Member

👍 "Not booting" for the small table of the WIP devices
But for the big table with all the colored "features" cells, I would look for a different name than "Booting".
Maybe postmarketOS Support matrix or Device feature matrix?

Member

drebrez commented Nov 17, 2017

👍 "Not booting" for the small table of the WIP devices
But for the big table with all the colored "features" cells, I would look for a different name than "Booting".
Maybe postmarketOS Support matrix or Device feature matrix?

@craftyguy

This comment has been minimized.

Show comment
Hide comment
@craftyguy

craftyguy Nov 17, 2017

Member

This sounds good to me. Being able to boot pmos is a very important step that is required for using the device.

Member

craftyguy commented Nov 17, 2017

This sounds good to me. Being able to boot pmos is a very important step that is required for using the device.

@ollieparanoid

This comment has been minimized.

Show comment
Hide comment
@ollieparanoid

ollieparanoid Nov 18, 2017

Member

Adjusted and used "Feature matrix" as title for the upper table:
https://wiki.postmarketos.org/wiki/Devices

Member

ollieparanoid commented Nov 18, 2017

Adjusted and used "Feature matrix" as title for the upper table:
https://wiki.postmarketos.org/wiki/Devices

postmarketOS-Wiki pushed a commit that referenced this issue Nov 18, 2017

Ollieparanoid Ollieparanoid
Close #12: Rename table headlines to "device feature matrix" and "not…
… booting", add descriptions (and smaller changes, such as sorting alphabetically)
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.