{"id":788,"date":"2021-01-04T12:00:00","date_gmt":"2021-01-04T20:00:00","guid":{"rendered":"http:\/\/letsbuildroboticswithshadow8472.com\/?p=788"},"modified":"2021-01-04T01:12:18","modified_gmt":"2021-01-04T09:12:18","slug":"family-photo-chest-part-11-picore","status":"publish","type":"post","link":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/2021\/01\/04\/family-photo-chest-part-11-picore\/","title":{"rendered":"Family Photo Chest Part 11: PiCore"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Good Morning from my Robotics Lab! This is Shadow_8472, and what a week it&#8217;s been! Today, I&#8217;m telling you the story of how I&#8217;m building up an operating system just to scan photos. This is also a follow up to last week&#8217;s topic, where I introduced PiCore as a base. Special thanks to Rich and Juanito of the TinyCore forum who have been answering my questions as I learn about this amazing, little Linux distro. Let&#8217;s get started!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Window Manager<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">I feel like I could do a post or two just on window managers, and I may do so in the future. Long story short, a window manager is responsible for drawing windows within a window server, and not much else.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I now know I used to judge a desktop environment by its window manager without much thought to all the other individual programs going on in the background: a file manager, menus, text and document editors, sometimes even a browser and often a calculator. All of that is bloatware for my purposes. My goal is to have as slim of a system as possible for running GIMP without spending days on end cinching the last megabyte out of the system. After all, I still have to look at it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Which brings me to my choices in window managers for PiCore. With a smaller tce repository due to being off the main TinyCore branch for X86, I only found a few options. FLWM (Fast Light Window Manager) ships with TinyCore in the main branch. I installed it, and hated all the stuff on the left side. I suppose someone must like it, and I can admit it takes up less vertical space, but I do need at least a few familiar points of reference.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I started researching window managers, but only when I searched tce for keywords: &#8216;window manager&#8217; did I realize just how short my list was. Least of which was a package that looks like it only multiplexes terminals. One of the admins helping me pointed out FLWM_Topside, but I&#8217;m not really a fan of jumping cursors, and I had already selected JWM (Joe&#8217;s Window Manager).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I found JWM simplistic and appealing. I had already used it in the past as part of the MATE desktop environment, like what I&#8217;m using now. The base version is configured by a text file, which I modified by hand to display a panel at the bottom as opposed to the top. There isn&#8217;t even support for calculating that automatically!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I was also sure to remove FLWM packages from tce\/optional. There are other spots where it&#8217;s left hooks for proper execution, and I&#8217;ll weed those out when I see them.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">NFS Auto-Mount<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Network File System: I&#8217;m getting the basics, only for TinyCore, my usual method of mounting shares gets flushed out on reboot. But I can work with the system I have. I can&#8217;t give the TinyCore people enough credit: they produced a shell script I could customize and told me how to install it.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Color Depth<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Just a note, really: Color depth is a thing. The scanners I&#8217;m working with each use 16 bits to say how much of each primary color is present in a pixel. I was warned by user barefootliam on the Gimp Discord server that a XSANE plugin may only use 8 bits. I don&#8217;t know for sure at this time, but it&#8217;s worth noting.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Amusing Errors<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Along the way, the system broke &#8212; a number of times even. Early on, I found how to hold Ctrl+C to close xorg as it started and to drop to the command line. Sometimes it was root, other times it was the default user, tc. Now that root has a password, it won&#8217;t let me pull that one, thankfully.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Another time, I was changing the default GIMP icons from plain white to color. It crashed JWM. I tried several times, and the result was always the same: All the window decorations around the outside were gone, and I was left with GIMP selected, unable to switch to the terminal so I could save the changes with <strong>filetool.sh -b<\/strong> as you do when using TinyCore. I found the <strong>sleep<\/strong> command and set a delay to restart JWM using <strong>sleep 15s &amp;&amp; jwm<\/strong>. At first, I was adding a restart command to <strong>jwm<\/strong>, but without JWM running, I was left with a dud command and a brick to forcefully reboot.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Toward the end of this development cycle, I was debugging JWM and moved the config files to a separate directory and restarted the program. Yikes! Turns out it came from the tce repository with a theme of its own. Rebooting once again restored the theme to default, but didn&#8217;t solve the empty config file issue.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Future Plans<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A computer system is hardly ever a static setup. When I have another SD card, I will want to look into a clean build on the aarch64 version of PiCore. Turns out I&#8217;m in the 32 bit version. My dream though is to build it on the 8 GB Pi 4 once I know what I want here.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I may not end up using a Pi at all if it just can&#8217;t keep up with my old laptop on its scanner.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Takeaway<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">TinyCore is a fun operating system. It may be a bit limited due to low popularity, but the community I&#8217;ve now contacted gets back pretty quickly. Just know that connections to their site are unencrypted, so if you go there, USE A UNIQUE PASSWORD! It&#8217;s just good practice anyway. <a rel=\"noreferrer noopener\" href=\"http:\/\/forum.tinycorelinux.net\/index.php\/topic,24653.0.html\" target=\"_blank\">Here&#8217;s a link here to the help thread I&#8217;ve been lurking in.<\/a> <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Final Question<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">What kind of long duration projects have you completed?<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Good Morning from my Robotics Lab! This is Shadow_8472, and what a week it&#8217;s been! Today, I&#8217;m telling you the story of how I&#8217;m building up an operating system just to scan photos. This is also a follow up to last week&#8217;s topic, where I introduced PiCore as a base. Special thanks to Rich and &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/2021\/01\/04\/family-photo-chest-part-11-picore\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Family Photo Chest Part 11: PiCore&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_forum_subforum_count":0,"footnotes":""},"categories":[3,2,26],"tags":[],"class_list":["post-788","post","type-post","status-publish","format-standard","hentry","category-computer-maintenance-and-repair","category-linux","category-raspberry-pi"],"_links":{"self":[{"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/posts\/788","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/comments?post=788"}],"version-history":[{"count":1,"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/posts\/788\/revisions"}],"predecessor-version":[{"id":789,"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/posts\/788\/revisions\/789"}],"wp:attachment":[{"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/media?parent=788"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/categories?post=788"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/tags?post=788"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}