Chrome OS native development
solarianprogrammer.com
solarianprogrammer.com
http://www.vesalia.de/pic/odroidc1emmc.jpg
It'd be cool to see flash memory slots put on ARM laptop boards like you see DRAM slots today. "16GB expandable to 2x 128GB!"
Like true software freedom? An ARM chromebook with Coreboot and Linux puts me squarely in Richard Stallman approved territory. Living the dream; No binary blobs on modern hardware. Freedom software for everything. I'm watching industry slowly boil the rest of you with firmware blobs, locked bootloaders, and curated app stores.
I don't think it's living the dream unless your dream fits in the constraints of its limitations
Not that I think bringing algorithms into this makes for any more of a straightforward discussion than the 1700s quote from Samuel Adams with no additional context or rationale does.
I'm actually fine with someone doing that but I especially don't get then implying everyone who needs more computing power than that is a "boiling frog" because their vastly more powerful machines aren't open. Buying products from heartless multinationals licensing from Google (which is literally as "the man" as you get) then jailbreaki... sorry, rebuilding... them is not some great stand against "the man" "boiling the clueless masses in closed software"
It's worth noting though that there is Chromium OS, too, although I will be honest I've only ever used Chrome boxes that were machines with real (closed) ChromeOS on them. I didn't "jailbreak" any of them, I just put them into developer mode and turned off the image signature verifications.
I too am not really sure that one can say legitimately an ARM box is more open than one of those AMT i7 Intel machines, regardless of what OS you put on it. You can't build your own ARM like you can build your own MIPS. (None of us plebes can legitimately build our own processors anyway, maybe you can, not me anyway.)
I learned "how" in a Computer Architecture class 'I' and 'II', but only just enough to give me the sense that if I was on a large desert island with lots of natural resources and the only person left in the world, I might manage to have a rudimentary computer again before whenever the time I die... although I might have to reinvent a transistor and a semiconductor and some other things I didn't think of, first.
That being said, ARM has patents, Intel has AMT, MIPS has the chinese government, I'm just glad there's still some kind of diversity because when we're running all the same identical Intel chips (or any of the competitors for that matter), we're all doomed.
For now, I compromise.
I use crouton and xiwi, though, because while native is nice, you can't beat surfacing X windows into Chrome tabs. I love the cheap 10-11" ones for stuff like OpenSCAD and KiCAD.
(Also, if you keep your work backed up offline, $200-300 for a replacement isn't bad, compared to a high-end powerhouse. That's nice in a mobile machine; life happens.)
source: https://chromeunboxed.com/google-hardware-event-could-be-on-...
It looks like it's a Rockchip with two Cortex-A72s, four Cortex-A53s, and a recent Mali GPU. But the 'OP' branding is apparently an attempt by Google to brand or designate ARM chips that have certain peripherals, performance-enhancing features, and support for ChromeOS stuff.
https://www.theverge.com/2017/2/22/14691396/google-chromeboo...
Even the author acknowledges that with "Running Chrome OS and Crouton side by side is the easiest path for a complete Unix like development experience."
I understand there is a way to disable the behavior that "ctrl+w immediately closes the tab and terminates the shell" since I hit that key combo enough times to turn me off of doing important work in a Chrome tab altogether, that might help, but I wonder if anyone has come up with a really nice solution that they'd be willing to share here.
It's more configurable. You can open the javascript console and set your preferred colours, turn off certain keybindings (so they can pass through to the stuff running inside your terminal), etc. Here's a dump of my notes on this:
----
● preferences
●● general info See [^ nassh faq] (yes, not the 'hterm hack' file, confusing eh?) for details on how to configure.
See [^ pref mgr] for the full list of configurable preferences. To configure, you need to: - run crosh shell in a browser tab (not standalone window) - open 'Developer Tools', console. This will open a javascript repl side-by-side with the crosh window, within the same browser tab
Get the current value of a preference:
term_.prefs_.get('OPTION NAME')
Set new value: term_.prefs_.set('OPTION NAME', <NEW-VALUE>)
Reset to default: term_.prefs_.reset('pref-name')
Reset all preferences to default: localStorage.clear()
●● copy/pasteBy default: - selected text will be automatically copied - Ctrl+Shift+v will paste into hterm
These defaults seem fine by me :)
●● basic changes
Fixes the ALT key (mostly, anyway):
term_.prefs_.set('alt-sends-what', '8-bit')
●● $TERMActually, hterm is already set to 'xterm-256color' by default. ChromeOS must change that to 'xterm' somewhere.
term_.prefs_.get('environment')
●● look & feelThe bloody scrollbar (I use gnu-screen's scrollback buffer instead) and bell are annoying:
term_.prefs_.set('scrollbar-visible', false)
term_.prefs_.set('audible-bell-sound', '')
This is my preferred font size (174x51). See [^ nassh faq] for more info on setting fonts, blinking cursors, etc. term_.prefs_.set('font-size', 13)
Colours can be set using either:
- a CSS name
- in hex, with #rrggbb
- in decimal, with rgba(red, green, blue, opacity)
- opacity = a number from 0 to 1. Best suited for a semi-transparent cursor term_.prefs_.set('foreground-color', 'ivory')
term_.prefs_.set('background-color', #002b36)
term_.prefs_.set('cursor-color', 'rgba(255, 20, 147, 0.75)')
See [^ css colors] for an easy to use chart.●● override chrome shortcuts
There are many chrome shortcuts which get in the way. Running hterm/ssh in a seperate window will disable many of them (C-w, C-n, C-t).
Some are still left, like the Ctrl+<number> and Alt+<number> shortcuts (switch to n'th tab, switch to n'th widow). To disable these:
term_.prefs_.set('pass-ctrl-number', false)
term_.prefs_.set('pass-alt-number', false)
Use this in conjunction with chromeos/settings/"Keyboard settings"/"Treat top row keys as function keys". I'm not sure what the most convenient combo is, yet! Remember that Search+[1-0,-+] = F1 to F12, as well. term_.prefs_.set('media-keys-are-fkeys', true)Big blocker for me starting over and doing that is VPN support. I have to decipher how to convert my work's OpenVPN config to Chrome's ONC format.
Alternatively, I've been just doing browser based dev. The free GCP google cloud shell lets me edit and host so long as I have a connection. If I wanted I could still keep it in sync with git running under termux.
What about Android dev for Chrome OS? Does it allow you to use C and C++ NDK when running on a Chromebook?
They don't immediately explain that in their docs and, being a web dev, it's hard to tell from the outside.
> Chrome OS is Linux under the hood so, in principle, you can run any standalone Linux binary on it. More precisely, Chrome OS is based on Gentoo Linux.