Pine64 should re-evaluate their community priorities
drewdevault.com
drewdevault.com
I'm a electrical hardware design engineer.
I agree, that if Pine64 has enough money to fund a full time engineer, that's a much better use than giving any money to the distros. They should be funding an embedded specialist who should focus on board bring up, because clearly we're not out of that stage yet.
I've built lots of high-volume electronics hardware that is easily as complex as a cell-phone, and the order of development is very important. I'm in the middle of such development right now... Working on software and UI is a dead last on that priority list every time.
I recently also looked at the PinePhone but felt it was too early for me to get involved, because it's very, very clear that you can't actually use it as a day-to-day phone yet, at least that's from what I gathered, but somehow you ended up with the idea that you could actually use it as a phone. I'm wondering if you never looked at their official resources for PinePhone as they make it kind of clear it's not ready to be used in any normal fashion yet?
It's been a smoother ride than my previous phone, an OpenMoko FreeRunner which I got around 2008. The default OS on that was already abandonware by the time I got it!
https://hydra.nixos.org/jobset/mobile-nixos/unstable
That links to the latest build for pinephone aarch64, e.g. https://hydra.nixos.org/build/164693256
That gives the output path, e.g. /nix/store/6py525nywqdbyjs7jy1rm9vw53hmm5f1-pine64-pinephone_full-disk-image.img
We can look up that hash on cache.nixos.org, e.g. https://cache.nixos.org/6py525nywqdbyjs7jy1rm9vw53hmm5f1.nar...
That gives us the download URL, e.g. https://cache.nixos.org/nar/087ljdm30k8wqgdhdjdhc15bmkk01g69...
We can unxz that, then trim the leading bytes according to the Nar file format (described in Dolstra's PhD thesis, figure 5.2, page 93 https://edolstra.github.io/pubs/phd-thesis.pdf ). Since this .nar only contains one file, we can just ignore the header bytes (they're padded to multiples of 8 bytes; I think in this case we need to skip the first 96 bytes). We can do this while dd-ing the image to our SD card, e.g.
sudo dd if=087ljdm30k8wqgdhdjdhc15bmkk01g69zqvr3gv13sra8pkgk387.nar of=/dev/my-sd-card bs=96 skip=1
This is quite convoluted, but I did this while stuck on a crappy Chromebook ;)Note that the above images have no usable user accounts. I mounted the resulting SD card and edited the /etc/shadow file to enable root login without a password. I could then log in to a text console, using an external keyboard :)
Wondering if the thoughts in this thread factor in the Pinephone Pro yet or no? I am looking to get one of those eventually. I think it just started doing pre-orders.
I got a second basic text/call line for my Pinephone but I don't use it as a phone right now. The modem is finicky when it works, seems to need a certain battery charge (like near full). I also have to restart it several times to get the modem to work. I'm using Mobian/Phosh. I'm not 100% a fan of the Phosh look/how it works multi-task wise but it does work out of the box more than a couple other "front ends" I tried. KDE Plasma was pretty but I couldn't just plug in an external monitor and have it work. Overall I like the idea of the phone/want to learn to develop for it. Unfortunately my screen is falling apart/peeling near the top edges. Also the battery even in airplane mode will die within a day or so.
What was neat was running ARM VS Code but it was slow as hell eg. 5 second click lag.
Old screenshot https://i.imgur.com/a7OHjcZ.png
I can't deny that my $300 Android phone I'm using now would run circles around Pinephone Pro but I still look forward to that idea one day.
Often it's that there are hardware components chosen without mainline drivers, then there is also the problem of each board having a different layout. With arm64 EFI things get better but it's still a difference compared to x86 where you can boot almost any old OS on your newest laptop, thanks to PCI and other standard interfaces.
Also, ARM64 is only one ISA. 32-bit has at least v5, v7 and thumb in wide circulation (though I may be off-target on what's exactly referred to as an ISA on arm).
Because the SoCs used in these sort of boards originally went into things like cheap Android set top boxes and the like. Those customers just need an image that can boot to Android and work well enough, and it is easier for the hardware vendors to hack at their in house kernel branch than to get everything upstream.
Maintaining software compatibility would mean sacrificing either price or power consumption. So a manufacturer can choose between spending money rewriting the software, or having to pay anywhere between 15¢ to $100 more per unit. If you’re making millions of units, then savings from using more limited SoCs will quickly pay for an army of software engineers.
I call tell I'm obviously missing something here and happy to be called out.
A phone that has trouble with basic features you're expecting a final product to get right is much more effort. If you're not going to be using it like a normal phone daily, you won't find certain bugs.
What if your map app crashes when the GPS location jitters too much like in the real world? Or gives inaccurate results when you walk next to high current power line that screws with it's internal compass? It's nearly impossible to simulate day to day usage to catch these things.
But sure, you can develop for it now. But when bugs with basic features you rely on happen, you'll have to make a guess whether it's your code or the phone's bug.
Then when bugs are either fixed or deemed not OS issues, you'll have to re-test and re-develop parts of your code to cope with that over and over.
A proper working dev kit that works as a day to day phone is much more worth developing for, unless you're REALLY into the pinephone and don't mind extra work.
Having a twin SIM card is rather cheap here, and would be a decent option for something like that. I've gotten one for tinkering with a Raspberry Pi 4G module.
I totally agree with your point though.
There are some notable exceptions to this (Solidrun?) but the senior engineering has blinders on (and lots of false excuses why it wont work), and the mgmt chain likes the status quo because they see it as some kind of market segmentation strategy.
Are you sure? it is really hard to predict what would have happened. Without the clones would the Apple II have taken off (it did have clones, but they would have needed to come up with a 16/32 bit upgrade pretty soon - the IIgs comes to mind though it was too late) , or maybe the mac?
Sure IBM had a name and would have got some sales, but would the platform take off? IBM did make a ton of money on PCs even if they were a bit player overall.
We can never know the above.
for the pinephone specifically, it feels like its ignoring what does exist?
https://xnux.eu/devices/pine64-pinephone.html there is a strong kernel which is upstreaming its changes.
Now, as a time-strapped developer, who gets told "if you wait, the fixes will appear, or you can double/triple your effort to manually patch things, and then undo that when those patches go mainline anyhow" like, I would personally be happy leaving my distro broken for 6+ months for that stuff to settle, cause elsewise you are going to be building apps to support APIs that might change completely between patch and mainline, because there isn't an abstraction layer like ios or android.
Its a new approach, drop hardware and specs, and embrace community passion, I thought it was a bad idea at the start, but I'm now sure I'm wrong.
A Kickstarter phone beginning around the same time, custom hardware and OS, even with a budget and price 3x what pine goes with, would have probably far less progress than what exists now with pine devices
Instead, look at Framework and Fairphone how a company can release a modular device, for a realistic price.
Framework is, afaik, a bunch of people who have already several long years of wrangling laptop devices and their supply chains, similarly Fairphone is on their 4th iteration, a lot of long years
And more importantly, even with all those years behind their products, I can't buy either of 'em, I however have a pinephone in my hands already
The second megi decides the PinePhone or the A64 isn't interesting anymore (since the new one is Rockchip rk3399) that whole tree maintainership will collapse.
Could you cite where they refuse to upstream?
Can anyone elaborate on this? I did a little search-foo but couldn't easily find some information regarding this claim...
If they bothered to do the same thing with the AUR that they're doing with the upstream Arch packages, it'd be one thing. But as is, basically they're claiming that their design keeps the experience "stable" despite the fact that this same decision directly causes other parts of the experience to become unstable.
/rant
Another thing that kind of bugs me is that they currently have some "star devs" they send all of the new hardware too, but they are very over worked and split between many projects. Even they don't really get a heads up regarding what is in the pipeline. I believe if you want devs to be involved, you should somewhat consult them in the process.
> Many of the distros targetting Linux for mobile devices have people working on the important focus areas, but as a matter of necessity: to accomplish their goals when no one else is working on these problems, they had to become experts and divide their limited volunteer time between distro maintenance and software development.
Not sure if it's distro maintainers that become software devs, or the other way around.
I deliberately got a Quartz64 instead of something like a Pinenote as I expected to work on core drivers.
I'm aware, each device is essentially a "copy and paste" PCB with hardware repositioned - but because it is repositioned, there is no clear upgrade path. When a board breaks, you need to wait for another manufacturing run. The SBC from a PineTab won't work in a PineBook or a PinePhone or a A64 LTS board, despite them all having very similar capabilities, power requirements, etc.
Each of the boards also has their own set of hardware revisions, as "copy and paste" is never so straight forwards in hardware. They literally already have the answer to this problem though: standardize the hardware platform into modules.
I am motivated to start writing software for this device with a “do one thing well” philosophy, as a device like this should have. But it’s hard to get started on that when the advice for getting started on it is “you should try getting your favourite distro to run on it and go from there.”
Yeah sorry, no. I want to contribute where I can to the project as a whole, not get Doom running on an e-ink tablet.
I posted my genuine thoughts and experience and this is the response I get? I want to contribute to the software but there isn’t any meaningful structure in place to do so. This isn’t Pine’s first device, far from it, yet it feels like I have to start from square one.
Actually most places spend years getting Windows (android or whatever) and you are lucky if they acknowledge hobbies at all.
The monthly blog is very clear on the current state of the PineNote with only one user having successfully run a GUI and touch screen as of last week.
> the people hanging on Discord and IRC just seem to be hacking on their own things
Last I check they are unpaid and don't have to work on "your" thing.
That changed two weeks ago. Anyone can buy it now. (if it is in stock, and Chinese New Year means you won't get it for a couple months...) They try to be clear that it boots and you can see something on the display but that is about it.
I'm not sure why you and the other commenter are so keen to throw me under the bus. I'm not saying that the purchase was a waste, nor that I regret buying it. And neither of you have said nothing to address any of my points about the lack of direction and community structure. I want to help make it a nice device to use but there's nothing to latch onto. The hardware is nice and worth what I paid.
> The monthly blog is very clear on the current state of the PineNote with only one user having successfully run a GUI and touch screen as of last week.
Yeah, great. Where are the efforts to package this hard work up and build on it?
> Last I check they are unpaid and don't have to work on "your" thing.
Of course they're unpaid. What I'm trying to get at is that few people are working together towards something that's usable because there's no organization. If there is anything, it's certainly not obvious. I'm not asking anyone to work on "my" thing, I don't have a "thing". I'm looking for "things" to help with, but people are just playing around.
I'm completely confused - what do you want to latch onto? Pine64 has never been in the business of telling you what you should run. Latch onto your community. Are you a KDE guy, then latch onto the plasma community. If you are GNOME guy, then latch onto their community. There are dozens of other communities you can latch onto. Or create your own community.
Pine64 will be happy to document any community that gets their stuff to run on the PineNote, but for now they are waiting on communities to do something. If you are looking to Pine64 for a community then you are in the wrong, they intentionally do not create a community because they want every community to feel equally welcome (this isn't possible, but it seems to be their goal).
I'm explicitly saying I see your complaint as invalid and something I don't want Pine to fix. Sure they can do something about your complaint, but it will make the whole worse for everyone else.
Most other devices are consumer released so you get an old kernel that gets everyone at the top of the stack going right away, but then blocks mainlining since no one can correctly claim authorship of the implementation for the process of porting and fixing it.
A few people do seem to be working on these critical things, just not together towards any common goal. The way GP puts it, the Pine64 communities are ideologically opposed to reducing development friction because that would mean people could start thinking about doing useful things to do with these devices. Who would want that? The suggestion that the status quo is working out positively is completely baffling to me.
I suppose the *BSD and linux communities working on this might not work together much, but they are working to very different things so there isn't much they can do together. (even then I expect that they are in contact about "have you figured out X, I can't get it to work" "oh, I got that, the docs say 0x35 which doesn't work but I tried 0x36 and that seems to be everything I need" )
If you are not part of those communities, then it will be tricky to get in. However I trust people who know what they are doing in those communities are working on it. They have been in the past, it just takes them a few months.
That would be 0/3 on the slogan of "Open. Friendly. Community driven."
All of your replies have been complete non-sequiturs to my comments.
> I'm explicitly saying I see your complaint as invalid and something I don't want Pine to fix.
What a joke.
Which drivers haven't been upstreamed?
Also, you say it'd take a few weeks to create a standard installer by upstreaming "the last 6 patches?" What are these patches, and where's the link? Has someone already done the work and it's just waiting to be submitted, or are you saying these patches would form the basis for two weeks more work on top of getting everything upstreamed?
> Building out a robust telephony stack for Linux
What's the current state of the telephony stack for Linux? Are there competing projects? For the most complete project, what is missing WRT the pinephone? What isn't possible to do on it currently-- say, by fucking around in a terminal window-- that must be developed for pinephone be considered to have an API suitable for a cheap, modern smart phone?
> Building a mobile user interface for Linux
Isn't Phosh this? If not, what would you suggest as an alternative to what Phosh is currently doing?
I'd like to hear the details on this. E.g., if the biggest problem with the telephony stack were that it doesn't yet support animated emojis, I'd go ahead and buy a pinephone. I suspect the problems go deeper than that. But commenters here seem to just say, "Definitely not a daily driver." I have no idea what the scope of the problem is from that.
Edit: clarifications
I can't answer this from a technical perspective. I can answer this from a user experience perspective. I use a pinephone as a daily driver. I mainly communicate with people via SMS/MMS. The current state of things is this:
Ususally SMS/MMS works, but sometimes it will stop working for a few weeks. Then I have to track down the magic AT commands I need to send to the modem to make it work again. The modem constantly disappears and reappears. This happens about 10 times a day. It will disappear for sometimes hours at a time before coming back. During this time, I cannot receive SMS/MMS or phone calls. Phone calls work, but call waiting and three way calling do not. And I forgot to mention, MMS doesn't work just yet. I have to compile a (fairly stable) MMS application from source because distros are waiting to ship it until it gets a "stable" release.
In general, I would not yet recommend a Pinephone to anyone whoever relies on their phone for anything mission critical.
Chatty does not use libpurple for SMS for a while now (and never did for MMS).
> MMS was so broken
It wasn't even enabled by default, as it was explicitly marked as experimental until recently.
Where I heard from was initially a Purism employee testing MMS, but searching around the issue was probably related to this: https://forums.puri.sm/t/librem-5-can-no-longer-receive-sms-...
Funding (1) $1.7M
Yearly Revenue (2) <$5M
How much funding can they realistic provide for those priorities? State grants from Horizon Europe projects or similar could be an alternative source for funding, probably with better recurring probabilities but it would require a champion to lead through the burocracy and in the end it's a coin toss (or lower) to get approved.
Sources: (1) https://www.crunchbase.com/organization/pine64 (2) https://www.zoominfo.com/c/pine64-inc/372007622
(b) I think even without actual funding, PinePhone can set the tone of priorities for the community. If they speak about this issue, people will at least listen.
A public bug tracker + bounty, for example, would go a LONG way in messaging what needs to be done. Even a small amount of money ($100, $200) towards whatever issues are important would be a good signal to the community that "hey, we really need someone to do this".
With the hardware so unreliable for day to day computing it's really only for the same kinds of people who can be found with a motorbike in their garage that works, without any issues, for one glorious day out of the year.
I agree with Drew: the efforts could really use some focus but people like Drew who can both lead with wisdom and scratch a bigger itch than just theirs are in short supply in the FOSS community.
I agree that this is important and I totally want to contribute but the truth is I don't have the knowledge to do this. Not yet at least. How does one learn how to do this?
I've written a small user space driver for some laptop USB stuff. I reverse engineered the manufacturer's proprietary applications and drivers and made a Linux program that talks to the hardware the same way. Is this the correct approach here?
It's not something you can learn in a fortnight. You first have to learn C and Assembly for the architecture you're using, then you need to study how different OSs on different hardware manage to make themselves boot and then you need to use this knowledge to study the SoC's documentation and implement the stuff there. If documentation were perfect maybe you'd only need to know how to program and simply follow the specification, but in these cases experience with a large number of cases is a must to navigate the environment.
I've found the freesmartphone.org stack to be reasonably pleasant; e.g. a couple of years ago I used it to manually delete SMS messages from a SIM http://chriswarbo.net/blog/2019-11-29-openmoko_sms_deletion....
Unfortunately the freesmartphone.org page seems to be down (archived at https://web.archive.org/web/20210327153615/http://www.freesm... )
I can't speak for what other distros use.
[0] https://gitlab.freedesktop.org/mobile-broadband/ModemManager [1] https://gitlab.com/kop316/mmsd/
mmsd-tng is a lot more stable in dealing with transient network issues with 1.7, which was the cause of dropped messages (dog fooding your work helps!).
I think almost all other distros have moved to the modem manager stack (to my knowledge, UBPorts is the only one who still uses oFono). Phosh uses MM, Plasma Mobile moved to MM, and SXMO uses MM, which are the major players in phone DEs.
Most distros use ModemManager these days, although some still use oFono.
To me, it just looks like a repeat of that attempt, and its floundering around the basics of the telephony stack.
Also, Valve’s recommendation for Steamdeck developers was Manjaro. (I don’t know if they’ve updated that guidance with other options.)
https://www.gamingonlinux.com/2021/11/valve-adds-documentati...
I expect Ubuntu might also work quite well. I haven't tried it yet, but I may.
Different models, I'm glad Pine has this one as it is useful. That doesn't mean others are wrong models, but you can't be both.
They can tote all day long about how focused their hardware efforts are and how that improves their release process. Adding in a developer dedicated to the software side wouldn’t change that balance. They’re not even in the same ballpark anyways.
Spoiler: I own a Librem 5 and a Pinephone.
https://news.ycombinator.com/item?id=23940824
The original link is dead because the database for the entire Manjaro forums was lost shortly after that, so you'll need to use archive.org if you want to read the original discussion:
https://web.archive.org/web/20200807042341/https://forum.man...
Like, let's say, the pine phone was 100$.
Cool, even if it bricks after a month I'm okay. At 400$ , I'm upset.
I don't understand how anyone can feel it's ok to charge so much money for non functional products
Additionally, they have a very clear disclaimer about the target audience, you don't have to buy it if you don't like it.
> Beta Limited Edition PinePhones are aimed solely at early adopters. More specifically, only intend for these units to find their way into the hands of users with extensive Linux experience.
https://pine64.com/product/pinecil-smart-mini-portable-solde...
Does this dilute the brand or grow it?
If the goal is to provide an alternative to iPhones and Android devices, the table-stakes is huge. It's an extraordinary amount of work to get a new mobile platform even as far as the "not as painful to use as a Blackberry" phase of polish if building it out from scratch.
For example, it would be unacceptable on an 'iPhone alternative' to, say, have to tweak shell scripts to set the right driver options, or whatever. However, developers might find that OK (although annoying).
Can someone explain this?
Nothing new under the sun I guess.
It's worth nothing that Pine64 is already succeeding where a lot of other companies have failed and is also designing, producing and delivering way more than many bigger companies even promised.
They probably know better.
"I will go on the record as saying that Manjaro Linux is a bad Linux distribution and a bad place to send this money. They have a history of internal corruption, a record of questionable spending, and a plethora of technical issues and problematic behavior in the FOSS ecosystem. What limited budget there is to go around was wasted in their hands."
I use manjaro and I love it. Never knew the community was like this though. Does anybody have more information on the above?
I'm now testing out straight-up Arch with a manually-installed KDE Plasma for a few months now (inside a VM that I frequently snapshot). No issues so far.
The only thing that annoys me on Arch (or any rolling distro) is that you have to update things like postgresql as they come, because holding that package back counts as a “partial upgrade”.
You can just install that version out of aur and that package will track that specific major version.
Next time instead of an upgrade. Backup, remove the pacman package, install the air package and restore and you'll save yourself a lot of headaches.