Very interesting concept.

Thanks for sharing your proof of concept.

Tell everyone at sketching hello!
Drew

On Sat, Sep 28, 2019, 20:13 Jason Kridner <[email protected]> wrote:

> I’m attending Sketching in Hardware <http://sketching-in-hardware.com/> this
> weekend and there was a fair bit of discussion regarding how long it takes
> to boot Linux and barriers it makes to understanding a system. My assertion
> was that booting Linux on a computer, like PocketBeagle, doesn’t take very
> long at all and that it generally only gets in the way when you want it.
>
> Here’s what I hacked up in about 10 minutes to show off how we can get a
> whole lot of distribution code out-of-the-way.
>
> In /boot/uEnv.txt, I edited the cmdline:
>
> cmdline=coherent_pool=1M net.ifnames=0 rng_core.default_quality=100 quiet 
> *modules-load=g_serial*
>
> The point of this is that our boot script that configures the USB gadget
> won’t be loaded anymore. This causes the Linux kernel to emulate a serial
> port, providing a way to get to the Python REPL.
>
> In /etc/passwd, I edited the shell for the ‘debian’ user:
>
> debian:x:1000:1000:Demo User:/home/debian:*/usr/bin/python3*
>
> This makes python3 the default shell for the ‘debian’ user, so whenever a
> user logs in as ‘debian’, they get a python3 REPL.
>
> In /lib/systemd/system/[email protected], I enabled a bypass for the
> user login password request:
>
> ExecStart=-/sbin/agetty --keep-baud 115200,38400,9600 %I $TERM* -a debian*
>
> This totally insecure, but on PocketBeagle without any augmentation, this
> just gives access over the USB port. Seems pretty reasonable to me.
>
> I executed the following commands to reduce the applications running at
> startup and enable the terminal on the virtual serial port:
>
> sudo systemctl set-default rescue.target
> sudo ln -s /lib/systemd/system/[email protected] 
> /etc/systemd/system/default.target.wants/[email protected]
>
> When you do the above, a reboot will no longer bring up things like the
> Cloud9 IDE, so be sure to run both commands before rebooting. Use ‘sudo
> shutdown -r now’ to reboot.
>
> Seems like there’s still a fair amount of optimization that can be done,
> but here’s the behavior I saw when pulling and re-inserting the USB cable
> after making these changes:
>
> jkridner@tupper:~$ *journalctl -f*
> Sep 28 13:55:52 tupper kernel: usb 1-4: USB disconnect, device number 26
>  Sep 28 13:55:52 tupper upowerd[2124]: unhandled action 'unbind' on 
> /sys/devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4:2.1
>  Sep 28 13:55:52 tupper upowerd[2124]: unhandled action 'unbind' on 
> /sys/devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4:2.0
>  Sep 28 13:55:52 tupper upowerd[2124]: unhandled action 'unbind' on 
> /sys/devices/pci0000:00/0000:00:14.0/usb1/1-4
>  Sep 28 13:56:08 tupper kernel: usb 1-4: new high-speed USB device number 27 
> using xhci_hcd
>  Sep 28 13:56:08 tupper kernel: usb 1-4: New USB device found, idVendor=0525, 
> idProduct=a4a7
>  Sep 28 13:56:08 tupper kernel: usb 1-4: New USB device strings: Mfr=1, 
> Product=2, SerialNumber=0
>  Sep 28 13:56:08 tupper kernel: usb 1-4: Product: Gadget Serial v2.4
>  Sep 28 13:56:08 tupper kernel: usb 1-4: Manufacturer: Linux 4.14.108-ti-r113 
> with musb-hdrc
>  Sep 28 13:56:08 tupper kernel: cdc_acm 1-4:2.0: ttyACM0: USB ACM device
>
> So, without any other tweaking, it seems to still be taking about 16
> seconds. I’m not very happy with this, so I’ll be hooking up a serial cable
> and figuring out where the time goes soon.
>
> jkridner@tupper:~$ *tio /dev/ttyACM0*
> [tio 14:02:10] tio v1.29
> [tio 14:02:10] Press ctrl-t q to quit
> [tio 14:02:10] Connected
>
>   File "", line 0
>
>     ^
> SyntaxError: 'utf-8' codec can't decode byte 0xf0 in position 2: invalid 
> continuation byte
> >>> quit()
>
> Debian GNU/Linux 9 beaglebone ttyGS0
>
> BeagleBoard.org Debian Image 2019-08-03
>
> Support/FAQ: http://elinux.org/Beagleboard:BeagleBoneBlack_Debian
>
> default username:password is [debian:temppwd]
>
> beaglebone login: debian (automatic login)
>
> Last login: Sun Aug  4 02:10:35 UTC 2019 on ttyGS0
>
> The programs included with the Debian GNU/Linux system are free software;
> the exact distribution terms for each program are described in the
> individual files in /usr/share/doc/*/copyright.
>
> Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
> permitted by applicable law.
> Python 3.5.3 (default, Sep 27 2018, 17:25:39)
> [GCC 6.3.0 20170516] on linux
> Type "help", "copyright", "credits" or "license" for more information.
> >>> *import os*
> >>> *os.system("bash")*
> debian@beaglebone:~$
>
> I chose to use ‘tio’, but ‘screen’ and other serial utilities would work
> fine.
>
> I don’t actually know that the cause of the stray characters is. Someone
> can probably enlighten me.
>
> I’ll release this as a blog post once I figure out why the boot time is
> this slow, but I thought this was interesting enough to post here. Enjoy.
>
> --
> https://beagleboard.org/about
>
> --
> You received this message because you are subscribed to the Google Groups
> "Beagle Alpha" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/beagle-alpha/CA%2BT6QP%3DK6UNOHjzrBV1%3DMDfSiBQb6R3_HMBg76Q_vkA1Z6uxXg%40mail.gmail.com
> <https://groups.google.com/d/msgid/beagle-alpha/CA%2BT6QP%3DK6UNOHjzrBV1%3DMDfSiBQb6R3_HMBg76Q_vkA1Z6uxXg%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
>

-- 
For more options, visit http://beagleboard.org/discuss
--- 
You received this message because you are subscribed to the Google Groups 
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/beagleboard/CAPgEAj4ysOewoK8Nn79_w3oStYojKZzAtXVXP6H7Oh0%2B5C4DkQ%40mail.gmail.com.

Reply via email to